UNPKG

hyb-naive

Version:

对naive-ui组件进行二次封装,主要包含Form表单组件,进行JSON化化配置处理,快速实现表单的录入和页面筛选器功能

1 lines 238 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),i=require("naive-ui"),T=require("moment"),et={key:0},Se=e.defineComponent({__name:"index",props:{cols:{},labelWidth:{default:80},labelPlacement:{default:"left"},size:{default:"small"},labelAlign:{default:"right"},disabled:{type:Boolean,default:!1},title:{},rules:{},formData:{},filterNullValue:{type:Boolean,default:void 0},type:{default:"FORM"},card:{type:Boolean,default:!1},immediateUpdate:{type:Boolean,default:!1},borderRadius:{default:7},searchFirstRow:{type:Boolean,default:!0},searchBtn:{default:void 0},showFormBtn:{type:Boolean,default:void 0},formBtn:{},initSearch:{type:Boolean}},emits:["dataChange","search","reset","cancel","confirm"],setup(N,{expose:E,emit:h}){const b=e.useSlots(),C=e.ref(),y=h,p={NInput:i.NInput,NInputNumber:i.NInputNumber,NSelect:i.NSelect,NTreeSelect:i.NTreeSelect,NAutoComplete:i.NAutoComplete,NCascader:i.NCascader,NDatePicker:i.NDatePicker,NSwitch:i.NSwitch,NUpload:i.NUpload,NSlider:i.NSlider,NRate:i.NRate,NTree:i.NTree,NTransfer:i.NTransfer,NTimePicker:i.NTimePicker,NCheckbox:i.NCheckbox,NRadio:i.NRadio},l=N,{rules:u,searchBtn:d,formData:c}=e.toRefs(l),x=e.ref(!1),S=e.reactive({show:!0,text:"搜索"}),m=e.reactive({show:!0,text:"重置"}),f=e.reactive({}),_=l.type=="FILTER"?l.cols??4:l.cols??1,W=e.reactive({});G(),u.value.forEach(t=>{var a;if(F(t.field,((a=c==null?void 0:c.value)==null?void 0:a[t.field])??t.defaultValue),t.compType=="DatePicker"){const{rangeMappingToFields:o,valDateFormat:r,type:n}=B(t.props)?t.props(k(t)):t.props;if(o&&j(n)&&f[t.field]){const[s,v]=o,[g,w]=f[t.field];F(s,r?T(g).format(r):g),F(v,r?T(w).format(r):w)}}}),e.watch(f,t=>y("dataChange",Y(t)),{immediate:l.immediateUpdate}),e.watch(d,t=>G(),{immediate:!0}),e.watchEffect(()=>{var t;c!=null&&c.value&&((t=Object.keys(c.value))==null||t.forEach(a=>{var o;F(a,(o=c==null?void 0:c.value)==null?void 0:o[a])}))});const re=e.computed(()=>Math.ceil(u.value.filter(t=>B(t.show)?t.show(k(t)):t.show??!0).length/_)),ie=e.computed(()=>{var a,o;let t=u.value;if(x.value)if(l.searchFirstRow){t=u.value.filter(n=>z(n)&&n.field!="search");const r=t.length>=_?_-1:t.length;t.splice(r,0,{field:"search",compType:"Slot",ignoreCommit:!0,span:((a=l.searchBtn)==null?void 0:a.searchSpan)??6})}else{const r=t.findIndex(n=>n.field=="search");r!=-1&&u.value.splice(r,1),t.push({field:"search",compType:"Slot",ignoreCommit:!0,span:((o=l.searchBtn)==null?void 0:o.searchSpan)??6})}return t.filter(r=>z(r)).map((r,n)=>(function(s){const{required:v}=s;if(v&&l.type=="FORM"){const g={required:B(v)?v(k(s)):v??!1,trigger:s.trigger??["blur","change","input"],type:s.validateType};s.validator?g.validator=s.validator:g.message=s.message??(v?`${s.label}不能为空`:""),W[s.field]=g}}(r),{...r,isFullWidth:r.fullWidth??l.type=="FILTER",labelWidth:l.type=="FILTER"&&(n+1)%_==1?"auto":r.labelWidth}))});function Y(t){const a={...t};return u.value.forEach(o=>{var r;if(o.compType=="DatePicker"){const n=B(o.props)?o.props(k(o)):o.props;if((r=n==null?void 0:n.rangeMappingToFields)!=null&&r.length){const[s,v]=n.rangeMappingToFields;if(a[s]&&a[v]||l.type!="FILTER"||!(l.filterNullValue??1)){if(a[o.field]){let[g,w]=a[o.field];n.type=="daterange"&&(n.rangeEndTimeStamp??1)&&(w=T(w).endOf("days").valueOf()),a[s]=n.valDateFormat?T(g).format(n.valDateFormat):g,a[v]=n.valDateFormat?T(w).format(n.valDateFormat):w}}else delete a[s],delete a[v];delete a[o.field]}else n.type=="date"&&a[o.field]&&n.valDateFormat&&(a[o.field]=T(a[o.field]).format(n.valDateFormat))}l.type=="FILTER"&&(l.filterNullValue??1)&&!a[o.field]&&delete a[o.field],o.ignoreCommit&&l.type=="FORM"&&delete a[o.field]}),a}function j(t){return t=="daterange"||t=="datetimerange"||t=="monthrange"||t=="yearrange"||t=="quarterrange"}function G(){var t,a;if(l.type=="FILTER"){const o={search:((t=d.value)==null?void 0:t.search)??!0,reset:((a=d.value)==null?void 0:a.reset)??!0},{search:r,reset:n}=o;typeof r=="boolean"&&r?(x.value=!0,S.show=!0):typeof r=="object"?(x.value=!0,Object.assign(S,r)):S.show=!1,typeof n=="boolean"&&n?(x.value=!0,m.show=!0):typeof n=="object"?(x.value=!0,Object.assign(m,n)):m.show=!1,x.value=!!b.search||x.value}else x.value=!1}function z(t){return B(t.show)?t.show(k(t)):t.show??!0}function le(t){return l.type!="FILTER"||Math.ceil((t+1)/_)!=re.value}function I(t){const a=k(t),o=(B(t.props)?t.props(a):t.props)??{},r=t.options??o.options;if(r&&(o.options=B(r)?r(a):r),t.compType=="DatePicker"){const{valDateFormat:n,type:s}=o;if(o.rangeMappingToFields&&j(s)){const[v,g]=o.rangeMappingToFields;o.onUpdateValue=w=>{let[V,R]=w;s=="daterange"&&(o.dateRangeEndTimeStamp??1)&&(R=T(R).endOf("days").valueOf()),F(v,n?T(V).format(n):V),F(g,n?T(R).format(n):R)}}}return o.disabled=B(t.disabled)?t.disabled(a):t.disabled??!1,o}function oe(t){const a=B(t.compType)?t.compType(k(t)):t.compType;return p[`N${a}`]}let U=null;function ne(){Z().then(()=>{U&&clearInterval(U),U=setTimeout(()=>{const t={...f};u.value.forEach(a=>{a.ignoreCommit&&delete t[a.field]}),y("confirm",t)},300)})}function Z(){return new Promise((t,a)=>{var o;(o=C.value)==null||o.validate(r=>{r?a(r):t(e.toRaw(f))})})}function F(t,a){return new Promise(o=>{f[t]=a,o(f)})}function A(t){return new Promise(a=>{for(const o in t)f[o]=t[o];a(f)})}function ee(){m.interceptEvent||u.value.filter(t=>t.restValue??!0).forEach(t=>{f[t.field]=null}),y("reset",e.toRaw(f))}function $(t){t instanceof Event&&(t=null);const a={...e.toRaw(f),...t};y("search",Y(a))}function P(t){return u.value.find(a=>a.field==t)}function ae(t,a){const o=P(t)??{};return Object.assign(o,a)}function de(t,a){const o=P(t)??{};return Object.assign(o,a)}function ce(t){for(const a in t)Object.prototype.hasOwnProperty.call(t,a)&&F(a,t[a])}function se(t,a){return new Promise(o=>{const r=P(t);r&&(r.options=a),o(r==null?void 0:r.options)})}function te(){return{validate:Z,setFormData:ce,setValue:F,setValues:A,reset:ee,search:$,mergeRule:ae,setRule:de,getRule:P,setOptions:se,formData:f,rules:u.value}}function k(t){return{...te(),value:f[t.field],rule:t}}function O(t,a){return Object.prototype.toString.call(t)===`[object ${a}]`}function B(t){return O(t,"Function")||O(t,"AsyncFunction")}return u.value.forEach(t=>{z(t)&&t.onLoad&&t.onLoad(k(t))}),l.initSearch&&$(),E(te()),(t,a)=>(e.openBlock(),e.createBlock(e.unref(i.NCard),{size:"small",title:t.title,"header-style":{padding:"10px",margin:0},"footer-style":{padding:"0",margin:"0"},"content-style":{padding:l.card?"10px":"0"},"theme-overrides":{borderRadius:l.card?`${l.borderRadius}px`:"0"},bordered:l.card,segmented:{content:!0,footer:"soft"}},{default:e.withCtx(()=>[e.createVNode(e.unref(i.NForm),{ref_key:"formRef",ref:C,rules:W,model:f,size:l.size,"label-align":l.labelAlign,disabled:l.disabled,"label-placement":l.labelPlacement,"label-width":l.labelWidth},{default:e.withCtx(()=>[e.createVNode(e.unref(i.NGrid),{cols:24,"x-gap":12},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ie.value,(o,r)=>(e.openBlock(),e.createBlock(e.unref(i.NFormItemGi),{span:(B(o.span)?o.span():o.span)??24/e.unref(_),path:o.field,label:o.label,"label-align":o.labelAlign??l.labelAlign??"right","show-feedback":le(r),"label-width":o.labelWidth??l.labelWidth,key:o.field},{default:e.withCtx(()=>[o.compType=="Slot"&&o.field=="search"?(e.openBlock(),e.createElementBlock("div",et,[e.unref(b).search?e.renderSlot(t.$slots,"search",e.mergeProps({key:0,ref_for:!0},k(o))):(e.openBlock(),e.createBlock(e.unref(i.NSpace),{key:1},{default:e.withCtx(()=>[S.show?(e.openBlock(),e.createBlock(e.unref(i.NButton),{key:0,type:"primary",onClick:$,disabled:S.loading||S.disabled,loading:S.loading??!1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.text),1)]),_:1},8,["disabled","loading"])):e.createCommentVNode("",!0),m.show?(e.openBlock(),e.createBlock(e.unref(i.NButton),{key:1,disabled:m.loading||m.disabled,loading:m.loading??!1,onClick:ee},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.text),1)]),_:1},8,["disabled","loading"])):e.createCommentVNode("",!0)]),_:1}))])):o.compType=="Slot"?e.renderSlot(t.$slots,o.field,e.mergeProps({key:1,ref_for:!0},k(o))):o.compType=="RadioGroup"?(e.openBlock(),e.createBlock(e.unref(i.NRadioGroup),e.mergeProps({key:2,value:f[o.field],"onUpdate:value":n=>f[o.field]=n,ref_for:!0},I(o)),{default:e.withCtx(()=>[e.createVNode(e.unref(i.NSpace),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B(o.options)?o.options(k(o)):o.options??[],n=>(e.openBlock(),e.createBlock(e.unref(i.NRadio),{value:n.value,key:n.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label),1)]),_:2},1032,["value"]))),128))]),_:2},1024)]),_:2},1040,["value","onUpdate:value"])):o.compType=="RadioButtonGroup"?(e.openBlock(),e.createBlock(e.unref(i.NRadioGroup),e.mergeProps({key:3,value:f[o.field],"onUpdate:value":n=>f[o.field]=n,ref_for:!0},I(o)),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B(o.options)?o.options(k(o)):o.options??[],n=>(e.openBlock(),e.createBlock(e.unref(i.NRadioButton),{value:n.value,key:n.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label),1)]),_:2},1032,["value"]))),128))]),_:2},1040,["value","onUpdate:value"])):o.compType=="CheckboxGroup"?(e.openBlock(),e.createBlock(e.unref(i.NCheckboxGroup),e.mergeProps({key:4,value:f[o.field],"onUpdate:value":n=>f[o.field]=n,ref_for:!0},I(o)),{default:e.withCtx(()=>[e.createVNode(e.unref(i.NSpace),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B(o.options)?o.options(k(o)):o.options??[],n=>(e.openBlock(),e.createBlock(e.unref(i.NCheckbox),{value:n.value,key:n.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label),1)]),_:2},1032,["value"]))),128))]),_:2},1024)]),_:2},1040,["value","onUpdate:value"])):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(oe(o)),e.mergeProps({key:5,style:{width:o.isFullWidth?"100%":""},ref_for:!0},I(o),{value:f[o.field],"onUpdate:value":n=>f[o.field]=n,"on-update:checked":n=>f[o.field]=n}),null,16,["style","value","onUpdate:value","on-update:checked"]))]),_:2},1032,["span","path","label","label-align","show-feedback","label-width"]))),128))]),_:3})]),_:3},8,["rules","model","size","label-align","disabled","label-placement","label-width"]),l.type=="FORM"&&(l.showFormBtn??1)?(e.openBlock(),e.createBlock(e.unref(i.NFlex),{key:0,justify:"end",style:{"margin-top":"10px"}},{default:e.withCtx(()=>[e.createVNode(e.unref(i.NSpace),null,{default:e.withCtx(()=>{var o,r,n,s,v,g,w,V,R,M,q,H,J,K,Q,X;return[((r=(o=t.formBtn)==null?void 0:o.cancel)==null?void 0:r.show)??1?(e.openBlock(),e.createBlock(e.unref(i.NButton),{key:0,size:l.size,onClick:a[0]||(a[0]=D=>y("cancel")),disabled:((s=(n=t.formBtn)==null?void 0:n.cancel)==null?void 0:s.loading)||((g=(v=t.formBtn)==null?void 0:v.cancel)==null?void 0:g.disabled),loading:((V=(w=t.formBtn)==null?void 0:w.cancel)==null?void 0:V.loading)??!1},{default:e.withCtx(()=>{var D,L;return[e.createTextVNode(e.toDisplayString(((L=(D=t.formBtn)==null?void 0:D.cancel)==null?void 0:L.text)??"取消"),1)]}),_:1},8,["size","disabled","loading"])):e.createCommentVNode("",!0),((M=(R=t.formBtn)==null?void 0:R.confirm)==null?void 0:M.show)??1?(e.openBlock(),e.createBlock(e.unref(i.NButton),{key:1,type:"primary",size:l.size,disabled:((H=(q=t.formBtn)==null?void 0:q.confirm)==null?void 0:H.loading)||((K=(J=t.formBtn)==null?void 0:J.confirm)==null?void 0:K.disabled),loading:((X=(Q=t.formBtn)==null?void 0:Q.confirm)==null?void 0:X.loading)??!1,onClick:ne},{default:e.withCtx(()=>{var D,L;return[e.createTextVNode(e.toDisplayString(((L=(D=t.formBtn)==null?void 0:D.confirm)==null?void 0:L.text)??"确认"),1)]}),_:1},8,["size","disabled","loading"])):e.createCommentVNode("",!0)]}),_:1})]),_:1})):e.createCommentVNode("",!0)]),_:3},8,["title","content-style","theme-overrides","bordered"]))}});Se.install=N=>{N.component(Se.name,Se)};const tt={key:0},pe=e.defineComponent({__name:"index",props:{cols:{},labelWidth:{default:80},labelPlacement:{default:"left"},size:{default:"small"},labelAlign:{default:"right"},disabled:{type:Boolean,default:!1},title:{},rules:{},formData:{},filterNullValue:{type:Boolean,default:void 0},type:{default:"FORM"},card:{type:Boolean,default:!1},immediateUpdate:{type:Boolean,default:!1},borderRadius:{default:7},searchFirstRow:{type:Boolean,default:!0},searchBtn:{default:void 0},showFormBtn:{type:Boolean,default:void 0},formBtn:{},initSearch:{type:Boolean}},emits:["dataChange","search","reset","cancel","confirm"],setup(N,{expose:E,emit:h}){const b=e.useSlots(),C=e.ref(),y=h,p={NInput:i.NInput,NInputNumber:i.NInputNumber,NSelect:i.NSelect,NTreeSelect:i.NTreeSelect,NAutoComplete:i.NAutoComplete,NCascader:i.NCascader,NDatePicker:i.NDatePicker,NSwitch:i.NSwitch,NUpload:i.NUpload,NSlider:i.NSlider,NRate:i.NRate,NTree:i.NTree,NTransfer:i.NTransfer,NTimePicker:i.NTimePicker,NCheckbox:i.NCheckbox,NRadio:i.NRadio},l=N,{rules:u,searchBtn:d,formData:c}=e.toRefs(l),x=e.ref(!1),S=e.reactive({show:!0,text:"搜索"}),m=e.reactive({show:!0,text:"重置"}),f=e.reactive({}),_=l.type=="FILTER"?l.cols??4:l.cols??1,W=e.reactive({});G(),u.value.forEach(t=>{var a;if(F(t.field,((a=c==null?void 0:c.value)==null?void 0:a[t.field])??t.defaultValue),t.compType=="DatePicker"){const{rangeMappingToFields:o,valDateFormat:r,type:n}=B(t.props)?t.props(k(t)):t.props;if(o&&j(n)&&f[t.field]){const[s,v]=o,[g,w]=f[t.field];F(s,r?T(g).format(r):g),F(v,r?T(w).format(r):w)}}}),e.watch(f,t=>y("dataChange",Y(t)),{immediate:l.immediateUpdate}),e.watch(d,t=>G(),{immediate:!0}),e.watchEffect(()=>{var t;c!=null&&c.value&&((t=Object.keys(c.value))==null||t.forEach(a=>{var o;F(a,(o=c==null?void 0:c.value)==null?void 0:o[a])}))});const re=e.computed(()=>Math.ceil(u.value.filter(t=>B(t.show)?t.show(k(t)):t.show??!0).length/_)),ie=e.computed(()=>{var t,a;let o=u.value;if(x.value)if(l.searchFirstRow){o=u.value.filter(n=>z(n)&&n.field!="search");const r=o.length>=_?_-1:o.length;o.splice(r,0,{field:"search",compType:"Slot",ignoreCommit:!0,span:((t=l.searchBtn)==null?void 0:t.searchSpan)??6})}else{const r=o.findIndex(n=>n.field=="search");r!=-1&&u.value.splice(r,1),o.push({field:"search",compType:"Slot",ignoreCommit:!0,span:((a=l.searchBtn)==null?void 0:a.searchSpan)??6})}return o.filter(r=>z(r)).map((r,n)=>(function(s){const{required:v}=s;if(v&&l.type=="FORM"){const g={required:B(v)?v(k(s)):v??!1,trigger:s.trigger??["blur","change","input"],type:s.validateType};s.validator?g.validator=s.validator:g.message=s.message??(v?`${s.label}不能为空`:""),W[s.field]=g}}(r),{...r,isFullWidth:r.fullWidth??l.type=="FILTER",labelWidth:l.type=="FILTER"&&(n+1)%_==1?"auto":r.labelWidth}))});function Y(t){const a={...t};return u.value.forEach(o=>{var r;if(o.compType=="DatePicker"){const n=B(o.props)?o.props(k(o)):o.props;if((r=n==null?void 0:n.rangeMappingToFields)!=null&&r.length){const[s,v]=n.rangeMappingToFields;if(a[s]&&a[v]||l.type!="FILTER"||!(l.filterNullValue??1)){if(a[o.field]){let[g,w]=a[o.field];n.type=="daterange"&&(n.rangeEndTimeStamp??1)&&(w=T(w).endOf("days").valueOf()),a[s]=n.valDateFormat?T(g).format(n.valDateFormat):g,a[v]=n.valDateFormat?T(w).format(n.valDateFormat):w}}else delete a[s],delete a[v];delete a[o.field]}else n.type=="date"&&a[o.field]&&n.valDateFormat&&(a[o.field]=T(a[o.field]).format(n.valDateFormat))}l.type=="FILTER"&&(l.filterNullValue??1)&&!a[o.field]&&delete a[o.field],o.ignoreCommit&&l.type=="FORM"&&delete a[o.field]}),a}function j(t){return t=="daterange"||t=="datetimerange"||t=="monthrange"||t=="yearrange"||t=="quarterrange"}function G(){var t,a;if(l.type=="FILTER"){const o={search:((t=d.value)==null?void 0:t.search)??!0,reset:((a=d.value)==null?void 0:a.reset)??!0},{search:r,reset:n}=o;typeof r=="boolean"&&r?(x.value=!0,S.show=!0):typeof r=="object"?(x.value=!0,Object.assign(S,r)):S.show=!1,typeof n=="boolean"&&n?(x.value=!0,m.show=!0):typeof n=="object"?(x.value=!0,Object.assign(m,n)):m.show=!1,x.value=!!b.search||x.value}else x.value=!1}function z(t){return B(t.show)?t.show(k(t)):t.show??!0}function le(t){return l.type!="FILTER"||Math.ceil((t+1)/_)!=re.value}function I(t){const a=k(t),o=(B(t.props)?t.props(a):t.props)??{},r=t.options??o.options;if(r&&(o.options=B(r)?r(a):r),t.compType=="DatePicker"){const{valDateFormat:n,type:s}=o;if(o.rangeMappingToFields&&j(s)){const[v,g]=o.rangeMappingToFields;o.onUpdateValue=w=>{let[V,R]=w;s=="daterange"&&(o.dateRangeEndTimeStamp??1)&&(R=T(R).endOf("days").valueOf()),F(v,n?T(V).format(n):V),F(g,n?T(R).format(n):R)}}}return o.disabled=B(t.disabled)?t.disabled(a):t.disabled??!1,o}function oe(t){const a=B(t.compType)?t.compType(k(t)):t.compType;return p[`N${a}`]}let U=null;function ne(){Z().then(()=>{U&&clearInterval(U),U=setTimeout(()=>{const t={...f};u.value.forEach(a=>{a.ignoreCommit&&delete t[a.field]}),y("confirm",t)},300)})}function Z(){return new Promise((t,a)=>{var o;(o=C.value)==null||o.validate(r=>{r?a(r):t(e.toRaw(f))})})}function F(t,a){return new Promise(o=>{f[t]=a,o(f)})}function A(t){return new Promise(a=>{for(const o in t)f[o]=t[o];a(f)})}function ee(){m.interceptEvent||u.value.filter(t=>t.restValue??!0).forEach(t=>{f[t.field]=null}),y("reset",e.toRaw(f))}function $(t){t instanceof Event&&(t=null);const a={...e.toRaw(f),...t};y("search",Y(a))}function P(t){return u.value.find(a=>a.field==t)}function ae(t,a){const o=P(t)??{};return Object.assign(o,a)}function de(t,a){const o=P(t)??{};return Object.assign(o,a)}function ce(t){for(const a in t)Object.prototype.hasOwnProperty.call(t,a)&&F(a,t[a])}function se(t,a){return new Promise(o=>{const r=P(t);r&&(r.options=a),o(r==null?void 0:r.options)})}function te(){return{validate:Z,setFormData:ce,setValue:F,setValues:A,reset:ee,search:$,mergeRule:ae,setRule:de,getRule:P,setOptions:se,formData:f,rules:u.value}}function k(t){return{...te(),value:f[t.field],rule:t}}function O(t,a){return Object.prototype.toString.call(t)===`[object ${a}]`}function B(t){return O(t,"Function")||O(t,"AsyncFunction")}return u.value.forEach(t=>{z(t)&&t.onLoad&&t.onLoad(k(t))}),l.initSearch&&$(),E(te()),(t,a)=>(e.openBlock(),e.createBlock(e.unref(i.NCard),{size:"small",title:t.title,"header-style":{padding:"10px",margin:0},"footer-style":{padding:"0",margin:"0"},"content-style":{padding:l.card?"10px":"0"},"theme-overrides":{borderRadius:l.card?`${l.borderRadius}px`:"0"},bordered:l.card,segmented:{content:!0,footer:"soft"}},{default:e.withCtx(()=>[e.createVNode(e.unref(i.NForm),{ref_key:"formRef",ref:C,rules:W,model:f,size:l.size,"label-align":l.labelAlign,disabled:l.disabled,"label-placement":l.labelPlacement,"label-width":l.labelWidth},{default:e.withCtx(()=>[e.createVNode(e.unref(i.NGrid),{cols:24,"x-gap":12},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ie.value,(o,r)=>(e.openBlock(),e.createBlock(e.unref(i.NFormItemGi),{span:(B(o.span)?o.span():o.span)??24/e.unref(_),path:o.field,label:o.label,"label-align":o.labelAlign??l.labelAlign??"right","show-feedback":le(r),"label-width":o.labelWidth??l.labelWidth,key:o.field},{default:e.withCtx(()=>[o.compType=="Slot"&&o.field=="search"?(e.openBlock(),e.createElementBlock("div",tt,[e.unref(b).search?e.renderSlot(t.$slots,"search",e.mergeProps({key:0,ref_for:!0},k(o))):(e.openBlock(),e.createBlock(e.unref(i.NSpace),{key:1},{default:e.withCtx(()=>[S.show?(e.openBlock(),e.createBlock(e.unref(i.NButton),{key:0,type:"primary",onClick:$,disabled:S.loading||S.disabled,loading:S.loading??!1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.text),1)]),_:1},8,["disabled","loading"])):e.createCommentVNode("",!0),m.show?(e.openBlock(),e.createBlock(e.unref(i.NButton),{key:1,disabled:m.loading||m.disabled,loading:m.loading??!1,onClick:ee},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.text),1)]),_:1},8,["disabled","loading"])):e.createCommentVNode("",!0)]),_:1}))])):o.compType=="Slot"?e.renderSlot(t.$slots,o.field,e.mergeProps({key:1,ref_for:!0},k(o))):o.compType=="RadioGroup"?(e.openBlock(),e.createBlock(e.unref(i.NRadioGroup),e.mergeProps({key:2,value:f[o.field],"onUpdate:value":n=>f[o.field]=n,ref_for:!0},I(o)),{default:e.withCtx(()=>[e.createVNode(e.unref(i.NSpace),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B(o.options)?o.options(k(o)):o.options??[],n=>(e.openBlock(),e.createBlock(e.unref(i.NRadio),{value:n.value,key:n.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label),1)]),_:2},1032,["value"]))),128))]),_:2},1024)]),_:2},1040,["value","onUpdate:value"])):o.compType=="RadioButtonGroup"?(e.openBlock(),e.createBlock(e.unref(i.NRadioGroup),e.mergeProps({key:3,value:f[o.field],"onUpdate:value":n=>f[o.field]=n,ref_for:!0},I(o)),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B(o.options)?o.options(k(o)):o.options??[],n=>(e.openBlock(),e.createBlock(e.unref(i.NRadioButton),{value:n.value,key:n.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label),1)]),_:2},1032,["value"]))),128))]),_:2},1040,["value","onUpdate:value"])):o.compType=="CheckboxGroup"?(e.openBlock(),e.createBlock(e.unref(i.NCheckboxGroup),e.mergeProps({key:4,value:f[o.field],"onUpdate:value":n=>f[o.field]=n,ref_for:!0},I(o)),{default:e.withCtx(()=>[e.createVNode(e.unref(i.NSpace),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B(o.options)?o.options(k(o)):o.options??[],n=>(e.openBlock(),e.createBlock(e.unref(i.NCheckbox),{value:n.value,key:n.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label),1)]),_:2},1032,["value"]))),128))]),_:2},1024)]),_:2},1040,["value","onUpdate:value"])):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(oe(o)),e.mergeProps({key:5,style:{width:o.isFullWidth?"100%":""},ref_for:!0},I(o),{value:f[o.field],"onUpdate:value":n=>f[o.field]=n,"on-update:checked":n=>f[o.field]=n}),null,16,["style","value","onUpdate:value","on-update:checked"]))]),_:2},1032,["span","path","label","label-align","show-feedback","label-width"]))),128))]),_:3})]),_:3},8,["rules","model","size","label-align","disabled","label-placement","label-width"]),l.type=="FORM"&&(l.showFormBtn??1)?(e.openBlock(),e.createBlock(e.unref(i.NFlex),{key:0,justify:"end",style:{"margin-top":"10px"}},{default:e.withCtx(()=>[e.createVNode(e.unref(i.NSpace),null,{default:e.withCtx(()=>{var o,r,n,s,v,g,w,V,R,M,q,H,J,K,Q,X;return[((r=(o=t.formBtn)==null?void 0:o.cancel)==null?void 0:r.show)??1?(e.openBlock(),e.createBlock(e.unref(i.NButton),{key:0,size:l.size,onClick:a[0]||(a[0]=D=>y("cancel")),disabled:((s=(n=t.formBtn)==null?void 0:n.cancel)==null?void 0:s.loading)||((g=(v=t.formBtn)==null?void 0:v.cancel)==null?void 0:g.disabled),loading:((V=(w=t.formBtn)==null?void 0:w.cancel)==null?void 0:V.loading)??!1},{default:e.withCtx(()=>{var D,L;return[e.createTextVNode(e.toDisplayString(((L=(D=t.formBtn)==null?void 0:D.cancel)==null?void 0:L.text)??"取消"),1)]}),_:1},8,["size","disabled","loading"])):e.createCommentVNode("",!0),((M=(R=t.formBtn)==null?void 0:R.confirm)==null?void 0:M.show)??1?(e.openBlock(),e.createBlock(e.unref(i.NButton),{key:1,type:"primary",size:l.size,disabled:((H=(q=t.formBtn)==null?void 0:q.confirm)==null?void 0:H.loading)||((K=(J=t.formBtn)==null?void 0:J.confirm)==null?void 0:K.disabled),loading:((X=(Q=t.formBtn)==null?void 0:Q.confirm)==null?void 0:X.loading)??!1,onClick:ne},{default:e.withCtx(()=>{var D,L;return[e.createTextVNode(e.toDisplayString(((L=(D=t.formBtn)==null?void 0:D.confirm)==null?void 0:L.text)??"确认"),1)]}),_:1},8,["size","disabled","loading"])):e.createCommentVNode("",!0)]}),_:1})]),_:1})):e.createCommentVNode("",!0)]),_:3},8,["title","content-style","theme-overrides","bordered"]))}});pe.install=N=>{N.component(pe.name,pe)};const ot={key:0},me=e.defineComponent({__name:"index",props:{cols:{},labelWidth:{default:80},labelPlacement:{default:"left"},size:{default:"small"},labelAlign:{default:"right"},disabled:{type:Boolean,default:!1},title:{},rules:{},formData:{},filterNullValue:{type:Boolean,default:void 0},type:{default:"FORM"},card:{type:Boolean,default:!1},immediateUpdate:{type:Boolean,default:!1},borderRadius:{default:7},searchFirstRow:{type:Boolean,default:!0},searchBtn:{default:void 0},showFormBtn:{type:Boolean,default:void 0},formBtn:{},initSearch:{type:Boolean}},emits:["dataChange","search","reset","cancel","confirm"],setup(N,{expose:E,emit:h}){const b=e.useSlots(),C=e.ref(),y=h,p={NInput:i.NInput,NInputNumber:i.NInputNumber,NSelect:i.NSelect,NTreeSelect:i.NTreeSelect,NAutoComplete:i.NAutoComplete,NCascader:i.NCascader,NDatePicker:i.NDatePicker,NSwitch:i.NSwitch,NUpload:i.NUpload,NSlider:i.NSlider,NRate:i.NRate,NTree:i.NTree,NTransfer:i.NTransfer,NTimePicker:i.NTimePicker,NCheckbox:i.NCheckbox,NRadio:i.NRadio},l=N,{rules:u,searchBtn:d,formData:c}=e.toRefs(l),x=e.ref(!1),S=e.reactive({show:!0,text:"搜索"}),m=e.reactive({show:!0,text:"重置"}),f=e.reactive({}),_=l.type=="FILTER"?l.cols??4:l.cols??1,W=e.reactive({});G(),u.value.forEach(t=>{var a;if(F(t.field,((a=c==null?void 0:c.value)==null?void 0:a[t.field])??t.defaultValue),t.compType=="DatePicker"){const{rangeMappingToFields:o,valDateFormat:r,type:n}=B(t.props)?t.props(k(t)):t.props;if(o&&j(n)&&f[t.field]){const[s,v]=o,[g,w]=f[t.field];F(s,r?T(g).format(r):g),F(v,r?T(w).format(r):w)}}}),e.watch(f,t=>y("dataChange",Y(t)),{immediate:l.immediateUpdate}),e.watch(d,t=>G(),{immediate:!0}),e.watchEffect(()=>{var t;c!=null&&c.value&&((t=Object.keys(c.value))==null||t.forEach(a=>{var o;F(a,(o=c==null?void 0:c.value)==null?void 0:o[a])}))});const re=e.computed(()=>Math.ceil(u.value.filter(t=>B(t.show)?t.show(k(t)):t.show??!0).length/_)),ie=e.computed(()=>{var t,a;let o=u.value;if(x.value)if(l.searchFirstRow){o=u.value.filter(n=>z(n)&&n.field!="search");const r=o.length>=_?_-1:o.length;o.splice(r,0,{field:"search",compType:"Slot",ignoreCommit:!0,span:((t=l.searchBtn)==null?void 0:t.searchSpan)??6})}else{const r=o.findIndex(n=>n.field=="search");r!=-1&&u.value.splice(r,1),o.push({field:"search",compType:"Slot",ignoreCommit:!0,span:((a=l.searchBtn)==null?void 0:a.searchSpan)??6})}return o.filter(r=>z(r)).map((r,n)=>(function(s){const{required:v}=s;if(v&&l.type=="FORM"){const g={required:B(v)?v(k(s)):v??!1,trigger:s.trigger??["blur","change","input"],type:s.validateType};s.validator?g.validator=s.validator:g.message=s.message??(v?`${s.label}不能为空`:""),W[s.field]=g}}(r),{...r,isFullWidth:r.fullWidth??l.type=="FILTER",labelWidth:l.type=="FILTER"&&(n+1)%_==1?"auto":r.labelWidth}))});function Y(t){const a={...t};return u.value.forEach(o=>{var r;if(o.compType=="DatePicker"){const n=B(o.props)?o.props(k(o)):o.props;if((r=n==null?void 0:n.rangeMappingToFields)!=null&&r.length){const[s,v]=n.rangeMappingToFields;if(a[s]&&a[v]||l.type!="FILTER"||!(l.filterNullValue??1)){if(a[o.field]){let[g,w]=a[o.field];n.type=="daterange"&&(n.rangeEndTimeStamp??1)&&(w=T(w).endOf("days").valueOf()),a[s]=n.valDateFormat?T(g).format(n.valDateFormat):g,a[v]=n.valDateFormat?T(w).format(n.valDateFormat):w}}else delete a[s],delete a[v];delete a[o.field]}else n.type=="date"&&a[o.field]&&n.valDateFormat&&(a[o.field]=T(a[o.field]).format(n.valDateFormat))}l.type=="FILTER"&&(l.filterNullValue??1)&&!a[o.field]&&delete a[o.field],o.ignoreCommit&&l.type=="FORM"&&delete a[o.field]}),a}function j(t){return t=="daterange"||t=="datetimerange"||t=="monthrange"||t=="yearrange"||t=="quarterrange"}function G(){var t,a;if(l.type=="FILTER"){const o={search:((t=d.value)==null?void 0:t.search)??!0,reset:((a=d.value)==null?void 0:a.reset)??!0},{search:r,reset:n}=o;typeof r=="boolean"&&r?(x.value=!0,S.show=!0):typeof r=="object"?(x.value=!0,Object.assign(S,r)):S.show=!1,typeof n=="boolean"&&n?(x.value=!0,m.show=!0):typeof n=="object"?(x.value=!0,Object.assign(m,n)):m.show=!1,x.value=!!b.search||x.value}else x.value=!1}function z(t){return B(t.show)?t.show(k(t)):t.show??!0}function le(t){return l.type!="FILTER"||Math.ceil((t+1)/_)!=re.value}function I(t){const a=k(t),o=(B(t.props)?t.props(a):t.props)??{},r=t.options??o.options;if(r&&(o.options=B(r)?r(a):r),t.compType=="DatePicker"){const{valDateFormat:n,type:s}=o;if(o.rangeMappingToFields&&j(s)){const[v,g]=o.rangeMappingToFields;o.onUpdateValue=w=>{let[V,R]=w;s=="daterange"&&(o.dateRangeEndTimeStamp??1)&&(R=T(R).endOf("days").valueOf()),F(v,n?T(V).format(n):V),F(g,n?T(R).format(n):R)}}}return o.disabled=B(t.disabled)?t.disabled(a):t.disabled??!1,o}function oe(t){const a=B(t.compType)?t.compType(k(t)):t.compType;return p[`N${a}`]}let U=null;function ne(){Z().then(()=>{U&&clearInterval(U),U=setTimeout(()=>{const t={...f};u.value.forEach(a=>{a.ignoreCommit&&delete t[a.field]}),y("confirm",t)},300)})}function Z(){return new Promise((t,a)=>{var o;(o=C.value)==null||o.validate(r=>{r?a(r):t(e.toRaw(f))})})}function F(t,a){return new Promise(o=>{f[t]=a,o(f)})}function A(t){return new Promise(a=>{for(const o in t)f[o]=t[o];a(f)})}function ee(){m.interceptEvent||u.value.filter(t=>t.restValue??!0).forEach(t=>{f[t.field]=null}),y("reset",e.toRaw(f))}function $(t){t instanceof Event&&(t=null);const a={...e.toRaw(f),...t};y("search",Y(a))}function P(t){return u.value.find(a=>a.field==t)}function ae(t,a){const o=P(t)??{};return Object.assign(o,a)}function de(t,a){const o=P(t)??{};return Object.assign(o,a)}function ce(t){for(const a in t)Object.prototype.hasOwnProperty.call(t,a)&&F(a,t[a])}function se(t,a){return new Promise(o=>{const r=P(t);r&&(r.options=a),o(r==null?void 0:r.options)})}function te(){return{validate:Z,setFormData:ce,setValue:F,setValues:A,reset:ee,search:$,mergeRule:ae,setRule:de,getRule:P,setOptions:se,formData:f,rules:u.value}}function k(t){return{...te(),value:f[t.field],rule:t}}function O(t,a){return Object.prototype.toString.call(t)===`[object ${a}]`}function B(t){return O(t,"Function")||O(t,"AsyncFunction")}return u.value.forEach(t=>{z(t)&&t.onLoad&&t.onLoad(k(t))}),l.initSearch&&$(),E(te()),(t,a)=>(e.openBlock(),e.createBlock(e.unref(i.NCard),{size:"small",title:t.title,"header-style":{padding:"10px",margin:0},"footer-style":{padding:"0",margin:"0"},"content-style":{padding:l.card?"10px":"0"},"theme-overrides":{borderRadius:l.card?`${l.borderRadius}px`:"0"},bordered:l.card,segmented:{content:!0,footer:"soft"}},{default:e.withCtx(()=>[e.createVNode(e.unref(i.NForm),{ref_key:"formRef",ref:C,rules:W,model:f,size:l.size,"label-align":l.labelAlign,disabled:l.disabled,"label-placement":l.labelPlacement,"label-width":l.labelWidth},{default:e.withCtx(()=>[e.createVNode(e.unref(i.NGrid),{cols:24,"x-gap":12},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ie.value,(o,r)=>(e.openBlock(),e.createBlock(e.unref(i.NFormItemGi),{span:(B(o.span)?o.span():o.span)??24/e.unref(_),path:o.field,label:o.label,"label-align":o.labelAlign??l.labelAlign??"right","show-feedback":le(r),"label-width":o.labelWidth??l.labelWidth,key:o.field},{default:e.withCtx(()=>[o.compType=="Slot"&&o.field=="search"?(e.openBlock(),e.createElementBlock("div",ot,[e.unref(b).search?e.renderSlot(t.$slots,"search",e.mergeProps({key:0,ref_for:!0},k(o))):(e.openBlock(),e.createBlock(e.unref(i.NSpace),{key:1},{default:e.withCtx(()=>[S.show?(e.openBlock(),e.createBlock(e.unref(i.NButton),{key:0,type:"primary",onClick:$,disabled:S.loading||S.disabled,loading:S.loading??!1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.text),1)]),_:1},8,["disabled","loading"])):e.createCommentVNode("",!0),m.show?(e.openBlock(),e.createBlock(e.unref(i.NButton),{key:1,disabled:m.loading||m.disabled,loading:m.loading??!1,onClick:ee},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.text),1)]),_:1},8,["disabled","loading"])):e.createCommentVNode("",!0)]),_:1}))])):o.compType=="Slot"?e.renderSlot(t.$slots,o.field,e.mergeProps({key:1,ref_for:!0},k(o))):o.compType=="RadioGroup"?(e.openBlock(),e.createBlock(e.unref(i.NRadioGroup),e.mergeProps({key:2,value:f[o.field],"onUpdate:value":n=>f[o.field]=n,ref_for:!0},I(o)),{default:e.withCtx(()=>[e.createVNode(e.unref(i.NSpace),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B(o.options)?o.options(k(o)):o.options??[],n=>(e.openBlock(),e.createBlock(e.unref(i.NRadio),{value:n.value,key:n.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label),1)]),_:2},1032,["value"]))),128))]),_:2},1024)]),_:2},1040,["value","onUpdate:value"])):o.compType=="RadioButtonGroup"?(e.openBlock(),e.createBlock(e.unref(i.NRadioGroup),e.mergeProps({key:3,value:f[o.field],"onUpdate:value":n=>f[o.field]=n,ref_for:!0},I(o)),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B(o.options)?o.options(k(o)):o.options??[],n=>(e.openBlock(),e.createBlock(e.unref(i.NRadioButton),{value:n.value,key:n.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label),1)]),_:2},1032,["value"]))),128))]),_:2},1040,["value","onUpdate:value"])):o.compType=="CheckboxGroup"?(e.openBlock(),e.createBlock(e.unref(i.NCheckboxGroup),e.mergeProps({key:4,value:f[o.field],"onUpdate:value":n=>f[o.field]=n,ref_for:!0},I(o)),{default:e.withCtx(()=>[e.createVNode(e.unref(i.NSpace),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B(o.options)?o.options(k(o)):o.options??[],n=>(e.openBlock(),e.createBlock(e.unref(i.NCheckbox),{value:n.value,key:n.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label),1)]),_:2},1032,["value"]))),128))]),_:2},1024)]),_:2},1040,["value","onUpdate:value"])):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(oe(o)),e.mergeProps({key:5,style:{width:o.isFullWidth?"100%":""},ref_for:!0},I(o),{value:f[o.field],"onUpdate:value":n=>f[o.field]=n,"on-update:checked":n=>f[o.field]=n}),null,16,["style","value","onUpdate:value","on-update:checked"]))]),_:2},1032,["span","path","label","label-align","show-feedback","label-width"]))),128))]),_:3})]),_:3},8,["rules","model","size","label-align","disabled","label-placement","label-width"]),l.type=="FORM"&&(l.showFormBtn??1)?(e.openBlock(),e.createBlock(e.unref(i.NFlex),{key:0,justify:"end",style:{"margin-top":"10px"}},{default:e.withCtx(()=>[e.createVNode(e.unref(i.NSpace),null,{default:e.withCtx(()=>{var o,r,n,s,v,g,w,V,R,M,q,H,J,K,Q,X;return[((r=(o=t.formBtn)==null?void 0:o.cancel)==null?void 0:r.show)??1?(e.openBlock(),e.createBlock(e.unref(i.NButton),{key:0,size:l.size,onClick:a[0]||(a[0]=D=>y("cancel")),disabled:((s=(n=t.formBtn)==null?void 0:n.cancel)==null?void 0:s.loading)||((g=(v=t.formBtn)==null?void 0:v.cancel)==null?void 0:g.disabled),loading:((V=(w=t.formBtn)==null?void 0:w.cancel)==null?void 0:V.loading)??!1},{default:e.withCtx(()=>{var D,L;return[e.createTextVNode(e.toDisplayString(((L=(D=t.formBtn)==null?void 0:D.cancel)==null?void 0:L.text)??"取消"),1)]}),_:1},8,["size","disabled","loading"])):e.createCommentVNode("",!0),((M=(R=t.formBtn)==null?void 0:R.confirm)==null?void 0:M.show)??1?(e.openBlock(),e.createBlock(e.unref(i.NButton),{key:1,type:"primary",size:l.size,disabled:((H=(q=t.formBtn)==null?void 0:q.confirm)==null?void 0:H.loading)||((K=(J=t.formBtn)==null?void 0:J.confirm)==null?void 0:K.disabled),loading:((X=(Q=t.formBtn)==null?void 0:Q.confirm)==null?void 0:X.loading)??!1,onClick:ne},{default:e.withCtx(()=>{var D,L;return[e.createTextVNode(e.toDisplayString(((L=(D=t.formBtn)==null?void 0:D.confirm)==null?void 0:L.text)??"确认"),1)]}),_:1},8,["size","disabled","loading"])):e.createCommentVNode("",!0)]}),_:1})]),_:1})):e.createCommentVNode("",!0)]),_:3},8,["title","content-style","theme-overrides","bordered"]))}});me.install=N=>{N.component(me.name,me)};const at={key:0},he=e.defineComponent({__name:"index",props:{cols:{},labelWidth:{default:80},labelPlacement:{default:"left"},size:{default:"small"},labelAlign:{default:"right"},disabled:{type:Boolean,default:!1},title:{},rules:{},formData:{},filterNullValue:{type:Boolean,default:void 0},type:{default:"FORM"},card:{type:Boolean,default:!1},immediateUpdate:{type:Boolean,default:!1},borderRadius:{default:7},searchFirstRow:{type:Boolean,default:!0},searchBtn:{default:void 0},showFormBtn:{type:Boolean,default:void 0},formBtn:{},initSearch:{type:Boolean}},emits:["dataChange","search","reset","cancel","confirm"],setup(N,{expose:E,emit:h}){const b=e.useSlots(),C=e.ref(),y=h,p={NInput:i.NInput,NInputNumber:i.NInputNumber,NSelect:i.NSelect,NTreeSelect:i.NTreeSelect,NAutoComplete:i.NAutoComplete,NCascader:i.NCascader,NDatePicker:i.NDatePicker,NSwitch:i.NSwitch,NUpload:i.NUpload,NSlider:i.NSlider,NRate:i.NRate,NTree:i.NTree,NTransfer:i.NTransfer,NTimePicker:i.NTimePicker,NCheckbox:i.NCheckbox,NRadio:i.NRadio},l=N,{rules:u,searchBtn:d,formData:c}=e.toRefs(l),x=e.ref(!1),S=e.reactive({show:!0,text:"搜索"}),m=e.reactive({show:!0,text:"重置"}),f=e.reactive({}),_=l.type=="FILTER"?l.cols??4:l.cols??1,W=e.reactive({});G(),u.value.forEach(t=>{var a;if(F(t.field,((a=c==null?void 0:c.value)==null?void 0:a[t.field])??t.defaultValue),t.compType=="DatePicker"){const{rangeMappingToFields:o,valDateFormat:r,type:n}=B(t.props)?t.props(k(t)):t.props;if(o&&j(n)&&f[t.field]){const[s,v]=o,[g,w]=f[t.field];F(s,r?T(g).format(r):g),F(v,r?T(w).format(r):w)}}}),e.watch(f,t=>y("dataChange",Y(t)),{immediate:l.immediateUpdate}),e.watch(d,t=>G(),{immediate:!0}),e.watchEffect(()=>{var t;c!=null&&c.value&&((t=Object.keys(c.value))==null||t.forEach(a=>{var o;F(a,(o=c==null?void 0:c.value)==null?void 0:o[a])}))});const re=e.computed(()=>Math.ceil(u.value.filter(t=>B(t.show)?t.show(k(t)):t.show??!0).length/_)),ie=e.computed(()=>{var t,a;let o=u.value;if(x.value)if(l.searchFirstRow){o=u.value.filter(n=>z(n)&&n.field!="search");const r=o.length>=_?_-1:o.length;o.splice(r,0,{field:"search",compType:"Slot",ignoreCommit:!0,span:((t=l.searchBtn)==null?void 0:t.searchSpan)??6})}else{const r=o.findIndex(n=>n.field=="search");r!=-1&&u.value.splice(r,1),o.push({field:"search",compType:"Slot",ignoreCommit:!0,span:((a=l.searchBtn)==null?void 0:a.searchSpan)??6})}return o.filter(r=>z(r)).map((r,n)=>(function(s){const{required:v}=s;if(v&&l.type=="FORM"){const g={required:B(v)?v(k(s)):v??!1,trigger:s.trigger??["blur","change","input"],type:s.validateType};s.validator?g.validator=s.validator:g.message=s.message??(v?`${s.label}不能为空`:""),W[s.field]=g}}(r),{...r,isFullWidth:r.fullWidth??l.type=="FILTER",labelWidth:l.type=="FILTER"&&(n+1)%_==1?"auto":r.labelWidth}))});function Y(t){const a={...t};return u.value.forEach(o=>{var r;if(o.compType=="DatePicker"){const n=B(o.props)?o.props(k(o)):o.props;if((r=n==null?void 0:n.rangeMappingToFields)!=null&&r.length){const[s,v]=n.rangeMappingToFields;if(a[s]&&a[v]||l.type!="FILTER"||!(l.filterNullValue??1)){if(a[o.field]){let[g,w]=a[o.field];n.type=="daterange"&&(n.rangeEndTimeStamp??1)&&(w=T(w).endOf("days").valueOf()),a[s]=n.valDateFormat?T(g).format(n.valDateFormat):g,a[v]=n.valDateFormat?T(w).format(n.valDateFormat):w}}else delete a[s],delete a[v];delete a[o.field]}else n.type=="date"&&a[o.field]&&n.valDateFormat&&(a[o.field]=T(a[o.field]).format(n.valDateFormat))}l.type=="FILTER"&&(l.filterNullValue??1)&&!a[o.field]&&delete a[o.field],o.ignoreCommit&&l.type=="FORM"&&delete a[o.field]}),a}function j(t){return t=="daterange"||t=="datetimerange"||t=="monthrange"||t=="yearrange"||t=="quarterrange"}function G(){var t,a;if(l.type=="FILTER"){const o={search:((t=d.value)==null?void 0:t.search)??!0,reset:((a=d.value)==null?void 0:a.reset)??!0},{search:r,reset:n}=o;typeof r=="boolean"&&r?(x.value=!0,S.show=!0):typeof r=="object"?(x.value=!0,Object.assign(S,r)):S.show=!1,typeof n=="boolean"&&n?(x.value=!0,m.show=!0):typeof n=="object"?(x.value=!0,Object.assign(m,n)):m.show=!1,x.value=!!b.search||x.value}else x.value=!1}function z(t){return B(t.show)?t.show(k(t)):t.show??!0}function le(t){return l.type!="FILTER"||Math.ceil((t+1)/_)!=re.value}function I(t){const a=k(t),o=(B(t.props)?t.props(a):t.props)??{},r=t.options??o.options;if(r&&(o.options=B(r)?r(a):r),t.compType=="DatePicker"){const{valDateFormat:n,type:s}=o;if(o.rangeMappingToFields&&j(s)){const[v,g]=o.rangeMappingToFields;o.onUpdateValue=w=>{let[V,R]=w;s=="daterange"&&(o.dateRangeEndTimeStamp??1)&&(R=T(R).endOf("days").valueOf()),F(v,n?T(V).format(n):V),F(g,n?T(R).format(n):R)}}}return o.disabled=B(t.disabled)?t.disabled(a):t.disabled??!1,o}function oe(t){const a=B(t.compType)?t.compType(k(t)):t.compType;return p[`N${a}`]}let U=null;function ne(){Z().then(()=>{U&&clearInterval(U),U=setTimeout(()=>{const t={...f};u.value.forEach(a=>{a.ignoreCommit&&delete t[a.field]}),y("confirm",t)},300)})}function Z(){return new Promise((t,a)=>{var o;(o=C.value)==null||o.validate(r=>{r?a(r):t(e.toRaw(f))})})}function F(t,a){return new Promise(o=>{f[t]=a,o(f)})}function A(t){return new Promise(a=>{for(const o in t)f[o]=t[o];a(f)})}function ee(){m.interceptEvent||u.value.filter(t=>t.restValue??!0).forEach(t=>{f[t.field]=null}),y("reset",e.toRaw(f))}function $(t){t instanceof Event&&(t=null);const a={...e.toRaw(f),...t};y("search",Y(a))}function P(t){return u.value.find(a=>a.field==t)}function ae(t,a){const o=P(t)??{};return Object.assign(o,a)}function de(t,a){const o=P(t)??{};return Object.assign(o,a)}function ce(t){for(const a in t)Object.prototype.hasOwnProperty.call(t,a)&&F(a,t[a])}function se(t,a){return new Promise(o=>{const r=P(t);r&&(r.options=a),o(r==null?void 0:r.options)})}function te(){return{validate:Z,setFormData:ce,setValue:F,setValues:A,reset:ee,search:$,mergeRule:ae,setRule:de,getRule:P,setOptions:se,formData:f,rules:u.value}}function k(t){return{...te(),value:f[t.field],rule:t}}function O(t,a){return Object.prototype.toString.call(t)===`[object ${a}]`}function B(t){return O(t,"Function")||O(t,"AsyncFunction")}return u.value.forEach(t=>{z(t)&&t.onLoad&&t.onLoad(k(t))}),l.initSearch&&$(),E(te()),(t,a)=>(e.openBlock(),e.createBlock(e.unref(i.NCard),{size:"small",title:t.title,"header-style":{padding:"10px",margin:0},"footer-style":{padding:"0",margin:"0"},"content-style":{padding:l.card?"10px":"0"},"theme-overrides":{borderRadius:l.card?`${l.borderRadius}px`:"0"},bordered:l.card,segmented:{content:!0,footer:"soft"}},{default:e.withCtx(()=>[e.createVNode(e.unref(i.NForm),{ref_key:"formRef",ref:C,rules:W,model:f,size:l.size,"label-align":l.labelAlign,disabled:l.disabled,"label-placement":l.labelPlacement,"label-width":l.labelWidth},{default:e.withCtx(()=>[e.createVNode(e.unref(i.NGrid),{cols:24,"x-gap":12},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(ie.value,(o,r)=>(e.openBlock(),e.createBlock(e.unref(i.NFormItemGi),{span:(B(o.span)?o.span():o.span)??24/e.unref(_),path:o.field,label:o.label,"label-align":o.labelAlign??l.labelAlign??"right","show-feedback":le(r),"label-width":o.labelWidth??l.labelWidth,key:o.field},{default:e.withCtx(()=>[o.compType=="Slot"&&o.field=="search"?(e.openBlock(),e.createElementBlock("div",at,[e.unref(b).search?e.renderSlot(t.$slots,"search",e.mergeProps({key:0,ref_for:!0},k(o))):(e.openBlock(),e.createBlock(e.unref(i.NSpace),{key:1},{default:e.withCtx(()=>[S.show?(e.openBlock(),e.createBlock(e.unref(i.NButton),{key:0,type:"primary",onClick:$,disabled:S.loading||S.disabled,loading:S.loading??!1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(S.text),1)]),_:1},8,["disabled","loading"])):e.createCommentVNode("",!0),m.show?(e.openBlock(),e.createBlock(e.unref(i.NButton),{key:1,disabled:m.loading||m.disabled,loading:m.loading??!1,onClick:ee},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.text),1)]),_:1},8,["disabled","loading"])):e.createCommentVNode("",!0)]),_:1}))])):o.compType=="Slot"?e.renderSlot(t.$slots,o.field,e.mergeProps({key:1,ref_for:!0},k(o))):o.compType=="RadioGroup"?(e.openBlock(),e.createBlock(e.unref(i.NRadioGroup),e.mergeProps({key:2,value:f[o.field],"onUpdate:value":n=>f[o.field]=n,ref_for:!0},I(o)),{default:e.withCtx(()=>[e.createVNode(e.unref(i.NSpace),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B(o.options)?o.options(k(o)):o.options??[],n=>(e.openBlock(),e.createBlock(e.unref(i.NRadio),{value:n.value,key:n.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label),1)]),_:2},1032,["value"]))),128))]),_:2},1024)]),_:2},1040,["value","onUpdate:value"])):o.compType=="RadioButtonGroup"?(e.openBlock(),e.createBlock(e.unref(i.NRadioGroup),e.mergeProps({key:3,value:f[o.field],"onUpdate:value":n=>f[o.field]=n,ref_for:!0},I(o)),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B(o.options)?o.options(k(o)):o.options??[],n=>(e.openBlock(),e.createBlock(e.unref(i.NRadioButton),{value:n.value,key:n.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label),1)]),_:2},1032,["value"]))),128))]),_:2},1040,["value","onUpdate:value"])):o.compType=="CheckboxGroup"?(e.openBlock(),e.createBlock(e.unref(i.NCheckboxGroup),e.mergeProps({key:4,value:f[o.field],"onUpdate:value":n=>f[o.field]=n,ref_for:!0},I(o)),{default:e.withCtx(()=>[e.createVNode(e.unref(i.NSpace),null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B(o.options)?o.options(k(o)):o.options??[],n=>(e.openBlock(),e.createBlock(e.unref(i.NCheckbox),{value:n.value,key:n.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label),1)]),_:2},1032,["value"]))),128))]),_:2},1024)]),_:2},1040,["value","onUpdate:value"])):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(oe(o)),e.mergeProps({key:5,style:{width:o.isFullWidth?"100%":""},ref_for:!0},I(o),{value:f[o.field],"onUpdate:value":n=>f[o.field]=n,"on-update:checked":n=>f[o.field]=n}),null,16,["style","value","onUpdate:value","on-update:checked"]))]),_:2},1032,["span","path","label","label-align","show-feedback","label-width"]))),128))]),_:3})]),_:3},8,["rules","model","size","label-align","disabled","label-placement","label-width"]),l.type=="FORM"&&(l.showFormBtn??1)?(e.openBlock(),e.createBlock(e.unref(i.NFlex),{key:0,justify:"end",style:{"margin-top":"10px"}},{default:e.withCtx(()=>[e.createVNode(e.unref(i.NSpace),null,{default:e.withCtx(()=>{var o,r,n,s,v,g,w,V,R,M,q,H,J,K,Q,X;return[((r=(o=t.formBtn)==null?void 0:o.cancel)==null?void 0:r.show)??1?(e.openBlock(),e.createBlock(e.unref(i.NButton),{key:0,size:l.size,onClick:a[0]||(a[0]=D=>y("cancel")),disabled:((s=(n=t.formBtn)==null?void 0:n.cancel)==null?void 0:s.loading)||((g=(v=t.formBtn)==null?void 0:v.cancel)==null?void 0:g.disabled),loading:((V=(w=t.formBtn)==null?void 0:w.cancel)==null?void 0:V.loading)??!1},{default:e.withCtx(()=>{var D,L;return[e.createTextVNode(e.toDisplayString(((L=(D=t.formBtn)==null?void 0:D.cancel)==null?void 0:L.text)??"取消"),1)]}),_:1},8,["size","disabled","loading"])):e.createCommentVNode("",!0),((M=(R=t.formBtn)==null?void 0:R.confirm)==null?void 0:M.show)??1?(e.openBlock(),e.createBlock(e.unref(i.NButton),{key:1,type:"primary",size:l.size,disabled:((H=(q=t.formBtn)==null?void 0:q.confirm)==null?void 0:H.loading)||((K=(J=t.formBtn)==null?void 0:J.confirm)==null?void 0:K.disabled),loading:((X=(Q=t.formBtn)==null?void 0:Q.confirm)==null?void 0:X.loading)??!1,onClick:ne},{default:e.withCtx(()=>{var D,L;return[e.createTextVNode(e.toDisplayString(((L=(D=t.formBtn)==null?void 0:D.confirm)==null?void 0:L.text)??"确认"),1)]}),_:1},8,["size","disabled","loading"])):e.createCommentVNode("",!0)]}),_:1})]),_:1})):e.createCommentVNode("",!0)]),_:3},8,["title","content-style","theme-overrides","bordered"]))}});he.install=N=>{N.component(he.name,he)};const lt={key:0},ve=e.defineComponent({__name:"index",props:{cols:{},labelWidth:{default:80},labelPlacement:{default:"left"},size:{default:"small"},labelAlign:{default:"right"},disabled:{type:Boolean,default:!1},title:{},rules:{},formData:{},filterNullValue:{type:Boolean,default:void 0},type:{default:"FORM"},card:{type:Boolean,default:!1},immediateUpdate:{type:Boolean,default:!1},borderRadius:{default:7},searchFirstRow:{type:Boolean,default:!0},searchBtn:{default:void 0},showFormBtn:{type:Boolean,default:void 0},formBtn:{},initSearch:{type:Boolean}},emits:["dataChange","search","reset","cancel","confirm"],setup(N,{expose:E,emit:h}){const b=e.useSlots(),C=e.ref(),y=h,p={NInput:i.NInput,NInputNumber:i.NInputNumber,NSelect:i.NSelect,NTreeSelect:i.NTreeSelect,NAutoComplete:i.NAutoComplete,NCascader:i.NCascader,NDatePicker:i.NDatePicker,NSwitch:i.NSwitch,NUpload:i.NUpload,NSlider:i.NSlider,NRate:i.NRate,NTree:i.NTree,NTransfer:i.NTransfer,NTimePicker:i.NTimePicker,NCheckbox:i.NCheckbox,NRadio:i.NRadio},l=N,{rules:u,searchBtn:d,formData:c}=e.toRefs(l),x=e.ref(!1),S=e.reactive({show:!0,text:"搜索"}),m=e.reactive({show:!0,text:"重置"}),f=e.reactive({}),_=l.type=="FILTER"?l.cols??4:l.cols??1,W=e.reactive({});G(),u.value.forEach(t=>{var a;if(F(t.field,((a=c==null?void 0:c.value)==null?void 0:a[t.field])??t.defaultValue),t.compType=="DatePicker"){const{rangeMappingToFields:o,valDateFormat:r,type:n}=B(t.props)?t.props(k(t)):t.props;if(o&&j(n)&&f[t.field]){const[s,v]=o,[g,w]=f[t.field];F(s,r?T(g).format(r):g),F(v,r?T(w).format(r):w)}}}),e.watch(f,t=>y("dataChange",Y(t)),{immediate:l.immediateUpdate}),e.watch(d,t=>G(),{immediate:!0}),e.watchEffect(()=>{var t;c!=null&&c.value&&((t=Object.keys(c.value))==null||t.forEach(a=>{var o;F(a,(o=c==null?void 0:c.value)==null?void 0:o[a])}))});const re=e.computed(()=>Math.ceil(u.value.filter(t=>B(t.show)?t.show(k(t)):t.show??!0).length/_)),ie=e.computed(()=>{var t,a;let o=u.value;if(x.value)if(l.searchFirstRow){o=u.value.filter(n=>z(n)&&n.field!="search");const r=o.length>=_?_-1:o.length;o.splice(r,0,{field:"search",compType:"Slot",ignoreCommit:!0,span:((t=l.searchBtn)==null?void 0:t.searchSpan)??6})}else{const r=o.findIndex(n=>n.field=="search");r!=-1&&u.value.splice(r,1),o.push({field:"search",compType:"Slot",ignoreCommit:!0,span:((a=l.searchBtn)==null?void 0:a.searchSpan)??6})}return o.filter(r=>z(r)).map((r,n)=>(function(s){const{required:v}=s;if(v&&l.type=="FORM"){const g={required:B(v)?v(k(s