import {defineStore} from 'pinia' import pinia from "~src/store/init" import appConfig from '~src/config/app'; import authStore from '~src/api/util/auth' import appStore from '~uti/storage' export const useAppStore = defineStore('main', { state: () =>({ //主题信息 theme: appStore.getStoreData('theme') || appConfig.theme, //用户可选择类型:auto,light, dark themeVal: appStore.getStoreData('themeVal') || '', //实际主题:light, dark color: appStore.getStoreData('color') || appConfig.color, homeTheme: appStore.getStoreData('homeTheme') || appConfig.homeTheme, //用户信息 token: appStore.getStoreData( 'token') || '', refreshToken: appStore.getStoreData('refreshToken') || '', tenantId: appStore.getStoreData('tenantId') || '', userInfo: appStore.getStoreData('userInfo') || {}, //菜单信息 menus: appStore.getStoreData('menus') || [], buttons: appStore.getStoreData('buttons') || {}, //项目合同段数据 projectContract: appStore.getStoreData('projectContract') || [], projectInfo: appStore.getStoreData('projectInfo') || {}, contractInfo: appStore.getStoreData('contractInfo') || {}, projectId: appStore.getStoreData('projectId') || '', contractId: appStore.getStoreData('contractId') || '', //其他配置信息 bubble: appStore.getStoreData('bubble') || false, orderServiceTipModal: appStore.getStoreData('orderServiceTipModal') ?? 1, //0不弹出,1弹出 shotWebRtc: appStore.getStoreData('shotWebRtc') || 0, //WebRtc截图方式: 0关闭,1开启 fullScreen: appStore.getStoreData('fullScreen') || 0, //全屏截图:0关闭,1开启 isCollapse: appStore.getStoreData('isCollapse') || false, //菜单折叠 isScreenShort: false, }), getters: { //主题信息 getTheme: state => state.theme, getThemeVal: state => state.themeVal, getColor: state => state.color, getHomeTheme: state => state.homeTheme, //用户信息 getToken: state => state.token, getRefreshToken: state => state.refreshToken, getTenantId: state => state.tenantId, getUserInfo: state => state.userInfo, //菜单信息 getMenus: state => state.menus, getButtons: state => state.buttons, //项目合同段数据 getProjectContract: state => state.projectContract, getProjectInfo: state => state.projectInfo, getContractInfo: state => state.contractInfo, getProjectId: state => state.projectId, getContractId: state => state.contractId, //其他配置信息 getBubble: state => state.bubble, getScreenShort: state => state.isScreenShort, getOrderServiceTipModal: state => state.orderServiceTipModal, getShotWebRtc: state => state.shotWebRtc, getFullScreen: state => state.fullScreen, getCollapse: state => state.isCollapse }, actions: { //主题信息 setTheme(value) { this.theme = value appStore.setStoreData('theme',value) }, setThemeVal(value) { this.themeVal = value appStore.setStoreData('themeVal',value) }, setColor(value) { this.color = value appStore.setStoreData('color',value) }, setHomeTheme(value) { this.homeTheme = value appStore.setStoreData('homeTheme',value) }, //用户信息 setToken(value){ this.token = value authStore.setToken(value) appStore.setStoreData('token',value) }, setRefreshToken(value){ this.refreshToken = value authStore.setRefreshToken(value) appStore.setStoreData('refreshToken',value) }, setTenantId(value){ this.tenantId = value appStore.setStoreData('tenantId',value) }, setUserInfo(value){ this.userInfo = value appStore.setStoreData('userInfo',value) }, //菜单信息 setMenus(value){ this.menus = value appStore.setStoreData('menus',value) }, setButtons(value){ this.buttons = value appStore.setStoreData('buttons',value) }, getButtonsVal(value) { return this.buttons[value] || false; }, //项目合同段数据 setProjectContract(value) { this.projectContract = value appStore.setStoreData('projectContract',value) }, setProjectInfo(value) { this.projectInfo = value appStore.setStoreData('projectInfo',value) }, setContractInfo(value) { this.contractInfo = value appStore.setStoreData('contractInfo',value) }, setProjectId(value) { this.projectId = value appStore.setStoreData('projectId',value) }, setContractId(value) { this.contractId = value appStore.setStoreData('contractId',value) }, //其他配置信息 setBubble(value) { this.bubble = value appStore.setStoreData('bubble',value) }, setOrderServiceTipModal(value) { this.orderServiceTipModal = value appStore.setStoreData('orderServiceTipModal',value) }, setScreenShort(value) { this.isScreenShort = value }, setShotWebRtc(value) { this.shotWebRtc = value appStore.setStoreData('shotWebRtc',value) }, setFullScreen(value) { this.fullScreen = value appStore.setStoreData('fullScreen',value) }, setCollapse(value) { //菜单折叠 this.isCollapse = value appStore.setStoreData('isCollapse',value) }, //清除缓存和token clearStoreData() { //清除状态 this.token = null this.refreshToken = null this.tenantId = null this.userInfo = null this.menus = null this.buttons = null this.projectContract = null this.projectInfo = null this.contractInfo = null this.projectId = null this.contractId = null this.orderServiceTipModal = null this.shotWebRtc = null this.fullScreen = null this.isCollapse = false //清除缓存 appStore.clearAllStore() authStore.removeToken() authStore.removeRefreshToken() }, } }) export default function useUserStoreWidthOut() { return useAppStore(pinia); }