2022-01-03 22:20:10 +08:00
|
|
|
import type { Ref } from 'vue';
|
2021-11-20 20:14:02 +08:00
|
|
|
import { defineStore } from 'pinia';
|
2022-01-07 18:51:06 +08:00
|
|
|
import { useReload, useBoolean } from '@/hooks';
|
2021-08-13 14:22:35 +08:00
|
|
|
|
2022-01-03 22:20:10 +08:00
|
|
|
interface AppStore {
|
|
|
|
/** 重载页面的标志 */
|
|
|
|
reloadFlag: Ref<boolean>;
|
|
|
|
/**
|
|
|
|
* 触发重载页面
|
|
|
|
* @param duration - 延迟时间(ms, 默认0)
|
|
|
|
*/
|
|
|
|
handleReload(duration?: number): void;
|
2022-01-07 18:51:06 +08:00
|
|
|
/** 设置抽屉可见状态 */
|
|
|
|
settingDrawerVisible: Ref<boolean>;
|
|
|
|
/** 打开设置抽屉 */
|
|
|
|
openSettingDrawer(): void;
|
|
|
|
/** 关闭设置抽屉 */
|
|
|
|
closeSettingDrawer(): void;
|
|
|
|
/** 切换抽屉可见状态 */
|
|
|
|
toggleSettingdrawerVisible(): void;
|
2021-09-01 17:43:25 +08:00
|
|
|
}
|
|
|
|
|
2022-01-03 22:20:10 +08:00
|
|
|
export const useAppStore = defineStore('app-store', () => {
|
|
|
|
// 重新加载页面
|
|
|
|
const { reloadFlag, handleReload } = useReload();
|
2021-09-07 17:03:59 +08:00
|
|
|
|
2022-01-07 18:51:06 +08:00
|
|
|
// 设置抽屉
|
|
|
|
const {
|
|
|
|
bool: settingDrawerVisible,
|
|
|
|
setTrue: openSettingDrawer,
|
|
|
|
setFalse: closeSettingDrawer,
|
|
|
|
toggle: toggleSettingdrawerVisible
|
|
|
|
} = useBoolean();
|
|
|
|
|
2022-01-03 22:20:10 +08:00
|
|
|
const appStore: AppStore = {
|
|
|
|
reloadFlag,
|
2022-01-07 18:51:06 +08:00
|
|
|
handleReload,
|
|
|
|
settingDrawerVisible,
|
|
|
|
openSettingDrawer,
|
|
|
|
closeSettingDrawer,
|
|
|
|
toggleSettingdrawerVisible
|
2022-01-03 22:20:10 +08:00
|
|
|
};
|
2021-08-13 14:22:35 +08:00
|
|
|
|
2022-01-03 22:20:10 +08:00
|
|
|
return appStore;
|
2021-08-13 14:22:35 +08:00
|
|
|
});
|