index.vue 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. <template>
  2. <div class="home-layout">
  3. <div class="banner">
  4. {{ $t('conduct.coreTech.bannerTitle') }}
  5. </div>
  6. <div class="plate1" id="plate1">
  7. <h1 class="common-title">{{ $t('conduct.coreTech.itemTitle1') }}</h1>
  8. <p class="desc">{{ $t('conduct.coreTech.itemText1') }}</p>
  9. <div class="video">
  10. <video autoplay controls src="@/assets/images/refactor/location/AI AR SLAM 01(剪辑版2).mp4"></video>
  11. </div>
  12. </div>
  13. <div class="plate2" id="plate2">
  14. <h1 class="common-title">{{ $t('conduct.coreTech.itemTitle2') }}</h1>
  15. <p class="desc">{{ $t('conduct.coreTech.itemText2') }}</p>
  16. <ul>
  17. <li v-for="(item, index) in plate2List" :key="item.name" :class="{'is-active': plate2ActiveIndex === index}" @click="plate2ActiveIndex=index">
  18. {{ item.name }}
  19. </li>
  20. </ul>
  21. <iframe allowfullscreen :src="plate2List[plate2ActiveIndex].iframeLink" />
  22. </div>
  23. <div class="plate3" id="plate3">
  24. <h1 class="common-title">{{ $t('conduct.coreTech.itemTitle3') }}</h1>
  25. <p class="desc">{{ $t('conduct.coreTech.itemText3') }}</p>
  26. <ul>
  27. <li v-for="item in plate3List" :key="item.name">
  28. <div class="item-img" :style="{'background-image': `url(${item.img})`}"></div>
  29. <h4>{{ item.name }}</h4>
  30. </li>
  31. </ul>
  32. </div>
  33. </div>
  34. </template>
  35. <script>
  36. import {mapState} from 'vuex'
  37. import wave from '@/components/wave'
  38. export default {
  39. computed: {
  40. ...mapState({
  41. langCoreTech: state => state.language.home.coreTech,
  42. language: state => state.language.current
  43. })
  44. },
  45. components: {wave},
  46. data () {
  47. return {
  48. plate2ActiveIndex: 0,
  49. plate2List: [
  50. {
  51. name: this.$t('conduct.coreTech.item2Name1'),
  52. iframeLink: 'https://www.4dkankan.com/showProPC.html?m=nSjwSohIY'
  53. },
  54. {
  55. name: this.$t('conduct.coreTech.item2Name2'),
  56. iframeLink: 'https://www.4dkankan.com/spc.html?m=B4T8r0kk6'
  57. },
  58. {
  59. name: this.$t('conduct.coreTech.item2Name3'),
  60. iframeLink: 'https://www.4dkankan.com/showProPC.html?m=t-0Q99SHE'
  61. }
  62. ],
  63. plate3List: [
  64. {
  65. name: this.$t('conduct.coreTech.item3Name1'),
  66. img: require('@/assets/images/refactor/location/show-1.png')
  67. },
  68. {
  69. name: this.$t('conduct.coreTech.item3Name2'),
  70. img: require('@/assets/images/refactor/location/show-2.png')
  71. },
  72. {
  73. name: this.$t('conduct.coreTech.item3Name3'),
  74. img: require('@/assets/images/refactor/location/show-3.png')
  75. }
  76. ]
  77. }
  78. },
  79. methods: {
  80. goto (url) {
  81. window.open(url, '_blank')
  82. }
  83. },
  84. mounted () {
  85. },
  86. beforeDestroy () {
  87. }
  88. }
  89. </script>
  90. <style lang="scss" scoped>
  91. .banner {
  92. width: 100%;
  93. height: 140px;
  94. background: url(~@/assets/images/refactor/location/banner.png) no-repeat center center;
  95. background-size: cover;
  96. font-size: 22px;
  97. color: #202020;
  98. line-height: 33px;
  99. padding: 55px 0 0 42px;
  100. font-weight: bold;
  101. }
  102. .desc {
  103. color: #909090;
  104. font-size: 12px;
  105. line-height: 18px;
  106. }
  107. .plate1 {
  108. padding: 26px 20px 60px;
  109. .desc {
  110. margin: 27px 0 18px;
  111. }
  112. }
  113. .plate2 {
  114. padding: 56px 20px 60px;
  115. background: #F7F7F7;
  116. .desc {
  117. margin: 27px 0 18px;
  118. }
  119. ul {
  120. display: flex;
  121. margin-bottom: 18px;
  122. li {
  123. padding-right: 19px;
  124. margin-right: 20px;
  125. font-size: 14px;
  126. line-height: 21px;
  127. color: #909090;
  128. font-weight: bold;
  129. position: relative;
  130. &.is-active {
  131. color: #202020;
  132. }
  133. &::after {
  134. content: '';
  135. display: block;
  136. width: 1px;
  137. height: 14px;
  138. background: #909090;
  139. position: absolute;
  140. top: 50%;
  141. right: 0;
  142. margin-top: -7px;
  143. }
  144. &:last-child {
  145. &::after {
  146. display: none;
  147. }
  148. }
  149. }
  150. }
  151. iframe {
  152. width: 100%;
  153. height: 500px;
  154. }
  155. }
  156. .plate3 {
  157. padding: 56px 20px 60px;
  158. .desc {
  159. margin: 27px 0 28px;
  160. }
  161. ul {
  162. display: flex;
  163. flex-wrap: wrap;
  164. text-align: center;
  165. padding: 0 0 0 30px;
  166. li {
  167. margin-bottom: 27px;
  168. }
  169. li:first-child {
  170. margin-right: 98px;
  171. }
  172. }
  173. .item-img {
  174. width: 90px;
  175. height: 90px;
  176. background-size: contain;
  177. background-repeat: no-repeat;
  178. background-position: center center;
  179. margin-bottom: 17px;
  180. }
  181. }
  182. .video {
  183. video {
  184. width: 100%;
  185. }
  186. }
  187. </style>