Blame view
src/store/modules/details.js
4.36 KB
3cda19af7 详情页-售后保障 |
1 2 3 4 5 |
import urlAlias from '../url' import request from '../request' const { read, |
530bb7e83 重构详情页-商品介绍 |
6 |
cartList, |
5bca13074 分享功能 |
7 |
makePost, |
3cda19af7 详情页-售后保障 |
8 9 10 |
} = urlAlias const state = { |
88c0598d3 详情页参数选择修改 |
11 12 |
// 为配合参数选择框 goodInfo: {}, |
3cda19af7 详情页-售后保障 |
13 14 15 16 17 18 19 20 21 22 23 |
// 轮播图 carousel: [ '/static/img/detail/d9.png', ], // 商品基本信息 goodsInfo: { name: '暂无名称', price: '暂无价格', discountPrice: undefined, tradeNumber: undefined, }, |
530bb7e83 重构详情页-商品介绍 |
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
// 商品介绍 tag: { prod_tag_style: [{ label: '青春学子风', value: '54', }], }, // 规格参数 specification: [ { key: 'frame_width', img: '/static/img/detail/d2.png', standard: '框架宽', slength: '139mm' }, { key: 'glass_width', img: '/static/img/detail/d3.png', standard: '镜片宽', slength: '51mm' }, { key: 'glass_height', img: '/static/img/detail/d4.png', standard: '镜片高', slength: '45mm' }, { key: 'nose_width', img: '/static/img/detail/d5.png', standard: '鼻架宽', slength: '19mm' }, { key: 'leg_long', img: '/static/img/detail/d6.png', standard: '框架耳长', slength: '138mm' }, { key: 'weight', img: '/static/img/detail/d7.png', standard: '框架重', slength: '19克(grams)' }, ], // 评价 evaluate: { rate: '100%', star: 5, tag: [{ name: '价格实惠' }], }, // 商品详情 more: '', // 购物车数目 cartNumber: 0, |
5bca13074 分享功能 |
50 51 52 |
// skuList skuList: [], postUrl: 'https://api.glass.xiuyetang.com/adv_pic/428_0_7.png', |
3cda19af7 详情页-售后保障 |
53 54 55 |
} const mutations = { |
88c0598d3 详情页参数选择修改 |
56 57 |
INIT: (state, { goodInfo, carousel, goodsInfo, tag, specification, evaluate, more, skuList }) => { state.goodInfo = goodInfo |
3cda19af7 详情页-售后保障 |
58 59 |
state.carousel = carousel state.goodsInfo = goodsInfo |
530bb7e83 重构详情页-商品介绍 |
60 61 62 63 |
state.tag = tag state.specification = specification state.evaluate = evaluate state.more = more |
5bca13074 分享功能 |
64 |
state.skuList = skuList |
530bb7e83 重构详情页-商品介绍 |
65 66 67 |
}, CART: (state, number) => { state.cartNumber = number |
3cda19af7 详情页-售后保障 |
68 |
}, |
5bca13074 分享功能 |
69 70 71 |
POST: (state, url) => { state.postUrl = url }, |
3cda19af7 详情页-售后保障 |
72 73 74 |
} const actions = { |
530bb7e83 重构详情页-商品介绍 |
75 76 |
// 获取详情 details({ commit, rootState }, param) { |
3cda19af7 详情页-售后保障 |
77 78 79 80 |
return new Promise((resolve, reject) => request({ url: read, data: param, success: ({ data: { data } }) => { |
530bb7e83 重构详情页-商品介绍 |
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
console.log('data.tag', data.tag) // 规格参数设置 const specification = rootState.details.specification const parameter = { frame_width: data.frame_width, glass_width: data.glass_width, glass_height: data.glass_height, nose_width: data.nose_width, leg_long: data.leg_long, weight: data.weight, } for (let index = 0; index < specification.length; index++) { if (specification[index].key !== 'weight') { specification[index].slength = `${parameter[specification[index].key]}mm` } else { specification[index].slength = `${parameter[specification[index].key]}克(grams)` } } |
3cda19af7 详情页-售后保障 |
99 |
commit('INIT', { |
88c0598d3 详情页参数选择修改 |
100 |
goodInfo: data, |
5bca13074 分享功能 |
101 |
skuList: data.skuList, |
3cda19af7 详情页-售后保障 |
102 103 104 105 |
carousel: data.pics, goodsInfo: { name: data.p_name, price: data.priceArea.Min_Price, |
29c972fd5 再次购买、确认订单修改 |
106 |
discountPrice: parseInt(data.priceArea.Min_Price * (1 + Number(data.priceArea.discount) / 100)), |
3cda19af7 详情页-售后保障 |
107 108 |
tradeNumber: data.trade_num, }, |
530bb7e83 重构详情页-商品介绍 |
109 110 111 112 113 114 115 |
tag: data.tag, specification, evaluate: { rate: data.judgeInfo.good, tag: data.judge_tag, star: parseInt(5 * Number(data.judgeInfo.good.slice(0, -1)) / 100), }, |
5bca13074 分享功能 |
116 |
// eslint-disable-next-line |
530bb7e83 重构详情页-商品介绍 |
117 |
more: data.prodIntro1.replace(/\<img/gi, '<img style="max-width:100%;height:auto"'), |
3cda19af7 详情页-售后保障 |
118 119 120 121 122 123 124 125 |
}) resolve(data) }, fail: (res) => { console.log('fail status ===>', res) }, })) }, |
530bb7e83 重构详情页-商品介绍 |
126 127 128 129 130 131 |
// 获取购物车列表 getCartNumber({ commit }, param) { return new Promise((resolve) => request({ url: cartList, data: param, success: ({ data: { data } }) => { |
530bb7e83 重构详情页-商品介绍 |
132 133 134 135 136 137 138 139 |
let number = 0 for (let index = 0; index < data.length; index++) { number += Number(data[index].num) } commit('CART', number) }, })) }, |
5bca13074 分享功能 |
140 141 142 143 144 145 146 147 148 149 150 |
// 生成分享海报 post({ commit }, param) { return new Promise((resolve) => request({ url: makePost, data: param, success: ({ data }) => { commit('POST', data.data) resolve() }, })) }, |
3cda19af7 详情页-售后保障 |
151 152 153 154 155 156 157 158 |
} export default { namespaced: true, state, mutations, actions, } |