Blame view
src/store/modules/details.js
3.76 KB
3cda19af7 详情页-售后保障 |
1 2 3 4 5 |
import urlAlias from '../url' import request from '../request' const { read, |
530bb7e83 重构详情页-商品介绍 |
6 |
cartList, |
3cda19af7 详情页-售后保障 |
7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
} = urlAlias const state = { // 轮播图 carousel: [ '/static/img/detail/d9.png', ], // 商品基本信息 goodsInfo: { name: '暂无名称', price: '暂无价格', discountPrice: undefined, tradeNumber: undefined, }, |
530bb7e83 重构详情页-商品介绍 |
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
// 商品介绍 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, |
3cda19af7 详情页-售后保障 |
47 48 49 |
} const mutations = { |
530bb7e83 重构详情页-商品介绍 |
50 |
INIT: (state, { carousel, goodsInfo, tag, specification, evaluate, more }) => { |
3cda19af7 详情页-售后保障 |
51 52 |
state.carousel = carousel state.goodsInfo = goodsInfo |
530bb7e83 重构详情页-商品介绍 |
53 54 55 56 57 58 59 |
state.tag = tag state.specification = specification state.evaluate = evaluate state.more = more }, CART: (state, number) => { state.cartNumber = number |
3cda19af7 详情页-售后保障 |
60 61 62 63 |
}, } const actions = { |
530bb7e83 重构详情页-商品介绍 |
64 65 |
// 获取详情 details({ commit, rootState }, param) { |
3cda19af7 详情页-售后保障 |
66 67 68 69 |
return new Promise((resolve, reject) => request({ url: read, data: param, success: ({ data: { data } }) => { |
530bb7e83 重构详情页-商品介绍 |
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
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 详情页-售后保障 |
88 89 90 91 92 93 94 95 |
commit('INIT', { carousel: data.pics, goodsInfo: { name: data.p_name, price: data.priceArea.Min_Price, discountPrice: data.priceArea.Min_Price - Number(data.priceArea.discount), tradeNumber: data.trade_num, }, |
530bb7e83 重构详情页-商品介绍 |
96 97 98 99 100 101 102 103 |
tag: data.tag, specification, evaluate: { rate: data.judgeInfo.good, tag: data.judge_tag, star: parseInt(5 * Number(data.judgeInfo.good.slice(0, -1)) / 100), }, more: data.prodIntro1.replace(/\<img/gi, '<img style="max-width:100%;height:auto"'), |
3cda19af7 详情页-售后保障 |
104 105 106 107 108 109 110 111 |
}) resolve(data) }, fail: (res) => { console.log('fail status ===>', res) }, })) }, |
530bb7e83 重构详情页-商品介绍 |
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
// 获取购物车列表 getCartNumber({ commit }, param) { return new Promise((resolve) => request({ url: cartList, data: param, success: ({ data: { data } }) => { console.log('cartData', data) let number = 0 for (let index = 0; index < data.length; index++) { number += Number(data[index].num) } commit('CART', number) }, })) }, |
3cda19af7 详情页-售后保障 |
127 128 129 130 131 132 133 134 |
} export default { namespaced: true, state, mutations, actions, } |