256 lines
6.4 KiB
JavaScript
Executable File
256 lines
6.4 KiB
JavaScript
Executable File
// 应用数据持久化存储
|
||
|
||
import {getAddonIsExist, getDefaultImg, getThemeConfig, getMemberSearchWayConfig} from '@/api/config.js'
|
||
import {getUserDetail, getUserGroupAuth} from '@/api/user.js'
|
||
import {getStoreInfo} from '@/api/store.js'
|
||
import util from '@/common/js/util';
|
||
|
||
const state = {
|
||
rootSize: '100px',
|
||
firstMenuIndex: 0,
|
||
secondMenuIndex: -1,
|
||
thirdMenuIndex: -1,
|
||
currRoute: '',
|
||
globalMemberInfo: null,
|
||
globalStoreId: 0,
|
||
globalStoreInfo: null,
|
||
userInfo: null,
|
||
addon: [],
|
||
menu: [],
|
||
defaultImg: {
|
||
goods: '',
|
||
head: '',
|
||
store: '',
|
||
article: ''
|
||
},
|
||
themeConfig: {
|
||
title: '',
|
||
name: '',
|
||
color: ''
|
||
},
|
||
memberSearchWayConfig : {
|
||
way : 'exact' // // exact:精确搜索,list:列表搜索
|
||
},
|
||
isSocketConnect:false,
|
||
overallAudio:null,
|
||
overallAudioSrc:'',
|
||
overallAudioSrcConfig:{},
|
||
overallAudioBindClientId:'',
|
||
overallAudioIsPlay:false,
|
||
overallAudioIsEnded:true,
|
||
};
|
||
|
||
const mutations = {
|
||
setRootSize(state, value) {
|
||
state.rootSize = value;
|
||
},
|
||
setMenuIndex(state, value) {
|
||
state[value.level] = value.index;
|
||
},
|
||
setCurrRoute(state, value) {
|
||
state.currRoute = value;
|
||
},
|
||
setGlobalMemberInfo(state, value) {
|
||
state.globalMemberInfo = value;
|
||
if (value) {
|
||
uni.setStorageSync('globalMemberInfo', value);
|
||
} else {
|
||
uni.removeStorageSync('globalMemberInfo');
|
||
}
|
||
},
|
||
setGlobalStoreId(state, value) {
|
||
state.globalStoreId = value;
|
||
if (value) {
|
||
uni.setStorageSync('globalStoreId', value);
|
||
} else {
|
||
uni.removeStorageSync('globalStoreId');
|
||
}
|
||
},
|
||
setGlobalStoreInfo(state, value) {
|
||
state.globalStoreInfo = value;
|
||
if (value) {
|
||
uni.setStorageSync('globalStoreInfo', value);
|
||
} else {
|
||
uni.removeStorageSync('globalStoreInfo');
|
||
}
|
||
},
|
||
setAddon(state, value) {
|
||
state.addon = value;
|
||
if (value) {
|
||
uni.setStorageSync('addon', value);
|
||
} else {
|
||
uni.removeStorageSync('addon');
|
||
}
|
||
},
|
||
setUserInfo(state, value) {
|
||
state.userInfo = value;
|
||
if (value) {
|
||
uni.setStorageSync('userInfo', value);
|
||
} else {
|
||
uni.removeStorageSync('userInfo');
|
||
}
|
||
},
|
||
setMenu(state, value) {
|
||
state.menu = value;
|
||
if (value) {
|
||
uni.setStorageSync('menu', value);
|
||
} else {
|
||
uni.removeStorageSync('menu');
|
||
}
|
||
},
|
||
setDefaultImg(state, value) {
|
||
state.defaultImg = value;
|
||
uni.setStorageSync('defaultImg', value);
|
||
},
|
||
setThemeConfig(state, value) {
|
||
state.themeConfig = value;
|
||
uni.setStorageSync('themeConfig', value);
|
||
},
|
||
setMemberSearchWayConfig(state, value) {
|
||
state.memberSearchWayConfig = value;
|
||
uni.setStorageSync('memberSearchWayConfig', value);
|
||
},
|
||
setIsSocketConnect(state,value){
|
||
state.isSocketConnect = value
|
||
},
|
||
initOverallAudio(state,value){
|
||
state.overallAudioSrc = util.img(value.order_pay_audio)
|
||
state.overallAudioSrcConfig = value
|
||
state.overallAudio = new Audio(state.overallAudioSrc);
|
||
state.overallAudio.addEventListener('ended',()=>{
|
||
state.overallAudioIsEnded = true
|
||
});
|
||
},
|
||
setOverallAudioBindClientId(state,value){
|
||
state.overallAudioBindClientId = value
|
||
},
|
||
overallAudioPlay(state,key){
|
||
if(state.overallAudioIsPlay&&state.overallAudioIsEnded){
|
||
if(state.overallAudioSrc != util.img(state.overallAudioSrcConfig[key])){
|
||
state.overallAudioSrc = util.img(state.overallAudioSrcConfig [key])
|
||
state.overallAudio.src = util.img(state.overallAudioSrcConfig [key])
|
||
state.overallAudio.load();
|
||
}
|
||
state.overallAudio.play()
|
||
state.overallAudioIsEnded = false
|
||
}
|
||
},
|
||
setOverallAudioIsPlay(state,value){
|
||
state.overallAudioIsPlay = value
|
||
}
|
||
};
|
||
|
||
const actions = {
|
||
getStoreInfoFn(context, params) {
|
||
getStoreInfo().then((res) => {
|
||
if (res.code >= 0) {
|
||
if (res.data.is_frozen == 1) {
|
||
uni.navigateTo({
|
||
url: '/pages/store/close'
|
||
});
|
||
return;
|
||
}
|
||
context.commit('setGlobalStoreInfo', res.data);
|
||
if (params && params.callback) params.callback(res.data);
|
||
}
|
||
});
|
||
},
|
||
getAddonIsExistFn(context) {
|
||
getAddonIsExist().then((res) => {
|
||
if (res.code == 0) {
|
||
context.commit('setAddon', res.data)
|
||
}
|
||
})
|
||
},
|
||
getUserInfoFn(context) {
|
||
getUserDetail().then((res) => {
|
||
if (res.code == 0) {
|
||
context.commit('setUserInfo', res.data)
|
||
}
|
||
})
|
||
},
|
||
// 查询菜单权限
|
||
getUserGroupFn(context) {
|
||
getUserGroupAuth().then((res) => {
|
||
if (res.code == 0) {
|
||
if (res.code == 0 && res.data) {
|
||
let menu = require('@/common/menu/store.js').default ?? [];
|
||
let addon = this.state.app.addon;
|
||
const checkAuth = function (menu, auth) {
|
||
let newMenu = [];
|
||
menu.map(item => {
|
||
if (item.children) {
|
||
item.children = checkAuth(item.children, auth);
|
||
}
|
||
if (item.addon && addon.indexOf(item.addon) == -1)
|
||
return;
|
||
if (item.name && !res.data.is_admin && auth.length && auth.indexOf(item.name) == -1) {
|
||
newMenu.push({});
|
||
return;
|
||
}
|
||
|
||
newMenu.push(item);
|
||
});
|
||
return newMenu;
|
||
};
|
||
menu = checkAuth(JSON.parse(JSON.stringify(menu)), res.data.menu_array ? res.data.menu_array.split(',') : []);
|
||
context.commit('setMenu', menu);
|
||
}
|
||
}
|
||
});
|
||
},
|
||
getDefaultImgFn(context) {
|
||
getDefaultImg().then((res) => {
|
||
if (res.code == 0) {
|
||
context.commit('setDefaultImg', res.data)
|
||
}
|
||
})
|
||
},
|
||
getThemeConfigFn(context) {
|
||
getThemeConfig().then((res) => {
|
||
if (res.code == 0) {
|
||
context.commit('setThemeConfig', res.data)
|
||
}else{
|
||
context.commit('setThemeConfig', {
|
||
title : '橙色', // 标题
|
||
name : 'orange', // 标识
|
||
color : '#FA6400' // 主色调
|
||
})
|
||
}
|
||
});
|
||
},
|
||
getMemberSearchWayConfigFn(context){
|
||
getMemberSearchWayConfig().then((res)=>{
|
||
if (res.code == 0) {
|
||
context.commit('setMemberSearchWayConfig', res.data)
|
||
}else{
|
||
context.commit('setMemberSearchWayConfig', {
|
||
way : 'exact', // exact:精确搜索,list:列表搜索
|
||
})
|
||
}
|
||
});
|
||
},
|
||
setIsSocketConnect(context,value){
|
||
context.commit('setIsSocketConnect',value)
|
||
},
|
||
initOverallAudio(context,value){
|
||
context.commit('initOverallAudio',value)
|
||
},
|
||
setOverallAudioBindClientId(context,value){
|
||
context.commit('setOverallAudioBindClientId',value)
|
||
},
|
||
overallAudioPlay(context,key){
|
||
context.commit('overallAudioPlay',key)
|
||
},
|
||
setOverallAudioIsPlay(context,value){
|
||
context.commit('setOverallAudioIsPlay',value)
|
||
}
|
||
};
|
||
|
||
export default {
|
||
namespaced: true,
|
||
state,
|
||
mutations,
|
||
actions
|
||
}
|