@jt-home/mfe-components 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,2 +1,3 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),z=require("element-plus/es"),le=require("element-plus");var ee=typeof document<"u"?document.currentScript:null;const Pe=2,Tt=3;function Ft(o){return o.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}function Ue(o){if(!o.startsWith("on")||o.length<=Pe)return!1;const t=o.charCodeAt(Pe);return t<97||t>122}function Rt(o){if(o.startsWith("on-"))return o.slice(Tt);const[t,n]=o.slice(Pe).split(":"),a=Ft(t);return n?`${a}:${n}`:a}function Je(o,t=new Set){return Object.fromEntries(Object.entries(o).filter(([n,a])=>!t.has(n)&&Ue(n)&&typeof a=="function").map(([n,a])=>[Rt(n),a]))}function He(o,t=new Set){return Object.fromEntries(Object.entries(o).filter(([n])=>!t.has(n)&&!Ue(n)))}const Mt=e.defineComponent({name:"JtButton",__name:"index",props:{size:{},disabled:{type:Boolean},type:{},icon:{},nativeType:{},loading:{type:Boolean},loadingIcon:{},plain:{type:Boolean},text:{type:Boolean},link:{type:Boolean},bg:{type:Boolean},autofocus:{type:Boolean},round:{type:Boolean},circle:{type:Boolean},dashed:{type:Boolean},color:{},dark:{type:Boolean},autoInsertSpace:{type:Boolean},tag:{}},setup(o){const t=o,n=e.useAttrs(),a=e.computed(()=>{const{icon:i,...g}=t;return{...He(n),...g}}),l=e.computed(()=>Je(n));return(i,g)=>{const f=z.ElIcon,d=z.ElButton;return e.openBlock(),e.createBlock(d,e.mergeProps({class:"jt-button"},a.value,e.toHandlers(l.value)),{default:e.withCtx(()=>[i.$slots.icon?(e.openBlock(),e.createBlock(f,{key:0,class:"jt-button__icon"},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"icon",{},void 0,!0)]),_:3})):t.icon?(e.openBlock(),e.createBlock(f,{key:1,class:"jt-button__icon"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.icon)))]),_:1})):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"default",{},void 0,!0)]),_:3},16)}}}),q=(o,t)=>{const n=o.__vccOpts||o;for(const[a,l]of t)n[a]=l;return n},me=q(Mt,[["__scopeId","data-v-fbcdce34"]]),Lt=e.defineComponent({name:"JtCascader",__name:"index",props:{size:{},placeholder:{default:"请选择"},disabled:{type:Boolean},clearable:{type:Boolean,default:!0},clearIcon:{},filterable:{type:Boolean},filterMethod:{},separator:{},showAllLevels:{type:Boolean},collapseTags:{type:Boolean},maxCollapseTags:{},collapseTagsTooltip:{type:Boolean},maxCollapseTagsTooltipHeight:{},debounce:{},beforeFilter:{},placement:{},fallbackPlacements:{},popperClass:{},popperStyle:{type:[Boolean,null,String,Object,Array]},teleported:{type:Boolean},effect:{},tagType:{},tagEffect:{},validateEvent:{type:Boolean},persistent:{type:Boolean},showCheckedStrategy:{},checkOnClickNode:{type:Boolean},showPrefix:{type:Boolean},fitInputWidth:{type:[Boolean,Number]},modelValue:{},props:{},virtualScroll:{type:Boolean},itemSize:{},height:{},emptyValues:{},valueOnClear:{type:[String,Number,Boolean,Function,null]},options:{default:()=>[]}},emits:le.cascaderEmits,setup(o,{emit:t}){const n=o,a=t,l=e.computed(()=>Object.fromEntries(Object.keys(le.cascaderEmits).map(i=>[i,(...g)=>a(i,...g)])));return(i,g)=>{const f=z.ElCascader;return e.openBlock(),e.createBlock(f,e.mergeProps({class:"jt-cascader"},n,e.toHandlers(l.value)),null,16)}}}),We=q(Lt,[["__scopeId","data-v-9164edeb"]]),zt=e.defineComponent({name:"JtDatePicker",__name:"index",props:{type:{default:"date"},showNow:{type:Boolean},showConfirm:{type:Boolean},showFooter:{type:Boolean},showWeekNumber:{type:Boolean},ariaLabel:{},emptyValues:{},valueOnClear:{},disabledDate:{},cellClassName:{},shortcuts:{},arrowControl:{type:Boolean},tabindex:{},validateEvent:{type:Boolean},unlinkPanels:{type:Boolean},singlePanel:{type:Boolean},placement:{},fallbackPlacements:{},disabledHours:{},disabledMinutes:{},disabledSeconds:{},automaticDropdown:{type:Boolean},id:{},name:{},popperClass:{},popperStyle:{},format:{},valueFormat:{default:"YYYY-MM-DD"},dateFormat:{},timeFormat:{},clearable:{type:Boolean,default:!0},clearIcon:{},editable:{type:Boolean},saveOnBlur:{type:Boolean},prefixIcon:{},size:{},readonly:{type:Boolean},disabled:{type:Boolean},placeholder:{default:"请选择日期"},popperOptions:{},modelValue:{},rangeSeparator:{},startPlaceholder:{},endPlaceholder:{},defaultValue:{},defaultTime:{},isRange:{type:Boolean}},setup(o){const t=o,n=e.computed(()=>({...t,startPlaceholder:t.startPlaceholder??(a(t.type)?"开始日期":void 0),endPlaceholder:t.endPlaceholder??(a(t.type)?"结束日期":void 0)}));function a(l){return l?.includes("range")??!1}return(l,i)=>{const g=z.ElDatePicker;return e.openBlock(),e.createBlock(g,e.mergeProps({class:"jt-date-picker"},n.value,{"onUpdate:modelValue":i[0]||(i[0]=f=>l.$emit("update:modelValue",f))}),null,16)}}}),Ye=q(zt,[["__scopeId","data-v-2aaf2264"]]),Gt=e.defineComponent({name:"JtInput",__name:"index",props:{id:{},size:{},disabled:{type:Boolean},modelValue:{},modelModifiers:{},maxlength:{},minlength:{},type:{},resize:{},autosize:{type:[Object,Boolean]},autocomplete:{},formatter:{},parser:{},placeholder:{default:"请输入"},form:{},readonly:{type:Boolean},clearable:{type:Boolean,default:!0},clearIcon:{},showPassword:{type:Boolean},showWordLimit:{type:Boolean},wordLimitPosition:{},suffixIcon:{},prefixIcon:{},containerRole:{},tabindex:{},validateEvent:{type:Boolean},inputStyle:{type:[Boolean,null,String,Object,Array]},autofocus:{type:Boolean},rows:{},ariaLabel:{},inputmode:{},name:{},countGraphemes:{}},emits:{...le.inputEmits,enter:()=>!0},setup(o,{emit:t}){const n=o,a=t,l=e.computed(()=>Object.fromEntries(Object.keys(le.inputEmits).map(i=>[i,(...g)=>a(i,...g)])));return(i,g)=>{const f=z.ElInput;return e.openBlock(),e.createBlock(f,e.mergeProps({class:"jt-input"},n,e.toHandlers(l.value),{onKeyup:g[0]||(g[0]=e.withKeys(d=>a("enter"),["enter"]))}),null,16)}}}),Be=q(Gt,[["__scopeId","data-v-c4e9cb3f"]]),jt=e.defineComponent({name:"JtSelect",__name:"index",props:{options:{},ariaLabel:{},emptyValues:{},valueOnClear:{},name:{},id:{},modelValue:{},autocomplete:{},automaticDropdown:{type:Boolean},size:{},effect:{},disabled:{type:Boolean},clearable:{type:Boolean,default:!0},filterable:{type:Boolean,default:!0},allowCreate:{type:Boolean},loading:{type:Boolean},popperClass:{},popperStyle:{},popperOptions:{},remote:{type:Boolean},debounce:{},loadingText:{},noMatchText:{},noDataText:{},remoteMethod:{},filterMethod:{},multiple:{type:Boolean},multipleLimit:{},placeholder:{default:"请选择"},defaultFirstOption:{type:Boolean},reserveKeyword:{type:Boolean},valueKey:{},collapseTags:{type:Boolean},collapseTagsTooltip:{type:Boolean},tagTooltip:{},maxCollapseTags:{},teleported:{type:Boolean},persistent:{type:Boolean},clearIcon:{},fitInputWidth:{type:Boolean},suffixIcon:{},tagType:{},tagEffect:{},validateEvent:{type:Boolean},remoteShowSuffix:{type:Boolean},showArrow:{type:Boolean},offset:{},placement:{},fallbackPlacements:{},tabindex:{},appendTo:{},props:{}},emits:le.selectEmits,setup(o,{emit:t}){const n=o,a=e.computed(()=>{const{options:g,...f}=n;return f}),l=t,i=e.computed(()=>Object.fromEntries(Object.keys(le.selectEmits).map(g=>[g,(...f)=>l(g,...f)])));return(g,f)=>{const d=z.ElOption,b=z.ElSelect;return e.openBlock(),e.createBlock(b,e.mergeProps({class:"jt-select"},a.value,e.toHandlers(i.value)),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.options??[],_=>(e.openBlock(),e.createBlock(d,e.mergeProps({key:_.value,ref_for:!0},_),null,16))),128))]),_:1},16)}}}),Ze=q(jt,[["__scopeId","data-v-abce8e44"]]),Dt={class:"jt-form-items"},$e=4,xt=e.defineComponent({name:"JTFormItems",__name:"JtFormItems",props:{configs:{},formData:{},span:{}},setup(o){const t=o,n={input:Be,select:Ze,cascader:We,"date-picker":Ye},a={"remote-select":"select",date:"date-picker",daterange:"date-picker","date-range":"date-picker",dateRange:"date-picker"},l=new Set(["prop","label","itemType","span","options","rules","formItemProps","showSlot","show"]),i=Object.keys(n),g=e.computed(()=>t.configs.filter(S=>S.show!==!1)),f=S=>{const{itemType:E}=S;if(!E)return Be;if(typeof E!="string")return E;const u=a[E]??E;return i.includes(u)?n[u]:(console.error(`[JtFormItems] 不支持的 itemType: "${E}",支持的类型: ${i.join(", ")}`),Be)},d=S=>{const E=He(S,l);return S.itemType==="select"||S.itemType==="remote-select"||S.itemType==="cascader"?{...E,options:S.options}:y(S.itemType)?{...E,type:"daterange"}:E},b=S=>Je(S,l),_=S=>({rules:S.rules,...S.formItemProps}),c=(S,E)=>{t.formData[S]=E},p=S=>Math.min(Math.max(Math.trunc(S||1),1),4),v=e.computed(()=>{const E=g.value.reduce((u,k)=>u+p(t.span||k.span),0)%$e;return E===0?{gridColumn:`1 / span ${$e}`}:{gridColumn:`${E+1} / span ${$e-E}`}}),h=S=>({gridColumn:`span ${p(t.span||S.span)}`});function y(S){return S==="daterange"||S==="date-range"||S==="dateRange"}return(S,E)=>{const u=z.ElFormItem;return e.openBlock(),e.createElementBlock("div",Dt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,k=>(e.openBlock(),e.createBlock(u,e.mergeProps({key:k.prop,class:"jt-form-items__item",style:h(k),label:k.label,prop:k.prop,ref_for:!0},_(k)),{default:e.withCtx(()=>[k.showSlot?e.renderSlot(S.$slots,k.prop,{key:0},void 0,!0):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(f(k)),e.mergeProps({key:1,"model-value":S.formData[k.prop],ref_for:!0},d(k),e.toHandlers(b(k)),{"onUpdate:modelValue":$=>c(k.prop,$)}),null,16,["model-value","onUpdate:modelValue"]))]),_:2},1040,["style","label","prop"]))),128)),S.$slots.actions?(e.openBlock(),e.createBlock(u,{key:0,class:"jt-form-items__actions",style:e.normalizeStyle(v.value)},{default:e.withCtx(()=>[e.renderSlot(S.$slots,"actions",{},void 0,!0)]),_:3},8,["style"])):e.createCommentVNode("",!0)])}}}),Qe=q(xt,[["__scopeId","data-v-20df934b"]]);function Ot(){const o=e.ref(!1);function t(){o.value=!0}function n(){o.value=!1}return{searchDisabled:o,searchLoading:t,searchDone:n}}const At={class:"jt-filter-bar__btns"},qt=["src"],Kt=["src"],Ut=["src"],Jt=e.defineComponent({name:"JtFilterBar",__name:"JtFilterBar",props:{columns:{},option:{default:()=>({})},modelValue:{}},emits:["update:modelValue","search","reset"],setup(o,{expose:t,emit:n}){const a=new URL("data:image/svg+xml,%3csvg%20width='14'%20height='14'%20viewBox='0%200%2014%2014'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='-0.5'%20width='11'%20height='11'%20rx='5.5'%20transform='matrix(1%200%200%20-1%201%2012)'%20stroke='%23999999'/%3e%3cpath%20d='M10%208.16064L7%205.16064L4%208.16064'%20stroke='%23999999'/%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:ee&&ee.tagName.toUpperCase()==="SCRIPT"&&ee.src||new URL("index.cjs",document.baseURI).href).href,l=new URL("data:image/svg+xml,%3csvg%20width='14'%20height='14'%20viewBox='0%200%2014%2014'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2.375%207.00017C2.375%207.27631%202.59886%207.50017%202.875%207.50017C3.15114%207.50017%203.375%207.27631%203.375%207.00017H2.875H2.375ZM2.875%207.00017H3.375C3.375%204.46334%205.41801%202.41406%207.93713%202.41406V1.91406V1.41406C4.86127%201.41406%202.375%203.91551%202.375%207.00017H2.875ZM7.93713%201.91406V2.41406C10.4563%202.41406%2012.4993%204.46334%2012.4993%207.00017H12.9993H13.4993C13.4993%203.91551%2011.013%201.41406%207.93713%201.41406V1.91406ZM12.9993%207.00017H12.4993C12.4993%209.537%2010.4563%2011.5863%207.93713%2011.5863V12.0863V12.5863C11.013%2012.5863%2013.4993%2010.0848%2013.4993%207.00017H12.9993ZM7.93713%2012.0863V11.5863C6.68975%2011.5863%205.55663%2011.0806%204.72892%2010.2635L4.37765%2010.6193L4.02638%2010.9752C5.0317%2011.9676%206.41366%2012.5863%207.93713%2012.5863V12.0863Z'%20fill='%23999999'/%3e%3cpath%20d='M4.75131%206.0102L2.88631%207.88403L1%205.99414'%20stroke='%23999999'%20stroke-miterlimit='10'/%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:ee&&ee.tagName.toUpperCase()==="SCRIPT"&&ee.src||new URL("index.cjs",document.baseURI).href).href,i=new URL("data:image/svg+xml,%3csvg%20width='14'%20height='14'%20viewBox='0%200%2014%2014'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6.60938%2012.1099C9.64694%2012.1099%2012.1094%209.64743%2012.1094%206.60986C12.1094%203.5723%209.64694%201.10986%206.60938%201.10986C3.57181%201.10986%201.10938%203.5723%201.10938%206.60986C1.10938%209.64743%203.57181%2012.1099%206.60938%2012.1099Z'%20stroke='white'%20stroke-miterlimit='10'/%3e%3cpath%20d='M12.4993%2012.5002L10.2832%2010.3301'%20stroke='white'%20stroke-miterlimit='10'/%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:ee&&ee.tagName.toUpperCase()==="SCRIPT"&&ee.src||new URL("index.cjs",document.baseURI).href).href,g=o,f=n,d=e.ref(),b=e.useSlots(),_=e.ref({}),{searchDisabled:c,searchLoading:p,searchDone:v}=Ot(),h=e.computed(()=>g.option),y=e.ref(h.value.searchCollapsed??!1),S=e.computed(()=>g.columns.filter(B=>B.search===!0)),E=e.computed(()=>Math.max(1,h.value.searchSpan??4)),u=e.computed(()=>Math.max(1,h.value.searchCollapsedRows??1)),k=e.computed(()=>Math.max(1,E.value-1)),$=e.computed(()=>Math.max(1,k.value*u.value)),M=e.computed(()=>Ve(h.value.searchLabelWidth??84)),P=e.computed(()=>h.value.searchLabelPosition??"top"),I=e.computed(()=>Se(h.value.searchGutter,14)),N=e.computed(()=>Se(h.value.searchRowGap,14)),w=e.computed(()=>ke(h.value.searchPadding??"18px 4px 0")),F=e.computed(()=>h.value.searchCollapse===!1?!1:de(S.value)>$.value),U=e.computed(()=>{if(!F.value||!y.value)return S.value;let B=0;return S.value.filter(j=>{const x=re(j);return B+x>$.value?!1:(B+=x,!0)})}),Z=e.computed(()=>U.value.filter(B=>!!b[`${B.prop}-search`])),ye=e.computed(()=>U.value.map(B=>Ee(B)));e.watch(()=>h.value.searchCollapsed,B=>{typeof B=="boolean"&&(y.value=B)}),e.watch(()=>g.modelValue,B=>{_.value={...B}},{deep:!0,immediate:!0});function be(B,j){if(c.value)return;const x={..._.value,[B]:j};_.value=x,f("update:modelValue",x)}function Ee(B){const j=B.searchProps??{};return{...j,prop:B.prop,label:B.searchLabel??B.label,span:re(B),itemType:B.searchType??"input",showSlot:!!b[`${B.prop}-search`],options:j.options??B.searchOptions??B.dicData,placeholder:j.placeholder??B.searchPlaceholder,valueFormat:j.valueFormat??B.searchValueFormat,disabled:c.value||j.disabled===!0,formItemProps:{required:B.searchRequired,class:["jt-filter-bar__item",{"is-required":B.searchRequired}]},onEnter:(...x)=>{J(j.onEnter,...x),te()},"onUpdate:modelValue":x=>{J(j["onUpdate:modelValue"],x),be(B.prop,x)}}}function J(B,...j){if(Array.isArray(B)){B.forEach(x=>J(x,...j));return}typeof B=="function"&&B(...j)}function te(){c.value||f("search")}function ue(){c.value||f("reset")}function oe(){y.value=!y.value}function re(B){return Math.min(E.value,Math.max(1,B.searchSpan??1))}function de(B){return B.reduce((j,x)=>j+re(x),0)}function Ve(B){return typeof B=="number"?`${B}px`:B}function Se(B,j){return typeof B=="number"?B:j}function ke(B){return typeof B=="number"?`${B}px`:B}return t({formRef:d,searchDisabled:c,searchLoading:p,searchDone:v}),(B,j)=>{const x=z.ElForm;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["jt-filter-bar",`is-label-${P.value}`]),style:e.normalizeStyle({"--jt-filter-columns":E.value,"--jt-filter-label-width":M.value,"--jt-filter-column-gap":`${I.value}px`,"--jt-filter-row-gap":`${N.value}px`,"--jt-filter-padding":w.value})},[e.createVNode(x,{ref_key:"formRef",ref:d,class:"jt-filter-bar__form",model:_.value,"label-position":P.value,"label-width":M.value,disabled:e.unref(c),onSubmit:j[0]||(j[0]=e.withModifiers(()=>{},["prevent"]))},{default:e.withCtx(()=>[e.createVNode(e.unref(Qe),{configs:ye.value,"form-data":_.value},e.createSlots({actions:e.withCtx(()=>[e.createElementVNode("div",At,[e.renderSlot(B.$slots,"search-menu",{search:te,reset:ue,disabled:e.unref(c),collapsed:y.value,toggleCollapse:oe},()=>[F.value?(e.openBlock(),e.createBlock(e.unref(me),{key:0,class:"jt-filter-bar__btn-collapse",onClick:oe},{icon:e.withCtx(()=>[e.createElementVNode("img",{class:e.normalizeClass(["jt-filter-bar__icon-arrow",{"is-collapsed":y.value}]),src:e.unref(a),alt:""},null,10,qt)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(y.value?"展 开":"收 起"),1)]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(me),{class:"jt-filter-bar__btn-reset",disabled:e.unref(c),onClick:ue},{icon:e.withCtx(()=>[e.createElementVNode("img",{src:e.unref(l),alt:""},null,8,Kt)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(h.value.resetBtnText??"重 置"),1)]),_:1},8,["disabled"]),e.createVNode(e.unref(me),{class:"jt-filter-bar__btn-query",type:"primary",disabled:e.unref(c),onClick:te},{icon:e.withCtx(()=>[e.createElementVNode("img",{src:e.unref(i),alt:""},null,8,Ut)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(h.value.searchBtnText??"查 询"),1)]),_:1},8,["disabled"])],!0)])]),_:2},[e.renderList(Z.value,se=>({name:se.prop,fn:e.withCtx(()=>[e.renderSlot(B.$slots,`${se.prop}-search`,{value:_.value[se.prop],column:se,setValue:Ie=>be(se.prop,Ie),search:te,reset:ue,disabled:e.unref(c)},void 0,!0)])}))]),1032,["configs","form-data"])]),_:3},8,["model","label-position","label-width","disabled"])],6)}}}),Xe=q(Jt,[["__scopeId","data-v-ea82d792"]]),Ht={key:1},Wt={key:2},Yt={key:3},Zt=e.defineComponent({name:"JtTable",__name:"JtTable",props:{data:{},columns:{},option:{},tableEvents:{}},setup(o,{expose:t}){const n=o,a=e.useSlots(),l=e.ref(),i=e.computed(()=>n.option??{}),g=e.computed(()=>n.columns.filter(c=>!c.hide));function f(c){return!!a[`${c}-header`]}function d(c){return!!a[`${c}-data`]}function b(c){return{width:c.width,minWidth:c.minWidth,align:c.align,fixed:c.fixed,sortable:c.sortable,showOverflowTooltip:c.showOverflowTooltip,...c.columnOptions}}function _(c,p){return c.find(v=>v.value===p)?.label??String(p??"")}return t({tableRef:l}),(c,p)=>{const v=z.ElTableColumn,h=z.ElTable;return e.openBlock(),e.createBlock(h,e.mergeProps({ref_key:"tableRef",ref:l,data:c.data,"row-key":i.value.rowKey??"id",height:i.value.height,"max-height":i.value.maxHeight,"empty-text":i.value.emptyText,class:"jt-table"},i.value.tableProps,e.toHandlers(c.tableEvents)),{default:e.withCtx(()=>[i.value.selection?(e.openBlock(),e.createBlock(v,{key:0,type:"selection",width:"55",align:"center"})):e.createCommentVNode("",!0),i.value.index?(e.openBlock(),e.createBlock(v,{key:1,type:"index",label:i.value.indexLabel??"序号",width:"60",align:"center"},null,8,["label"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,y=>(e.openBlock(),e.createBlock(v,e.mergeProps({key:y.prop,prop:y.prop,label:y.label,formatter:!d(y.prop)&&!y.dicData?y.formatter:void 0,ref_for:!0},b(y)),e.createSlots({default:e.withCtx(S=>[d(y.prop)?e.renderSlot(c.$slots,`${y.prop}-data`,e.mergeProps({key:0,ref_for:!0},S),void 0,!0):y.dicData?(e.openBlock(),e.createElementBlock("span",Ht,e.toDisplayString(_(y.dicData,S.row[y.prop])),1)):y.formatter?(e.openBlock(),e.createElementBlock("span",Wt,e.toDisplayString(y.formatter(S.row,S.column,S.row[y.prop],S.$index)),1)):(e.openBlock(),e.createElementBlock("span",Yt,e.toDisplayString(S.row[y.prop]),1))]),_:2},[f(y.prop)?{name:"header",fn:e.withCtx(S=>[e.renderSlot(c.$slots,`${y.prop}-header`,e.mergeProps({ref_for:!0},S),void 0,!0)]),key:"0"}:void 0]),1040,["prop","label","formatter"]))),128)),i.value.menu?(e.openBlock(),e.createBlock(v,{key:2,label:i.value.menuLabel??"操作",width:i.value.menuWidth,"min-width":i.value.menuMinWidth,align:i.value.menuAlign??"center",fixed:i.value.menuFixed},{default:e.withCtx(y=>[e.renderSlot(c.$slots,"menu",e.normalizeProps(e.guardReactiveProps(y)),void 0,!0)]),_:3},8,["label","width","min-width","align","fixed"])):e.createCommentVNode("",!0)]),_:3},16,["data","row-key","height","max-height","empty-text"])}}}),et=q(Zt,[["__scopeId","data-v-4804a967"]]),Qt={class:"jt-pagination"},Xt={class:"jt-pagination__count"},eo=e.defineComponent({name:"JtPagination",__name:"JtPagination",props:{currentPage:{},pageSize:{},total:{},option:{}},emits:["update:currentPage","update:pageSize","current-change","page-change","size-change"],setup(o,{emit:t}){const n=o,a=e.computed(()=>n.option??{}),l=t;function i(g){l("current-change",g),l("page-change",g)}return(g,f)=>{const d=z.ElPagination;return e.openBlock(),e.createElementBlock("div",Qt,[e.createVNode(d,{"current-page":g.currentPage,"page-size":g.pageSize,"page-sizes":a.value.pageSizes??[10,20,50,100],total:g.total,layout:a.value.paginationLayout??"sizes, prev, pager, next, jumper","onUpdate:currentPage":f[0]||(f[0]=b=>g.$emit("update:currentPage",b)),"onUpdate:pageSize":f[1]||(f[1]=b=>g.$emit("update:pageSize",b)),onCurrentChange:i,onSizeChange:f[2]||(f[2]=b=>g.$emit("size-change",b))},null,8,["current-page","page-size","page-sizes","total","layout"]),e.createElementVNode("span",Xt,"共"+e.toDisplayString(g.total)+"条记录",1)])}}}),to=q(eo,[["__scopeId","data-v-19ef6db6"]]),oo={class:"jt-crud-table"},no={key:1,class:"jt-crud-table__toolbar"},ao=e.defineComponent({name:"JtCrudTable",__name:"JtCrudTable",props:e.mergeModels({columns:{},option:{default:()=>({})},data:{},total:{default:0},tableEvents:{}},{currentPage:{default:1},currentPageModifiers:{},pageSize:{default:20},pageSizeModifiers:{},searchModel:{default:()=>({})},searchModelModifiers:{}}),emits:e.mergeModels(["search","reset","page-change","size-change"],["update:currentPage","update:pageSize","update:searchModel"]),setup(o,{expose:t,emit:n}){const a=o,l=n,i=e.useModel(o,"currentPage"),g=e.useModel(o,"pageSize"),f=e.useModel(o,"searchModel"),d=e.useSlots(),b=e.ref(),_=e.ref(),c=e.computed(()=>a.option),p=e.computed(()=>c.value.searchShow!==!1),v=e.computed(()=>c.value.paginationShow!==!1),h=e.computed(()=>a.columns.filter(P=>P.search&&!!d[`${P.prop}-search`])),y=e.computed(()=>a.columns.filter(P=>!P.hide&&!!d[`${P.prop}-header`])),S=e.computed(()=>a.columns.filter(P=>!P.hide&&!!d[`${P.prop}-data`]));function E(){const P={};return a.columns.forEach(I=>{I.search&&(P[I.prop]=void 0)}),P}function u(){l("search",{...f.value})}function k(){f.value=E(),l("reset")}function $(){_.value?.searchLoading()}function M(){_.value?.searchDone()}return t({tableRef:e.computed(()=>b.value?.tableRef),filterBarRef:_,searchLoading:$,searchDone:M}),(P,I)=>{const N=e.resolveDirective("loading");return e.openBlock(),e.createElementBlock("div",oo,[e.renderSlot(P.$slots,"header",{},void 0,!0),p.value?(e.openBlock(),e.createBlock(Xe,{key:0,ref_key:"filterBarRef",ref:_,modelValue:f.value,"onUpdate:modelValue":I[0]||(I[0]=w=>f.value=w),columns:P.columns,option:c.value,onSearch:u,onReset:k},e.createSlots({_:2},[e.renderList(h.value,w=>({name:`${w.prop}-search`,fn:e.withCtx(F=>[e.renderSlot(P.$slots,`${w.prop}-search`,e.normalizeProps(e.guardReactiveProps(F)),void 0,!0)])}))]),1032,["modelValue","columns","option"])):e.createCommentVNode("",!0),e.unref(d).toolbar?(e.openBlock(),e.createElementBlock("div",no,[e.renderSlot(P.$slots,"toolbar",{},void 0,!0)])):e.createCommentVNode("",!0),e.withDirectives((e.openBlock(),e.createBlock(et,{ref_key:"jtTableRef",ref:b,data:P.data,columns:P.columns,option:c.value,"table-events":P.tableEvents},e.createSlots({_:2},[e.renderList(y.value,w=>({name:`${w.prop}-header`,fn:e.withCtx(F=>[e.renderSlot(P.$slots,`${w.prop}-header`,e.normalizeProps(e.guardReactiveProps(F)),void 0,!0)])})),e.renderList(S.value,w=>({name:`${w.prop}-data`,fn:e.withCtx(F=>[e.renderSlot(P.$slots,`${w.prop}-data`,e.normalizeProps(e.guardReactiveProps(F)),void 0,!0)])})),c.value.menu?{name:"menu",fn:e.withCtx(w=>[e.renderSlot(P.$slots,"menu",e.normalizeProps(e.guardReactiveProps(w)),void 0,!0)]),key:"0"}:void 0]),1032,["data","columns","option","table-events"])),[[N,c.value.loading]]),v.value?(e.openBlock(),e.createBlock(to,{key:2,"current-page":i.value,"onUpdate:currentPage":I[1]||(I[1]=w=>i.value=w),"page-size":g.value,"onUpdate:pageSize":I[2]||(I[2]=w=>g.value=w),total:P.total,option:c.value,onPageChange:I[3]||(I[3]=w=>P.$emit("page-change",w)),onSizeChange:I[4]||(I[4]=w=>P.$emit("size-change",w))},null,8,["current-page","page-size","total","option"])):e.createCommentVNode("",!0)])}}}),lo=q(ao,[["__scopeId","data-v-6df082c6"]]),ro={class:"jt-pagination"},so={key:0,class:"jt-pagination__count"},io=e.defineComponent({name:"JtPagination",inheritAttrs:!1,__name:"index",props:e.mergeModels({defaultPageSize:{},total:{default:0},pageCount:{},pagerCount:{},defaultCurrentPage:{},layout:{default:"prev, pager, next, jumper"},pageSizes:{default:()=>[10,20,50,100]},popperClass:{},popperStyle:{},prevText:{},prevIcon:{},nextText:{},nextIcon:{},teleported:{type:Boolean},small:{type:Boolean},size:{},background:{type:Boolean},disabled:{type:Boolean},hideOnSinglePage:{type:Boolean,default:!1},appendSizeTo:{}},{currentPage:{default:1},currentPageModifiers:{},pageSize:{default:20},pageSizeModifiers:{}}),emits:e.mergeModels(le.paginationEmits,["update:currentPage","update:pageSize"]),setup(o,{emit:t}){const n=e.useModel(o,"currentPage"),a=e.useModel(o,"pageSize"),l=o,i=e.useAttrs(),g=t,f=e.computed(()=>({...i,...l})),d=e.computed(()=>Object.fromEntries(Object.keys(le.paginationEmits).filter(_=>!_.startsWith("update:")).map(_=>[_,(...c)=>g(_,...c)]))),b=e.computed(()=>!(l.hideOnSinglePage&&l.total<=a.value));return(_,c)=>{const p=z.ElPagination;return e.openBlock(),e.createElementBlock("div",ro,[e.createVNode(p,e.mergeProps({"current-page":n.value,"onUpdate:currentPage":c[0]||(c[0]=v=>n.value=v),"page-size":a.value,"onUpdate:pageSize":c[1]||(c[1]=v=>a.value=v)},f.value,e.toHandlers(d.value)),null,16,["current-page","page-size"]),b.value?(e.openBlock(),e.createElementBlock("span",so,"共"+e.toDisplayString(_.total)+"条记录",1)):e.createCommentVNode("",!0)])}}}),co=q(io,[["__scopeId","data-v-72da666d"]]),uo={class:"jt-page-header__title"},po={key:0},fo={key:0,class:"jt-page-header__operates"},mo=e.defineComponent({name:"JtPageHeader",__name:"index",props:{type:{default:"section"},title:{},operates:{default:()=>[]}},emits:["operate-click"],setup(o,{emit:t}){const n=o,a=t,l=e.useSlots(),i=e.computed(()=>n.operates.length>0||!!l.operates);function g(f,d){f.onClick?.(f,d),a("operate-click",f,d)}return(f,d)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({class:["jt-page-header",`jt-page-header--${f.type}`]},f.$attrs),[e.createElementVNode("div",uo,[e.renderSlot(f.$slots,"title",{},()=>[f.title?(e.openBlock(),e.createElementBlock("span",po,e.toDisplayString(f.title),1)):e.createCommentVNode("",!0)],!0)]),i.value?(e.openBlock(),e.createElementBlock("div",fo,[e.renderSlot(f.$slots,"operates",{operates:f.operates},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.operates,b=>(e.openBlock(),e.createBlock(e.unref(me),e.mergeProps({key:b.key??b.label,ref_for:!0},b.buttonProps,{type:b.type,disabled:b.disabled,loading:b.loading,plain:b.plain,text:b.text,link:b.link,icon:b.icon,onClick:_=>g(b,_)}),{default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(b.label),1)]),_:2},1040,["type","disabled","loading","plain","text","link","icon","onClick"]))),128))],!0)])):e.createCommentVNode("",!0)],16))}}),vo=q(mo,[["__scopeId","data-v-2f59fb4a"]]);function tt(o=null){return{scheme:null,node:null,topNodes:[],treeNodes:[],activeNode:null,activeSection:null,sections:[],sectionMap:{},raw:o}}function Ne(o){const t=ct(o),n=it(t),a=_o(t).flatMap(l=>st(l,n));return{...tt(o),scheme:n,topNodes:a,treeNodes:a}}function Re(o,t,n){return o.map(a=>a.key===t||a.tagId===t||a.id===t?{...a,children:n,loaded:!0}:{...a,children:Re(a.children,t,n)})}function ot(o,t={},n=null){const a=ct(o),l=it(a,t),i=ho(a,t,n),g=Object.fromEntries(i.map(f=>[f.key,f]));return{scheme:l,node:n,topNodes:[],treeNodes:[],activeNode:n,activeSection:i[0]??null,sections:i,sectionMap:g,raw:o}}function nt(o){return o.multRow||o.htmlDisplay==="T"?"table":"form"}function at(o,t={}){return{...t,infSchmId:t.infSchmId??D(o.raw.infSchmId),emplid:t.emplid??D(o.raw.emplid),tagId:t.tagId??o.requestTagId??o.tagId,infSetId:t.infSetId??o.infSetId,setId:t.setId??o.setId,infSetFields:o.renderType==="table"?o.rows.map(Te):[Te(o.model)],section:o}}function go(o){const t=o;return!!(t&&typeof t=="object"&&typeof t.key=="string"&&typeof t.tagId=="string")}function lt(o){const t=ut(o);return(Array.isArray(t)?t:ge(A(t),["options","list","records","data"])).map(a=>{const l=A(a);return{id:l.id,code:l.code,label:T(l.label??l.name??l.descr??l.text??l.value??l.code),name:D(l.name),value:l.value??l.code??l.id??l.label??l.name,raw:a}})}function ho(o,t,n){const a=ge(o,["sections","sets","list"]);return a.length>0?a.map(l=>je(l,t,n,a.length===1)):o.infSetMark||o.infSetFields||o.fields?[je(o,t,n,!0)]:[]}function je(o,t,n,a){const l=A(o),i=yo(l.infSetMark??l),g=bo(l.infSetFields??l.fields??[]),f=ko(l.infSetValues??l.rows??l.data,g),d=f[0]?Te(f[0]):rt(g),b=A(l.tag),_=T(l.tagId??l.infTagId??b.tagId),c=T(t.tagId??n?.tagId),p=T(n?.key),v=a?t.infSetId??n?.infSetId:void 0,h=a?t.setId:void 0,y=a?n?.code:void 0,S=i.setId||T(l.setId),E=T(l.infSetId)||S||T(v),u=S||T(h??E),k=i.code||T(l.code??y??u),$=u||k||E||_,M={key:$,id:$,setId:u,code:k,tagId:_,requestTagId:c||void 0,ownerNodeKey:p||void 0,infSetId:E,title:i.name||T(l.name??n?.tagName??$),renderType:nt(i),mark:i,fields:g,model:d,rows:f,operationInfo:Ce(t.operationInfo??l.operationInfo),raw:l};return M.renderType==="form"&&f.length===0&&(M.rows=[{...d,__rowKey:`${$}-0`}]),M}function yo(o){const t=A(o),n=T(t.htmlDisplay||"F");return{name:T(t.name??t.title),parentName:D(t.parentName),value:D(t.value),type:D(t.type),code:T(t.code),setId:T(t.setId??t.id??t.key),htmlDisplay:n,multRow:Y(t.multRow),isRequired:Y(t.isRequired),raw:t}}function bo(o){return(Array.isArray(o)?o:[]).map((n,a)=>So(n,a))}function So(o,t){const n=A(o),a=T(n.code??n.fieldCode??n.prop??n.key??`field_${t}`),l=T(n.label??n.name??n.tagName??a);return{id:T(n.id??n.key??n.prop??a),key:T(n.key??n.prop??a),code:a,label:l,value:n.value??n.defaultValue??"",type:Eo(n),fieldType:D(n.fieldType),renderType:Co(n),required:Y(n.required??n.isRequired),readonly:Y(n.readonly??n.disabled),visible:n.visible===void 0?Y(n.visibled??!0):Y(n.visible),htmlDisplay:Y(n.htmlDisplay),multRow:Y(n.multRow),isRequired:Y(n.isRequired),disabled:n.disabled===void 0?void 0:Y(n.disabled),span:ft(n.span??n.colSpan),width:xe(n.width),minWidth:xe(n.minWidth),placeholder:D(n.placeholder),options:lt(n.options),interface:dt(n.interface),cascadeClearFields:De(n.cascadeClearFields),cascadeDependFields:De(n.cascadeDependFields),props:Fe(n.props),formItemProps:Fe(n.formItemProps),raw:n}}function ko(o,t){if(Array.isArray(o)&&o.some(l=>{const i=A(l);return t.some(g=>i[g.code]!==void 0||i[g.key]!==void 0)}))return o.map((l,i)=>({...A(l),__rowKey:T(A(l).__rowKey??A(l).key??i)}));const n=rt(t);return Object.keys(n).length?[{...n,__rowKey:"0"}]:[]}function rt(o){return o.reduce((t,n)=>(t[n.code||n.key]=n.value,t),{})}function st(o,t,n=""){const a=A(o),l=ge(a,["children","list","tags"]).flatMap(g=>st(g,t,T(a.tagId??a.id??a.key))),i=Bo(a.infSetList);return l.length===0&&i.length>0?i.map((g,f)=>wo(a,g,t,n,f)):[Io(a,t,n,l)]}function Io(o,t,n,a){const l=T(o.tagId??o.id??o.key),i=T(o.tagName??o.name??o.label??l);return{key:T(o.key??l),id:l,tagId:l,tagName:i,label:i,tagLevel:D(o.tagLevel??o.level)??null,level:pt(o.tagLevel??o.level),parentTagId:D(o.parentTagId??o.parentId??n),parentId:D(o.parentTagId??o.parentId??n)??null,infSchmId:D(o.infSchmId??t?.infSchmId),schemeId:T(o.infSchmId??t?.infSchmId),infSetId:D(o.infSetId??o.setId),setId:D(o.setId),code:D(o.code),children:a,infSetList:[],operationInfo:Ce(o.operationInfo),loaded:a.length>0,raw:o}}function wo(o,t,n,a,l){const i=T(o.tagId??o.id??o.key),g=T(o.tagName??o.name??o.label??i),f=t.infSetId||T(t.setId),d=t.setId||f,b=f||`${i}-${l}`;return{key:b,id:b,tagId:i,tagName:g,label:g,tagLevel:D(o.tagLevel??o.level)??null,level:pt(o.tagLevel??o.level),parentTagId:D(o.parentTagId??o.parentId??a),parentId:D(o.parentTagId??o.parentId??a)??null,infSchmId:D(o.infSchmId??n?.infSchmId),schemeId:T(o.infSchmId??n?.infSchmId),infSetId:f,setId:d,code:D(o.code??f),children:[],infSetList:[t],operationInfo:Ce(o.operationInfo),loaded:!0,raw:{...o,infSetId:f,setId:d,infSetList:[t.raw]}}}function it(o,t={}){const n=A(o.globalInfoSchmMark??o.scheme??o),a=T(n.infSchmId??t.infSchmId),l=T(n.emplid??t.emplid);return!a&&!l&&Object.keys(n).length===0?null:{infSchmId:a,emplid:l,id:a,mark:T(n.globalInfoSchmMark??o.globalInfoSchmMark),config:Array.isArray(o.globalInfoSchmConfig)?"":T(n.globalInfoSchmConfig??o.globalInfoSchmConfig),raw:n}}function _o(o){if(Array.isArray(o.globalInfoSchmConfig))return o.globalInfoSchmConfig;const t=A(o.globalInfoSchmConfig),n=ge(t,["children","tree","list","tags"]);return n.length?n:ge(o,["children","tree","list","tags","records"])}function Bo(o){return Array.isArray(o)?o.map(t=>{const n=A(t);return{infSetId:T(n.infSetId??n.setId??n.id),setId:D(n.setId),operationInfo:Ce(n.operationInfo),raw:n}}):[]}function ct(o){return A(ut(o))}function ut(o){const t=A(o);return t.data??t.result??o}function ge(o,t){for(const n of t){const a=o[n];if(Array.isArray(a))return a}return[]}function Te(o){const t={...o};return delete t.__rowKey,delete t.fields,t}function dt(o){const t=A(o);if(!(!t.method&&!t.url&&!t.params))return{...t,method:D(t.method),url:D(t.url),params:Fe(t.params)}}function Ce(o){const t=A(o);if(Object.keys(t).length!==0)return Object.fromEntries(Object.entries(t).map(([n,a])=>[n,dt(a)??a]))}function De(o){if(!Array.isArray(o))return;const t=o.map(n=>T(n)).filter(Boolean);return t.length?t:void 0}function Co(o){if(Y(o.htmlDisplay))return"html";if(Y(o.multRow))return"multi-row";const t=T(o.renderType).toLowerCase();return t==="code"||t==="empty"?t:"text"}function Eo(o){const t=T(o.fieldType??o.type??o.renderType).toLowerCase();return t.includes("date")?"date":t.includes("select")||t.includes("enum")?"select":t.includes("number")||t.includes("int")?"number":t.includes("bool")||t.includes("switch")?"switch":t.includes("file")||t.includes("upload")||t.includes("attachment")?"file":t.includes("textarea")||t.includes("text_area")?"textarea":"text"}function Fe(o){const t=A(o);return Object.keys(t).length?t:void 0}function xe(o){return typeof o=="string"||typeof o=="number"?o:void 0}function A(o){return o&&typeof o=="object"&&!Array.isArray(o)?o:{}}function T(o){return o==null?"":String(o).trim()}function D(o){return T(o)||void 0}function pt(o){const t=ft(o);return t===void 0?null:t}function ft(o){if(o==null||o==="")return;const t=Number(o);return Number.isFinite(t)?t:void 0}function Y(o){return typeof o=="string"?["true","1","y","yes","t","是"].includes(o.toLowerCase()):!!o}const ae=o=>o.key||o.code,W=o=>o.key||o.setId,ie=o=>new Error(`[GlobalInfo] ${o}`),ce=o=>o&&typeof o=="object"&&!Array.isArray(o)?o:{},_e=o=>{const t=ce(o);return!!(t.url||t.method||t.params)},Vo=o=>String(o??"").trim(),he=o=>Array.from(new Set(o.map(Vo).filter(Boolean))),ve=o=>he([o?.key,o?.id,o?.setId,o?.infSetId,o?.tagId,o?.code,...(o?.infSetList??[]).map(t=>t.infSetId),...(o?.infSetList??[]).map(t=>t.setId)]),$o=o=>he([o.key,o.id,o.setId,o.infSetId,o.tagId,o.code]),pe=(o={})=>({loading:!1,saving:!1,error:null,loaded:!1,editing:!1,...o}),fe=o=>!!(o&&typeof o=="object"&&"children"in o),mt=(o,t,n)=>{const a=$o(o),l=he([n,...ve(t)]);return l.length===0?!1:l.some(i=>a.includes(i))},Po=(o,t,n)=>he([n,...ve(t)]).length===0?o:o.filter(l=>mt(l,t,n)),vt=o=>{const t=e.ref(!1),n=e.ref(!1),a=e.ref(!1),l=e.shallowRef(null),i=e.shallowRef([]),g=e.shallowRef(null),f=e.shallowRef(null),d=e.shallowRef(null),b=e.shallowRef({}),_=e.shallowRef({}),c=e.ref([]),p=e.shallowRef({}),v=e.ref([]),h=e.computed(()=>{const s=c.value.map(m=>b.value[m]).filter(m=>!!m),r=Object.entries(b.value).filter(([m])=>!c.value.includes(m)).map(([,m])=>m);return[...s,...r]}),y=e.computed(()=>({loading:t.value,detailLoading:n.value,saving:a.value,editingSectionKeys:v.value,sectionMap:b.value,sectionStatusMap:Object.fromEntries(Object.entries(p.value).map(([s,r])=>[s,{...r,editing:v.value.includes(_.value[s]??s)}])),error:l.value})),S=()=>({adaptScene:o.adaptScene,emplid:o.emplid}),E=s=>({...S(),infSchmId:s.infSchmId,tagId:s.tagId,tagLevel:s.tagLevel,parentTagId:s.parentTagId}),u=(s=f.value,r=d.value)=>({...S(),infSchmId:s?.infSchmId,tagId:s?.tagId,infSetId:r?.infSetId??s?.infSetId,setId:r?.setId??s?.setId}),k=async(s,r)=>{if(!o.service.requestOperation)throw ie("service.requestOperation is required for operationInfo");return o.service.requestOperation(s,r)},$=(s,r={},m)=>{const C=ce(s.params),V=m?.cascadeDependFields??[];let L=0;return Object.fromEntries(Object.entries(C).map(([R,G])=>{if(G!=="")return[R,G];if(r[R]!==void 0)return[R,r[R]];const O=V[L];return L+=1,[R,O?r[O]??"":G]}))},M=s=>{const m=ce(s.operationInfo).openTag;return _e(m)?m:void 0},P=(s,r,m)=>{const C=ce(s?.operationInfo).queryInfoSet;if(_e(C))return C;const V=r?.infSetList.find(R=>R.infSetId===m),L=ce(V?.operationInfo).queryInfoSet;return _e(L)?L:void 0},I=s=>{const r=ce(s.operationInfo).editInfoSet;return _e(r)?r:void 0},N=(s,r)=>{if(!r)return s[0]??null;for(const m of s){if(ve(m).includes(r))return m;const C=N(m.children,r);if(C)return C}return null},w=(s=d.value)=>{if(s)return typeof s=="string"?s:fe(s)?Z(s):W(s)},F=(s=d.value)=>{const r=w(s);if(!r)return null;const m=_.value[r]??r;return b.value[m]??null},U=(s=d.value)=>{const r=w(s);if(r)return _.value[r]??r},Z=(s=d.value)=>{if(s)return typeof s=="string"?s:fe(s)?s.setId??s.infSetId??s.key:W(s)},ye=(s=d.value)=>{if(fe(s))return s;if(typeof s=="string"){const r=N(i.value,s);if(r)return r;const m=F(s);return m?.ownerNodeKey?N(i.value,m.ownerNodeKey)??f.value:m||f.value&&ve(f.value).includes(s)?f.value:null}return s?.ownerNodeKey?N(i.value,s.ownerNodeKey)??f.value:f.value},be=(s=d.value)=>!s||fe(s)?null:F(s),Ee=(s=d.value)=>{const r=Z(s);if(!r)return pe();const m=_.value[r]??r;return pe({...p.value[r],...p.value[m],editing:v.value.includes(m)})},J=(s,r)=>{const m=Z(s);m&&(p.value={...p.value,[m]:pe({...p.value[m],...r,editing:v.value.includes(m)})})},te=(s=g.value?.raw??null,r=f.value)=>{const m=h.value,C=d.value&&m.find(V=>W(V)===W(d.value))?d.value:null;g.value={scheme:g.value?.scheme??null,node:r,topNodes:i.value,treeNodes:i.value,activeNode:r,activeSection:C,sections:m,sectionMap:b.value,raw:s},d.value=C},ue=(s,r=f.value,m)=>{const C={...b.value},V={..._.value},L=[...c.value],R={...p.value},G=Po(s.sections,r,m),O=he([m,...ve(r)]).length>0,K=G.find(ne=>mt(ne,r,m))??(O?null:s.activeSection??G[0]??d.value??null);return G.forEach(ne=>{const X=W(ne);C[X]=ne,L.includes(X)||L.push(X),R[X]=pe({...R[X],loaded:!0,loading:!1,error:null,editing:v.value.includes(X)})}),m&&K?V[m]=W(K):m&&(V[m]=""),m&&(R[m]=pe({...R[m],loaded:!0,loading:!1,error:null,editing:!!(K&&v.value.includes(W(K)))})),b.value=C,_.value=V,c.value=L,p.value=R,g.value={...s,scheme:s.scheme??g.value?.scheme??null,topNodes:i.value,treeNodes:i.value,activeNode:r,activeSection:K,sections:G,sectionMap:b.value},d.value=K,K},oe=(s,r)=>{const m=U(s),C=m?b.value[m]:null;if(!m||!C)return;const V=r(C);b.value={...b.value,[m]:V},d.value=W(d.value??V)===m?V:d.value,te()},re=async(s=d.value??f.value)=>{const r=be(s),m=ye(s)??f.value,C=Z(s);if(!m)return null;if(!o.service.requestOperation)throw ie("service.requestOperation is required");n.value=!0,l.value=null,J(C??m,{loading:!0,error:null});try{const V=r?[{infSetId:r.infSetId,setId:r.setId,operationInfo:r.operationInfo,raw:r.raw}]:m.infSetList;if(V.length===0)throw ie("node.infSetList is required");const L=await Promise.all(V.map(async G=>{const O=P(r,m,G.infSetId),K={...u(m,r),infSetId:G.infSetId,setId:G.setId,operationInfo:G.operationInfo};if(O){const ne=await k(O,{type:"queryInfoSet",node:m,section:r,params:K});return ot(ne,K,m)}throw ie("infoSet.operationInfo.queryInfoSet is required")})),R={...L[0],sections:L.flatMap(G=>G.sections),sectionMap:Object.fromEntries(L.flatMap(G=>G.sections).map(G=>[G.key,G]))};return ue(R,m,C)}catch(V){throw l.value=V,J(C??m,{loading:!1,error:V}),V}finally{n.value=!1,J(C??m,{loading:!1})}},de=(s=d.value)=>re(s),Ve=(s=d.value)=>{if(!s)return null;if(!fe(s)&&typeof s!="string")return F(s);const r=Z(s);return r?b.value[_.value[r]??r]??null:null},Se=async(s=f.value)=>s?(await re(s),g.value):(g.value=null,d.value=null,b.value={},_.value={},c.value=[],p.value={},null),ke=async s=>{const r=M(s);if(!r)return s.children;const m=E(s),C=await k(r,{type:"openTag",node:s,params:m});return Ne(C).treeNodes},B=async s=>{if(s.loaded)return s.children;const r=await ke(s);return r.length>0&&(i.value=Re(i.value,s.key,r)),r},j=async s=>{const r=typeof s=="string"?N(i.value,s):s;return r?(f.value=r,d.value=null,v.value=[],await B(r),te(g.value?.raw,r),r):null},x=async()=>{const s=o.service.templateTree;if(!s)throw ie("service.templateTree is required");t.value=!0,l.value=null;try{const r=await s(S()),m=Ne(r),C=await Promise.all(m.treeNodes.map(async L=>{const R=await ke(L);return{...L,children:R,loaded:R.length>0||L.loaded}}));i.value=C,d.value=null,b.value={},_.value={},c.value=[],p.value={},v.value=[];const V=N(C,o.initialActiveNodeKey)??N(C);return f.value=V,g.value={...m,treeNodes:C,activeNode:V,sectionMap:b.value,sections:h.value},i.value}catch(r){throw l.value=r,r}finally{t.value=!1}},se=async()=>{const s=w();await de(d.value??f.value);const r=h.value.find(m=>W(m)===s);return r&&(d.value=r),te(),g.value},Ie=(s=d.value)=>{const r=U(s);return!!(r&&v.value.includes(r))},Et=(s=d.value)=>{const r=U(s);!r||Ie(r)||(v.value=[...v.value,r],J(r,{editing:!0}))},Ge=(s=d.value)=>{const r=U(s);r&&(v.value=v.value.filter(m=>m!==r),J(r,{editing:!1}))},Vt=(s,r,m)=>{const C=typeof r=="string"?r:ae(r);oe(s,V=>{const R=(typeof r=="string"?V.fields.find(O=>ae(O)===C||O.code===C):r)?.cascadeClearFields??[],G={...V.model,[C]:m};return R.forEach(O=>{G[O]=""}),{...V,model:G,rows:V.renderType==="form"?[{...V.rows[0],...G}]:V.rows,fields:V.fields.map(O=>{const K=ae(O);return K===C||O.code===C?{...O,value:m}:R.includes(K)||R.includes(O.code)?{...O,value:""}:O})}})},$t=async(s,r,m={})=>{const C=F(s);if(!C)return[];const V=Object.keys(m).length>0?m:C.model,L=typeof r=="string"?r:ae(r),R=typeof r=="string"?C.fields.find(Q=>ae(Q)===L||Q.code===L):r,G=R?.interface;if(!R||!G)return R?.options??[];if((R.cascadeDependFields??[]).some(Q=>{const H=V[Q];return H==null||H===""}))return oe(C,Q=>({...Q,fields:Q.fields.map(H=>ae(H)===L||H.code===L?{...H,options:[]}:H)})),[];const K=$(G,V,R),ne=await k({...G,params:K},{type:"fieldOptions",node:ye(C),section:C,field:R,params:K}),X=lt(ne);return oe(C,Q=>({...Q,fields:Q.fields.map(H=>ae(H)===L||H.code===L?{...H,options:X}:H)})),X},Pt=(s,r)=>{if(Array.isArray(r)){we(s,r);return}oe(s,m=>({...m,model:r,rows:m.renderType==="form"?[{...m.rows[0],...r}]:m.rows,fields:m.fields.map(C=>({...C,value:r[ae(C)]}))}))},we=(s,r)=>{oe(s,m=>({...m,rows:r,data:r}))},Nt={loadTree:x,selectNode:j,loadDetail:Se,reloadActiveSection:se,loadSection:re,reloadSection:de,getSection:Ve,getSectionStatus:Ee,startEdit:Et,cancelEdit:Ge,updateField:Vt,loadFieldOptions:$t,updateModel:Pt,updateTableRows:we,saveRow:(s,r={},m=-1)=>{const V=[...F(s)?.rows??[]];V.splice(m>=0?m:V.length,m>=0?1:0,r),we(s,V)},deleteRow:(s,r)=>{const m=F(s),C=typeof r=="string"?Number(r):r,V=(m?.rows??[]).filter((L,R)=>R!==C);we(s,V)},saveSection:async(s=d.value)=>{const r=w(s),m=F(s);if(!m)return null;const C=I(m);if(!C)throw ie("section.operationInfo.editInfoSet is required");a.value=!0,l.value=null,r&&r!==W(m)&&J(r,{saving:!0,error:null}),J(m,{saving:!0,error:null});try{const V=u(f.value,m),L=at(m,V),R=await k({...C,params:{...$(C,m.model),...L}},{type:"editInfoSet",node:f.value,section:m,params:L});return Ge(m),await de(m),R}catch(V){throw l.value=V,r&&r!==W(m)&&J(r,{saving:!1,error:V}),J(m,{saving:!1,error:V}),V}finally{a.value=!1,r&&r!==W(m)&&J(r,{saving:!1}),J(m,{saving:!1})}},isEditing:Ie};return e.watch(()=>o.emplid,()=>{(o.autoLoad??!0)&&x()}),e.onMounted(()=>{(o.autoLoad??!0)&&x()}),{viewModel:g,nodes:i,sections:h,sectionMap:b,sectionStatusMap:p,activeNode:f,activeSection:d,state:y,actions:Nt}},No=e.defineComponent({name:"GlobalInfoProvider",__name:"GlobalInfoProvider",props:{service:{},adaptScene:{},emplid:{},autoLoad:{type:Boolean,default:!0},initialActiveNodeKey:{}},setup(o){const n=vt(o),{viewModel:a,nodes:l,sections:i,activeNode:g,activeSection:f,state:d,actions:b}=n;return(_,c)=>e.renderSlot(_.$slots,"default",e.normalizeProps(e.guardReactiveProps({viewModel:e.unref(a),nodes:e.unref(l),sections:e.unref(i),activeNode:e.unref(g),activeSection:e.unref(f),state:e.unref(d),actions:e.unref(b)})))}});function To(o){return Oe(o.type||o.fieldType)||Oe(o.renderType)||"text"}function gt(o){return Ae(o.type||o.fieldType)||Ae(o.renderType)||"text"}function Me(o){return o==null||o===""||Array.isArray(o)&&o.length===0}function ht(o){if(o instanceof Error)return!0;if(!o||typeof o!="object")return!1;const t=o;return typeof t.message=="string"&&(typeof t.stack=="string"||t.name==="Error")}function yt(o,t,n="-"){const a=gt(o);return a==="empty"||Me(t)?n:ht(t)?(console.error("[globalInfo] field value render failed",t),n):a==="select"?Fo(o,t,n):a==="switch"?bt(t)?"是":"否":a==="file"?Ro(t,n):a==="multi-row"?Mo(t):String(t)}function bt(o){if(typeof o=="boolean")return o;if(typeof o=="number")return o!==0;const t=String(o??"").trim().toLowerCase();return["true","1","y","yes","t","是"].includes(t)}function Oe(o){const t=String(o??"").toLowerCase();return t==="upload"||t==="attachment"?"file":t==="text"||t==="textarea"||t==="select"||t==="date"||t==="number"||t==="switch"||t==="file"||t==="html"||t==="code"||t==="multi-row"||t==="empty"?t:""}function Ae(o){const t=String(o??"").toLowerCase();return t==="upload"||t==="attachment"?"file":t==="select"||t==="switch"||t==="file"||t==="html"||t==="code"||t==="multi-row"||t==="empty"?t:t==="textarea"||t==="date"||t==="number"||t==="text"?"text":""}function Fo(o,t,n){if(Array.isArray(t)){const a=t.map(l=>qe(o,l)||String(l??"").trim()).filter(Boolean);return a.length>0?a.join("、"):n}return qe(o,t)||String(t)}function qe(o,t){return o.options?.find(a=>a.value===t||String(a.value)===String(t))?.label??""}function Ro(o,t){if(Array.isArray(o)){const n=o.map(a=>Ke(a)).filter(Boolean);return n.length>0?n.join("、"):t}return Ke(o)||t}function Ke(o){if(typeof File<"u"&&o instanceof File)return o.name;if(o&&typeof o=="object"){const t=o;return String(t.name??t.fileName??t.filename??t.url??"").trim()}return String(o??"").trim()}function Mo(o){return Array.isArray(o)?o.map(t=>ht(t)?(console.error("[globalInfo] multi-row field item render failed",t),""):t&&typeof t=="object"?JSON.stringify(t):String(t)).filter(Boolean).join(`
2
- `):String(o)}const Lo=["disabled","accept","multiple"],zo={key:0,class:"global-info-field-control__file-text"},Go={key:1,class:"global-info-field-control__file-upload"},jo=e.defineComponent({name:"GlobalInfoFieldControl",__name:"GlobalInfoFieldControl",props:{field:{},modelValue:{},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change","loadOptions"],setup(o,{emit:t}){const n=o,a=t,l=["textarea","html","code","multi-row"],i=e.computed(()=>To(n.field)),g=e.computed(()=>n.disabled||n.field.disabled||n.field.readonly),f=e.computed(()=>n.modelValue===void 0||n.modelValue===null?"":String(n.modelValue)),d=e.computed(()=>{if(n.modelValue===void 0||n.modelValue===null||n.modelValue==="")return;const u=typeof n.modelValue=="number"?n.modelValue:Number(n.modelValue);return Number.isFinite(u)?u:void 0}),b=e.computed(()=>{const u=n.field.props?.activeValue??n.field.props?.["active-value"],k=n.field.props?.inactiveValue??n.field.props?.["inactive-value"];return u!==void 0||k!==void 0?n.modelValue??k??!1:bt(n.modelValue)}),_=e.computed(()=>i.value==="code"?5:3),c=e.computed(()=>i.value==="file"&&!Me(n.modelValue)),p=e.computed(()=>yt(n.field,n.modelValue,"请选择文件")),v=e.computed(()=>n.field.placeholder?n.field.placeholder:i.value==="select"?"请选择":i.value==="date"?"请选择日期":i.value==="file"?"请选择文件":"请输入");function h(u){a("update:modelValue",u)}function y(u){a("change",u)}function S(u){u&&a("loadOptions")}function E(u){const k=u.target,$=Array.from(k.files??[]),M=n.field.props?.multiple?$:$[0]??null;h(M),y(M)}return(u,k)=>{const $=z.ElOption,M=z.ElSelect,P=z.ElDatePicker,I=z.ElInputNumber,N=z.ElSwitch,w=z.ElInput;return i.value==="select"?(e.openBlock(),e.createBlock(M,e.mergeProps({key:0,class:"global-info-field-control"},u.field.props,{"model-value":u.modelValue,placeholder:v.value,disabled:g.value,clearable:"",onVisibleChange:S,"onUpdate:modelValue":h,onChange:y}),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.field.options||[],F=>(e.openBlock(),e.createBlock($,{key:String(F.value),label:F.label,value:F.value},null,8,["label","value"]))),128))]),_:1},16,["model-value","placeholder","disabled"])):i.value==="date"?(e.openBlock(),e.createBlock(P,e.mergeProps({key:1,class:"global-info-field-control"},u.field.props,{"model-value":u.modelValue,placeholder:v.value,disabled:g.value,type:"date","value-format":"YYYY-MM-DD","onUpdate:modelValue":h,onChange:y}),null,16,["model-value","placeholder","disabled"])):i.value==="number"?(e.openBlock(),e.createBlock(I,e.mergeProps({key:2,class:"global-info-field-control"},u.field.props,{"model-value":d.value,placeholder:v.value,disabled:g.value,"controls-position":"right","onUpdate:modelValue":h,onChange:y}),null,16,["model-value","placeholder","disabled"])):i.value==="switch"?(e.openBlock(),e.createBlock(N,e.mergeProps({key:3,class:"global-info-field-control global-info-field-control--switch"},u.field.props,{"model-value":b.value,disabled:g.value,"onUpdate:modelValue":h,onChange:y}),null,16,["model-value","disabled"])):i.value==="file"?(e.openBlock(),e.createElementBlock("label",{key:4,class:e.normalizeClass(["global-info-field-control global-info-field-control--file",{"is-disabled":g.value,"is-empty":!c.value,"is-filled":c.value}])},[e.createElementVNode("input",{class:"global-info-field-control__file-input",type:"file",disabled:g.value,accept:String(u.field.props?.accept??""),multiple:!!u.field.props?.multiple,onChange:E},null,40,Lo),c.value?(e.openBlock(),e.createElementBlock("span",zo,e.toDisplayString(p.value),1)):(e.openBlock(),e.createElementBlock("span",Go,"上 传"))],2)):i.value==="empty"?(e.openBlock(),e.createBlock(w,{key:5,class:"global-info-field-control","model-value":"",disabled:"",placeholder:"-"})):(e.openBlock(),e.createBlock(w,e.mergeProps({key:6,class:["global-info-field-control",{"global-info-field-control--code":i.value==="code"}]},u.field.props,{"model-value":f.value,placeholder:v.value,disabled:g.value,type:l.includes(i.value)?"textarea":"text",rows:l.includes(i.value)?_.value:void 0,"onUpdate:modelValue":h,onChange:y}),null,16,["class","model-value","placeholder","disabled","type","rows"]))}}}),Le=q(jo,[["__scopeId","data-v-ba86a0ae"]]),Do=["innerHTML"],xo={key:1,class:"global-info-field-value global-info-field-value--code"},Oo=e.defineComponent({name:"GlobalInfoFieldValue",__name:"GlobalInfoFieldValue",props:{field:{},value:{},emptyText:{default:"-"}},setup(o){const t=o,n=e.computed(()=>gt(t.field)),a=e.computed(()=>n.value==="empty"||Me(t.value)),l=e.computed(()=>yt(t.field,t.value,t.emptyText));return(i,g)=>n.value==="html"&&!a.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"global-info-field-value global-info-field-value--html",innerHTML:l.value},null,8,Do)):n.value==="code"&&!a.value?(e.openBlock(),e.createElementBlock("pre",xo,e.toDisplayString(l.value),1)):(e.openBlock(),e.createElementBlock("span",{key:2,class:e.normalizeClass(["global-info-field-value",{"global-info-field-value--multi-row":n.value==="multi-row","global-info-field-value--file":n.value==="file"&&!a.value}])},e.toDisplayString(l.value),3))}}),ze=q(Oo,[["__scopeId","data-v-aa0d493d"]]),Ao={class:"global-info-form-renderer__label"},qo={key:0,class:"global-info-form-renderer__required"},Ko=e.defineComponent({name:"GlobalInfoFormRenderer",__name:"GlobalInfoFormRenderer",props:{section:{},node:{},editing:{type:Boolean},state:{},actions:{},model:{},onUpdateModel:{type:Function}},setup(o){const t=o,n=e.useSlots(),a=e.computed(()=>t.section.fields.filter(p=>p.visible)),l=e.computed(()=>t.model??t.section.model);function i(p,v){const h={...l.value,[p.code]:v};(p.cascadeClearFields??[]).forEach(y=>{h[y]=""}),t.onUpdateModel?.(h),t.onUpdateModel||t.actions.updateField(t.section,p,v)}async function g(p){try{await t.actions.loadFieldOptions(t.section,p,l.value)}catch(v){console.error("[GlobalInfoFormRenderer] load field options failed",v)}}function f(p){const v=l.value[p.code];return{field:p,section:t.section,sectionView:t.section,node:t.node,editing:t.editing,modelValue:v,value:v,state:t.state,actions:t.actions,updateModelValue:h=>i(p,h)}}function d(p){const v=String(p.id||p.key||p.code||"").trim(),h=v?`field-${v}`:"";if(h&&n[h])return h;const y=h.toLowerCase();return y!==h&&n[y]?y:""}function b(p){return p.span?Math.min(Math.max(p.span,1),24):6}function _(p){return p.key||p.id||p.code}function c(p){return p.required||p.isRequired}return(p,v)=>{const h=z.ElFormItem,y=z.ElCol,S=z.ElRow,E=z.ElForm;return e.openBlock(),e.createBlock(E,{class:"global-info-form-renderer",model:l.value,"label-position":"top"},{default:e.withCtx(()=>[e.createVNode(S,{gutter:24},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,u=>(e.openBlock(),e.createBlock(y,{key:_(u),span:b(u)},{default:e.withCtx(()=>[e.createVNode(h,e.mergeProps({prop:u.code,ref_for:!0},u.formItemProps),{label:e.withCtx(()=>[e.createElementVNode("span",Ao,[c(u)?(e.openBlock(),e.createElementBlock("span",qo,"*")):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(u.label),1)])]),default:e.withCtx(()=>[d(u)?e.renderSlot(p.$slots,d(u),e.mergeProps({key:0,ref_for:!0},f(u)),void 0,!0):p.editing&&!u.readonly?(e.openBlock(),e.createBlock(Le,{key:1,field:u,"model-value":l.value[u.code],section:p.section,onLoadOptions:()=>g(u),"onUpdate:modelValue":k=>i(u,k)},null,8,["field","model-value","section","onLoadOptions","onUpdate:modelValue"])):(e.openBlock(),e.createBlock(ze,{key:2,field:u,value:l.value[u.code],section:p.section},null,8,["field","value","section"]))]),_:2},1040,["prop"])]),_:2},1032,["span"]))),128))]),_:3})]),_:3},8,["model"])}}}),St=q(Ko,[["__scopeId","data-v-9dcd2ba9"]]),kt=e.defineComponent({name:"GlobalInfoDeleteConfirm",__name:"GlobalInfoDeleteConfirm",props:{title:{default:"确认删除吗?"},confirmText:{default:"确认"},cancelText:{default:"取消"}},emits:["confirm","cancel"],setup(o){return(t,n)=>{const a=z.ElPopconfirm;return e.openBlock(),e.createBlock(a,{title:t.title,"confirm-button-text":t.confirmText,"cancel-button-text":t.cancelText,width:"240","popper-class":"global-info-delete-confirm",onConfirm:n[0]||(n[0]=l=>t.$emit("confirm")),onCancel:n[1]||(n[1]=l=>t.$emit("cancel"))},{reference:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},8,["title","confirm-button-text","cancel-button-text"])}}}),Uo={class:"global-info-table-renderer"},Jo={class:"global-info-table-renderer__table-scroll"},Ho={class:"global-info-table-renderer__header"},Wo={key:0,class:"global-info-table-renderer__required"},Yo=e.defineComponent({name:"GlobalInfoTableRenderer",__name:"GlobalInfoTableRenderer",props:{section:{},node:{},editing:{type:Boolean},state:{},actions:{},showAdd:{type:Boolean,default:!0},showDelete:{type:Boolean,default:!0}},setup(o){const t=o,n=e.useSlots(),a=e.computed(()=>t.section.fields.filter(u=>u.visible));function l(u){t.actions.deleteRow(t.section,u)}function i(u,k,$,M){const P=t.section.rows.slice(),I=$.cascadeClearFields??[],N={...u,__rowKey:S(u),[$.code]:M};I.forEach(w=>{N[w]=""}),P[k]={...N},t.actions.updateTableRows(t.section,P)}async function g(u,k){try{await t.actions.loadFieldOptions(t.section,u,k)}catch($){console.error("[GlobalInfoTableRenderer] load field options failed",$)}}function f(u,k,$){const M=k[u.code];return{field:u,section:t.section,sectionView:t.section,node:t.node,row:k,rowIndex:$,editing:t.editing,modelValue:M,value:M,state:t.state,actions:t.actions,updateModelValue:P=>i(k,$,u,P)}}function d(u){const k=String(u.id||u.key||u.code||"").trim(),$=k?`field-${k}`:"";if($&&n[$])return $;const M=$.toLowerCase();return M!==$&&n[M]?M:""}function b(u){return!u.readonly&&!u.disabled}function _(u){return u.width??(v(u)?56:void 0)}function c(u){if(!u.width)return u.minWidth??(v(u)?56:void 0)}function p(u){return u.key||u.id||u.code}function v(u){return[u.label,u.name,u.code,u.key,u.id].map($=>String($??"").trim().toLowerCase()).some($=>["序号","index","idx","seq","serial","order","rownum","row_no"].includes($))}let h=0;const y=new WeakMap;function S(u){const k=u.__rowKey??u.key??u.id??u.setId??u.infSetId;if(k!=null&&k!=="")return String(k);const $=u,M=y.get($);if(M)return M;h+=1;const P=`local-${h}`;return y.set($,P),P}function E(u){return u.required||u.isRequired}return(u,k)=>{const $=z.ElTableColumn,M=e.resolveComponent("Delete"),P=z.ElIcon,I=z.ElButton,N=z.ElTable;return e.openBlock(),e.createElementBlock("div",Uo,[e.createElementVNode("div",Jo,[e.createVNode(N,{class:"global-info-table-renderer__table",data:u.section.rows,"row-key":S},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,w=>(e.openBlock(),e.createBlock($,{key:p(w),prop:w.code,label:w.label,width:_(w),"min-width":c(w)},{header:e.withCtx(()=>[e.createElementVNode("span",Ho,[E(w)?(e.openBlock(),e.createElementBlock("span",Wo,"*")):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(w.label),1)])]),default:e.withCtx(({row:F,$index:U})=>[d(w)?e.renderSlot(u.$slots,d(w),e.mergeProps({key:0,ref_for:!0},f(w,F,U)),void 0,!0):u.editing&&b(w)?(e.openBlock(),e.createBlock(Le,{key:1,field:w,"model-value":F[w.code],section:u.section,row:F,"row-index":U,onLoadOptions:()=>g(w,F),"onUpdate:modelValue":Z=>i(F,U,w,Z)},null,8,["field","model-value","section","row","row-index","onLoadOptions","onUpdate:modelValue"])):(e.openBlock(),e.createBlock(ze,{key:2,field:w,value:F[w.code],section:u.section,row:F,"row-index":U},null,8,["field","value","section","row","row-index"]))]),_:2},1032,["prop","label","width","min-width"]))),128)),u.editing?(e.openBlock(),e.createBlock($,{key:0,label:"操作",width:"104",fixed:"right"},{default:e.withCtx(({$index:w})=>[u.showDelete?(e.openBlock(),e.createBlock(kt,{key:0,onConfirm:F=>l(w)},{default:e.withCtx(()=>[e.createVNode(I,{class:"global-info-table-renderer__delete",link:"",type:"danger"},{default:e.withCtx(()=>[e.createVNode(P,{class:"global-info-table-renderer__delete-icon"},{default:e.withCtx(()=>[e.createVNode(M)]),_:1}),k[0]||(k[0]=e.createTextVNode(" 删除 "))]),_:1})]),_:2},1032,["onConfirm"])):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0)]),_:3},8,["data"])])])}}}),It=q(Yo,[["__scopeId","data-v-2fa29438"]]),wt=e.defineComponent({name:"GlobalInfoAutoRenderer",__name:"GlobalInfoAutoRenderer",props:{section:{},node:{},editing:{type:Boolean},state:{},actions:{}},setup(o){return(t,n)=>t.section.renderType==="table"?(e.openBlock(),e.createBlock(It,{key:0,section:t.section,node:t.node,editing:t.editing,state:t.state,actions:t.actions},null,8,["section","node","editing","state","actions"])):(e.openBlock(),e.createBlock(St,{key:1,section:t.section,node:t.node,editing:t.editing,state:t.state,actions:t.actions},null,8,["section","node","editing","state","actions"]))}}),_t=e.defineComponent({name:"GlobalInfoSectionOutlet",__name:"GlobalInfoSectionOutlet",props:{section:{},node:{},editing:{type:Boolean},state:{},actions:{}},setup(o){const t=o,n=e.useSlots(),a=e.computed(()=>t.editing??t.actions.isEditing(t.section)),l=e.computed(()=>t.section.renderType==="table"?t.section.rows.length===0:t.section.fields.length===0),i=e.computed(()=>{const d=g(t.section.id||t.section.key),b=f(t.section.renderType);return[d,b,"default"].find(_=>!!(_&&n[_]))??""});function g(d){const b=String(d??"").trim();return b?`section-${b}`:""}function f(d){return d==="form"||d==="table"?d:""}return(d,b)=>i.value?e.renderSlot(d.$slots,i.value,{key:0,section:d.section,sectionView:d.section,node:d.node,editing:a.value,isEmpty:l.value,empty:l.value,fields:d.section.fields,state:d.state,actions:d.actions}):(e.openBlock(),e.createBlock(wt,{key:1,section:d.section,node:d.node,editing:a.value,state:d.state,actions:d.actions},null,8,["section","node","editing","state","actions"]))}}),Zo=e.defineComponent({name:"GlobalInfoSlotErrorBoundary",props:{boundaryKey:{type:[String,Number],default:""},label:{type:String,default:""}},emits:{error:o=>!0},setup(o,{emit:t,slots:n}){const a=e.ref(!1);e.watch(()=>o.boundaryKey,()=>{a.value=!1}),e.onErrorCaptured(i=>(l(i),!1));function l(i){a.value=!0,console.error(`[GlobalInfoSlotErrorBoundary] ${o.label||"section"} slot render failed`,i),t("error",i)}return()=>{if(a.value)return n.fallback?.()??null;try{return n.default?.()??null}catch(i){return l(i),n.fallback?.()??null}}}}),Qo={class:"global-info-section-block"},Xo={key:0,class:"global-info-section-block__header"},en={class:"global-info-section-block__title-wrap"},tn={class:"global-info-section-block__title"},on={key:0,class:"global-info-section-block__actions"},nn={class:"global-info-section-block__body"},an=e.defineComponent({name:"GlobalInfoSectionBlock",__name:"GlobalInfoSectionBlock",props:{node:{},state:{},actions:{},hideHeader:{type:Boolean},onEdit:{type:Function},onCancel:{type:Function},onSave:{type:Function}},setup(o){const t=o,n=e.useSlots(),a=e.ref(!1),l=e.ref(null),i=e.ref(null),g=e.computed(()=>!!t.hideHeader),f=e.computed(()=>t.actions.getSectionStatus(t.node)),d=e.computed(()=>t.actions.getSection(t.node)??i.value),b=e.computed(()=>d.value?.title||t.node.tagName||t.node.label||"-"),_=e.computed(()=>!!(d.value&&t.actions.isEditing(d.value))),c=e.computed(()=>d.value?.renderType==="table"),p=e.computed(()=>a.value||f.value.loading),v=e.computed(()=>S(l.value||f.value.error)),h=e.computed(()=>{const I=d.value;return I?I.renderType==="table"?I.rows.length===0:I.fields.length===0:!0}),y=e.computed(()=>({node:t.node,section:d.value,sectionView:d.value,fields:d.value?.fields??[],title:b.value,editing:_.value,loading:p.value,error:l.value||f.value.error,errorMessage:v.value,isEmpty:h.value,empty:h.value,sectionStatus:f.value,state:t.state,actions:t.actions,reload:P,handleEdit:E,handleCancel:u,handleAddTableRow:k,handleSave:$}));function S(I){return I?I instanceof Error?I.message:String(I):""}async function E(){const I=d.value;I&&(await t.onEdit?.(I,t.node),t.onEdit||t.actions.startEdit(I))}async function u(){const I=d.value;I&&(await t.onCancel?.(I,t.node),t.onCancel||t.actions.cancelEdit(I))}function k(){const I=d.value;if(!I)return;const N=I.fields.reduce((w,F)=>(w[F.code]=F.value??"",w),{__rowKey:`new-${Date.now()}`});t.actions.saveRow(I,N,-1)}async function $(){const I=d.value;if(I)try{if(t.onSave){await t.onSave(I,t.node);return}await t.actions.saveSection(I)}catch(N){l.value=N,console.error("[GlobalInfoSectionBlock] save section failed",N)}}function M(I){l.value=I}async function P(){a.value=!0,l.value=null,i.value=null;try{i.value=await t.actions.loadSection(t.node)}catch(I){l.value=I,console.error("[GlobalInfoSectionBlock] load section failed",I)}finally{a.value=!1}}return e.onMounted(()=>{P()}),e.watch(()=>t.node.key,()=>{P()}),(I,N)=>{const w=z.ElButton;return e.openBlock(),e.createElementBlock("section",Qo,[g.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("header",Xo,[e.renderSlot(I.$slots,"header",e.normalizeProps(e.guardReactiveProps(y.value)),()=>[e.createElementVNode("div",en,[N[0]||(N[0]=e.createElementVNode("span",{class:"global-info-section-block__marker"},null,-1)),e.createElementVNode("h3",tn,e.toDisplayString(b.value),1)]),e.renderSlot(I.$slots,"actions",e.normalizeProps(e.guardReactiveProps(y.value)),()=>[d.value?(e.openBlock(),e.createElementBlock("div",on,[_.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createVNode(w,{class:"global-info-section-block__cancel",link:"",disabled:f.value.saving,onClick:u},{default:e.withCtx(()=>N[2]||(N[2]=[e.createTextVNode(" 取消 ")])),_:1},8,["disabled"]),c.value?(e.openBlock(),e.createBlock(w,{key:0,class:"global-info-section-block__add",link:"",disabled:f.value.saving,onClick:k},{default:e.withCtx(()=>N[3]||(N[3]=[e.createTextVNode(" 新增 ")])),_:1},8,["disabled"])):e.createCommentVNode("",!0),e.createVNode(w,{class:"global-info-section-block__confirm",link:"",type:"primary",loading:f.value.saving,onClick:$},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.value?"确认":"保存"),1)]),_:1},8,["loading"])],64)):(e.openBlock(),e.createBlock(w,{key:0,class:"global-info-section-block__edit",link:"",type:"primary",disabled:f.value.saving||p.value,onClick:E},{default:e.withCtx(()=>N[1]||(N[1]=[e.createTextVNode(" 编辑 ")])),_:1},8,["disabled"]))])):e.createCommentVNode("",!0)],!0)],!0)])),e.createElementVNode("div",nn,[p.value?e.renderSlot(I.$slots,"loading",e.normalizeProps(e.mergeProps({key:0},y.value)),()=>[N[4]||(N[4]=e.createElementVNode("div",{class:"global-info-section-block__status"},"加载中...",-1))],!0):!d.value||h.value||v.value?e.renderSlot(I.$slots,"empty",e.normalizeProps(e.mergeProps({key:1},y.value)),()=>[N[5]||(N[5]=e.createElementVNode("div",{class:"global-info-section-block__status"},"暂无数据",-1))],!0):(e.openBlock(),e.createBlock(Zo,{key:2,"boundary-key":I.node.key,label:b.value,onError:M},{fallback:e.withCtx(()=>[e.renderSlot(I.$slots,"empty",e.normalizeProps(e.guardReactiveProps(y.value)),()=>[N[6]||(N[6]=e.createElementVNode("div",{class:"global-info-section-block__status"},"暂无数据",-1))],!0)]),default:e.withCtx(()=>[e.createVNode(_t,{section:d.value,node:I.node,editing:_.value,state:I.state,actions:I.actions},e.createSlots({_:2},[e.renderList(e.unref(n),(F,U)=>({name:U,fn:e.withCtx(Z=>[e.renderSlot(I.$slots,U,e.normalizeProps(e.guardReactiveProps({...y.value,...Z})),void 0,!0)])}))]),1032,["section","node","editing","state","actions"])]),_:3},8,["boundary-key","label"]))])])}}}),Bt=q(an,[["__scopeId","data-v-0d8ae722"]]),ln={class:"global-info-group"},rn={class:"global-info-group__header"},sn={class:"global-info-group__title"},cn={class:"global-info-group__body"},un=["id"],dn=e.defineComponent({name:"GlobalInfoGroup",__name:"GlobalInfoGroup",props:{group:{},children:{},state:{},actions:{},index:{}},setup(o){const t=o,n=e.useSlots(),a=e.computed(()=>t.group.tagName||t.group.label||"-"),l=e.computed(()=>t.children.length<=1);function i(c,p){const v=t.actions.getSection(c);return{node:c,group:t.group,sectionNode:c,section:v,sectionView:v,state:t.state,actions:t.actions,index:p,editing:!!(v&&t.actions.isEditing(v)),sectionStatus:t.actions.getSectionStatus(c),isSelfSection:b(c,0)===b(t.group,0),handleEdit:()=>t.actions.startEdit(c),handleCancel:()=>t.actions.cancelEdit(c),handleSave:()=>t.actions.saveSection(c.key)}}function g(c){return f("section",d(c))}function f(c,p){if(!p)return"";const v=`${c}-${p}`;if(n[v])return v;const h=v.toLowerCase();return h!==v&&n[h]?h:""}function d(c){return String(c.id||c.infSetId||c.tagId||c.key||c.code||"").trim()}function b(c,p){return c.key||c.id||c.infSetId||c.tagId||`${p}`}function _(c){return`global-info-section-${b(c,0)}`}return(c,p)=>(e.openBlock(),e.createElementBlock("section",ln,[e.renderSlot(c.$slots,"header",{group:c.group,children:c.children,state:c.state,actions:c.actions,title:a.value,index:c.index,isEmpty:c.children.length===0},()=>[e.createElementVNode("header",rn,[p[0]||(p[0]=e.createElementVNode("span",{class:"global-info-group__marker"},null,-1)),e.createElementVNode("h2",sn,e.toDisplayString(a.value),1)])],!0),e.createElementVNode("div",cn,[e.unref(n).default?e.renderSlot(c.$slots,"default",{key:0,group:c.group,children:c.children,state:c.state,actions:c.actions,index:c.index,isEmpty:c.children.length===0},void 0,!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.children,(v,h)=>(e.openBlock(),e.createElementBlock("div",{id:_(v),key:b(v,h),class:"global-info-group__section"},[g(v)?e.renderSlot(c.$slots,g(v),e.mergeProps({key:0,ref_for:!0},i(v,h)),void 0,!0):e.unref(n).section?e.renderSlot(c.$slots,"section",e.mergeProps({key:1,ref_for:!0},i(v,h)),void 0,!0):(e.openBlock(),e.createBlock(Bt,{key:2,node:v,state:c.state,actions:c.actions,"hide-header":l.value},e.createSlots({_:2},[e.renderList(e.unref(n),(y,S)=>({name:S,fn:e.withCtx(E=>[e.renderSlot(c.$slots,S,e.mergeProps({ref_for:!0},E),void 0,!0)])}))]),1032,["node","state","actions","hide-header"]))],8,un))),128)),c.children.length===0?e.renderSlot(c.$slots,"empty",{key:0,node:null,group:c.group,sectionNode:null,state:c.state,actions:c.actions,index:-1},()=>[p[1]||(p[1]=e.createElementVNode("div",{class:"global-info-group__empty"},"暂无数据",-1))],!0):e.createCommentVNode("",!0)],64))])]))}}),Ct=q(dn,[["__scopeId","data-v-778e227f"]]),pn={class:"global-info-sections"},fn=e.defineComponent({name:"GlobalInfoSections",__name:"GlobalInfoSections",props:{nodes:{},state:{},actions:{}},setup(o){const t=o,n=e.useSlots(),a=e.computed(()=>{const p=t.nodes.filter(k=>l(k).length>0),v=t.nodes.filter(k=>l(k).length===0),h=v.filter(k=>i(k)),y=v.filter(k=>!i(k)),S=p.map(k=>({group:k,children:l(k)})),E=h.map(k=>({group:k,children:[k]}));if(S.length===0)return h.length>0?E:c(y);const u=c(y);return[...S,...E,...u]});function l(p){return p.children??[]}function i(p){return!String(p.parentId||p.parentTagId||"").trim()}function g(p){return f("group",d(p))}function f(p,v){if(!v)return"";const h=`${p}-${v}`;if(n[h])return h;const y=h.toLowerCase();return y!==h&&n[y]?y:""}function d(p){return String(p.id||p.tagId||p.key||p.code||"").trim()}function b(p,v){return p.key||p.id||p.tagId||`${v}`}function _(p){const v=p[0],h=v?.raw??{},y=String(h.parentTagName||h.parentName||h.parentLabel||v?.parentId||"信息");return{...v,key:`${v?.parentId||v?.parentTagId||v?.key||"global-info"}-group`,id:String(v?.parentId||v?.parentTagId||v?.id||"global-info-group"),tagId:String(v?.parentTagId||v?.parentId||v?.tagId||"global-info-group"),tagName:y,label:y,children:p}}function c(p){const v=new Map;return p.forEach(h=>{const y=String(h.parentId||h.parentTagId||"global-info-flat"),S=v.get(y)??[];S.push(h),v.set(y,S)}),Array.from(v.values()).map(h=>({group:_(h),children:h}))}return(p,v)=>(e.openBlock(),e.createElementBlock("div",pn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(h,y)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:b(h.group,y)},[g(h.group)?e.renderSlot(p.$slots,g(h.group),{key:0,group:h.group,children:h.children,state:p.state,actions:p.actions,index:y,isEmpty:h.children.length===0},void 0,!0):e.unref(n).group?e.renderSlot(p.$slots,"group",{key:1,group:h.group,children:h.children,state:p.state,actions:p.actions,index:y,isEmpty:h.children.length===0},void 0,!0):(e.openBlock(),e.createBlock(Ct,{key:2,group:h.group,children:h.children,state:p.state,actions:p.actions,index:y},e.createSlots({_:2},[e.renderList(e.unref(n),(S,E)=>({name:E,fn:e.withCtx(u=>[e.renderSlot(p.$slots,E,e.mergeProps({ref_for:!0},u),void 0,!0)])}))]),1032,["group","children","state","actions","index"]))],64))),128))]))}}),mn=q(fn,[["__scopeId","data-v-f15cf0fb"]]);exports.GlobalInfoAutoRenderer=wt;exports.GlobalInfoDeleteConfirm=kt;exports.GlobalInfoFieldControl=Le;exports.GlobalInfoFieldValue=ze;exports.GlobalInfoFormRenderer=St;exports.GlobalInfoGroup=Ct;exports.GlobalInfoProvider=No;exports.GlobalInfoSectionBlock=Bt;exports.GlobalInfoSectionOutlet=_t;exports.GlobalInfoSections=mn;exports.GlobalInfoTableRenderer=It;exports.JtButton=me;exports.JtCascader=We;exports.JtCrudTable=lo;exports.JtDatePicker=Ye;exports.JtFilterBar=Xe;exports.JtFormItems=Qe;exports.JtInput=Be;exports.JtPageHeader=vo;exports.JtPagination=co;exports.JtSelect=Ze;exports.JtTable=et;exports.buildGlobalInfoUpdatePayload=at;exports.createEmptyGlobalInfoViewModel=tt;exports.isGlobalInfoNode=go;exports.mergeGlobalInfoChildren=Re;exports.normalizeGlobalInfoDetail=ot;exports.normalizeGlobalInfoTree=Ne;exports.resolveGlobalInfoRenderType=nt;exports.useGlobalInfoController=vt;
1
+ require('./style.css');
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),z=require("element-plus/es");require("element-plus/theme-chalk/base.css");require("element-plus/theme-chalk/el-form.css");require("element-plus/theme-chalk/el-row.css");require("element-plus/theme-chalk/el-col.css");require("element-plus/theme-chalk/el-form-item.css");require("element-plus/theme-chalk/el-input.css");require("element-plus/theme-chalk/el-switch.css");require("element-plus/theme-chalk/el-input-number.css");require("element-plus/theme-chalk/el-popper.css");require("element-plus/theme-chalk/el-scrollbar.css");require("element-plus/theme-chalk/el-button.css");require("element-plus/theme-chalk/el-date-picker-panel.css");require("element-plus/theme-chalk/el-date-picker.css");require("element-plus/theme-chalk/el-tag.css");require("element-plus/theme-chalk/el-option.css");require("element-plus/theme-chalk/el-option-group.css");require("element-plus/theme-chalk/el-select.css");require("element-plus/theme-chalk/el-tooltip.css");require("element-plus/theme-chalk/el-checkbox.css");require("element-plus/theme-chalk/el-table.css");require("element-plus/theme-chalk/el-table-column.css");require("element-plus/theme-chalk/el-popover.css");require("element-plus/theme-chalk/el-popconfirm.css");require("element-plus/theme-chalk/el-radio.css");require("element-plus/theme-chalk/el-virtual-list.css");require("element-plus/theme-chalk/el-cascader-panel.css");require("element-plus/theme-chalk/el-cascader.css");const le=require("element-plus");require("element-plus/theme-chalk/el-pagination.css");var ee=typeof document<"u"?document.currentScript:null;const Pe=2,Tt=3;function Ft(o){return o.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}function Ue(o){if(!o.startsWith("on")||o.length<=Pe)return!1;const t=o.charCodeAt(Pe);return t<97||t>122}function Rt(o){if(o.startsWith("on-"))return o.slice(Tt);const[t,n]=o.slice(Pe).split(":"),a=Ft(t);return n?`${a}:${n}`:a}function Je(o,t=new Set){return Object.fromEntries(Object.entries(o).filter(([n,a])=>!t.has(n)&&Ue(n)&&typeof a=="function").map(([n,a])=>[Rt(n),a]))}function He(o,t=new Set){return Object.fromEntries(Object.entries(o).filter(([n])=>!t.has(n)&&!Ue(n)))}const Mt=e.defineComponent({name:"JtButton",__name:"index",props:{size:{},disabled:{type:Boolean},type:{},icon:{},nativeType:{},loading:{type:Boolean},loadingIcon:{},plain:{type:Boolean},text:{type:Boolean},link:{type:Boolean},bg:{type:Boolean},autofocus:{type:Boolean},round:{type:Boolean},circle:{type:Boolean},dashed:{type:Boolean},color:{},dark:{type:Boolean},autoInsertSpace:{type:Boolean},tag:{}},setup(o){const t=o,n=e.useAttrs(),a=e.computed(()=>{const{icon:i,...g}=t;return{...He(n),...g}}),l=e.computed(()=>Je(n));return(i,g)=>{const f=z.ElIcon,d=z.ElButton;return e.openBlock(),e.createBlock(d,e.mergeProps({class:"jt-button"},a.value,e.toHandlers(l.value)),{default:e.withCtx(()=>[i.$slots.icon?(e.openBlock(),e.createBlock(f,{key:0,class:"jt-button__icon"},{default:e.withCtx(()=>[e.renderSlot(i.$slots,"icon",{},void 0,!0)]),_:3})):t.icon?(e.openBlock(),e.createBlock(f,{key:1,class:"jt-button__icon"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.icon)))]),_:1})):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"default",{},void 0,!0)]),_:3},16)}}}),A=(o,t)=>{const n=o.__vccOpts||o;for(const[a,l]of t)n[a]=l;return n},me=A(Mt,[["__scopeId","data-v-fbcdce34"]]),Lt=e.defineComponent({name:"JtCascader",__name:"index",props:{size:{},placeholder:{default:"请选择"},disabled:{type:Boolean},clearable:{type:Boolean,default:!0},clearIcon:{},filterable:{type:Boolean},filterMethod:{},separator:{},showAllLevels:{type:Boolean},collapseTags:{type:Boolean},maxCollapseTags:{},collapseTagsTooltip:{type:Boolean},maxCollapseTagsTooltipHeight:{},debounce:{},beforeFilter:{},placement:{},fallbackPlacements:{},popperClass:{},popperStyle:{type:[Boolean,null,String,Object,Array]},teleported:{type:Boolean},effect:{},tagType:{},tagEffect:{},validateEvent:{type:Boolean},persistent:{type:Boolean},showCheckedStrategy:{},checkOnClickNode:{type:Boolean},showPrefix:{type:Boolean},fitInputWidth:{type:[Boolean,Number]},modelValue:{},props:{},virtualScroll:{type:Boolean},itemSize:{},height:{},emptyValues:{},valueOnClear:{type:[String,Number,Boolean,Function,null]},options:{default:()=>[]}},emits:le.cascaderEmits,setup(o,{emit:t}){const n=o,a=t,l=e.computed(()=>Object.fromEntries(Object.keys(le.cascaderEmits).map(i=>[i,(...g)=>a(i,...g)])));return(i,g)=>{const f=z.ElCascader;return e.openBlock(),e.createBlock(f,e.mergeProps({class:"jt-cascader"},n,e.toHandlers(l.value)),null,16)}}}),We=A(Lt,[["__scopeId","data-v-9164edeb"]]),zt=e.defineComponent({name:"JtDatePicker",__name:"index",props:{type:{default:"date"},showNow:{type:Boolean},showConfirm:{type:Boolean},showFooter:{type:Boolean},showWeekNumber:{type:Boolean},ariaLabel:{},emptyValues:{},valueOnClear:{},disabledDate:{},cellClassName:{},shortcuts:{},arrowControl:{type:Boolean},tabindex:{},validateEvent:{type:Boolean},unlinkPanels:{type:Boolean},singlePanel:{type:Boolean},placement:{},fallbackPlacements:{},disabledHours:{},disabledMinutes:{},disabledSeconds:{},automaticDropdown:{type:Boolean},id:{},name:{},popperClass:{},popperStyle:{},format:{},valueFormat:{default:"YYYY-MM-DD"},dateFormat:{},timeFormat:{},clearable:{type:Boolean,default:!0},clearIcon:{},editable:{type:Boolean},saveOnBlur:{type:Boolean},prefixIcon:{},size:{},readonly:{type:Boolean},disabled:{type:Boolean},placeholder:{default:"请选择日期"},popperOptions:{},modelValue:{},rangeSeparator:{},startPlaceholder:{},endPlaceholder:{},defaultValue:{},defaultTime:{},isRange:{type:Boolean}},setup(o){const t=o,n=e.computed(()=>({...t,startPlaceholder:t.startPlaceholder??(a(t.type)?"开始日期":void 0),endPlaceholder:t.endPlaceholder??(a(t.type)?"结束日期":void 0)}));function a(l){return l?.includes("range")??!1}return(l,i)=>{const g=z.ElDatePicker;return e.openBlock(),e.createBlock(g,e.mergeProps({class:"jt-date-picker"},n.value,{"onUpdate:modelValue":i[0]||(i[0]=f=>l.$emit("update:modelValue",f))}),null,16)}}}),Ye=A(zt,[["__scopeId","data-v-2aaf2264"]]),Gt=e.defineComponent({name:"JtInput",__name:"index",props:{id:{},size:{},disabled:{type:Boolean},modelValue:{},modelModifiers:{},maxlength:{},minlength:{},type:{},resize:{},autosize:{type:[Object,Boolean]},autocomplete:{},formatter:{},parser:{},placeholder:{default:"请输入"},form:{},readonly:{type:Boolean},clearable:{type:Boolean,default:!0},clearIcon:{},showPassword:{type:Boolean},showWordLimit:{type:Boolean},wordLimitPosition:{},suffixIcon:{},prefixIcon:{},containerRole:{},tabindex:{},validateEvent:{type:Boolean},inputStyle:{type:[Boolean,null,String,Object,Array]},autofocus:{type:Boolean},rows:{},ariaLabel:{},inputmode:{},name:{},countGraphemes:{}},emits:{...le.inputEmits,enter:()=>!0},setup(o,{emit:t}){const n=o,a=t,l=e.computed(()=>Object.fromEntries(Object.keys(le.inputEmits).map(i=>[i,(...g)=>a(i,...g)])));return(i,g)=>{const f=z.ElInput;return e.openBlock(),e.createBlock(f,e.mergeProps({class:"jt-input"},n,e.toHandlers(l.value),{onKeyup:g[0]||(g[0]=e.withKeys(d=>a("enter"),["enter"]))}),null,16)}}}),Be=A(Gt,[["__scopeId","data-v-c4e9cb3f"]]),jt=e.defineComponent({name:"JtSelect",__name:"index",props:{options:{},ariaLabel:{},emptyValues:{},valueOnClear:{},name:{},id:{},modelValue:{},autocomplete:{},automaticDropdown:{type:Boolean},size:{},effect:{},disabled:{type:Boolean},clearable:{type:Boolean,default:!0},filterable:{type:Boolean,default:!0},allowCreate:{type:Boolean},loading:{type:Boolean},popperClass:{},popperStyle:{},popperOptions:{},remote:{type:Boolean},debounce:{},loadingText:{},noMatchText:{},noDataText:{},remoteMethod:{},filterMethod:{},multiple:{type:Boolean},multipleLimit:{},placeholder:{default:"请选择"},defaultFirstOption:{type:Boolean},reserveKeyword:{type:Boolean},valueKey:{},collapseTags:{type:Boolean},collapseTagsTooltip:{type:Boolean},tagTooltip:{},maxCollapseTags:{},teleported:{type:Boolean},persistent:{type:Boolean},clearIcon:{},fitInputWidth:{type:Boolean},suffixIcon:{},tagType:{},tagEffect:{},validateEvent:{type:Boolean},remoteShowSuffix:{type:Boolean},showArrow:{type:Boolean},offset:{},placement:{},fallbackPlacements:{},tabindex:{},appendTo:{},props:{}},emits:le.selectEmits,setup(o,{emit:t}){const n=o,a=e.computed(()=>{const{options:g,...f}=n;return f}),l=t,i=e.computed(()=>Object.fromEntries(Object.keys(le.selectEmits).map(g=>[g,(...f)=>l(g,...f)])));return(g,f)=>{const d=z.ElOption,b=z.ElSelect;return e.openBlock(),e.createBlock(b,e.mergeProps({class:"jt-select"},a.value,e.toHandlers(i.value)),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.options??[],_=>(e.openBlock(),e.createBlock(d,e.mergeProps({key:_.value,ref_for:!0},_),null,16))),128))]),_:1},16)}}}),Ze=A(jt,[["__scopeId","data-v-abce8e44"]]),Dt={class:"jt-form-items"},$e=4,xt=e.defineComponent({name:"JTFormItems",__name:"JtFormItems",props:{configs:{},formData:{},span:{}},setup(o){const t=o,n={input:Be,select:Ze,cascader:We,"date-picker":Ye},a={"remote-select":"select",date:"date-picker",daterange:"date-picker","date-range":"date-picker",dateRange:"date-picker"},l=new Set(["prop","label","itemType","span","options","rules","formItemProps","showSlot","show"]),i=Object.keys(n),g=e.computed(()=>t.configs.filter(S=>S.show!==!1)),f=S=>{const{itemType:E}=S;if(!E)return Be;if(typeof E!="string")return E;const u=a[E]??E;return i.includes(u)?n[u]:(console.error(`[JtFormItems] 不支持的 itemType: "${E}",支持的类型: ${i.join(", ")}`),Be)},d=S=>{const E=He(S,l);return S.itemType==="select"||S.itemType==="remote-select"||S.itemType==="cascader"?{...E,options:S.options}:y(S.itemType)?{...E,type:"daterange"}:E},b=S=>Je(S,l),_=S=>({rules:S.rules,...S.formItemProps}),c=(S,E)=>{t.formData[S]=E},p=S=>Math.min(Math.max(Math.trunc(S||1),1),4),v=e.computed(()=>{const E=g.value.reduce((u,k)=>u+p(t.span||k.span),0)%$e;return E===0?{gridColumn:`1 / span ${$e}`}:{gridColumn:`${E+1} / span ${$e-E}`}}),h=S=>({gridColumn:`span ${p(t.span||S.span)}`});function y(S){return S==="daterange"||S==="date-range"||S==="dateRange"}return(S,E)=>{const u=z.ElFormItem;return e.openBlock(),e.createElementBlock("div",Dt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,k=>(e.openBlock(),e.createBlock(u,e.mergeProps({key:k.prop,class:"jt-form-items__item",style:h(k),label:k.label,prop:k.prop,ref_for:!0},_(k)),{default:e.withCtx(()=>[k.showSlot?e.renderSlot(S.$slots,k.prop,{key:0},void 0,!0):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(f(k)),e.mergeProps({key:1,"model-value":S.formData[k.prop],ref_for:!0},d(k),e.toHandlers(b(k)),{"onUpdate:modelValue":$=>c(k.prop,$)}),null,16,["model-value","onUpdate:modelValue"]))]),_:2},1040,["style","label","prop"]))),128)),S.$slots.actions?(e.openBlock(),e.createBlock(u,{key:0,class:"jt-form-items__actions",style:e.normalizeStyle(v.value)},{default:e.withCtx(()=>[e.renderSlot(S.$slots,"actions",{},void 0,!0)]),_:3},8,["style"])):e.createCommentVNode("",!0)])}}}),Qe=A(xt,[["__scopeId","data-v-20df934b"]]);function qt(){const o=e.ref(!1);function t(){o.value=!0}function n(){o.value=!1}return{searchDisabled:o,searchLoading:t,searchDone:n}}const Ot={class:"jt-filter-bar__btns"},At=["src"],Kt=["src"],Ut=["src"],Jt=e.defineComponent({name:"JtFilterBar",__name:"JtFilterBar",props:{columns:{},option:{default:()=>({})},modelValue:{}},emits:["update:modelValue","search","reset"],setup(o,{expose:t,emit:n}){const a=new URL("data:image/svg+xml,%3csvg%20width='14'%20height='14'%20viewBox='0%200%2014%2014'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0.5'%20y='-0.5'%20width='11'%20height='11'%20rx='5.5'%20transform='matrix(1%200%200%20-1%201%2012)'%20stroke='%23999999'/%3e%3cpath%20d='M10%208.16064L7%205.16064L4%208.16064'%20stroke='%23999999'/%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:ee&&ee.tagName.toUpperCase()==="SCRIPT"&&ee.src||new URL("index.cjs",document.baseURI).href).href,l=new URL("data:image/svg+xml,%3csvg%20width='14'%20height='14'%20viewBox='0%200%2014%2014'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M2.375%207.00017C2.375%207.27631%202.59886%207.50017%202.875%207.50017C3.15114%207.50017%203.375%207.27631%203.375%207.00017H2.875H2.375ZM2.875%207.00017H3.375C3.375%204.46334%205.41801%202.41406%207.93713%202.41406V1.91406V1.41406C4.86127%201.41406%202.375%203.91551%202.375%207.00017H2.875ZM7.93713%201.91406V2.41406C10.4563%202.41406%2012.4993%204.46334%2012.4993%207.00017H12.9993H13.4993C13.4993%203.91551%2011.013%201.41406%207.93713%201.41406V1.91406ZM12.9993%207.00017H12.4993C12.4993%209.537%2010.4563%2011.5863%207.93713%2011.5863V12.0863V12.5863C11.013%2012.5863%2013.4993%2010.0848%2013.4993%207.00017H12.9993ZM7.93713%2012.0863V11.5863C6.68975%2011.5863%205.55663%2011.0806%204.72892%2010.2635L4.37765%2010.6193L4.02638%2010.9752C5.0317%2011.9676%206.41366%2012.5863%207.93713%2012.5863V12.0863Z'%20fill='%23999999'/%3e%3cpath%20d='M4.75131%206.0102L2.88631%207.88403L1%205.99414'%20stroke='%23999999'%20stroke-miterlimit='10'/%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:ee&&ee.tagName.toUpperCase()==="SCRIPT"&&ee.src||new URL("index.cjs",document.baseURI).href).href,i=new URL("data:image/svg+xml,%3csvg%20width='14'%20height='14'%20viewBox='0%200%2014%2014'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M6.60938%2012.1099C9.64694%2012.1099%2012.1094%209.64743%2012.1094%206.60986C12.1094%203.5723%209.64694%201.10986%206.60938%201.10986C3.57181%201.10986%201.10938%203.5723%201.10938%206.60986C1.10938%209.64743%203.57181%2012.1099%206.60938%2012.1099Z'%20stroke='white'%20stroke-miterlimit='10'/%3e%3cpath%20d='M12.4993%2012.5002L10.2832%2010.3301'%20stroke='white'%20stroke-miterlimit='10'/%3e%3c/svg%3e",typeof document>"u"?require("url").pathToFileURL(__filename).href:ee&&ee.tagName.toUpperCase()==="SCRIPT"&&ee.src||new URL("index.cjs",document.baseURI).href).href,g=o,f=n,d=e.ref(),b=e.useSlots(),_=e.ref({}),{searchDisabled:c,searchLoading:p,searchDone:v}=qt(),h=e.computed(()=>g.option),y=e.ref(h.value.searchCollapsed??!1),S=e.computed(()=>g.columns.filter(B=>B.search===!0)),E=e.computed(()=>Math.max(1,h.value.searchSpan??4)),u=e.computed(()=>Math.max(1,h.value.searchCollapsedRows??1)),k=e.computed(()=>Math.max(1,E.value-1)),$=e.computed(()=>Math.max(1,k.value*u.value)),M=e.computed(()=>Ve(h.value.searchLabelWidth??84)),P=e.computed(()=>h.value.searchLabelPosition??"top"),I=e.computed(()=>Se(h.value.searchGutter,14)),N=e.computed(()=>Se(h.value.searchRowGap,14)),w=e.computed(()=>ke(h.value.searchPadding??"18px 4px 0")),F=e.computed(()=>h.value.searchCollapse===!1?!1:de(S.value)>$.value),U=e.computed(()=>{if(!F.value||!y.value)return S.value;let B=0;return S.value.filter(j=>{const x=re(j);return B+x>$.value?!1:(B+=x,!0)})}),Z=e.computed(()=>U.value.filter(B=>!!b[`${B.prop}-search`])),ye=e.computed(()=>U.value.map(B=>Ee(B)));e.watch(()=>h.value.searchCollapsed,B=>{typeof B=="boolean"&&(y.value=B)}),e.watch(()=>g.modelValue,B=>{_.value={...B}},{deep:!0,immediate:!0});function be(B,j){if(c.value)return;const x={..._.value,[B]:j};_.value=x,f("update:modelValue",x)}function Ee(B){const j=B.searchProps??{};return{...j,prop:B.prop,label:B.searchLabel??B.label,span:re(B),itemType:B.searchType??"input",showSlot:!!b[`${B.prop}-search`],options:j.options??B.searchOptions??B.dicData,placeholder:j.placeholder??B.searchPlaceholder,valueFormat:j.valueFormat??B.searchValueFormat,disabled:c.value||j.disabled===!0,formItemProps:{required:B.searchRequired,class:["jt-filter-bar__item",{"is-required":B.searchRequired}]},onEnter:(...x)=>{J(j.onEnter,...x),te()},"onUpdate:modelValue":x=>{J(j["onUpdate:modelValue"],x),be(B.prop,x)}}}function J(B,...j){if(Array.isArray(B)){B.forEach(x=>J(x,...j));return}typeof B=="function"&&B(...j)}function te(){c.value||f("search")}function ue(){c.value||f("reset")}function oe(){y.value=!y.value}function re(B){return Math.min(E.value,Math.max(1,B.searchSpan??1))}function de(B){return B.reduce((j,x)=>j+re(x),0)}function Ve(B){return typeof B=="number"?`${B}px`:B}function Se(B,j){return typeof B=="number"?B:j}function ke(B){return typeof B=="number"?`${B}px`:B}return t({formRef:d,searchDisabled:c,searchLoading:p,searchDone:v}),(B,j)=>{const x=z.ElForm;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["jt-filter-bar",`is-label-${P.value}`]),style:e.normalizeStyle({"--jt-filter-columns":E.value,"--jt-filter-label-width":M.value,"--jt-filter-column-gap":`${I.value}px`,"--jt-filter-row-gap":`${N.value}px`,"--jt-filter-padding":w.value})},[e.createVNode(x,{ref_key:"formRef",ref:d,class:"jt-filter-bar__form",model:_.value,"label-position":P.value,"label-width":M.value,disabled:e.unref(c),onSubmit:j[0]||(j[0]=e.withModifiers(()=>{},["prevent"]))},{default:e.withCtx(()=>[e.createVNode(e.unref(Qe),{configs:ye.value,"form-data":_.value},e.createSlots({actions:e.withCtx(()=>[e.createElementVNode("div",Ot,[e.renderSlot(B.$slots,"search-menu",{search:te,reset:ue,disabled:e.unref(c),collapsed:y.value,toggleCollapse:oe},()=>[F.value?(e.openBlock(),e.createBlock(e.unref(me),{key:0,class:"jt-filter-bar__btn-collapse",onClick:oe},{icon:e.withCtx(()=>[e.createElementVNode("img",{class:e.normalizeClass(["jt-filter-bar__icon-arrow",{"is-collapsed":y.value}]),src:e.unref(a),alt:""},null,10,At)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(y.value?"展 开":"收 起"),1)]),_:1})):e.createCommentVNode("",!0),e.createVNode(e.unref(me),{class:"jt-filter-bar__btn-reset",disabled:e.unref(c),onClick:ue},{icon:e.withCtx(()=>[e.createElementVNode("img",{src:e.unref(l),alt:""},null,8,Kt)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(h.value.resetBtnText??"重 置"),1)]),_:1},8,["disabled"]),e.createVNode(e.unref(me),{class:"jt-filter-bar__btn-query",type:"primary",disabled:e.unref(c),onClick:te},{icon:e.withCtx(()=>[e.createElementVNode("img",{src:e.unref(i),alt:""},null,8,Ut)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(h.value.searchBtnText??"查 询"),1)]),_:1},8,["disabled"])],!0)])]),_:2},[e.renderList(Z.value,se=>({name:se.prop,fn:e.withCtx(()=>[e.renderSlot(B.$slots,`${se.prop}-search`,{value:_.value[se.prop],column:se,setValue:Ie=>be(se.prop,Ie),search:te,reset:ue,disabled:e.unref(c)},void 0,!0)])}))]),1032,["configs","form-data"])]),_:3},8,["model","label-position","label-width","disabled"])],6)}}}),Xe=A(Jt,[["__scopeId","data-v-ea82d792"]]),Ht={key:1},Wt={key:2},Yt={key:3},Zt=e.defineComponent({name:"JtTable",__name:"JtTable",props:{data:{},columns:{},option:{},tableEvents:{}},setup(o,{expose:t}){const n=o,a=e.useSlots(),l=e.ref(),i=e.computed(()=>n.option??{}),g=e.computed(()=>n.columns.filter(c=>!c.hide));function f(c){return!!a[`${c}-header`]}function d(c){return!!a[`${c}-data`]}function b(c){return{width:c.width,minWidth:c.minWidth,align:c.align,fixed:c.fixed,sortable:c.sortable,showOverflowTooltip:c.showOverflowTooltip,...c.columnOptions}}function _(c,p){return c.find(v=>v.value===p)?.label??String(p??"")}return t({tableRef:l}),(c,p)=>{const v=z.ElTableColumn,h=z.ElTable;return e.openBlock(),e.createBlock(h,e.mergeProps({ref_key:"tableRef",ref:l,data:c.data,"row-key":i.value.rowKey??"id",height:i.value.height,"max-height":i.value.maxHeight,"empty-text":i.value.emptyText,class:"jt-table"},i.value.tableProps,e.toHandlers(c.tableEvents)),{default:e.withCtx(()=>[i.value.selection?(e.openBlock(),e.createBlock(v,{key:0,type:"selection",width:"55",align:"center"})):e.createCommentVNode("",!0),i.value.index?(e.openBlock(),e.createBlock(v,{key:1,type:"index",label:i.value.indexLabel??"序号",width:"60",align:"center"},null,8,["label"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,y=>(e.openBlock(),e.createBlock(v,e.mergeProps({key:y.prop,prop:y.prop,label:y.label,formatter:!d(y.prop)&&!y.dicData?y.formatter:void 0,ref_for:!0},b(y)),e.createSlots({default:e.withCtx(S=>[d(y.prop)?e.renderSlot(c.$slots,`${y.prop}-data`,e.mergeProps({key:0,ref_for:!0},S),void 0,!0):y.dicData?(e.openBlock(),e.createElementBlock("span",Ht,e.toDisplayString(_(y.dicData,S.row[y.prop])),1)):y.formatter?(e.openBlock(),e.createElementBlock("span",Wt,e.toDisplayString(y.formatter(S.row,S.column,S.row[y.prop],S.$index)),1)):(e.openBlock(),e.createElementBlock("span",Yt,e.toDisplayString(S.row[y.prop]),1))]),_:2},[f(y.prop)?{name:"header",fn:e.withCtx(S=>[e.renderSlot(c.$slots,`${y.prop}-header`,e.mergeProps({ref_for:!0},S),void 0,!0)]),key:"0"}:void 0]),1040,["prop","label","formatter"]))),128)),i.value.menu?(e.openBlock(),e.createBlock(v,{key:2,label:i.value.menuLabel??"操作",width:i.value.menuWidth,"min-width":i.value.menuMinWidth,align:i.value.menuAlign??"center",fixed:i.value.menuFixed},{default:e.withCtx(y=>[e.renderSlot(c.$slots,"menu",e.normalizeProps(e.guardReactiveProps(y)),void 0,!0)]),_:3},8,["label","width","min-width","align","fixed"])):e.createCommentVNode("",!0)]),_:3},16,["data","row-key","height","max-height","empty-text"])}}}),et=A(Zt,[["__scopeId","data-v-4804a967"]]),Qt={class:"jt-pagination"},Xt={class:"jt-pagination__count"},eo=e.defineComponent({name:"JtPagination",__name:"JtPagination",props:{currentPage:{},pageSize:{},total:{},option:{}},emits:["update:currentPage","update:pageSize","current-change","page-change","size-change"],setup(o,{emit:t}){const n=o,a=e.computed(()=>n.option??{}),l=t;function i(g){l("current-change",g),l("page-change",g)}return(g,f)=>{const d=z.ElPagination;return e.openBlock(),e.createElementBlock("div",Qt,[e.createVNode(d,{"current-page":g.currentPage,"page-size":g.pageSize,"page-sizes":a.value.pageSizes??[10,20,50,100],total:g.total,layout:a.value.paginationLayout??"sizes, prev, pager, next, jumper","onUpdate:currentPage":f[0]||(f[0]=b=>g.$emit("update:currentPage",b)),"onUpdate:pageSize":f[1]||(f[1]=b=>g.$emit("update:pageSize",b)),onCurrentChange:i,onSizeChange:f[2]||(f[2]=b=>g.$emit("size-change",b))},null,8,["current-page","page-size","page-sizes","total","layout"]),e.createElementVNode("span",Xt,"共"+e.toDisplayString(g.total)+"条记录",1)])}}}),to=A(eo,[["__scopeId","data-v-19ef6db6"]]),oo={class:"jt-crud-table"},no={key:1,class:"jt-crud-table__toolbar"},ao=e.defineComponent({name:"JtCrudTable",__name:"JtCrudTable",props:e.mergeModels({columns:{},option:{default:()=>({})},data:{},total:{default:0},tableEvents:{}},{currentPage:{default:1},currentPageModifiers:{},pageSize:{default:20},pageSizeModifiers:{},searchModel:{default:()=>({})},searchModelModifiers:{}}),emits:e.mergeModels(["search","reset","page-change","size-change"],["update:currentPage","update:pageSize","update:searchModel"]),setup(o,{expose:t,emit:n}){const a=o,l=n,i=e.useModel(o,"currentPage"),g=e.useModel(o,"pageSize"),f=e.useModel(o,"searchModel"),d=e.useSlots(),b=e.ref(),_=e.ref(),c=e.computed(()=>a.option),p=e.computed(()=>c.value.searchShow!==!1),v=e.computed(()=>c.value.paginationShow!==!1),h=e.computed(()=>a.columns.filter(P=>P.search&&!!d[`${P.prop}-search`])),y=e.computed(()=>a.columns.filter(P=>!P.hide&&!!d[`${P.prop}-header`])),S=e.computed(()=>a.columns.filter(P=>!P.hide&&!!d[`${P.prop}-data`]));function E(){const P={};return a.columns.forEach(I=>{I.search&&(P[I.prop]=void 0)}),P}function u(){l("search",{...f.value})}function k(){f.value=E(),l("reset")}function $(){_.value?.searchLoading()}function M(){_.value?.searchDone()}return t({tableRef:e.computed(()=>b.value?.tableRef),filterBarRef:_,searchLoading:$,searchDone:M}),(P,I)=>{const N=e.resolveDirective("loading");return e.openBlock(),e.createElementBlock("div",oo,[e.renderSlot(P.$slots,"header",{},void 0,!0),p.value?(e.openBlock(),e.createBlock(Xe,{key:0,ref_key:"filterBarRef",ref:_,modelValue:f.value,"onUpdate:modelValue":I[0]||(I[0]=w=>f.value=w),columns:P.columns,option:c.value,onSearch:u,onReset:k},e.createSlots({_:2},[e.renderList(h.value,w=>({name:`${w.prop}-search`,fn:e.withCtx(F=>[e.renderSlot(P.$slots,`${w.prop}-search`,e.normalizeProps(e.guardReactiveProps(F)),void 0,!0)])}))]),1032,["modelValue","columns","option"])):e.createCommentVNode("",!0),e.unref(d).toolbar?(e.openBlock(),e.createElementBlock("div",no,[e.renderSlot(P.$slots,"toolbar",{},void 0,!0)])):e.createCommentVNode("",!0),e.withDirectives((e.openBlock(),e.createBlock(et,{ref_key:"jtTableRef",ref:b,data:P.data,columns:P.columns,option:c.value,"table-events":P.tableEvents},e.createSlots({_:2},[e.renderList(y.value,w=>({name:`${w.prop}-header`,fn:e.withCtx(F=>[e.renderSlot(P.$slots,`${w.prop}-header`,e.normalizeProps(e.guardReactiveProps(F)),void 0,!0)])})),e.renderList(S.value,w=>({name:`${w.prop}-data`,fn:e.withCtx(F=>[e.renderSlot(P.$slots,`${w.prop}-data`,e.normalizeProps(e.guardReactiveProps(F)),void 0,!0)])})),c.value.menu?{name:"menu",fn:e.withCtx(w=>[e.renderSlot(P.$slots,"menu",e.normalizeProps(e.guardReactiveProps(w)),void 0,!0)]),key:"0"}:void 0]),1032,["data","columns","option","table-events"])),[[N,c.value.loading]]),v.value?(e.openBlock(),e.createBlock(to,{key:2,"current-page":i.value,"onUpdate:currentPage":I[1]||(I[1]=w=>i.value=w),"page-size":g.value,"onUpdate:pageSize":I[2]||(I[2]=w=>g.value=w),total:P.total,option:c.value,onPageChange:I[3]||(I[3]=w=>P.$emit("page-change",w)),onSizeChange:I[4]||(I[4]=w=>P.$emit("size-change",w))},null,8,["current-page","page-size","total","option"])):e.createCommentVNode("",!0)])}}}),lo=A(ao,[["__scopeId","data-v-6df082c6"]]),ro={class:"jt-pagination"},so={key:0,class:"jt-pagination__count"},io=e.defineComponent({name:"JtPagination",inheritAttrs:!1,__name:"index",props:e.mergeModels({defaultPageSize:{},total:{default:0},pageCount:{},pagerCount:{},defaultCurrentPage:{},layout:{default:"prev, pager, next, jumper"},pageSizes:{default:()=>[10,20,50,100]},popperClass:{},popperStyle:{},prevText:{},prevIcon:{},nextText:{},nextIcon:{},teleported:{type:Boolean},small:{type:Boolean},size:{},background:{type:Boolean},disabled:{type:Boolean},hideOnSinglePage:{type:Boolean,default:!1},appendSizeTo:{}},{currentPage:{default:1},currentPageModifiers:{},pageSize:{default:20},pageSizeModifiers:{}}),emits:e.mergeModels(le.paginationEmits,["update:currentPage","update:pageSize"]),setup(o,{emit:t}){const n=e.useModel(o,"currentPage"),a=e.useModel(o,"pageSize"),l=o,i=e.useAttrs(),g=t,f=e.computed(()=>({...i,...l})),d=e.computed(()=>Object.fromEntries(Object.keys(le.paginationEmits).filter(_=>!_.startsWith("update:")).map(_=>[_,(...c)=>g(_,...c)]))),b=e.computed(()=>!(l.hideOnSinglePage&&l.total<=a.value));return(_,c)=>{const p=z.ElPagination;return e.openBlock(),e.createElementBlock("div",ro,[e.createVNode(p,e.mergeProps({"current-page":n.value,"onUpdate:currentPage":c[0]||(c[0]=v=>n.value=v),"page-size":a.value,"onUpdate:pageSize":c[1]||(c[1]=v=>a.value=v)},f.value,e.toHandlers(d.value)),null,16,["current-page","page-size"]),b.value?(e.openBlock(),e.createElementBlock("span",so,"共"+e.toDisplayString(_.total)+"条记录",1)):e.createCommentVNode("",!0)])}}}),co=A(io,[["__scopeId","data-v-72da666d"]]),uo={class:"jt-page-header__title"},po={key:0},fo={key:0,class:"jt-page-header__operates"},mo=e.defineComponent({name:"JtPageHeader",__name:"index",props:{type:{default:"section"},title:{},operates:{default:()=>[]}},emits:["operate-click"],setup(o,{emit:t}){const n=o,a=t,l=e.useSlots(),i=e.computed(()=>n.operates.length>0||!!l.operates);function g(f,d){f.onClick?.(f,d),a("operate-click",f,d)}return(f,d)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({class:["jt-page-header",`jt-page-header--${f.type}`]},f.$attrs),[e.createElementVNode("div",uo,[e.renderSlot(f.$slots,"title",{},()=>[f.title?(e.openBlock(),e.createElementBlock("span",po,e.toDisplayString(f.title),1)):e.createCommentVNode("",!0)],!0)]),i.value?(e.openBlock(),e.createElementBlock("div",fo,[e.renderSlot(f.$slots,"operates",{operates:f.operates},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.operates,b=>(e.openBlock(),e.createBlock(e.unref(me),e.mergeProps({key:b.key??b.label,ref_for:!0},b.buttonProps,{type:b.type,disabled:b.disabled,loading:b.loading,plain:b.plain,text:b.text,link:b.link,icon:b.icon,onClick:_=>g(b,_)}),{default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(b.label),1)]),_:2},1040,["type","disabled","loading","plain","text","link","icon","onClick"]))),128))],!0)])):e.createCommentVNode("",!0)],16))}}),vo=A(mo,[["__scopeId","data-v-2f59fb4a"]]);function tt(o=null){return{scheme:null,node:null,topNodes:[],treeNodes:[],activeNode:null,activeSection:null,sections:[],sectionMap:{},raw:o}}function Ne(o){const t=ct(o),n=it(t),a=_o(t).flatMap(l=>st(l,n));return{...tt(o),scheme:n,topNodes:a,treeNodes:a}}function Re(o,t,n){return o.map(a=>a.key===t||a.tagId===t||a.id===t?{...a,children:n,loaded:!0}:{...a,children:Re(a.children,t,n)})}function ot(o,t={},n=null){const a=ct(o),l=it(a,t),i=ho(a,t,n),g=Object.fromEntries(i.map(f=>[f.key,f]));return{scheme:l,node:n,topNodes:[],treeNodes:[],activeNode:n,activeSection:i[0]??null,sections:i,sectionMap:g,raw:o}}function nt(o){return o.multRow||o.htmlDisplay==="T"?"table":"form"}function at(o,t={}){return{...t,infSchmId:t.infSchmId??D(o.raw.infSchmId),emplid:t.emplid??D(o.raw.emplid),tagId:t.tagId??o.requestTagId??o.tagId,infSetId:t.infSetId??o.infSetId,setId:t.setId??o.setId,infSetFields:o.renderType==="table"?o.rows.map(Te):[Te(o.model)],section:o}}function go(o){const t=o;return!!(t&&typeof t=="object"&&typeof t.key=="string"&&typeof t.tagId=="string")}function lt(o){const t=ut(o);return(Array.isArray(t)?t:ge(O(t),["options","list","records","data"])).map(a=>{const l=O(a);return{id:l.id,code:l.code,label:T(l.label??l.name??l.descr??l.text??l.value??l.code),name:D(l.name),value:l.value??l.code??l.id??l.label??l.name,raw:a}})}function ho(o,t,n){const a=ge(o,["sections","sets","list"]);return a.length>0?a.map(l=>je(l,t,n,a.length===1)):o.infSetMark||o.infSetFields||o.fields?[je(o,t,n,!0)]:[]}function je(o,t,n,a){const l=O(o),i=yo(l.infSetMark??l),g=bo(l.infSetFields??l.fields??[]),f=ko(l.infSetValues??l.rows??l.data,g),d=f[0]?Te(f[0]):rt(g),b=O(l.tag),_=T(l.tagId??l.infTagId??b.tagId),c=T(t.tagId??n?.tagId),p=T(n?.key),v=a?t.infSetId??n?.infSetId:void 0,h=a?t.setId:void 0,y=a?n?.code:void 0,S=i.setId||T(l.setId),E=T(l.infSetId)||S||T(v),u=S||T(h??E),k=i.code||T(l.code??y??u),$=u||k||E||_,M={key:$,id:$,setId:u,code:k,tagId:_,requestTagId:c||void 0,ownerNodeKey:p||void 0,infSetId:E,title:i.name||T(l.name??n?.tagName??$),renderType:nt(i),mark:i,fields:g,model:d,rows:f,operationInfo:Ce(t.operationInfo??l.operationInfo),raw:l};return M.renderType==="form"&&f.length===0&&(M.rows=[{...d,__rowKey:`${$}-0`}]),M}function yo(o){const t=O(o),n=T(t.htmlDisplay||"F");return{name:T(t.name??t.title),parentName:D(t.parentName),value:D(t.value),type:D(t.type),code:T(t.code),setId:T(t.setId??t.id??t.key),htmlDisplay:n,multRow:Y(t.multRow),isRequired:Y(t.isRequired),raw:t}}function bo(o){return(Array.isArray(o)?o:[]).map((n,a)=>So(n,a))}function So(o,t){const n=O(o),a=T(n.code??n.fieldCode??n.prop??n.key??`field_${t}`),l=T(n.label??n.name??n.tagName??a);return{id:T(n.id??n.key??n.prop??a),key:T(n.key??n.prop??a),code:a,label:l,value:n.value??n.defaultValue??"",type:Eo(n),fieldType:D(n.fieldType),renderType:Co(n),required:Y(n.required??n.isRequired),readonly:Y(n.readonly??n.disabled),visible:n.visible===void 0?Y(n.visibled??!0):Y(n.visible),htmlDisplay:Y(n.htmlDisplay),multRow:Y(n.multRow),isRequired:Y(n.isRequired),disabled:n.disabled===void 0?void 0:Y(n.disabled),span:ft(n.span??n.colSpan),width:xe(n.width),minWidth:xe(n.minWidth),placeholder:D(n.placeholder),options:lt(n.options),interface:dt(n.interface),cascadeClearFields:De(n.cascadeClearFields),cascadeDependFields:De(n.cascadeDependFields),props:Fe(n.props),formItemProps:Fe(n.formItemProps),raw:n}}function ko(o,t){if(Array.isArray(o)&&o.some(l=>{const i=O(l);return t.some(g=>i[g.code]!==void 0||i[g.key]!==void 0)}))return o.map((l,i)=>({...O(l),__rowKey:T(O(l).__rowKey??O(l).key??i)}));const n=rt(t);return Object.keys(n).length?[{...n,__rowKey:"0"}]:[]}function rt(o){return o.reduce((t,n)=>(t[n.code||n.key]=n.value,t),{})}function st(o,t,n=""){const a=O(o),l=ge(a,["children","list","tags"]).flatMap(g=>st(g,t,T(a.tagId??a.id??a.key))),i=Bo(a.infSetList);return l.length===0&&i.length>0?i.map((g,f)=>wo(a,g,t,n,f)):[Io(a,t,n,l)]}function Io(o,t,n,a){const l=T(o.tagId??o.id??o.key),i=T(o.tagName??o.name??o.label??l);return{key:T(o.key??l),id:l,tagId:l,tagName:i,label:i,tagLevel:D(o.tagLevel??o.level)??null,level:pt(o.tagLevel??o.level),parentTagId:D(o.parentTagId??o.parentId??n),parentId:D(o.parentTagId??o.parentId??n)??null,infSchmId:D(o.infSchmId??t?.infSchmId),schemeId:T(o.infSchmId??t?.infSchmId),infSetId:D(o.infSetId??o.setId),setId:D(o.setId),code:D(o.code),children:a,infSetList:[],operationInfo:Ce(o.operationInfo),loaded:a.length>0,raw:o}}function wo(o,t,n,a,l){const i=T(o.tagId??o.id??o.key),g=T(o.tagName??o.name??o.label??i),f=t.infSetId||T(t.setId),d=t.setId||f,b=f||`${i}-${l}`;return{key:b,id:b,tagId:i,tagName:g,label:g,tagLevel:D(o.tagLevel??o.level)??null,level:pt(o.tagLevel??o.level),parentTagId:D(o.parentTagId??o.parentId??a),parentId:D(o.parentTagId??o.parentId??a)??null,infSchmId:D(o.infSchmId??n?.infSchmId),schemeId:T(o.infSchmId??n?.infSchmId),infSetId:f,setId:d,code:D(o.code??f),children:[],infSetList:[t],operationInfo:Ce(o.operationInfo),loaded:!0,raw:{...o,infSetId:f,setId:d,infSetList:[t.raw]}}}function it(o,t={}){const n=O(o.globalInfoSchmMark??o.scheme??o),a=T(n.infSchmId??t.infSchmId),l=T(n.emplid??t.emplid);return!a&&!l&&Object.keys(n).length===0?null:{infSchmId:a,emplid:l,id:a,mark:T(n.globalInfoSchmMark??o.globalInfoSchmMark),config:Array.isArray(o.globalInfoSchmConfig)?"":T(n.globalInfoSchmConfig??o.globalInfoSchmConfig),raw:n}}function _o(o){if(Array.isArray(o.globalInfoSchmConfig))return o.globalInfoSchmConfig;const t=O(o.globalInfoSchmConfig),n=ge(t,["children","tree","list","tags"]);return n.length?n:ge(o,["children","tree","list","tags","records"])}function Bo(o){return Array.isArray(o)?o.map(t=>{const n=O(t);return{infSetId:T(n.infSetId??n.setId??n.id),setId:D(n.setId),operationInfo:Ce(n.operationInfo),raw:n}}):[]}function ct(o){return O(ut(o))}function ut(o){const t=O(o);return t.data??t.result??o}function ge(o,t){for(const n of t){const a=o[n];if(Array.isArray(a))return a}return[]}function Te(o){const t={...o};return delete t.__rowKey,delete t.fields,t}function dt(o){const t=O(o);if(!(!t.method&&!t.url&&!t.params))return{...t,method:D(t.method),url:D(t.url),params:Fe(t.params)}}function Ce(o){const t=O(o);if(Object.keys(t).length!==0)return Object.fromEntries(Object.entries(t).map(([n,a])=>[n,dt(a)??a]))}function De(o){if(!Array.isArray(o))return;const t=o.map(n=>T(n)).filter(Boolean);return t.length?t:void 0}function Co(o){if(Y(o.htmlDisplay))return"html";if(Y(o.multRow))return"multi-row";const t=T(o.renderType).toLowerCase();return t==="code"||t==="empty"?t:"text"}function Eo(o){const t=T(o.fieldType??o.type??o.renderType).toLowerCase();return t.includes("date")?"date":t.includes("select")||t.includes("enum")?"select":t.includes("number")||t.includes("int")?"number":t.includes("bool")||t.includes("switch")?"switch":t.includes("file")||t.includes("upload")||t.includes("attachment")?"file":t.includes("textarea")||t.includes("text_area")?"textarea":"text"}function Fe(o){const t=O(o);return Object.keys(t).length?t:void 0}function xe(o){return typeof o=="string"||typeof o=="number"?o:void 0}function O(o){return o&&typeof o=="object"&&!Array.isArray(o)?o:{}}function T(o){return o==null?"":String(o).trim()}function D(o){return T(o)||void 0}function pt(o){const t=ft(o);return t===void 0?null:t}function ft(o){if(o==null||o==="")return;const t=Number(o);return Number.isFinite(t)?t:void 0}function Y(o){return typeof o=="string"?["true","1","y","yes","t","是"].includes(o.toLowerCase()):!!o}const ae=o=>o.key||o.code,W=o=>o.key||o.setId,ie=o=>new Error(`[GlobalInfo] ${o}`),ce=o=>o&&typeof o=="object"&&!Array.isArray(o)?o:{},_e=o=>{const t=ce(o);return!!(t.url||t.method||t.params)},Vo=o=>String(o??"").trim(),he=o=>Array.from(new Set(o.map(Vo).filter(Boolean))),ve=o=>he([o?.key,o?.id,o?.setId,o?.infSetId,o?.tagId,o?.code,...(o?.infSetList??[]).map(t=>t.infSetId),...(o?.infSetList??[]).map(t=>t.setId)]),$o=o=>he([o.key,o.id,o.setId,o.infSetId,o.tagId,o.code]),pe=(o={})=>({loading:!1,saving:!1,error:null,loaded:!1,editing:!1,...o}),fe=o=>!!(o&&typeof o=="object"&&"children"in o),mt=(o,t,n)=>{const a=$o(o),l=he([n,...ve(t)]);return l.length===0?!1:l.some(i=>a.includes(i))},Po=(o,t,n)=>he([n,...ve(t)]).length===0?o:o.filter(l=>mt(l,t,n)),vt=o=>{const t=e.ref(!1),n=e.ref(!1),a=e.ref(!1),l=e.shallowRef(null),i=e.shallowRef([]),g=e.shallowRef(null),f=e.shallowRef(null),d=e.shallowRef(null),b=e.shallowRef({}),_=e.shallowRef({}),c=e.ref([]),p=e.shallowRef({}),v=e.ref([]),h=e.computed(()=>{const s=c.value.map(m=>b.value[m]).filter(m=>!!m),r=Object.entries(b.value).filter(([m])=>!c.value.includes(m)).map(([,m])=>m);return[...s,...r]}),y=e.computed(()=>({loading:t.value,detailLoading:n.value,saving:a.value,editingSectionKeys:v.value,sectionMap:b.value,sectionStatusMap:Object.fromEntries(Object.entries(p.value).map(([s,r])=>[s,{...r,editing:v.value.includes(_.value[s]??s)}])),error:l.value})),S=()=>({adaptScene:o.adaptScene,emplid:o.emplid}),E=s=>({...S(),infSchmId:s.infSchmId,tagId:s.tagId,tagLevel:s.tagLevel,parentTagId:s.parentTagId}),u=(s=f.value,r=d.value)=>({...S(),infSchmId:s?.infSchmId,tagId:s?.tagId,infSetId:r?.infSetId??s?.infSetId,setId:r?.setId??s?.setId}),k=async(s,r)=>{if(!o.service.requestOperation)throw ie("service.requestOperation is required for operationInfo");return o.service.requestOperation(s,r)},$=(s,r={},m)=>{const C=ce(s.params),V=m?.cascadeDependFields??[];let L=0;return Object.fromEntries(Object.entries(C).map(([R,G])=>{if(G!=="")return[R,G];if(r[R]!==void 0)return[R,r[R]];const q=V[L];return L+=1,[R,q?r[q]??"":G]}))},M=s=>{const m=ce(s.operationInfo).openTag;return _e(m)?m:void 0},P=(s,r,m)=>{const C=ce(s?.operationInfo).queryInfoSet;if(_e(C))return C;const V=r?.infSetList.find(R=>R.infSetId===m),L=ce(V?.operationInfo).queryInfoSet;return _e(L)?L:void 0},I=s=>{const r=ce(s.operationInfo).editInfoSet;return _e(r)?r:void 0},N=(s,r)=>{if(!r)return s[0]??null;for(const m of s){if(ve(m).includes(r))return m;const C=N(m.children,r);if(C)return C}return null},w=(s=d.value)=>{if(s)return typeof s=="string"?s:fe(s)?Z(s):W(s)},F=(s=d.value)=>{const r=w(s);if(!r)return null;const m=_.value[r]??r;return b.value[m]??null},U=(s=d.value)=>{const r=w(s);if(r)return _.value[r]??r},Z=(s=d.value)=>{if(s)return typeof s=="string"?s:fe(s)?s.setId??s.infSetId??s.key:W(s)},ye=(s=d.value)=>{if(fe(s))return s;if(typeof s=="string"){const r=N(i.value,s);if(r)return r;const m=F(s);return m?.ownerNodeKey?N(i.value,m.ownerNodeKey)??f.value:m||f.value&&ve(f.value).includes(s)?f.value:null}return s?.ownerNodeKey?N(i.value,s.ownerNodeKey)??f.value:f.value},be=(s=d.value)=>!s||fe(s)?null:F(s),Ee=(s=d.value)=>{const r=Z(s);if(!r)return pe();const m=_.value[r]??r;return pe({...p.value[r],...p.value[m],editing:v.value.includes(m)})},J=(s,r)=>{const m=Z(s);m&&(p.value={...p.value,[m]:pe({...p.value[m],...r,editing:v.value.includes(m)})})},te=(s=g.value?.raw??null,r=f.value)=>{const m=h.value,C=d.value&&m.find(V=>W(V)===W(d.value))?d.value:null;g.value={scheme:g.value?.scheme??null,node:r,topNodes:i.value,treeNodes:i.value,activeNode:r,activeSection:C,sections:m,sectionMap:b.value,raw:s},d.value=C},ue=(s,r=f.value,m)=>{const C={...b.value},V={..._.value},L=[...c.value],R={...p.value},G=Po(s.sections,r,m),q=he([m,...ve(r)]).length>0,K=G.find(ne=>mt(ne,r,m))??(q?null:s.activeSection??G[0]??d.value??null);return G.forEach(ne=>{const X=W(ne);C[X]=ne,L.includes(X)||L.push(X),R[X]=pe({...R[X],loaded:!0,loading:!1,error:null,editing:v.value.includes(X)})}),m&&K?V[m]=W(K):m&&(V[m]=""),m&&(R[m]=pe({...R[m],loaded:!0,loading:!1,error:null,editing:!!(K&&v.value.includes(W(K)))})),b.value=C,_.value=V,c.value=L,p.value=R,g.value={...s,scheme:s.scheme??g.value?.scheme??null,topNodes:i.value,treeNodes:i.value,activeNode:r,activeSection:K,sections:G,sectionMap:b.value},d.value=K,K},oe=(s,r)=>{const m=U(s),C=m?b.value[m]:null;if(!m||!C)return;const V=r(C);b.value={...b.value,[m]:V},d.value=W(d.value??V)===m?V:d.value,te()},re=async(s=d.value??f.value)=>{const r=be(s),m=ye(s)??f.value,C=Z(s);if(!m)return null;if(!o.service.requestOperation)throw ie("service.requestOperation is required");n.value=!0,l.value=null,J(C??m,{loading:!0,error:null});try{const V=r?[{infSetId:r.infSetId,setId:r.setId,operationInfo:r.operationInfo,raw:r.raw}]:m.infSetList;if(V.length===0)throw ie("node.infSetList is required");const L=await Promise.all(V.map(async G=>{const q=P(r,m,G.infSetId),K={...u(m,r),infSetId:G.infSetId,setId:G.setId,operationInfo:G.operationInfo};if(q){const ne=await k(q,{type:"queryInfoSet",node:m,section:r,params:K});return ot(ne,K,m)}throw ie("infoSet.operationInfo.queryInfoSet is required")})),R={...L[0],sections:L.flatMap(G=>G.sections),sectionMap:Object.fromEntries(L.flatMap(G=>G.sections).map(G=>[G.key,G]))};return ue(R,m,C)}catch(V){throw l.value=V,J(C??m,{loading:!1,error:V}),V}finally{n.value=!1,J(C??m,{loading:!1})}},de=(s=d.value)=>re(s),Ve=(s=d.value)=>{if(!s)return null;if(!fe(s)&&typeof s!="string")return F(s);const r=Z(s);return r?b.value[_.value[r]??r]??null:null},Se=async(s=f.value)=>s?(await re(s),g.value):(g.value=null,d.value=null,b.value={},_.value={},c.value=[],p.value={},null),ke=async s=>{const r=M(s);if(!r)return s.children;const m=E(s),C=await k(r,{type:"openTag",node:s,params:m});return Ne(C).treeNodes},B=async s=>{if(s.loaded)return s.children;const r=await ke(s);return r.length>0&&(i.value=Re(i.value,s.key,r)),r},j=async s=>{const r=typeof s=="string"?N(i.value,s):s;return r?(f.value=r,d.value=null,v.value=[],await B(r),te(g.value?.raw,r),r):null},x=async()=>{const s=o.service.templateTree;if(!s)throw ie("service.templateTree is required");t.value=!0,l.value=null;try{const r=await s(S()),m=Ne(r),C=await Promise.all(m.treeNodes.map(async L=>{const R=await ke(L);return{...L,children:R,loaded:R.length>0||L.loaded}}));i.value=C,d.value=null,b.value={},_.value={},c.value=[],p.value={},v.value=[];const V=N(C,o.initialActiveNodeKey)??N(C);return f.value=V,g.value={...m,treeNodes:C,activeNode:V,sectionMap:b.value,sections:h.value},i.value}catch(r){throw l.value=r,r}finally{t.value=!1}},se=async()=>{const s=w();await de(d.value??f.value);const r=h.value.find(m=>W(m)===s);return r&&(d.value=r),te(),g.value},Ie=(s=d.value)=>{const r=U(s);return!!(r&&v.value.includes(r))},Et=(s=d.value)=>{const r=U(s);!r||Ie(r)||(v.value=[...v.value,r],J(r,{editing:!0}))},Ge=(s=d.value)=>{const r=U(s);r&&(v.value=v.value.filter(m=>m!==r),J(r,{editing:!1}))},Vt=(s,r,m)=>{const C=typeof r=="string"?r:ae(r);oe(s,V=>{const R=(typeof r=="string"?V.fields.find(q=>ae(q)===C||q.code===C):r)?.cascadeClearFields??[],G={...V.model,[C]:m};return R.forEach(q=>{G[q]=""}),{...V,model:G,rows:V.renderType==="form"?[{...V.rows[0],...G}]:V.rows,fields:V.fields.map(q=>{const K=ae(q);return K===C||q.code===C?{...q,value:m}:R.includes(K)||R.includes(q.code)?{...q,value:""}:q})}})},$t=async(s,r,m={})=>{const C=F(s);if(!C)return[];const V=Object.keys(m).length>0?m:C.model,L=typeof r=="string"?r:ae(r),R=typeof r=="string"?C.fields.find(Q=>ae(Q)===L||Q.code===L):r,G=R?.interface;if(!R||!G)return R?.options??[];if((R.cascadeDependFields??[]).some(Q=>{const H=V[Q];return H==null||H===""}))return oe(C,Q=>({...Q,fields:Q.fields.map(H=>ae(H)===L||H.code===L?{...H,options:[]}:H)})),[];const K=$(G,V,R),ne=await k({...G,params:K},{type:"fieldOptions",node:ye(C),section:C,field:R,params:K}),X=lt(ne);return oe(C,Q=>({...Q,fields:Q.fields.map(H=>ae(H)===L||H.code===L?{...H,options:X}:H)})),X},Pt=(s,r)=>{if(Array.isArray(r)){we(s,r);return}oe(s,m=>({...m,model:r,rows:m.renderType==="form"?[{...m.rows[0],...r}]:m.rows,fields:m.fields.map(C=>({...C,value:r[ae(C)]}))}))},we=(s,r)=>{oe(s,m=>({...m,rows:r,data:r}))},Nt={loadTree:x,selectNode:j,loadDetail:Se,reloadActiveSection:se,loadSection:re,reloadSection:de,getSection:Ve,getSectionStatus:Ee,startEdit:Et,cancelEdit:Ge,updateField:Vt,loadFieldOptions:$t,updateModel:Pt,updateTableRows:we,saveRow:(s,r={},m=-1)=>{const V=[...F(s)?.rows??[]];V.splice(m>=0?m:V.length,m>=0?1:0,r),we(s,V)},deleteRow:(s,r)=>{const m=F(s),C=typeof r=="string"?Number(r):r,V=(m?.rows??[]).filter((L,R)=>R!==C);we(s,V)},saveSection:async(s=d.value)=>{const r=w(s),m=F(s);if(!m)return null;const C=I(m);if(!C)throw ie("section.operationInfo.editInfoSet is required");a.value=!0,l.value=null,r&&r!==W(m)&&J(r,{saving:!0,error:null}),J(m,{saving:!0,error:null});try{const V=u(f.value,m),L=at(m,V),R=await k({...C,params:{...$(C,m.model),...L}},{type:"editInfoSet",node:f.value,section:m,params:L});return Ge(m),await de(m),R}catch(V){throw l.value=V,r&&r!==W(m)&&J(r,{saving:!1,error:V}),J(m,{saving:!1,error:V}),V}finally{a.value=!1,r&&r!==W(m)&&J(r,{saving:!1}),J(m,{saving:!1})}},isEditing:Ie};return e.watch(()=>o.emplid,()=>{(o.autoLoad??!0)&&x()}),e.onMounted(()=>{(o.autoLoad??!0)&&x()}),{viewModel:g,nodes:i,sections:h,sectionMap:b,sectionStatusMap:p,activeNode:f,activeSection:d,state:y,actions:Nt}},No=e.defineComponent({name:"GlobalInfoProvider",__name:"GlobalInfoProvider",props:{service:{},adaptScene:{},emplid:{},autoLoad:{type:Boolean,default:!0},initialActiveNodeKey:{}},setup(o){const n=vt(o),{viewModel:a,nodes:l,sections:i,activeNode:g,activeSection:f,state:d,actions:b}=n;return(_,c)=>e.renderSlot(_.$slots,"default",e.normalizeProps(e.guardReactiveProps({viewModel:e.unref(a),nodes:e.unref(l),sections:e.unref(i),activeNode:e.unref(g),activeSection:e.unref(f),state:e.unref(d),actions:e.unref(b)})))}});function To(o){return qe(o.type||o.fieldType)||qe(o.renderType)||"text"}function gt(o){return Oe(o.type||o.fieldType)||Oe(o.renderType)||"text"}function Me(o){return o==null||o===""||Array.isArray(o)&&o.length===0}function ht(o){if(o instanceof Error)return!0;if(!o||typeof o!="object")return!1;const t=o;return typeof t.message=="string"&&(typeof t.stack=="string"||t.name==="Error")}function yt(o,t,n="-"){const a=gt(o);return a==="empty"||Me(t)?n:ht(t)?(console.error("[globalInfo] field value render failed",t),n):a==="select"?Fo(o,t,n):a==="switch"?bt(t)?"是":"否":a==="file"?Ro(t,n):a==="multi-row"?Mo(t):String(t)}function bt(o){if(typeof o=="boolean")return o;if(typeof o=="number")return o!==0;const t=String(o??"").trim().toLowerCase();return["true","1","y","yes","t","是"].includes(t)}function qe(o){const t=String(o??"").toLowerCase();return t==="upload"||t==="attachment"?"file":t==="text"||t==="textarea"||t==="select"||t==="date"||t==="number"||t==="switch"||t==="file"||t==="html"||t==="code"||t==="multi-row"||t==="empty"?t:""}function Oe(o){const t=String(o??"").toLowerCase();return t==="upload"||t==="attachment"?"file":t==="select"||t==="switch"||t==="file"||t==="html"||t==="code"||t==="multi-row"||t==="empty"?t:t==="textarea"||t==="date"||t==="number"||t==="text"?"text":""}function Fo(o,t,n){if(Array.isArray(t)){const a=t.map(l=>Ae(o,l)||String(l??"").trim()).filter(Boolean);return a.length>0?a.join("、"):n}return Ae(o,t)||String(t)}function Ae(o,t){return o.options?.find(a=>a.value===t||String(a.value)===String(t))?.label??""}function Ro(o,t){if(Array.isArray(o)){const n=o.map(a=>Ke(a)).filter(Boolean);return n.length>0?n.join("、"):t}return Ke(o)||t}function Ke(o){if(typeof File<"u"&&o instanceof File)return o.name;if(o&&typeof o=="object"){const t=o;return String(t.name??t.fileName??t.filename??t.url??"").trim()}return String(o??"").trim()}function Mo(o){return Array.isArray(o)?o.map(t=>ht(t)?(console.error("[globalInfo] multi-row field item render failed",t),""):t&&typeof t=="object"?JSON.stringify(t):String(t)).filter(Boolean).join(`
3
+ `):String(o)}const Lo=["disabled","accept","multiple"],zo={key:0,class:"global-info-field-control__file-text"},Go={key:1,class:"global-info-field-control__file-upload"},jo=e.defineComponent({name:"GlobalInfoFieldControl",__name:"GlobalInfoFieldControl",props:{field:{},modelValue:{},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change","loadOptions"],setup(o,{emit:t}){const n=o,a=t,l=["textarea","html","code","multi-row"],i=e.computed(()=>To(n.field)),g=e.computed(()=>n.disabled||n.field.disabled||n.field.readonly),f=e.computed(()=>n.modelValue===void 0||n.modelValue===null?"":String(n.modelValue)),d=e.computed(()=>{if(n.modelValue===void 0||n.modelValue===null||n.modelValue==="")return;const u=typeof n.modelValue=="number"?n.modelValue:Number(n.modelValue);return Number.isFinite(u)?u:void 0}),b=e.computed(()=>{const u=n.field.props?.activeValue??n.field.props?.["active-value"],k=n.field.props?.inactiveValue??n.field.props?.["inactive-value"];return u!==void 0||k!==void 0?n.modelValue??k??!1:bt(n.modelValue)}),_=e.computed(()=>i.value==="code"?5:3),c=e.computed(()=>i.value==="file"&&!Me(n.modelValue)),p=e.computed(()=>yt(n.field,n.modelValue,"请选择文件")),v=e.computed(()=>n.field.placeholder?n.field.placeholder:i.value==="select"?"请选择":i.value==="date"?"请选择日期":i.value==="file"?"请选择文件":"请输入");function h(u){a("update:modelValue",u)}function y(u){a("change",u)}function S(u){u&&a("loadOptions")}function E(u){const k=u.target,$=Array.from(k.files??[]),M=n.field.props?.multiple?$:$[0]??null;h(M),y(M)}return(u,k)=>{const $=z.ElOption,M=z.ElSelect,P=z.ElDatePicker,I=z.ElInputNumber,N=z.ElSwitch,w=z.ElInput;return i.value==="select"?(e.openBlock(),e.createBlock(M,e.mergeProps({key:0,class:"global-info-field-control"},u.field.props,{"model-value":u.modelValue,placeholder:v.value,disabled:g.value,clearable:"",onVisibleChange:S,"onUpdate:modelValue":h,onChange:y}),{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.field.options||[],F=>(e.openBlock(),e.createBlock($,{key:String(F.value),label:F.label,value:F.value},null,8,["label","value"]))),128))]),_:1},16,["model-value","placeholder","disabled"])):i.value==="date"?(e.openBlock(),e.createBlock(P,e.mergeProps({key:1,class:"global-info-field-control"},u.field.props,{"model-value":u.modelValue,placeholder:v.value,disabled:g.value,type:"date","value-format":"YYYY-MM-DD","onUpdate:modelValue":h,onChange:y}),null,16,["model-value","placeholder","disabled"])):i.value==="number"?(e.openBlock(),e.createBlock(I,e.mergeProps({key:2,class:"global-info-field-control"},u.field.props,{"model-value":d.value,placeholder:v.value,disabled:g.value,"controls-position":"right","onUpdate:modelValue":h,onChange:y}),null,16,["model-value","placeholder","disabled"])):i.value==="switch"?(e.openBlock(),e.createBlock(N,e.mergeProps({key:3,class:"global-info-field-control global-info-field-control--switch"},u.field.props,{"model-value":b.value,disabled:g.value,"onUpdate:modelValue":h,onChange:y}),null,16,["model-value","disabled"])):i.value==="file"?(e.openBlock(),e.createElementBlock("label",{key:4,class:e.normalizeClass(["global-info-field-control global-info-field-control--file",{"is-disabled":g.value,"is-empty":!c.value,"is-filled":c.value}])},[e.createElementVNode("input",{class:"global-info-field-control__file-input",type:"file",disabled:g.value,accept:String(u.field.props?.accept??""),multiple:!!u.field.props?.multiple,onChange:E},null,40,Lo),c.value?(e.openBlock(),e.createElementBlock("span",zo,e.toDisplayString(p.value),1)):(e.openBlock(),e.createElementBlock("span",Go,"上 传"))],2)):i.value==="empty"?(e.openBlock(),e.createBlock(w,{key:5,class:"global-info-field-control","model-value":"",disabled:"",placeholder:"-"})):(e.openBlock(),e.createBlock(w,e.mergeProps({key:6,class:["global-info-field-control",{"global-info-field-control--code":i.value==="code"}]},u.field.props,{"model-value":f.value,placeholder:v.value,disabled:g.value,type:l.includes(i.value)?"textarea":"text",rows:l.includes(i.value)?_.value:void 0,"onUpdate:modelValue":h,onChange:y}),null,16,["class","model-value","placeholder","disabled","type","rows"]))}}}),Le=A(jo,[["__scopeId","data-v-ba86a0ae"]]),Do=["innerHTML"],xo={key:1,class:"global-info-field-value global-info-field-value--code"},qo=e.defineComponent({name:"GlobalInfoFieldValue",__name:"GlobalInfoFieldValue",props:{field:{},value:{},emptyText:{default:"-"}},setup(o){const t=o,n=e.computed(()=>gt(t.field)),a=e.computed(()=>n.value==="empty"||Me(t.value)),l=e.computed(()=>yt(t.field,t.value,t.emptyText));return(i,g)=>n.value==="html"&&!a.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"global-info-field-value global-info-field-value--html",innerHTML:l.value},null,8,Do)):n.value==="code"&&!a.value?(e.openBlock(),e.createElementBlock("pre",xo,e.toDisplayString(l.value),1)):(e.openBlock(),e.createElementBlock("span",{key:2,class:e.normalizeClass(["global-info-field-value",{"global-info-field-value--multi-row":n.value==="multi-row","global-info-field-value--file":n.value==="file"&&!a.value}])},e.toDisplayString(l.value),3))}}),ze=A(qo,[["__scopeId","data-v-aa0d493d"]]),Oo={class:"global-info-form-renderer__label"},Ao={key:0,class:"global-info-form-renderer__required"},Ko=e.defineComponent({name:"GlobalInfoFormRenderer",__name:"GlobalInfoFormRenderer",props:{section:{},node:{},editing:{type:Boolean},state:{},actions:{},model:{},onUpdateModel:{type:Function}},setup(o){const t=o,n=e.useSlots(),a=e.computed(()=>t.section.fields.filter(p=>p.visible)),l=e.computed(()=>t.model??t.section.model);function i(p,v){const h={...l.value,[p.code]:v};(p.cascadeClearFields??[]).forEach(y=>{h[y]=""}),t.onUpdateModel?.(h),t.onUpdateModel||t.actions.updateField(t.section,p,v)}async function g(p){try{await t.actions.loadFieldOptions(t.section,p,l.value)}catch(v){console.error("[GlobalInfoFormRenderer] load field options failed",v)}}function f(p){const v=l.value[p.code];return{field:p,section:t.section,sectionView:t.section,node:t.node,editing:t.editing,modelValue:v,value:v,state:t.state,actions:t.actions,updateModelValue:h=>i(p,h)}}function d(p){const v=String(p.id||p.key||p.code||"").trim(),h=v?`field-${v}`:"";if(h&&n[h])return h;const y=h.toLowerCase();return y!==h&&n[y]?y:""}function b(p){return p.span?Math.min(Math.max(p.span,1),24):6}function _(p){return p.key||p.id||p.code}function c(p){return p.required||p.isRequired}return(p,v)=>{const h=z.ElFormItem,y=z.ElCol,S=z.ElRow,E=z.ElForm;return e.openBlock(),e.createBlock(E,{class:"global-info-form-renderer",model:l.value,"label-position":"top"},{default:e.withCtx(()=>[e.createVNode(S,{gutter:24},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,u=>(e.openBlock(),e.createBlock(y,{key:_(u),span:b(u)},{default:e.withCtx(()=>[e.createVNode(h,e.mergeProps({prop:u.code,ref_for:!0},u.formItemProps),{label:e.withCtx(()=>[e.createElementVNode("span",Oo,[c(u)?(e.openBlock(),e.createElementBlock("span",Ao,"*")):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(u.label),1)])]),default:e.withCtx(()=>[d(u)?e.renderSlot(p.$slots,d(u),e.mergeProps({key:0,ref_for:!0},f(u)),void 0,!0):p.editing&&!u.readonly?(e.openBlock(),e.createBlock(Le,{key:1,field:u,"model-value":l.value[u.code],section:p.section,onLoadOptions:()=>g(u),"onUpdate:modelValue":k=>i(u,k)},null,8,["field","model-value","section","onLoadOptions","onUpdate:modelValue"])):(e.openBlock(),e.createBlock(ze,{key:2,field:u,value:l.value[u.code],section:p.section},null,8,["field","value","section"]))]),_:2},1040,["prop"])]),_:2},1032,["span"]))),128))]),_:3})]),_:3},8,["model"])}}}),St=A(Ko,[["__scopeId","data-v-9dcd2ba9"]]),kt=e.defineComponent({name:"GlobalInfoDeleteConfirm",__name:"GlobalInfoDeleteConfirm",props:{title:{default:"确认删除吗?"},confirmText:{default:"确认"},cancelText:{default:"取消"}},emits:["confirm","cancel"],setup(o){return(t,n)=>{const a=z.ElPopconfirm;return e.openBlock(),e.createBlock(a,{title:t.title,"confirm-button-text":t.confirmText,"cancel-button-text":t.cancelText,width:"240","popper-class":"global-info-delete-confirm",onConfirm:n[0]||(n[0]=l=>t.$emit("confirm")),onCancel:n[1]||(n[1]=l=>t.$emit("cancel"))},{reference:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},8,["title","confirm-button-text","cancel-button-text"])}}}),Uo={class:"global-info-table-renderer"},Jo={class:"global-info-table-renderer__table-scroll"},Ho={class:"global-info-table-renderer__header"},Wo={key:0,class:"global-info-table-renderer__required"},Yo=e.defineComponent({name:"GlobalInfoTableRenderer",__name:"GlobalInfoTableRenderer",props:{section:{},node:{},editing:{type:Boolean},state:{},actions:{},showAdd:{type:Boolean,default:!0},showDelete:{type:Boolean,default:!0}},setup(o){const t=o,n=e.useSlots(),a=e.computed(()=>t.section.fields.filter(u=>u.visible));function l(u){t.actions.deleteRow(t.section,u)}function i(u,k,$,M){const P=t.section.rows.slice(),I=$.cascadeClearFields??[],N={...u,__rowKey:S(u),[$.code]:M};I.forEach(w=>{N[w]=""}),P[k]={...N},t.actions.updateTableRows(t.section,P)}async function g(u,k){try{await t.actions.loadFieldOptions(t.section,u,k)}catch($){console.error("[GlobalInfoTableRenderer] load field options failed",$)}}function f(u,k,$){const M=k[u.code];return{field:u,section:t.section,sectionView:t.section,node:t.node,row:k,rowIndex:$,editing:t.editing,modelValue:M,value:M,state:t.state,actions:t.actions,updateModelValue:P=>i(k,$,u,P)}}function d(u){const k=String(u.id||u.key||u.code||"").trim(),$=k?`field-${k}`:"";if($&&n[$])return $;const M=$.toLowerCase();return M!==$&&n[M]?M:""}function b(u){return!u.readonly&&!u.disabled}function _(u){return u.width??(v(u)?56:void 0)}function c(u){if(!u.width)return u.minWidth??(v(u)?56:void 0)}function p(u){return u.key||u.id||u.code}function v(u){return[u.label,u.name,u.code,u.key,u.id].map($=>String($??"").trim().toLowerCase()).some($=>["序号","index","idx","seq","serial","order","rownum","row_no"].includes($))}let h=0;const y=new WeakMap;function S(u){const k=u.__rowKey??u.key??u.id??u.setId??u.infSetId;if(k!=null&&k!=="")return String(k);const $=u,M=y.get($);if(M)return M;h+=1;const P=`local-${h}`;return y.set($,P),P}function E(u){return u.required||u.isRequired}return(u,k)=>{const $=z.ElTableColumn,M=e.resolveComponent("Delete"),P=z.ElIcon,I=z.ElButton,N=z.ElTable;return e.openBlock(),e.createElementBlock("div",Uo,[e.createElementVNode("div",Jo,[e.createVNode(N,{class:"global-info-table-renderer__table",data:u.section.rows,"row-key":S},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,w=>(e.openBlock(),e.createBlock($,{key:p(w),prop:w.code,label:w.label,width:_(w),"min-width":c(w)},{header:e.withCtx(()=>[e.createElementVNode("span",Ho,[E(w)?(e.openBlock(),e.createElementBlock("span",Wo,"*")):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(w.label),1)])]),default:e.withCtx(({row:F,$index:U})=>[d(w)?e.renderSlot(u.$slots,d(w),e.mergeProps({key:0,ref_for:!0},f(w,F,U)),void 0,!0):u.editing&&b(w)?(e.openBlock(),e.createBlock(Le,{key:1,field:w,"model-value":F[w.code],section:u.section,row:F,"row-index":U,onLoadOptions:()=>g(w,F),"onUpdate:modelValue":Z=>i(F,U,w,Z)},null,8,["field","model-value","section","row","row-index","onLoadOptions","onUpdate:modelValue"])):(e.openBlock(),e.createBlock(ze,{key:2,field:w,value:F[w.code],section:u.section,row:F,"row-index":U},null,8,["field","value","section","row","row-index"]))]),_:2},1032,["prop","label","width","min-width"]))),128)),u.editing?(e.openBlock(),e.createBlock($,{key:0,label:"操作",width:"104",fixed:"right"},{default:e.withCtx(({$index:w})=>[u.showDelete?(e.openBlock(),e.createBlock(kt,{key:0,onConfirm:F=>l(w)},{default:e.withCtx(()=>[e.createVNode(I,{class:"global-info-table-renderer__delete",link:"",type:"danger"},{default:e.withCtx(()=>[e.createVNode(P,{class:"global-info-table-renderer__delete-icon"},{default:e.withCtx(()=>[e.createVNode(M)]),_:1}),k[0]||(k[0]=e.createTextVNode(" 删除 "))]),_:1})]),_:2},1032,["onConfirm"])):e.createCommentVNode("",!0)]),_:1})):e.createCommentVNode("",!0)]),_:3},8,["data"])])])}}}),It=A(Yo,[["__scopeId","data-v-2fa29438"]]),wt=e.defineComponent({name:"GlobalInfoAutoRenderer",__name:"GlobalInfoAutoRenderer",props:{section:{},node:{},editing:{type:Boolean},state:{},actions:{}},setup(o){return(t,n)=>t.section.renderType==="table"?(e.openBlock(),e.createBlock(It,{key:0,section:t.section,node:t.node,editing:t.editing,state:t.state,actions:t.actions},null,8,["section","node","editing","state","actions"])):(e.openBlock(),e.createBlock(St,{key:1,section:t.section,node:t.node,editing:t.editing,state:t.state,actions:t.actions},null,8,["section","node","editing","state","actions"]))}}),_t=e.defineComponent({name:"GlobalInfoSectionOutlet",__name:"GlobalInfoSectionOutlet",props:{section:{},node:{},editing:{type:Boolean},state:{},actions:{}},setup(o){const t=o,n=e.useSlots(),a=e.computed(()=>t.editing??t.actions.isEditing(t.section)),l=e.computed(()=>t.section.renderType==="table"?t.section.rows.length===0:t.section.fields.length===0),i=e.computed(()=>{const d=g(t.section.id||t.section.key),b=f(t.section.renderType);return[d,b,"default"].find(_=>!!(_&&n[_]))??""});function g(d){const b=String(d??"").trim();return b?`section-${b}`:""}function f(d){return d==="form"||d==="table"?d:""}return(d,b)=>i.value?e.renderSlot(d.$slots,i.value,{key:0,section:d.section,sectionView:d.section,node:d.node,editing:a.value,isEmpty:l.value,empty:l.value,fields:d.section.fields,state:d.state,actions:d.actions}):(e.openBlock(),e.createBlock(wt,{key:1,section:d.section,node:d.node,editing:a.value,state:d.state,actions:d.actions},null,8,["section","node","editing","state","actions"]))}}),Zo=e.defineComponent({name:"GlobalInfoSlotErrorBoundary",props:{boundaryKey:{type:[String,Number],default:""},label:{type:String,default:""}},emits:{error:o=>!0},setup(o,{emit:t,slots:n}){const a=e.ref(!1);e.watch(()=>o.boundaryKey,()=>{a.value=!1}),e.onErrorCaptured(i=>(l(i),!1));function l(i){a.value=!0,console.error(`[GlobalInfoSlotErrorBoundary] ${o.label||"section"} slot render failed`,i),t("error",i)}return()=>{if(a.value)return n.fallback?.()??null;try{return n.default?.()??null}catch(i){return l(i),n.fallback?.()??null}}}}),Qo={class:"global-info-section-block"},Xo={key:0,class:"global-info-section-block__header"},en={class:"global-info-section-block__title-wrap"},tn={class:"global-info-section-block__title"},on={key:0,class:"global-info-section-block__actions"},nn={class:"global-info-section-block__body"},an=e.defineComponent({name:"GlobalInfoSectionBlock",__name:"GlobalInfoSectionBlock",props:{node:{},state:{},actions:{},hideHeader:{type:Boolean},onEdit:{type:Function},onCancel:{type:Function},onSave:{type:Function}},setup(o){const t=o,n=e.useSlots(),a=e.ref(!1),l=e.ref(null),i=e.ref(null),g=e.computed(()=>!!t.hideHeader),f=e.computed(()=>t.actions.getSectionStatus(t.node)),d=e.computed(()=>t.actions.getSection(t.node)??i.value),b=e.computed(()=>d.value?.title||t.node.tagName||t.node.label||"-"),_=e.computed(()=>!!(d.value&&t.actions.isEditing(d.value))),c=e.computed(()=>d.value?.renderType==="table"),p=e.computed(()=>a.value||f.value.loading),v=e.computed(()=>S(l.value||f.value.error)),h=e.computed(()=>{const I=d.value;return I?I.renderType==="table"?I.rows.length===0:I.fields.length===0:!0}),y=e.computed(()=>({node:t.node,section:d.value,sectionView:d.value,fields:d.value?.fields??[],title:b.value,editing:_.value,loading:p.value,error:l.value||f.value.error,errorMessage:v.value,isEmpty:h.value,empty:h.value,sectionStatus:f.value,state:t.state,actions:t.actions,reload:P,handleEdit:E,handleCancel:u,handleAddTableRow:k,handleSave:$}));function S(I){return I?I instanceof Error?I.message:String(I):""}async function E(){const I=d.value;I&&(await t.onEdit?.(I,t.node),t.onEdit||t.actions.startEdit(I))}async function u(){const I=d.value;I&&(await t.onCancel?.(I,t.node),t.onCancel||t.actions.cancelEdit(I))}function k(){const I=d.value;if(!I)return;const N=I.fields.reduce((w,F)=>(w[F.code]=F.value??"",w),{__rowKey:`new-${Date.now()}`});t.actions.saveRow(I,N,-1)}async function $(){const I=d.value;if(I)try{if(t.onSave){await t.onSave(I,t.node);return}await t.actions.saveSection(I)}catch(N){l.value=N,console.error("[GlobalInfoSectionBlock] save section failed",N)}}function M(I){l.value=I}async function P(){a.value=!0,l.value=null,i.value=null;try{i.value=await t.actions.loadSection(t.node)}catch(I){l.value=I,console.error("[GlobalInfoSectionBlock] load section failed",I)}finally{a.value=!1}}return e.onMounted(()=>{P()}),e.watch(()=>t.node.key,()=>{P()}),(I,N)=>{const w=z.ElButton;return e.openBlock(),e.createElementBlock("section",Qo,[g.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("header",Xo,[e.renderSlot(I.$slots,"header",e.normalizeProps(e.guardReactiveProps(y.value)),()=>[e.createElementVNode("div",en,[N[0]||(N[0]=e.createElementVNode("span",{class:"global-info-section-block__marker"},null,-1)),e.createElementVNode("h3",tn,e.toDisplayString(b.value),1)]),e.renderSlot(I.$slots,"actions",e.normalizeProps(e.guardReactiveProps(y.value)),()=>[d.value?(e.openBlock(),e.createElementBlock("div",on,[_.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createVNode(w,{class:"global-info-section-block__cancel",link:"",disabled:f.value.saving,onClick:u},{default:e.withCtx(()=>N[2]||(N[2]=[e.createTextVNode(" 取消 ")])),_:1},8,["disabled"]),c.value?(e.openBlock(),e.createBlock(w,{key:0,class:"global-info-section-block__add",link:"",disabled:f.value.saving,onClick:k},{default:e.withCtx(()=>N[3]||(N[3]=[e.createTextVNode(" 新增 ")])),_:1},8,["disabled"])):e.createCommentVNode("",!0),e.createVNode(w,{class:"global-info-section-block__confirm",link:"",type:"primary",loading:f.value.saving,onClick:$},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.value?"确认":"保存"),1)]),_:1},8,["loading"])],64)):(e.openBlock(),e.createBlock(w,{key:0,class:"global-info-section-block__edit",link:"",type:"primary",disabled:f.value.saving||p.value,onClick:E},{default:e.withCtx(()=>N[1]||(N[1]=[e.createTextVNode(" 编辑 ")])),_:1},8,["disabled"]))])):e.createCommentVNode("",!0)],!0)],!0)])),e.createElementVNode("div",nn,[p.value?e.renderSlot(I.$slots,"loading",e.normalizeProps(e.mergeProps({key:0},y.value)),()=>[N[4]||(N[4]=e.createElementVNode("div",{class:"global-info-section-block__status"},"加载中...",-1))],!0):!d.value||h.value||v.value?e.renderSlot(I.$slots,"empty",e.normalizeProps(e.mergeProps({key:1},y.value)),()=>[N[5]||(N[5]=e.createElementVNode("div",{class:"global-info-section-block__status"},"暂无数据",-1))],!0):(e.openBlock(),e.createBlock(Zo,{key:2,"boundary-key":I.node.key,label:b.value,onError:M},{fallback:e.withCtx(()=>[e.renderSlot(I.$slots,"empty",e.normalizeProps(e.guardReactiveProps(y.value)),()=>[N[6]||(N[6]=e.createElementVNode("div",{class:"global-info-section-block__status"},"暂无数据",-1))],!0)]),default:e.withCtx(()=>[e.createVNode(_t,{section:d.value,node:I.node,editing:_.value,state:I.state,actions:I.actions},e.createSlots({_:2},[e.renderList(e.unref(n),(F,U)=>({name:U,fn:e.withCtx(Z=>[e.renderSlot(I.$slots,U,e.normalizeProps(e.guardReactiveProps({...y.value,...Z})),void 0,!0)])}))]),1032,["section","node","editing","state","actions"])]),_:3},8,["boundary-key","label"]))])])}}}),Bt=A(an,[["__scopeId","data-v-0d8ae722"]]),ln={class:"global-info-group"},rn={class:"global-info-group__header"},sn={class:"global-info-group__title"},cn={class:"global-info-group__body"},un=["id"],dn=e.defineComponent({name:"GlobalInfoGroup",__name:"GlobalInfoGroup",props:{group:{},children:{},state:{},actions:{},index:{}},setup(o){const t=o,n=e.useSlots(),a=e.computed(()=>t.group.tagName||t.group.label||"-"),l=e.computed(()=>t.children.length<=1);function i(c,p){const v=t.actions.getSection(c);return{node:c,group:t.group,sectionNode:c,section:v,sectionView:v,state:t.state,actions:t.actions,index:p,editing:!!(v&&t.actions.isEditing(v)),sectionStatus:t.actions.getSectionStatus(c),isSelfSection:b(c,0)===b(t.group,0),handleEdit:()=>t.actions.startEdit(c),handleCancel:()=>t.actions.cancelEdit(c),handleSave:()=>t.actions.saveSection(c.key)}}function g(c){return f("section",d(c))}function f(c,p){if(!p)return"";const v=`${c}-${p}`;if(n[v])return v;const h=v.toLowerCase();return h!==v&&n[h]?h:""}function d(c){return String(c.id||c.infSetId||c.tagId||c.key||c.code||"").trim()}function b(c,p){return c.key||c.id||c.infSetId||c.tagId||`${p}`}function _(c){return`global-info-section-${b(c,0)}`}return(c,p)=>(e.openBlock(),e.createElementBlock("section",ln,[e.renderSlot(c.$slots,"header",{group:c.group,children:c.children,state:c.state,actions:c.actions,title:a.value,index:c.index,isEmpty:c.children.length===0},()=>[e.createElementVNode("header",rn,[p[0]||(p[0]=e.createElementVNode("span",{class:"global-info-group__marker"},null,-1)),e.createElementVNode("h2",sn,e.toDisplayString(a.value),1)])],!0),e.createElementVNode("div",cn,[e.unref(n).default?e.renderSlot(c.$slots,"default",{key:0,group:c.group,children:c.children,state:c.state,actions:c.actions,index:c.index,isEmpty:c.children.length===0},void 0,!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.children,(v,h)=>(e.openBlock(),e.createElementBlock("div",{id:_(v),key:b(v,h),class:"global-info-group__section"},[g(v)?e.renderSlot(c.$slots,g(v),e.mergeProps({key:0,ref_for:!0},i(v,h)),void 0,!0):e.unref(n).section?e.renderSlot(c.$slots,"section",e.mergeProps({key:1,ref_for:!0},i(v,h)),void 0,!0):(e.openBlock(),e.createBlock(Bt,{key:2,node:v,state:c.state,actions:c.actions,"hide-header":l.value},e.createSlots({_:2},[e.renderList(e.unref(n),(y,S)=>({name:S,fn:e.withCtx(E=>[e.renderSlot(c.$slots,S,e.mergeProps({ref_for:!0},E),void 0,!0)])}))]),1032,["node","state","actions","hide-header"]))],8,un))),128)),c.children.length===0?e.renderSlot(c.$slots,"empty",{key:0,node:null,group:c.group,sectionNode:null,state:c.state,actions:c.actions,index:-1},()=>[p[1]||(p[1]=e.createElementVNode("div",{class:"global-info-group__empty"},"暂无数据",-1))],!0):e.createCommentVNode("",!0)],64))])]))}}),Ct=A(dn,[["__scopeId","data-v-778e227f"]]),pn={class:"global-info-sections"},fn=e.defineComponent({name:"GlobalInfoSections",__name:"GlobalInfoSections",props:{nodes:{},state:{},actions:{}},setup(o){const t=o,n=e.useSlots(),a=e.computed(()=>{const p=t.nodes.filter(k=>l(k).length>0),v=t.nodes.filter(k=>l(k).length===0),h=v.filter(k=>i(k)),y=v.filter(k=>!i(k)),S=p.map(k=>({group:k,children:l(k)})),E=h.map(k=>({group:k,children:[k]}));if(S.length===0)return h.length>0?E:c(y);const u=c(y);return[...S,...E,...u]});function l(p){return p.children??[]}function i(p){return!String(p.parentId||p.parentTagId||"").trim()}function g(p){return f("group",d(p))}function f(p,v){if(!v)return"";const h=`${p}-${v}`;if(n[h])return h;const y=h.toLowerCase();return y!==h&&n[y]?y:""}function d(p){return String(p.id||p.tagId||p.key||p.code||"").trim()}function b(p,v){return p.key||p.id||p.tagId||`${v}`}function _(p){const v=p[0],h=v?.raw??{},y=String(h.parentTagName||h.parentName||h.parentLabel||v?.parentId||"信息");return{...v,key:`${v?.parentId||v?.parentTagId||v?.key||"global-info"}-group`,id:String(v?.parentId||v?.parentTagId||v?.id||"global-info-group"),tagId:String(v?.parentTagId||v?.parentId||v?.tagId||"global-info-group"),tagName:y,label:y,children:p}}function c(p){const v=new Map;return p.forEach(h=>{const y=String(h.parentId||h.parentTagId||"global-info-flat"),S=v.get(y)??[];S.push(h),v.set(y,S)}),Array.from(v.values()).map(h=>({group:_(h),children:h}))}return(p,v)=>(e.openBlock(),e.createElementBlock("div",pn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(h,y)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:b(h.group,y)},[g(h.group)?e.renderSlot(p.$slots,g(h.group),{key:0,group:h.group,children:h.children,state:p.state,actions:p.actions,index:y,isEmpty:h.children.length===0},void 0,!0):e.unref(n).group?e.renderSlot(p.$slots,"group",{key:1,group:h.group,children:h.children,state:p.state,actions:p.actions,index:y,isEmpty:h.children.length===0},void 0,!0):(e.openBlock(),e.createBlock(Ct,{key:2,group:h.group,children:h.children,state:p.state,actions:p.actions,index:y},e.createSlots({_:2},[e.renderList(e.unref(n),(S,E)=>({name:E,fn:e.withCtx(u=>[e.renderSlot(p.$slots,E,e.mergeProps({ref_for:!0},u),void 0,!0)])}))]),1032,["group","children","state","actions","index"]))],64))),128))]))}}),mn=A(fn,[["__scopeId","data-v-f15cf0fb"]]);exports.GlobalInfoAutoRenderer=wt;exports.GlobalInfoDeleteConfirm=kt;exports.GlobalInfoFieldControl=Le;exports.GlobalInfoFieldValue=ze;exports.GlobalInfoFormRenderer=St;exports.GlobalInfoGroup=Ct;exports.GlobalInfoProvider=No;exports.GlobalInfoSectionBlock=Bt;exports.GlobalInfoSectionOutlet=_t;exports.GlobalInfoSections=mn;exports.GlobalInfoTableRenderer=It;exports.JtButton=me;exports.JtCascader=We;exports.JtCrudTable=lo;exports.JtDatePicker=Ye;exports.JtFilterBar=Xe;exports.JtFormItems=Qe;exports.JtInput=Be;exports.JtPageHeader=vo;exports.JtPagination=co;exports.JtSelect=Ze;exports.JtTable=et;exports.buildGlobalInfoUpdatePayload=at;exports.createEmptyGlobalInfoViewModel=tt;exports.isGlobalInfoNode=go;exports.mergeGlobalInfoChildren=Re;exports.normalizeGlobalInfoDetail=ot;exports.normalizeGlobalInfoTree=Ne;exports.resolveGlobalInfoRenderType=nt;exports.useGlobalInfoController=vt;
package/dist/index.mjs CHANGED
@@ -1,6 +1,35 @@
1
+ import './style.css';
1
2
  import { defineComponent as U, useAttrs as yt, computed as I, openBlock as y, createBlock as F, mergeProps as D, toHandlers as Ce, withCtx as M, renderSlot as j, resolveDynamicComponent as ht, createCommentVNode as Z, withKeys as nn, createElementBlock as L, Fragment as de, renderList as oe, normalizeStyle as bt, ref as ne, useSlots as ve, watch as Re, normalizeClass as Ue, createVNode as re, withModifiers as on, unref as q, createSlots as ke, createElementVNode as J, toDisplayString as ee, normalizeProps as ce, guardReactiveProps as me, useModel as Pe, resolveDirective as an, withDirectives as ln, mergeModels as xe, shallowRef as Se, onMounted as St, createTextVNode as Be, resolveComponent as rn, onErrorCaptured as sn } from "vue";
2
3
  import { ElButton as nt, ElIcon as _t, ElCascader as un, ElDatePicker as It, ElInput as wt, ElSelect as kt, ElOption as Ct, ElFormItem as $t, ElForm as Tt, ElTable as Bt, ElTableColumn as Et, ElPagination as Mt, ElInputNumber as cn, ElSwitch as dn, ElRow as pn, ElCol as fn, ElPopconfirm as mn } from "element-plus/es";
4
+ import "element-plus/theme-chalk/base.css";
5
+ import "element-plus/theme-chalk/el-form.css";
6
+ import "element-plus/theme-chalk/el-row.css";
7
+ import "element-plus/theme-chalk/el-col.css";
8
+ import "element-plus/theme-chalk/el-form-item.css";
9
+ import "element-plus/theme-chalk/el-input.css";
10
+ import "element-plus/theme-chalk/el-switch.css";
11
+ import "element-plus/theme-chalk/el-input-number.css";
12
+ import "element-plus/theme-chalk/el-popper.css";
13
+ import "element-plus/theme-chalk/el-scrollbar.css";
14
+ import "element-plus/theme-chalk/el-button.css";
15
+ import "element-plus/theme-chalk/el-date-picker-panel.css";
16
+ import "element-plus/theme-chalk/el-date-picker.css";
17
+ import "element-plus/theme-chalk/el-tag.css";
18
+ import "element-plus/theme-chalk/el-option.css";
19
+ import "element-plus/theme-chalk/el-option-group.css";
20
+ import "element-plus/theme-chalk/el-select.css";
21
+ import "element-plus/theme-chalk/el-tooltip.css";
22
+ import "element-plus/theme-chalk/el-checkbox.css";
23
+ import "element-plus/theme-chalk/el-table.css";
24
+ import "element-plus/theme-chalk/el-table-column.css";
25
+ import "element-plus/theme-chalk/el-popover.css";
26
+ import "element-plus/theme-chalk/el-popconfirm.css";
27
+ import "element-plus/theme-chalk/el-radio.css";
28
+ import "element-plus/theme-chalk/el-virtual-list.css";
29
+ import "element-plus/theme-chalk/el-cascader-panel.css";
30
+ import "element-plus/theme-chalk/el-cascader.css";
3
31
  import { cascaderEmits as lt, inputEmits as rt, selectEmits as st, paginationEmits as it } from "element-plus";
32
+ import "element-plus/theme-chalk/el-pagination.css";
4
33
  const Xe = 2, vn = 3;
5
34
  function gn(t) {
6
35
  return t.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
@@ -942,7 +971,7 @@ const Mn = { class: "jt-filter-bar__btns" }, Fn = ["src"], Vn = ["src"], Pn = ["
942
971
  ]);
943
972
  };
944
973
  }
945
- }), va = /* @__PURE__ */ X(xn, [["__scopeId", "data-v-6df082c6"]]), Hn = { class: "jt-pagination" }, Wn = {
974
+ }), Ka = /* @__PURE__ */ X(xn, [["__scopeId", "data-v-6df082c6"]]), Hn = { class: "jt-pagination" }, Wn = {
946
975
  key: 0,
947
976
  class: "jt-pagination__count"
948
977
  }, Yn = /* @__PURE__ */ U({
@@ -1000,7 +1029,7 @@ const Mn = { class: "jt-filter-bar__btns" }, Fn = ["src"], Vn = ["src"], Pn = ["
1000
1029
  ]);
1001
1030
  };
1002
1031
  }
1003
- }), ga = /* @__PURE__ */ X(Yn, [["__scopeId", "data-v-72da666d"]]), Zn = { class: "jt-page-header__title" }, Qn = { key: 0 }, Xn = {
1032
+ }), qa = /* @__PURE__ */ X(Yn, [["__scopeId", "data-v-72da666d"]]), Zn = { class: "jt-page-header__title" }, Qn = { key: 0 }, Xn = {
1004
1033
  key: 0,
1005
1034
  class: "jt-page-header__operates"
1006
1035
  }, eo = /* @__PURE__ */ U({
@@ -1049,7 +1078,7 @@ const Mn = { class: "jt-filter-bar__btns" }, Fn = ["src"], Vn = ["src"], Pn = ["
1049
1078
  ])) : Z("", !0)
1050
1079
  ], 16));
1051
1080
  }
1052
- }), ya = /* @__PURE__ */ X(eo, [["__scopeId", "data-v-2f59fb4a"]]);
1081
+ }), Ja = /* @__PURE__ */ X(eo, [["__scopeId", "data-v-2f59fb4a"]]);
1053
1082
  function to(t = null) {
1054
1083
  return {
1055
1084
  scheme: null,
@@ -1107,7 +1136,7 @@ function ao(t, e = {}) {
1107
1136
  section: t
1108
1137
  };
1109
1138
  }
1110
- function ha(t) {
1139
+ function Ua(t) {
1111
1140
  const e = t;
1112
1141
  return !!(e && typeof e == "object" && typeof e.key == "string" && typeof e.tagId == "string");
1113
1142
  }
@@ -1917,7 +1946,7 @@ const _e = (t) => t.key || t.code, ie = (t) => t.key || t.setId, $e = (t) => new
1917
1946
  // 给页面消费的操作集合。
1918
1947
  actions: tn
1919
1948
  };
1920
- }, ba = /* @__PURE__ */ U({
1949
+ }, xa = /* @__PURE__ */ U({
1921
1950
  name: "GlobalInfoProvider",
1922
1951
  __name: "GlobalInfoProvider",
1923
1952
  props: {
@@ -2994,7 +3023,7 @@ const Co = ["disabled", "accept", "multiple"], $o = {
2994
3023
  ], 64))), 128))
2995
3024
  ]));
2996
3025
  }
2997
- }), Sa = /* @__PURE__ */ X(ia, [["__scopeId", "data-v-f15cf0fb"]]);
3026
+ }), Ha = /* @__PURE__ */ X(ia, [["__scopeId", "data-v-f15cf0fb"]]);
2998
3027
  export {
2999
3028
  Ko as GlobalInfoAutoRenderer,
3000
3029
  No as GlobalInfoDeleteConfirm,
@@ -3002,25 +3031,25 @@ export {
3002
3031
  Yt as GlobalInfoFieldValue,
3003
3032
  Ro as GlobalInfoFormRenderer,
3004
3033
  ra as GlobalInfoGroup,
3005
- ba as GlobalInfoProvider,
3034
+ xa as GlobalInfoProvider,
3006
3035
  Xo as GlobalInfoSectionBlock,
3007
3036
  qo as GlobalInfoSectionOutlet,
3008
- Sa as GlobalInfoSections,
3037
+ Ha as GlobalInfoSections,
3009
3038
  Do as GlobalInfoTableRenderer,
3010
3039
  Je as JtButton,
3011
3040
  Sn as JtCascader,
3012
- va as JtCrudTable,
3041
+ Ka as JtCrudTable,
3013
3042
  In as JtDatePicker,
3014
3043
  Rn as JtFilterBar,
3015
3044
  Bn as JtFormItems,
3016
3045
  Ze as JtInput,
3017
- ya as JtPageHeader,
3018
- ga as JtPagination,
3046
+ Ja as JtPageHeader,
3047
+ qa as JtPagination,
3019
3048
  Cn as JtSelect,
3020
3049
  Gn as JtTable,
3021
3050
  ao as buildGlobalInfoUpdatePayload,
3022
3051
  to as createEmptyGlobalInfoViewModel,
3023
- ha as isGlobalInfoNode,
3052
+ Ua as isGlobalInfoNode,
3024
3053
  Lt as mergeGlobalInfoChildren,
3025
3054
  no as normalizeGlobalInfoDetail,
3026
3055
  ut as normalizeGlobalInfoTree,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jt-home/mfe-components",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
package/readme.md CHANGED
@@ -1,8 +1,8 @@
1
- # mfe-components
1
+ # @jt-home/mfe-components
2
2
 
3
3
  ## 组件总览
4
4
 
5
- `mfe-components` 是基于 Vue 3 和 Element Plus 的业务组件库,主要沉淀通用表单、筛选、表格、分页、CRUD 页面骨架,以及全球信息模板相关的数据渲染组件。业务系统可按需从远程模块中引入组件和类型。
5
+ `@jt-home/mfe-components` 是基于 Vue 3 和 Element Plus 的业务组件库,主要沉淀通用表单、筛选、表格、分页、CRUD 页面骨架,以及全球信息模板相关的数据渲染组件。业务系统可按需从 npm 包中引入组件和类型。
6
6
 
7
7
  | 组件 / 模块 | 大概功能 | 文档 |
8
8
  | --- | --- | --- |
@@ -19,22 +19,64 @@
19
19
 
20
20
  组件库说明文档。
21
21
 
22
- > 说明:业务使用时通过 npm 包引入,例如 `import { JtButton } from 'mfe-components'`。
22
+ > 说明:业务使用时通过 npm 包引入,例如 `import { JtButton } from '@jt-home/mfe-components'`。
23
23
 
24
24
  ## npm 发布
25
25
 
26
- 组件库使用 npm 库构建,发布前请先生成类型声明和 JS/CSS 产物:
26
+ 组件库使用 npm 库构建,发布前请先生成 JS/CSS 产物和类型声明:
27
27
 
28
28
  ```bash
29
29
  pnpm build
30
30
  npm pack --dry-run
31
31
  ```
32
32
 
33
- - `pnpm build` 会先执行 `build:types` 生成 `dist/types/main.d.ts` 及组件类型声明,再执行 `build:bundle` 生成 `dist/index.mjs`、`dist/index.cjs` 和 `dist/style.css`。
33
+ - `pnpm build` 会先执行 `build:bundle` 生成 `dist/index.mjs`、`dist/index.cjs` 和 `dist/style.css`,再执行 `build:types` 生成 `dist/types/main.d.ts` 及组件类型声明。
34
34
  - `npm pack --dry-run` 用于发布前检查实际会进入 npm 包的文件。
35
35
  - `vue` 和 `element-plus` 是 `peerDependencies`,使用方项目需要自行安装。
36
36
  - 发布时执行 `npm publish`;如果使用公司私有 npm 仓库,需要先确认 `.npmrc` 的 `registry` 和登录 token。
37
37
 
38
+ ## 样式按需引入
39
+
40
+ 组件库构建时会通过 Vite/Rollup `external` 排除 `vue` 和 `element-plus` 的 JS 代码,避免把它们打进组件库包里;但会放行 Element Plus 的样式路径,让组件使用到的 Element Plus CSS 可以跟随组件库入口自动加载:
41
+
42
+ ```ts
43
+ rollupOptions: {
44
+ external: isExternalDependency,
45
+ }
46
+ ```
47
+
48
+ 这表示使用方项目仍需要安装并提供 `vue` 和 `element-plus`:
49
+
50
+ ```bash
51
+ pnpm add vue element-plus @jt-home/mfe-components
52
+ ```
53
+
54
+ 业务项目正常只需要引入组件:
55
+
56
+ ```ts
57
+ import { JtButton } from '@jt-home/mfe-components';
58
+ ```
59
+
60
+ 构建产物的 `dist/index.mjs` / `dist/index.cjs` 会自动引用:
61
+
62
+ ```ts
63
+ import './style.css';
64
+ ```
65
+
66
+ 同时会按组件实际使用情况引用 Element Plus 样式,例如:
67
+
68
+ ```ts
69
+ import 'element-plus/theme-chalk/el-button.css';
70
+ import 'element-plus/theme-chalk/el-input.css';
71
+ ```
72
+
73
+ 因此使用方不需要再手动写:
74
+
75
+ ```ts
76
+ import 'element-plus/dist/index.css';
77
+ import '@jt-home/mfe-components/style.css';
78
+ ```
79
+
38
80
  ## 安装与使用
39
81
 
40
82
  ```ts
@@ -47,7 +89,7 @@ import {
47
89
  JtPagination,
48
90
  JtTableLayout,
49
91
  JtCrud,
50
- } from 'mfe-components';
92
+ } from '@jt-home/mfe-components';
51
93
 
52
94
  import type {
53
95
  JTFormItemConfig,
@@ -60,7 +102,7 @@ import type {
60
102
  JtTableLayoutProps,
61
103
  JtCrudSearchProps,
62
104
  JtCrudTableProps,
63
- } from 'mfe-components';
105
+ } from '@jt-home/mfe-components';
64
106
  ```
65
107
 
66
108
  ## JtButton
@@ -83,7 +125,7 @@ import type {
83
125
 
84
126
  <script setup lang="ts">
85
127
  import { Plus } from '@element-plus/icons-vue';
86
- import { JtButton } from 'mfe-components';
128
+ import { JtButton } from '@jt-home/mfe-components';
87
129
 
88
130
  function handleAdd() {
89
131
  console.log('新增');
@@ -127,8 +169,8 @@ function handleAdd() {
127
169
  </template>
128
170
 
129
171
  <script setup lang="ts">
130
- import { JtPageHeader } from 'mfe-components';
131
- import type { JtPageHeaderOperate } from 'mfe-components';
172
+ import { JtPageHeader } from '@jt-home/mfe-components';
173
+ import type { JtPageHeaderOperate } from '@jt-home/mfe-components';
132
174
 
133
175
  const operates: JtPageHeaderOperate[] = [
134
176
  { key: 'add', label: '新增', type: 'primary', onClick: handleAdd },
@@ -203,8 +245,8 @@ function handleOperateClick(operate: JtPageHeaderOperate) {
203
245
  import { reactive, ref } from 'vue';
204
246
  import { ElForm } from 'element-plus';
205
247
  import type { FormInstance } from 'element-plus';
206
- import { JtFormItems } from 'mfe-components';
207
- import type { JTFormItemConfig } from 'mfe-components';
248
+ import { JtFormItems } from '@jt-home/mfe-components';
249
+ import type { JTFormItemConfig } from '@jt-home/mfe-components';
208
250
 
209
251
  const formRef = ref<FormInstance>();
210
252
  const form = reactive({
@@ -298,8 +340,8 @@ async function handleSubmit() {
298
340
 
299
341
  <script setup lang="ts">
300
342
  import { reactive } from 'vue';
301
- import { JtFilterBar } from 'mfe-components';
302
- import type { JTFormItemConfig } from 'mfe-components';
343
+ import { JtFilterBar } from '@jt-home/mfe-components';
344
+ import type { JTFormItemConfig } from '@jt-home/mfe-components';
303
345
 
304
346
  const queryForm = reactive({
305
347
  customerName: '',
@@ -373,8 +415,8 @@ function handleReset() {
373
415
  <script setup lang="ts">
374
416
  import { reactive, ref } from 'vue';
375
417
  import { ElTag } from 'element-plus';
376
- import { JtTable } from 'mfe-components';
377
- import type { JtTableColumn } from 'mfe-components';
418
+ import { JtTable } from '@jt-home/mfe-components';
419
+ import type { JtTableColumn } from '@jt-home/mfe-components';
378
420
 
379
421
  const page = reactive({ currentPage: 1, pageSize: 20 });
380
422
  const total = ref(2);
@@ -458,7 +500,7 @@ function handlePageChange(nextPage: number, nextSize: number) {
458
500
 
459
501
  <script setup lang="ts">
460
502
  import { reactive } from 'vue';
461
- import { JtPagination } from 'mfe-components';
503
+ import { JtPagination } from '@jt-home/mfe-components';
462
504
 
463
505
  const page = reactive({
464
506
  currentPage: 1,
@@ -555,14 +597,14 @@ function handleChange(nextPage: number, nextSize: number) {
555
597
  <script setup lang="ts">
556
598
  import { computed, reactive, ref } from 'vue';
557
599
  import { ElMessage, ElTag } from 'element-plus';
558
- import { JtCrud } from 'mfe-components';
600
+ import { JtCrud } from '@jt-home/mfe-components';
559
601
  import type {
560
602
  JTFormItemConfig,
561
603
  JtCrudSearchProps,
562
604
  JtCrudTableProps,
563
605
  JtPageHeaderOperate,
564
606
  JtPageHeaderProps,
565
- } from 'mfe-components';
607
+ } from '@jt-home/mfe-components';
566
608
 
567
609
  const queryForm = reactive({
568
610
  customerName: '',