cnhis-design-vue 3.1.53-beta.5 → 3.1.53-beta.7

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.
Files changed (35) hide show
  1. package/es/components/button-print/index.d.ts +9 -0
  2. package/es/components/button-print/src/ButtonPrint.vue.d.ts +9 -0
  3. package/es/components/button-print/src/ButtonPrint.vue2.js +1 -1
  4. package/es/components/form-config/index.d.ts +7 -0
  5. package/es/components/form-config/src/FormConfig.vue.d.ts +7 -0
  6. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +3 -0
  7. package/es/components/form-render/src/components/renderer/{combination.d.ts → combination/combination.d.ts} +1 -1
  8. package/es/components/form-render/src/components/renderer/combination/combination.js +1 -0
  9. package/es/components/form-render/src/components/renderer/combination/hooks/index.d.ts +2 -0
  10. package/es/components/form-render/src/components/renderer/combination/hooks/index.js +1 -0
  11. package/es/components/form-render/src/components/renderer/combination/hooks/useCombination.d.ts +8 -0
  12. package/es/components/form-render/src/components/renderer/combination/hooks/useCombination.js +1 -0
  13. package/es/components/form-render/src/components/renderer/combination/index.d.ts +3 -0
  14. package/es/components/form-render/src/components/renderer/combination/index.js +1 -0
  15. package/es/components/form-render/src/components/renderer/combination/jsonCombination.js +1 -0
  16. package/es/components/form-render/src/components/renderer/combination/tableCombination.d.ts +61 -0
  17. package/es/components/form-render/src/components/renderer/combination/tableCombination.js +1 -0
  18. package/es/components/form-render/src/components/renderer/index.js +1 -1
  19. package/es/components/form-render/src/components/renderer/select.js +1 -1
  20. package/es/components/form-render/src/hooks/useFieldListAdaptor.js +1 -1
  21. package/es/components/form-render/src/types/fieldItem.d.ts +1 -0
  22. package/es/components/form-render/src/utils/index.js +1 -1
  23. package/es/components/iho-table/src/hooks/useColumnConfigAdaptor.js +1 -1
  24. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/editSelect.js +1 -1
  25. package/es/components/shortcut-setter/index.d.ts +1 -0
  26. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +1 -0
  27. package/es/shared/hooks/selectHooks/useSelectRenders.d.ts +3 -1
  28. package/es/shared/hooks/selectHooks/useSelectRenders.js +1 -1
  29. package/es/shared/package.json.js +1 -1
  30. package/package.json +2 -2
  31. package/es/components/form-render/src/components/renderer/combination.js +0 -1
  32. package/es/components/form-render/src/components/renderer/jsonCombination/index.js +0 -1
  33. /package/es/components/form-render/src/components/renderer/{jsonCombination → combination}/hooks/useDeepValidate.d.ts +0 -0
  34. /package/es/components/form-render/src/components/renderer/{jsonCombination → combination}/hooks/useDeepValidate.js +0 -0
  35. /package/es/components/form-render/src/components/renderer/{jsonCombination/index.d.ts → combination/jsonCombination.d.ts} +0 -0
@@ -75,6 +75,9 @@ declare const ButtonPrint: SFCWithInstall<import("vue").DefineComponent<{
75
75
  }>>;
76
76
  default: () => {};
77
77
  };
78
+ signature: {
79
+ type: StringConstructor;
80
+ };
78
81
  }, {
79
82
  $message: import("naive-ui").MessageApi;
80
83
  printInstance: import("./src/utils").Print | null;
@@ -152,6 +155,9 @@ declare const ButtonPrint: SFCWithInstall<import("vue").DefineComponent<{
152
155
  }>>;
153
156
  default: () => {};
154
157
  };
158
+ signature: {
159
+ type: StringConstructor;
160
+ };
155
161
  }>> & {
156
162
  onError?: ((...args: any[]) => any) | undefined;
157
163
  onSuccess?: ((...args: any[]) => any) | undefined;
@@ -1914,6 +1920,9 @@ declare const ButtonPrint: SFCWithInstall<import("vue").DefineComponent<{
1914
1920
  }>>;
1915
1921
  default: () => {};
1916
1922
  };
1923
+ signature: {
1924
+ type: StringConstructor;
1925
+ };
1917
1926
  }>> & {
1918
1927
  onError?: ((...args: any[]) => any) | undefined;
1919
1928
  onSuccess?: ((...args: any[]) => any) | undefined;
@@ -79,6 +79,9 @@ declare const _default: import("vue").DefineComponent<{
79
79
  }>>;
80
80
  default: () => {};
81
81
  };
82
+ signature: {
83
+ type: StringConstructor;
84
+ };
82
85
  }, {
83
86
  $message: import("naive-ui").MessageApi;
84
87
  printInstance: Print | null;
@@ -159,6 +162,9 @@ declare const _default: import("vue").DefineComponent<{
159
162
  }>>;
160
163
  default: () => {};
161
164
  };
165
+ signature: {
166
+ type: StringConstructor;
167
+ };
162
168
  }>> & {
163
169
  onError?: ((...args: any[]) => any) | undefined;
164
170
  onSuccess?: ((...args: any[]) => any) | undefined;
@@ -1926,6 +1932,9 @@ declare const _default: import("vue").DefineComponent<{
1926
1932
  }>>;
1927
1933
  default: () => {};
1928
1934
  };
1935
+ signature: {
1936
+ type: StringConstructor;
1937
+ };
1929
1938
  }>> & {
1930
1939
  onError?: ((...args: any[]) => any) | undefined;
1931
1940
  onSuccess?: ((...args: any[]) => any) | undefined;
@@ -1 +1 @@
1
- import{defineComponent as t,reactive as e,computed as r,onMounted as a,watch as n,openBlock as i,createElementBlock as o,Fragment as l,createVNode as s,unref as m,withCtx as p,renderSlot as d,withModifiers as u,createTextVNode as c,toDisplayString as f,mergeProps as v}from"vue";import{isObject as y}from"@vue/shared";import{useMessage as b,NDropdown as g,NButton as I,NIcon as P}from"naive-ui";import{ChevronDown as w}from"@vicons/ionicons5";import{Print as h}from"./utils/print.js";import{isIReport as F}from"./utils/browserPrint.js";import k from"./components/IdentityVerification.vue.js";import{format as T}from"date-fns";import{savePrivateFormatApi as x,getPrivateFormatApi as S}from"./api.js";var D=t({__name:"ButtonPrint",props:{printParams:{type:Array},params:{default:()=>[],type:Array},btnText:{default:"打印",type:String},printText:{default:"直接打印",type:String},previewText:{default:"打印预览",type:String},pdfLoadText:{default:"下载pdf",type:String},formatEditText:{default:"格式编辑",type:String},prevFn:{default:()=>Promise.resolve(),type:Function},queryPrintFormatByNumber:{default:()=>Promise.resolve({}),type:Function},queryTemplateParams:{default:()=>Promise.resolve({}),type:Function},strategy:{default:"MULTI",type:String},clickPrevFn:{default:()=>Promise.resolve(!0),type:Function},noDataMsg:{default:"请选中需要打印的数据",type:String},token:{type:String},printdlgshow:{default:"0",type:String},btnprint:{type:String,default:"1"},directPrint:{type:Boolean,default:!1},externalOptionConfig:{type:Object,default:()=>({})}},emits:["success","error","clickoutside"],setup(t,{expose:D,emit:O}){var j;const E=t,L=b();let M;const N={},V=e({spinning:!1,visible:!1,formatList:[],templateParams:{},printParams:[],currentFormatId:"",identityVerification:{visible:!1},isInited:!1,watchPrintParamsReformatFn:null,spinTimer:null}),C=e([{label:E.printText,key:"printText"},{label:E.previewText,key:"previewText"},{label:E.pdfLoadText,key:"downloadPdf"},{label:E.formatEditText,key:"formatEditText"},...(null==(j=E.externalOptionConfig)?void 0:j.options)||[]]),Y=r((()=>{if(!V.currentFormatId)return{};let t=V.currentFormatId;return V.formatList.find((e=>e.id===t))})),J=r((()=>{var t;return(null==(t=Y.value)?void 0:t.name)||"格式选择"})),U=r((()=>{let t=V.formatList.find((t=>t.id===V.currentFormatId));return null==t?void 0:t.templateId})),A=async t=>{if(E.directPrint){if(V.spinning)return;return"button"===t?void await nt():et()}return et()},B=t=>s("span",{class:{active:t.key===V.currentFormatId}},[t.label]),q=(t,e)=>{let r={type:e,formatId:V.currentFormatId,templateId:U.value};O("success",t,r)},R=t=>{O("error",t),y(t)&&"notInstalledApp"===t.type&&L.error(t.message)},_=t=>{O("error",{message:"前置条件执行错误",type:t,preExecution:!0})},z=(t=0)=>{var e;const r=(null==(e=E.printParams)?void 0:e.length)?E.printParams[t]:V.printParams[t];return JSON.stringify({...r||{},...E.token?{token:E.token}:{}})},H=()=>{var t,e;let r={},a={};if(null==(t=V.templateParams.customizeDataset)?void 0:t.length){const t=(null==(e=Object.keys(V.printParams[0].datasetData||{}))?void 0:e[0])||"",r=JSON.stringify(V.printParams.map((e=>JSON.parse(e.datasetData[t]))));a={datasetData:{}},a.datasetData[t]=r}else Object.keys(V.printParams[0]).forEach((t=>{a[t]=[],V.printParams.forEach((e=>{a[t].push(e[t])})),a[t]=a[t].join(",")}));return r=Object.assign({},JSON.parse(z(0)),a),JSON.stringify(r)},$=()=>{let t=V.printParams.length;const e=async e=>{try{--t<=0&&q(e,"print")}catch(t){console.log("error",t)}};E.prevFn("print").then((()=>{const t={formatId:V.currentFormatId,templateId:U.value,printdlgshow:E.printdlgshow};if("MULTI"===E.strategy)for(let r=0;r<V.printParams.length;r++)r>0&&(t.printdlgshow="0"),M.printDirect({...t,params:z(r)},e,R);else M.printDirect({...t,params:H()},(t=>{q(t,"print")}),R)})).catch((()=>{_("print")})).finally((()=>{V.visible=!1}))},G=async(t,e)=>{var r,a;switch(t){case"printText":$();break;case"previewText":(async()=>{E.prevFn("preview").then((()=>{const t="MULTI"===E.strategy?z():H(),e={formatId:V.currentFormatId,templateId:U.value,params:t,btnprint:E.btnprint};M.preview(e,(t=>{q(t,"preview")}),R)})).catch((()=>{_("preview")})).finally((()=>{V.visible=!1}))})();break;case"formatEditText":E.prevFn("edit").then((()=>{V.identityVerification.visible=!0})).catch((()=>{_("edit")})).finally((()=>{V.visible=!1}));break;case"downloadPdf":(async()=>{E.prevFn("download").then((()=>{const t="MULTI"===E.strategy?z():H(),e={formatId:V.currentFormatId,templateId:U.value,print:{print:"1",type:"1"},params:t};M.downloadPDF(e,(t=>q(t,"preview")),R)})).catch((()=>{_("download")})).finally((()=>{V.visible=!1}))})();break;default:{V.visible=!1;const n=V.formatList.find((e=>e.id===t))||{};if(Object.keys(n).length>0){V.currentFormatId=t;const[e]=C;e.label=(null==n?void 0:n.name)||e.label,await x({formatForms:[{...n}],name:N.name||n.templateName,number:N.number||n.number,templateId:N.templateId||n.templateId,...N.id?{id:N.id}:{}},{token:E.token})}else null==(a=null==(r=E.externalOptionConfig)?void 0:r.onSelect)||a.call(r,t,e);break}}},K=()=>{V.visible=!1,O("clickoutside")},Q=()=>(V.isInited=!1,V.spinning=!1,setTimeout((()=>{V.visible=!1}),0),!1),W=(t,e,r)=>{const a={};return e.forEach((e=>{let n=((t,e)=>{const r={DATE:"YYYY-MM-DD",DATETIME:"YYYY-MM-DD HH:mm:ss"};let a=e;return Object.keys(r).includes(t.type)&&e&&(a=T(e,r[t.type])),(null==t?void 0:t.defaultValue)||a})(e,t[e[r]]);t[e[r]]&&n&&(a[e[r]]=n)})),a},X=({customizeDataset:t=[],param:e=[]},r=[])=>r.map((r=>{let a={};return t.forEach((t=>{const e=t.dataSetting[0].selectFieldList;a.datasetData={[t.name]:JSON.stringify(W(r,e,"fieldName"))}})),a=Object.assign({},a,W(r,e,"key")),a})),Z=async t=>{var e;if(V.formatList=t?(t=>{let e=[];return t&&t.forEach((t=>{if(!t.format)return!1;e.push(...t.format.map((e=>Object.assign({},e,{templateName:t.name}))))})),e})(t.obj):[],V.currentFormatId=await(async(t,e)=>{var r;if(!(null==t?void 0:t.length))return"";const{data:a}=await S({templateId:t[0].templateId},{token:E.token});if("SUCCESS"===a.result){const{formatForms:e=[]}=a.map||{};Object.assign(N,a.map||{});const n=null==(r=null==e?void 0:e[0])?void 0:r.id;if(n&&t.map((t=>t.id)).includes(n))return n}const n=t.find((t=>1==t[e]));return(null==n?void 0:n.id)||t[0].id})(V.formatList,"defaultFlag"),!V.currentFormatId)return L.error("获取打印格式失败,请联系管理员!"),Q();(()=>{const t=V.formatList.map((t=>({label:t.name,key:t.id})));C.unshift({label:J.value,key:"format",children:t})})();let r=null==(e=await E.queryTemplateParams())?void 0:e.obj;if(!r||!U.value)return L.error("获取打印模板失败,请联系管理员!"),Q();V.templateParams=r,V.printParams=X(V.templateParams,E.params)},tt=async()=>{if(V.isInited)return!0;V.isInited=!0,V.spinning=!0,(()=>{if(M)return!1;M=new h})();const t=await E.queryPrintFormatByNumber();return await Z(t),V.spinning=!1,!0},et=async(t=!0)=>{var e;if(await E.clickPrevFn())if(null==(e=E.params)?void 0:e.length){if(!V.visible){if(!await tt())return!1}t&&(V.visible=!V.visible)}else L.warning(E.noDataMsg)},rt=()=>{V.watchPrintParamsReformatFn&&V.watchPrintParamsReformatFn(),V.isInited?V.printParams=X(V.templateParams,E.params):V.watchPrintParamsReformatFn=()=>n((()=>V.isInited),(t=>{if(!t)return!1;rt()}))},at=t=>{if(V.identityVerification.visible=!1,F(V.currentFormatId))return q(null,"edit");const e={formatId:V.currentFormatId,templateId:U.value,params:z(),token:t};M.editPrintFormat(e,(t=>{q(t,"edit")}),R)};async function nt(){await et(!1),$()}return a((()=>{V.isInited=!1})),n((()=>E.params),(t=>{if(!(null==t?void 0:t.length))return!1;rt()}),{deep:!0}),D({directPrint:nt}),(e,r)=>(i(),o(l,null,[s(m(g),{class:"c-dropdown",placement:"bottom-start",trigger:"click",show:V.visible,onClickoutside:K,options:C,onSelect:G,"render-label":B},{default:p((()=>[d(e.$slots,"button",{handleClickPrintBtn:et,printSpinning:V.spinning,printbtnText:t.btnText,printVisible:V.visible},(()=>[s(m(I),{class:"dropdown-button",onClick:r[1]||(r[1]=u((()=>A("button")),["stop"]))},{default:p((()=>[c(f(t.btnText)+" ",1),s(m(P),{component:m(w),style:{"margin-left":"5px"},onClick:r[0]||(r[0]=u((()=>A("icon")),["stop"]))},null,8,["component"])])),_:1})]))])),_:3},8,["show","options"]),s(k,v(e.$attrs,{modelValue:V.identityVerification.visible,"onUpdate:modelValue":r[2]||(r[2]=t=>V.identityVerification.visible=t),formatId:V.currentFormatId,templateId:m(U),onSuccess:at}),null,16,["modelValue","formatId","templateId"])],64))}});export{D as default};
1
+ import{defineComponent as t,reactive as e,computed as r,onMounted as a,watch as n,openBlock as i,createElementBlock as s,Fragment as o,createVNode as l,unref as m,withCtx as p,renderSlot as d,withModifiers as u,createTextVNode as c,toDisplayString as f,mergeProps as v}from"vue";import{isObject as y}from"@vue/shared";import{useMessage as b,NDropdown as g,NButton as I,NIcon as P}from"naive-ui";import{ChevronDown as w}from"@vicons/ionicons5";import{Print as h}from"./utils/print.js";import{isIReport as F}from"./utils/browserPrint.js";import k from"./components/IdentityVerification.vue.js";import{format as T}from"date-fns";import{savePrivateFormatApi as x,getPrivateFormatApi as S}from"./api.js";var D=t({__name:"ButtonPrint",props:{printParams:{type:Array},params:{default:()=>[],type:Array},btnText:{default:"打印",type:String},printText:{default:"直接打印",type:String},previewText:{default:"打印预览",type:String},pdfLoadText:{default:"下载pdf",type:String},formatEditText:{default:"格式编辑",type:String},prevFn:{default:()=>Promise.resolve(),type:Function},queryPrintFormatByNumber:{default:()=>Promise.resolve({}),type:Function},queryTemplateParams:{default:()=>Promise.resolve({}),type:Function},strategy:{default:"MULTI",type:String},clickPrevFn:{default:()=>Promise.resolve(!0),type:Function},noDataMsg:{default:"请选中需要打印的数据",type:String},token:{type:String},printdlgshow:{default:"0",type:String},btnprint:{type:String,default:"1"},directPrint:{type:Boolean,default:!1},externalOptionConfig:{type:Object,default:()=>({})},signature:{type:String}},emits:["success","error","clickoutside"],setup(t,{expose:D,emit:O}){var j;const E=t,L=b();let M;const N={},V=e({spinning:!1,visible:!1,formatList:[],templateParams:{},printParams:[],currentFormatId:"",identityVerification:{visible:!1},isInited:!1,watchPrintParamsReformatFn:null,spinTimer:null}),C=e([{label:E.printText,key:"printText"},{label:E.previewText,key:"previewText"},{label:E.pdfLoadText,key:"downloadPdf"},{label:E.formatEditText,key:"formatEditText"},...(null==(j=E.externalOptionConfig)?void 0:j.options)||[]]),Y=r((()=>{if(!V.currentFormatId)return{};let t=V.currentFormatId;return V.formatList.find((e=>e.id===t))})),J=r((()=>{var t;return(null==(t=Y.value)?void 0:t.name)||"格式选择"})),U=r((()=>{let t=V.formatList.find((t=>t.id===V.currentFormatId));return null==t?void 0:t.templateId})),A=async t=>{if(E.directPrint){if(V.spinning)return;return"button"===t?void await nt():et()}return et()},B=t=>l("span",{class:{active:t.key===V.currentFormatId}},[t.label]),q=(t,e)=>{let r={type:e,formatId:V.currentFormatId,templateId:U.value};O("success",t,r)},R=t=>{O("error",t),y(t)&&"notInstalledApp"===t.type&&L.error(t.message)},_=t=>{O("error",{message:"前置条件执行错误",type:t,preExecution:!0})},z=(t=0)=>{var e;const r=(null==(e=E.printParams)?void 0:e.length)?E.printParams[t]:V.printParams[t];return JSON.stringify({...r||{},...E.token?{token:E.token}:{}})},H=()=>{var t,e;let r={},a={};if(null==(t=V.templateParams.customizeDataset)?void 0:t.length){const t=(null==(e=Object.keys(V.printParams[0].datasetData||{}))?void 0:e[0])||"",r=JSON.stringify(V.printParams.map((e=>JSON.parse(e.datasetData[t]))));a={datasetData:{}},a.datasetData[t]=r}else Object.keys(V.printParams[0]).forEach((t=>{a[t]=[],V.printParams.forEach((e=>{a[t].push(e[t])})),a[t]=a[t].join(",")}));return r=Object.assign({},JSON.parse(z(0)),a),JSON.stringify(r)},$=()=>{let t=V.printParams.length;const e=async e=>{try{--t<=0&&q(e,"print")}catch(t){console.log("error",t)}};E.prevFn("print").then((()=>{const t={formatId:V.currentFormatId,templateId:U.value,printdlgshow:E.printdlgshow,signature:E.signature};if("MULTI"===E.strategy)for(let r=0;r<V.printParams.length;r++)r>0&&(t.printdlgshow="0"),M.printDirect({...t,params:z(r)},e,R);else M.printDirect({...t,params:H()},(t=>{q(t,"print")}),R)})).catch((()=>{_("print")})).finally((()=>{V.visible=!1}))},G=async(t,e)=>{var r,a;switch(t){case"printText":$();break;case"previewText":(async()=>{E.prevFn("preview").then((()=>{const t="MULTI"===E.strategy?z():H(),e={formatId:V.currentFormatId,templateId:U.value,params:t,btnprint:E.btnprint,signature:E.signature};M.preview(e,(t=>{q(t,"preview")}),R)})).catch((()=>{_("preview")})).finally((()=>{V.visible=!1}))})();break;case"formatEditText":E.prevFn("edit").then((()=>{V.identityVerification.visible=!0})).catch((()=>{_("edit")})).finally((()=>{V.visible=!1}));break;case"downloadPdf":(async()=>{E.prevFn("download").then((()=>{const t="MULTI"===E.strategy?z():H(),e={formatId:V.currentFormatId,templateId:U.value,print:{print:"1",type:"1"},params:t,signature:E.signature};M.downloadPDF(e,(t=>q(t,"preview")),R)})).catch((()=>{_("download")})).finally((()=>{V.visible=!1}))})();break;default:{V.visible=!1;const n=V.formatList.find((e=>e.id===t))||{};if(Object.keys(n).length>0){V.currentFormatId=t;const[e]=C;e.label=(null==n?void 0:n.name)||e.label,await x({formatForms:[{...n}],name:N.name||n.templateName,number:N.number||n.number,templateId:N.templateId||n.templateId,...N.id?{id:N.id}:{}},{token:E.token})}else null==(a=null==(r=E.externalOptionConfig)?void 0:r.onSelect)||a.call(r,t,e);break}}},K=()=>{V.visible=!1,O("clickoutside")},Q=()=>(V.isInited=!1,V.spinning=!1,setTimeout((()=>{V.visible=!1}),0),!1),W=(t,e,r)=>{const a={};return e.forEach((e=>{let n=((t,e)=>{const r={DATE:"YYYY-MM-DD",DATETIME:"YYYY-MM-DD HH:mm:ss"};let a=e;return Object.keys(r).includes(t.type)&&e&&(a=T(e,r[t.type])),(null==t?void 0:t.defaultValue)||a})(e,t[e[r]]);t[e[r]]&&n&&(a[e[r]]=n)})),a},X=({customizeDataset:t=[],param:e=[]},r=[])=>r.map((r=>{let a={};return t.forEach((t=>{const e=t.dataSetting[0].selectFieldList;a.datasetData={[t.name]:JSON.stringify(W(r,e,"fieldName"))}})),a=Object.assign({},a,W(r,e,"key")),a})),Z=async t=>{var e;if(V.formatList=t?(t=>{let e=[];return t&&t.forEach((t=>{if(!t.format)return!1;e.push(...t.format.map((e=>Object.assign({},e,{templateName:t.name}))))})),e})(t.obj):[],V.currentFormatId=await(async(t,e)=>{var r;if(!(null==t?void 0:t.length))return"";const{data:a}=await S({templateId:t[0].templateId},{token:E.token});if("SUCCESS"===a.result){const{formatForms:e=[]}=a.map||{};Object.assign(N,a.map||{});const n=null==(r=null==e?void 0:e[0])?void 0:r.id;if(n&&t.map((t=>t.id)).includes(n))return n}const n=t.find((t=>1==t[e]));return(null==n?void 0:n.id)||t[0].id})(V.formatList,"defaultFlag"),!V.currentFormatId)return L.error("获取打印格式失败,请联系管理员!"),Q();(()=>{const t=V.formatList.map((t=>({label:t.name,key:t.id})));C.unshift({label:J.value,key:"format",children:t})})();let r=null==(e=await E.queryTemplateParams())?void 0:e.obj;if(!r||!U.value)return L.error("获取打印模板失败,请联系管理员!"),Q();V.templateParams=r,V.printParams=X(V.templateParams,E.params)},tt=async()=>{if(V.isInited)return!0;V.isInited=!0,V.spinning=!0,(()=>{if(M)return!1;M=new h})();const t=await E.queryPrintFormatByNumber();return await Z(t),V.spinning=!1,!0},et=async(t=!0)=>{var e;if(await E.clickPrevFn())if(null==(e=E.params)?void 0:e.length){if(!V.visible){if(!await tt())return!1}t&&(V.visible=!V.visible)}else L.warning(E.noDataMsg)},rt=()=>{V.watchPrintParamsReformatFn&&V.watchPrintParamsReformatFn(),V.isInited?V.printParams=X(V.templateParams,E.params):V.watchPrintParamsReformatFn=()=>n((()=>V.isInited),(t=>{if(!t)return!1;rt()}))},at=t=>{if(V.identityVerification.visible=!1,F(V.currentFormatId))return q(null,"edit");const e={formatId:V.currentFormatId,templateId:U.value,params:z(),token:t};M.editPrintFormat(e,(t=>{q(t,"edit")}),R)};async function nt(){await et(!1),$()}return a((()=>{V.isInited=!1})),n((()=>E.params),(t=>{if(!(null==t?void 0:t.length))return!1;rt()}),{deep:!0}),D({directPrint:nt}),(e,r)=>(i(),s(o,null,[l(m(g),{class:"c-dropdown",placement:"bottom-start",trigger:"click",show:V.visible,onClickoutside:K,options:C,onSelect:G,"render-label":B},{default:p((()=>[d(e.$slots,"button",{handleClickPrintBtn:et,printSpinning:V.spinning,printbtnText:t.btnText,printVisible:V.visible},(()=>[l(m(I),{class:"dropdown-button",onClick:r[1]||(r[1]=u((()=>A("button")),["stop"]))},{default:p((()=>[c(f(t.btnText)+" ",1),l(m(P),{component:m(w),style:{"margin-left":"5px"},onClick:r[0]||(r[0]=u((()=>A("icon")),["stop"]))},null,8,["component"])])),_:1})]))])),_:3},8,["show","options"]),l(k,v(e.$attrs,{modelValue:V.identityVerification.visible,"onUpdate:modelValue":r[2]||(r[2]=t=>V.identityVerification.visible=t),formatId:V.currentFormatId,templateId:m(U),onSuccess:at}),null,16,["modelValue","formatId","templateId"])],64))}});export{D as default};
@@ -410,6 +410,7 @@ declare const FormConfig: SFCWithInstall<import("vue").DefineComponent<{
410
410
  show_key?: string | undefined;
411
411
  whiteList?: string[] | undefined;
412
412
  bordered?: string | boolean | undefined;
413
+ displayMode?: "table" | "form" | undefined;
413
414
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
414
415
  content?: string | import("..").FormRenderer | Record<string, import("..").FormRenderer> | undefined;
415
416
  lazyRequest?: boolean | undefined;
@@ -2157,6 +2158,7 @@ declare const FormConfig: SFCWithInstall<import("vue").DefineComponent<{
2157
2158
  show_key?: string | undefined;
2158
2159
  whiteList?: string[] | undefined;
2159
2160
  bordered?: string | boolean | undefined;
2161
+ displayMode?: "table" | "form" | undefined;
2160
2162
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
2161
2163
  content?: string | import("..").FormRenderer | Record<string, import("..").FormRenderer> | undefined;
2162
2164
  lazyRequest?: boolean | undefined;
@@ -3941,6 +3943,7 @@ declare const FormConfig: SFCWithInstall<import("vue").DefineComponent<{
3941
3943
  show_key?: string | undefined;
3942
3944
  whiteList?: string[] | undefined;
3943
3945
  bordered?: string | boolean | undefined;
3946
+ displayMode?: "table" | "form" | undefined;
3944
3947
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
3945
3948
  content?: string | import("..").FormRenderer | Record<string, import("..").FormRenderer> | undefined;
3946
3949
  lazyRequest?: boolean | undefined;
@@ -5688,6 +5691,7 @@ declare const FormConfig: SFCWithInstall<import("vue").DefineComponent<{
5688
5691
  show_key?: string | undefined;
5689
5692
  whiteList?: string[] | undefined;
5690
5693
  bordered?: string | boolean | undefined;
5694
+ displayMode?: "table" | "form" | undefined;
5691
5695
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
5692
5696
  content?: string | import("..").FormRenderer | Record<string, import("..").FormRenderer> | undefined;
5693
5697
  lazyRequest?: boolean | undefined;
@@ -8739,6 +8743,7 @@ declare const FormConfig: SFCWithInstall<import("vue").DefineComponent<{
8739
8743
  show_key?: string | undefined;
8740
8744
  whiteList?: string[] | undefined;
8741
8745
  bordered?: string | boolean | undefined;
8746
+ displayMode?: "table" | "form" | undefined;
8742
8747
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
8743
8748
  content?: string | import("..").FormRenderer | Record<string, import("..").FormRenderer> | undefined;
8744
8749
  lazyRequest?: boolean | undefined;
@@ -10497,6 +10502,7 @@ declare const FormConfig: SFCWithInstall<import("vue").DefineComponent<{
10497
10502
  show_key?: string | undefined;
10498
10503
  whiteList?: string[] | undefined;
10499
10504
  bordered?: string | boolean | undefined;
10505
+ displayMode?: "table" | "form" | undefined;
10500
10506
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
10501
10507
  content?: string | import("..").FormRenderer | Record<string, import("..").FormRenderer> | undefined;
10502
10508
  lazyRequest?: boolean | undefined;
@@ -12228,6 +12234,7 @@ declare const FormConfig: SFCWithInstall<import("vue").DefineComponent<{
12228
12234
  show_key?: string | undefined;
12229
12235
  whiteList?: string[] | undefined;
12230
12236
  bordered?: string | boolean | undefined;
12237
+ displayMode?: "table" | "form" | undefined;
12231
12238
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
12232
12239
  content?: string | import("..").FormRenderer | Record<string, import("..").FormRenderer> | undefined;
12233
12240
  lazyRequest?: boolean | undefined;
@@ -412,6 +412,7 @@ declare const _default: import("vue").DefineComponent<{
412
412
  show_key?: string | undefined;
413
413
  whiteList?: string[] | undefined;
414
414
  bordered?: string | boolean | undefined;
415
+ displayMode?: "table" | "form" | undefined;
415
416
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
416
417
  content?: string | import("../../../../es/components/form-render").FormRenderer | Record<string, import("../../../../es/components/form-render").FormRenderer> | undefined;
417
418
  lazyRequest?: boolean | undefined;
@@ -2159,6 +2160,7 @@ declare const _default: import("vue").DefineComponent<{
2159
2160
  show_key?: string | undefined;
2160
2161
  whiteList?: string[] | undefined;
2161
2162
  bordered?: string | boolean | undefined;
2163
+ displayMode?: "table" | "form" | undefined;
2162
2164
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
2163
2165
  content?: string | import("../../../../es/components/form-render").FormRenderer | Record<string, import("../../../../es/components/form-render").FormRenderer> | undefined;
2164
2166
  lazyRequest?: boolean | undefined;
@@ -3943,6 +3945,7 @@ declare const _default: import("vue").DefineComponent<{
3943
3945
  show_key?: string | undefined;
3944
3946
  whiteList?: string[] | undefined;
3945
3947
  bordered?: string | boolean | undefined;
3948
+ displayMode?: "table" | "form" | undefined;
3946
3949
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
3947
3950
  content?: string | import("../../../../es/components/form-render").FormRenderer | Record<string, import("../../../../es/components/form-render").FormRenderer> | undefined;
3948
3951
  lazyRequest?: boolean | undefined;
@@ -5690,6 +5693,7 @@ declare const _default: import("vue").DefineComponent<{
5690
5693
  show_key?: string | undefined;
5691
5694
  whiteList?: string[] | undefined;
5692
5695
  bordered?: string | boolean | undefined;
5696
+ displayMode?: "table" | "form" | undefined;
5693
5697
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
5694
5698
  content?: string | import("../../../../es/components/form-render").FormRenderer | Record<string, import("../../../../es/components/form-render").FormRenderer> | undefined;
5695
5699
  lazyRequest?: boolean | undefined;
@@ -8741,6 +8745,7 @@ declare const _default: import("vue").DefineComponent<{
8741
8745
  show_key?: string | undefined;
8742
8746
  whiteList?: string[] | undefined;
8743
8747
  bordered?: string | boolean | undefined;
8748
+ displayMode?: "table" | "form" | undefined;
8744
8749
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
8745
8750
  content?: string | import("../../../../es/components/form-render").FormRenderer | Record<string, import("../../../../es/components/form-render").FormRenderer> | undefined;
8746
8751
  lazyRequest?: boolean | undefined;
@@ -10499,6 +10504,7 @@ declare const _default: import("vue").DefineComponent<{
10499
10504
  show_key?: string | undefined;
10500
10505
  whiteList?: string[] | undefined;
10501
10506
  bordered?: string | boolean | undefined;
10507
+ displayMode?: "table" | "form" | undefined;
10502
10508
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
10503
10509
  content?: string | import("../../../../es/components/form-render").FormRenderer | Record<string, import("../../../../es/components/form-render").FormRenderer> | undefined;
10504
10510
  lazyRequest?: boolean | undefined;
@@ -12230,6 +12236,7 @@ declare const _default: import("vue").DefineComponent<{
12230
12236
  show_key?: string | undefined;
12231
12237
  whiteList?: string[] | undefined;
12232
12238
  bordered?: string | boolean | undefined;
12239
+ displayMode?: "table" | "form" | undefined;
12233
12240
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
12234
12241
  content?: string | import("../../../../es/components/form-render").FormRenderer | Record<string, import("../../../../es/components/form-render").FormRenderer> | undefined;
12235
12242
  lazyRequest?: boolean | undefined;
@@ -362,6 +362,7 @@ declare const _default: import("vue").DefineComponent<{
362
362
  show_key?: string | undefined;
363
363
  whiteList?: string[] | undefined;
364
364
  bordered?: string | boolean | undefined;
365
+ displayMode?: "table" | "form" | undefined;
365
366
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
366
367
  content?: string | import("../../../../../es/components/form-render").FormRenderer | Record<string, import("../../../../../es/components/form-render").FormRenderer> | undefined;
367
368
  lazyRequest?: boolean | undefined;
@@ -2120,6 +2121,7 @@ declare const _default: import("vue").DefineComponent<{
2120
2121
  show_key?: string | undefined;
2121
2122
  whiteList?: string[] | undefined;
2122
2123
  bordered?: string | boolean | undefined;
2124
+ displayMode?: "table" | "form" | undefined;
2123
2125
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
2124
2126
  content?: string | import("../../../../../es/components/form-render").FormRenderer | Record<string, import("../../../../../es/components/form-render").FormRenderer> | undefined;
2125
2127
  lazyRequest?: boolean | undefined;
@@ -3851,6 +3853,7 @@ declare const _default: import("vue").DefineComponent<{
3851
3853
  show_key?: string | undefined;
3852
3854
  whiteList?: string[] | undefined;
3853
3855
  bordered?: string | boolean | undefined;
3856
+ displayMode?: "table" | "form" | undefined;
3854
3857
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
3855
3858
  content?: string | import("../../../../../es/components/form-render").FormRenderer | Record<string, import("../../../../../es/components/form-render").FormRenderer> | undefined;
3856
3859
  lazyRequest?: boolean | undefined;
@@ -1,5 +1,5 @@
1
1
  import { PropType } from 'vue';
2
- import { CombinationItemDeletableFn, FieldItem } from '../../../../../../es/components/form-render';
2
+ import { CombinationItemDeletableFn, FieldItem } from '../../../../../../../es/components/form-render';
3
3
  export declare const COMBINATION: import("vue").DefineComponent<{
4
4
  title: {
5
5
  type: StringConstructor;
@@ -0,0 +1 @@
1
+ import{defineComponent as e,inject as o,createVNode as r}from"vue";import{isObjectField as t}from"@formily/core";import{connect as i,RecursionField as n}from"@formily/vue";import{range as m}from"lodash-es";import"../../../../index.js";import{InjectionBusinessCollector as a,InjectionFormGlobalProps as s}from"../../../constants/index.js";import"../../../../../../shared/utils/index.js";import"@formily/path";import"@vicons/ionicons5";import"@vue/shared";import"@vueuse/core";import"naive-ui";import"date-fns";import{createObjSchema as l}from"../../../utils/schema.js";import{useCombination as u}from"./hooks/useCombination.js";import{useFormField as p}from"../../../hooks/useFormField.js";import{useFieldListAdaptor as c}from"../../../hooks/useFieldListAdaptor.js";const f=i(e({name:"FormCombination",props:{title:{type:String,default:""},value:{type:Array},maxGroupNum:{type:Number},disabled:{type:Boolean},properties:{type:Array,default:()=>[]},combinationItemDeletable:{type:[Boolean,Function],default:!0},onInput:{},onBlur:{},onChange:{}},emits:["update:value"],setup(e){const{field:i,fieldKey:f}=p(),{currentGroupNum:d,renderRemoveBtn:v,renderHeader:y}=u(e);function h(){d.value++}const b=o(a),C=o(s),{schemaAdaptor:j}=c(b,C.lifeCycle);return()=>r("section",{class:"form-render__combination"},[y({onClick:h}),m(d.value).map(((o,m)=>r("section",{class:"form-render__combinationContent"},[r(n,{schema:l(j(e.properties)),name:m},null),v({onClick:()=>async function(e){if(d.value>1)d.value--,await i.value.remove(e);else{const o=i.value.query(`${f.value}.${e}`).take();if(!o||!t(o))return;await o.reset()}}(m),class:"form-render__combinationClose"},m)])))])}}));export{f as COMBINATION};
@@ -0,0 +1,2 @@
1
+ export * from './useDeepValidate';
2
+ export * from './useCombination';
@@ -0,0 +1 @@
1
+ export{useDeepValidate}from"./useDeepValidate.js";export{useCombination}from"./useCombination.js";
@@ -0,0 +1,8 @@
1
+ import { AnyObject } from '../../../../../../../../es/shared/types';
2
+ export declare function useCombination(props: AnyObject): {
3
+ deletableList: import("vue").Ref<boolean[]>;
4
+ currentGroupNum: import("vue").Ref<number>;
5
+ maxGroupNum: import("vue").ComputedRef<number>;
6
+ renderHeader: (attrs: AnyObject) => JSX.Element;
7
+ renderRemoveBtn: (attrs: AnyObject, idx: number) => JSX.Element;
8
+ };
@@ -0,0 +1 @@
1
+ import{ref as e,computed as o,watch as r,onBeforeUnmount as t,createVNode as a,mergeProps as m}from"vue";import{autorun as i}from"@formily/reactive";import{AddCircleOutline as n,RemoveCircle as l}from"@vicons/ionicons5";import{isNumber as u,isArray as c,isFunction as d}from"lodash-es";import{NButton as s,NIcon as p}from"naive-ui";import"../../../../../index.js";import{useFormField as v}from"../../../../hooks/useFormField.js";function f(f){const{field:b}=v(),x=e(1),h=o((()=>u(f.maxGroupNum)?f.maxGroupNum<1?0:~~f.maxGroupNum:1/0));r((()=>f.value),(e=>{c(e)&&(x.value=Math.min(Math.max(e.length,1),h.value))}),{immediate:!0});const G=e([]);return t(i((()=>{c(b.value.value)&&(G.value=b.value.value.map(((e,o)=>d(f.combinationItemDeletable)?f.combinationItemDeletable(e||{},o):f.combinationItemDeletable)))}))),{deletableList:G,currentGroupNum:x,maxGroupNum:h,renderHeader:function(e){return a("header",{class:"form-render__combinationHeader"},[a("div",{class:"form-render__combinationHeaderText"},[f.title]),a(s,m(e,{text:!0,style:{"--n-text-color":"var(--c-primary-color)"},disabled:x.value>=h.value||f.disabled}),{icon:()=>a(p,{component:n},null),default:()=>"新增"})])},renderRemoveBtn:function(e,o){return a(s,m(e,{text:!0,disabled:!G.value[o],type:"error",size:"small"}),{icon:()=>a(p,{component:l},null)})}}}export{f as useCombination};
@@ -0,0 +1,3 @@
1
+ export * from './combination';
2
+ export * from './tableCombination';
3
+ export * from './jsonCombination';
@@ -0,0 +1 @@
1
+ export{COMBINATION}from"./combination.js";export{TABLE_COMBINATION}from"./tableCombination.js";export{JSON_COMBINATION}from"./jsonCombination.js";
@@ -0,0 +1 @@
1
+ import{defineComponent as e,ref as o,computed as r,watch as t,onMounted as n,createVNode as i}from"vue";import{isField as l}from"@formily/core";import{Path as a}from"@formily/path";import{AddCircleOutline as u,RemoveCircle as s}from"@vicons/ionicons5";import{isNumber as m,range as p,isArray as c,isEqual as f}from"lodash-es";import"../../../../index.js";import{useDeepValidate as v}from"./hooks/useDeepValidate.js";import{connect as d,mapProps as y}from"@formily/vue";import{useDebounceFn as h,isObject as g}from"@vueuse/core";import{NButton as x,NIcon as b}from"naive-ui";import N from"../../../FormRender.vue.js";import{formRenderLog as _,mergeDeepProperties as C}from"../../../utils/index.js";import{assignUpdateValue as j}from"../../../utils/schema.js";const I=d(e({name:"FormJsonCombination",props:{title:{type:String,default:""},value:{type:[String,Array]},maxGroupNum:{type:Number},properties:{type:Array,default:()=>[]},onInput:{},onBlur:{},onChange:{}},emits:["update:value"],setup(e,{emit:d}){_("当前COMBINATION控件为json模式,推荐使用非json模式,FieldItem.jsonCombination=false");const y=h((function(){d("update:value",JSON.stringify(j.value))}),300),j=o([]),I=r((()=>j.value.length));function S(o,r=!1){c(o)&&(o.length||o.push({}),o=JSON.stringify(o));const t=function(e){try{if(!e)return null;const o=JSON.parse(e);return Array.isArray(o)?o:null}catch(e){return null}}(o);var n;(n=t)&&!f(n,j.value)&&(t.splice(O.value),t.forEach((function(o,t){if(!g(o))return;j.value[t]=o,r&&C(o,e.properties)})),j.value.splice(t.length),j.value.forEach(F))}t((()=>e.value),(e=>S(e))),n((()=>{S(e.value||"[{}]",!0),y()}));const A=o([]);function F(e,o){var r;null==(r=A.value[o])||r.setFieldState("*",(o=>{l(o)&&(o.value=a.getIn(e,o.path))}))}function J(){j.value.push(C({},e.properties)),y()}v().bindDeepValidate(A);const O=r((()=>m(e.maxGroupNum)?e.maxGroupNum<1?0:~~e.maxGroupNum:1/0));t(O,(e=>{I.value<=e||(j.value.splice(e),y(),A.value.splice(e))}),{immediate:!0});const G=N;return()=>i("section",{class:"form-render__combination"},[i("header",{class:"form-render__combinationHeader"},[i("div",{class:"form-render__combinationHeaderText"},[e.title]),i(x,{onClick:J,style:{"--n-text-color":"var(--c-primary-color)"},text:!0,disabled:I.value>=O.value},{icon:()=>i(b,{component:u},null),default:()=>"新增"})]),p(I.value).map(((o,r)=>i("section",{class:"form-render__combinationContentJson"},[i(G,{ref:e=>function(e,o){A.value[e]=o,F(j.value[e]||{},e)}(r,e),fieldList:e.properties,onFormChange:e=>function(e,{fieldKey:o,value:r}){!j.value[e]&&(j.value[e]={}),a.setIn(j.value[e],o,r),y()}(r,e)},null),i(x,{text:!0,class:"form-render__combinationClose",type:"error",onClick:()=>function(e){j.value.length>1?(j.value.splice(e,1),A.value.splice(e,1)):j.value.splice(e,1,{}),y()}(r)},{icon:()=>i(b,{component:s},null)})])))])}}),y(j));export{I as JSON_COMBINATION};
@@ -0,0 +1,61 @@
1
+ import { AnyObject } from '../../../../../../../es/shared/types';
2
+ import { PropType } from 'vue';
3
+ import { CombinationItemDeletableFn, FieldItem } from '../../../../../../../es/components/form-render';
4
+ export declare const TABLE_COMBINATION: import("vue").DefineComponent<{
5
+ title: {
6
+ type: StringConstructor;
7
+ default: string;
8
+ };
9
+ value: {
10
+ type: PropType<AnyObject[]>;
11
+ };
12
+ maxGroupNum: {
13
+ type: NumberConstructor;
14
+ };
15
+ disabled: {
16
+ type: BooleanConstructor;
17
+ };
18
+ properties: {
19
+ type: PropType<FieldItem[]>;
20
+ default: () => never[];
21
+ };
22
+ combinationItemDeletable: {
23
+ type: PropType<boolean | CombinationItemDeletableFn>;
24
+ default: boolean;
25
+ };
26
+ onInput: {};
27
+ onBlur: {};
28
+ onChange: {};
29
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:value"[], "update:value", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
30
+ title: {
31
+ type: StringConstructor;
32
+ default: string;
33
+ };
34
+ value: {
35
+ type: PropType<AnyObject[]>;
36
+ };
37
+ maxGroupNum: {
38
+ type: NumberConstructor;
39
+ };
40
+ disabled: {
41
+ type: BooleanConstructor;
42
+ };
43
+ properties: {
44
+ type: PropType<FieldItem[]>;
45
+ default: () => never[];
46
+ };
47
+ combinationItemDeletable: {
48
+ type: PropType<boolean | CombinationItemDeletableFn>;
49
+ default: boolean;
50
+ };
51
+ onInput: {};
52
+ onBlur: {};
53
+ onChange: {};
54
+ }>> & {
55
+ "onUpdate:value"?: ((...args: any[]) => any) | undefined;
56
+ }, {
57
+ disabled: boolean;
58
+ title: string;
59
+ combinationItemDeletable: boolean | CombinationItemDeletableFn;
60
+ properties: FieldItem[];
61
+ }>;
@@ -0,0 +1 @@
1
+ import{defineComponent as e,ref as o,onMounted as a,createVNode as t}from"vue";import{arrayed as l}from"../../../../../../shared/utils/index.js";import{isField as i}from"@formily/core";import{connect as r,mapProps as u}from"@formily/vue";import{isArray as n,property as s}from"lodash-es";import"../../../../index.js";import"../../../../../iho-table/index.js";import m from"../../../../../iho-table/src/IhoTable.vue.js";import{useCombination as p}from"./hooks/useCombination.js";import{assignUpdateValue as f}from"../../../utils/schema.js";import{useColumnConfigAdaptor as d}from"../../../../../iho-table/src/hooks/useColumnConfigAdaptor.js";import{useFormField as v}from"../../../hooks/useFormField.js";const c=r(e({name:"FormTableCombination",props:{title:{type:String,default:""},value:{type:Array},maxGroupNum:{type:Number},disabled:{type:Boolean},properties:{type:Array,default:()=>[]},combinationItemDeletable:{type:[Boolean,Function],default:!0},onInput:{},onBlur:{},onChange:{}},emits:["update:value"],setup(e,{emit:r}){const{formConfigLikeAdaptor:u}=d(),{fieldList:f,editRules:c}=u({fieldList:e.properties}),{currentGroupNum:h,renderRemoveBtn:b,renderHeader:y}=p(e),j=o({editRules:c}),g=o(e.value);async function C(){h.value++,n(g.value)?g.value.push({}):(g.value=[{}],r("update:value",g.value))}const x=f.concat({alias:"操作",columnName:"operation",width:60,isFixed:2,align:"center",slots:{default:({rowIndex:e})=>b({onClick:()=>async function(e){if(n(g.value))if(h.value>1)h.value--,g.value.splice(e,1);else if(1===g.value.length){const e=g.value[0];f.forEach((o=>{o.columnName&&(o.defaultValue?e[o.columnName]=o.defaultValue:Reflect.deleteProperty(e,o.columnName))}))}}(e)},e)}});a((()=>{if(!n(g.value))return g.value=[{}],void r("update:value",g.value);g.value.length||g.value.push({})}));const{field:N}=v(),k=o();async function F(){if(k.value)return Object.values(await k.value.$table.validate(!0)).map((e=>e.map(s("rule.message")))).join(",")}return a((()=>{if(!i(N.value))return;const e=N.value.validator;N.value.validator=[{validator:F},...e?l(e):[]]})),()=>t("section",{class:"form-render__combination"},[y({onClick:C}),t(m,{ref:k,fieldList:x,tableConfig:j.value,tableData:g.value},null)])}}),u(f));export{c as TABLE_COMBINATION};
@@ -1 +1 @@
1
- import*as s from"./combination.js";import*as t from"./complex.js";import*as o from"./date.js";import*as r from"./formItem.js";import*as m from"./input.js";import*as e from"./inputGroup.js";import*as i from"./inputNumber.js";import*as a from"./jsonCombination/index.js";import*as p from"./levelSearchCascader/index.js";import*as n from"./lineBar/index.js";import*as x from"./radio_checkbox.js";import*as c from"./remoteSearch.js";import*as f from"./searchCascade.js";import*as j from"./select.js";import*as d from"./simpleComponent.js";import*as l from"./slider.js";import*as u from"./switch.js";import*as h from"./textarea.js";import{separateMetaModule as b}from"../../../../../shared/utils/index.js";var C=b(Object.assign({"./combination.tsx":s,"./complex.tsx":t,"./date.tsx":o,"./formItem.tsx":r,"./input.tsx":m,"./inputGroup.ts":e,"./inputNumber.tsx":i,"./jsonCombination/index.tsx":a,"./levelSearchCascader/index.tsx":p,"./lineBar/index.ts":n,"./radio&checkbox.tsx":x,"./remoteSearch.tsx":c,"./searchCascade.tsx":f,"./select.tsx":j,"./simpleComponent.tsx":d,"./slider.tsx":l,"./switch.tsx":u,"./textarea.tsx":h}));export{C as default};
1
+ import*as s from"./combination/index.js";import*as r from"./complex.js";import*as t from"./date.js";import*as o from"./formItem.js";import*as e from"./input.js";import*as m from"./inputGroup.js";import*as a from"./inputNumber.js";import*as i from"./levelSearchCascader/index.js";import*as p from"./lineBar/index.js";import*as x from"./radio_checkbox.js";import*as n from"./remoteSearch.js";import*as c from"./searchCascade.js";import*as f from"./select.js";import*as d from"./simpleComponent.js";import*as j from"./slider.js";import*as l from"./switch.js";import*as u from"./textarea.js";import{separateMetaModule as h}from"../../../../../shared/utils/index.js";var b=h(Object.assign({"./combination/index.ts":s,"./complex.tsx":r,"./date.tsx":t,"./formItem.tsx":o,"./input.tsx":e,"./inputGroup.ts":m,"./inputNumber.tsx":a,"./levelSearchCascader/index.tsx":i,"./lineBar/index.ts":p,"./radio&checkbox.tsx":x,"./remoteSearch.tsx":n,"./searchCascade.tsx":c,"./select.tsx":f,"./simpleComponent.tsx":d,"./slider.tsx":j,"./switch.tsx":l,"./textarea.tsx":u}));export{b as default};
@@ -1 +1 @@
1
- import{defineComponent as e,computed as o,inject as t,useAttrs as l,ref as a,createVNode as r,mergeProps as s,toRaw as n}from"vue";import{arrayed as u}from"../../../../../shared/utils/index.js";import{cloneDeep as i,isArray as p,isObject as m,omit as d,xor as c}from"lodash-es";import{NSelect as f}from"naive-ui";import"@vueuse/core";import"date-fns";import"@vue/shared";import{useSelectAllowModify as y}from"../../../../../shared/hooks/selectHooks/useSelectAllowModify.js";import"../../../../../shared/hooks/selectHooks/useSearchContent.js";import{useSelectRenders as v}from"../../../../../shared/hooks/selectHooks/useSelectRenders.js";import{connect as h,mapProps as b}from"@formily/vue";import{useCommonInjection as j,useSelectOptionProps as S}from"../../hooks/useCommonInjection.js";import{useComplexOptions as k,useComplexOptionsSpan as g}from"../../hooks/useComplexOptions.js";import{InjectionChangeContextCollector as C,InjectionFormUUID as B}from"../../constants/index.js";import"../../../index.js";import"@formily/core";import"@formily/path";import"@vicons/ionicons5";import{assignUpdateValue as F,assignClearBindVisited as A,createVisitedSetter as w}from"../../utils/schema.js";import{useFormField as H}from"../../hooks/useFormField.js";import"../../../../../shared/utils/tapable/SyncHook.js";import"../../../../../shared/utils/tapable/SyncBailHook.js";import"../../../../../shared/utils/tapable/SyncWaterfallHook.js";import"../../../../../shared/utils/tapable/SyncLoopHook.js";import"../../../../../shared/utils/tapable/AsyncParallelHook.js";import"../../../../../shared/utils/tapable/AsyncParallelBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesLoopHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesWaterfallHook.js";import"../../hooks/useFormValidator.js";import"./index.js";import{useUrlConfigOptions as O,useAutographOptions as K,useRecommendOptions as x}from"../../hooks/useFormRenderOptions.js";const R=h(e({name:"FormSelect",props:{value:{type:[String,Array,Number]},lazyRequest:{type:Boolean,default:!0},requestCache:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},onChange:{},labelField:{type:String,default:"text"},valueField:{type:String,default:"value"},showField:{type:String},allowCreate:Boolean,shouldSave:Boolean,allowModify:Boolean,showCustomValue:Boolean,cursorPlacement:{type:String,default:"end"},urlConfig:{type:Object},autograph:{type:String},wordbook:{type:Object},recommend:{type:Boolean,default:!1},commonList:{type:Array},recentList:{type:Array},getRecommendInfo:{type:Function},commonNum:{type:Number,default:10},recentNum:{type:Number,default:10},recommendCache:{type:Boolean,default:!1},useLoading:{type:Boolean,default:!0},multiple:{type:Boolean},deletable:{type:Boolean,default:!0},selectAll:{type:Boolean}},emits:["update:value","postRecommend"],setup(e,{slots:h,emit:b}){const F=o({get:()=>e.value,async set(e){b("update:value",e),D(e)}}),{labelKey:A,valueKey:R,showKey:V,fetchData:L,searchContent:P,fullOptions:_,filterOptions:N,remoteOptions:I,loading:W}=e.urlConfig?O(e,F):K(e,F),{modifyEvent:E,modifyAbleRef:q,getOptionsWithCreated:M}=y(e,{searchContent:P,labelKey:A,valueKey:R,valueRef:F,fullOptions:_}),{renderComplexOption:T,hasComplexOption:U}=k(e,F),{getRecommend:z,postRecommend:D,sortedOptions:G}=x(e,N,b,A,R),{field:J,fieldKey:Q}=H();t(C).setContext(Q.value,(e=>({currentOption:i(function(e){const o=M(_.value);return p(e)?function(e){const t=o.reduce(((e,o)=>(e[o[R.value]]=o,e)),{});return e.map((e=>t[e]))}(e):(t=e,o.find((e=>e[R.value]===t)));var t}(e))})));const X=async(e="")=>(P.value=e,Promise.allSettled([L(e),z(e)])),{injectValueValidate:Y,injectValueWatchFromEmpty:Z,injectValueBindKey:$}=j();Z(F,X),Y(F);const ee=$(F),{menuProps:oe,nodeProps:te}=S(),{renderTag:le,renderLabel:ae,renderSelectAll:re,titleRef:se}=v(e,{labelKey:A,showKey:V,searchContent:P}),ne=o((()=>M(q.value?_.value:G.value))),ue=l(),ie=o((()=>{if(e.allowCreate||e.showCustomValue)return F.value;const o=e.multiple&&p(F.value);return _.value.find((e=>o?F.value.includes(e[R.value]):e[R.value]===F.value))?F.value:null})),pe=a(!1);async function me(e){e&&await X(),pe.value=e}async function de(e,o){await E.updateValue(e,o),I.value&&o&&u(o).forEach((e=>{if(!m(e))return;const o=e;o.created&&o.shouldSave&&I.value.push(d(n(o),["created","shouldSave"]))}))}const ce=t(B),{getSpan:fe}=g(),ye=w(J,E.focus);function ve(o){if(!e.multiple)return;const t=o?ne.value.map((e=>e[R.value])):[];c(t,e.value).length&&(F.value=t)}function he(o){let t=h;return e.multiple&&e.selectAll&&(t={action:()=>re(ve),...h}),r(f,s({title:se.value,key:ee.value,multiple:e.multiple,remote:!0,filterable:!0,loading:W.value,value:ie.value,onUpdateValue:de,"menu-props":oe,"node-props":te,labelField:A.value,valueField:R.value,options:ne.value,onSearch:X,show:pe.value,"onUpdate:show":me,onFocus:ye,onBlur:E.blur,renderLabel:ae,renderTag:le},o,ue),t)}return()=>{var e,o;if(!U.value)return he();const t=null!=(o=null==(e=J.value.decoratorProps)?void 0:e.span)?o:6,l=fe(ce,J.value.address);return r("section",{class:"form-render__selectChildField",style:{"--column":l+t}},[he({class:"form-render__selectChildFieldItem",style:{"--form-item-column":t}}),_.value.map((e=>T({option:e,value:F.value,valueKey:R.value,labelKey:A.value,childFieldStrategy:"checked",renderLabel:!1,attrs:{class:"form-render__selectChildFieldItem",style:{"--form-item-column":l}}})))])}}}),b({dataSource:"options"},F,A));export{R as SELECT};
1
+ import{defineComponent as e,computed as o,inject as t,useAttrs as l,ref as a,createVNode as r,mergeProps as s,toRaw as n}from"vue";import{arrayed as u}from"../../../../../shared/utils/index.js";import{cloneDeep as i,isArray as p,isObject as m,omit as d,xor as c}from"lodash-es";import{NSelect as f}from"naive-ui";import"@vueuse/core";import"date-fns";import"@vue/shared";import{useSelectAllowModify as v}from"../../../../../shared/hooks/selectHooks/useSelectAllowModify.js";import"../../../../../shared/hooks/selectHooks/useSearchContent.js";import{useSelectRenders as y}from"../../../../../shared/hooks/selectHooks/useSelectRenders.js";import{connect as h,mapProps as b}from"@formily/vue";import{useCommonInjection as j,useSelectOptionProps as S}from"../../hooks/useCommonInjection.js";import{useComplexOptions as k,useComplexOptionsSpan as g}from"../../hooks/useComplexOptions.js";import{InjectionChangeContextCollector as C,InjectionFormUUID as B}from"../../constants/index.js";import"../../../index.js";import"@formily/core";import"@formily/path";import"@vicons/ionicons5";import{assignUpdateValue as F,assignClearBindVisited as A,createVisitedSetter as w}from"../../utils/schema.js";import{useFormField as H}from"../../hooks/useFormField.js";import"../../../../../shared/utils/tapable/SyncHook.js";import"../../../../../shared/utils/tapable/SyncBailHook.js";import"../../../../../shared/utils/tapable/SyncWaterfallHook.js";import"../../../../../shared/utils/tapable/SyncLoopHook.js";import"../../../../../shared/utils/tapable/AsyncParallelHook.js";import"../../../../../shared/utils/tapable/AsyncParallelBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesBailHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesLoopHook.js";import"../../../../../shared/utils/tapable/AsyncSeriesWaterfallHook.js";import"../../hooks/useFormValidator.js";import"./index.js";import{useUrlConfigOptions as O,useAutographOptions as K,useRecommendOptions as R}from"../../hooks/useFormRenderOptions.js";const x=h(e({name:"FormSelect",props:{value:{type:[String,Array,Number]},lazyRequest:{type:Boolean,default:!0},requestCache:{type:Boolean,default:!0},options:{type:Array,default:()=>[]},onChange:{},labelField:{type:String,default:"text"},valueField:{type:String,default:"value"},showField:{type:String},allowCreate:Boolean,shouldSave:Boolean,allowModify:Boolean,showCustomValue:Boolean,cursorPlacement:{type:String,default:"end"},urlConfig:{type:Object},autograph:{type:String},wordbook:{type:Object},recommend:{type:Boolean,default:!1},commonList:{type:Array},recentList:{type:Array},getRecommendInfo:{type:Function},commonNum:{type:Number,default:10},recentNum:{type:Number,default:10},recommendCache:{type:Boolean,default:!1},useLoading:{type:Boolean,default:!0},multiple:{type:Boolean},deletable:{type:Boolean,default:!0},selectAll:{type:Boolean}},emits:["update:value","postRecommend"],setup(e,{slots:h,emit:b}){const F=o({get:()=>e.value,async set(e){b("update:value",e),D(e)}}),{labelKey:A,valueKey:x,showKey:V,fetchData:L,searchContent:P,fullOptions:_,filterOptions:N,remoteOptions:I,loading:W}=e.urlConfig?O(e,F):K(e,F),{modifyEvent:E,modifyAbleRef:q,getOptionsWithCreated:M}=v(e,{searchContent:P,labelKey:A,valueKey:x,valueRef:F,fullOptions:_}),{renderComplexOption:T,hasComplexOption:U}=k(e,F),{getRecommend:z,postRecommend:D,sortedOptions:G}=R(e,N,b,A,x),{field:J,fieldKey:Q}=H();t(C).setContext(Q.value,(e=>({currentOption:i(function(e){const o=M(_.value);return p(e)?function(e){const t=o.reduce(((e,o)=>(e[o[x.value]]=o,e)),{});return e.map((e=>t[e]))}(e):(t=e,o.find((e=>e[x.value]===t)));var t}(e))})));const X=async(e="")=>(P.value=e,Promise.allSettled([L(e),z(e)])),{injectValueValidate:Y,injectValueWatchFromEmpty:Z,injectValueBindKey:$}=j();Z(F,X),Y(F);const ee=$(F),{menuProps:oe,nodeProps:te}=S(),{renderTag:le,renderLabel:ae,renderSelectAll:re,titleRef:se}=y(e,{labelKey:A,valueKey:x,valueRef:F,showKey:V,searchContent:P}),ne=o((()=>M(q.value?_.value:G.value))),ue=l(),ie=o((()=>{if(e.allowCreate||e.showCustomValue)return F.value;const o=e.multiple&&p(F.value);return _.value.find((e=>o?F.value.includes(e[x.value]):e[x.value]===F.value))?F.value:null})),pe=a(!1);async function me(e){e&&await X(),pe.value=e}async function de(e,o){await E.updateValue(e,o),I.value&&o&&u(o).forEach((e=>{if(!m(e))return;const o=e;o.created&&o.shouldSave&&I.value.push(d(n(o),["created","shouldSave"]))}))}const ce=t(B),{getSpan:fe}=g(),ve=w(J,E.focus);function ye(o){if(!e.multiple)return;const t=o?ne.value.map((e=>e[x.value])):[];c(t,e.value).length&&(F.value=t)}function he(o){let t=h;return e.multiple&&e.selectAll&&(t={action:()=>re(ye),...h}),r(f,s({title:se.value,key:ee.value,multiple:e.multiple,remote:!0,filterable:!0,loading:W.value,value:ie.value,onUpdateValue:de,"menu-props":oe,"node-props":te,labelField:A.value,valueField:x.value,options:ne.value,onSearch:X,show:pe.value,"onUpdate:show":me,onFocus:ve,onBlur:E.blur,renderLabel:ae,renderTag:le},o,ue),t)}return()=>{var e,o;if(!U.value)return he();const t=null!=(o=null==(e=J.value.decoratorProps)?void 0:e.span)?o:6,l=fe(ce,J.value.address);return r("section",{class:"form-render__selectChildField",style:{"--column":l+t}},[he({class:"form-render__selectChildFieldItem",style:{"--form-item-column":t}}),_.value.map((e=>T({option:e,value:F.value,valueKey:x.value,labelKey:A.value,childFieldStrategy:"checked",renderLabel:!1,attrs:{class:"form-render__selectChildFieldItem",style:{"--form-item-column":l}}})))])}}}),b({dataSource:"options"},F,A));export{x as SELECT};
@@ -1 +1 @@
1
- import{arrayed as e,deepOmit as o}from"../../../../shared/utils/index.js";import{cloneDeep as t,pick as n}from"lodash-es";import"../../index.js";import{parseNumberFromMaybeString as i,formRenderLog as r}from"../utils/index.js";import{format as l}from"date-fns";import{useFieldNormalize as s}from"./useFieldNormalize.js";import{fieldKeyEscape as a,createLinebarId as p}from"../utils/schema.js";import{useFormValidator as c}from"./useFormValidator.js";import{transformDateFormat as d}from"../utils/business.js";function m(e,o){Object.assign(e["x-component-props"],{...n(o,["wordbook","autograph"])})}function u(e,o){Object.assign(e["x-component-props"],{...n(o,["urlConfig","wordbook"])})}function f(f,x){const{createValidatorSchema:_}=c(),h=e=>{var o;const t={name:e.val_key,type:null!=(o=e.fieldType)?o:"string",title:e.alias||e.name,"x-component":e.html_type,default:e.default_val,"x-component-props":{placeholder:e.placeholder,clearable:"0"===e.is_empty,...e.componentProps||{}},"x-content":e.slots,"x-display":"0"===e.is_show?"hidden":"visible","x-pattern":"0"===e.is_edit?"disabled":"editable","x-compile-omitted":["title","x-component-props","x-decorator-props"]};e.reactions&&(t["x-reactions"]=e.reactions),e.noDecorator||Object.assign(t,{"x-decorator":"FORM_ITEM","x-decorator-props":{fieldItem:e,beforeSetValue:null==x?void 0:x.beforeSetValue,span:2*(e.elem_width||3),showLabel:"1"!==e.hide_title,remark:e.remark,propertyKey:e.val_key,annotation:e.annotation,...e.decoratorProps||{}}});const n=_(e);return n&&(t["x-validator"]=n),"0"===e.is_null&&(t.required=!0),t},g=e=>{var o,t,r,l,s,a,p;const c=h(e);e.urlConfig?u(c,e):e.autograph&&m(c,e);const d=!!e.__multiple,f="1"===e.allowModify,x=null!=(t=null==(o=e.componentProps)?void 0:o.selectAll)?t:e.selectAll;return Object.assign(c["x-component-props"],{multiple:d,options:(null==(r=e.componentProps)?void 0:r.options)||e.option,allowModify:f,allowCreate:"1"===e.free_entry||!!c["x-component-props"].allowCreate||f,shouldSave:"1"===e.save_free_entry,showField:null!=(s=e.show_key)?s:null==(l=e.componentProps)?void 0:l.showField,maxTagCount:null!=(p=i(e.multi_select_value))?p:null==(a=c["x-component-props"])?void 0:a.maxTagCount,selectAll:"1"===x||!0===x,...n(e,["lazyRequest","requestCache"])}),d&&(c.type="array"),c},y=e=>{var o,t;const n=h(e),i=null!=(t=null==(o=e.componentProps)?void 0:o.selectAll)?t:e.selectAll;return Object.assign(n["x-component-props"],{options:e.option,childFieldStrategy:e.childFieldStrategy,childWidthMode:e.childWidthMode,vertical:e.__vertical,selectAll:"1"===i||!0===i}),e.urlConfig?u(n,e):e.autograph&&m(n,e),n},b=e=>{const t=h(e);return Object.assign(t["x-component-props"],{fieldItem:o(e,["reactions"])}),t},v=e=>({name:e.val_key,type:"void",title:e.alias||e.name,"x-component":"LINEBAR","x-display":"visible","x-component-props":{disabled:"1"===e.is_not_fold,id:p(e.val_key),show:"0"!==e.is_show,remark:e.remark}}),w=new Map([["LINEBAR",v],["LINE_BREAKS",e=>({name:e.val_key,type:"void",title:e.alias||e.name,"x-component":"LINE_BREAKS","x-component-props":{border:e.lineBreaksBorder},"x-display":"0"===e.is_show?"hidden":"visible"})],["INPUT",e=>{const o=h(e);return Object.assign(o["x-component-props"],{...n(e,["prefix","suffix"])}),o}],["TEXTAREA",e=>{const o=h(e);return Object.assign(o["x-component-props"],{rows:e.initialize_high||3}),o}],["INPUT_NUMBER",e=>{const o=h(e),{decimal_length:t,validate:n,allowSlash:i}=e;return!0!==i&&"1"!==i||(o["x-component"]="INPUT_NUMBER_SLASH",o.type="string"),Object.assign(o["x-component-props"],{precision:null!=t?t:null==n?void 0:n.decimal_length,whiteList:e.whiteList,prefix:e.prefix,suffix:e.suffix}),o}],["SELECT",g],["REMOTE_SEARCH",g],["DATE",e=>{const o=h(e);return Object.assign(o["x-component-props"],{valueFormat:e.date_format,type:d(e.date_format),validate:e.validate}),"current"===o.default&&(o.default=l(new Date,e.date_format||"yyyy-MM-dd")),o}],["LEVEL_SEARCH_CASCADER",e=>{const o=h(e);return Object.assign(o["x-component-props"],{...n(e,["wordbook","lazyRequest","autograph"])}),"1"===e.is_allow_check_mid&&e.allow_check_mid_level&&(o["x-component-props"].checkAbleLevel=+e.allow_check_mid_level),o}],["SEARCH_CASCADER",e=>{var o;const t=h(e);return Object.assign(t["x-component-props"],{urlConfig:e.urlConfig,depth:null==(o=e.wordbook)?void 0:o.level_num,options:e.option}),t}],["COMBINATION",e=>{const o=h(e);return o.type="array",!1!==e.jsonCombination&&(o["x-component"]="JSON_COMBINATION"),Object.assign(o["x-decorator-props"],{showLabel:!1,showFeedback:!1}),Object.assign(o["x-component-props"],{title:e.alias||e.name,maxGroupNum:e.maxGroupNum,properties:e.children||[],combinationItemDeletable:e.combinationItemDeletable}),o}],["RADIO",y],["CHECKBOX",y],["SWITCH",e=>{const o=h(e);return Object.assign(o["x-component-props"],{openDescription:e.open,closeDescription:e.close}),o}],["SLIDER",e=>{const o=h(e);return Object.assign(o["x-component-props"],{step:i(e.step_length),max:i(e.max_length),min:i(e.min_length),option:e.option}),o}],["COMPLEX",e=>{const o=h(e);Array.isArray(e.properties)&&r("COMPLEX控件的properties属性已经废弃, 请使用children作为替代, 在之后的版本中properties属性将不再支持");const t=Array.isArray(e.properties||e.children)?E(e.properties||e.children):{};return o.type=e.fieldType||"void",o.properties=t,Object.assign(o["x-decorator-props"],{showFeedback:!1}),Object.assign(o["x-component-props"],n(e,["wrapperStyle","display"])),o}]]),C=e=>{if(e.suffixConfig)return A(e);return(w.get(e.html_type)||b)(e)},A=o=>{if(!o.suffixConfig&&!o.prefixConfig)return C(o);const t=o.suffixConfig?e(o.suffixConfig):[],n=[...(o.prefixConfig?e(o.prefixConfig):[]).map((e=>({elem_width:o.elem_width,...e,hide_title:"1",is_show:"1"}))),{...o,is_show:"1",hide_title:"1",suffixConfig:void 0,prefixConfig:void 0},...t.map((e=>({elem_width:o.elem_width,...e,hide_title:"1",is_show:"1"})))],i=h(o),r=n.reduce(((e,o)=>e+2*(o.elem_width||3)),0);return Object.assign(i,{type:"void",name:a(n),title:o.alias||o.name,"x-component":"INPUT_GROUP","x-component-props":{span:r},"x-decorator-props":{...i["x-decorator-props"],showFeedback:!1,suffixFields:n.map((e=>e.val_key))},properties:E(n)}),i},{FieldNormalizeWaterfallHook:O,FieldListNormalizeWaterfallHook:j}=s();function E(o,n={column:9999}){let i=null;return j.call(t(o),n).reduce(((e,o,s)=>{var a;const p=null==(a=(o=O.call(o,n)).validate)?void 0:a.obj_type;return p&&f&&f.collect(p,t(o)),"LINEBAR"===o.html_type?(e[l(o)]=r(v(o),s),i=e[l(o)].properties={}):i?i[l(o)]=r(C(o),s):(i=null,e[l(o)]=r(C(o),s)),e}),{});function r(e,o){return e["x-index"]=o,e}function l(o){return o.suffixConfig?a([o,...e(o.suffixConfig)]):o.val_key}}return{schemaAdaptor:E}}export{f as useFieldListAdaptor};
1
+ import{arrayed as e,deepOmit as o}from"../../../../shared/utils/index.js";import{cloneDeep as t,pick as n}from"lodash-es";import"../../index.js";import{parseNumberFromMaybeString as i,formRenderLog as r}from"../utils/index.js";import{format as l}from"date-fns";import{useFieldNormalize as s}from"./useFieldNormalize.js";import{fieldKeyEscape as a,createLinebarId as p}from"../utils/schema.js";import{useFormValidator as c}from"./useFormValidator.js";import{transformDateFormat as d}from"../utils/business.js";function m(e,o){Object.assign(e["x-component-props"],{...n(o,["wordbook","autograph"])})}function u(e,o){Object.assign(e["x-component-props"],{...n(o,["urlConfig","wordbook"])})}function f(f,x){const{createValidatorSchema:_}=c(),h=e=>{var o;const t={name:e.val_key,type:null!=(o=e.fieldType)?o:"string",title:e.alias||e.name,"x-component":e.html_type,default:e.default_val,"x-component-props":{placeholder:e.placeholder,clearable:"0"===e.is_empty,...e.componentProps||{}},"x-content":e.slots,"x-display":"0"===e.is_show?"hidden":"visible","x-pattern":"0"===e.is_edit?"disabled":"editable","x-compile-omitted":["title","x-component-props","x-decorator-props"]};e.reactions&&(t["x-reactions"]=e.reactions),e.noDecorator||Object.assign(t,{"x-decorator":"FORM_ITEM","x-decorator-props":{fieldItem:e,beforeSetValue:null==x?void 0:x.beforeSetValue,span:2*(e.elem_width||3),showLabel:"1"!==e.hide_title,remark:e.remark,propertyKey:e.val_key,annotation:e.annotation,...e.decoratorProps||{}}});const n=_(e);return n&&(t["x-validator"]=n),"0"===e.is_null&&(t.required=!0),t},g=e=>{var o,t,r,l,s,a,p;const c=h(e);e.urlConfig?u(c,e):e.autograph&&m(c,e);const d=!!e.__multiple,f="1"===e.allowModify,x=null!=(t=null==(o=e.componentProps)?void 0:o.selectAll)?t:e.selectAll;return Object.assign(c["x-component-props"],{multiple:d,options:(null==(r=e.componentProps)?void 0:r.options)||e.option,allowModify:f,allowCreate:"1"===e.free_entry||!!c["x-component-props"].allowCreate||f,shouldSave:"1"===e.save_free_entry,showField:null!=(s=e.show_key)?s:null==(l=e.componentProps)?void 0:l.showField,maxTagCount:null!=(p=i(e.multi_select_value))?p:null==(a=c["x-component-props"])?void 0:a.maxTagCount,selectAll:"1"===x||!0===x,...n(e,["lazyRequest","requestCache"])}),d&&(c.type="array"),c},y=e=>{var o,t;const n=h(e),i=null!=(t=null==(o=e.componentProps)?void 0:o.selectAll)?t:e.selectAll;return Object.assign(n["x-component-props"],{options:e.option,childFieldStrategy:e.childFieldStrategy,childWidthMode:e.childWidthMode,vertical:e.__vertical,selectAll:"1"===i||!0===i}),e.urlConfig?u(n,e):e.autograph&&m(n,e),n},b=e=>{const t=h(e);return Object.assign(t["x-component-props"],{fieldItem:o(e,["reactions"])}),t},v=e=>({name:e.val_key,type:"void",title:e.alias||e.name,"x-component":"LINEBAR","x-display":"visible","x-component-props":{disabled:"1"===e.is_not_fold,id:p(e.val_key),show:"0"!==e.is_show,remark:e.remark}}),w=new Map([["LINEBAR",v],["LINE_BREAKS",e=>({name:e.val_key,type:"void",title:e.alias||e.name,"x-component":"LINE_BREAKS","x-component-props":{border:e.lineBreaksBorder},"x-display":"0"===e.is_show?"hidden":"visible"})],["INPUT",e=>{const o=h(e);return Object.assign(o["x-component-props"],{...n(e,["prefix","suffix"])}),o}],["TEXTAREA",e=>{const o=h(e);return Object.assign(o["x-component-props"],{rows:e.initialize_high||3}),o}],["INPUT_NUMBER",e=>{const o=h(e),{decimal_length:t,validate:n,allowSlash:i}=e;return!0!==i&&"1"!==i||(o["x-component"]="INPUT_NUMBER_SLASH",o.type="string"),Object.assign(o["x-component-props"],{precision:null!=t?t:null==n?void 0:n.decimal_length,whiteList:e.whiteList,prefix:e.prefix,suffix:e.suffix}),o}],["SELECT",g],["REMOTE_SEARCH",g],["DATE",e=>{const o=h(e);return Object.assign(o["x-component-props"],{valueFormat:e.date_format,type:d(e.date_format),validate:e.validate}),"current"===o.default&&(o.default=l(new Date,e.date_format||"yyyy-MM-dd")),o}],["LEVEL_SEARCH_CASCADER",e=>{const o=h(e);return Object.assign(o["x-component-props"],{...n(e,["wordbook","lazyRequest","autograph"])}),"1"===e.is_allow_check_mid&&e.allow_check_mid_level&&(o["x-component-props"].checkAbleLevel=+e.allow_check_mid_level),o}],["SEARCH_CASCADER",e=>{var o;const t=h(e);return Object.assign(t["x-component-props"],{urlConfig:e.urlConfig,depth:null==(o=e.wordbook)?void 0:o.level_num,options:e.option}),t}],["COMBINATION",e=>{const o=h(e);return o.type="array","table"===e.displayMode?o["x-component"]="TABLE_COMBINATION":!1!==e.jsonCombination&&(o["x-component"]="JSON_COMBINATION"),Object.assign(o["x-decorator-props"],{showLabel:!1,showFeedback:!1}),Object.assign(o["x-component-props"],{title:e.alias||e.name,maxGroupNum:e.maxGroupNum,properties:e.children||[],combinationItemDeletable:e.combinationItemDeletable}),o}],["RADIO",y],["CHECKBOX",y],["SWITCH",e=>{const o=h(e);return Object.assign(o["x-component-props"],{openDescription:e.open,closeDescription:e.close}),o}],["SLIDER",e=>{const o=h(e);return Object.assign(o["x-component-props"],{step:i(e.step_length),max:i(e.max_length),min:i(e.min_length),option:e.option}),o}],["COMPLEX",e=>{const o=h(e);Array.isArray(e.properties)&&r("COMPLEX控件的properties属性已经废弃, 请使用children作为替代, 在之后的版本中properties属性将不再支持");const t=Array.isArray(e.properties||e.children)?j(e.properties||e.children):{};return o.type=e.fieldType||"void",o.properties=t,Object.assign(o["x-decorator-props"],{showFeedback:!1}),Object.assign(o["x-component-props"],n(e,["wrapperStyle","display"])),o}]]),C=e=>{if(e.suffixConfig)return A(e);return(w.get(e.html_type)||b)(e)},A=o=>{if(!o.suffixConfig&&!o.prefixConfig)return C(o);const t=o.suffixConfig?e(o.suffixConfig):[],n=[...(o.prefixConfig?e(o.prefixConfig):[]).map((e=>({elem_width:o.elem_width,...e,hide_title:"1",is_show:"1"}))),{...o,is_show:"1",hide_title:"1",suffixConfig:void 0,prefixConfig:void 0},...t.map((e=>({elem_width:o.elem_width,...e,hide_title:"1",is_show:"1"})))],i=h(o),r=n.reduce(((e,o)=>e+2*(o.elem_width||3)),0);return Object.assign(i,{type:"void",name:a(n),title:o.alias||o.name,"x-component":"INPUT_GROUP","x-component-props":{span:r},"x-decorator-props":{...i["x-decorator-props"],showFeedback:!1,suffixFields:n.map((e=>e.val_key))},properties:j(n)}),i},{FieldNormalizeWaterfallHook:O,FieldListNormalizeWaterfallHook:E}=s();function j(o,n={column:9999}){let i=null;return E.call(t(o),n).reduce(((e,o,s)=>{var a;const p=null==(a=(o=O.call(o,n)).validate)?void 0:a.obj_type;return p&&f&&f.collect(p,t(o)),"LINEBAR"===o.html_type?(e[l(o)]=r(v(o),s),i=e[l(o)].properties={}):i?i[l(o)]=r(C(o),s):(i=null,e[l(o)]=r(C(o),s)),e}),{});function r(e,o){return e["x-index"]=o,e}function l(o){return o.suffixConfig?a([o,...e(o.suffixConfig)]):o.val_key}}return{schemaAdaptor:j}}export{f as useFieldListAdaptor};
@@ -131,6 +131,7 @@ export declare type FieldItem = {
131
131
  show_key: string;
132
132
  whiteList: string[];
133
133
  bordered: boolean | string;
134
+ displayMode: 'table' | 'form';
134
135
  fieldType: SchemaTypes;
135
136
  content: string | FormRenderer | Record<string, FormRenderer>;
136
137
  lazyRequest: boolean;
@@ -1 +1 @@
1
- import{inject as e,provide as n,computed as t,createVNode as r,Fragment as o}from"vue";import{arrayed as i}from"../../../../shared/utils/index.js";import{isGeneralField as c,isField as u}from"@formily/core";import{Path as s}from"@formily/path";import{HelpCircleSharp as f}from"@vicons/ionicons5";import{isObject as a}from"@vue/shared";import{useMemoize as l}from"@vueuse/core";import{isString as p,isFunction as m,omit as d}from"lodash-es";import{NTooltip as h,NIcon as y}from"naive-ui";import"../../index.js";import{NESTED_FORM_ITEM_TYPE as x}from"../constants/index.js";import"date-fns";import{traverseDependKey as g}from"./schema.js";export{assignClearBindVisited,assignUpdateValue,assignValueBindKey,createLinebarId,createObjSchema,createVisitedSetter,dotEscape,fieldKeyEscape,getParentLinebar,traverseDependKey,traverseSchema}from"./schema.js";function v(e){console.warn(`[FormRender]: ${e}`)}function j(e,n,t=["children","properties","suffixConfig"],r="val_key",o="default_val"){return function e(n,r){r.forEach((r=>{a(r)&&(null!=u(r)&&null==n[c(r)]&&s.setIn(n,c(r),u(r)),t.forEach((t=>{r[t]&&(n[c(r)]||(n[c(r)]={}),e(n[c(r)],i(r[t])))})))}))}(e,n),e;function c(e){return e[r]}function u(e){return e[o]}}function K(t,r){let o=e(t,null);return o||(o=r(),n(t,o)),o}function E(e){return p(e)?+e:e}function b(e,n,t){if(a(e)&&!m(e)){const t={};return Object.entries(e).forEach((([e,r])=>{m(r)&&(t[e]=()=>r(n))})),t}return{default:()=>m(e)?e(n):t?t(e):[e]}}function k(e,n){return t((()=>{const t={};return e.prefix&&(t.prefix=()=>r(o,null,[b(e.prefix,e,n).default()])),e.suffix&&(t.suffix=()=>r(o,null,[b(e.suffix,e,n).default()])),t}))}function O(e,n){return p(e)&&e?e.replace(/\$\{([^}]*)}/g,(function(e,t){const r=t.split("||");for(const e of r){const t=n[e.trim()];if(t)return t}return""})):""}function S(e){return e.reduce(((e,n)=>(p(n.extendKey)&&n.extendKey&&e.push(n),I(n)&&e.push(...S(n.children||[])),e)),[])}function _(e,n){const t=S(e);if(!t.length)return n;const r={},o=new Map;return Object.entries(n).forEach((([e,i])=>{const c=t.find((n=>n.val_key===e));if(!c)return r[e]=i;const{val_key:u,extendKey:s}=c,f=o.get(s)||{};o.set(s,f),f[u]=n[u]})),[...o.entries()].forEach((([e,n])=>{r[e]=JSON.stringify(n)})),r}function V(e,n){const t=S(e);if(!t.length)return n;const r=l((e=>{try{return a(n[e])?n[e]:JSON.parse(n[e])||{}}catch(e){return{}}})),o=d(n,t.map((e=>e.extendKey)));return t.forEach((({val_key:e,extendKey:n})=>{Reflect.has(o,e)||(o[e]=r(n)[e])})),o}function w(e){return e&&x.includes(e)}function I(e){return w(c(e)?e.componentType:e.html_type)}async function $({config:e,field:n,cache:t}){const r={},o=n.props.name.toString();try{g(e.dependKey||[],((e,t,o)=>{const i=n.query(e).take();if(!u(i)||o&&null==i.value)throw`缺少必须的参数=>${e}`;r[t]=i.value}))}catch(e){return Promise.reject(e)}return{...e,params:Object.assign({},e.params,r),key:o,cache:t}}function B(e,n){return r("section",{style:{display:"flex",alignItems:"center",gap:"4px"}},[e,n.desc?r(h,null,{trigger:()=>r(y,{component:f},null),default:()=>n.desc}):null])}export{_ as combineExtendKey,k as createInputSlot,b as createSlot,$ as createUrlConfigParams,v as formRenderLog,K as injectOrProvide,I as isNestedFieldType,w as isNestedType,j as mergeDeepProperties,E as parseNumberFromMaybeString,B as renderDescOption,V as splitExtendKey,O as validateMessageParser};
1
+ import{inject as e,provide as n,computed as t,createVNode as r,Fragment as o}from"vue";import{arrayed as i}from"../../../../shared/utils/index.js";import{isGeneralField as c,isField as u}from"@formily/core";import{Path as s}from"@formily/path";import{HelpCircleSharp as f}from"@vicons/ionicons5";import{isObject as a}from"@vue/shared";import{useMemoize as l}from"@vueuse/core";import{isString as p,isFunction as m,omit as d}from"lodash-es";import{NTooltip as h,NIcon as y}from"naive-ui";import"../../index.js";import{NESTED_FORM_ITEM_TYPE as x}from"../constants/index.js";import"date-fns";import{traverseDependKey as g}from"./schema.js";export{assignClearBindVisited,assignUpdateValue,assignValueBindKey,createLinebarId,createObjSchema,createVisitedSetter,dotEscape,fieldKeyEscape,getParentLinebar,traverseDependKey,traverseSchema}from"./schema.js";function v(e){console.warn(`[FormRender]: ${e}`)}function j(e,n,t=["children","properties","suffixConfig"],r="val_key",o="default_val"){return function e(n,r){r.forEach((r=>{a(r)&&(null!=u(r)&&null==n[c(r)]&&s.setIn(n,c(r),u(r)),t.forEach((t=>{r[t]&&(n[c(r)]||(n[c(r)]={}),e(n[c(r)],i(r[t])))})))}))}(e,n),e;function c(e){return e[r]}function u(e){return e[o]}}function K(t,r){let o=e(t,null);return o||(o=r(),n(t,o)),o}function E(e){return e&&p(e)?+e:e}function b(e,n,t){if(a(e)&&!m(e)){const t={};return Object.entries(e).forEach((([e,r])=>{m(r)&&(t[e]=()=>r(n))})),t}return{default:()=>m(e)?e(n):t?t(e):[e]}}function k(e,n){return t((()=>{const t={};return e.prefix&&(t.prefix=()=>r(o,null,[b(e.prefix,e,n).default()])),e.suffix&&(t.suffix=()=>r(o,null,[b(e.suffix,e,n).default()])),t}))}function O(e,n){return p(e)&&e?e.replace(/\$\{([^}]*)}/g,(function(e,t){const r=t.split("||");for(const e of r){const t=n[e.trim()];if(t)return t}return""})):""}function S(e){return e.reduce(((e,n)=>(p(n.extendKey)&&n.extendKey&&e.push(n),I(n)&&e.push(...S(n.children||[])),e)),[])}function _(e,n){const t=S(e);if(!t.length)return n;const r={},o=new Map;return Object.entries(n).forEach((([e,i])=>{const c=t.find((n=>n.val_key===e));if(!c)return r[e]=i;const{val_key:u,extendKey:s}=c,f=o.get(s)||{};o.set(s,f),f[u]=n[u]})),[...o.entries()].forEach((([e,n])=>{r[e]=JSON.stringify(n)})),r}function V(e,n){const t=S(e);if(!t.length)return n;const r=l((e=>{try{return a(n[e])?n[e]:JSON.parse(n[e])||{}}catch(e){return{}}})),o=d(n,t.map((e=>e.extendKey)));return t.forEach((({val_key:e,extendKey:n})=>{Reflect.has(o,e)||(o[e]=r(n)[e])})),o}function w(e){return e&&x.includes(e)}function I(e){return w(c(e)?e.componentType:e.html_type)}async function $({config:e,field:n,cache:t}){const r={},o=n.props.name.toString();try{g(e.dependKey||[],((e,t,o)=>{const i=n.query(e).take();if(!u(i)||o&&null==i.value)throw`缺少必须的参数=>${e}`;r[t]=i.value}))}catch(e){return Promise.reject(e)}return{...e,params:Object.assign({},e.params,r),key:o,cache:t}}function B(e,n){return r("section",{style:{display:"flex",alignItems:"center",gap:"4px"}},[e,n.desc?r(h,null,{trigger:()=>r(y,{component:f},null),default:()=>n.desc}):null])}export{_ as combineExtendKey,k as createInputSlot,b as createSlot,$ as createUrlConfigParams,v as formRenderLog,K as injectOrProvide,I as isNestedFieldType,w as isNestedType,j as mergeDeepProperties,E as parseNumberFromMaybeString,B as renderDescOption,V as splitExtendKey,O as validateMessageParser};
@@ -1 +1 @@
1
- import{cloneDeep as e,isString as t,isFunction as n,pick as o,isArray as a,isNumber as i}from"lodash-es";import{isObject as r}from"@vue/shared";const s=Symbol("remove property");function l(){return{formConfigLikeAdaptor:function(l){const p={};return r(l)?{fieldList:function(l){const m=new Map([["NONE",0],["LEFT",1],["RIGHT",2]]),u=new Map([["0",0],["1",1]]),c=new Map([...["RADIO","RADIO_BLOCK","CHECKBOX","CHECKBOX_BLOCK","SELECT","SEARCH","SEARCH_MORE","SWITCH_COMPONENT"].map((e=>[e,"select"])),...["DATE"].map((e=>[e,"date"])),...["INPUT"].map((e=>[e,"input"])),...["DIGITAL"].map((e=>[e,"number"]))]),d=(e,t)=>{if(!r(e))return;const n={label:e.describe,...e};t.options=a(t.options)?[...t.options,n]:[n]},f=(e,n)=>{0!==e&&"0"!==e&&e&&(t(e)||i(e))&&(n.componentProps={maxTagCount:+e,...n.componentProps})},_=new Map([["multi_select_value",f],["is_null",(e,t,n,o)=>{"1"!==e&&"0"===e&&(o[n.val_key]=[{required:!0,message:"必填"}])}],["validate",(e,t)=>{if(!r(e))return;t.componentProps={...Object.entries({maxlength:"max_length",minlength:"min_length",max:"max_value",min:"min_value",precision:"decimal_length"}).reduce(((t,[n,o])=>(t[n]=e[o],t)),{}),...t.componentProps}}],["dateValidate",(e,t)=>{r(e)&&(t.isDateDisabled=(t,n)=>{if(!r(n))return;const{startDate:o,endDate:a}=e;let i=!1;return o&&(i=new Date(n[o]).getTime()>t),a&&(i=i||new Date(n[a]).getTime()<t),i})}],["default_val","defaultValue"],["date_format","valueFormat"],...["open","close"].map((e=>[e,d])),["is_edit",{property:"isEdit",valueMap:u}],["free_entry",(e,t,n)=>{t.componentProps={...t.componentProps,allowCreate:"1"===e||1===e,shouldSave:"1"===n.save_free_entry||1===n.save_free_entry}}],["html_type",(e,n,o)=>{var a;if(!t(e))return;if("DATE"===e)return void(n.formType=t(o.date_format)&&o.date_format.startsWith("HH:mm")?"time":"date");n.formType=null!=(a=c.get(e))?a:e;const i="SEARCH"!==e&&("SEARCH_MORE"===e||("SELECT"===e?"0"===o.multi_select:null));i&&(n.componentProps={multiple:i,...n.componentProps})}],["option",{property:"options",fieldMap:new Map([["text","label"]])}],...["alias","name"].map((e=>[e,(e,t,n)=>{var o;t.title=`${null!=(o=n.alias)?o:n.name}${n.suffix?`(${n.suffix})`:""}`}]))]),v=new Map([["sum","isSum"],["show","isShow"],["elementId","columnName"],["columnWidth","colWidth"],["fixedWayEnum",{property:"isFixed",valueMap:m}],["multi_select_value",f],["setting",{fieldMap:_,assign:!0}]]);return l.map((e=>E(e,p,v)));function E(i,l,p){if(!p)return e(i);const m={};return Object.entries(i).forEach((([e,o])=>{const a=p.get(e);return a?a!==s?t(a)?m[a]=o:n(a)?a(o,m,i,l):void(r(a)&&(a.assign?Object.assign(m,u(o,a)):m[a.property||e]=u(o,a))):void 0:m[e]=o})),m.componentProps=Object.assign({},m.componentProps,o(m,["options","isDateDisabled"])),m;function u(e,t){var o,i;return!r(t)||n(t)?e:a(e)?e.map((e=>u(e,t))):r(e)?E(e,l,t.fieldMap):null!=(i=null==(o=t.valueMap)?void 0:o.get(e))?i:e}}}(l.fieldList),editRules:p}:{fieldList:[],editRules:p}}}}export{l as useColumnConfigAdaptor};
1
+ import{cloneDeep as e,isString as t,isFunction as n,pick as o,isArray as a,isNumber as i}from"lodash-es";import{isObject as r}from"@vue/shared";const l=Symbol("remove property");function s(){return{formConfigLikeAdaptor:function(s){const p={};return r(s)?{fieldList:function(s){const m=new Map([["NONE",0],["LEFT",1],["RIGHT",2]]),u=new Map([["0",0],["1",1]]),c=new Map([...["RADIO","RADIO_BLOCK","CHECKBOX","CHECKBOX_BLOCK","SELECT","SEARCH","SEARCH_MORE","SWITCH_COMPONENT"].map((e=>[e,"select"])),...["DATE"].map((e=>[e,"date"])),...["INPUT"].map((e=>[e,"input"])),...["DIGITAL"].map((e=>[e,"number"]))]),d=(e,t)=>{if(!r(e))return;const n={label:e.describe,...e};t.options=a(t.options)?[...t.options,n]:[n]},f=(e,n)=>{0!==e&&"0"!==e&&e&&(t(e)||i(e))&&(n.componentProps={maxTagCount:+e,...n.componentProps})},_=new Map([["multi_select_value",f],["is_null",(e,t,n,o)=>{"1"!==e&&"0"===e&&(o[n.val_key]=[{required:!0,message:"必填"}])}],["validate",(e,t)=>{if(!r(e))return;t.componentProps={...Object.entries({maxlength:"max_length",minlength:"min_length",max:"max_value",min:"min_value",precision:"decimal_length"}).reduce(((t,[n,o])=>(t[n]=e[o],t)),{}),...t.componentProps}}],["dateValidate",(e,t)=>{r(e)&&(t.isDateDisabled=(t,n)=>{if(!r(n))return;const{startDate:o,endDate:a}=e;let i=!1;return o&&(i=new Date(n[o]).getTime()>t),a&&(i=i||new Date(n[a]).getTime()<t),i})}],["default_val","defaultValue"],["date_format","valueFormat"],...["open","close"].map((e=>[e,d])),["is_edit",{property:"isEdit",valueMap:u}],["free_entry",(e,t,n)=>{t.componentProps={...t.componentProps,allowCreate:"1"===e||1===e,shouldSave:"1"===n.save_free_entry||1===n.save_free_entry}}],["html_type",(e,n,o)=>{var a;if(!t(e))return;if("DATE"===e)return void(n.formType=t(o.date_format)&&o.date_format.startsWith("HH:mm")?"time":"date");n.formType=null!=(a=c.get(e))?a:e;const i="SEARCH"!==e&&("SEARCH_MORE"===e||("SELECT"===e?"0"===o.multi_select:null));i&&(n.componentProps={multiple:i,...n.componentProps})}],["option",{property:"options",fieldMap:new Map([["text","label"]])}],...["alias","name"].map((e=>[e,(e,t,n)=>{var o;t.title=`${null!=(o=n.alias)?o:n.name}${n.suffix?`(${n.suffix})`:""}`}]))]),v=new Map([["sum","isSum"],["show","isShow"],["val_key","columnName"],["elementId","columnName"],["columnWidth","colWidth"],["fixedWayEnum",{property:"isFixed",valueMap:m}],["multi_select_value",f],..._,["setting",{fieldMap:_,assign:!0}]]);return s.map((e=>E(e,p,v)));function E(i,s,p){if(!p)return e(i);const m={};return Object.entries(i).forEach((([e,o])=>{const a=p.get(e);return a?a!==l?t(a)?m[a]=o:n(a)?a(o,m,i,s):void(r(a)&&(a.assign?Object.assign(m,u(o,a)):m[a.property||e]=u(o,a))):void 0:m[e]=o})),m.componentProps=Object.assign({},m.componentProps,o(m,["options","isDateDisabled"])),m;function u(e,t){var o,i;return!r(t)||n(t)?e:a(e)?e.map((e=>u(e,t))):r(e)?E(e,s,t.fieldMap):null!=(i=null==(o=t.valueMap)?void 0:o.get(e))?i:e}}}(s.fieldList),editRules:p}:{fieldList:[],editRules:p}}}}export{s as useColumnConfigAdaptor};
@@ -1 +1 @@
1
- import{defineComponent as e,inject as l,ref as o,computed as t,onBeforeUnmount as n,nextTick as a,createVNode as r,toRaw as u}from"vue";import{arrayed as i}from"../../../../../../../shared/utils/index.js";import{isFunction as s,isEmpty as d,isArray as c,isObject as p,omit as f,cloneDeep as v,xor as m}from"lodash-es";import{NSelect as y}from"naive-ui";import{useVModel as h,useDebounceFn as b}from"@vueuse/core";import"date-fns";import"@vue/shared";import{useSelectAllowModify as w}from"../../../../../../../shared/hooks/selectHooks/useSelectAllowModify.js";import{useOptionFiltered as S}from"../../../../../../../shared/hooks/selectHooks/useOptionFiltered.js";import"../../../../../../../shared/hooks/selectHooks/useSearchContent.js";import{useSelectRenders as g}from"../../../../../../../shared/hooks/selectHooks/useSelectRenders.js";import{InjectionIhoTableUUID as F}from"../../../../constants/index.js";import{useIhoTableFormEvent as O}from"../../../../utils/index.js";import{getSelectOptions as k,selectOptionsMap as j}from"../hooks/useSelectOption.js";var x=e({name:"EditSelect",props:{value:{type:[Array,String,Number]},column:{type:Object,required:!0},row:{type:Object,required:!0},rowIndex:{type:Number,required:!0},options:{type:Array,default:()=>[]},queryOptions:{type:Function},placeholder:{type:String,default:"请选择"},allowModify:Boolean,allowCreate:{type:Boolean,default:!1},shouldSave:{type:Boolean,default:!1},consistentMenuWidth:{type:Boolean,default:!0},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},aliasField:{type:String},menuProps:{type:Object},multiple:{type:Boolean,default:!1},deletable:{type:Boolean,default:!0},selectAll:{type:Boolean,default:!0}},emits:["update:value"],setup(e,{emit:x}){const $=l("$xetable"),q=h(e,"value",x),B=o(null),{emitFormChangeWithParams:C}=O({...e,$table:$}),A=t((()=>e.labelField)),M=t((()=>e.valueField)),R=t((()=>e.aliasField)),{fullOptions:K,filterOptions:P,searchContent:_,remoteOptions:E}=S(e,A),{modifyEvent:H,modifyAbleRef:T,getOptionsWithCreated:W}=w(e,{searchContent:_,labelKey:A,valueKey:M,valueRef:q,fullOptions:K}),D=t((()=>W(T.value?K.value:P.value))),V=o(!1),I=b((async function(l=""){_.value=l;try{if(V.value=!0,!s(e.queryOptions)||!d(e.options))return;E.value=await e.queryOptions({keyword:l,row:e.row,column:e.column,rowIndex:e.rowIndex})}catch(l){console.log(`获取${e.column.field}options错误`)}finally{V.value=!1}}),400),L=l(F);function N(){U(),I()}async function U(l=!1){var o,t,n;if(!e.multiple)return;await a();const{refTableLeftBody:r,refTableBody:u}=$.getRefMaps(),i=null==(o=null==r?void 0:r.value)?void 0:o.$el;if(!i)return;const s=null==(t=null==u?void 0:u.value)?void 0:t.$el,d=$.getRowid(e.row),c=null==(n=s.querySelector(`.vxe-body--row[rowid="${d}"]`))?void 0:n.clientHeight;i.querySelector(`.vxe-body--row[rowid="${d}"]`).style.height=l?"unset":c+"px"}async function z(l,o){var t,n;const a=e.value;await H.updateValue(l,o);const r=k(L,e.column.field,e.row,$);L&&c(r)&&i(o).forEach((e=>{if(!p(e))return;const l=e;l.created&&l.shouldSave&&r.push(f(u(l),["created","shouldSave"]))}));const s=null==(t=e.column.editRender)?void 0:t.props;if(L&&(null==s?void 0:s.connectField)){const o=null==(n=s.connectField)?void 0:n.split(","),t=j.get(L);o.forEach((async o=>{var n;const{tableColumn:a}=$.reactData,r=a.find((e=>e.field===o)),u=null==(n=null==r?void 0:r.editRender)?void 0:n.props;if(null==u?void 0:u.queryOptions){const n=l?`${o}__${e.column.field}-${l}`:o;if(t[n])return;t[n]=await u.queryOptions({row:e.row,column:r,isFullData:!0,connectColumn:e.column})}}))}return C({oldValue:a,option:v(o)}),U()}function G(e){var l,o;"Tab"===e.key&&B.value&&(null==(o=(l=B.value).handleKeydown)||o.call(l,{...e,key:"Enter",preventDefault:e.preventDefault.bind(e)}))}n((()=>U(!0)));const{renderTag:J,renderLabel:Q,renderSelectAll:X}=g(e,{labelKey:A,showKey:R,searchContent:_});function Y(l){if(!e.multiple)return;const o=l?D.value.map((e=>e[M.value])):[];if(!m(o,q.value).length)return;const t=q.value;q.value=o,C({oldValue:t,option:l?D.value:[]})}const Z=()=>({class:"iho-table__selectOption"}),ee=t((()=>{var l,o;return{...e.menuProps,class:`iho-table__selectMenu ${null!=(o=null==(l=e.menuProps)?void 0:l.class)?o:""}`}}));return()=>{const l={};return e.multiple&&e.selectAll&&(l.action=()=>X(Y)),r(y,{ref:B.value,consistentMenuWidth:e.consistentMenuWidth,placeholder:e.placeholder,labelField:e.labelField,valueField:e.valueField,loading:V.value,options:D.value,multiple:e.multiple,value:e.value,remote:!0,onSearch:I,clearable:!0,filterable:!0,nodeProps:Z,menuProps:ee.value,renderTag:J,renderLabel:Q,onUpdateShow:N,onUpdateValue:z,onKeydown:G,onFocus:H.focus,onBlur:H.blur},l)}}});export{x as default};
1
+ import{defineComponent as e,inject as l,ref as o,computed as t,onBeforeUnmount as n,nextTick as a,createVNode as r,toRaw as u}from"vue";import{arrayed as i}from"../../../../../../../shared/utils/index.js";import{isFunction as s,isEmpty as d,isArray as c,isObject as p,omit as v,cloneDeep as f,xor as m}from"lodash-es";import{NSelect as y}from"naive-ui";import{useVModel as h,useDebounceFn as b}from"@vueuse/core";import"date-fns";import"@vue/shared";import{useSelectAllowModify as w}from"../../../../../../../shared/hooks/selectHooks/useSelectAllowModify.js";import{useOptionFiltered as S}from"../../../../../../../shared/hooks/selectHooks/useOptionFiltered.js";import"../../../../../../../shared/hooks/selectHooks/useSearchContent.js";import{useSelectRenders as g}from"../../../../../../../shared/hooks/selectHooks/useSelectRenders.js";import{InjectionIhoTableUUID as F}from"../../../../constants/index.js";import{useIhoTableFormEvent as O}from"../../../../utils/index.js";import{getSelectOptions as k,selectOptionsMap as j}from"../hooks/useSelectOption.js";var x=e({name:"EditSelect",props:{value:{type:[Array,String,Number]},column:{type:Object,required:!0},row:{type:Object,required:!0},rowIndex:{type:Number,required:!0},options:{type:Array,default:()=>[]},queryOptions:{type:Function},placeholder:{type:String,default:"请选择"},allowModify:Boolean,allowCreate:{type:Boolean,default:!1},shouldSave:{type:Boolean,default:!1},consistentMenuWidth:{type:Boolean,default:!0},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},aliasField:{type:String},menuProps:{type:Object},multiple:{type:Boolean,default:!1},deletable:{type:Boolean,default:!0},selectAll:{type:Boolean,default:!0}},emits:["update:value"],setup(e,{emit:x}){const $=l("$xetable"),q=h(e,"value",x),B=o(null),{emitFormChangeWithParams:C}=O({...e,$table:$}),R=t((()=>e.labelField)),A=t((()=>e.valueField)),K=t((()=>e.aliasField)),{fullOptions:M,filterOptions:P,searchContent:_,remoteOptions:E}=S(e,R),{modifyEvent:H,modifyAbleRef:T,getOptionsWithCreated:W}=w(e,{searchContent:_,labelKey:R,valueKey:A,valueRef:q,fullOptions:M}),D=t((()=>W(T.value?M.value:P.value))),V=o(!1),I=b((async function(l=""){_.value=l;try{if(V.value=!0,!s(e.queryOptions)||!d(e.options))return;E.value=await e.queryOptions({keyword:l,row:e.row,column:e.column,rowIndex:e.rowIndex})}catch(l){console.log(`获取${e.column.field}options错误`)}finally{V.value=!1}}),400),L=l(F);function N(){U(),I()}async function U(l=!1){var o,t,n;if(!e.multiple)return;await a();const{refTableLeftBody:r,refTableBody:u}=$.getRefMaps(),i=null==(o=null==r?void 0:r.value)?void 0:o.$el;if(!i)return;const s=null==(t=null==u?void 0:u.value)?void 0:t.$el,d=$.getRowid(e.row),c=null==(n=s.querySelector(`.vxe-body--row[rowid="${d}"]`))?void 0:n.clientHeight;i.querySelector(`.vxe-body--row[rowid="${d}"]`).style.height=l?"unset":c+"px"}async function z(l,o){var t,n;const a=e.value;await H.updateValue(l,o);const r=k(L,e.column.field,e.row,$);L&&c(r)&&i(o).forEach((e=>{if(!p(e))return;const l=e;l.created&&l.shouldSave&&r.push(v(u(l),["created","shouldSave"]))}));const s=null==(t=e.column.editRender)?void 0:t.props;if(L&&(null==s?void 0:s.connectField)){const o=null==(n=s.connectField)?void 0:n.split(","),t=j.get(L);o.forEach((async o=>{var n;const{tableColumn:a}=$.reactData,r=a.find((e=>e.field===o)),u=null==(n=null==r?void 0:r.editRender)?void 0:n.props;if(null==u?void 0:u.queryOptions){const n=l?`${o}__${e.column.field}-${l}`:o;if(t[n])return;t[n]=await u.queryOptions({row:e.row,column:r,isFullData:!0,connectColumn:e.column})}}))}return C({oldValue:a,option:f(o)}),U()}function G(e){var l,o;"Tab"===e.key&&B.value&&(null==(o=(l=B.value).handleKeydown)||o.call(l,{...e,key:"Enter",preventDefault:e.preventDefault.bind(e)}))}n((()=>U(!0)));const{renderTag:J,renderLabel:Q,renderSelectAll:X}=g(e,{labelKey:R,valueKey:A,valueRef:q,showKey:K,searchContent:_});function Y(l){if(!e.multiple)return;const o=l?D.value.map((e=>e[A.value])):[];if(!m(o,q.value).length)return;const t=q.value;q.value=o,C({oldValue:t,option:l?D.value:[]})}const Z=()=>({class:"iho-table__selectOption"}),ee=t((()=>{var l,o;return{...e.menuProps,class:`iho-table__selectMenu ${null!=(o=null==(l=e.menuProps)?void 0:l.class)?o:""}`}}));return()=>{const l={};return e.multiple&&e.selectAll&&(l.action=()=>X(Y)),r(y,{ref:B.value,consistentMenuWidth:e.consistentMenuWidth,placeholder:e.placeholder,labelField:e.labelField,valueField:e.valueField,loading:V.value,options:D.value,multiple:e.multiple,value:e.value,remote:!0,onSearch:I,clearable:!0,filterable:!0,nodeProps:Z,menuProps:ee.value,renderTag:J,renderLabel:Q,onUpdateShow:N,onUpdateValue:z,onKeydown:G,onFocus:H.focus,onBlur:H.blur},l)}}});export{x as default};
@@ -190,6 +190,7 @@ declare const ShortcutSetter: SFCWithInstall<import("vue").DefineComponent<{
190
190
  show_key?: string | undefined;
191
191
  whiteList?: string[] | undefined;
192
192
  bordered?: string | boolean | undefined;
193
+ displayMode?: "table" | "form" | undefined;
193
194
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
194
195
  content?: string | import("..").FormRenderer | Record<string, import("..").FormRenderer> | undefined;
195
196
  lazyRequest?: boolean | undefined;
@@ -192,6 +192,7 @@ declare const _default: import("vue").DefineComponent<{
192
192
  show_key?: string | undefined;
193
193
  whiteList?: string[] | undefined;
194
194
  bordered?: string | boolean | undefined;
195
+ displayMode?: "table" | "form" | undefined;
195
196
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
196
197
  content?: string | import("../../../../es/components/form-render").FormRenderer | Record<string, import("../../../../es/components/form-render").FormRenderer> | undefined;
197
198
  lazyRequest?: boolean | undefined;
@@ -4,10 +4,12 @@ import { Ref } from 'vue';
4
4
  export declare function useSelectRenders(props: {
5
5
  multiple: boolean;
6
6
  deletable: boolean;
7
- }, { labelKey, showKey, searchContent }: {
7
+ }, { labelKey, valueKey, showKey, searchContent, valueRef }: {
8
8
  searchContent: Ref;
9
9
  labelKey: Ref<string>;
10
+ valueKey: Ref<string>;
10
11
  showKey: Ref<string | undefined>;
12
+ valueRef: Ref;
11
13
  }): {
12
14
  renderLabel: (option: AnyObject) => string | JSX.Element;
13
15
  renderSelectAll: (onSelectAll: (checked: boolean) => void) => JSX.Element[];
@@ -1 +1 @@
1
- import{ref as e,createVNode as t,createTextVNode as n}from"vue";import"../../utils/index.js";import{isString as l}from"lodash-es";import{NTooltip as o,NIcon as r,NButton as a,NTag as i}from"naive-ui";import"@vueuse/core";import"date-fns";import"@vue/shared";import"@vueuse/shared";import{searchContentMatcher as u}from"./useSearchContent.js";import{HelpCircleSharp as s}from"@vicons/ionicons5";function c(c,{labelKey:p,showKey:m,searchContent:d}){const f=e("");return{renderLabel:function(e){const n=e[p.value];if(!n||!l(n))return"";const a=d.value?u(d.value,n):null,i=a?t("section",null,[a.map(((e,n)=>0!==n&&e?t("span",{style:{color:n%2==0?"var(--n-option-text-color-active)":""}},[e]):null))]):n;return e.desc?t("section",{style:{display:"flex",alignItems:"center",gap:"4px"}},[i,e.desc?t(o,null,{trigger:()=>t(r,{component:s},null),default:()=>e.desc}):null]):i},renderSelectAll:function(e){return[t(a,{quaternary:!0,type:"primary",size:"tiny",onClick:()=>e(!0)},{default:()=>[n("全选")]}),t(a,{quaternary:!0,type:"primary",size:"tiny",onClick:()=>e(!1)},{default:()=>[n("清空")]})]},renderTag:function({option:e,handleClose:n}){var l;const o=null!=(l=m.value&&e[m.value])?l:e[p.value];return c.multiple?(f.value="",c.deletable?t(i,{closable:!0,onClose:e=>{e.stopPropagation(),n()}},{default:()=>t("span",{title:o},[o])}):`${o} ;`):(f.value=o,o)},titleRef:f}}export{c as useSelectRenders};
1
+ import{ref as e,createVNode as t,createTextVNode as n}from"vue";import"../../utils/index.js";import{isString as l,isArray as r}from"lodash-es";import{NTooltip as o,NIcon as a,NButton as u,NTag as i}from"naive-ui";import"@vueuse/core";import"date-fns";import"@vue/shared";import"@vueuse/shared";import{searchContentMatcher as s}from"./useSearchContent.js";import{HelpCircleSharp as c}from"@vicons/ionicons5";function p(p,{labelKey:v,valueKey:m,showKey:d,searchContent:f,valueRef:y}){const h=e("");return{renderLabel:function(e){const n=e[v.value];if(!n||!l(n))return"";const r=f.value?s(f.value,n):null,u=r?t("section",null,[r.map(((e,n)=>0!==n&&e?t("span",{style:{color:n%2==0?"var(--n-option-text-color-active)":""}},[e]):null))]):n;return e.desc?t("section",{style:{display:"flex",alignItems:"center",gap:"4px"}},[u,e.desc?t(o,null,{trigger:()=>t(a,{component:c},null),default:()=>e.desc}):null]):u},renderSelectAll:function(e){return[t(u,{quaternary:!0,type:"primary",size:"tiny",onClick:()=>e(!0)},{default:()=>[n("全选")]}),t(u,{quaternary:!0,type:"primary",size:"tiny",onClick:()=>e(!1)},{default:()=>[n("清空")]})]},renderTag:function({option:e,handleClose:n}){var l;const o=null!=(l=d.value&&e[d.value])?l:e[v.value];if(!p.multiple)return h.value=o,o;h.value="";const a=r(y.value)?y.value.findIndex((t=>t===e[m.value])):-1;return p.deletable?t(i,{closable:!0,onClose:e=>{e.stopPropagation(),n()}},{default:()=>t("span",{title:o},[o])}):`${o} ${a>=0&&a===y.value.length-1?"":";"}`},titleRef:h}}export{p as useSelectRenders};
@@ -1 +1 @@
1
- var e="@cnhis-design-vue/shared",i="3.1.53-beta.5",s="index.ts",n={"naive-ui":"^2.30.0",vue:"^3.2.0"},a={"@vicons/ionicons5":"^0.12.0","lodash-es":"^4.17.21",moment:"^2.29.1","video.js":"^7.19.2","videojs-contrib-hls":"^5.15.0",viewerjs:"^1.10.5","xe-utils":"^3.5.4"},d={name:e,version:"3.1.53-beta.5",private:!0,main:"index.ts",peerDependencies:n,dependencies:a};export{d as default,a as dependencies,s as main,e as name,n as peerDependencies,i as version};
1
+ var e="@cnhis-design-vue/shared",i="3.1.53-beta.7",s="index.ts",n={"naive-ui":"^2.30.0",vue:"^3.2.0"},a={"@vicons/ionicons5":"^0.12.0","lodash-es":"^4.17.21",moment:"^2.29.1","video.js":"^7.19.2","videojs-contrib-hls":"^5.15.0",viewerjs:"^1.10.5","xe-utils":"^3.5.4"},d={name:e,version:"3.1.53-beta.7",private:!0,main:"index.ts",peerDependencies:n,dependencies:a};export{d as default,a as dependencies,s as main,e as name,n as peerDependencies,i as version};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cnhis-design-vue",
3
- "version": "3.1.53-beta.5",
3
+ "version": "3.1.53-beta.7",
4
4
  "license": "ISC",
5
5
  "module": "./es/components/index.js",
6
6
  "main": "./es/components/index.js",
@@ -63,5 +63,5 @@
63
63
  "iOS 7",
64
64
  "last 3 iOS versions"
65
65
  ],
66
- "gitHead": "c4ffe7a69f88df71c4226683a546e9622ccea76e"
66
+ "gitHead": "3b39dedcfdd66ad9e053b884ca333f1e9604f6ba"
67
67
  }
@@ -1 +0,0 @@
1
- import{defineComponent as e,ref as o,computed as t,watch as r,inject as a,onBeforeUnmount as i,createVNode as m}from"vue";import{isObjectField as n}from"@formily/core";import{autorun as l}from"@formily/reactive";import{connect as s,RecursionField as u}from"@formily/vue";import{AddCircleOutline as p,RemoveCircle as c}from"@vicons/ionicons5";import{isNumber as d,isArray as f,isFunction as v,range as b}from"lodash-es";import{NButton as y,NIcon as h}from"naive-ui";import"../../../index.js";import{InjectionBusinessCollector as x,InjectionFormGlobalProps as _}from"../../constants/index.js";import"../../../../../shared/utils/index.js";import"@formily/path";import"@vue/shared";import"@vueuse/core";import"date-fns";import{createObjSchema as C}from"../../utils/schema.js";import{useFormField as j}from"../../hooks/useFormField.js";import{useFieldListAdaptor as k}from"../../hooks/useFieldListAdaptor.js";const F=s(e({name:"FormCombination",props:{title:{type:String,default:""},value:{type:Array},maxGroupNum:{type:Number},disabled:{type:Boolean},properties:{type:Array,default:()=>[]},combinationItemDeletable:{type:[Boolean,Function],default:!0},onInput:{},onBlur:{},onChange:{}},emits:["update:value"],setup(e){const{field:s,fieldKey:F}=j(),I=o(1),N=t((()=>d(e.maxGroupNum)?e.maxGroupNum<1?0:~~e.maxGroupNum:1/0));function A(){I.value++}r((()=>e.value),(e=>{f(e)&&(I.value=Math.min(Math.max(e.length,1),N.value))}),{immediate:!0});const D=a(x),G=a(_),{schemaAdaptor:g}=k(D,G.lifeCycle),B=o([]);return i(l((()=>{f(s.value.value)&&(B.value=s.value.value.map(((o,t)=>v(e.combinationItemDeletable)?e.combinationItemDeletable(o||{},t):e.combinationItemDeletable)))}))),()=>m("section",{class:"form-render__combination"},[m("header",{class:"form-render__combinationHeader"},[m("div",{class:"form-render__combinationHeaderText"},[e.title]),m(y,{onClick:A,text:!0,style:{"--n-text-color":"var(--c-primary-color)"},disabled:I.value>=N.value||e.disabled},{icon:()=>m(h,{component:p},null),default:()=>"新增"})]),b(I.value).map(((o,t)=>m("section",{class:"form-render__combinationContent"},[m(u,{schema:C(g(e.properties)),name:t},null),m(y,{text:!0,disabled:!B.value[t],type:"error",class:"form-render__combinationClose",onClick:()=>async function(e){if(I.value>1)I.value--,await s.value.remove(e);else{const o=s.value.query(`${F.value}.${e}`).take();if(!o||!n(o))return;await o.reset()}}(t)},{icon:()=>m(h,{component:c},null)})])))])}}));export{F as COMBINATION};
@@ -1 +0,0 @@
1
- import{defineComponent as e,ref as o,computed as r,watch as t,onMounted as n,createVNode as i}from"vue";import{isField as l}from"@formily/core";import{Path as a}from"@formily/path";import{AddCircleOutline as u,RemoveCircle as s}from"@vicons/ionicons5";import{isNumber as m,range as p,isArray as c,isEqual as f}from"lodash-es";import{useDeepValidate as v}from"./hooks/useDeepValidate.js";import{formRenderLog as d,mergeDeepProperties as y}from"../../../utils/index.js";import{connect as h,mapProps as g}from"@formily/vue";import{useDebounceFn as b,isObject as x}from"@vueuse/core";import{NButton as N,NIcon as _}from"naive-ui";import C from"../../../FormRender.vue.js";import{assignUpdateValue as j}from"../../../utils/schema.js";const I=h(e({name:"FormJsonCombination",props:{title:{type:String,default:""},value:{type:[String,Array]},maxGroupNum:{type:Number},properties:{type:Array,default:()=>[]},onInput:{},onBlur:{},onChange:{}},emits:["update:value"],setup(e,{emit:h}){d("当前COMBINATION控件为json模式,推荐使用非json模式,FieldItem.jsonCombination=false");const g=b((function(){h("update:value",JSON.stringify(j.value))}),300),j=o([]),I=r((()=>j.value.length));function S(o,r=!1){c(o)&&(o.length||o.push({}),o=JSON.stringify(o));const t=function(e){try{if(!e)return null;const o=JSON.parse(e);return Array.isArray(o)?o:null}catch(e){return null}}(o);var n;(n=t)&&!f(n,j.value)&&(t.splice(O.value),t.forEach((function(o,t){if(!x(o))return;j.value[t]=o,r&&y(o,e.properties)})),j.value.splice(t.length),j.value.forEach(F))}t((()=>e.value),(e=>S(e))),n((()=>{S(e.value||"[{}]",!0),g()}));const A=o([]);function F(e,o){var r;null==(r=A.value[o])||r.setFieldState("*",(o=>{l(o)&&(o.value=a.getIn(e,o.path))}))}function J(){j.value.push(y({},e.properties)),g()}v().bindDeepValidate(A);const O=r((()=>m(e.maxGroupNum)?e.maxGroupNum<1?0:~~e.maxGroupNum:1/0));t(O,(e=>{I.value<=e||(j.value.splice(e),g(),A.value.splice(e))}),{immediate:!0});const G=C;return()=>i("section",{class:"form-render__combination"},[i("header",{class:"form-render__combinationHeader"},[i("div",{class:"form-render__combinationHeaderText"},[e.title]),i(N,{onClick:J,style:{"--n-text-color":"var(--c-primary-color)"},text:!0,disabled:I.value>=O.value},{icon:()=>i(_,{component:u},null),default:()=>"新增"})]),p(I.value).map(((o,r)=>i("section",{class:"form-render__combinationContentJson"},[i(G,{ref:e=>function(e,o){A.value[e]=o,F(j.value[e]||{},e)}(r,e),fieldList:e.properties,onFormChange:e=>function(e,{fieldKey:o,value:r}){!j.value[e]&&(j.value[e]={}),a.setIn(j.value[e],o,r),g()}(r,e)},null),i(N,{text:!0,class:"form-render__combinationClose",type:"error",onClick:()=>function(e){j.value.length>1?(j.value.splice(e,1),A.value.splice(e,1)):j.value.splice(e,1,{}),g()}(r)},{icon:()=>i(_,{component:s},null)})])))])}}),g(j));export{I as JSON_COMBINATION};