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.
212 lines
5.2 KiB
212 lines
5.2 KiB
// +----------------------------------------------------------------------
|
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
|
// +----------------------------------------------------------------------
|
|
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
|
// +----------------------------------------------------------------------
|
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
|
// +----------------------------------------------------------------------
|
|
// | Author: CRMEB Team <admin@crmeb.com>
|
|
// +----------------------------------------------------------------------
|
|
import Auth from '../../libs/wechat';
|
|
import store from "../index";
|
|
import { tokenIsExistApi,loginConfigApi,getTheme } from '@/api/api.js';
|
|
import {
|
|
getOrderPayConfig
|
|
} from '../../api/order.js';
|
|
import {
|
|
getUserInfo,
|
|
computeUser
|
|
} from "../../api/user.js";
|
|
import {
|
|
LOGIN_STATUS,
|
|
UID,
|
|
PLATFORM,
|
|
BOTTOM_NAVIGATION_ISCUSTOM
|
|
} from '../../config/cache';
|
|
import Cache from '../../utils/cache';
|
|
import {
|
|
USER_INFO
|
|
} from '../../config/cache';
|
|
let cartArr = [{
|
|
name: "微信支付",
|
|
icon: "icon-weixinzhifu1",
|
|
value: 'weixin',
|
|
title: '微信快捷支付',
|
|
payStatus: 1,
|
|
},
|
|
{
|
|
name: "余额支付",
|
|
icon: "icon-yuezhifu",
|
|
value: 'yue',
|
|
title: '可用余额:',
|
|
payStatus: 1,
|
|
userBalance: ''
|
|
}
|
|
];
|
|
const state = {
|
|
token: Cache.get(LOGIN_STATUS) || '',
|
|
backgroundColor: "#fff",
|
|
userInfo: Cache.get(USER_INFO) ? JSON.parse(Cache.get(USER_INFO)) : null,
|
|
uid: Cache.get(UID) || null,
|
|
homeActive: false,
|
|
chatUrl: Cache.get('chatUrl') || '',
|
|
systemPlatform: Cache.get(PLATFORM) ? Cache.get(PLATFORM) : '',
|
|
productType: Cache.get('productType') || '',
|
|
bottomNavigationIsCustom: Cache.get('BOTTOM_NAVIGATION_ISCUSTOM') ? Cache.get('BOTTOM_NAVIGATION_ISCUSTOM') : false, //是否使用自定义导航
|
|
};
|
|
|
|
const mutations = {
|
|
LOGIN(state, opt) {
|
|
state.token = opt.token;
|
|
Cache.set(LOGIN_STATUS, opt.token);
|
|
},
|
|
SETUID(state, val) {
|
|
state.uid = val;
|
|
Cache.set(UID, val);
|
|
},
|
|
UPDATE_LOGIN(state, token) {
|
|
state.token = token;
|
|
},
|
|
LOGOUT(state) {
|
|
state.token = undefined;
|
|
state.uid = undefined
|
|
Cache.clear(LOGIN_STATUS);
|
|
Cache.clear(UID);
|
|
Cache.clear(USER_INFO);
|
|
},
|
|
BACKGROUND_COLOR(state, color) {
|
|
state.color = color;
|
|
document.body.style.backgroundColor = color;
|
|
},
|
|
UPDATE_USERINFO(state, userInfo) {
|
|
state.userInfo = userInfo;
|
|
Cache.set(USER_INFO, userInfo);
|
|
},
|
|
OPEN_HOME(state) {
|
|
state.homeActive = true;
|
|
},
|
|
CLOSE_HOME(state) {
|
|
state.homeActive = false;
|
|
},
|
|
SET_CHATURL(state, chatUrl) {
|
|
state.chatUrl = chatUrl;
|
|
},
|
|
SYSTEM_PLATFORM(state, systemPlatform) {
|
|
state.systemPlatform = systemPlatform;
|
|
Cache.set(PLATFORM, systemPlatform);
|
|
},
|
|
//更新useInfo数据
|
|
changInfo(state, payload) {
|
|
state.userInfo[payload.amount1] = payload.amount2;
|
|
Cache.set(USER_INFO, state.userInfo);
|
|
},
|
|
//商品类型,用于区分一般商品
|
|
PRODUCT_TYPE(state, productType) {
|
|
state.productType = productType;
|
|
Cache.set('productType', productType);
|
|
},
|
|
/** 是否使用自定义导航 **/
|
|
BottomNavigationIsCustom: (state, bottomNavigationIsCustom) => {
|
|
state.bottomNavigationIsCustom = bottomNavigationIsCustom
|
|
Cache.set(BOTTOM_NAVIGATION_ISCUSTOM, bottomNavigationIsCustom);
|
|
},
|
|
//清除所有本地缓存
|
|
clearStorage(state) {
|
|
uni.clearStorageSync();
|
|
},
|
|
};
|
|
|
|
const actions = {
|
|
USERINFO({
|
|
state,
|
|
commit
|
|
}, force) {
|
|
return new Promise(reslove => {
|
|
getUserInfo().then(res => {
|
|
commit("UPDATE_USERINFO", res.data);
|
|
reslove(res.data);
|
|
});
|
|
}).catch(() => {
|
|
commit("LOGOUT");
|
|
});
|
|
},
|
|
getPayConfig({
|
|
state,
|
|
commit
|
|
}, force) {
|
|
return new Promise(reslove => {
|
|
getOrderPayConfig().then(res => {
|
|
let data = res.data;
|
|
cartArr[0].payStatus = data.payWechatOpen ? 1 : 0;
|
|
cartArr[1].payStatus = data.yuePayStatus ? 1 : 0;
|
|
cartArr[1].userBalance = data.userBalance ? data.userBalance : 0;
|
|
// #ifdef H5
|
|
// if (Auth.isWeixin()) {
|
|
// cartArr[2].payStatus = 0;
|
|
// } else {
|
|
// cartArr[2].payStatus = data.aliPayStatus ? 1 : 0;
|
|
// }
|
|
// #endif
|
|
// #ifdef APP-PLUS
|
|
// cartArr[2].payStatus = data.aliPayStatus ? 1 : 0;
|
|
// #endif
|
|
let cartArrs = cartArr.filter(e => e.payStatus === 1);
|
|
reslove({
|
|
userBalance: data.userBalance,
|
|
payConfig: cartArrs
|
|
});
|
|
})
|
|
}).catch(err => {
|
|
return util.Tips({
|
|
title: err
|
|
});
|
|
});
|
|
},
|
|
/**
|
|
* 校验token是否有效,true为有效,false为无效
|
|
*/
|
|
GetTokenIsExist({
|
|
state,
|
|
commit
|
|
}, force) {
|
|
return new Promise(reslove => {
|
|
tokenIsExistApi().then(res => {
|
|
if (!res.data) {
|
|
store.commit('UPDATE_LOGIN', '');
|
|
store.commit('UPDATE_USERINFO', {});
|
|
store.commit('SETUID', '');
|
|
}
|
|
reslove(res.data);
|
|
});
|
|
}).catch(err => {
|
|
return util.Tips({
|
|
title: err
|
|
});
|
|
});
|
|
},
|
|
//获取diy颜色配置
|
|
GetThemeConfig({
|
|
state,
|
|
commit
|
|
}) {
|
|
return new Promise(reslove => {
|
|
getTheme().then(resP => {
|
|
Cache.set('theme', `theme${Number(resP.data.value)}`);
|
|
// #ifdef H5
|
|
window.document.documentElement.setAttribute('data-theme', state.globalData.theme);
|
|
// #endif
|
|
})
|
|
}).catch(err => {
|
|
return util.Tips({
|
|
title: err
|
|
});
|
|
});
|
|
},
|
|
};
|
|
|
|
|
|
export default {
|
|
state,
|
|
mutations,
|
|
actions
|
|
};
|