import Vue from 'vue' import Vuex from 'vuex' import utils from '../utils/utils.js' Vue.use(Vuex); //vue的插件机制 import api from '@/api/api.js' //Vuex.Store 构造器选项 const store = new Vuex.Store({ state: { configList: {}, //配置列表 userInfo: {}, //用户信息 riceInfo: {}, //用户相关信息 category: [], //分类信息 payOrderProduct: [], //支付订单中的商品 promotionUrl : '',//分享二维码 }, getters: {}, mutations: { // 初始化配置 initConfig(state) { api('getConfig', res => { const configList = { ...state.configList, } if (res.code == 200) { res.result.forEach(n => { configList[n.keyName] = n.keyContent; configList[n.keyName + '_keyValue'] = n.keyValue; }); } state.configList = configList uni.$emit('initConfig', state.configList) }) // let config = ['getPrivacyPolicy', 'getUserAgreement'] // config.forEach(k => { // api(k, res => { // if (res.code == 200) { // state.configList[k] = res.result // } // }) // }) }, login(state, config = {}) { uni.showLoading({ title: '登录中...' }) uni.login({ success : res => { if (res.errMsg != "login:ok") { return } let data = { code: res.code, } if (uni.getStorageSync('shareId')) { data.shareId = uni.getStorageSync('shareId') } api('wxLogin', data, res => { uni.hideLoading() if (res.code != 200) { return } state.userInfo = res.result.userInfo uni.setStorageSync('token', res.result.token) if(config.path){ let path = config.path delete config.path delete config.shareId let para = utils.objectToUrlParams(config) uni.reLaunch({ url: `${path}?${para}`, }) return } if (!state.userInfo.nickName || !state.userInfo.headImage || !state.userInfo.phone ) { uni.navigateTo({ url: '/pages_order/auth/wxUserInfo' }) } else { utils.navigateBack(-1) } }) } }) }, getUserInfo(state) { api('getInfo', res => { if (res.code == 200) { state.userInfo = res.result if (!state.userInfo.nickName || !state.userInfo.headImage || !state.userInfo.phone ) { uni.showModal({ title: '申请获取您的信息!', cancelText: '稍后补全', confirmText: '现在补全', success(e) { if (e.confirm) { uni.navigateTo({ url: '/pages_order/auth/wxUserInfo' }) } } }) } } }) }, getRiceInfo(state) { api('getRiceInfo', { token: uni.getStorageSync('token') || '' }, res => { if (res.code == 200) { state.riceInfo = res.result } }) }, // 退出登录 logout(state, reLaunch = false) { // uni.showModal({ // title: '确认退出登录吗', // success(r) { // if (r.confirm) { // state.userInfo = {} // uni.removeStorageSync('token') // uni.reLaunch({ // url: '/pages/index/index' // }) // } // } // }) state.userInfo = {} uni.removeStorageSync('token') if(reLaunch){ uni.reLaunch({ url: '/pages/index/index' }) } }, getQrCode(state) { let that = this; if(!uni.getStorageSync('token')){ return } uni.getImageInfo({ src: `${Vue.prototype.$config.baseUrl}/info_common/getInviteCode?token=${uni.getStorageSync('token')}`, success : res => { that.commit('setPromotionUrl', res.path) }, fail : err => { } }) }, // 查询分类接口 getCategoryList(state) { api('getCategoryPidList', res => { if (res.code == 200) { state.category = res.result } }) }, // 设置支付订单中的商品 setPayOrderProduct(state, data) { state.payOrderProduct = data }, setPromotionUrl(state, data){ state.promotionUrl = data }, }, actions: {}, }) export default store