2 lines
22 KiB
Java
2 lines
22 KiB
Java
var v=(c,C,$)=>new Promise((A,j)=>{var N=w=>{try{O($.next(w))}catch(S){j(S)}},M=w=>{try{O($.throw(w))}catch(S){j(S)}},O=w=>w.done?A(w.value):Promise.resolve(w.value).then(N,M);O(($=$.apply(c,C)).next())});import ft from"./BasicTable-C6eG0bgK.js";import bt from"./TableAction-BiXnWkvt.js";import"./TableImg.vue_vue_type_style_index_0_lang-65ZOQtFn.js";import{u as vt}from"./useTable-DbHE4FHE.js";import{B as ke}from"./index-BDvqZ5j4.js";import{B as yt}from"./index-Bzmv9Ie7.js";import{d as k,ad as gt,s as zt,aE as _t,aH as ht,F as wt,aB as Tt,av as Ft,aG as kt,bL as Ct,aU as St,aX as Bt,bR as Kt,x as xt,au as It}from"./index-X7Y8jykP.js";import{l as Nt}from"./printTemplate.api-Dfuyi-ab.js";import{p as Mt}from"./role.api-B0N9uXDv.js";import{u as Ce}from"./useModal-DaJ3Bflg.js";import{C as Ot}from"./index-BwqG9R3y.js";import{e as Dt,C as P,z as f,f as s,A as n,u as o,r as p,c as W,K as Rt,X as Et,O as Se,y,E as h,Q as g,H as U,F as se,D as $t,G as te,b as re}from"./vue-vendor-DNhG1Cve.js";import{b as Lt}from"./index-CeNCCWzL.js";import{O as Jt}from"./index-CuWaQdlK.js";import{A as Pt}from"./index-DO7ZhK45.js";import{_ as Wt}from"./index-DTjkSGYl.js";import"./BasicTable.vue_vue_type_style_index_0_lang-B9DxrWas.js";import"./BasicForm-ClUSoD_-.js";import"./helper-DcLcf4v6.js";import"./index-BzChaRPg.js";import"./useAppInject-DPZGPcR3.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";import"./BasicForm.vue_vue_type_style_index_0_lang-B29PWQy0.js";import"./index-ByCwbQDV.js";import"./index-Upeu4GGa.js";import"./index-C4wWpZeQ.js";import"./useTimeout-D5AmIBZw.js";import"./index-M9QP6cvf.js";import"./Skeleton-CimgOdM7.js";import"./useScrollTo-0FPEw5-K.js";import"./useIntersectionObserver-BGOgyKyu.js";import"./index-saD4h7VJ.js";import"./useBreakpoint-DXhPW7nV.js";import"./useEventListener-BRXjwk7A.js";import"./breakpointEnum-BhAg6bcX.js";import"./uniqBy--vsL0WVB.js";import"./BasicModal-xH56XuRZ.js";import"./ModalHeader-Sr8KwhJJ.js";import"./useWindowSizeFn-C-0M9_Ul.js";import"./useForm-D61zovon.js";import"./injectionKey-DPVn4AgL.js";import"./index-DSsDi_fL.js";import"./Group-UHkub2tu.js";import"./Checkbox-Dbxs4we4.js";import"./index-BuONesFs.js";import"./FormOutlined-Y84itqS0.js";import"./useTableContext-CncNVXgp.js";import"./index-C69VKHba.js";import"./index-DklMb9Qc.js";import"./UpOutlined-B1UMbtrP.js";import"./index-DsixALRt.js";import"./dayjs-jnKD3YGS.js";import"./index-aCD42OrZ.js";import"./quarterOfYear-BU2sPnff.js";import"./index-J2mOtM3w.js";import"./dayjs-ALi1pEeb.js";import"./clickOutside-DHfwTU6R.js";import"./onMountedOrActivated-DhSdLlqP.js";import"./throttle-De_jAmBh.js";import"./index-DfHu-LAS.js";import"./Group-DBzJABA_.js";import"./RadioButton-DRBix2Fq.js";import"./uuid-CODpppBC.js";import"./sortable.esm-DJNoJSdJ.js";import"./index-CfNJyBRj.js";import"./dropdown-jkliuVyN.js";import"./RedoOutlined-Cq2g4Slp.js";import"./eagerComputed-BTlOruLW.js";import"./fromPairs-Dx9PT-t0.js";import"./useMaxLevel-DE205ncc.js";import"./index-C7ckZv9Z.js";import"./DirectoryTree-nk_YTTIy.js";import"./FolderOpenOutlined-SzIPA7z0.js";import"./index-Cl-8Hzo4.js";import"./scrollTo-D49dA-9c.js";import"./operationUnit-vCu2co3e.js";import"./TableAction.vue_vue_type_style_index_0_lang-BIWZ0bGo.js";import"./index-fAAIzD3j.js";import"./index-DfX9t4DO.js";import"./isNumeric-DjvBa-1E.js";import"./bem-CTsBfXqP.js";import"./props-Cc-8EPhZ.js";import"./useContextMenu-BncvQCmV.js";import"./difference-CGvbIcA7.js";const Ut=[{title:"业务编码",dataIndex:"bizCode",width:200},{title:"业务名称",dataIndex:"bizName",width:140},{title:"模板编码",dataIndex:"templateCode",width:180},{title:"备注",dataIndex:"remark",ellipsis:!0}],At=c=>k.get({url:"/print/bizTemplateBind/list",params:c}),jt=c=>k.post({url:"/print/bizTemplateBind/add",params:c}),Ht=c=>k.put({url:"/print/bizTemplateBind/edit",params:c}),qt=(c,C)=>k.delete({url:"/print/bizTemplateBind/delete",params:c},{joinParamsToUrl:!0}).then(()=>C==null?void 0:C()),Vt=()=>k.get({url:"/print/bizTemplateBind/bizTypesForBinding",timeout:12e4}),Gt=()=>k.get({url:"/print/bizTemplateBind/permWhitelist"}),Xt=c=>k.post({url:"/print/bizTemplateBind/permWhitelist",data:c,timeout:180*1e3}),Yt=c=>k.get({url:"/print/bizTemplateBind/parseTemplateStructure",params:{templateId:c,_t:Date.now()}}),Zt=c=>k.post({url:"/print/bizTemplateBind/previewMappedData",data:c}),Qt=c=>k.get({url:"/print/bizTemplateBind/detailSlots",params:{bizCode:c}}),ei=c=>k.get({url:"/print/bizTemplateBind/bizFieldsForDetailSlot",params:c}),ti={class:"biz-bind-form"},ii={key:0,class:"bind-placeholder"},li={class:"bind-map-section"},ai={class:"bind-map-section bind-map-section--detail"},ni={class:"bind-card-desc"},oi={style:{"margin-top":"10px"}},si={key:0,class:"preview-pre"},Y="__PRINT_BIND_EMPTY_BIZ__",ri=Dt({__name:"index",setup(c){const{createMessage:C}=zt(),{t:$}=gt(),A=p([]),j=p([]),N=p(!1),M=p(!1),O=p(!1),w=p(!1),S=p(""),D=p(""),u=p({id:"",bizCode:void 0,bizName:"",templateId:void 0,remark:""}),x=p([]),R=p([]),z=p([]),I=p([]),B=p([]),H=p(""),K=re({}),_=re({}),q=re({}),V=p(!1),Be=W(()=>o(V)?"编辑业务打印绑定":"新增业务打印绑定"),Ke=W(()=>o(A).map(e=>({label:`${e.bizName}(${e.bizCode})`,value:e.bizCode}))),xe=W(()=>o(j).map(e=>({label:`${e.templateName}(${e.templateCode})`,value:e.id}))),Ie=W(()=>o(I).map(e=>({label:`${e.label}(${e.propertyName} · ${e.slotKind})`,value:e.propertyName}))),Ne=W(()=>{const e=[{label:"— 空占位符(不参与业务 JSON)—",value:Y}],t=o(R).map(i=>({label:i.label?`${i.label}(${i.fieldKey})`:i.fieldKey,value:i.fieldKey}));return[...e,...t]});function Me(e){const t=[{label:"— 空占位符(不参与业务 JSON)—",value:Y}],i=o(R).map(l=>({label:l.label?`${l.label}(${l.fieldKey})`:l.fieldKey,value:l.fieldKey})),r=(_[e]||[]).map(l=>({label:l.label?`${l.label}(${l.fieldKey})`:l.fieldKey,value:l.fieldKey}));return[...t,...i,...r]}function Oe(){for(const e in _)if((_[e]||[]).length)return!0;return!1}function De(e){const t=e.label||"";return t?`${t}(${e.tableKey})`:e.tableKey}function de(e){const t=new Set((e.fields||[]).map(i=>(i.bindField||"").trim()).filter(Boolean));return o(z).filter(i=>t.has((i.templateField||"").trim()))}function Re(e){var a;const t=o(B).find(b=>b.tableKey===e);if(!((a=t==null?void 0:t.fields)!=null&&a.length))return;const i=new Set(t.fields.map(b=>(b.bindField||"").trim()).filter(Boolean)),r=new Map;for(const b of o(z)){if(!i.has((b.templateField||"").trim()))continue;const T=b.bizField;if(!T||T===Y)continue;const L=String(T),E=L.indexOf(".");if(E<=0)continue;const J=L.slice(0,E);r.set(J,(r.get(J)||0)+1)}let l,m=0;return r.forEach((b,T)=>{b>m&&(m=b,l=T)}),l}function ie(e,t){return v(this,null,function*(){if(!t||!u.value.bizCode){_[e]=[];return}const i=o(I).find(l=>l.propertyName===t),r=(i==null?void 0:i.slotKind)||"LIST";q[e]=!0;try{const l=yield ei({bizCode:u.value.bizCode,detailProperty:t,slotKind:r});_[e]=l||[]}catch(l){_[e]=[]}finally{q[e]=!1}})}function Ee(e,t){return v(this,null,function*(){K[e]=t,yield ie(e,t)})}function pe(){return v(this,null,function*(){for(const e of o(B)){const t=e.tableKey,i=K[t];if(i){yield ie(t,i);continue}const r=Re(t);r&&o(I).some(l=>l.propertyName===r)&&(K[t]=r,yield ie(t,r))}})}function le(){B.value=[],H.value="",Object.keys(K).forEach(e=>delete K[e]),Object.keys(_).forEach(e=>delete _[e]),Object.keys(q).forEach(e=>delete q[e])}function $e(e){return e==null||e===""?Y:e}function Le(e){return e===Y||e===void 0||e===null||e===""?"":e}const ue=W(()=>o(z).filter(e=>(e.elementType||"")==="param"));function Je(e){return{param:"主表·参数",detailField:"模板·明细",column:"表格列"}[e||""]||e||"—"}const Pe=[{title:"模板参数占位(bindField)",dataIndex:"templateField",width:220},{title:"标题/提示",dataIndex:"titleHint",ellipsis:!0},{title:"业务字段(主表)",key:"bizField",width:280}],We=[{title:"模板类型",key:"tplKind",width:104,ellipsis:!0},{title:"模板占位(bindField)",dataIndex:"templateField",width:188},{title:"标题/提示",dataIndex:"titleHint",ellipsis:!0},{title:"业务字段",key:"bizField",width:260}],[Ue,{reload:me}]=vt({title:"业务打印绑定",api:At,columns:Ut,useSearchForm:!1,showTableSetting:!0,bordered:!0,showIndexColumn:!0,actionColumn:{width:160,title:"操作",fixed:"right",dataIndex:"action",slots:{customRender:"action"}}}),[Ae,{openModal:ce,closeModal:je}]=Ce(),[He,{openModal:qe,closeModal:Ve}]=Ce(),Z=p(!1),ae=p(!1),fe=p(null),be=p([]),ve=p([]),G=p([]),ne=p([]),Ge=p([]);function ye(e){return e!=null&&e.length&&e.forEach(t=>{var i;if(t.slotTitle&&typeof t.slotTitle=="string"&&t.slotTitle.includes("t('"))try{t.slotTitle=new Function("t",`return ${t.slotTitle}`)($)}catch(r){}(i=t.children)!=null&&i.length&&ye(t.children)}),e!=null?e:[]}function ge(e){ne.value=e?[...o(ve)]:[]}function Xe(e){G.value=(e==null?void 0:e.checked)!==void 0?e.checked:e}function Ye(e){if(Array.isArray(e))return e.map(t=>String(t));if(e&&typeof e=="object"&&"checked"in e){const t=e.checked;if(Array.isArray(t))return t.map(i=>String(i))}return[]}function Ze(){return v(this,null,function*(){var e;Z.value=!0;try{const[t,i]=yield Promise.all([Mt(),Gt()]);be.value=ye(t.treeList),ve.value=t.ids||[],ne.value=t.ids||[],G.value=(e=i==null?void 0:i.permIds)!=null&&e.length?[...i.permIds]:[],qe(!0)}finally{Z.value=!1}})}function Qe(){return v(this,null,function*(){var e,t;ae.value=!0;try{const i=o(fe);let r=(t=(e=i==null?void 0:i.getCheckedKeys)==null?void 0:e.call(i))!=null?t:o(G);const l=Ye(r);yield Xt({permIds:l}),C.success("保存成功"),Ve()}finally{ae.value=!1}})}function ze(){return v(this,null,function*(){const e=yield Vt();A.value=e||[]})}function _e(){return v(this,null,function*(){var t;const e=yield Nt({pageNo:1,pageSize:500});j.value=(t=e==null?void 0:e.records)!=null?t:[]})}function et(e){return v(this,null,function*(){if(I.value=[],!!e)try{I.value=(yield Qt(e))||[]}catch(t){I.value=[]}})}function he(e){return v(this,null,function*(){var i;const t=o(A).find(r=>r.bizCode===e);R.value=(i=t==null?void 0:t.fields)!=null?i:[],u.value.bizName=t==null?void 0:t.bizName,Object.keys(K).forEach(r=>delete K[r]),Object.keys(_).forEach(r=>delete _[r]),yield et(e),u.value.templateId&&o(B).length&&(yield pe())})}function tt(){return v(this,null,function*(){le(),x.value=[],z.value=[],yield oe()})}function oe(){return v(this,null,function*(){var t,i,r,l,m;const e=u.value.templateId;if(!e){x.value=[],z.value=[],B.value=[],H.value="";return}M.value=!0;try{const a=yield Yt(e);B.value=(t=a==null?void 0:a.detailTables)!=null?t:[];const b=(i=a==null?void 0:a.params)!=null?i:[],T=((r=a==null?void 0:a.detailTables)!=null?r:[]).flatMap(L=>{var E;return(E=L.fields)!=null?E:[]});x.value=[...b,...T],H.value=(m=(l=B.value[0])==null?void 0:l.tableKey)!=null?m:"",it(),yield pe()}finally{M.value=!1}})}function it(){const e=o(Q),t=o(x),i=new Map(t.map(m=>[m.bindField,m])),r=[],l=new Set;for(const m of e){const a=(m.templateField||"").trim();!a||l.has(a)||(l.add(a),r.push(a))}for(const m of t){const a=(m.bindField||"").trim();!a||l.has(a)||(l.add(a),r.push(a))}z.value=r.map(m=>{const a=i.get(m),b=e.find(T=>T.templateField===m);return{templateField:m,bizField:b!==void 0?$e(b.bizField):void 0,elementType:(a==null?void 0:a.elementType)||"param",titleHint:(a==null?void 0:a.titleHint)||(a?"":"已保存映射(当前模板 JSON 未声明该占位,仍可按空业务字段输出)")}})}const Q=p([]);function lt(){const e=[...o(R)];for(const i in _)e.push(..._[i]||[]);const t=new Map(e.map(i=>[i.fieldKey,i.fieldKey]));for(const i of o(z))t.has(i.templateField)&&(i.bizField=i.templateField);z.value=[...o(z)]}function at(){const e=o(z).filter(t=>t.templateField).map(t=>({templateField:t.templateField,bizField:Le(t.bizField)}));return JSON.stringify(e)}function nt(){return v(this,null,function*(){V.value=!1,Q.value=[],u.value={id:void 0,bizCode:void 0,bizName:void 0,templateId:void 0,remark:void 0},x.value=[],R.value=[],z.value=[],I.value=[],le(),S.value="",D.value="",ce(!0),N.value=!0;try{yield Promise.all([ze(),_e()])}finally{N.value=!1}})}function ot(e){return v(this,null,function*(){V.value=!0;try{Q.value=JSON.parse(e.fieldMappingJson||"[]")}catch(t){Q.value=[]}u.value={id:e.id,bizCode:e.bizCode,bizName:e.bizName,templateId:e.templateId,remark:e.remark},S.value="",D.value="",x.value=[],z.value=[],R.value=[],I.value=[],le(),ce(!0),N.value=!0;try{yield Promise.all([ze(),_e()]),yield he(e.bizCode),yield oe()}finally{N.value=!1}})}function st(){return v(this,null,function*(){if(!u.value.bizCode)return C.warning("请选择业务"),Promise.reject();if(!u.value.templateId)return C.warning("请选择打印模板"),Promise.reject();O.value=!0;try{const e={id:u.value.id,bizCode:u.value.bizCode,bizName:u.value.bizName,templateId:u.value.templateId,remark:u.value.remark,fieldMappingJson:at()};o(V)?yield Ht(e):yield jt(e),je(),me()}finally{O.value=!1}})}function rt(e){return v(this,null,function*(){yield qt({id:e.id},()=>me())})}function dt(){return v(this,null,function*(){if(!u.value.bizCode){C.warning("请先选择业务;预览读取的是服务器已保存的绑定配置");return}let e={};try{e=S.value?JSON.parse(S.value):{}}catch(t){D.value="业务 JSON 格式不正确";return}w.value=!0;try{const t=yield Zt({bizCode:u.value.bizCode,bizDataJson:e});D.value=JSON.stringify(t,null,2)}catch(t){D.value=t instanceof Error?t.message:String(t)}finally{w.value=!1}})}return(e,t)=>{const i=Rt("a-button"),r=_t,l=Lt,m=Ft,a=Tt,b=Pt,T=Jt,L=kt,E=wt,J=Ot,we=Wt,ee=Ct,pt=Bt,ut=St,mt=Kt,Te=ht,Fe=Et("auth");return f(),P("div",null,[s(o(ft),{onRegister:o(Ue)},{tableTitle:n(()=>[s(r,null,{default:n(()=>[Se((f(),y(i,{type:"primary",onClick:nt},{default:n(()=>[...t[8]||(t[8]=[h("新增绑定",-1)])]),_:1})),[[Fe,"print:bizBind:add"]]),Se((f(),y(i,{onClick:Ze,loading:Z.value},{default:n(()=>[...t[9]||(t[9]=[h(" 打印业务白名单 ",-1)])]),_:1},8,["loading"])),[[Fe,"print:bizBind:whitelist"]])]),_:1})]),action:n(({record:d})=>[s(o(bt),{actions:[{label:"编辑",onClick:()=>ot(d),auth:"print:bizBind:edit"},{label:"删除",color:"error",popConfirm:{title:"确认删除该绑定?",confirm:()=>rt(d)},auth:"print:bizBind:delete"}]},null,8,["actions"])]),_:1},8,["onRegister"]),s(o(ke),{onRegister:o(Ae),title:Be.value,width:"1000px",onOk:st,"confirm-loading":O.value,"destroy-on-close":"","wrap-class-name":"biz-bind-modal-wrap"},{default:n(()=>[s(Te,{spinning:N.value||M.value},{default:n(()=>[g("div",ti,[s(l,{type:"info","show-icon":"",class:"bind-alert",message:"配置说明",description:"按卡片顺序操作:先选业务与模板 → 点击「解析模板占位字段」→ 主表参数映射主实体字段 → 若模板含多个明细表,在「明细与表格」标签页中逐表选择与模板明细键对应的业务明细集合,再映射列字段。业务字段下拉第一项为「空占位符」,表示不参与业务 JSON。明细列占位多为「模板明细键.列」(如 List2.Field1),业务侧选「明细属性.列」(如 lineList.qty),打印时会按数组展开。"}),s(J,{title:"基础信息",size:"small",bordered:!0,class:"bind-card"},{default:n(()=>[s(E,{layout:"vertical",class:"bind-card-form"},{default:n(()=>[s(T,{gutter:16},{default:n(()=>[s(b,{span:12},{default:n(()=>[s(a,{label:"业务",required:"",extra:"业务编码为菜单 id;业务字段优先从缓存表读取(启动任务根据 print_biz_perm_entity 异步写入 mes_xsl_biz_entity_field_*),无缓存时再反射实体类。"},{default:n(()=>[s(m,{value:u.value.bizCode,"onUpdate:value":t[0]||(t[0]=d=>u.value.bizCode=d),options:Ke.value,placeholder:"选择业务","show-search":"","option-filter-prop":"label",disabled:V.value,onChange:he},null,8,["value","options","disabled"])]),_:1})]),_:1}),s(b,{span:12},{default:n(()=>[s(a,{label:"打印模板",required:"",extra:"请选择已发布的原生打印模板"},{default:n(()=>[s(m,{value:u.value.templateId,"onUpdate:value":t[1]||(t[1]=d=>u.value.templateId=d),options:xe.value,placeholder:"选择模板","show-search":"","option-filter-prop":"label",onChange:tt},null,8,["value","options"])]),_:1})]),_:1})]),_:1}),s(a,{label:"备注"},{default:n(()=>[s(L,{value:u.value.remark,"onUpdate:value":t[2]||(t[2]=d=>u.value.remark=d),placeholder:"可选"},null,8,["value"])]),_:1})]),_:1})]),_:1}),s(J,{size:"small",bordered:!0,class:"bind-card bind-card--mapping"},{title:n(()=>[...t[10]||(t[10]=[g("span",{class:"bind-card-head"},"字段映射",-1)])]),extra:n(()=>[s(r,{wrap:""},{default:n(()=>[s(i,{type:"primary",ghost:"",size:"small",onClick:oe,loading:M.value},{default:n(()=>[...t[11]||(t[11]=[h(" 解析模板占位字段 ",-1)])]),_:1},8,["loading"]),s(i,{size:"small",onClick:lt,disabled:!R.value.length&&!Oe()||!x.value.length},{default:n(()=>[...t[12]||(t[12]=[h(" 同名自动匹配 ",-1)])]),_:1},8,["disabled"])]),_:1})]),default:n(()=>[u.value.templateId?x.value.length?(f(),P(se,{key:1},[g("div",li,[t[13]||(t[13]=g("div",{class:"bind-section-bar"},[g("span",{class:"bind-section-title"},"① 主表参数"),g("span",{class:"bind-section-hint"},"对应模板 dataBinding.params / 画布参数;请选择主实体 JSON 字段")],-1)),ue.value.length?(f(),y(we,{key:0,size:"small","row-key":"templateField",pagination:!1,columns:Pe,"data-source":ue.value,bordered:"",class:"bind-map-table"},{bodyCell:n(({column:d,record:F})=>[d.key==="bizField"?(f(),y(m,{key:0,value:F.bizField,"onUpdate:value":X=>F.bizField=X,options:Ne.value,"allow-clear":"","show-search":"","option-filter-prop":"label",style:{width:"100%"},placeholder:"选择主表业务字段"},null,8,["value","onUpdate:value","options"])):U("",!0)]),_:1},8,["data-source"])):(f(),y(ee,{key:1,class:"bind-empty",description:"本模板未解析到「参数」类占位"}))]),g("div",ai,[t[16]||(t[16]=g("div",{class:"bind-section-bar"},[g("span",{class:"bind-section-title"},"② 明细与表格列"),g("span",{class:"bind-section-hint"}," 按模板明细表(tableKey)分页配置:每个标签页先选业务明细集合,再映射列;多表明细互不影响 ")],-1)),B.value.length?(f(),y(ut,{key:0,activeKey:H.value,"onUpdate:activeKey":t[3]||(t[3]=d=>H.value=d),type:"card",size:"small",class:"bind-detail-tabs"},{default:n(()=>[(f(!0),P(se,null,$t(B.value,d=>(f(),y(pt,{key:d.tableKey,tab:De(d)},{default:n(()=>[g("p",ni,[t[14]||(t[14]=h(" 模板明细键 ",-1)),g("code",null,te(d.tableKey),1),t[15]||(t[15]=h(" 对应画布表格等组件的数据源;请选择主实体上要绑定到该明细表的业务集合(或嵌套对象)。 ",-1))]),s(m,{value:K[d.tableKey],"onUpdate:value":F=>K[d.tableKey]=F,"allow-clear":"","show-search":"","option-filter-prop":"label",placeholder:"选择业务明细属性(如 lineList)",options:Ie.value,loading:!!q[d.tableKey],style:{width:"100%","margin-bottom":"12px"},onChange:F=>Ee(d.tableKey,F)},null,8,["value","onUpdate:value","options","loading","onChange"]),de(d).length?(f(),y(we,{key:0,size:"small","row-key":"templateField",pagination:!1,columns:We,"data-source":de(d),bordered:"",class:"bind-map-table"},{bodyCell:n(({column:F,record:X})=>[F.key==="tplKind"?(f(),P(se,{key:0},[h(te(Je(X.elementType)),1)],64)):U("",!0),F.key==="bizField"?(f(),y(m,{key:1,value:X.bizField,"onUpdate:value":ct=>X.bizField=ct,options:Me(d.tableKey),"allow-clear":"","show-search":"","option-filter-prop":"label",style:{width:"100%"},placeholder:"选择业务字段"},null,8,["value","onUpdate:value","options"])):U("",!0)]),_:2},1032,["data-source"])):(f(),y(ee,{key:1,class:"bind-empty",description:"该模板明细表下暂无占位字段(可在设计器中维护 dataBinding.detailTables)"}))]),_:2},1032,["tab"]))),128))]),_:1},8,["activeKey"])):(f(),y(ee,{key:1,class:"bind-empty",description:"本模板未解析到明细/表格列占位"}))])],64)):u.value.templateId&&!M.value?(f(),y(ee,{key:2,class:"bind-empty",description:"请点击右上角「解析模板占位字段」或切换模板"})):U("",!0):(f(),P("div",ii,"请先在上方的「基础信息」中选择打印模板"))]),_:1}),s(J,{title:"映射预览(可选)",size:"small",bordered:!0,class:"bind-card"},{default:n(()=>[s(mt,{value:S.value,"onUpdate:value":t[4]||(t[4]=d=>S.value=d),placeholder:'粘贴业务 JSON,例如:{"barcode":"TEST001","materialName":"胶料A"}',rows:4},null,8,["value"]),g("div",oi,[s(i,{type:"dashed",onClick:dt,loading:w.value},{default:n(()=>[...t[17]||(t[17]=[h("生成打印数据预览",-1)])]),_:1},8,["loading"])]),D.value?(f(),P("pre",si,te(D.value),1)):U("",!0)]),_:1})])]),_:1},8,["spinning"])]),_:1},8,["onRegister","title","confirm-loading"]),s(o(ke),{onRegister:o(He),title:"打印业务白名单",width:"760px",onOk:Qe,"confirm-loading":ae.value,"destroy-on-close":""},{default:n(()=>[s(Te,{spinning:Z.value},{default:n(()=>[s(l,{type:"info","show-icon":"",style:{"margin-bottom":"12px"},message:"说明",description:"勾选允许的菜单 id,保存时会写入 print_biz_perm_entity(能推断出实体类的菜单)。打开弹窗已优化为不再加载全量业务目录。白名单为空时「新增绑定」下拉仅展示表里已有映射;白名单非空时展示勾选中且能解析的菜单。"}),s(r,{style:{"margin-bottom":"8px"}},{default:n(()=>[s(i,{size:"small",onClick:t[5]||(t[5]=d=>ge(!0))},{default:n(()=>[...t[18]||(t[18]=[h("展开全部",-1)])]),_:1}),s(i,{size:"small",onClick:t[6]||(t[6]=d=>ge(!1))},{default:n(()=>[...t[19]||(t[19]=[h("折叠全部",-1)])]),_:1}),s(i,{size:"small",onClick:t[7]||(t[7]=d=>G.value=[])},{default:n(()=>[...t[20]||(t[20]=[h("清空勾选",-1)])]),_:1})]),_:1}),s(o(yt),{ref_key:"whitelistTreeRef",ref:fe,checkable:"",treeData:be.value,checkedKeys:G.value,expandedKeys:ne.value,selectedKeys:Ge.value,clickRowToExpand:!1,checkStrictly:!0,title:"系统菜单(权限树)",onCheck:Xe},{title:n(({slotTitle:d,ruleFlag:F})=>[h(te(d)+" ",1),F?(f(),y(o(xt),{key:0,icon:"ant-design:align-left-outlined",style:{"margin-left":"5px",color:"red"}})):U("",!0)]),_:1},8,["treeData","checkedKeys","expandedKeys","selectedKeys"])]),_:1},8,["spinning"])]),_:1},8,["onRegister","confirm-loading"])])}}}),Jl=It(ri,[["__scopeId","data-v-c60a0826"]]);export{Jl as default};
|