You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

106 lines
3.1 KiB

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