2022-01-16 20:13:11 +08:00
|
|
|
import { nextTick } from 'vue';
|
2021-11-20 20:14:02 +08:00
|
|
|
import { defineStore } from 'pinia';
|
2021-08-13 14:22:35 +08:00
|
|
|
|
2022-01-16 20:13:11 +08:00
|
|
|
interface AppState {
|
|
|
|
/** 重载页面(控制页面的显示) */
|
|
|
|
reloadFlag: boolean;
|
|
|
|
/** 项目配置的抽屉可见状态 */
|
|
|
|
settingDrawerVisible: boolean;
|
2022-01-08 20:49:21 +08:00
|
|
|
/** 侧边栏折叠状态 */
|
2022-01-16 20:13:11 +08:00
|
|
|
siderCollapse: boolean;
|
2022-01-08 20:49:21 +08:00
|
|
|
/** vertical-mix模式下 侧边栏的固定状态 */
|
2022-01-16 20:13:11 +08:00
|
|
|
mixSiderFixed: boolean;
|
2021-09-01 17:43:25 +08:00
|
|
|
}
|
|
|
|
|
2022-01-16 20:13:11 +08:00
|
|
|
export const useAppStore = defineStore('app-store', {
|
|
|
|
state: (): AppState => ({
|
|
|
|
reloadFlag: true,
|
|
|
|
settingDrawerVisible: false,
|
|
|
|
siderCollapse: false,
|
2022-03-12 16:21:40 +08:00
|
|
|
mixSiderFixed: false,
|
2022-01-16 20:13:11 +08:00
|
|
|
}),
|
|
|
|
actions: {
|
|
|
|
/**
|
|
|
|
* 重载页面
|
|
|
|
* @param duration - 重载的延迟时间(ms)
|
|
|
|
*/
|
|
|
|
async reloadPage(duration = 0) {
|
|
|
|
this.reloadFlag = false;
|
|
|
|
await nextTick();
|
|
|
|
if (duration) {
|
|
|
|
setTimeout(() => {
|
|
|
|
this.reloadFlag = true;
|
|
|
|
}, duration);
|
|
|
|
} else {
|
|
|
|
this.reloadFlag = true;
|
|
|
|
}
|
2022-01-21 23:59:14 +08:00
|
|
|
setTimeout(() => {
|
|
|
|
document.documentElement.scrollTo({ left: 0, top: 0 });
|
|
|
|
}, 100);
|
2022-01-16 20:13:11 +08:00
|
|
|
},
|
|
|
|
/** 打开设置抽屉 */
|
|
|
|
openSettingDrawer() {
|
|
|
|
this.settingDrawerVisible = true;
|
|
|
|
},
|
|
|
|
/** 关闭设置抽屉 */
|
|
|
|
closeSettingDrawer() {
|
|
|
|
this.settingDrawerVisible = false;
|
|
|
|
},
|
|
|
|
/** 切换抽屉可见状态 */
|
|
|
|
toggleSettingdrawerVisible() {
|
|
|
|
this.settingDrawerVisible = !this.settingDrawerVisible;
|
|
|
|
},
|
|
|
|
/** 设置侧边栏折叠状态 */
|
|
|
|
setSiderCollapse(collapse: boolean) {
|
|
|
|
this.siderCollapse = collapse;
|
|
|
|
},
|
|
|
|
/** 折叠/展开 侧边栏折叠状态 */
|
|
|
|
toggleSiderCollapse() {
|
|
|
|
this.siderCollapse = !this.siderCollapse;
|
|
|
|
},
|
|
|
|
/** 设置 vertical-mix模式下 侧边栏的固定状态 */
|
|
|
|
setMixSiderIsFixed(isFixed: boolean) {
|
|
|
|
this.mixSiderFixed = isFixed;
|
2022-01-18 01:17:09 +08:00
|
|
|
},
|
|
|
|
/** 设置 vertical-mix模式下 侧边栏的固定状态 */
|
|
|
|
toggleMixSiderFixed() {
|
|
|
|
this.mixSiderFixed = !this.mixSiderFixed;
|
2022-03-12 16:21:40 +08:00
|
|
|
},
|
|
|
|
},
|
2021-08-13 14:22:35 +08:00
|
|
|
});
|