znyg-frontend-common 1.1.2 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/components/znFormV2/src/index.vue2.mjs +4 -4
- package/es/components/znFormV2/src/index.vue2.mjs.map +1 -1
- package/es/index.mjs +1 -1
- package/es/index.mjs.map +1 -1
- package/lib/components/znFormV2/src/index.vue2.js +4 -4
- package/lib/components/znFormV2/src/index.vue2.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{isVNode as e,defineComponent as t,useModel as r,shallowRef as n,ref as a,computed as i,unref as l,getCurrentInstance as o,nextTick as s,provide as d,watch as u,markRaw as c,useSlots as p,withDirectives as h,createVNode as f,vShow as m,mergeProps as v,onMounted as
|
|
1
|
+
import{isVNode as e,defineComponent as t,useModel as r,shallowRef as n,ref as a,computed as i,unref as l,getCurrentInstance as o,nextTick as s,provide as d,watch as u,markRaw as c,useSlots as p,withDirectives as h,createVNode as f,vShow as m,mergeProps as v,onMounted as g,onBeforeUnmount as y,createElementBlock as V,openBlock as b,normalizeClass as w,createCommentVNode as _,createBlock as $,createElementVNode as F,toDisplayString as I,mergeModels as C}from"vue";import"./components/ZnFormV2Item.vue.mjs";import{getFormProp as L,setFormProp as x,hyphenToCamelCase as R,getPx as S}from"./helper/index.mjs";import{formEnumMapKey as E,ComponentNameEnum as k}from"./interface/index.mjs";import{ElForm as z,ElRow as M,ElCol as P,ElFormItem as q,ElSkeleton as j}from"element-plus";import{withSmartCache as T,clearRelatedCache as A}from"./utils/smartCache.mjs";import D from"./components/ZnFormV2Item.vue2.mjs";var O=Object.defineProperty,H=(e,t)=>O(e,"name",{value:t,configurable:!0});const Z={key:0,class:"performance-panel",style:{position:"fixed","z-index":"9999",top:"10px",right:"10px",padding:"10px","border-radius":"4px",background:"rgb(0 0 0 / 80%)",color:"white","font-size":"12px"}},B={key:0,class:"loading",style:{display:"flex",position:"absolute","z-index":"1000",top:"50%",left:"50%","align-items":"center",transform:"translate(-50%, -50%)",gap:"10px"}};function N(t){return"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!e(t)}H(N,"_isSlot");const U="zn-form-v2";var W=t({name:"ZnFormV2",__name:"index",props:C({modelValue:{type:Object,required:!1,default:H((()=>({})),"default")},schema:{type:Array,required:!1,default:H((()=>[]),"default")},elFormProps:{required:!1,default:H((()=>({})),"default")},useCol:{type:Boolean,required:!1,default:!0},rowProps:{type:Object,required:!1},onlyRenderComponent:{type:Boolean,required:!1,default:!1},dynamicModel:{type:Boolean,required:!1,default:!0},includeModelKeys:{type:Array,required:!1},enumMapProps:{type:Map,required:!1},isView:{type:Boolean,required:!1,default:!1},disableRulesInView:{type:Boolean,required:!1,default:!0},lazyLoad:{type:Boolean,required:!1,default:!1},lazyLoadDelay:{type:Number,required:!1,default:16},initialLoadCount:{type:Number,required:!1,default:20},batchLoadCount:{type:Number,required:!1,default:10},lazyLoadDebug:{type:Boolean,required:!1,default:!1},delayLoad:{type:Number,required:!1,default:200},performanceConfig:{required:!1,default:H((()=>({enableMonitoring:!1,enableDebug:!1,reportInterval:5e3})),"default")},enableVirtualScroll:{type:Boolean,required:!1,default:!1},virtualScrollConfig:{required:!1,default:H((()=>({enabled:!1,height:400,itemHeight:60,buffer:5})),"default")},timeSliceConfig:{required:!1,default:H((()=>({enabled:!0,sliceSize:5,batchSize:10})),"default")},maxSyncRenderCount:{type:Number,required:!1,default:20},renderBatchSize:{type:Number,required:!1,default:10},renderDelay:{type:Number,required:!1,default:0},enablePerformanceMonitoring:{type:Boolean,required:!1,default:!1},excludeHiddenFieldsValidation:{type:Boolean,required:!1,default:!0},clearHiddenFieldValues:{type:Boolean,required:!1,default:!0}},{modelValue:{default:H((()=>({})),"default")},modelModifiers:{}}),emits:C(["update:modelValue","update:schema","register","onSearch","onReset","onChange","onEnumChange","onSchemaChange","onPerformanceUpdate"],["update:modelValue"]),setup(e,{expose:C,emit:O}){const W=1e3,J=3e4,K=16;class G{static{H(this,"PerformanceCache")}cache=new Map;timers=new Map;hitCount=0;missCount=0;has(e){const t=this.cache.get(e);return!!(t&&Date.now()-t.timestamp<J)||(t&&this.delete(e),!1)}get(e){const t=this.cache.get(e);if(t&&Date.now()-t.timestamp<J)return this.hitCount++,t.value;this.missCount++,this.delete(e)}set(e,t){if(this.cache.size>=W){const e=this.cache.keys().next().value;this.delete(e)}this.cache.set(e,{value:t,timestamp:Date.now()}),this.timers.has(e)&&clearTimeout(this.timers.get(e));const r=setTimeout((()=>{this.delete(e)}),J);this.timers.set(e,r)}delete(e){this.cache.delete(e);const t=this.timers.get(e);t&&(clearTimeout(t),this.timers.delete(e))}clear(){this.cache.clear(),this.timers.forEach((e=>clearTimeout(e))),this.timers.clear()}getStats(){return{size:this.cache.size,hitRate:this.hitCount/(this.hitCount+this.missCount)||0,hitCount:this.hitCount,missCount:this.missCount}}}const Y=H((()=>{const e=new Map;return(t,r,n=K)=>{e.has(t)&&clearTimeout(e.get(t));const a=setTimeout((()=>{r(),e.delete(t)}),n);e.set(t,a)}}),"createDebouncer"),Q=H((()=>{let e=null,t="",r="";return n=>{if(n===e)return t;const a=JSON.stringify(n,Object.keys(n).sort());if(a===r)return t;let i=0;for(let e=0;e<a.length;e++){i=(i<<5)-i+a.charCodeAt(e),i|=0}const l=i.toString(36);return e=n,t=l,r=a,l}}),"createModelHasher"),X=e,ee=O,te=r(e,"modelValue"),re=n(),ne=a({}),ae=i((()=>{const e={...X};return Object.assign(e,l(ne)),e})),ie=a(X.enumMapProps||new Map),le=a(new Set),oe=a([]),se=a(!1),de=a(X.delayLoad>0),ue=a(null),ce=(a(0),a([])),pe=new G,he=Y(),fe=Q(),me=a({renderTime:0,componentCount:0,cacheHitRate:0,queueLength:0,cacheStats:{size:0,hitRate:0,hitCount:0,missCount:0}}),ve=a(!1),ge=a(!1),ye=H((()=>{pe.clear()}),"clearCache"),Ve=(o(),H((()=>{ue.value&&(clearInterval(ue.value),ue.value=null),pe.clear()}),"cleanup")),be=H((async({enum:e,prop:t,cacheEnum:r=!0})=>{if(!e)return;const n=l(ie);if("function"!=typeof e)return n.set(t,l(e)),void(ie.value=new Map(n));try{n.set(t,[]);let r=await e(l(te),n);r=r?.result||r,Array.isArray(r)||(console.warn(`警告: '${t}' 的enum函数返回值不是数组`,r),r=[]),n.set(t,r),ie.value=new Map(n),s((()=>{if(t){const e=l(ae).schema?.find((e=>e.prop===t));e&&Ie(e)}}))}catch(e){console.error(`[ZnFormV2] 添加enum函数参数失败: '${t}'`,e),n.set(t,[]),ie.value=new Map(n)}}),"setEnumMap");d(E,ie);const we=a(new Map),_e={setComponentRef:H(((e,t)=>{Ge.value.set(e,t)}),"setComponentRef"),setFormItemRef:H(((e,t)=>{Ke.value.set(e,t)}),"setFormItemRef"),setZnFormV2ItemRef:H(((e,t)=>{we.value.set(e,t)}),"setZnFormV2ItemRef")};d("componentRefsCollector",_e);const $e={
|
|
2
2
|
// 存储每个字段的render函数依赖关系
|
|
3
3
|
dependencies:new Map,
|
|
4
4
|
// prop -> Set of dependent fields
|
|
@@ -22,13 +22,13 @@ debugField:""};return T(e.hidden,t,te,pe)}catch(t){return console.warn(`[ZnFormV
|
|
|
22
22
|
// 可以根据需要开启调试
|
|
23
23
|
debugField:""};return T(e.hiddenInView,t,te,pe,{isView:X.isView})}catch(t){return console.warn(`[ZnFormV2] HiddenInView function execution error for prop ${e.prop}:`,t),!1}return!1}),"getIsHiddenInView"),Re=H((e=>{if("boolean"==typeof e.hiddenLabel)return e.hiddenLabel;if("function"==typeof e.hiddenLabel)try{const t={prefix:"hiddenLabel",prop:e.prop,debug:!1,
|
|
24
24
|
// 可以根据需要开启调试
|
|
25
|
-
debugField:""};return T(e.hiddenLabel,t,te,pe)}catch(t){return console.warn(`[ZnFormV2] HiddenLabel function execution error for prop ${e.prop}:`,t),!1}return!1}),"getIsHiddenLabel"),Se=H((e=>{if("boolean"==typeof e.destroy)return e.destroy;if("function"==typeof e.destroy){const t=`destroy_${e.prop}_${fe(l(te))}`;if(pe.has(t))return pe.get(t);const r=e.destroy(l(te));return pe.set(t,r),r}return!1}),"getIsDestroyed"),Ee=i((()=>{if(X.delayLoad>0&&!se.value)return[];const e=l(ae).schema||[],t=JSON.stringify(l(te)),r=e.map((e=>({prop:e.prop,hidden:Le(e),hiddenInView:xe(e),hiddenLabel:Re(e)}))),n=`processedSchema_${e.map((e=>`${e.prop}_${e.el}_${!!e.render}_${!!e.renderInView}_${!!e.hidden}_${!!e.hiddenInView}_${!!e.hiddenLabel}`)).join("|")}_${t}_${JSON.stringify(r)}`;if(pe.has(n))return pe.get(n);const a=H((e=>e.filter((e=>!Se(e))).sort(((e,t)=>(e.order||0)-(t.order||0))).map(((e,t)=>{const n=r.find((t=>t.prop===e.prop));return{...e,renderPriority:e.renderPriority||0,enableAsyncRender:!1!==e.enableAsyncRender,_index:t,_hidden:n?.hidden||!1,_hiddenInView:n?.hiddenInView||!1,_hiddenLabel:n?.hiddenLabel||!1}}))),"processSchema")(e);if(pe.getStats().size>100){const e=[];pe.cache.forEach(((t,r)=>{"string"==typeof r&&r.startsWith("processedSchema_")&&e.push(r)})),e.length>10&&e.slice(0,5).forEach((e=>pe.delete(e)))}return pe.set(n,a),a})),ke=i((()=>{const e=Ee.value;if(!e.length)return[];if(Qe.value){const t=Array.from(le.value);return e.filter(((e,r)=>t.includes(e.prop)||r<X.initialLoadCount))}return e})),ze=c(t({name:"RenderFormWrap",setup(){p();const e=new Map,t=H((e=>{const{useCol:t}=l(ae),r=`${X.isView}_${Qe.value}_${t}`;if(Qe.value){const t=Array.from(le.value).sort(),n=e.map((e=>`${e.prop}:${e._hidden}:${e._hiddenInView}`)).join("|");return`lazy_${r}_${t.join("|")}_${n}`}return`full_${r}_${e.map((e=>`${e.prop}_${e._hidden}_${e._hiddenInView}_${e._index}`)).join("|")}`}),"getIncrementalCacheKey");return()=>{const{useCol:r,rowProps:n,onlyRenderComponent:a,elFormProps:i}=l(ae),o=ke.value,s=o.some((e=>e.noCache)),d=(o.filter((e=>e.noCache)).map((e=>e.prop)),t(o));let u;if(u=a?o.map(((e,t)=>{const r=!e._hidden&&!e._hiddenInView;return h(f("div",{key:`${e.prop}_${t}`},[f(D,{column:e,modelValue:te.value,"onUpdate:modelValue":H((e=>te.value=e),"onUpdate:modelValue"),isView:X.isView,isLazyLoading:Qe.value,isReady:le.value.has(e.prop),ref:H((t=>{t&&_e&&_e.setZnFormV2ItemRef(e.prop,t)}),"ref")},null)]),[[m,r]])})):f(z,v({ref:re,model:te.value,class:[U,{"is-view":X.isView}]},i),{default:H((()=>[r?
|
|
25
|
+
debugField:""};return T(e.hiddenLabel,t,te,pe)}catch(t){return console.warn(`[ZnFormV2] HiddenLabel function execution error for prop ${e.prop}:`,t),!1}return!1}),"getIsHiddenLabel"),Se=H((e=>{if("boolean"==typeof e.destroy)return e.destroy;if("function"==typeof e.destroy){const t=`destroy_${e.prop}_${fe(l(te))}`;if(pe.has(t))return pe.get(t);const r=e.destroy(l(te));return pe.set(t,r),r}return!1}),"getIsDestroyed"),Ee=i((()=>{if(X.delayLoad>0&&!se.value)return[];const e=l(ae).schema||[],t=JSON.stringify(l(te)),r=e.map((e=>({prop:e.prop,hidden:Le(e),hiddenInView:xe(e),hiddenLabel:Re(e)}))),n=`processedSchema_${e.map((e=>`${e.prop}_${e.el}_${!!e.render}_${!!e.renderInView}_${!!e.hidden}_${!!e.hiddenInView}_${!!e.hiddenLabel}`)).join("|")}_${t}_${JSON.stringify(r)}`;if(pe.has(n))return pe.get(n);const a=H((e=>e.filter((e=>!Se(e))).sort(((e,t)=>(e.order||0)-(t.order||0))).map(((e,t)=>{const n=r.find((t=>t.prop===e.prop));return{...e,renderPriority:e.renderPriority||0,enableAsyncRender:!1!==e.enableAsyncRender,_index:t,_hidden:n?.hidden||!1,_hiddenInView:n?.hiddenInView||!1,_hiddenLabel:n?.hiddenLabel||!1}}))),"processSchema")(e);if(pe.getStats().size>100){const e=[];pe.cache.forEach(((t,r)=>{"string"==typeof r&&r.startsWith("processedSchema_")&&e.push(r)})),e.length>10&&e.slice(0,5).forEach((e=>pe.delete(e)))}return pe.set(n,a),a})),ke=i((()=>{const e=Ee.value;if(!e.length)return[];if(Qe.value){const t=Array.from(le.value);return e.filter(((e,r)=>t.includes(e.prop)||r<X.initialLoadCount))}return e})),ze=c(t({name:"RenderFormWrap",setup(){p();const e=new Map,t=H((e=>{const{useCol:t}=l(ae),r=`${X.isView}_${Qe.value}_${t}`;if(Qe.value){const t=Array.from(le.value).sort(),n=e.map((e=>`${e.prop}:${e._hidden}:${e._hiddenInView}`)).join("|");return`lazy_${r}_${t.join("|")}_${n}`}return`full_${r}_${e.map((e=>`${e.prop}_${e._hidden}_${e._hiddenInView}_${e._index}`)).join("|")}`}),"getIncrementalCacheKey");return()=>{const{useCol:r,rowProps:n,onlyRenderComponent:a,elFormProps:i}=l(ae),o=ke.value,s=o.some((e=>e.noCache)),d=(o.filter((e=>e.noCache)).map((e=>e.prop)),t(o));let u;if(u=a?o.map(((e,t)=>{const r=!e._hidden&&!e._hiddenInView;return h(f("div",{key:`${e.prop}_${t}`},[f(D,{column:e,modelValue:te.value,"onUpdate:modelValue":H((e=>te.value=e),"onUpdate:modelValue"),isView:X.isView,isLazyLoading:Qe.value,isReady:le.value.has(e.prop),ref:H((t=>{t&&_e&&_e.setZnFormV2ItemRef(e.prop,t)}),"ref")},null)]),[[m,r]])})):f(z,v({ref:re,model:te.value,class:[U,{"is-view":X.isView}]},i),{default:H((()=>[r?Pe(o):qe(o)]),"default")}),!s){const t=Qe.value?20:5;if(e.size>=t){const t=e.keys().next().value;e.delete(t)}e.set(d,u)}return u}}})),Me=H(((e={})=>({
|
|
26
26
|
// 如果有 span,代表用户优先级更高,所以不需要默认栅格
|
|
27
|
-
...e.span?{}:{xs:24,sm:12,md:12,lg:12,xl:12},...e})),"setGridProp"),qe=H((e=>{let t;const{rowProps:r}=l(ae);return f(P,v({gutter:20},r),B(t=e.map(((e,t)=>{const n=Pe({...r?.col,...e.col}),a=!e._hidden&&!e._hiddenInView;return h(f(q,v({key:`${e.prop}_${t}`},n),{default:H((()=>[e._hiddenLabel?f(D,{key:`${e.prop}_${e._index}`,column:e,modelValue:te.value,"onUpdate:modelValue":H((e=>te.value=e),"onUpdate:modelValue"),isView:X.isView,isLazyLoading:Qe.value,isReady:le.value.has(e.prop),ref:H((t=>{t&&_e&&_e.setZnFormV2ItemRef(e.prop,t)}),"ref")},null):f(M,v({prop:e.prop,label:"function"==typeof e.label?e.label(te.value):e.label,style:e.width?{width:S(e.width)}:{},ref:H((t=>{t&&_e&&_e.setFormItemRef(e.prop,t)}),"ref")},X.isView&&X.disableRulesInView?{...e.formItem,rules:null}:e.formItem),{default:H((()=>[f(D,{key:`${e.prop}_${e._index}`,column:e,modelValue:te.value,"onUpdate:modelValue":H((e=>te.value=e),"onUpdate:modelValue"),isView:X.isView,isLazyLoading:Qe.value,isReady:le.value.has(e.prop),ref:H((t=>{t&&_e&&_e.setZnFormV2ItemRef(e.prop,t)}),"ref")},null)]),"default")})]),"default")}),[[m,a]])})))?t:{default:H((()=>[t]),"default")})}),"renderWithCol"),Me=H((e=>e.map(((e,t)=>{const r=!e._hidden&&!e._hiddenInView;return e._hiddenLabel?h(f("div",{key:`${e.prop}_${t}`},[f(D,{key:`${e.prop}_${e._index}`,column:e,modelValue:te.value,"onUpdate:modelValue":H((e=>te.value=e),"onUpdate:modelValue"),isView:X.isView,isLazyLoading:Qe.value,isReady:le.value.has(e.prop),ref:H((t=>{t&&_e&&_e.setZnFormV2ItemRef(e.prop,t)}),"ref")},null)]),[[m,r]]):h(f(M,v({key:`${e.prop}_${t}`,prop:e.prop,label:"function"==typeof e.label?e.label(te.value):e.label,style:e.width?{width:S(e.width)}:{},ref:H((t=>{t&&_e&&_e.setFormItemRef(e.prop,t)}),"ref")},X.isView&&X.disableRulesInView?{...e.formItem,rules:null}:e.formItem),{default:H((()=>[f(D,{key:`${e.prop}_${e._index}`,column:e,modelValue:te.value,"onUpdate:modelValue":H((e=>te.value=e),"onUpdate:modelValue"),isView:X.isView,isLazyLoading:Qe.value,isReady:le.value.has(e.prop),ref:H((t=>{t&&_e&&_e.setZnFormV2ItemRef(e.prop,t)}),"ref")},null)]),"default")}),[[m,r]])}))),"renderWithoutCol"),je=H((()=>{if(!Qe.value)return;const e=Ee.value;for(let t=0;t<Math.min(X.initialLoadCount,e.length);t++)le.value.add(e[t].prop);oe.value=e.slice(X.initialLoadCount),oe.value.length>0&&Te()}),"initializeLazyLoading"),Te=H((()=>{if(0===oe.value.length)return void(ve.value=!1);ve.value=!0;const e=H((()=>{if(0===oe.value.length)return void(ve.value=!1);const t=performance.now(),r=oe.value.shift();r&&(le.value.add(r.prop),ce.value.push({prop:r.prop,time:t}),me.value.componentCount=le.value.size,me.value.renderTime=performance.now()-t,me.value.queueLength=oe.value.length,X.enablePerformanceMonitoring&&ee("onPerformanceUpdate",me.value)),oe.value.length>0?X.lazyLoadDelay<=16?requestAnimationFrame(e):setTimeout(e,X.lazyLoadDelay):ve.value=!1}),"renderNext");setTimeout(e,X.delayLoad)}),"startBatchRendering"),Ae=H((()=>{(l(ae).schema||[]).forEach((async e=>{e.enum&&await be(e),e.subProp&&e.subEnum&&Ce(e),void 0!==e.defaultValue&&he(`init_${e.prop}`,(()=>Ie(e)),50)}))}),"handleSchemaInit"),De=a({length:0,props:[]});u((()=>l(ae).schema),((e,t)=>{if((!(X.delayLoad>0)||se.value)&&(ye.value||0!==De.value.length)&&e?.length){const t={length:e.length,props:e.map((e=>e.prop))},r=De.value,n=t.length>r.length,a=t.length<r.length,i=JSON.stringify(t.props)!==JSON.stringify(r.props),l=!n&&!a&&i;if(n){const t=new Set(r.props),n=e.filter((e=>!t.has(e.prop)));n.forEach((async e=>{e.enum&&await be(e),void 0!==e.defaultValue&&he(`init_${e.prop}`,(()=>Ie(e)),50)})),s((()=>{X.delayLoad>0&&!se.value||Qe.value&&n.forEach((e=>{le.value.has(e.prop)||le.value.add(e.prop)}))}))}else if(a&&Qe.value){const e=new Set(t.props);r.props.filter((t=>!e.has(t))).forEach((e=>{le.value.delete(e),oe.value=oe.value.filter((t=>t.prop!==e)),$e.clearDependencies(e)}))}else{(0===r.length||l||X.lazyLoad&&i||e.length>X.maxSyncRenderCount&&i)&&(Ae(),i&&le.value.clear(),oe.value=[],ce.value=[],s((()=>{je()})))}De.value=t}}),{immediate:!1,deep:!0}),u((()=>l(ae).schema?.map((e=>({prop:e.prop,enum:e.enum,dictCode:e.dictCode})))),((e,t)=>{if(!e||!t||e.length!==t.length)return;let r=!1;const n=[];e.forEach(((e,a)=>{const i=t[a];if(e.enum!==i?.enum||e.dictCode!==i?.dictCode){const t=l(ae).schema?.find((t=>t.prop===e.prop));t&&(r=!0,n.push(e.prop),s((()=>{be(t)})))}})),r&&he("enum_change",(()=>{const e=[];pe.cache?.forEach(((t,r)=>{!r.startsWith("processedSchema_")&&n.some((e=>r.includes(e)))&&e.push(r)})),e.forEach((e=>pe.delete(e)))}),100)}),{deep:!0}),u([()=>X.isView,()=>l(ae).schema?.map((e=>({prop:e.prop,hidden:e.hidden,hiddenInView:e.hiddenInView,hiddenLabel:e.hiddenLabel})))],((e,t)=>{if(!t)return;const[r,n]=e,[a,i]=t;let l=r!==a;!l&&n&&i&&(l=n.some(((e,t)=>{const r=i[t];return!r||e.hidden!==r.hidden||e.hiddenInView!==r.hiddenInView||e.hiddenLabel!==r.hiddenLabel}))),l&&he("view_hidden_change",(()=>{const e=[];pe.cache?.forEach(((t,r)=>{(r.startsWith("processedSchema_")||r.includes("_hidden_")||r.includes("_view_"))&&e.push(r)})),e.forEach((e=>pe.delete(e)))}),50)}),{deep:!0}),u((()=>{if(!X.clearHiddenFieldValues)return[];return(l(ae).schema||[]).map((e=>({prop:e.prop,isHidden:Le(e)||X.isView&&xe(e)})))}),((e,t)=>{if(!X.clearHiddenFieldValues||!t||!e)return;const r=e.filter(((e,r)=>{const n=t[r];return n&&!n.isHidden&&e.isHidden}));if(r.length>0){const e=l(te);r.forEach((({prop:t})=>{e.hasOwnProperty(t)&&(e[t]=null)}))}}),{deep:!0});const Oe=H((()=>Ee.value.filter((e=>!e._hidden&&!e._hiddenInView)).map((e=>e.prop))),"getVisibleFormProps"),He={validate:H((e=>re.value?e?void re.value.validate(((t,r)=>{if(t)e(!0);else if(X.excludeHiddenFieldsValidation){const t=Oe(),n={};r&&Object.keys(r).forEach((e=>{t.includes(e)&&(n[e]=r[e])}));const a=Object.keys(n).length>0;e(!a,a?n:void 0)}else e(!1,r)})):new Promise(((e,t)=>{re.value?.validate(((r,n)=>{if(r)e(!0);else if(X.excludeHiddenFieldsValidation){const r=Oe(),a={};n&&Object.keys(n).forEach((e=>{r.includes(e)&&(a[e]=n[e])}));Object.keys(a).length>0?t(a):e(!0)}else t(n)}))})):(e?.(!0),Promise.resolve(!0))),"validate"),validateField:H(((e,t)=>{if(ae.value.excludeHiddenFieldsValidation){const r=Oe(),n=(Array.isArray(e)?e:[e]).filter((e=>r.includes(e)));if(0===n.length)return t?.(!0,""),Promise.resolve("");const a=1===n.length?n[0]:n;return re.value?.validateField(a,t)}return re.value?.validateField(e,t)}),"validateField"),resetFields:H((()=>{re.value?.resetFields()}),"resetFields"),resetForm:H((()=>{Object.keys(te.value).forEach((e=>{delete te.value[e]})),re.value?.clearValidate(),s((()=>{Ae()}))}),"resetForm"),clearValidate:H((e=>{re.value?.clearValidate(e)}),"clearValidate"),scrollToField:H((e=>{re.value?.scrollToField(e)}),"scrollToField"),setEnumMap:be,initDefaultValue:Ie,clearCache:ge};y((()=>{if(X.delayLoad>0)setTimeout((()=>{de.value=!1,se.value=!0;const e=l(ae).schema;if(e?.length)if(Ae(),Qe.value)je();else{Ee.value.forEach((e=>{le.value.add(e.prop)}))}ye.value=!0,ee("register",Ye)}),X.delayLoad);else{de.value=!1,se.value=!0;const e=l(ae).schema;if(e?.length)if(Ae(),Qe.value)je();else{Ee.value.forEach((e=>{le.value.add(e.prop)}))}ye.value=!0,ee("register",Ye)}X.enablePerformanceMonitoring&&(ue.value=setInterval((()=>{me.value.cacheStats=pe.getStats(),ee("onPerformanceUpdate",me.value)}),X.performanceConfig.reportInterval||2e3))})),g((()=>{Ve()}));const Ze=H((e=>{Object.assign(ne.value,e),e.modelValue&&Object.assign(te.value,e.modelValue)}),"setProps"),Ne=H((e=>{Object.assign(te.value,e)}),"setValues"),Be=H((e=>{const{prop:t,field:r,value:n}=e,a=[...l(ae).schema||[]];if("schema"===r)ne.value.schema=n;else{const e=a.find((e=>e.prop===t));e&&(e[r]=n,ne.value.schema=a)}}),"setSchema"),Ue=H(((e,t,r="after")=>{const n=[...l(ae).schema||[]];if("number"==typeof t)n.splice(t,0,e);else if("string"==typeof t){const a=n.findIndex((e=>e.prop===t));if(-1!==a){const t="before"===r?a:a+1;n.splice(t,0,e)}else n.push(e)}else n.push(e);ne.value.schema=n}),"addSchema"),We=H((e=>{const t=(l(ae).schema||[]).filter((t=>t.prop!==e));if(ne.value.schema=t,Qe.value){le.value.delete(e),oe.value=oe.value.filter((t=>t.prop!==e));const t=[];pe.cache?.forEach(((r,n)=>{n.includes(e)&&t.push(n)})),t.forEach((e=>pe.delete(e))),$e.clearDependencies(e)}}),"delSchema"),Je=H(((e=!0)=>{const t=te.value;return e?Object.keys(t).reduce(((e,r)=>{const n=t[r];return""!==n&&null!=n&&("object"==typeof n&&null!==n?Object.keys(n).length>0&&(e[r]=n):e[r]=n),e}),{}):t}),"getFormData"),Ke=a(new Map),Ge=a(new Map),Ye={...He,setProps:Ze,setValues:Ne,setSchema:Be,addSchema:Ue,delSchema:We,getFormData:Je,getComponentExpose:H((e=>Ge.value.get(e)||null),"getComponentExpose"),getFormItemExpose:H((e=>Ke.value.get(e)||null),"getFormItemExpose"),getSchema:H((()=>l(ae).schema||[]),"getSchema"),refreshFormItem:H((async(e,t)=>{const{refreshEnum:r=!0,refreshDefaultValue:n=!1,clearValidate:a=!0}=t||{},i=l(ae).schema?.find((t=>t.prop===e));if(!i)return void console.warn(`[ZnFormV2] 未找到prop为 "${e}" 的表单项`);const o=[];pe.cache?.forEach(((t,r)=>{r.includes(e)&&o.push(r)})),o.forEach((e=>pe.delete(e))),$e.clearDependencies(e),A(pe,"hidden",[e]),A(pe,"hiddenInView",[e]),A(pe,"hiddenLabel",[e]),A(pe,"render",[e]);if(["formProps","props","placeholder","disabled","clearable"].forEach((t=>{A(pe,t,[e])})),r&&i.enum)try{await be(i)}catch(t){console.error(`[ZnFormV2] 刷新prop "${e}" 的枚举数据失败:`,t)}if(n&&void 0!==i.defaultValue)try{await Ie(i)}catch(t){console.error(`[ZnFormV2] 刷新prop "${e}" 的默认值失败:`,t)}if(a&&re.value?.clearValidate(e),Qe.value){le.value.delete(e);const t=Ee.value.find((t=>t.prop===e));t&&!oe.value.some((t=>t.prop===e))&&(oe.value.unshift(t),ve.value||s((()=>{Te()})))}const d=we.value.get(e);d&&d.refreshFormProps&&d.refreshFormProps(),await s()}),"refreshFormItem"),model:te.value};C({...Ye,form:re,enumMap:ie,model:te.value});const Qe=i((()=>{const e=l(ae).schema?.length||0,t=X.lazyLoad;if(!1===t)return!1;if(!0===t)return!0;if(e<5){if(0===(l(ae).schema?.filter((e=>e.render||e.renderInView))?.length||0))return!1}return!0}));return(t,r)=>(b(),V("div",{class:w([U,"zn-znform-v2-container"]),ref:"containerRef"},[_(" 性能监控面板 "),e.performanceConfig.enableDebug&&me.value?(b(),V("div",Z,[F("div",null,"渲染耗时: "+I(me.value.renderTime.toFixed(2))+"ms",1
|
|
27
|
+
...e.span?{}:{xs:24,sm:12,md:12,lg:12,xl:12},...e})),"setGridProp"),Pe=H((e=>{let t;const{rowProps:r}=l(ae);return f(M,v({gutter:20},r),N(t=e.map(((e,t)=>{const n=Me({...r?.col,...e.col}),a=!e._hidden&&!e._hiddenInView;return h(f(P,v({key:`${e.prop}_${t}`},n),{default:H((()=>[e._hiddenLabel?f(D,{key:`${e.prop}_${e._index}`,column:e,modelValue:te.value,"onUpdate:modelValue":H((e=>te.value=e),"onUpdate:modelValue"),isView:X.isView,isLazyLoading:Qe.value,isReady:le.value.has(e.prop),ref:H((t=>{t&&_e&&_e.setZnFormV2ItemRef(e.prop,t)}),"ref")},null):f(q,v({prop:e.prop,label:"function"==typeof e.label?e.label(te.value):e.label,style:e.width?{width:S(e.width)}:{},ref:H((t=>{t&&_e&&_e.setFormItemRef(e.prop,t)}),"ref")},X.isView&&X.disableRulesInView?{...e.formItem,rules:null}:e.formItem),{default:H((()=>[f(D,{key:`${e.prop}_${e._index}`,column:e,modelValue:te.value,"onUpdate:modelValue":H((e=>te.value=e),"onUpdate:modelValue"),isView:X.isView,isLazyLoading:Qe.value,isReady:le.value.has(e.prop),ref:H((t=>{t&&_e&&_e.setZnFormV2ItemRef(e.prop,t)}),"ref")},null)]),"default")})]),"default")}),[[m,a]])})))?t:{default:H((()=>[t]),"default")})}),"renderWithCol"),qe=H((e=>e.map(((e,t)=>{const r=!e._hidden&&!e._hiddenInView;return e._hiddenLabel?h(f("div",{key:`${e.prop}_${t}`},[f(D,{key:`${e.prop}_${e._index}`,column:e,modelValue:te.value,"onUpdate:modelValue":H((e=>te.value=e),"onUpdate:modelValue"),isView:X.isView,isLazyLoading:Qe.value,isReady:le.value.has(e.prop),ref:H((t=>{t&&_e&&_e.setZnFormV2ItemRef(e.prop,t)}),"ref")},null)]),[[m,r]]):h(f(q,v({key:`${e.prop}_${t}`,prop:e.prop,label:"function"==typeof e.label?e.label(te.value):e.label,style:e.width?{width:S(e.width)}:{},ref:H((t=>{t&&_e&&_e.setFormItemRef(e.prop,t)}),"ref")},X.isView&&X.disableRulesInView?{...e.formItem,rules:null}:e.formItem),{default:H((()=>[f(D,{key:`${e.prop}_${e._index}`,column:e,modelValue:te.value,"onUpdate:modelValue":H((e=>te.value=e),"onUpdate:modelValue"),isView:X.isView,isLazyLoading:Qe.value,isReady:le.value.has(e.prop),ref:H((t=>{t&&_e&&_e.setZnFormV2ItemRef(e.prop,t)}),"ref")},null)]),"default")}),[[m,r]])}))),"renderWithoutCol"),je=H((()=>{if(!Qe.value)return;const e=Ee.value;for(let t=0;t<Math.min(X.initialLoadCount,e.length);t++)le.value.add(e[t].prop);oe.value=e.slice(X.initialLoadCount),oe.value.length>0&&Te()}),"initializeLazyLoading"),Te=H((()=>{if(0===oe.value.length)return void(ve.value=!1);ve.value=!0;const e=H((()=>{if(0===oe.value.length)return void(ve.value=!1);const t=performance.now(),r=Math.min(X.batchLoadCount,oe.value.length);oe.value.splice(0,r).forEach((e=>{le.value.add(e.prop),ce.value.push({prop:e.prop,time:t})})),me.value.componentCount=le.value.size,me.value.renderTime=performance.now()-t,me.value.queueLength=oe.value.length,X.enablePerformanceMonitoring&&ee("onPerformanceUpdate",me.value),oe.value.length>0?X.lazyLoadDelay<=16?requestAnimationFrame(e):setTimeout(e,X.lazyLoadDelay):ve.value=!1}),"renderNextBatch");e()}),"startBatchRendering"),Ae=H((()=>{(l(ae).schema||[]).forEach((async e=>{e.enum&&await be(e),e.subProp&&e.subEnum&&Ce(e),void 0!==e.defaultValue&&he(`init_${e.prop}`,(()=>Ie(e)),50)}))}),"handleSchemaInit"),De=a({length:0,props:[]});u((()=>l(ae).schema),((e,t)=>{if((!(X.delayLoad>0)||se.value)&&(ge.value||0!==De.value.length)&&e?.length){const t={length:e.length,props:e.map((e=>e.prop))},r=De.value,n=t.length>r.length,a=t.length<r.length,i=JSON.stringify(t.props)!==JSON.stringify(r.props),l=!n&&!a&&i;if(n){const t=new Set(r.props),n=e.filter((e=>!t.has(e.prop)));n.forEach((async e=>{e.enum&&await be(e),void 0!==e.defaultValue&&he(`init_${e.prop}`,(()=>Ie(e)),50)})),s((()=>{X.delayLoad>0&&!se.value||Qe.value&&n.forEach((e=>{le.value.has(e.prop)||le.value.add(e.prop)}))}))}else if(a&&Qe.value){const e=new Set(t.props);r.props.filter((t=>!e.has(t))).forEach((e=>{le.value.delete(e),oe.value=oe.value.filter((t=>t.prop!==e)),$e.clearDependencies(e)}))}else{(0===r.length||l||X.lazyLoad&&i||e.length>X.maxSyncRenderCount&&i)&&(Ae(),i&&le.value.clear(),oe.value=[],ce.value=[],s((()=>{je()})))}De.value=t}}),{immediate:!1,deep:!0}),u((()=>l(ae).schema?.map((e=>({prop:e.prop,enum:e.enum,dictCode:e.dictCode})))),((e,t)=>{if(!e||!t||e.length!==t.length)return;let r=!1;const n=[];e.forEach(((e,a)=>{const i=t[a];if(e.enum!==i?.enum||e.dictCode!==i?.dictCode){const t=l(ae).schema?.find((t=>t.prop===e.prop));t&&(r=!0,n.push(e.prop),s((()=>{be(t)})))}})),r&&he("enum_change",(()=>{const e=[];pe.cache?.forEach(((t,r)=>{!r.startsWith("processedSchema_")&&n.some((e=>r.includes(e)))&&e.push(r)})),e.forEach((e=>pe.delete(e)))}),100)}),{deep:!0}),u([()=>X.isView,()=>l(ae).schema?.map((e=>({prop:e.prop,hidden:e.hidden,hiddenInView:e.hiddenInView,hiddenLabel:e.hiddenLabel})))],((e,t)=>{if(!t)return;const[r,n]=e,[a,i]=t;let l=r!==a;!l&&n&&i&&(l=n.some(((e,t)=>{const r=i[t];return!r||e.hidden!==r.hidden||e.hiddenInView!==r.hiddenInView||e.hiddenLabel!==r.hiddenLabel}))),l&&he("view_hidden_change",(()=>{const e=[];pe.cache?.forEach(((t,r)=>{(r.startsWith("processedSchema_")||r.includes("_hidden_")||r.includes("_view_"))&&e.push(r)})),e.forEach((e=>pe.delete(e)))}),50)}),{deep:!0}),u((()=>{if(!X.clearHiddenFieldValues)return[];return(l(ae).schema||[]).map((e=>({prop:e.prop,isHidden:Le(e)||X.isView&&xe(e)})))}),((e,t)=>{if(!X.clearHiddenFieldValues||!t||!e)return;const r=e.filter(((e,r)=>{const n=t[r];return n&&!n.isHidden&&e.isHidden}));if(r.length>0){const e=l(te);r.forEach((({prop:t})=>{e.hasOwnProperty(t)&&(e[t]=null)}))}}),{deep:!0});const Oe=H((()=>Ee.value.filter((e=>!e._hidden&&!e._hiddenInView)).map((e=>e.prop))),"getVisibleFormProps"),He={validate:H((e=>re.value?e?void re.value.validate(((t,r)=>{if(t)e(!0);else if(X.excludeHiddenFieldsValidation){const t=Oe(),n={};r&&Object.keys(r).forEach((e=>{t.includes(e)&&(n[e]=r[e])}));const a=Object.keys(n).length>0;e(!a,a?n:void 0)}else e(!1,r)})):new Promise(((e,t)=>{re.value?.validate(((r,n)=>{if(r)e(!0);else if(X.excludeHiddenFieldsValidation){const r=Oe(),a={};n&&Object.keys(n).forEach((e=>{r.includes(e)&&(a[e]=n[e])}));Object.keys(a).length>0?t(a):e(!0)}else t(n)}))})):(e?.(!0),Promise.resolve(!0))),"validate"),validateField:H(((e,t)=>{if(ae.value.excludeHiddenFieldsValidation){const r=Oe(),n=(Array.isArray(e)?e:[e]).filter((e=>r.includes(e)));if(0===n.length)return t?.(!0,""),Promise.resolve("");const a=1===n.length?n[0]:n;return re.value?.validateField(a,t)}return re.value?.validateField(e,t)}),"validateField"),resetFields:H((()=>{re.value?.resetFields()}),"resetFields"),resetForm:H((()=>{Object.keys(te.value).forEach((e=>{delete te.value[e]})),re.value?.clearValidate(),s((()=>{Ae()}))}),"resetForm"),clearValidate:H((e=>{re.value?.clearValidate(e)}),"clearValidate"),scrollToField:H((e=>{re.value?.scrollToField(e)}),"scrollToField"),setEnumMap:be,initDefaultValue:Ie,clearCache:ye};g((()=>{if(X.delayLoad>0)setTimeout((()=>{de.value=!1,se.value=!0;const e=l(ae).schema;if(e?.length)if(Ae(),Qe.value)je();else{Ee.value.forEach((e=>{le.value.add(e.prop)}))}ge.value=!0,ee("register",Ye)}),X.delayLoad);else{de.value=!1,se.value=!0;const e=l(ae).schema;if(e?.length)if(Ae(),Qe.value)je();else{Ee.value.forEach((e=>{le.value.add(e.prop)}))}ge.value=!0,ee("register",Ye)}X.enablePerformanceMonitoring&&(ue.value=setInterval((()=>{me.value.cacheStats=pe.getStats(),ee("onPerformanceUpdate",me.value)}),X.performanceConfig.reportInterval||2e3))})),y((()=>{Ve()}));const Ze=H((e=>{Object.assign(ne.value,e),e.modelValue&&Object.assign(te.value,e.modelValue)}),"setProps"),Be=H((e=>{Object.assign(te.value,e)}),"setValues"),Ne=H((e=>{const{prop:t,field:r,value:n}=e,a=[...l(ae).schema||[]];if("schema"===r)ne.value.schema=n;else{const e=a.find((e=>e.prop===t));e&&(e[r]=n,ne.value.schema=a)}}),"setSchema"),Ue=H(((e,t,r="after")=>{const n=[...l(ae).schema||[]];if("number"==typeof t)n.splice(t,0,e);else if("string"==typeof t){const a=n.findIndex((e=>e.prop===t));if(-1!==a){const t="before"===r?a:a+1;n.splice(t,0,e)}else n.push(e)}else n.push(e);ne.value.schema=n}),"addSchema"),We=H((e=>{const t=(l(ae).schema||[]).filter((t=>t.prop!==e));if(ne.value.schema=t,Qe.value){le.value.delete(e),oe.value=oe.value.filter((t=>t.prop!==e));const t=[];pe.cache?.forEach(((r,n)=>{n.includes(e)&&t.push(n)})),t.forEach((e=>pe.delete(e))),$e.clearDependencies(e)}}),"delSchema"),Je=H(((e=!0)=>{const t=te.value;return e?Object.keys(t).reduce(((e,r)=>{const n=t[r];return""!==n&&null!=n&&("object"==typeof n&&null!==n?Object.keys(n).length>0&&(e[r]=n):e[r]=n),e}),{}):t}),"getFormData"),Ke=a(new Map),Ge=a(new Map),Ye={...He,setProps:Ze,setValues:Be,setSchema:Ne,addSchema:Ue,delSchema:We,getFormData:Je,getComponentExpose:H((e=>Ge.value.get(e)||null),"getComponentExpose"),getFormItemExpose:H((e=>Ke.value.get(e)||null),"getFormItemExpose"),getSchema:H((()=>l(ae).schema||[]),"getSchema"),refreshFormItem:H((async(e,t)=>{const{refreshEnum:r=!0,refreshDefaultValue:n=!1,clearValidate:a=!0}=t||{},i=l(ae).schema?.find((t=>t.prop===e));if(!i)return void console.warn(`[ZnFormV2] 未找到prop为 "${e}" 的表单项`);const o=[];pe.cache?.forEach(((t,r)=>{r.includes(e)&&o.push(r)})),o.forEach((e=>pe.delete(e))),$e.clearDependencies(e),A(pe,"hidden",[e]),A(pe,"hiddenInView",[e]),A(pe,"hiddenLabel",[e]),A(pe,"render",[e]);if(["formProps","props","placeholder","disabled","clearable"].forEach((t=>{A(pe,t,[e])})),r&&i.enum)try{await be(i)}catch(t){console.error(`[ZnFormV2] 刷新prop "${e}" 的枚举数据失败:`,t)}if(n&&void 0!==i.defaultValue)try{await Ie(i)}catch(t){console.error(`[ZnFormV2] 刷新prop "${e}" 的默认值失败:`,t)}if(a&&re.value?.clearValidate(e),Qe.value){le.value.delete(e);const t=Ee.value.find((t=>t.prop===e));t&&!oe.value.some((t=>t.prop===e))&&(oe.value.unshift(t),ve.value||s((()=>{Te()})))}const d=we.value.get(e);d&&d.refreshFormProps&&d.refreshFormProps(),await s()}),"refreshFormItem"),model:te.value};C({...Ye,form:re,enumMap:ie,model:te.value});const Qe=i((()=>{const e=l(ae).schema?.length||0,t=X.lazyLoad;if(!1===t)return!1;if(!0===t)return!0;if(e<5){if(0===(l(ae).schema?.filter((e=>e.render||e.renderInView))?.length||0))return!1}return!0}));return(t,r)=>(b(),V("div",{class:w([U,"zn-znform-v2-container"]),ref:"containerRef"},[_(" 性能监控面板 "),e.performanceConfig.enableDebug&&me.value?(b(),V("div",Z,[F("div",null,"渲染耗时: "+I(me.value.renderTime.toFixed(2))+"ms",1
|
|
28
28
|
/* TEXT */),F("div",null,"组件数量: "+I(me.value.componentCount),1
|
|
29
29
|
/* TEXT */),F("div",null,"缓存命中率: "+I((100*me.value.cacheHitRate).toFixed(1))+"%",1
|
|
30
30
|
/* TEXT */),F("div",null,"队列长度: "+I(me.value.queueLength),1
|
|
31
|
-
/* TEXT */)])):_("v-if",!0),_(" 组件级别的骨架屏 - delayLoad期间显示 "),de.value?(b(),$(l(j),{key:1,rows:8,animated:""})):_("v-if",!0),_(" 表单容器 - 组件准备好后显示 "),h(F("div",null,[f(l(ze)),_(" 懒加载状态 "),ve.value&&e.enablePerformanceMonitoring?(b(),V("div",
|
|
31
|
+
/* TEXT */)])):_("v-if",!0),_(" 组件级别的骨架屏 - delayLoad期间显示 "),de.value?(b(),$(l(j),{key:1,rows:8,animated:""})):_("v-if",!0),_(" 表单容器 - 组件准备好后显示 "),h(F("div",null,[f(l(ze)),_(" 懒加载状态 "),ve.value&&e.enablePerformanceMonitoring?(b(),V("div",B,r[0]||(r[0]=[F("div",{style:{width:"16px",height:"16px",animation:"spin 1s linear infinite",border:"2px solid #409eff","border-top":"2px solid transparent","border-radius":"50%"}},null,-1
|
|
32
32
|
/* HOISTED */),F("span",null,"正在渲染表单项...",-1
|
|
33
33
|
/* HOISTED */)]))):_("v-if",!0)],512
|
|
34
34
|
/* NEED_PATCH */),[[m,!de.value&&se.value]])],2
|