useCrudSchemas-aa52eac5.js 3.0 KB

1
  1. import{z as P,f as D,e7 as S,cf as T,bO as E}from"./index-03f5d926.js";import{e as y,t as Y,f as I}from"./tree-fd3a041e.js";import{c as w,a as A,g as H}from"./dict-34d00697.js";import{_ as M}from"./DictTag.vue_vue_type_script_lang-56310db4.js";const{t:F}=P(),g=s=>{const a=D({searchSchema:[],tableColumns:[],formSchema:[],detailSchema:[]}),t=x(s,a);a.searchSchema=t||[];const l=z(s);a.tableColumns=l||[];const o=N(s,a);a.formSchema=o;const i=O(s);return a.detailSchema=i,{allSchemas:a}},x=(s,a)=>{const t=[],l=[];y(s,o=>{var i,m,f,p;if(o!=null&&o.isSearch||(i=o.search)!=null&&i.show){let u=((m=o==null?void 0:o.search)==null?void 0:m.component)||"Input";const h=[];let e={};if(o.dictType){const r={label:"\u5168\u90E8",value:""};h.push(r),w(o.dictType).forEach(c=>{h.push(c)}),e={options:h},(f=o.search)!=null&&f.component||(u="Select")}const d=S({component:u,...o.search,field:o.field,label:((p=o.search)==null?void 0:p.label)||o.label},{componentProps:e});d.api&&l.push(async()=>{var c;const r=await d.api();if(r){const n=T(a.searchSchema,b=>b.field===d.field);n!==-1&&(a.searchSchema[n].componentProps.options=v(r,(c=d.componentProps.optionsAlias)==null?void 0:c.labelField))}}),delete d.show,t.push(d)}});for(const o of l)o();return t},z=s=>{const a=Y(s,{conversion:t=>{var l;if((t==null?void 0:t.isTable)!==!1&&((l=t==null?void 0:t.table)==null?void 0:l.show)!==!1)return!t.formatter&&t.dictType&&(t.formatter=(o,i,m)=>E(M,{type:t.dictType,value:m})),{...t.table,...t}}});return I(a,t=>(t.children===void 0&&delete t.children,!!t.field))},N=(s,a)=>{const t=[],l=[];y(s,o=>{var i,m,f,p,u;if((o==null?void 0:o.isForm)!==!1&&((i=o==null?void 0:o.form)==null?void 0:i.show)!==!1){let h=((m=o==null?void 0:o.form)==null?void 0:m.component)||"Input",e="";(f=o.form)!=null&&f.value?e=(p=o.form)==null?void 0:p.value:h==="InputNumber"&&(e=0);let d={};if(o.dictType){const c=[];o.dictClass&&o.dictClass==="number"?A(o.dictType).forEach(n=>{c.push(n)}):o.dictClass&&o.dictClass==="boolean"?H(o.dictType).forEach(n=>{c.push(n)}):w(o.dictType).forEach(n=>{c.push(n)}),d={options:c},o.form&&o.form.component||(h="Select")}const r=S({component:h,value:e,...o.form,field:o.field,label:((u=o.form)==null?void 0:u.label)||o.label},{componentProps:d});r.api&&l.push(async()=>{var n;const c=await r.api();if(c){const b=T(a.formSchema,C=>C.field===r.field);b!==-1&&(a.formSchema[b].componentProps.options=v(c,(n=r.componentProps.optionsAlias)==null?void 0:n.labelField))}}),delete r.show,t.push(r)}});for(const o of l)o();return t},O=s=>{const a=[];return y(s,t=>{var l,o,i,m,f;if((t==null?void 0:t.isDetail)!==!1&&((l=t.detail)==null?void 0:l.show)!==!1){const p={...t.detail,field:t.field,label:((o=t.detail)==null?void 0:o.label)||t.label};t.dictType&&(p.dictType=t.dictType),((i=t.detail)!=null&&i.dateFormat||t.formatter=="formatDate")&&(p.dateFormat=(m=t==null?void 0:t.detail)!=null&&m.dateFormat?(f=t==null?void 0:t.detail)==null?void 0:f.dateFormat:"YYYY-MM-DD HH:mm:ss"),delete p.show,a.push(p)}}),a},v=(s,a)=>s==null?void 0:s.map(t=>(a?t.labelField=F(t.labelField):t.label=F(t.label),t));export{g as u};