import urlAlias from '../url' import request from '../request' const { read, cartList, makePost, } = urlAlias const state = { // 为配合参数选择框 goodInfo: {}, // 轮播图 carousel: [ '/static/img/detail/d9.png', ], // 商品基本信息 goodsInfo: { name: '暂无名称', price: '暂无价格', discountPrice: undefined, tradeNumber: undefined, }, // 商品介绍 // 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)' }, ], Tag: { Age: [], Colour: [], Eyeglasses: [], Gender: [], Hinge: [], Material: [], Rim: [], Shape: [], Style: [], }, // 评价 evaluate: { rate: '100%', star: 5, tag: [{ name: '价格实惠' }], }, // 商品详情 more: '', // 购物车数目 cartNumber: 0, // skuList skuList: [], postUrl: 'https://api.glass.xiuyetang.com/adv_pic/428_0_7.png', } const mutations = { INIT: (state, { goodInfo, carousel, goodsInfo, Tag, specification, evaluate, more, skuList }) => { state.goodInfo = goodInfo state.carousel = carousel state.goodsInfo = goodsInfo state.Tag = Tag state.specification = specification state.evaluate = evaluate state.more = more state.skuList = skuList // state.current = 1 }, CART: (state, number) => { state.cartNumber = number }, POST: (state, url) => { state.postUrl = url }, } const actions = { // 获取详情 details({ commit, rootState }, param) { // console.log('paramparamparamparamparam', param); return new Promise((resolve, reject) => request({ url: read, data: param, success: ({ data: { data } }) => { // console.log('======>>>>>>>>>>>>>>>>datadatadatadatadatadatadata<<<<<<<<<<<<<<<<<<<<<======', data) // console.log('rootStaterootStaterootStaterootState', rootState.details) const specification = rootState.details.specification == undefined ? [] : rootState .details.specification; specification[0].key = "frame_width"; specification[0].slength = data.frame_width; specification[1].key = "lens_width"; specification[1].slength = data.lens_width; specification[2].key = "glass_height"; specification[2].slength = data.glass_height; specification[3].key = "nose_width"; specification[3].slength = data.nose_bridge; specification[4].key = "leg_long"; specification[4].slength = data.leg_temple; specification[5].key = "weight"; specification[5].slength = data.frame_weight; const parameter = { frame_weight: data.frame_weight, frame_width: data.frame_width, glass_height: data.glass_height, nose_width: data.nose_bridge, lens_width: data.lens_width, leg_long: data.leg_temple, weight: data.frame_weight, } for (let index = 0; index < specification.length; index++) { if (specification[index].key !== 'weight') { specification[index].slength = `${parameter[specification[index].key]}mm` } else { if (parameter[specification[index].key] == 0) { specification[index].slength = '未知重量' } else { specification[index].slength = `${parameter[specification[index].key]}克` } } } const Tag = data.tag_defined if (Tag.Age == undefined || Tag.Age == null) { Tag.Age = [] } console.log('TagTagTagTagTagTagTag=======', Tag); commit('INIT', { goodInfo: data, skuList: data.sku, carousel: data.sku[0].sku_pic_arr_http, goodsInfo: { name: data.shop_wood_name, price: data.sales_price, discountPrice: data.sales_price - Number(0), tradeNumber: data.sales_num, }, Tag:Tag, specification, evaluate: { rate: 5, tag: data.judge.list, // star: parseInt(5 * Number(data.judgeInfo.good.slice(0, -1)) / 100), star: 5, }, // eslint-disable-next-line // more: data.prodIntro1.replace(/\ { console.log('fail status ===>', res) }, })) }, // 获取购物车列表 getCartNumber({ commit }, param) { return new Promise((resolve) => request({ url: cartList, data: param, success: ({ data: { data } }) => { let number = 0 for (let index = 0; index < data.length; index++) { number += Number(data[index].num) } commit('CART', number) }, })) }, // 生成分享海报 post({ commit }, param) { return new Promise((resolve) => request({ url: makePost, data: param, success: ({ data }) => { commit('POST', data.data) resolve() }, })) }, } export default { namespaced: true, state, mutations, actions, }