import Vue from 'vue' import Vuex from 'vuex' import user from '@/store/modules/user' import getters from './getters' import { getConfigList } from '@/api/system/configList' import { getPersonalInfo } from "@/api/system/personal.js" import { setOpenIdKey } from '@/utils/auth' Vue.use(Vuex) const store = new Vuex.Store({ state : { price_config : {}, configList : {}, configMap : {}, position : {},//用户选择的定位信息 buyInfo : { teacher : null,//用户选择的购买老师 },//用户选择的购买信息 userInfo : {},//用户信息 //会员泽口 memberRate : 1, //技师等级规则列表 teacherLevelList : [], //新人优惠劵 NewUserCoupon : {}, }, mutations : { // 初始化配置 initConfig(state) { const price_config = uni.getStorageSync('price_config') if(price_config){ state.price_config = price_config } const teacherLevelList = uni.getStorageSync('teacherLevelList') if(teacherLevelList){ state.teacherLevelList = teacherLevelList } getConfigList().then(res => { const configList = { ...state.configList, } state.teacherLevelList = [] res.forEach(n => { configList[n.paramCode] = n.paramValueText; configList[n.paramCode + '_keyValue'] = n.keyValue; state.configMap[n.paramCode] = n; if(n.paramCode == 'price_config'){ state.price_config = JSON.parse(n.paramValueText) uni.setStorageSync('price_config', state.price_config) } if(n.paramClass == 'order_mall'){ state.teacherLevelList.push(n) } }); uni.setStorageSync('teacherLevelList', state.teacherLevelList) console.log('state.teacherLevelList', state.teacherLevelList) state.configList = configList uni.$emit('initConfig', state.configList) }) }, setPosition(state, position){ state.position = position; }, setUserInfo(state, userInfo){ state.userInfo = userInfo; setOpenIdKey(userInfo.openId) }, setNewUserCoupon(state, coupon){ state.NewUserCoupon = coupon }, getUserInfo(state){ getPersonalInfo().then(res=>{ if(res&&(res.id || res.id === 0)){ state.userInfo = res; let memberDiscountKey = ['', 'new', 'regular', 'silver', 'gold'] let key = memberDiscountKey[res.levelKey] if (state.price_config && key) { state.memberRate = state.price_config.memberDiscount[key] || 1 console.log('state.memberRate', state.memberRate); } } }) }, }, modules: { user }, getters }) export default store