EsgLayout.vue 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. <script setup lang="ts">
  2. import { ref } from 'vue';
  3. import { NGrid, NGi } from 'naive-ui';
  4. const { locale } = useI18n();
  5. const serverData = [
  6. {
  7. iconName: 'carbon/icon-egs-01',
  8. title: 'ESG策略',
  9. desc: '全面评估企业在环境、社会和公司治理三方面<br />的表现,助力企业实现长期可持续的财务回报',
  10. // subDesc: '并进行全生命周期的数据核算',
  11. titleKey: 'develop.ESGConsultItemOne',
  12. descKey: 'develop.ESGConsultItemDescOne',
  13. subDescKey: 'develop.ESGConsultItemSubOne'
  14. },
  15. {
  16. iconName: 'carbon/icon-egs-02',
  17. title: 'ESG披露',
  18. desc: '增加企业ESG披露的透明度,帮助投资者、利益<br />相关方更好地评估企业的长期价值和风险',
  19. // subDesc: '并进行全生命周期的数据核算',
  20. titleKey: 'develop.ESGConsultItemTwo',
  21. descKey: 'develop.ESGConsultItemDescTwo',
  22. subDescKey: 'develop.ESGConsultItemSubTwo'
  23. },
  24. {
  25. iconName: 'carbon/icon-egs-03',
  26. title: 'ESG气候风险',
  27. desc: '协助企业评估绿色转型风险和气候风险,并将<br />其纳入可持续发展规划目标',
  28. // subDesc: '并进行全生命周期的数据核算',
  29. titleKey: 'develop.ESGConsultItemThree',
  30. descKey: 'develop.ESGConsultItemDescThree',
  31. subDescKey: 'develop.ESGConsultItemSubThree'
  32. }
  33. ]
  34. </script>
  35. <template>
  36. <BaseCard title="ESG解决方案" lang-key="develop.ESGTitle" is-text>
  37. <ul class="desc-container">
  38. <li>{{ $t('develop.ESGItemOne') }}</li>
  39. <li>{{ $t('develop.ESGItemTwo') }}</li>
  40. <li>{{ $t('develop.ESGItemThree') }}</li>
  41. </ul>
  42. </BaseCard>
  43. <BaseCard title="ESG咨询服务" class="server-container" lang-key="develop.ESGItemTitle">
  44. <div class="grid grid-cols-1 sm:grid-cols-3 gap-[40px] sm:gap-[0px]">
  45. <div v-for="item, index in serverData" :key="item.titleKey" data-aos="fade-up" :data-aos-delay="(index + 1) * 200">
  46. <IconPanel v-bind="item"></IconPanel>
  47. </div>
  48. </div>
  49. </BaseCard>
  50. <BaseCard title="企业披露ESG报告信息的好处" class="egs-container" lang-key="develop.ESGInfosTitle" is-text>
  51. <div class="desc-wrap">
  52. <p>{{ $t('develop.ESGInfosSubTitleOne') }}</p>
  53. <p>{{ $t('develop.ESGInfosSubTitleTwo') }}</p>
  54. </div>
  55. <div class="frame-wrap flex flex-col align-center sm:flex-row">
  56. <div class="w-[240px] h-[240px] mb-[20px] block sm:hidden">
  57. <img src="@/assets/image/carbo/bg-esg-frame.png" alt="">
  58. </div>
  59. <ul class="text-list left w-full sm:w-[343px]" :class="{'sm:w-[420px]':locale === 'en'}">
  60. <li class="text-item purple mb-[10px] sm:mb-[38px]" >
  61. <span>{{$t('develop.ESGInfosContentOne1')}}</span>
  62. <span>{{$t('develop.ESGInfosContentOne2')}}</span>
  63. </li>
  64. <li class="text-item green mb-[10px] sm:mb-[38px]">
  65. <span>{{$t('develop.ESGInfosContentTwo1')}}</span>
  66. <span>{{$t('develop.ESGInfosContentTwo2')}}</span>
  67. </li>
  68. <li class="text-item purple mb-[10px] sm:mb-[38px]">
  69. <span>{{$t('develop.ESGInfosContentThree1')}}</span>
  70. <span>{{$t('develop.ESGInfosContentThree2')}}</span>
  71. </li>
  72. </ul>
  73. <div class="frame-img hidden sm:block">
  74. <img src="@/assets/image/carbo/bg-esg-frame.png" alt="">
  75. </div>
  76. <ul class="text-list right pt-[40px] sm:pt-[0px] w-full sm:w-[343px]" :class="{'sm:w-[420px]':locale === 'en'}">
  77. <li class="text-item green mb-[10px] sm:mb-[38px]">
  78. <span>
  79. <i>{{$t('develop.ESGInfosContentFour1')}}</i>
  80. </span>
  81. <span>{{$t('develop.ESGInfosContentFour2')}}</span>
  82. </li>
  83. <li class="text-item purple mb-[10px] sm:mb-[38px]">
  84. <span>{{$t('develop.ESGInfosContentFive1')}}</span>
  85. <span>{{$t('develop.ESGInfosContentFive2')}}</span>
  86. </li>
  87. <li class="text-item green mb-[10px] sm:mb-[38px]">
  88. <span>{{$t('develop.ESGInfosContentSix1')}}</span>
  89. <span>{{$t('develop.ESGInfosContentSix2')}}</span>
  90. </li>
  91. </ul>
  92. </div>
  93. </BaseCard>
  94. </template>
  95. <style scoped lang="scss">
  96. .desc-container {
  97. font-size: 18px;
  98. text-align: center;
  99. line-height: 26px;
  100. color: $t-color-sub;
  101. }
  102. .server-container {
  103. background: url('@/assets/image/carbo/bg-server.png') left top no-repeat,
  104. url('@/assets/image/carbo/bg-esg-group-top.png') right bottom no-repeat,
  105. linear-gradient(180deg, #F7F9FF 57.64%, #F1F5F8 100%);
  106. }
  107. .egs-container {
  108. background: url('@/assets/image/carbo/bg-esg-group-bottom.png') right top no-repeat;
  109. .desc-wrap {
  110. font-size: 18px;
  111. font-weight: 400;
  112. line-height: 25px;
  113. text-align: center;
  114. color: #666;
  115. }
  116. .frame-wrap {
  117. align-items: center;
  118. justify-content: space-between;
  119. padding-top: 50px;
  120. .text-list {
  121. .text-item {
  122. position: relative;
  123. @include flex(y, start, center);
  124. height: 64px;
  125. border-radius: 32px;
  126. &:last-child {
  127. margin-bottom: 0;
  128. }
  129. &::after {
  130. content: ' ';
  131. position: absolute;
  132. top: -3px;
  133. display: block;
  134. width: 22px;
  135. height: 22px;
  136. border-radius: 50%;
  137. }
  138. }
  139. span {
  140. display: block;
  141. font-size: 16px;
  142. font-weight: 400;
  143. line-height: 22.4px;
  144. color: #565E66;
  145. }
  146. }
  147. .left {
  148. .text-item {
  149. padding-left: 34px;
  150. }
  151. .purple {
  152. background: linear-gradient(90deg, #E7EBFC 6.41%, rgba(231, 235, 252, 0) 100%);
  153. }
  154. .green {
  155. background: linear-gradient(90deg, #E7FCF3 6.41%, rgba(231, 251, 252, 0) 100%);
  156. }
  157. .text-item::after {
  158. left: 0px;
  159. }
  160. }
  161. .right {
  162. .text-item {
  163. padding-right: 34px;
  164. span {
  165. width: 100%;
  166. text-align: right
  167. }
  168. }
  169. .purple {
  170. background: linear-gradient(270deg, #E7EBFC 6.41%, rgba(231, 235, 252, 0) 100%);
  171. }
  172. .green {
  173. background: linear-gradient(270deg, #E7FCF3 6.41%, rgba(231, 251, 252, 0) 100%);
  174. }
  175. .text-item::after {
  176. right: 0;
  177. }
  178. }
  179. .purple::after {
  180. background: linear-gradient(130.43deg, rgba(42, 103, 248, 0.5) 24.64%, rgba(42, 103, 248, 0.15) 81.82%);
  181. }
  182. .green::after {
  183. background: linear-gradient(130.43deg, rgba(63, 237, 153, 0.5) 24.64%, rgba(42, 248, 211, 0.15) 81.82%);
  184. }
  185. .frame-img {
  186. width: 388px;
  187. height: 388px;
  188. }
  189. }
  190. .frame-wrap-iphone {
  191. flex-flow: column;
  192. align-items: center;
  193. justify-content: center;
  194. .frame-img {
  195. width: 70%;
  196. height: auto;
  197. padding-bottom: 20px;
  198. }
  199. .text-list {
  200. width: 100%;
  201. .text-item {
  202. margin-bottom: 10px;
  203. }
  204. }
  205. }
  206. }
  207. .en{
  208. .frame-wrap{
  209. .text-list{
  210. .text-item{
  211. height: auto;
  212. min-height:64px;
  213. }
  214. }
  215. }
  216. }
  217. </style>