158 lines
3.3 KiB
JavaScript
158 lines
3.3 KiB
JavaScript
import Vue from 'vue'
|
|
import Vuex from 'vuex'
|
|
import Http from '../common/js/http.js'
|
|
Vue.use(Vuex)
|
|
|
|
const store = new Vuex.Store({
|
|
state: {
|
|
rootSize: '100px',
|
|
first: 0,
|
|
second: -1,
|
|
third: -1,
|
|
currRoute: '',
|
|
siteInfo: null,
|
|
memberInfo: null,
|
|
pendOrderNum: 0,
|
|
storeInfo: null,
|
|
userInfo: null,
|
|
addon: [],
|
|
menu: [],
|
|
defaultImg: {
|
|
goods: '',
|
|
head: '',
|
|
store: '',
|
|
article: ''
|
|
},
|
|
},
|
|
mutations: {
|
|
setRootSize(state, value) {
|
|
state.rootSize = value;
|
|
},
|
|
setMemuIndex(state, value) {
|
|
state[value.level] = value.index;
|
|
},
|
|
setCurrRoute(state, value) {
|
|
state.currRoute = value;
|
|
},
|
|
setSiteInfo(state, value) {
|
|
state.siteInfo = value;
|
|
},
|
|
setMemberInfo(state, value) {
|
|
state.memberInfo = value;
|
|
},
|
|
setPendOrderNum(state, value) {
|
|
state.pendOrderNum = value;
|
|
},
|
|
setStoreInfo(state, value) {
|
|
state.storeInfo = value;
|
|
uni.setStorageSync('store_info', value);
|
|
},
|
|
setAddon(state, value) {
|
|
state.addon = value;
|
|
},
|
|
setUserInfo(state, value) {
|
|
state.userInfo = value;
|
|
},
|
|
setMenu(state, value) {
|
|
state.menu = value;
|
|
},
|
|
setDefaultImg(state, value) {
|
|
uni.setStorageSync('default_img', value)
|
|
state.defaultImg = value;
|
|
},
|
|
},
|
|
actions: {
|
|
getSiteInfo() {
|
|
Http.sendRequest({
|
|
url: '/siteapi/site/info',
|
|
success: res => {
|
|
if (res.code == 0) {
|
|
this.commit('setSiteInfo', res.data)
|
|
}
|
|
}
|
|
})
|
|
},
|
|
getStoreInfo(state, params) {
|
|
Http.sendRequest({
|
|
url: '/cashier/storeapi/store/info',
|
|
success: res => {
|
|
if (res.code == 0) {
|
|
|
|
if (res.data && res.data.status == 0) {
|
|
uni.navigateTo({
|
|
url: '/pages/store/close'
|
|
});
|
|
return;
|
|
}
|
|
|
|
this.commit('setStoreInfo', res.data);
|
|
if (params && params.callback) params.callback();
|
|
}
|
|
}
|
|
})
|
|
},
|
|
getAddonIsExit() {
|
|
Http.sendRequest({
|
|
url: '/storeapi/addon/addonisexit',
|
|
success: res => {
|
|
if (res.code == 0) {
|
|
this.commit('setAddon', res.data)
|
|
}
|
|
}
|
|
})
|
|
},
|
|
getUserInfo() {
|
|
Http.sendRequest({
|
|
url: '/cashier/storeapi/user/userinfo',
|
|
success: res => {
|
|
if (res.code == 0) {
|
|
this.commit('setUserInfo', res.data)
|
|
}
|
|
}
|
|
})
|
|
},
|
|
getUserGroup() {
|
|
Http.sendRequest({
|
|
url: '/cashier/storeapi/user/usergroupauth',
|
|
success: res => {
|
|
if (res.code == 0) {
|
|
if (res.code == 0 && res.data) {
|
|
let menu = require('@/common/menu/store.js').default ?? [];
|
|
let addon = this.state.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)
|
|
return;
|
|
newMenu.push(item);
|
|
})
|
|
return newMenu;
|
|
}
|
|
menu = checkAuth(JSON.parse(JSON.stringify(menu)), res.data.menu_array ?
|
|
res.data.menu_array.split(',') : []);
|
|
this.commit('setMenu', menu);
|
|
}
|
|
}
|
|
}
|
|
})
|
|
},
|
|
getDefautlImg() {
|
|
Http.sendRequest({
|
|
url: '/api/config/defaultimg',
|
|
success: res => {
|
|
if (res.code == 0) {
|
|
this.commit('setDefaultImg', res.data)
|
|
}
|
|
}
|
|
})
|
|
},
|
|
}
|
|
})
|
|
export default store
|