in src/framework/Persistant.ts [20:59]
load: function initPersistant(database:any, persistant?: PersistantConf, updateViewer?: any){
// 填入本地缓存值
const prefix = persistant?.localStorageKeyPrefix;
const useConfirm = persistant?.useConfirm;
if(prefix) {
const successCb = () => {
let localDb = {};
for(let key in localStorage) {
try {
if(_.startsWith(key, prefix)) {
_.set(localDb, key.substr(prefix.length), JSON.parse(localStorage[key]))
}
} catch(e){ // 加载值错了不能影响表单填写
console.log(e);
}
}
(persistant.override ?? _.assign)(database, localDb);
}
if(useConfirm && Object.keys(localStorage).find(f=> f.indexOf(prefix) === 0) && !confirming) {
// 防止同时多次弹框
confirming = true
Modal.confirm({
content: '是否恢复您上次填写过但未提交的内容?',
okText: '恢复',
cancelText: '取消',
onOk: () => {
confirming = false
successCb()
updateViewer()
},
onCancel: () => {
confirming = false
this.clear(persistant)
}
});
} else {
successCb()
}
}
},