modal.js
1.01 KB
import { defineStore } from 'pinia';
const modal = defineStore({
id: 'modal',
state: () => ({
auth: '', // 授权弹框 accountLogin|smsLogin|resetPassword|changeMobile|changePassword|changeUsername
share: false, // 分享弹框
menu: false, // 快捷菜单弹框
advHistory: [], // 广告弹框记录
lastTimer: {
// 短信验证码计时器,为了防止刷新请求做了持久化
smsLogin: 0,
changeMobile: 0,
resetPassword: 0,
changePassword: 0,
},
}),
persist: {
enabled: true,
strategies: [
{
key: 'modal-store',
paths: ['lastTimer', 'advHistory'],
// 与 action.js 同样的修复:插件默认 save 用 uni.setStorage(localStorage)、load 用 window.sessionStorage,
// 两端不一致会导致 H5 刷新后数据丢失。显式指定 storage 为 localStorage,保证存读同源。
storage: typeof window !== 'undefined' ? window.localStorage : undefined,
},
],
},
});
export default modal;