admin/addon/cashier/source/os/store/index.js

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