index.vue 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. <template>
  2. <div class="purchase-layout">
  3. <div class="plate01 container">
  4. <div class="main-detail">
  5. <browse
  6. :idata='browdata'
  7. :iactive='browactive'
  8. :floder="'zhijiabrowse'"
  9. class="product-img"
  10. />
  11. <!-- <video class="product-img" :style="{marginLeft:(split - 500)+ 'px'}" :src="`${$cdn}video/zhijia-video.mp4`" autoplay muted loop></video> -->
  12. <div class="layout">
  13. <!-- <img class="pro-logo" :src="this.language==='en'?`${$cdn}images/zhijia-logo-en.png`:`${$cdn}images/zhijia-logo-black.png`" alt=""> -->
  14. <h1 class="pro-title">四维看看Pro三脚架套装</h1>
  15. <p class="sub b-label" v-html="langPurchase.dec"></p>
  16. <p class="price">
  17. ¥{{mallConfig.zhijiaPrice}}
  18. <!-- <span>{{langPurchase.yushou}}</span> -->
  19. </p>
  20. <p class="postage">运费:顺丰包邮</p>
  21. <template>
  22. <div class="taozhuang">
  23. <p class="taozhuang-title">套装内容</p>
  24. <div class="detail-box sceond-box">
  25. <ul>
  26. <li v-for="(item, i) in langPurchase.service.val" :key="i">{{item}}</li>
  27. </ul>
  28. </div>
  29. </div>
  30. </template>
  31. <template v-if="language!=='en'">
  32. <span class="num-title" >{{langPurchase.count.key}}</span>
  33. <!-- <spinner class="spinner" @count="handleSpinner"/> -->
  34. <number v-model="count" :max="99" />
  35. </template>
  36. <div>
  37. <div class="btns">
  38. <div v-if="language!=='en'" class="button add-cart" @click="addcart">
  39. <vcenter>
  40. <span>{{langPurchase.cart}}</span>
  41. </vcenter>
  42. </div>
  43. <div class="button" @click="pay">
  44. <vcenter>
  45. <span>{{langPurchase.buy}}</span>
  46. </vcenter>
  47. </div>
  48. </div>
  49. <div class="btn-dec"><h-icon type="gouwuche" class="shop-cart-icon" />{{ $t('mall.fahuo')}}</div>
  50. </div>
  51. </div>
  52. </div>
  53. </div>
  54. <div class="plate02">
  55. <div class="container">
  56. <h1 class="common-title">{{langPurchase.zhijia.name}}</h1>
  57. <div class="b-label">{{langPurchase.zhijia.sub}}</div>
  58. </div>
  59. <!-- <div class="b-title">{{langPurchase.zhijia.name}}</div> -->
  60. <div class="p2-con">
  61. <img class="p2c-img" :src="`${$cdn}images/zhijia-left.png`" alt="">
  62. <div class="b-info">
  63. <div class="right-title">{{langPurchase.zhijia.detail}}</div>
  64. <div class="right-line"></div>
  65. <div class="right-con">
  66. <div v-for="(item,i) in langPurchase.zhijia.detailArr" :key="i">
  67. <img :src="item.img" alt="">
  68. <div class="low-title">{{item.name}}</div>
  69. </div>
  70. </div>
  71. </div>
  72. </div>
  73. </div>
  74. <div class="plate03 container" >
  75. <div class="b-title">{{langPurchase.guige.name}}</div>
  76. <h-row class="params-con" :gutter="95">
  77. <h-col class="params-item" :span="12" v-for="(item,index) in langPurchase.guige.arr" :key="index">
  78. <div>
  79. <div class="p-l" :style="{width:language==='en'?'300px':'100px'}">{{item.name}}</div>
  80. <div class="p-r" :style="{width:getRWidth(index)}">
  81. <div v-html="sub" v-for="(sub,i) in item.val" :key="i"></div>
  82. </div>
  83. </div>
  84. </h-col>
  85. </h-row>
  86. <div class="sub">
  87. <p v-for="(ites,i) in langPurchase.guige.dec" :key="i">{{ites}}</p>
  88. </div>
  89. </div>
  90. <div class="plate04">
  91. <div class="container">
  92. <h1 class="common-title">{{langPurchase.hualun.name}}</h1>
  93. <div class="b-label">{{langPurchase.hualun.sub}}</div>
  94. </div>
  95. <div class="p4-img">
  96. <img :src=" language==='en'?`${$cdn}images/p4zhijia-len.png`:`${$cdn}images/p4zhijia-l.png`" alt="">
  97. <img :src=" language==='en'?`${$cdn}images/p4zhijia-ren.png`:`${$cdn}images/p4zhijia-r.png`" alt="">
  98. </div>
  99. </div>
  100. <div class="plate03 container" >
  101. <div class="b-title">{{langPurchase.lunguige.name}}</div>
  102. <h-row class="params-con" :gutter="95">
  103. <h-col class="params-item" :span="12" v-for="(item,index) in langPurchase.lunguige.arr" :key="index">
  104. <div>
  105. <div class="p-l" :style="{width:language==='en'?'300px':'100px'}">{{item.name}}</div>
  106. <div class="p-r" :style="{width:getRWidth(index)}">
  107. <div v-html="sub" v-for="(sub,i) in item.val" :key="i"></div>
  108. </div>
  109. </div>
  110. </h-col>
  111. </h-row>
  112. <div class="sub">
  113. <p>{{langPurchase.lunguige.dec}}</p>
  114. </div>
  115. </div>
  116. </div>
  117. </template>
  118. <script>
  119. import { mapState } from 'vuex'
  120. import spinner from '@/components/spinner'
  121. import vcenter from '@/components/vcenter'
  122. import browse from '@/components/browse'
  123. import priceTable from '@/components/priceTable'
  124. import mallConfig from '@/config/mall'
  125. import { saveConfirmGoods } from '@/util/storage'
  126. import number from '@/components/mall/number'
  127. export default {
  128. components: {
  129. spinner,
  130. vcenter,
  131. browse,
  132. priceTable,
  133. number
  134. },
  135. computed: {
  136. ...mapState({
  137. split: state => state.ui.navDivision,
  138. isLogin: state => state.user.name,
  139. langPurchase: state => state.language.home.purchasezhijia,
  140. langPurchasekankan: state => state.language.home.purchase,
  141. langToast: state => state.language.home.toast,
  142. language: state => state.language.current,
  143. token: state => state.user.token,
  144. cart: state => JSON.parse(state.user.cart)
  145. })
  146. },
  147. data () {
  148. let zhijiadetail = [
  149. {
  150. name: '专业球形云台',
  151. img: `${this.$cdn}images/zhijia-detail01.png`
  152. },
  153. {
  154. name: '脚管三段角度调节按钮',
  155. img: `${this.$cdn}images/zhijia-detail02.png`
  156. },
  157. {
  158. name: '安全的中轴升降锁紧按钮',
  159. img: `${this.$cdn}images/zhijia-detail03.png`
  160. },
  161. {
  162. name: '防滑保暖致密海绵护手',
  163. img: `${this.$cdn}images/zhijia-detail04.png`
  164. },
  165. {
  166. name: '可伸缩中轴挂钩稳定脚架',
  167. img: `${this.$cdn}images/zhijia-detail05.png`
  168. },
  169. {
  170. name: '方便快捷的版扣脚管',
  171. img: `${this.$cdn}images/zhijia-detail06.png`
  172. }
  173. ]
  174. let detail = {
  175. left: [
  176. '数据永久存储',
  177. '高速上传计算队列',
  178. '场景分享、热点编辑、隐私加密'
  179. ],
  180. right: ['多种个性化功能', '附送30G终身容量']
  181. }
  182. let guige = [
  183. {
  184. name: '容量和内存',
  185. val: ['LPDDR4X双通道', '6G内存', 'UFS 2.1', '64GB 机身存储']
  186. },
  187. {
  188. name: '机身尺寸和重量',
  189. val: ['高度 = 153.3m', '宽度 = 74.5mm', '厚度 = 7.9mm', '重量 = 170g']
  190. },
  191. {
  192. name: '处理器平台',
  193. val: [
  194. 'Qualcomm® 骁龙™ 845 处理器',
  195. '10nm 先进制程',
  196. '单核主频可达 2.8GHz',
  197. 'Adreno™ 630 图形处理器,主频可达 700MHz',
  198. '配备人工智能引擎(AI Engine)'
  199. ]
  200. },
  201. {
  202. name: '网络',
  203. val: ['支持 VoLTE 高质量宽带', '支持三载波聚', '支持 LTE B41 4x4 MIMO']
  204. },
  205. {
  206. name: '屏幕',
  207. val: [
  208. '6.17 英寸 In-Cell 全高清显示屏',
  209. '2242 x 1080 分辨率,403 ppi',
  210. '康宁®第三代大猩猩®玻璃'
  211. ]
  212. }
  213. ]
  214. let browdata = [
  215. {
  216. small: 'small-0',
  217. big: 'big-0',
  218. video: true
  219. }, {
  220. small: 'small-1',
  221. big: 'big-1'
  222. },
  223. {
  224. small: 'small-2',
  225. big: 'big-2'
  226. },
  227. {
  228. small: 'small-3',
  229. big: 'big-3'
  230. },
  231. {
  232. small: 'small-4',
  233. big: 'big-4'
  234. }]
  235. let browactive = browdata[0]
  236. return {
  237. mallConfig,
  238. detail,
  239. zhijiadetail,
  240. guige,
  241. browactive,
  242. browdata,
  243. count: 1,
  244. selectParts: true
  245. }
  246. },
  247. methods: {
  248. getWidth (index) {
  249. let zhW = index > this.langPurchase.lunguige.arr.length - 5 ? '100%' : index % 2 === 0 ? 'calc(100% - 36.1%)' : '36.1%'
  250. return this.language === 'en' ? '100%' : zhW
  251. },
  252. getRWidth (index) {
  253. let zhW = index > this.langPurchase.lunguige.arr.length - 5 ? 'calc(100% - 110px)' : '200px'
  254. return this.language === 'en' ? 'calc(100% - 320px)' : zhW
  255. },
  256. handleSpinner (data) {
  257. this.count = data
  258. },
  259. gobuy () {
  260. },
  261. async addcart () {
  262. if (!this.token) {
  263. return this.$bus.$emit('showAside')
  264. }
  265. let params = {
  266. goodsId: 7,
  267. goodsCount: this.count,
  268. skuSn: 'U15604134406280073'
  269. }
  270. await this.$store.dispatch('addCart', params)
  271. this.$toast.show('success', this.langToast['39'])
  272. },
  273. pay () {
  274. if (this.language === 'en') {
  275. return window.open('https://www.alibaba.com/product-detail/4DKanKan-Pro-Tripod-Set_62431649408.html?spm=a2700.icbuShop.41413.11.339877f3TUXWiN')
  276. }
  277. let params = {
  278. type: 'detail',
  279. sku: [{
  280. goodsId: 7,
  281. goodsCount: this.count,
  282. price: 899,
  283. skuSn: 'U15604134406280073'
  284. }],
  285. fromList: false
  286. }
  287. saveConfirmGoods(params.sku)
  288. this.$router.push('/mall/confirm')
  289. }
  290. },
  291. beforeDestroy () {
  292. clearInterval(this.interval)
  293. }
  294. }
  295. </script>
  296. <style lang="scss" scoped>
  297. @import "./style.scss";
  298. </style>