Files
threeonecheck_web/unpackage/dist/build/mp-weixin/utils/useDraftCache.js

2 lines
1.3 KiB
JavaScript

"use strict";const e=require("../common/vendor.js"),a=require("./draftCache.js");exports.useDraftCache=function(r){const{getKey:t,getPayload:o,hasContent:l=a.defaultHasContent,applyPayload:n,clearForm:s,canSave:u=(()=>!0),requireInitialized:i=!1,restoreToast:v="已自动恢复您上次未提交的内容",clearToast:c="草稿已清空",showRestoreToast:f=!0,onAfterRestore:d,getFallbackKeys:h}=r,D=e.ref(!1),T=e.ref(!1),m=e.ref(!1),y=e.ref(!1),g=a=>{e.nextTick$1((()=>{m.value=!1,y.value=!0,null==a||a()}))},b=()=>{if(m.value)return;if(i&&!y.value)return;if(!u())return;const e=t(),r=o();if(!l(r))return a.removeDraft(e),void(D.value=!1);a.saveDraftToStorage(e,r),D.value=!0};return{hasDraft:D,showRestoreBanner:T,isRestoring:m,isInitialized:y,save:b,clear:(r=!0)=>{a.removeDraft(t()),D.value=!1,T.value=!1,m.value=!0,s(),g(),r&&e.index.showToast({title:c,icon:"none"})},restore:()=>{const r=t(),{data:o,fromFallback:s,fallbackKey:u}=a.loadDraftWithFallback(r,(null==h?void 0:h())||[]);if(!o||!l(o))return y.value=!0,!1;m.value=!0;try{return n(o),D.value=!0,T.value=!0,null==d||d(o),s&&u&&(a.saveDraftToStorage(r,o),a.removeDraft(u)),g((()=>{f&&e.index.showToast({title:v,icon:"none",duration:2500})})),!0}catch(i){return console.error("[useDraftCache] 恢复草稿失败:",i),m.value=!1,y.value=!0,!1}},bindAutoSave:(a,r={})=>{e.watch(a,(()=>b()),{deep:!0,...r})}}};