cnhis-design-vue 3.2.1-beta.8 → 3.2.1-release.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/es/components/button-print/index.d.ts +0 -1
  2. package/es/components/button-print/src/ButtonPrint.vue.d.ts +0 -1
  3. package/es/components/button-print/src/ButtonPrint.vue2.js +1 -1
  4. package/es/components/button-print/src/utils/print.d.ts +3 -15
  5. package/es/components/button-print/src/utils/print.js +1 -1
  6. package/es/components/calendar/index.d.ts +11 -1
  7. package/es/components/calendar/src/Calendar.vue.d.ts +11 -1
  8. package/es/components/field-set/index.d.ts +1 -1
  9. package/es/components/field-set/src/FieldColor.vue.d.ts +0 -1
  10. package/es/components/field-set/src/FieldSet.vue.d.ts +0 -1
  11. package/es/components/field-set/src/Index.vue.d.ts +1 -1
  12. package/es/components/field-set/src/Index.vue2.js +1 -1
  13. package/es/components/field-set/src/components/Row.vue.d.ts +0 -1
  14. package/es/components/field-set/src/components/Row.vue2.js +1 -1
  15. package/es/components/field-set/src/types/index.d.ts +1 -1
  16. package/es/components/field-set/style/index.css +1 -1
  17. package/es/components/iho-table/src/plugins/headerPlugin.js +1 -1
  18. package/es/components/iho-table/src/plugins/lowCodeFieldAdaptorPlugin.js +1 -1
  19. package/es/components/iho-table/src/plugins/rendererPlugins/editableWidgets/selectRendererPlugin/editSelect.js +1 -1
  20. package/es/components/iho-table/src/plugins/verticalTablePlugin/index.js +1 -1
  21. package/es/components/iho-table/src/plugins/verticalTablePlugin/renderer.d.ts +1 -4
  22. package/es/components/iho-table/src/plugins/verticalTablePlugin/renderer.js +1 -1
  23. package/es/components/iho-table/src/plugins/verticalTablePlugin/types.d.ts +7 -11
  24. package/es/components/iho-table/src/plugins/verticalTablePlugin/utils.d.ts +4 -17
  25. package/es/components/iho-table/src/plugins/verticalTablePlugin/utils.js +1 -1
  26. package/es/components/iho-table/src/utils/index.d.ts +0 -1
  27. package/es/components/iho-table/src/utils/index.js +1 -1
  28. package/es/components/index.css +1 -1
  29. package/es/components/steps-wheel/src/StepsWheel.vue2.js +1 -1
  30. package/es/components/table-export-field/src/components/ExportModal.vue.d.ts +3 -0
  31. package/es/components/table-export-field/src/components/ExportModal.vue2.js +1 -1
  32. package/es/components/table-export-field/style/index.css +1 -1
  33. package/es/shared/package.json.js +1 -1
  34. package/es/shared/utils/index.js +1 -1
  35. package/package.json +2 -3
  36. package/es/components/field-set/src/TableStyle.vue.d.ts +0 -71
  37. package/es/components/field-set/src/TableStyle.vue.js +0 -1
  38. package/es/components/field-set/src/TableStyle.vue2.js +0 -1
  39. package/es/components/table-export-field/style/table-export-field-iconfont.ttf +0 -0
  40. package/es/shared/assets/img/table_style_1.png.js +0 -1
  41. package/es/shared/assets/img/table_style_2.png.js +0 -1
  42. package/es/shared/assets/img/table_style_3.png.js +0 -1
  43. package/es/shared/assets/img/table_style_4.png.js +0 -1
@@ -173,7 +173,6 @@ declare const ButtonPrint: SFCWithInstall<import("vue").DefineComponent<{
173
173
  }>>;
174
174
  emit: (event: "success" | "error" | "clickoutside", ...args: any[]) => void;
175
175
  defaultFormatInfo: import("../../shared/types").AnyObject;
176
- authorizationKey: import("vue").Ref<string>;
177
176
  state: {
178
177
  spinning: boolean;
179
178
  visible: boolean;
@@ -180,7 +180,6 @@ declare const _default: import("vue").DefineComponent<{
180
180
  }>>;
181
181
  emit: (event: "success" | "error" | "clickoutside", ...args: any[]) => void;
182
182
  defaultFormatInfo: AnyObject;
183
- authorizationKey: import("vue").Ref<string>;
184
183
  state: {
185
184
  spinning: boolean;
186
185
  visible: boolean;
@@ -1 +1 @@
1
- import{defineComponent as t,ref as e,reactive as n,computed as i,onMounted as a,watch as r,openBlock as o,createElementBlock as s,Fragment as l,createVNode as p,unref as d,withCtx as m,renderSlot as u,withModifiers as c,createTextVNode as f,toDisplayString as g,mergeProps as y}from"vue";import{isObject as v}from"@vue/shared";import{useMessage as b,NDropdown as h,NButton as I,NIcon as P}from"naive-ui";import{ChevronDown as w}from"@vicons/ionicons5";import{Print as F}from"./utils/print.js";import{isIReport as k}from"./utils/browserPrint.js";import T from"./components/IdentityVerification.vue.js";import{format as x}from"date-fns";import{savePrivateFormatApi as S,getPrivateFormatApi as L}from"./api.js";var j=t({__name:"ButtonPrint",props:{printParams:{type:Array},params:{default:()=>[],type:Array},btnText:{default:"打印",type:String},printText:{default:"直接打印",type:String},previewText:{default:"打印预览",type:String},pdfLoadText:{default:"下载pdf",type:String},formatEditText:{default:"格式编辑",type:String},prevFn:{default:()=>Promise.resolve(),type:Function},queryPrintFormatByNumber:{default:()=>Promise.resolve({}),type:Function},queryTemplateParams:{default:()=>Promise.resolve({}),type:Function},strategy:{default:"MULTI",type:String},clickPrevFn:{default:()=>Promise.resolve(!0),type:Function},noDataMsg:{default:"请选中需要打印的数据",type:String},token:{type:String},printdlgshow:{default:"0",type:String},btnprint:{type:String,default:"1"},directPrint:{type:Boolean,default:!1},externalOptionConfig:{type:Object,default:()=>({})},signature:{type:String},showLoading:{type:Boolean,default:!0}},emits:["success","error","clickoutside"],setup(t,{expose:j,emit:O}){var D;const E=t,M=b();let N;const V={},C=e(""),z=n({spinning:!1,visible:!1,formatList:[],templateParams:{},printParams:[],currentFormatId:"",identityVerification:{visible:!1},isInited:!1,watchPrintParamsReformatFn:null,spinTimer:null}),B=n([{label:E.printText,key:"printText"},{label:E.previewText,key:"previewText"},{label:E.pdfLoadText,key:"downloadPdf"},{label:E.formatEditText,key:"formatEditText"},...(null==(D=E.externalOptionConfig)?void 0:D.options)||[]]),J=i((()=>{if(!z.currentFormatId)return{};let t=z.currentFormatId;return z.formatList.find((e=>e.id===t))})),U=i((()=>{var t;return(null==(t=J.value)?void 0:t.name)||"格式选择"})),A=i((()=>{let t=z.formatList.find((t=>t.id===z.currentFormatId));return null==t?void 0:t.templateId})),q=async t=>{if(E.directPrint){if(z.spinning)return;return"button"===t?void await ot():it()}return it()},K=t=>p("span",{class:{active:t.key===z.currentFormatId}},[t.label]),R=(t,e)=>{z.spinning=!1;let n={type:e,formatId:z.currentFormatId,templateId:A.value};O("success",t,n)},_=t=>{z.spinning=!1,O("error",t),v(t)&&"notInstalledApp"===t.type&&M.error(t.message)},H=t=>{O("error",{message:"前置条件执行错误",type:t,preExecution:!0})},$=(t=0)=>{var e;const n=(null==(e=E.printParams)?void 0:e.length)?E.printParams[t]:z.printParams[t];return JSON.stringify({...n||{},...E.token?{token:E.token}:{}})},G=()=>{var t,e;let n={},i={};if(null==(t=z.templateParams.customizeDataset)?void 0:t.length){const t=(null==(e=Object.keys(z.printParams[0].datasetData||{}))?void 0:e[0])||"",n=JSON.stringify(z.printParams.map((e=>JSON.parse(e.datasetData[t]))));i={datasetData:{}},i.datasetData[t]=n}else Object.keys(z.printParams[0]).forEach((t=>{i[t]=[],z.printParams.forEach((e=>{i[t].includes(e[t])||i[t].push(e[t])})),i[t]=i[t].join(",")}));return n=Object.assign({},JSON.parse($(0)),i),JSON.stringify(n)},Q=()=>{let t=z.printParams.length;const e=async e=>{try{--t<=0&&R(e,"print")}catch(t){console.log("error",t)}};E.showLoading&&z.spinning||(z.spinning=!0,E.prevFn("print").then((()=>{const t={formatId:z.currentFormatId,templateId:A.value,authorizationKey:C.value,printdlgshow:E.printdlgshow,signature:E.signature};if("MULTI"===E.strategy)for(let n=0;n<z.printParams.length;n++)n>0&&(t.printdlgshow="0"),N.printDirect({...t,params:$(n)},e,_);else N.printDirect({...t,params:G()},(t=>{R(t,"print")}),_)})).catch((()=>{H("print"),z.spinning=!1})).finally((()=>{z.visible=!1})))},W=async(t,e)=>{var n,i;switch(t){case"printText":Q();break;case"previewText":(async()=>{E.showLoading&&z.spinning||(z.spinning=!0,E.prevFn("preview").then((()=>{const t="MULTI"===E.strategy?$():G(),e={formatId:z.currentFormatId,templateId:A.value,authorizationKey:C.value,params:t,btnprint:E.btnprint,signature:E.signature};N.preview(e,(t=>{R(t,"preview")}),_)})).catch((()=>{H("preview"),z.spinning=!1})).finally((()=>{z.visible=!1})))})();break;case"formatEditText":E.showLoading&&z.spinning||(z.spinning=!0,E.prevFn("edit").then((()=>{z.identityVerification.visible=!0})).catch((()=>{H("edit")})).finally((()=>{z.visible=!1,z.spinning=!1})));break;case"downloadPdf":(async()=>{E.showLoading&&z.spinning||(z.spinning=!0,E.prevFn("download").then((()=>{const t="MULTI"===E.strategy?$():G(),e={formatId:z.currentFormatId,templateId:A.value,authorizationKey:C.value,print:{print:"1",type:"1"},params:t,signature:E.signature};N.downloadPDF(e,(t=>R(t,"preview")),_)})).catch((()=>{H("download"),z.spinning=!1})).finally((()=>{z.visible=!1})))})();break;default:{z.visible=!1;const a=z.formatList.find((e=>e.id===t))||{};if(Object.keys(a).length>0){z.currentFormatId=t;const[e]=B;e.label=(null==a?void 0:a.name)||e.label,await S({formatForms:[{...a}],name:V.name||a.templateName,number:V.number||a.number,templateId:V.templateId||a.templateId,...V.id?{id:V.id}:{}},{token:E.token})}else null==(i=null==(n=E.externalOptionConfig)?void 0:n.onSelect)||i.call(n,t,e);break}}},X=()=>{z.visible=!1,O("clickoutside")},Y=()=>(z.isInited=!1,z.spinning=!1,setTimeout((()=>{z.visible=!1}),0),!1),Z=(t,e,n)=>{const i={};return e.forEach((e=>{let a=((t,e)=>{const n={DATE:"yyyy-MM-dd",DATETIME:"yyyy-MM-dd HH:mm:ss"};let i=e;return Object.keys(n).includes(t.type)&&e&&e instanceof Date&&(i=x(e,n[t.type])),(null==t?void 0:t.defaultValue)||i})(e,t[e[n]]);t[e[n]]&&a&&(i[e[n]]=a)})),i},tt=({customizeDataset:t=[],param:e=[]},n=[])=>n.map((n=>{let i={};return t.forEach((t=>{const e=t.dataSetting[0].selectFieldList;i.datasetData={[t.name]:JSON.stringify(Z(n,e,"fieldName"))}})),i=Object.assign({},i,Z(n,e,"key")),i})),et=async t=>{var e;if(z.formatList=t?(t=>{let e=[];return t&&t.forEach((t=>{if(!t.format)return!1;e.push(...t.format.map((e=>Object.assign({},e,{templateName:t.name}))))})),e})(t.obj):[],z.currentFormatId=await(async(t,e)=>{var n;if(!(null==t?void 0:t.length))return"";const{data:i}=await L({templateId:t[0].templateId},{token:E.token});if("SUCCESS"===i.result){const{formatForms:e=[]}=i.map||{};Object.assign(V,i.map||{});const a=null==(n=null==e?void 0:e[0])?void 0:n.id;if(a&&t.map((t=>t.id)).includes(a))return a}const a=t.find((t=>1==t[e]));return(null==a?void 0:a.id)||t[0].id})(z.formatList,"defaultFlag"),!z.currentFormatId)return M.error("获取打印格式失败,请联系管理员!"),Y();(()=>{const t=z.formatList.map((t=>({label:t.name,key:t.id})));B.unshift({label:U.value,key:"format",children:t})})();let n=null==(e=await E.queryTemplateParams())?void 0:e.obj;if(!n||!A.value)return M.error("获取打印模板失败,请联系管理员!"),Y();z.templateParams=n,z.printParams=tt(z.templateParams,E.params)},nt=async()=>{var t;if(z.isInited)return!0;z.isInited=!0,z.spinning=!0,(()=>{if(N)return!1;N=new F})();const e=await E.queryPrintFormatByNumber();return await et(e),(null==(t=e.obj)?void 0:t.length)>0&&(C.value=e.obj[0].authorizationKey||""),z.spinning=!1,!0},it=async(t=!0)=>{var e,n;if(await E.clickPrevFn())if((null==(e=E.params)?void 0:e.length)||(null==(n=E.printParams)?void 0:n.length)){if(!z.visible){if(!await nt())return!1}t&&(z.visible=!z.visible)}else M.warning(E.noDataMsg)},at=()=>{z.watchPrintParamsReformatFn&&z.watchPrintParamsReformatFn(),z.isInited?z.printParams=tt(z.templateParams,E.params):z.watchPrintParamsReformatFn=()=>r((()=>z.isInited),(t=>{if(!t)return!1;at()}))},rt=t=>{if(z.identityVerification.visible=!1,k(z.currentFormatId))return R(null,"edit");const e={formatId:z.currentFormatId,templateId:A.value,params:$(),token:t};N.editPrintFormat(e,(t=>{R(t,"edit")}),_)};async function ot(){await it(!1),Q()}return a((()=>{z.isInited=!1})),r((()=>E.params),(t=>{if(!(null==t?void 0:t.length))return!1;at()}),{deep:!0}),j({directPrint:ot}),(e,n)=>(o(),s(l,null,[p(d(h),{class:"c-dropdown",placement:"bottom-start",trigger:"click",show:z.visible,onClickoutside:X,options:B,onSelect:W,"render-label":K},{default:m((()=>[u(e.$slots,"button",{handleClickPrintBtn:it,printSpinning:z.spinning,printbtnText:t.btnText,printVisible:z.visible},(()=>[p(d(I),{class:"dropdown-button",loading:t.showLoading&&z.spinning,onClick:n[1]||(n[1]=c((()=>q("button")),["stop"]))},{default:m((()=>[f(g(t.btnText)+" ",1),p(d(P),{component:d(w),size:"18",style:{"margin-left":"5px"},onClick:n[0]||(n[0]=c((()=>q("icon")),["stop"]))},null,8,["component"])])),_:1},8,["loading"])]))])),_:3},8,["show","options"]),p(T,y(e.$attrs,{modelValue:z.identityVerification.visible,"onUpdate:modelValue":n[2]||(n[2]=t=>z.identityVerification.visible=t),formatId:z.currentFormatId,templateId:d(A),onSuccess:rt}),null,16,["modelValue","formatId","templateId"])],64))}});export{j as default};
1
+ import{defineComponent as t,reactive as e,computed as n,onMounted as i,watch as r,openBlock as a,createElementBlock as s,Fragment as o,createVNode as l,unref as p,withCtx as d,renderSlot as m,withModifiers as u,createTextVNode as c,toDisplayString as f,mergeProps as g}from"vue";import{isObject as y}from"@vue/shared";import{useMessage as v,NDropdown as b,NButton as I,NIcon as P}from"naive-ui";import{ChevronDown as h}from"@vicons/ionicons5";import{Print as w}from"./utils/print.js";import{isIReport as F}from"./utils/browserPrint.js";import k from"./components/IdentityVerification.vue.js";import{format as T}from"date-fns";import{savePrivateFormatApi as x,getPrivateFormatApi as S}from"./api.js";var L=t({__name:"ButtonPrint",props:{printParams:{type:Array},params:{default:()=>[],type:Array},btnText:{default:"打印",type:String},printText:{default:"直接打印",type:String},previewText:{default:"打印预览",type:String},pdfLoadText:{default:"下载pdf",type:String},formatEditText:{default:"格式编辑",type:String},prevFn:{default:()=>Promise.resolve(),type:Function},queryPrintFormatByNumber:{default:()=>Promise.resolve({}),type:Function},queryTemplateParams:{default:()=>Promise.resolve({}),type:Function},strategy:{default:"MULTI",type:String},clickPrevFn:{default:()=>Promise.resolve(!0),type:Function},noDataMsg:{default:"请选中需要打印的数据",type:String},token:{type:String},printdlgshow:{default:"0",type:String},btnprint:{type:String,default:"1"},directPrint:{type:Boolean,default:!1},externalOptionConfig:{type:Object,default:()=>({})},signature:{type:String},showLoading:{type:Boolean,default:!0}},emits:["success","error","clickoutside"],setup(t,{expose:L,emit:O}){var j;const D=t,E=v();let M;const N={},V=e({spinning:!1,visible:!1,formatList:[],templateParams:{},printParams:[],currentFormatId:"",identityVerification:{visible:!1},isInited:!1,watchPrintParamsReformatFn:null,spinTimer:null}),C=e([{label:D.printText,key:"printText"},{label:D.previewText,key:"previewText"},{label:D.pdfLoadText,key:"downloadPdf"},{label:D.formatEditText,key:"formatEditText"},...(null==(j=D.externalOptionConfig)?void 0:j.options)||[]]),B=n((()=>{if(!V.currentFormatId)return{};let t=V.currentFormatId;return V.formatList.find((e=>e.id===t))})),J=n((()=>{var t;return(null==(t=B.value)?void 0:t.name)||"格式选择"})),U=n((()=>{let t=V.formatList.find((t=>t.id===V.currentFormatId));return null==t?void 0:t.templateId})),A=async t=>{if(D.directPrint){if(V.spinning)return;return"button"===t?void await rt():et()}return et()},q=t=>l("span",{class:{active:t.key===V.currentFormatId}},[t.label]),R=(t,e)=>{V.spinning=!1;let n={type:e,formatId:V.currentFormatId,templateId:U.value};O("success",t,n)},_=t=>{V.spinning=!1,O("error",t),y(t)&&"notInstalledApp"===t.type&&E.error(t.message)},z=t=>{O("error",{message:"前置条件执行错误",type:t,preExecution:!0})},H=(t=0)=>{var e;const n=(null==(e=D.printParams)?void 0:e.length)?D.printParams[t]:V.printParams[t];return JSON.stringify({...n||{},...D.token?{token:D.token}:{}})},$=()=>{var t,e;let n={},i={};if(null==(t=V.templateParams.customizeDataset)?void 0:t.length){const t=(null==(e=Object.keys(V.printParams[0].datasetData||{}))?void 0:e[0])||"",n=JSON.stringify(V.printParams.map((e=>JSON.parse(e.datasetData[t]))));i={datasetData:{}},i.datasetData[t]=n}else Object.keys(V.printParams[0]).forEach((t=>{i[t]=[],V.printParams.forEach((e=>{i[t].includes(e[t])||i[t].push(e[t])})),i[t]=i[t].join(",")}));return n=Object.assign({},JSON.parse(H(0)),i),JSON.stringify(n)},G=()=>{let t=V.printParams.length;const e=async e=>{try{--t<=0&&R(e,"print")}catch(t){console.log("error",t)}};D.showLoading&&V.spinning||(V.spinning=!0,D.prevFn("print").then((()=>{const t={formatId:V.currentFormatId,templateId:U.value,printdlgshow:D.printdlgshow,signature:D.signature};if("MULTI"===D.strategy)for(let n=0;n<V.printParams.length;n++)n>0&&(t.printdlgshow="0"),M.printDirect({...t,params:H(n)},e,_);else M.printDirect({...t,params:$()},(t=>{R(t,"print")}),_)})).catch((()=>{z("print"),V.spinning=!1})).finally((()=>{V.visible=!1})))},K=async(t,e)=>{var n,i;switch(t){case"printText":G();break;case"previewText":(async()=>{D.showLoading&&V.spinning||(V.spinning=!0,D.prevFn("preview").then((()=>{const t="MULTI"===D.strategy?H():$(),e={formatId:V.currentFormatId,templateId:U.value,params:t,btnprint:D.btnprint,signature:D.signature};M.preview(e,(t=>{R(t,"preview")}),_)})).catch((()=>{z("preview"),V.spinning=!1})).finally((()=>{V.visible=!1})))})();break;case"formatEditText":D.showLoading&&V.spinning||(V.spinning=!0,D.prevFn("edit").then((()=>{V.identityVerification.visible=!0})).catch((()=>{z("edit")})).finally((()=>{V.visible=!1,V.spinning=!1})));break;case"downloadPdf":(async()=>{D.showLoading&&V.spinning||(V.spinning=!0,D.prevFn("download").then((()=>{const t="MULTI"===D.strategy?H():$(),e={formatId:V.currentFormatId,templateId:U.value,print:{print:"1",type:"1"},params:t,signature:D.signature};M.downloadPDF(e,(t=>R(t,"preview")),_)})).catch((()=>{z("download"),V.spinning=!1})).finally((()=>{V.visible=!1})))})();break;default:{V.visible=!1;const r=V.formatList.find((e=>e.id===t))||{};if(Object.keys(r).length>0){V.currentFormatId=t;const[e]=C;e.label=(null==r?void 0:r.name)||e.label,await x({formatForms:[{...r}],name:N.name||r.templateName,number:N.number||r.number,templateId:N.templateId||r.templateId,...N.id?{id:N.id}:{}},{token:D.token})}else null==(i=null==(n=D.externalOptionConfig)?void 0:n.onSelect)||i.call(n,t,e);break}}},Q=()=>{V.visible=!1,O("clickoutside")},W=()=>(V.isInited=!1,V.spinning=!1,setTimeout((()=>{V.visible=!1}),0),!1),X=(t,e,n)=>{const i={};return e.forEach((e=>{let r=((t,e)=>{const n={DATE:"yyyy-MM-dd",DATETIME:"yyyy-MM-dd HH:mm:ss"};let i=e;return Object.keys(n).includes(t.type)&&e&&e instanceof Date&&(i=T(e,n[t.type])),(null==t?void 0:t.defaultValue)||i})(e,t[e[n]]);t[e[n]]&&r&&(i[e[n]]=r)})),i},Y=({customizeDataset:t=[],param:e=[]},n=[])=>n.map((n=>{let i={};return t.forEach((t=>{const e=t.dataSetting[0].selectFieldList;i.datasetData={[t.name]:JSON.stringify(X(n,e,"fieldName"))}})),i=Object.assign({},i,X(n,e,"key")),i})),Z=async t=>{var e;if(V.formatList=t?(t=>{let e=[];return t&&t.forEach((t=>{if(!t.format)return!1;e.push(...t.format.map((e=>Object.assign({},e,{templateName:t.name}))))})),e})(t.obj):[],V.currentFormatId=await(async(t,e)=>{var n;if(!(null==t?void 0:t.length))return"";const{data:i}=await S({templateId:t[0].templateId},{token:D.token});if("SUCCESS"===i.result){const{formatForms:e=[]}=i.map||{};Object.assign(N,i.map||{});const r=null==(n=null==e?void 0:e[0])?void 0:n.id;if(r&&t.map((t=>t.id)).includes(r))return r}const r=t.find((t=>1==t[e]));return(null==r?void 0:r.id)||t[0].id})(V.formatList,"defaultFlag"),!V.currentFormatId)return E.error("获取打印格式失败,请联系管理员!"),W();(()=>{const t=V.formatList.map((t=>({label:t.name,key:t.id})));C.unshift({label:J.value,key:"format",children:t})})();let n=null==(e=await D.queryTemplateParams())?void 0:e.obj;if(!n||!U.value)return E.error("获取打印模板失败,请联系管理员!"),W();V.templateParams=n,V.printParams=Y(V.templateParams,D.params)},tt=async()=>{if(V.isInited)return!0;V.isInited=!0,V.spinning=!0,(()=>{if(M)return!1;M=new w})();const t=await D.queryPrintFormatByNumber();return await Z(t),V.spinning=!1,!0},et=async(t=!0)=>{var e,n;if(await D.clickPrevFn())if((null==(e=D.params)?void 0:e.length)||(null==(n=D.printParams)?void 0:n.length)){if(!V.visible){if(!await tt())return!1}t&&(V.visible=!V.visible)}else E.warning(D.noDataMsg)},nt=()=>{V.watchPrintParamsReformatFn&&V.watchPrintParamsReformatFn(),V.isInited?V.printParams=Y(V.templateParams,D.params):V.watchPrintParamsReformatFn=()=>r((()=>V.isInited),(t=>{if(!t)return!1;nt()}))},it=t=>{if(V.identityVerification.visible=!1,F(V.currentFormatId))return R(null,"edit");const e={formatId:V.currentFormatId,templateId:U.value,params:H(),token:t};M.editPrintFormat(e,(t=>{R(t,"edit")}),_)};async function rt(){await et(!1),G()}return i((()=>{V.isInited=!1})),r((()=>D.params),(t=>{if(!(null==t?void 0:t.length))return!1;nt()}),{deep:!0}),L({directPrint:rt}),(e,n)=>(a(),s(o,null,[l(p(b),{class:"c-dropdown",placement:"bottom-start",trigger:"click",show:V.visible,onClickoutside:Q,options:C,onSelect:K,"render-label":q},{default:d((()=>[m(e.$slots,"button",{handleClickPrintBtn:et,printSpinning:V.spinning,printbtnText:t.btnText,printVisible:V.visible},(()=>[l(p(I),{class:"dropdown-button",loading:t.showLoading&&V.spinning,onClick:n[1]||(n[1]=u((()=>A("button")),["stop"]))},{default:d((()=>[c(f(t.btnText)+" ",1),l(p(P),{component:p(h),size:"18",style:{"margin-left":"5px"},onClick:n[0]||(n[0]=u((()=>A("icon")),["stop"]))},null,8,["component"])])),_:1},8,["loading"])]))])),_:3},8,["show","options"]),l(k,g(e.$attrs,{modelValue:V.identityVerification.visible,"onUpdate:modelValue":n[2]||(n[2]=t=>V.identityVerification.visible=t),formatId:V.currentFormatId,templateId:p(U),onSuccess:it}),null,16,["modelValue","formatId","templateId"])],64))}});export{L as default};
@@ -11,17 +11,9 @@ export declare class Print {
11
11
  private isRemote;
12
12
  private CMonitor;
13
13
  private queryServicesParams;
14
- private isConnectHiPrint;
15
- private clientInfo;
16
- private printerList;
17
- private hiPrintSocket;
18
- private base64Fragment;
19
- private _successCallbackFn;
20
- private _errorCallbackFn;
21
14
  constructor();
22
15
  private readonly messageHandlerQueue;
23
16
  private messageHandler;
24
- private _initDomesticSystem;
25
17
  getPicAndUpload(obj: any): Promise<void>;
26
18
  _uploadImageServices(uploadParams: AnyObject): Promise<any>;
27
19
  private postMessage;
@@ -55,19 +47,15 @@ export declare class Print {
55
47
  _handleEventEditFormat({ templateId, formatId, params, token, messageTimeout }: AnyObject): Promise<any>;
56
48
  _queryProxyOrigin(): Promise<void>;
57
49
  _queryPrintFile(formatId: string, params?: string): Promise<any>;
58
- paramsSerializer(params: AnyObject): AnyObject;
59
- _queryPrintForBase64(templateId: string, formatId: string, params: string | undefined, authorizationKey: String): Promise<any>;
60
- _queryPrintForPdf(templateId: string, formatId: string, params: string | undefined, authorizationKey: String): Promise<any>;
61
50
  _browserPrint(result: AnyObject, mode: string): Promise<string | void>;
62
- _base64ToBlob(fileBase64: string, fileType: string): Blob;
63
- preview({ templateId, formatId, params, authorizationKey, signature, btnprint, messageTimeout }: AnyObject, successCallbackFn?: AnyFn, errorCallbackFn?: AnyFn): Promise<any>;
51
+ preview({ templateId, formatId, params, signature, btnprint, messageTimeout }: AnyObject, successCallbackFn?: AnyFn, errorCallbackFn?: AnyFn): Promise<any>;
64
52
  printSync(data: AnyObject[], successCallbackFn: AnyFn, errorCallbackFn: AnyFn): Promise<void>;
65
- printDirect({ templateId, formatId, params, authorizationKey, print, signature, printdlgshow, nobillnode, isDownloadFile, messageTimeout }: AnyObject, successCallbackFn: AnyFn, errorCallbackFn: AnyFn, mode?: string): Promise<any>;
53
+ printDirect({ templateId, formatId, params, print, signature, printdlgshow, nobillnode, isDownloadFile, messageTimeout }: AnyObject, successCallbackFn: AnyFn, errorCallbackFn: AnyFn, mode?: string): Promise<any>;
66
54
  private _downloadPDF;
67
55
  /**
68
56
  * 下载pdf
69
57
  */
70
- downloadPDF(params: AnyObject, onResolve: AnyFn, onReject: AnyFn): Promise<any>;
58
+ downloadPDF(params: AnyObject, onResolve: AnyFn, onReject: AnyFn): void;
71
59
  print({ templateId, formatId, params, messageTimeout }: AnyObject, successCallbackFn?: AnyFn, errorCallbackFn?: AnyFn): Promise<false | undefined>;
72
60
  queryPrintData({ templateId, formatId, params, messageTimeout }: AnyObject, successCallbackFn?: AnyFn, errorCallbackFn?: AnyFn): Promise<false | {
73
61
  file: any;
@@ -1 +1 @@
1
- import t from"axios";import{isArray as e}from"lodash-es";import{IdentityVerificationDialog as i,PreviewDialog as s}from"./dialog.js";import{getFileUrl as r,useBrowserPrint as n,isIReport as a}from"./browserPrint.js";import{getCurrentInstance as o}from"vue";import{uuidGenerator as l}from"../../../../shared/utils/index.js";import{format as c}from"date-fns";import{io as h}from"socket.io-client";const d=t.create({timeout:6e4,withCredentials:!1}),m=`${window.location.protocol}//${window.location.host}`,u=`${m}/fdp-api/print/assembly/printIReport`,p=`${m}/bi-api/reprot/print/open/client/printIReportForBase64`,f=`${m}/bi-api/reprot/print/open/client/previewIReport`,w=`${m}/bi-api/reprot/print/open/client/getRemote`,y=`${m}/bi-api/reprot/print/open/client/uploadTemplate`,g=`${m}/printService/file`;let P=null;class v{constructor(){var t,e,r;if(this.webview=null,this.dialog=new i,this.dialogPreview=new s,this.instance=null,this.downloadPath="",this.printOrigin="http://127.0.0.1:11111",this.isRemote=!1,this.CMonitor=null,this.queryServicesParams=null,this.isConnectHiPrint=!1,this.clientInfo=null,this.printerList=[],this.hiPrintSocket=null,this.base64Fragment="",this._successCallbackFn=null,this._errorCallbackFn=null,this.messageHandlerQueue=[],P)return P;P=this,this._initDomesticSystem();const n=window;this.CMonitor=n.$CMonitor;try{this.webview=n.top?null==(t=n.top.chrome)?void 0:t.webview:null==(e=n.chrome)?void 0:e.webview}catch(t){console.log(t),this.webview=null==(r=n.chrome)?void 0:r.webview}if(this.webview){this.currentMessageHandler=this.messageHandler.bind(this),this.webview.addEventListener("message",this.currentMessageHandler);try{this.webview.postMessage({exec:"config",data:""})}catch(t){const e="当前浏览器版本不支持获取配置接口";this._handleMonitorNotify(e),console.log("非封装浏览器或者"+e)}}}messageHandler(t){var e;if(console.log("打印事件message",t),!t)return this._handleMonitorNotify("接收到空的浏览器事件,"+t),console.log("当前回执",t,"接收到空的浏览器事件");let i;try{i=JSON.parse(t.data||"{}")}catch(e){console.log("解析e.data失败,"+e),this._handleMonitorNotify("解析e.data失败,"+t)}if(["print","pdf"].includes(null==i?void 0:i.cmd)){console.log("打印命令执行了",i);const e=this.messageHandlerQueue.shift();if(!e)return console.log("当前回执",t,"没有可用的handler");const{resolve:s,reject:r}=e;try{s(i.res||"")}catch(t){r(t)}}else"config"===(null==i?void 0:i.exec)&&(this.downloadPath=(null==(e=i.res)?void 0:e.downloadpath)||"")}_initDomesticSystem(){try{this.hiPrintSocket=h("http://127.0.0.1:17521",{transports:["websocket"],auth:{token:"no-use-vue-plugin-hiprint"}}),this.hiPrintSocket&&(this.hiPrintSocket.on("connect",(()=>{this.isConnectHiPrint=!0})),this.hiPrintSocket.on("disconnect",(()=>{this.isConnectHiPrint=!1})),this.hiPrintSocket.on("clientInfo",(t=>{console.log("获取到客户端信息>>>>>",t),t.clientUrl&&(this.clientInfo=t)})),this.hiPrintSocket.on("printerList",(t=>{this.printerList=t,console.log("获取到打印机列表信息>>>>>",t)})),this.hiPrintSocket.on("success",(t=>{console.log("打印成功>>>>>",t),this.base64Fragment="",this._successCallbackFn&&this._successCallbackFn(t)})),this.hiPrintSocket.on("replayPrinterTemplate",(t=>{console.log("获取到数据的回复>>>>>",t),t&&this.hiPrintSocket.emit("news",t)})),this.hiPrintSocket.on("error",(t=>{console.log("打印失败>>>>>",t),this.base64Fragment="",this._errorCallbackFn&&this._errorCallbackFn(t)})))}catch(t){console.log("hiprint系统连接失败",t)}}async getPicAndUpload(t){try{const e=t=>"[object Object]"===Object.prototype.toString.call(t);if("success"===(null==t?void 0:t.result)&&"Y"==(null==t?void 0:t.uploadTemplateFlag)&&!(null==t?void 0:t.filebase64)&&this.queryServicesParams){const t=e(this.queryServicesParams.params)?this.queryServicesParams.params:JSON.parse(this.queryServicesParams.params);t.uploadTemplateFlag="Y",this.queryServicesParams.params=JSON.stringify(t),this.queryServicesParams.cmdid="7",this.queryServicesParams.print={print:1,type:2,callback:1};const i=await this._queryServicesPrint(this.queryServicesParams);if(i&&i.filebase64&&i.key){const t={templateId:this.queryServicesParams.templateId,formatId:this.queryServicesParams.formatId,fileBase64:i.filebase64,authorizationKey:i.key,params:this.queryServicesParams.params},e=await this._uploadImageServices(t);"success"===(null==e?void 0:e.result)&&console.log("图片上传成功")}}}catch(t){console.log(t)}finally{this.queryServicesParams=null}}async _uploadImageServices(t){const e=new FormData;Object.keys(t).forEach((i=>{e.append(i,t[i])}));const{data:i}=await d({method:"post",headers:{"Content-Type":"application/x-www-form-urlencoded"},url:y,data:e})||{};return i}async postMessage(t,e=0){if(!this.webview)return Promise.reject();const i=l();return e&&e>0?this.messageCollectAndNotifyFail(i,t,e):this.messageCollect(i,t)}messageCollect(t,e){return new Promise(((i,s)=>{this.messageHandlerQueue.push({resolve:i,reject:s,id:t}),this.webview.postMessage(e)}))}messageCollectAndNotifyFail(t,e,i){return Promise.race([new Promise(((i,s)=>{this.messageHandlerQueue.push({resolve:i,reject:s,id:t}),this.webview.postMessage(e)})),new Promise(((e,s)=>{setTimeout((()=>{const e=this.messageHandlerQueue.findIndex((e=>e.id===t));e>-1&&this.messageHandlerQueue.splice(e,1),s({type:"timeout"})}),i)}))])}destroy(){}show(...t){return this.dialog.show(...t)}showPreview(...t){return this.dialogPreview.show(...t)}_testConnection(){return this.webview?Promise.resolve(!0):new Promise((t=>{d({url:`${this.printOrigin}/test`,method:"get",withCredentials:!1,params:{inputdata:{result:"success"}}}).then((({data:e})=>{"success"===e.result?t(!0):t(!1)})).catch((e=>{t(!1)}))}))}_queryServicesPrint(e){return this.webview?this.postMessage({exec:"print",data:{inputData:e}},null==e?void 0:e.messageTimeout):t({url:this.printOrigin+"/services/print",method:"get",params:{inputData:JSON.stringify(e)}}).then((({data:t})=>t))}_callPrintWithFile(t){const e={cmdid:"7",flag:"1"},i={inputData:JSON.stringify(Object.assign({},e,t))};return this.webview?this.postMessage({exec:"print",data:s(i)}):d({url:this.printOrigin+"/PrintLocal",method:"post",data:i,transformRequest:[s]}).then((({data:t})=>t));function s(t){let e="";for(const i in t)e+=encodeURIComponent(i)+"="+encodeURIComponent(t[i])+"&";return e=e.slice(0,-1),e}}_handleMonitorNotify(t){var e,i;null==(i=null==(e=this.CMonitor)?void 0:e.notify)||i.call(e,{name:"custom_info",message:t,businessName:"打印sdk"})}_handleResult(t,e){if(!t){const t="打印命令返回空数据";return this._handleMonitorNotify(""),null==e||e({type:"printError",message:t,result:!1,errinfo:t}),!1}if("success"!==t.result){const i=t.message||t.Message;this._handleMonitorNotify(i);const s={type:"printError",message:i,result:t.result,errinfo:t.errinfo};return null==e||e(s),!1}return t}_handleResultTest(t,e){return!!t||(console.log("notInstalledApp"),null==e||e({type:"notInstalledApp",message:"请打开打印服务器插件"}),!1)}async _handleEventQueryPrintData(t,e,i,s,r){const n={templateId:t,formatId:e,params:i,cmdid:"7",messageTimeout:s},a=await this._queryServicesPrint(n);return this._handleQueryPrintDataResult(a,e,r)}_handleQueryPrintDataResult(t,e,i){if(!(null==t?void 0:t.file)){try{const e=t.message||t.Message;console.log(e),null==i||i({type:"queryPrintDataFailure",message:e})}catch(t){console.log(t)}return!1}return{file:t.file,printerName:t.defprinter,pageCount:t.pagecount,formatId:e}}async _handleEventDirect({templateId:t,formatId:e,params:i,cmdid:s,print:r,signature:n,printdlgshow:a="0",nobillnode:o="1",btnprint:l="1",messageTimeout:h=0}){const d={templateId:t,formatId:e,params:i,cmdid:s,nobillnode:o,printdlgshow:a,btnprint:l,messageTimeout:h,...n?{signature:n}:{}};if(r){try{r=JSON.parse(r)}catch(t){}d.print=r}else if(this.isRemote){const t=c(new Date,"yyyyMMddHHmmss");d.print={print:"1",type:"1",zip:"0",filename:`F:\\WorkSpace\\crmweb\\web\\${t}\\${t}`}}return this.queryServicesParams=d,await this._queryServicesPrint(d)}async _handleEventEditFormat({templateId:t,formatId:e="",params:i="",token:s,messageTimeout:r=0}){const n={};let a={};try{a=Object.assign({},n,JSON.parse(i))}catch(t){a=n}const o={templateId:t,formatId:e,cmdid:"9",token:s,params:JSON.stringify(a),messageTimeout:r};return await this._queryServicesPrint(o)}async _queryProxyOrigin(){if(this.isRemote)return;const{data:t}=await d({method:"get",url:w})||{},{map:e={}}=t;e.isRemote&&(this.printOrigin=m+"/printService",this.isRemote=!0)}async _queryPrintFile(t,e=""){const{data:i}=await d({method:"post",url:u,responseType:"blob",params:{formatId:t.split("_")[1],params:e}})||{};return i}paramsSerializer(t){return Object.keys(t).forEach((e=>{const i=t[e];t[e]=i,"biParams"==e&&(t[e]=encodeURIComponent(i))})),t}async _queryPrintForBase64(t,e,i="",s){const r="object"==typeof i?i:JSON.parse(i),{data:n}=await d({method:"post",url:p,params:{id:t,formatId:e.split("_")[1],params:this.paramsSerializer(r),authorizationKey:s}})||{};return n}async _queryPrintForPdf(t,e,i="",s){const r="object"==typeof i?i:JSON.parse(i),{data:n}=await d({method:"post",url:f,responseType:"blob",params:{id:t,formatId:e.split("_")[1],params:this.paramsSerializer(r),authorizationKey:s}})||{};return n}async _browserPrint(t,e){if(this.isRemote){const{filedir:i}=t,s=JSON.parse(i)[0].replace(/\\/g,"/").split("/"),a=s[s.length-2],o=s[s.length-1],l=await r(`${g}/${a}/${o}`),c=n(null,e,l);if("preview"===e)return c}}_base64ToBlob(t,e){const i=window.atob(t);let s=i.length;const r=new Uint8Array(s);for(;s--;)r[s]=i.charCodeAt(s);return new Blob([r],{type:e})}async preview({templateId:t,formatId:e,params:i="",authorizationKey:s,signature:r,btnprint:l,messageTimeout:c=0},h,d){if(a(e)){const r=await this._queryPrintForPdf(t,e,i,s);if(!r)return null==d?void 0:d("获取文件失败!");const a=n(r,"preview");return this.instance||(this.instance=o()),this.showPreview(this.instance,a),null==h?void 0:h({file:r})}await this._queryProxyOrigin();const m=await this._testConnection();if(!this._handleResultTest(m,d))return!1;try{const s=await this._handleEventDirect({templateId:t,formatId:e,params:i,cmdid:this.isRemote?"7":"8",signature:r,btnprint:l,messageTimeout:c}),n=this._handleResult(s,d);if(!n)return!1;if(this.isRemote){const t=await this._browserPrint(n,"preview");this.instance||(this.instance=o()),this.showPreview(this.instance,t)}await this.getPicAndUpload(n),null==h||h(n)}catch(t){const e="预览失败",i="timeout"===(null==t?void 0:t.type)?{...t,message:e}:{message:e};null==d||d(i),this._handleMonitorNotify(i)}}async printSync(t,e,i){const s=t.map((t=>{const e={params:"",printdlgshow:"0",nobillnode:"1",btnprint:"1",...t,cmdid:"7",...t.signature?{signature:t.signature}:{}};if(e.print)try{e.print=JSON.parse(e.print)}catch(t){}return{inputData:e}}));try{const t=l(),r=await this.messageCollect(t,{exec:"printA",data:s});if(r&&Array.isArray(r)){r.some((t=>"success"===t.res.result))?null==e||e(r):(null==i||i(r),this._handleMonitorNotify(r))}else{const t="打印命令返回无效数据";this._handleMonitorNotify(r||""),null==i||i({type:"printError",message:t,result:!1,errinfo:t})}}catch(t){const e={error:t,message:"打印失败"};null==i||i(e),this._handleMonitorNotify(e)}}async printDirect({templateId:t,formatId:e,params:i="",authorizationKey:s,print:r,signature:n,printdlgshow:o,nobillnode:l,isDownloadFile:c=!0,messageTimeout:h=0},d,m,u="printDirect"){if(a(e)){if(!this.isConnectHiPrint)return void m({message:"请连接hiPrint客户端"});const r=await this._queryPrintForBase64(t,e,i,s);if(!r.success)return m({message:r.resultMsg});const{base64:n,formatId:a}=r.map;return this.base64Fragment=n,this._successCallbackFn=d,this._errorCallbackFn=m,void this.hiPrintSocket.emit("news",{printerList:this.printerList,type:"askPrinterTemplate",markTemplateId:a,pdf_stream:this.base64Fragment})}await this._queryProxyOrigin();const p=await this._testConnection();if(!this._handleResultTest(p,m))return!1;try{const s=await this._handleEventDirect({templateId:t,formatId:e,params:i,cmdid:"7",print:r,signature:n,printdlgshow:o,nobillnode:l,messageTimeout:h}),a=this._handleResult(s,m);if(!a)return!1;c&&["downloadPDF"].includes(u)&&await this._browserPrint(a,u),null==d||d(a)}catch(t){const e="printDirect"===u?"打印失败":"下载失败",i="timeout"===(null==t?void 0:t.type)?{...t,message:e}:{message:e};null==m||m(i),this._handleMonitorNotify(i)}}_downloadPDF(t){return this.webview?this.postMessage({exec:"pdf",data:{file:t}}):d.get(this.printOrigin+"/download",{params:{inputData:t}}).then((({data:t})=>t))}async downloadPDF(t,i,s){if(this.webview&&this.downloadPath&&(Reflect.has(t,"print")||Reflect.set(t,"print",{print:"1",type:"1"}),!t.print.filename)){const e=c(new Date,"yyyy-MM-dd"),i=l(),s=c(new Date,"yyyyMMddHHmmss")+i;t.print.filename=`${this.downloadPath}/${e}/${s}/${s}`.replace(/\\/g,"/")}if(a(t.formatId)){const e=await this._queryPrintForPdf(t.templateId||"",t.formatId,t.params,t.authorizationKey);return e?(n(e,"downloadPDF"),i({file:e})):null==s?void 0:s("获取文件失败!")}this.printDirect(t,(async t=>{t||s(null);const r=this,n=await async function(t){const i=[],s=JSON.parse(t);if(!e(s))return await r._downloadPDF("");if(1===s.length)return await r._downloadPDF(s[0]||"");for(let t=0,e=s.length;t<e;t++)i.push(await r._downloadPDF(s[t]||""));return i}(t.filedir);i(n,t)}),(t=>s(t)),"downloadPDF")}async print({templateId:t,formatId:e,params:i="",messageTimeout:s=0},r,n){const a=await this._testConnection();if(!this._handleResultTest(a,n))return!1;const o=await this.queryPrintData({templateId:t,formatId:e,params:i,messageTimeout:s},void 0,n);if(!o)return!1;const l=this.printFileData({formatId:e,file:o.file,printerName:o.printerName},void 0,n);if(!l)return!1;r&&r(l)}async queryPrintData({templateId:t,formatId:e,params:i="",messageTimeout:s=0},r,n){const a=await this._testConnection();if(!this._handleResultTest(a,n))return!1;const o=await this._handleEventQueryPrintData(t,e,i,s,n);return!!o&&(r&&r(o),o)}async printFileData({formatId:t,file:e,printerName:i="Default"},s,r){const n=await this._testConnection();if(!this._handleResultTest(n,r))return!1;const a=await this._callPrintWithFile({formatId:t,printname:i,file:e}),o=this._handleResult(a,r);return!!o&&(s&&s(o),o)}async editPrintFormat({templateId:t,formatId:e,params:i,token:s,messageTimeout:r=0},n,a){const o=await this._testConnection();if(!this._handleResultTest(o,a))return!1;const l=await this._handleEventEditFormat({templateId:t,formatId:e,params:i,token:s,messageTimeout:r}),c=this._handleResult(l,a);if(!c)return!1;n&&n(c)}async addPrintFormat({templateId:t,params:e,token:i},s,r){const n=await this._testConnection();if(!this._handleResultTest(n,r))return!1;const a=await this._handleEventEditFormat({templateId:t,params:e,token:i}),o=this._handleResult(a,r);if(!o)return!1;s&&s(o)}}export{v as Print};
1
+ import t from"axios";import{isArray as e}from"lodash-es";import{IdentityVerificationDialog as i,PreviewDialog as s}from"./dialog.js";import{getFileUrl as a,useBrowserPrint as r,isIReport as n}from"./browserPrint.js";import{getCurrentInstance as o}from"vue";import{uuidGenerator as l}from"../../../../shared/utils/index.js";import{format as d}from"date-fns";const c=t.create({timeout:1e3,withCredentials:!1}),u=`${window.location.protocol}//${window.location.host}`,m=`${u}/fdp-api/print/assembly/printIReport`,h=`${u}/bi-api/reprot/print/open/client/getRemote`,p=`${u}/bi-api/reprot/print/open/client/uploadTemplate`,f=`${u}/printService/file`;let w=null;class g{constructor(){var t,e,a;if(this.webview=null,this.dialog=new i,this.dialogPreview=new s,this.instance=null,this.downloadPath="",this.printOrigin="http://127.0.0.1:11111",this.isRemote=!1,this.CMonitor=null,this.queryServicesParams=null,this.messageHandlerQueue=[],w)return w;w=this;const r=window;this.CMonitor=r.$CMonitor;try{this.webview=r.top?null==(t=r.top.chrome)?void 0:t.webview:null==(e=r.chrome)?void 0:e.webview}catch(t){console.log(t),this.webview=null==(a=r.chrome)?void 0:a.webview}if(this.webview){this.currentMessageHandler=this.messageHandler.bind(this),this.webview.addEventListener("message",this.currentMessageHandler);try{this.webview.postMessage({exec:"config",data:""})}catch(t){const e="当前浏览器版本不支持获取配置接口";this._handleMonitorNotify(e),console.log("非封装浏览器或者"+e)}}}messageHandler(t){var e;if(console.log("打印事件message",t),!t)return this._handleMonitorNotify("接收到空的浏览器事件,"+t),console.log("当前回执",t,"接收到空的浏览器事件");let i;try{i=JSON.parse(t.data||"{}")}catch(e){console.log("解析e.data失败,"+e),this._handleMonitorNotify("解析e.data失败,"+t)}if(["print","pdf"].includes(null==i?void 0:i.cmd)){console.log("打印命令执行了",i);const e=this.messageHandlerQueue.shift();if(!e)return console.log("当前回执",t,"没有可用的handler");const{resolve:s,reject:a}=e;try{s(i.res||"")}catch(t){a(t)}}else"config"===(null==i?void 0:i.exec)&&(this.downloadPath=(null==(e=i.res)?void 0:e.downloadpath)||"")}async getPicAndUpload(t){try{const e=t=>"[object Object]"===Object.prototype.toString.call(t);if("success"===(null==t?void 0:t.result)&&"Y"==(null==t?void 0:t.uploadTemplateFlag)&&!(null==t?void 0:t.filebase64)&&this.queryServicesParams){const t=e(this.queryServicesParams.params)?this.queryServicesParams.params:JSON.parse(this.queryServicesParams.params);t.uploadTemplateFlag="Y",this.queryServicesParams.params=JSON.stringify(t),this.queryServicesParams.cmdid="7",this.queryServicesParams.print={print:1,type:2,callback:1};const i=await this._queryServicesPrint(this.queryServicesParams);if(i&&i.filebase64&&i.key){const t={templateId:this.queryServicesParams.templateId,formatId:this.queryServicesParams.formatId,fileBase64:i.filebase64,authorizationKey:i.key,params:this.queryServicesParams.params},e=await this._uploadImageServices(t);"success"===(null==e?void 0:e.result)&&console.log("图片上传成功")}}}catch(t){console.log(t)}finally{this.queryServicesParams=null}}async _uploadImageServices(t){const e=new FormData;Object.keys(t).forEach((i=>{e.append(i,t[i])}));const{data:i}=await c({method:"post",headers:{"Content-Type":"application/x-www-form-urlencoded"},url:p,data:e})||{};return i}async postMessage(t,e=0){if(!this.webview)return Promise.reject();const i=l();return e&&e>0?this.messageCollectAndNotifyFail(i,t,e):this.messageCollect(i,t)}messageCollect(t,e){return new Promise(((i,s)=>{this.messageHandlerQueue.push({resolve:i,reject:s,id:t}),this.webview.postMessage(e)}))}messageCollectAndNotifyFail(t,e,i){return Promise.race([new Promise(((i,s)=>{this.messageHandlerQueue.push({resolve:i,reject:s,id:t}),this.webview.postMessage(e)})),new Promise(((e,s)=>{setTimeout((()=>{const e=this.messageHandlerQueue.findIndex((e=>e.id===t));e>-1&&this.messageHandlerQueue.splice(e,1),s({type:"timeout"})}),i)}))])}destroy(){}show(...t){return this.dialog.show(...t)}showPreview(...t){return this.dialogPreview.show(...t)}_testConnection(){return this.webview?Promise.resolve(!0):new Promise((t=>{c({url:`${this.printOrigin}/test`,method:"get",withCredentials:!1,params:{inputdata:{result:"success"}}}).then((({data:e})=>{"success"===e.result?t(!0):t(!1)})).catch((e=>{t(!1)}))}))}_queryServicesPrint(e){return this.webview?this.postMessage({exec:"print",data:{inputData:e}},null==e?void 0:e.messageTimeout):t({url:this.printOrigin+"/services/print",method:"get",params:{inputData:JSON.stringify(e)}}).then((({data:t})=>t))}_callPrintWithFile(t){const e={cmdid:"7",flag:"1"},i={inputData:JSON.stringify(Object.assign({},e,t))};return this.webview?this.postMessage({exec:"print",data:s(i)}):c({url:this.printOrigin+"/PrintLocal",method:"post",data:i,transformRequest:[s]}).then((({data:t})=>t));function s(t){let e="";for(const i in t)e+=encodeURIComponent(i)+"="+encodeURIComponent(t[i])+"&";return e=e.slice(0,-1),e}}_handleMonitorNotify(t){var e,i;null==(i=null==(e=this.CMonitor)?void 0:e.notify)||i.call(e,{name:"custom_info",message:t,businessName:"打印sdk"})}_handleResult(t,e){if(!t){const t="打印命令返回空数据";return this._handleMonitorNotify(""),null==e||e({type:"printError",message:t,result:!1,errinfo:t}),!1}if("success"!==t.result){const i=t.message||t.Message;this._handleMonitorNotify(i);const s={type:"printError",message:i,result:t.result,errinfo:t.errinfo};return null==e||e(s),!1}return t}_handleResultTest(t,e){return!!t||(console.log("notInstalledApp"),null==e||e({type:"notInstalledApp",message:"请打开打印服务器插件"}),!1)}async _handleEventQueryPrintData(t,e,i,s,a){const r={templateId:t,formatId:e,params:i,cmdid:"7",messageTimeout:s},n=await this._queryServicesPrint(r);return this._handleQueryPrintDataResult(n,e,a)}_handleQueryPrintDataResult(t,e,i){if(!(null==t?void 0:t.file)){try{const e=t.message||t.Message;console.log(e),null==i||i({type:"queryPrintDataFailure",message:e})}catch(t){console.log(t)}return!1}return{file:t.file,printerName:t.defprinter,pageCount:t.pagecount,formatId:e}}async _handleEventDirect({templateId:t,formatId:e,params:i,cmdid:s,print:a,signature:r,printdlgshow:n="0",nobillnode:o="1",btnprint:l="1",messageTimeout:c=0}){const u={templateId:t,formatId:e,params:i,cmdid:s,nobillnode:o,printdlgshow:n,btnprint:l,messageTimeout:c,...r?{signature:r}:{}};if(a){try{a=JSON.parse(a)}catch(t){}u.print=a}else if(this.isRemote){const t=d(new Date,"yyyyMMddHHmmss");u.print={print:"1",type:"1",zip:"0",filename:`F:\\WorkSpace\\crmweb\\web\\${t}\\${t}`}}return this.queryServicesParams=u,await this._queryServicesPrint(u)}async _handleEventEditFormat({templateId:t,formatId:e="",params:i="",token:s,messageTimeout:a=0}){const r={};let n={};try{n=Object.assign({},r,JSON.parse(i))}catch(t){n=r}const o={templateId:t,formatId:e,cmdid:"9",token:s,params:JSON.stringify(n),messageTimeout:a};return await this._queryServicesPrint(o)}async _queryProxyOrigin(){if(this.isRemote)return;const{data:t}=await c({method:"get",url:h})||{},{map:e={}}=t;e.isRemote&&(this.printOrigin=u+"/printService",this.isRemote=!0)}async _queryPrintFile(t,e=""){const{data:i}=await c({method:"post",url:m,responseType:"blob",params:{formatId:t.split("_")[1],params:e}})||{};return i}async _browserPrint(t,e){if(this.isRemote){const{filedir:i}=t,s=JSON.parse(i)[0].replace(/\\/g,"/").split("/"),n=s[s.length-2],o=s[s.length-1],l=await a(`${f}/${n}/${o}`),d=r(null,e,l);if("preview"===e)return d}}async preview({templateId:t,formatId:e,params:i="",signature:s,btnprint:a,messageTimeout:l=0},d,c){if(n(e)){const t=await this._queryPrintFile(e,i);if(!t)return null==c?void 0:c("获取文件失败!");const s=r(t,"preview");return this.instance||(this.instance=o()),this.showPreview(this.instance,s),void(null==d||d({file:t}))}await this._queryProxyOrigin();const u=await this._testConnection();if(!this._handleResultTest(u,c))return!1;try{const r=await this._handleEventDirect({templateId:t,formatId:e,params:i,cmdid:this.isRemote?"7":"8",signature:s,btnprint:a,messageTimeout:l}),n=this._handleResult(r,c);if(!n)return!1;if(this.isRemote){const t=await this._browserPrint(n,"preview");this.instance||(this.instance=o()),this.showPreview(this.instance,t)}await this.getPicAndUpload(n),null==d||d(n)}catch(t){const e="预览失败",i="timeout"===(null==t?void 0:t.type)?{...t,message:e}:{message:e};null==c||c(i),this._handleMonitorNotify(i)}}async printSync(t,e,i){const s=t.map((t=>{const e={params:"",printdlgshow:"0",nobillnode:"1",btnprint:"1",...t,cmdid:"7",...t.signature?{signature:t.signature}:{}};if(e.print)try{e.print=JSON.parse(e.print)}catch(t){}return{inputData:e}}));try{const t=l(),a=await this.messageCollect(t,{exec:"printA",data:s});if(a&&Array.isArray(a)){a.some((t=>"success"===t.res.result))?null==e||e(a):(null==i||i(a),this._handleMonitorNotify(a))}else{const t="打印命令返回无效数据";this._handleMonitorNotify(a||""),null==i||i({type:"printError",message:t,result:!1,errinfo:t})}}catch(t){const e={error:t,message:"打印失败"};null==i||i(e),this._handleMonitorNotify(e)}}async printDirect({templateId:t,formatId:e,params:i="",print:s,signature:a,printdlgshow:o,nobillnode:l,isDownloadFile:d=!0,messageTimeout:c=0},u,m,h="printDirect"){if(n(e)){const t=await this._queryPrintFile(e,i);return t?(r(t,h),void(null==u||u({file:t}))):null==m?void 0:m("获取文件失败!")}await this._queryProxyOrigin();const p=await this._testConnection();if(!this._handleResultTest(p,m))return!1;try{const r=await this._handleEventDirect({templateId:t,formatId:e,params:i,cmdid:"7",print:s,signature:a,printdlgshow:o,nobillnode:l,messageTimeout:c}),n=this._handleResult(r,m);if(!n)return!1;d&&["downloadPDF"].includes(h)&&await this._browserPrint(n,h),null==u||u(n)}catch(t){const e="printDirect"===h?"打印失败":"下载失败",i="timeout"===(null==t?void 0:t.type)?{...t,message:e}:{message:e};null==m||m(i),this._handleMonitorNotify(i)}}_downloadPDF(t){return this.webview?this.postMessage({exec:"pdf",data:{file:t}}):c.get(this.printOrigin+"/download",{params:{inputData:t}}).then((({data:t})=>t))}downloadPDF(t,i,s){if(this.webview&&this.downloadPath&&(Reflect.has(t,"print")||Reflect.set(t,"print",{print:"1",type:"1"}),!t.print.filename)){const e=d(new Date,"yyyy-MM-dd"),i=l(),s=d(new Date,"yyyyMMddHHmmss")+i;t.print.filename=`${this.downloadPath}/${e}/${s}/${s}`.replace(/\\/g,"/")}this.printDirect(t,(async a=>{if(a||s(null),n(t.formatId))return i(a);const r=this,o=await async function(t){const i=[],s=JSON.parse(t);if(!e(s))return await r._downloadPDF("");if(1===s.length)return await r._downloadPDF(s[0]||"");for(let t=0,e=s.length;t<e;t++)i.push(await r._downloadPDF(s[t]||""));return i}(a.filedir);i(o,a)}),(t=>s(t)),"downloadPDF")}async print({templateId:t,formatId:e,params:i="",messageTimeout:s=0},a,r){const n=await this._testConnection();if(!this._handleResultTest(n,r))return!1;const o=await this.queryPrintData({templateId:t,formatId:e,params:i,messageTimeout:s},void 0,r);if(!o)return!1;const l=this.printFileData({formatId:e,file:o.file,printerName:o.printerName},void 0,r);if(!l)return!1;a&&a(l)}async queryPrintData({templateId:t,formatId:e,params:i="",messageTimeout:s=0},a,r){const n=await this._testConnection();if(!this._handleResultTest(n,r))return!1;const o=await this._handleEventQueryPrintData(t,e,i,s,r);return!!o&&(a&&a(o),o)}async printFileData({formatId:t,file:e,printerName:i="Default"},s,a){const r=await this._testConnection();if(!this._handleResultTest(r,a))return!1;const n=await this._callPrintWithFile({formatId:t,printname:i,file:e}),o=this._handleResult(n,a);return!!o&&(s&&s(o),o)}async editPrintFormat({templateId:t,formatId:e,params:i,token:s,messageTimeout:a=0},r,n){const o=await this._testConnection();if(!this._handleResultTest(o,n))return!1;const l=await this._handleEventEditFormat({templateId:t,formatId:e,params:i,token:s,messageTimeout:a}),d=this._handleResult(l,n);if(!d)return!1;r&&r(d)}async addPrintFormat({templateId:t,params:e,token:i},s,a){const r=await this._testConnection();if(!this._handleResultTest(r,a))return!1;const n=await this._handleEventEditFormat({templateId:t,params:e,token:i}),o=this._handleResult(n,a);if(!o)return!1;s&&s(o)}}export{g as Print};
@@ -228,7 +228,17 @@ declare const Calendar: SFCWithInstall<import("vue").DefineComponent<{
228
228
  NIcon: any;
229
229
  ChevronBackOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
230
230
  ChevronForwardOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
231
- FullCalendar: any;
231
+ FullCalendar: import("vue").DefineComponent<{
232
+ options: import("vue").PropType<import("@fullcalendar/core/internal-common").a>;
233
+ }, unknown, {
234
+ renderId: number;
235
+ customRenderingMap: Map<string, import("@fullcalendar/core/internal-common").eF<any>>;
236
+ }, {}, {
237
+ getApi(): import("@fullcalendar/core").Calendar;
238
+ buildOptions(suppliedOptions: import("@fullcalendar/core/internal-common").a | undefined): import("@fullcalendar/core/internal-common").a;
239
+ }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
240
+ options: import("vue").PropType<import("@fullcalendar/core/internal-common").a>;
241
+ }>>, {}>;
232
242
  isSameDay: typeof import("date-fns").isSameDay;
233
243
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("select" | "eventClick" | "eventDrag" | "eventResize" | "dateChange")[], "select" | "eventClick" | "eventDrag" | "eventResize" | "dateChange", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
234
244
  showDateNavigation: {
@@ -221,7 +221,17 @@ declare const _default: import("vue").DefineComponent<{
221
221
  NIcon: any;
222
222
  ChevronBackOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
223
223
  ChevronForwardOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
224
- FullCalendar: any;
224
+ FullCalendar: import("vue").DefineComponent<{
225
+ options: PropType<import("@fullcalendar/core/internal-common").a>;
226
+ }, unknown, {
227
+ renderId: number;
228
+ customRenderingMap: Map<string, import("@fullcalendar/core/internal-common").eF<any>>;
229
+ }, {}, {
230
+ getApi(): import("@fullcalendar/core").Calendar;
231
+ buildOptions(suppliedOptions: import("@fullcalendar/core/internal-common").a | undefined): import("@fullcalendar/core/internal-common").a;
232
+ }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
233
+ options: PropType<import("@fullcalendar/core/internal-common").a>;
234
+ }>>, {}>;
225
235
  isSameDay: typeof isSameDay;
226
236
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("select" | "eventClick" | "eventDrag" | "eventResize" | "dateChange")[], "select" | "eventClick" | "eventDrag" | "eventResize" | "dateChange", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
227
237
  showDateNavigation: {
@@ -61,7 +61,7 @@ declare const FieldSet: SFCWithInstall<import("vue").DefineComponent<{
61
61
  }[]>;
62
62
  onSave: () => void;
63
63
  setRef: (e: any, id: string) => void;
64
- getTableFields: (type?: "field" | "fieldColor" | "highlightRow" | "tableStyle" | undefined) => any;
64
+ getTableFields: (type?: "field" | "fieldColor" | "highlightRow" | undefined) => any;
65
65
  NTabs: any;
66
66
  NTabPane: import("vue").DefineComponent<{
67
67
  readonly tab: import("vue").PropType<string | number | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
@@ -351,7 +351,6 @@ declare const _default: import("vue").DefineComponent<{
351
351
  ReorderTwoOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
352
352
  TrashOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
353
353
  CreateOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
354
- HelpCircleOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
355
354
  isFunction: (value: any) => value is (...args: any[]) => any;
356
355
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("edit" | "updateChecked")[], "edit" | "updateChecked", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
357
356
  element: {
@@ -469,7 +469,6 @@ declare const _default: import("vue").DefineComponent<{
469
469
  ReorderTwoOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
470
470
  TrashOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
471
471
  CreateOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
472
- HelpCircleOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
473
472
  isFunction: (value: any) => value is (...args: any[]) => any;
474
473
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("edit" | "updateChecked")[], "edit" | "updateChecked", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
475
474
  element: {
@@ -59,7 +59,7 @@ declare const _default: import("vue").DefineComponent<{
59
59
  }[]>;
60
60
  onSave: () => void;
61
61
  setRef: (e: any, id: string) => void;
62
- getTableFields: (type?: 'field' | 'fieldColor' | 'highlightRow' | 'tableStyle') => any;
62
+ getTableFields: (type?: 'field' | 'fieldColor' | 'highlightRow') => any;
63
63
  NTabs: any;
64
64
  NTabPane: import("vue").DefineComponent<{
65
65
  readonly tab: PropType<string | number | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
@@ -1 +1 @@
1
- import{defineComponent as e,provide as l,reactive as t,ref as i,computed as o,openBlock as a,createElementBlock as r,normalizeStyle as s,unref as d,createBlock as n,withCtx as f,Fragment as m,renderList as u,resolveDynamicComponent as b,mergeProps as y,createSlots as h,renderSlot as p,h as v}from"vue";import{useThemeVars as g,NTabs as c,NTabPane as F}from"naive-ui";import C from"./FieldSet.vue.js";import w from"./FieldColor.vue.js";import T from"./TableStyle.vue.js";import{InjectionFieldList as L,InjectionQueryWordbookData as S}from"./constants/index.js";var _=e({__name:"Index",props:{showTabNames:{type:Array,default:()=>["field"]},fieldColorList:{type:Array,default:()=>[]},highlightRowColorList:{type:Array,default:()=>[]},fieldList:{type:Object},queryWordbookData:{type:Function}},emits:["save"],setup(e,{expose:_,emit:$}){const j=e;l(L,j.fieldList),l(S,j.queryWordbookData);const k=t({}),x=i(g().value.primaryColor),R=o((()=>[{name:"field",tab:"字段设置",render:()=>v(C,{rowHeight:52})},{name:"fieldColor",tab:"字段颜色",render:()=>v(w,{isFieldColor:!0,defaultList:j.fieldColorList})},{name:"highlightRow",tab:"高亮行",render:()=>v(w,{isFieldColor:!1,defaultList:j.highlightRowColorList})},{name:"tableStyle",tab:"表格样式",render:()=>v(T)}].filter((e=>j.showTabNames.includes(e.name)))));function A(){var e,l,t,i;$("save",{tableFields:null==(e=k.field)?void 0:e.getTableFields(),tableFieldColors:null==(l=k.fieldColor)?void 0:l.getTableFields(),tableHighlightRows:null==(t=k.highlightRow)?void 0:t.getTableFields(),tableStyle:null==(i=k.tableStyle)?void 0:i.getTableFields()})}function q(e,l){k[l]=e}return _({getTableFields:function(e){var l;return null==(l=k[e||"field"])?void 0:l.getTableFields()}}),(e,l)=>(a(),r("div",{class:"c-field-set",style:s({"--row-height":"52px","--primary-color":x.value})},[d(R).length>1?(a(),n(d(c),{key:0,type:"line",naimated:""},{default:f((()=>[(a(!0),r(m,null,u(d(R),(l=>(a(),n(d(F),{key:l.name,name:l.name,tab:l.tab,"display-directive":"show"},{default:f((()=>[(a(),n(b(l.render()),y(e.$attrs,{ref_for:!0,ref:e=>q(e,l.name),onSave:A}),h({_:2},[u(e.$slots,((l,t)=>({name:t,fn:f((()=>[p(e.$slots,t)]))})))]),1040))])),_:2},1032,["name","tab"])))),128))])),_:3})):(a(),n(b(d(R)[0].render()),y({key:1},e.$attrs,{ref:e=>q(e,d(R)[0].name),onSave:A}),h({_:2},[u(e.$slots,((l,t)=>({name:t,fn:f((()=>[p(e.$slots,t)]))})))]),1040))],4))}});export{_ as default};
1
+ import{defineComponent as e,provide as t,reactive as l,ref as i,computed as o,openBlock as a,createElementBlock as r,normalizeStyle as s,unref as d,createBlock as n,withCtx as f,Fragment as m,renderList as u,resolveDynamicComponent as h,mergeProps as p,createSlots as b,renderSlot as v,h as g}from"vue";import{useThemeVars as y,NTabs as c,NTabPane as F}from"naive-ui";import C from"./FieldSet.vue.js";import w from"./FieldColor.vue.js";import{InjectionFieldList as L,InjectionQueryWordbookData as T}from"./constants/index.js";var _=e({__name:"Index",props:{showTabNames:{type:Array,default:()=>["field"]},fieldColorList:{type:Array,default:()=>[]},highlightRowColorList:{type:Array,default:()=>[]},fieldList:{type:Object},queryWordbookData:{type:Function}},emits:["save"],setup(e,{expose:_,emit:$}){const k=e;t(L,k.fieldList),t(T,k.queryWordbookData);const x=l({}),R=i(y().value.primaryColor),j=o((()=>[{name:"field",tab:"字段设置",render:()=>g(C,{rowHeight:52})},{name:"fieldColor",tab:"字段颜色",render:()=>g(w,{isFieldColor:!0,defaultList:k.fieldColorList})},{name:"highlightRow",tab:"高亮行",render:()=>g(w,{isFieldColor:!1,defaultList:k.highlightRowColorList})}].filter((e=>k.showTabNames.includes(e.name)))));function A(){var e,t,l;$("save",{tableFields:null==(e=x.field)?void 0:e.getTableFields(),tableFieldColors:null==(t=x.fieldColor)?void 0:t.getTableFields(),tableHighlightRows:null==(l=x.highlightRow)?void 0:l.getTableFields()})}function S(e,t){x[t]=e}return _({getTableFields:function(e){var t;return null==(t=x[e||"field"])?void 0:t.getTableFields()}}),(e,t)=>(a(),r("div",{class:"c-field-set",style:s({"--row-height":"52px","--primary-color":R.value})},[d(j).length>1?(a(),n(d(c),{key:0,type:"line",naimated:""},{default:f((()=>[(a(!0),r(m,null,u(d(j),(t=>(a(),n(d(F),{key:t.name,name:t.name,tab:t.tab,"display-directive":"show"},{default:f((()=>[(a(),n(h(t.render()),p(e.$attrs,{ref_for:!0,ref:e=>S(e,t.name),onSave:A}),b({_:2},[u(e.$slots,((t,l)=>({name:l,fn:f((()=>[v(e.$slots,l)]))})))]),1040))])),_:2},1032,["name","tab"])))),128))])),_:3})):(a(),n(h(d(j)[0].render()),p({key:1},e.$attrs,{ref:e=>S(e,d(j)[0].name),onSave:A}),b({_:2},[u(e.$slots,((t,l)=>({name:l,fn:f((()=>[v(e.$slots,l)]))})))]),1040))],4))}});export{_ as default};
@@ -176,7 +176,6 @@ declare const _default: import("vue").DefineComponent<{
176
176
  ReorderTwoOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
177
177
  TrashOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
178
178
  CreateOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
179
- HelpCircleOutline: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
180
179
  isFunction: (value: any) => value is (...args: any[]) => any;
181
180
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("edit" | "updateChecked")[], "edit" | "updateChecked", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
182
181
  element: {
@@ -1 +1 @@
1
- import{defineComponent as e,openBlock as l,createElementBlock as t,Fragment as i,renderList as n,normalizeStyle as o,unref as a,createVNode as r,withCtx as d,createBlock as u,createElementVNode as c,toDisplayString as s,createCommentVNode as f,normalizeClass as p,withDirectives as m,vShow as v,resolveDynamicComponent as y,createTextVNode as h}from"vue";import{NTooltip as g,NIcon as b,NCheckbox as k,NSelect as x,NColorPicker as w,NInput as N,NInputNumber as U,NPopconfirm as S}from"naive-ui";import{setStyle as _,setColorInfo as C,isDisable as H}from"../utils/index.js";import{ReorderTwoOutline as D,HelpCircleOutline as E,CreateOutline as O,TrashOutline as P}from"@vicons/ionicons5";import{isFunction as R,range as j}from"lodash-es";import{COLOR_MAP as M}from"../constants/index.js";const A={class:"row"},F=["title"],B=c("span",null,"拖拽调整顺序",-1);var T=e({__name:"Row",props:{element:{type:Object,default:()=>({})},columns:{type:Array,default:()=>[]},idx:{type:Number,default:1},data:{type:Array,default:()=>[]},isHighlight:{type:Boolean},index:{type:Number,default:0},isHighlightRow:{type:Boolean,default:!1}},emits:["updateChecked","edit"],setup(e,{emit:T}){const V=e,W=[{label:"不固定",value:"NONE"},{label:"左固定",value:"LEFT"},{label:"右固定",value:"RIGHT"}],q=[{label:"不排序",value:"NONE"},{label:"升序",value:"ASC"},{label:"降序",value:"DESC"}],G=[{label:"字体",value:"font"},{label:"背景",value:"background"}],I=Object.entries(M).map((([e])=>e));function L(){V.data.splice(V.index,1)}function z(){T("edit",V.element)}function J(e){switch(e.field){case"fixedWay":return W;case"sortDirection":return q;case"sortPriority":return function(){const e=j(1,V.data.length+1).map((e=>({label:e.toString(),value:e}))),l=V.data.filter((e=>!!e.sortPriority&&e.uuid!==V.element.uuid)).map((e=>e.sortPriority));return e.filter((e=>!l.includes(e.value)))}();case"colorScope":return G;default:return[]}}function K(e){var l;if(1==V.element.defaultMark||"color"===e.type&&V.isHighlightRow)return!0;if("checkbox"===e.type)return"show"===e.field&&e.fieldShowMaxValue?!V.element[e.field]&&(null==(l=V.data.filter((l=>l[e.field])))?void 0:l.length)===e.fieldShowMaxValue:H(V.element,e.field);if("sortPriority"!==e.field)return!1;const{sortDirection:t}=V.element;return!t||"NONE"===t}function Q(e){return["title","result"].includes(e.field)&&V.element.style||{}}return(H,j)=>(l(),t("div",A,[(l(!0),t(i,null,n(e.columns,((n,H)=>{return l(),t(i,{key:H},[n.isShow?(l(),t("span",{key:0,class:"table-cell",title:e.element[n.field],style:o(a(_)(n,H))},["text"===n.type?(l(),t(i,{key:0},[0===H?(l(),t(i,{key:0},[r(a(g),{trigger:"hover"},{trigger:d((()=>[r(a(b),{style:{"margin-right":"5px",top:"2px"},component:a(D)},null,8,["component"])])),default:d((()=>[B])),_:1}),"title"===n.field&&e.element.feildDescribe?(l(),u(a(g),{key:0,trigger:"hover"},{trigger:d((()=>[r(a(b),{style:{"margin-right":"5px",top:"2px"},component:a(E)},null,8,["component"])])),default:d((()=>[c("span",null,s(e.element.feildDescribe),1)])),_:1})):f("v-if",!0)],64)):f("v-if",!0),c("span",{class:p([e.isHighlight&&"title"===n.field?"highlight":""]),style:o(Q(n))},s("seq"===n.field?e.idx:e.element[n.field]),7)],64)):f("v-if",!0),"checkbox"===n.type?m((l(),u(a(k),{key:1,disabled:K(n),checked:e.element[n.field],"onUpdate:checked":[l=>e.element[n.field]=l,e=>function(e,l){T("updateChecked",{checked:e,column:l})}(e,n)]},null,8,["disabled","checked","onUpdate:checked"])),[[v,(M=e.element,A=n.field,"isShowHeaderFilter"===A?M.isConfiguredHeaderFilter&&"0001"!=V.element.id:"0001"!=V.element.id)]]):f("v-if",!0),"select"===n.type?m((l(),u(a(x),{key:2,clearable:"",disabled:K(n),value:e.element[n.field],"onUpdate:value":[l=>e.element[n.field]=l,e=>function(e,l){"sortDirection"===l.field&&"NONE"===e&&(V.element.sortPriority=null),"colorScope"===l.field&&C(V.element)}(e,n)],options:J(n)},null,8,["disabled","value","onUpdate:value","options"])),[[v,"fixedWay"===n.field||"0001"!=e.element.id]]):f("v-if",!0),"color"===n.type?(l(),u(a(w),{key:3,class:"c-field-set__color-picker",clearable:"",disabled:K(n),value:e.element[n.field],"onUpdate:value":[l=>e.element[n.field]=l,j[0]||(j[0]=l=>a(C)(e.element))],"show-preview":"",modes:["hex"],swatches:a(I)},null,8,["disabled","value","onUpdate:value","swatches"])):f("v-if",!0),"input"===n.type?m((l(),u(a(N),{key:4,value:e.element[n.field],"onUpdate:value":l=>e.element[n.field]=l,clearable:""},null,8,["value","onUpdate:value"])),[[v,"0001"!=e.element.id]]):f("v-if",!0),"inputNumber"===n.type?(l(),u(a(U),{key:5,value:e.element[n.field],"onUpdate:value":l=>e.element[n.field]=l},null,8,["value","onUpdate:value"])):f("v-if",!0),"custom"===n.type&&a(R)(n.contentRender)?(l(),u(y((()=>n.contentRender(n,e.element))),{key:6})):f("v-if",!0),"custom"===n.type&&"opt"===n.field&&1!=e.element.defaultMark?(l(),t(i,{key:7},[r(a(g),{trigger:"hover"},{trigger:d((()=>[r(a(b),{component:a(O),onClick:z},null,8,["component"])])),default:d((()=>[h(" 编辑 ")])),_:1}),r(a(S),{onPositiveClick:L},{trigger:d((()=>[r(a(g),{trigger:"hover"},{trigger:d((()=>[r(a(b),{component:a(P)},null,8,["component"])])),default:d((()=>[h(" 删除 ")])),_:1})])),default:d((()=>[h(" 是否确认删除? ")])),_:1})],64)):f("v-if",!0)],12,F)):f("v-if",!0)],64);var M,A})),128))]))}});export{T as default};
1
+ import{defineComponent as e,openBlock as l,createElementBlock as t,Fragment as i,renderList as n,normalizeStyle as a,unref as o,createBlock as r,withCtx as d,createVNode as u,createCommentVNode as c,createElementVNode as s,normalizeClass as f,toDisplayString as m,withDirectives as p,vShow as v,resolveDynamicComponent as y,createTextVNode as h}from"vue";import{NTooltip as g,NIcon as b,NCheckbox as k,NSelect as x,NColorPicker as w,NInput as N,NInputNumber as U,NPopconfirm as S}from"naive-ui";import{setStyle as _,setColorInfo as C,isDisable as H}from"../utils/index.js";import{ReorderTwoOutline as E,CreateOutline as O,TrashOutline as P}from"@vicons/ionicons5";import{isFunction as R,range as j}from"lodash-es";import{COLOR_MAP as D}from"../constants/index.js";const M={class:"row"},A=["title"],F=s("span",null,"拖拽调整顺序",-1);var B=e({__name:"Row",props:{element:{type:Object,default:()=>({})},columns:{type:Array,default:()=>[]},idx:{type:Number,default:1},data:{type:Array,default:()=>[]},isHighlight:{type:Boolean},index:{type:Number,default:0},isHighlightRow:{type:Boolean,default:!1}},emits:["updateChecked","edit"],setup(e,{emit:B}){const T=e,V=[{label:"不固定",value:"NONE"},{label:"左固定",value:"LEFT"},{label:"右固定",value:"RIGHT"}],W=[{label:"不排序",value:"NONE"},{label:"升序",value:"ASC"},{label:"降序",value:"DESC"}],q=[{label:"字体",value:"font"},{label:"背景",value:"background"}],G=Object.entries(D).map((([e])=>e));function I(){T.data.splice(T.index,1)}function L(){B("edit",T.element)}function z(e){switch(e.field){case"fixedWay":return V;case"sortDirection":return W;case"sortPriority":return function(){const e=j(1,T.data.length+1).map((e=>({label:e.toString(),value:e}))),l=T.data.filter((e=>!!e.sortPriority&&e.uuid!==T.element.uuid)).map((e=>e.sortPriority));return e.filter((e=>!l.includes(e.value)))}();case"colorScope":return q;default:return[]}}function J(e){var l;if(1==T.element.defaultMark||"color"===e.type&&T.isHighlightRow)return!0;if("checkbox"===e.type)return"show"===e.field&&e.fieldShowMaxValue?!T.element[e.field]&&(null==(l=T.data.filter((l=>l[e.field])))?void 0:l.length)===e.fieldShowMaxValue:H(T.element,e.field);if("sortPriority"!==e.field)return!1;const{sortDirection:t}=T.element;return!t||"NONE"===t}function K(e){return["title","result"].includes(e.field)&&T.element.style||{}}return(H,j)=>(l(),t("div",M,[(l(!0),t(i,null,n(e.columns,((n,H)=>{return l(),t(i,{key:H},[n.isShow?(l(),t("span",{key:0,class:"table-cell",title:e.element[n.field],style:a(o(_)(n,H))},["text"===n.type?(l(),t(i,{key:0},[0===H?(l(),r(o(g),{key:0,trigger:"hover"},{trigger:d((()=>[u(o(b),{style:{"margin-right":"5px",top:"2px"},component:o(E)},null,8,["component"])])),default:d((()=>[F])),_:1})):c("v-if",!0),s("span",{class:f([e.isHighlight&&"title"===n.field?"highlight":""]),style:a(K(n))},m("seq"===n.field?e.idx:e.element[n.field]),7)],64)):c("v-if",!0),"checkbox"===n.type?p((l(),r(o(k),{key:1,disabled:J(n),checked:e.element[n.field],"onUpdate:checked":[l=>e.element[n.field]=l,e=>function(e,l){B("updateChecked",{checked:e,column:l})}(e,n)]},null,8,["disabled","checked","onUpdate:checked"])),[[v,(D=e.element,M=n.field,"isShowHeaderFilter"===M?D.isConfiguredHeaderFilter&&"0001"!=T.element.id:"0001"!=T.element.id)]]):c("v-if",!0),"select"===n.type?p((l(),r(o(x),{key:2,clearable:"",disabled:J(n),value:e.element[n.field],"onUpdate:value":[l=>e.element[n.field]=l,e=>function(e,l){"sortDirection"===l.field&&"NONE"===e&&(T.element.sortPriority=null),"colorScope"===l.field&&C(T.element)}(e,n)],options:z(n)},null,8,["disabled","value","onUpdate:value","options"])),[[v,"fixedWay"===n.field||"0001"!=e.element.id]]):c("v-if",!0),"color"===n.type?(l(),r(o(w),{key:3,class:"c-field-set__color-picker",clearable:"",disabled:J(n),value:e.element[n.field],"onUpdate:value":[l=>e.element[n.field]=l,j[0]||(j[0]=l=>o(C)(e.element))],"show-preview":"",modes:["hex"],swatches:o(G)},null,8,["disabled","value","onUpdate:value","swatches"])):c("v-if",!0),"input"===n.type?p((l(),r(o(N),{key:4,value:e.element[n.field],"onUpdate:value":l=>e.element[n.field]=l,clearable:""},null,8,["value","onUpdate:value"])),[[v,"0001"!=e.element.id]]):c("v-if",!0),"inputNumber"===n.type?(l(),r(o(U),{key:5,value:e.element[n.field],"onUpdate:value":l=>e.element[n.field]=l},null,8,["value","onUpdate:value"])):c("v-if",!0),"custom"===n.type&&o(R)(n.contentRender)?(l(),r(y((()=>n.contentRender(n,e.element))),{key:6})):c("v-if",!0),"custom"===n.type&&"opt"===n.field&&1!=e.element.defaultMark?(l(),t(i,{key:7},[u(o(g),{trigger:"hover"},{trigger:d((()=>[u(o(b),{component:o(O),onClick:L},null,8,["component"])])),default:d((()=>[h(" 编辑 ")])),_:1}),u(o(S),{onPositiveClick:I},{trigger:d((()=>[u(o(g),{trigger:"hover"},{trigger:d((()=>[u(o(b),{component:o(P)},null,8,["component"])])),default:d((()=>[h(" 删除 ")])),_:1})])),default:d((()=>[h(" 是否确认删除? ")])),_:1})],64)):c("v-if",!0)],12,A)):c("v-if",!0)],64);var D,M})),128))]))}});export{B as default};
@@ -30,7 +30,7 @@ export declare type FieldSetColumnItem = {
30
30
  contentRender?: (column: AnyObject, row: AnyObject) => VNode | String;
31
31
  [key: string]: any;
32
32
  };
33
- export declare type FieldSetTab = 'field' | 'fieldColor' | 'highlightRow' | 'tableStyle';
33
+ export declare type FieldSetTab = 'field' | 'fieldColor' | 'highlightRow';
34
34
  export declare type ColorSetItem = {
35
35
  name: string;
36
36
  columnName?: string;
@@ -1 +1 @@
1
- .c-field-set{height:100%;width:100%}.c-field-set__color-picker .n-color-picker-trigger__value{display:none}.c-field-set .main-wrapper{display:flex;flex-flow:column nowrap;height:100%;width:100%}.c-field-set .main-wrapper__search-wrapper.n-input{margin-bottom:12px;width:50%}.c-field-set .main-wrapper .item{background:#fff}.c-field-set .main-wrapper .item:active{background:#f2f2f2;box-shadow:0 0 10px 0 #d5d5d5}.c-field-set .main-wrapper .item:focus{background-color:#f2f2f2}.c-field-set .main-wrapper .item.disabled{cursor:not-allowed}.c-field-set .main-wrapper .item .row{align-items:center;border-bottom:1px solid #e8e8e8;display:flex;height:var(--row-height);padding:5px 0}.c-field-set .main-wrapper .table-cell{box-sizing:border-box;color:inherit;display:inline-block;padding:0 5px}.c-field-set .main-wrapper .table-cell .highlight{background-color:var(--primary-color);color:#fff}.c-field-set .main-wrapper .table-cell .c-field-set__color-picker{display:block}.c-field-set .main-wrapper__table-header{align-items:center;background:#f2f2f4;border:1px solid #f2f2f2;display:flex;height:52px}.c-field-set .main-wrapper__table-header .n-checkbox.n-checkbox--disabled .n-checkbox__label{color:var(--n-text-color)}.c-field-set .main-wrapper__table-body{flex:1;overflow-y:auto}.c-field-set .main-wrapper__table-footer{border-top:1px solid #d5d5d5;padding:12px 0}.c-field-set .main-wrapper .set-item{padding:10px 0}.c-field-set .main-wrapper .set-item.table-item{border-top:1px solid #e8e8e8;width:50%}.c-field-set .main-wrapper .set-item.table-item h4{font-size:16px;font-weight:400;margin-bottom:12px}.c-field-set .main-wrapper .set-item.table-item .table-style{background:#e5e5e5;border:2px solid #cfcfcf;border-radius:4px;cursor:pointer;margin-bottom:10px;padding:20px 0 0}.c-field-set .main-wrapper .set-item.table-item .table-style .table-bg{background:#fff;border-radius:5px;margin:0 20px 20px;padding:10px}.c-field-set .main-wrapper .set-item.table-item .table-style .table-bg img{width:100%}.c-field-set .main-wrapper .set-item.table-item .table-style__desc{align-items:center;background:#fff;display:flex;padding:10px}.c-field-set .main-wrapper .set-item.table-item .table-style__desc .n-icon{color:var(--c-primary-color);font-size:20px}.c-field-set .main-wrapper .set-item.table-item .table-style__desc .circle{border:1px solid #d5d5d5;border-radius:50%;display:inline-block;height:18px;width:18px}.c-field-set .main-wrapper .set-item.table-item .table-style__desc span{margin-left:5px}.c-field-set .main-wrapper .set-item.table-item .table-style.active{background:#e2ebfa;border:2px solid var(--c-primary-color)}.c-field-set__color-block{display:inline-block;margin-left:20px;position:relative}.c-field-set__color-block:before{background-color:var(--color);border-radius:2px;content:"";height:14px;left:-20px;position:absolute;top:3px;width:14px}.c-field-set__space{width:100%}.c-field-set__space>div:first-child{width:80%}.c-field-set__space .filter-btn{color:var(--c-primary-color);cursor:pointer}.c-field-set__condition .opt-btn{cursor:pointer;display:inline-flex}.c-field-set__condition .condition-wrapper__item{align-items:center;display:flex;margin-top:10px}.c-field-set__condition .condition-wrapper__item .item-index{margin-right:10px}.c-field-set__condition .condition-wrapper__item>.n-date-picker,.c-field-set__condition .condition-wrapper__item>.n-input,.c-field-set__condition .condition-wrapper__item>.n-input-number,.c-field-set__condition .condition-wrapper__item>.n-select{margin-right:10px;width:20%}.c-field-set__condition .sql-expression-wrapper{margin-top:10px}
1
+ .c-field-set{height:100%;width:100%}.c-field-set__color-picker .n-color-picker-trigger__value{display:none}.c-field-set .main-wrapper{display:flex;flex-flow:column nowrap;height:100%;width:100%}.c-field-set .main-wrapper__search-wrapper.n-input{margin-bottom:12px;width:50%}.c-field-set .main-wrapper .item{background:#fff}.c-field-set .main-wrapper .item:active{background:#f2f2f2;box-shadow:0 0 10px 0 #d5d5d5}.c-field-set .main-wrapper .item:focus{background-color:#f2f2f2}.c-field-set .main-wrapper .item.disabled{cursor:not-allowed}.c-field-set .main-wrapper .item .row{align-items:center;border-bottom:1px solid #e8e8e8;display:flex;height:var(--row-height);padding:5px 0}.c-field-set .main-wrapper .table-cell{box-sizing:border-box;color:inherit;display:inline-block;padding:0 5px}.c-field-set .main-wrapper .table-cell .highlight{background-color:var(--primary-color);color:#fff}.c-field-set .main-wrapper .table-cell .c-field-set__color-picker{display:block}.c-field-set .main-wrapper__table-header{align-items:center;background:#f2f2f4;border:1px solid #f2f2f2;display:flex;height:52px}.c-field-set .main-wrapper__table-header .n-checkbox.n-checkbox--disabled .n-checkbox__label{color:var(--n-text-color)}.c-field-set .main-wrapper__table-body{flex:1;overflow-y:auto}.c-field-set .main-wrapper__table-footer{border-top:1px solid #d5d5d5;padding:12px 0}.c-field-set__color-block{display:inline-block;margin-left:20px;position:relative}.c-field-set__color-block:before{background-color:var(--color);border-radius:2px;content:"";height:14px;left:-20px;position:absolute;top:3px;width:14px}.c-field-set__space{width:100%}.c-field-set__space>div:first-child{width:80%}.c-field-set__space .filter-btn{color:var(--c-primary-color);cursor:pointer}.c-field-set__condition .opt-btn{cursor:pointer;display:inline-flex}.c-field-set__condition .condition-wrapper__item{align-items:center;display:flex;margin-top:10px}.c-field-set__condition .condition-wrapper__item .item-index{margin-right:10px}.c-field-set__condition .condition-wrapper__item>.n-date-picker,.c-field-set__condition .condition-wrapper__item>.n-input,.c-field-set__condition .condition-wrapper__item>.n-input-number,.c-field-set__condition .condition-wrapper__item>.n-select{margin-right:10px;width:20%}.c-field-set__condition .sql-expression-wrapper{margin-top:10px}
@@ -1 +1 @@
1
- import{useAttrs as e,onBeforeUnmount as t,inject as l,createVNode as o}from"vue";import{arrayed as n,widthAppend as a}from"../../../../shared/utils/index.js";import{isObject as r,isString as i,isFunction as s}from"lodash-es";import u from"../../../annotation-edit/index.js";import"../../index.js";import{InjectionIhoTableAnnotation as d,InjectionIhoTableConfig as m}from"../constants/index.js";import{getLowCodeFieldFromField as h,IhoTableRenderHelper as c}from"../utils/index.js";import{defineTablePlugin as p}from"../hooks/useTablePlugin.js";function f(){const f="headerPlugin";return p({name:f,apply(p){let v=null;p.setupHooks.setup.tap(f,(()=>{v=e(),t((()=>{v=null}))})),p.fieldHooks.field.tap(f,(e=>{var t;const p=null==(t=e.slots)?void 0:t.header;return e.slots={...e.slots,header:t=>function(e,t,h){const p=l(d),f=l(m),x=l("$xetable"),b=e.column||{},j=r(null==p?void 0:p.value)&&!1!==t.annotation,g=c.isEditableColumn(f.value,b),w=c.hasFilter(t)||c.hasDateFiler(t),W=c.hasTitlePrefix(t),k=i(h)?h:s(h)?h(e):null;let y=!1;if(f.value){const e=f.value.editRules&&f.value.editRules[b.field];e&&(y=n(e).some((e=>e.required)))}const D=f.value.border?Math.max(2,Math.ceil(x.reactData.scrollbarWidth/x.reactData.tableColumn.length)):1,M=a(Math.max(0,b.renderWidth-20-D-(y?14:0)-(j?18:0)-(w?23:0)-(g?22:0)-(W?20:0)-(b.sortable?23:0)));return o("section",{class:"iho-table__headerWrapper"},[o("section",{style:{width:M}},[null!=k?k:o("div",{style:{maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},[function(){const e=b.title,t=/\\n|\n|\r/g;if(!t.test(e))return e;const l=e.replace(t,"<br>").split("<br>");return l.map(((e,t)=>[e,t===l.length-1?null:o("br",null,null)]))}()])]),j?o(u,{modelValue:p.value[b.field],"onUpdate:modelValue":e=>p.value[b.field]=e,shortcuts:v&&(v["annotation-shortcuts"]||v.annotationShortcuts)||[]},null):null])}(t,h(e),p)},e}))}})}export{f as default};
1
+ import{useAttrs as e,onBeforeUnmount as t,inject as l,createVNode as o}from"vue";import{arrayed as n,widthAppend as a}from"../../../../shared/utils/index.js";import{isObject as r,isString as i,isFunction as s}from"lodash-es";import u from"../../../annotation-edit/index.js";import"../../index.js";import{InjectionIhoTableAnnotation as d,InjectionIhoTableConfig as m}from"../constants/index.js";import{getLowCodeFieldFromField as c,IhoTableRenderHelper as h}from"../utils/index.js";import{defineTablePlugin as p}from"../hooks/useTablePlugin.js";function f(){const f="headerPlugin";return p({name:f,apply(p){let v=null;p.setupHooks.setup.tap(f,(()=>{v=e(),t((()=>{v=null}))})),p.fieldHooks.field.tap(f,(e=>{var t;const p=null==(t=e.slots)?void 0:t.header;return e.slots={...e.slots,header:t=>function(e,t,c){var p;const f=l(d),x=l(m),b=l("$xetable"),j=e.column||{},g=r(null==f?void 0:f.value)&&!1!==t.annotation,w=h.isEditableColumn(x.value,j),W=h.hasFilter(t)||h.hasDateFiler(t),k=null==(p=t.titlePrefix)?void 0:p.content,y=i(c)?c:s(c)?c(e):null;let D=!1;if(x.value){const e=x.value.editRules&&x.value.editRules[j.field];e&&(D=n(e).some((e=>e.required)))}const M=x.value.border?Math.max(2,Math.ceil(b.reactData.scrollbarWidth/b.reactData.tableColumn.length)):1,P=a(Math.max(0,j.renderWidth-20-M-(D?14:0)-(g?18:0)-(W?23:0)-(w?22:0)-(k?20:0)-(j.sortable?23:0)));return o("section",{class:"iho-table__headerWrapper"},[o("section",{style:{width:P}},[null!=y?y:o("div",{style:{maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},[function(){const e=j.title,t=/\\n|\n|\r/g;if(!t.test(e))return e;const l=e.replace(t,"<br>").split("<br>");return l.map(((e,t)=>[e,t===l.length-1?null:o("br",null,null)]))}()])]),g?o(u,{modelValue:f.value[j.field],"onUpdate:modelValue":e=>f.value[j.field]=e,shortcuts:v&&(v["annotation-shortcuts"]||v.annotationShortcuts)||[]},null):null])}(t,c(e),p)},e}))}})}export{f as default};
@@ -1 +1 @@
1
- import{isObject as e,isFunction as t,cloneDeep as i}from"lodash-es";import{toRaw as l,h as o}from"vue";import{HIGHEST_PRIORITY as s,IHO_TABLE_FIXED_STATUS as n,WIDGET_TYPE as r}from"../constants/index.js";import{defineTablePlugin as d}from"../hooks/useTablePlugin.js";import{getDefaultValue as a}from"./rendererPlugins/editableWidgets/selectRendererPlugin/selectUtils.js";import{IhoTableStatusHelper as f,IhoTableUtils as c,IhoTableRenderHelper as m}from"../utils/index.js";function p(){const p="lowCodeFieldAdaptorPlugin";return d({name:p,apply(d){d.fieldHooks.field.tap({name:p,stage:s},((s,d,p)=>{const u=s,b={className:u.bold?"iho-table__boldCell":"",field:u.columnName,showOverflow:"ellipsis",visible:f.notNegative(u.isShow),minWidth:u.colWidth,sortable:f.isPositive(u.isSort),fixed:n[u.isFixed],...u,title:u.alias||u.title};return function(e,i){const l={default:i.slotFn,header:i.headerSlotFn,edit:i.editSlotFn,footer:i.footerSlotFn,...i.slots};if(t(i.checkEditStatus)){const{default:e}=l;t(e)&&(l.default=t=>i.checkEditStatus(t)?e(t):[o("span",null,a(t.row,t.column.editRender.props))])}e.slots=l}(b,u),function(o,s,n){var d,a,p;const u=i(l(s));u.componentProps={size:"mini"===n.size?"small":n.size,...u.componentProps},n.forceClearable&&(u.componentProps.clearable=!0);o.editRender={name:c.getCellType(s),...o.editRender,props:u},o.editRender.enabled=!Reflect.get(r,o.editRender.name),!o.editRender.enabled&&t(null==(d=o.slots)?void 0:d.default)&&(o.editRender.enabled=t(null==(a=o.slots)?void 0:a.edit));if(!e(s.settingObj))return;Reflect.has(s.settingObj,"isHide")&&(o.visible=o.visible&&f.notPositive(s.settingObj.isHide));m.hasTitlePrefix(s)&&(o.titlePrefix={content:(null==(p=s.titlePrefix)?void 0:p.content)||s.settingObj.feildDescribe})}(b,u,p),b})),d.fieldHooks.field.tap({name:p+"After",stage:1e3},(t=>(e(t.slots)&&Object.entries(t.slots).forEach((([e,i])=>{null==i&&Reflect.deleteProperty(t.slots,e)})),t)))}})}export{p as lowCodeFieldAdaptorPlugin};
1
+ import{isObject as e,isFunction as t,cloneDeep as i}from"lodash-es";import{toRaw as o,h as l}from"vue";import{HIGHEST_PRIORITY as s,IHO_TABLE_FIXED_STATUS as n,WIDGET_TYPE as d}from"../constants/index.js";import{defineTablePlugin as r}from"../hooks/useTablePlugin.js";import{getDefaultValue as a}from"./rendererPlugins/editableWidgets/selectRendererPlugin/selectUtils.js";import{IhoTableStatusHelper as f,IhoTableUtils as c}from"../utils/index.js";function m(){const m="lowCodeFieldAdaptorPlugin";return r({name:m,apply(r){r.fieldHooks.field.tap({name:m,stage:s},((s,r,m)=>{const p=s,u={className:p.bold?"iho-table__boldCell":"",field:p.columnName,showOverflow:"ellipsis",visible:f.notNegative(p.isShow),minWidth:p.colWidth,sortable:f.isPositive(p.isSort),fixed:n[p.isFixed],...p,title:p.alias||p.title};return function(e,i){const o={default:i.slotFn,header:i.headerSlotFn,edit:i.editSlotFn,footer:i.footerSlotFn,...i.slots};if(t(i.checkEditStatus)){const{default:e}=o;t(e)&&(o.default=t=>i.checkEditStatus(t)?e(t):[l("span",null,a(t.row,t.column.editRender.props))])}e.slots=o}(u,p),function(l,s,n){var r,a;const m=i(o(s));m.componentProps={size:"mini"===n.size?"small":n.size,...m.componentProps},n.forceClearable&&(m.componentProps.clearable=!0);l.editRender={name:c.getCellType(s),...l.editRender,props:m},l.editRender.enabled=!Reflect.get(d,l.editRender.name),!l.editRender.enabled&&t(null==(r=l.slots)?void 0:r.default)&&(l.editRender.enabled=t(null==(a=l.slots)?void 0:a.edit));if(!e(s.settingObj))return;Reflect.has(s.settingObj,"isHide")&&(l.visible=l.visible&&f.notPositive(s.settingObj.isHide))}(u,p,m),u})),r.fieldHooks.field.tap({name:m+"After",stage:1e3},(t=>(e(t.slots)&&Object.entries(t.slots).forEach((([e,i])=>{null==i&&Reflect.deleteProperty(t.slots,e)})),t)))}})}export{m as lowCodeFieldAdaptorPlugin};
@@ -1 +1 @@
1
- import{defineComponent as e,inject as l,ref as o,computed as t,onBeforeUnmount as n,nextTick as r,createVNode as a,toRaw as u}from"vue";import{arrayed as i}from"../../../../../../../shared/utils/index.js";import{isFunction as s,isEmpty as d,isArray as c,isObject as p,omit as v,cloneDeep as f,xor as y}from"lodash-es";import{NSelect as m}from"naive-ui";import{useVModel as h,useDebounceFn as w}from"@vueuse/core";import"date-fns";import"@vue/shared";import{useSelectAllowModify as b}from"../../../../../../../shared/hooks/selectHooks/useSelectAllowModify.js";import{useOptionFiltered as g}from"../../../../../../../shared/hooks/selectHooks/useOptionFiltered.js";import"../../../../../../../shared/hooks/selectHooks/useSearchContent.js";import{useSelectRenders as F}from"../../../../../../../shared/hooks/selectHooks/useSelectRenders.js";import{InjectionIhoTableUUID as S,InjectionIhoTableConfig as O}from"../../../../constants/index.js";import{useIhoTableFormEvent as k}from"../../../../utils/index.js";import{getSelectOptions as A,selectOptionsMap as B}from"../hooks/useSelectOption.js";var j=e({name:"EditSelect",props:{value:{type:[Array,String,Number]},column:{type:Object,required:!0},row:{type:Object,required:!0},rowIndex:{type:Number,required:!0},options:{type:Array,default:()=>[]},queryOptions:{type:Function},placeholder:{type:String,default:"请选择"},allowModify:{type:Boolean},allowCreate:{type:Boolean},shouldSave:{type:Boolean},consistentMenuWidth:{type:Boolean,default:!0},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},searchField:{type:Array},aliasField:{type:String},menuProps:{type:Object},multiple:{type:Boolean},deletable:{type:Boolean,default:!0},selectAll:{type:Boolean,default:!0},searchByValue:{type:Boolean}},emits:["update:value"],setup(e,{emit:j}){const x=l("$xetable"),K=h(e,"value",j),$=o(null),{emitFormChangeWithParams:q}=k({...e,$table:x}),C=t((()=>e.labelField)),R=t((()=>e.valueField)),M=t((()=>e.aliasField)),D=t((()=>e.searchField)),{fullOptions:P,filterOptions:_,searchContent:E,remoteOptions:H}=g(e,{labelKey:C,valueKey:R,searchKey:D}),{modifyEvent:T,modifyAbleRef:V,getOptionsWithCreated:W}=b(e,{searchContent:E,labelKey:C,valueKey:R,valueRef:K,fullOptions:P}),L=t((()=>W(V.value?P.value:_.value))),I=o(!1),U=w((async function(l=""){E.value=l;try{if(I.value=!0,!s(e.queryOptions)||!d(e.options))return;H.value=await e.queryOptions({keyword:l,row:e.row,column:e.column,rowIndex:e.rowIndex})}catch(l){console.log(`获取${e.column.field}options错误`)}finally{I.value=!1}}),400),N=l(S);n((()=>J(!0)));const z=o(!1);function G(e){z.value=e,J(),U()}async function J(l=!1){var o,t,n;if(!e.multiple)return;await r();const{refTableLeftBody:a,refTableBody:u}=x.getRefMaps(),i=null==(o=null==a?void 0:a.value)?void 0:o.$el;if(!i)return;const s=null==(t=null==u?void 0:u.value)?void 0:t.$el,d=x.getRowid(e.row),c=null==(n=s.querySelector(`.vxe-body--row[rowid="${d}"]`))?void 0:n.clientHeight;i.querySelector(`.vxe-body--row[rowid="${d}"]`).style.height=l?"unset":c+"px"}async function Q(l,o){var t,n;const r=e.value;await T.updateValue(l,o);const a=A(N,e.column.field,e.row,x);N&&c(a)&&i(o).forEach((e=>{if(!p(e))return;const l=e;l.created&&l.shouldSave&&a.push(v(u(l),["created","shouldSave"]))}));const s=null==(t=e.column.editRender)?void 0:t.props;if(N&&(null==s?void 0:s.connectField)){const o=null==(n=s.connectField)?void 0:n.split(","),t=B.get(N);o.forEach((async o=>{var n;const{tableColumn:r}=x.reactData,a=r.find((e=>e.field===o)),u=null==(n=null==a?void 0:a.editRender)?void 0:n.props;if(null==u?void 0:u.queryOptions){const n=l?`${o}__${e.column.field}-${l}`:o;if(t[n])return;t[n]=await u.queryOptions({row:e.row,column:a,isFullData:!0,connectColumn:e.column})}}))}return q({oldValue:r,option:f(o)}),J()}const X=l(O);function Y(e){var l,o,t;$.value&&(("Tab"===e.key||function(){var e,l;return null==(l=null==(e=X.value)?void 0:e.keyboardConfig)?void 0:l.forceArrowKey}()&&(t=e.key,["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(t)))&&(z.value?null==(o=(l=$.value).handleKeydown)||o.call(l,{...e,key:"Enter",preventDefault:e.preventDefault.bind(e)}):x.internalData.isActivated=!0))}const{renderTag:Z,renderLabel:ee,renderSelectAll:le}=F(e,{labelKey:C,valueKey:R,valueRef:K,showKey:M,searchContent:E});function oe(l){if(!e.multiple)return;const o=l?L.value.map((e=>e[R.value])):[];if(!y(o,K.value).length)return;const t=K.value;K.value=o,q({oldValue:t,option:l?L.value:[]})}const te=()=>({class:"iho-table__selectOption"}),ne=t((()=>{var l,o;return{...e.menuProps,class:`iho-table__selectMenu ${null!=(o=null==(l=e.menuProps)?void 0:l.class)?o:""}`}}));return()=>{const l={};return e.multiple&&e.selectAll&&(l.action=()=>le(oe)),a(m,{ref:$,consistentMenuWidth:e.consistentMenuWidth,placeholder:e.placeholder,labelField:e.labelField,valueField:e.valueField,loading:I.value,options:L.value,multiple:e.multiple,value:e.value,remote:!0,onSearch:U,clearable:!0,filterable:!0,nodeProps:te,menuProps:ne.value,renderTag:Z,renderLabel:ee,show:z.value,onUpdateShow:G,onUpdateValue:Q,onKeydown:Y,onFocus:T.focus,onBlur:T.blur},l)}}});export{j as default};
1
+ import{defineComponent as e,inject as l,ref as o,computed as t,onBeforeUnmount as n,nextTick as a,createVNode as r,toRaw as u}from"vue";import{arrayed as i}from"../../../../../../../shared/utils/index.js";import{isFunction as s,isEmpty as d,isArray as c,isObject as p,omit as v,cloneDeep as f,xor as m}from"lodash-es";import{NSelect as y}from"naive-ui";import{useVModel as h,useDebounceFn as b}from"@vueuse/core";import"date-fns";import"@vue/shared";import{useSelectAllowModify as w}from"../../../../../../../shared/hooks/selectHooks/useSelectAllowModify.js";import{useOptionFiltered as F}from"../../../../../../../shared/hooks/selectHooks/useOptionFiltered.js";import"../../../../../../../shared/hooks/selectHooks/useSearchContent.js";import{useSelectRenders as S}from"../../../../../../../shared/hooks/selectHooks/useSelectRenders.js";import{InjectionIhoTableUUID as g}from"../../../../constants/index.js";import{useIhoTableFormEvent as O}from"../../../../utils/index.js";import{getSelectOptions as k,selectOptionsMap as B}from"../hooks/useSelectOption.js";var j=e({name:"EditSelect",props:{value:{type:[Array,String,Number]},column:{type:Object,required:!0},row:{type:Object,required:!0},rowIndex:{type:Number,required:!0},options:{type:Array,default:()=>[]},queryOptions:{type:Function},placeholder:{type:String,default:"请选择"},allowModify:{type:Boolean},allowCreate:{type:Boolean},shouldSave:{type:Boolean},consistentMenuWidth:{type:Boolean,default:!0},labelField:{type:String,default:"label"},valueField:{type:String,default:"value"},searchField:{type:Array},aliasField:{type:String},menuProps:{type:Object},multiple:{type:Boolean},deletable:{type:Boolean,default:!0},selectAll:{type:Boolean,default:!0},searchByValue:{type:Boolean}},emits:["update:value"],setup(e,{emit:j}){const x=l("$xetable"),$=h(e,"value",j),q=o(null),{emitFormChangeWithParams:K}=O({...e,$table:x}),A=t((()=>e.labelField)),C=t((()=>e.valueField)),R=t((()=>e.aliasField)),M=t((()=>e.searchField)),{fullOptions:P,filterOptions:_,searchContent:D,remoteOptions:E}=F(e,{labelKey:A,valueKey:C,searchKey:M}),{modifyEvent:H,modifyAbleRef:T,getOptionsWithCreated:V}=w(e,{searchContent:D,labelKey:A,valueKey:C,valueRef:$,fullOptions:P}),W=t((()=>V(T.value?P.value:_.value))),I=o(!1),L=b((async function(l=""){D.value=l;try{if(I.value=!0,!s(e.queryOptions)||!d(e.options))return;E.value=await e.queryOptions({keyword:l,row:e.row,column:e.column,rowIndex:e.rowIndex})}catch(l){console.log(`获取${e.column.field}options错误`)}finally{I.value=!1}}),400),N=l(g);n((()=>G(!0)));const U=o(!1);function z(e){U.value=e,G(),L()}async function G(l=!1){var o,t,n;if(!e.multiple)return;await a();const{refTableLeftBody:r,refTableBody:u}=x.getRefMaps(),i=null==(o=null==r?void 0:r.value)?void 0:o.$el;if(!i)return;const s=null==(t=null==u?void 0:u.value)?void 0:t.$el,d=x.getRowid(e.row),c=null==(n=s.querySelector(`.vxe-body--row[rowid="${d}"]`))?void 0:n.clientHeight;i.querySelector(`.vxe-body--row[rowid="${d}"]`).style.height=l?"unset":c+"px"}async function J(l,o){var t,n;const a=e.value;await H.updateValue(l,o);const r=k(N,e.column.field,e.row,x);N&&c(r)&&i(o).forEach((e=>{if(!p(e))return;const l=e;l.created&&l.shouldSave&&r.push(v(u(l),["created","shouldSave"]))}));const s=null==(t=e.column.editRender)?void 0:t.props;if(N&&(null==s?void 0:s.connectField)){const o=null==(n=s.connectField)?void 0:n.split(","),t=B.get(N);o.forEach((async o=>{var n;const{tableColumn:a}=x.reactData,r=a.find((e=>e.field===o)),u=null==(n=null==r?void 0:r.editRender)?void 0:n.props;if(null==u?void 0:u.queryOptions){const n=l?`${o}__${e.column.field}-${l}`:o;if(t[n])return;t[n]=await u.queryOptions({row:e.row,column:r,isFullData:!0,connectColumn:e.column})}}))}return K({oldValue:a,option:f(o)}),G()}function Q(e){var l,o;"Tab"===e.key&&q.value&&(U.value?null==(o=(l=q.value).handleKeydown)||o.call(l,{...e,key:"Enter",preventDefault:e.preventDefault.bind(e)}):x.internalData.isActivated=!0)}const{renderTag:X,renderLabel:Y,renderSelectAll:Z}=S(e,{labelKey:A,valueKey:C,valueRef:$,showKey:R,searchContent:D});function ee(l){if(!e.multiple)return;const o=l?W.value.map((e=>e[C.value])):[];if(!m(o,$.value).length)return;const t=$.value;$.value=o,K({oldValue:t,option:l?W.value:[]})}const le=()=>({class:"iho-table__selectOption"}),oe=t((()=>{var l,o;return{...e.menuProps,class:`iho-table__selectMenu ${null!=(o=null==(l=e.menuProps)?void 0:l.class)?o:""}`}}));return()=>{const l={};return e.multiple&&e.selectAll&&(l.action=()=>Z(ee)),r(y,{ref:q,consistentMenuWidth:e.consistentMenuWidth,placeholder:e.placeholder,labelField:e.labelField,valueField:e.valueField,loading:I.value,options:W.value,multiple:e.multiple,value:e.value,remote:!0,onSearch:L,clearable:!0,filterable:!0,nodeProps:le,menuProps:oe.value,renderTag:X,renderLabel:Y,show:U.value,onUpdateShow:z,onUpdateValue:J,onKeydown:Q,onFocus:H.focus,onBlur:H.blur},l)}}});export{j as default};
@@ -1 +1 @@
1
- import{useThrottleFn as e}from"@vueuse/core";import{promiseTimeout as o}from"@vueuse/shared";import{pick as r,property as n,isArray as i,isFunction as t}from"lodash-es";import{onBeforeUnmount as l,unref as a,inject as s}from"vue";import"../../../index.js";import{LOWEST_PRIORITY as d,WIDGET_TYPE as u,InjectionIhoTableUUID as c}from"../../constants/index.js";import{useUUIDMap as f}from"../../utils/index.js";import{VERTICAL_CELL_TYPE as g}from"./constants.js";import{renderHeader as m,VerticalRenderMap as p}from"./renderer.js";import{isVerticalTable as v,isVerticalHeader as w,getSpanInfo as b,getHeaderDepthByField as h,getOriginFieldFromRowData as C,getOriginRowFromRowData as x,getVerticalInfoFromEvent as k,createVerticalFieldList as y,getFieldListDepth as D,bindHeaderInfoAndFlatten as R,isVerticalBody as j,getOriginBasePayload as F}from"./utils.js";import{defineTablePlugin as T}from"../../hooks/useTablePlugin.js";const I=["RADIO","SWITCH"];function H(){const H="verticalTablePlugin",{getItemFromUUID:L,removeItemFromUUID:O}=f((()=>({})));return T({name:H,vxe(e){function o(o){return(r,n)=>{var i,l;const a=s(c),d=L(a),{row:f,column:g}=n;if(w(g.field))return m(f,g,d);const v={$table:n.$table,columnIndex:n.rowIndex,$columnIndex:n.rowIndex,isHidden:n.isHidden,rowid:n.rowid,...F(f,g)},{originalField:{editRender:b={},slots:h={}}={}}=f;if(t(h[o]))return h[o](v);if(p[v.type])return p[v.type](v,d);const C=b.name||u.DEFAULT,x=e.renderer.get(C);return x?"default"===o?null==(i=x.renderCell)?void 0:i.call(x,b,v):null==(l=x.renderEdit)?void 0:l.call(x,b,v):{}}}e.renderer.add(g,{renderCell:o("default"),renderEdit:o("edit")})},apply(t){t.configHooks.config.tap({name:H,stage:d},(i=>{if(!i.uuid||!v(i))return i;const{uuid:t}=i,l=L(t);return l.originalTableConfig=i,Reflect.set(window,"__state",l),{uuid:t,showHeader:!1,...r(i,["border","height","verticalConfig","showSeq","size","rowGroupSetting","keyboardConfig","selectType"]),cellClassName({column:e}){const o=w(e.field);return{"vxe-header--column":o,"vxe-table--header":o,[e.field]:!0}},cellStyle({column:e,row:o}){const r={};if(b(o,e).colspan>1&&Object.assign(r,{textAlign:"center"}),!w(e.field)){const n=h(e.field),{originalData:i=[]}=l;i[n]===l.hoveringRow&&Object.assign(r,{backgroundColor:"var(--c-hover-color)"}),i[n]===l.currentRow&&Object.assign(r,{backgroundColor:"var(--c-primary-color-opacity2)"}),["checkbox","radio","seq"].includes(C(o).type||"")&&Object.assign(r,{textAlign:"center"})}return r},spanMethod:({row:e,column:o})=>b(e,o),editConfig:{...i.editConfig,beforeEditMethod({row:e,column:o}){var r;const{originalField:n={}}=e;if(w(o.field))return!1;const{editRender:{name:i=u.DEFAULT}={}}=n;return!Object.values(u).concat(I).includes(i)&&(!(null==(r=n.slots)?void 0:r.default)||!!n.slots.edit)}},onCellClick({column:e,row:o}){var r,i,t,a;if(w(e.field))return;const{originalData:s=[],originalTableConfig:d}=l,u=s[h(e.field)];if(l.currentRow=!1!==n("originalTableConfig.rowConfig.clickToCancel")(l)&&l.currentRow===u?null:u,"row"===(null==(r=null==d?void 0:d.checkboxConfig)?void 0:r.trigger)){const r=null!=(t=null==(i=d.checkboxConfig)?void 0:i.checkField)?t:"checked",n=h(e.field),l=x(o,n);l[r]=!l[r]}if("row"===(null==(a=null==d?void 0:d.radioConfig)?void 0:a.trigger)){const r=h(e.field);l.currentRow=x(o,r)}},onMousemove:e((e=>{var o,r;const n=k(e);if(!n||"body"!==n.type)return l.hoveringRow=null;l.hoveringRow=null!=(r=null==(o=l.originalData)?void 0:o[n.sequence])?r:null}),100),async onMouseleave(){await o(101),l.hoveringRow=null},async onScroll(){await o(101),l.hoveringRow=null}}})),t.fieldHooks.fieldList.tap({name:H,stage:d},((e,o,{globProps:r})=>{const{uuid:n}=o;if(!n||!v(o))return e;const t=L(n);return t?(t.originalFieldList=e,i(r.tableData)?t.verticalFieldList=y(r.tableData,t.headerDepth=D(e)):[]):e})),t.dataHooks.dataList.tap({name:H,stage:d},((e,o)=>{const{uuid:r}=o;if(!r||!v(o))return e;const n=L(r);if(!n)return e;n.originalData=e;const{originalFieldList:i=[],headerDepth:t=0}=n;return n.verticalData=R(i,t).map((o=>function(e,o){return new Proxy({},{get(r,n){var i;if("originalField"===n)return e;if("originalData"===n)return o;if(w(n))return e[n];if(j(n)){const r=h(n);return"seq"===e.type?r+1:null==(i=o[r])?void 0:i[e.field]}},set(r,n,i){if(!w(n)){const r=h(n);r>=0&&o[r]&&(o[r][e.field]=i)}return!0}})}(o,e)))})),t.setupHooks.setup.tap(H,(e=>{l((()=>{const{uuid:o}=a(e)||{};o&&O(o)}))})),t.exposeHooks.expose.tap(H,(e=>Object.assign(e,{verticalTable:{insertRow(){}}})))}})}export{H as verticalTablePlugin};
1
+ import{flow as e,method as t,pick as r,isArray as n,mapValues as i}from"lodash-es";import{onBeforeUnmount as o,unref as s}from"vue";import"../../../index.js";import{LOWEST_PRIORITY as l,WIDGET_TYPE as d}from"../../constants/index.js";import{VERTICAL_CELL_TYPE as a}from"./constants.js";import{renderHeader as u}from"./renderer.js";import{useUUIDMap as c}from"../../utils/index.js";import{isVerticalTable as f,isVerticalHeader as m,getSpanInfo as p,createVerticalFieldList as g,getFieldListDepth as h,bindHeaderInfoAndFlatten as v,isVerticalBody as b,getHeaderDepthByField as w}from"./utils.js";import{defineTablePlugin as D}from"../../hooks/useTablePlugin.js";const F=["RADIO","SWITCH"];function x(){const x="verticalTablePlugin";return D({name:x,vxe(n){function o(e,t){const{row:o,column:s}=t,{originalField:l={}}=o;if(m(s))return u(o,s);const{editRender:a={}}=l,c=a.name||d.DEFAULT,f=n.renderer.get(c);return f?i(f,(e=>e.bind(f,a,{...t,column:{...l,...r(s,["field"])}}))):{}}n.renderer.add(a,{renderCell:e(o,t(["renderCell"])),renderEdit:e(o,t(["renderEdit"]))})},apply(e){const{getItemFromUUID:t,removeItemFromUUID:i}=c((()=>({})),!1);e.configHooks.config.tap({name:x,stage:l},(e=>{if(!e.uuid||!f(e))return e;const{uuid:n}=e;return Reflect.set(window,"__state",t(n)),{uuid:n,showHeader:!1,...r(e,["border","height","verticalConfig","showSeq","size","rowGroupSetting","keyboardConfig"]),cellClassName({column:e}){const t=m(e);return{"vxe-header--column":t,"vxe-table--header":t}},cellStyle({column:e,row:t}){if(p(t,e).colspan>1)return{textAlign:"center"}},spanMethod:({row:e,column:t})=>p(e,t),editConfig:{...e.editConfig,beforeEditMethod({row:e,column:t}){const{originalField:r={}}=e;if(m(t))return!1;const{editRender:{name:n=d.DEFAULT}={}}=r;return!Object.values(d).concat(F).includes(n)}}}})),e.fieldHooks.fieldList.tap({name:x,stage:l},((e,r,{globProps:i})=>{const{uuid:o}=r;if(!o||!f(r))return e;const s=t(o);return s?(s.originalFieldList=e,n(i.tableData)?s.verticalFieldList=g(i.tableData,s.headerDepth=h(e)):[]):e})),e.dataHooks.dataList.tap({name:x,stage:l},((e,r)=>{const{uuid:n}=r;if(!n||!f(r))return e;const i=t(n);if(!i)return e;const{originalFieldList:o=[],headerDepth:s=0}=i,l=v(o,s);return i.verticalData=l.map((t=>new Proxy({},{get(r,n){var i;if("originalField"===n)return t;if(m({field:n}))return t[n];if(b({field:n})){const r=w({field:n});return"seq"===t.type?r+1:null==(i=e[r])?void 0:i[t.field]}return r[n]},set(r,n,i){if(!m({field:n})){const r=w({field:n});r>=0&&e[r]&&(e[r][t.field]=i)}return!0}})))})),e.setupHooks.setup.tap(x,(e=>{o((()=>{const{uuid:t}=s(e)||{};t&&i(t)}))}))}})}export{x as verticalTablePlugin};
@@ -1,6 +1,3 @@
1
1
  import { AnyObject } from '../../../../../shared/types';
2
2
  import { VxeTableDefines } from 'vxe-table';
3
- import { VxeGlobalRendererHandles } from 'vxe-table/types/v-x-e-table/renderer';
4
- import { IhoTableVerticalState } from './types';
5
- export declare function renderHeader(row: AnyObject, column: VxeTableDefines.ColumnInfo, verticalState: IhoTableVerticalState): any;
6
- export declare const VerticalRenderMap: Record<string, (payload: VxeGlobalRendererHandles.RenderCellParams, verticalState: IhoTableVerticalState) => any>;
3
+ export declare function renderHeader(row: AnyObject, column: VxeTableDefines.ColumnInfo): any;
@@ -1 +1 @@
1
- import{computed as e,createVNode as o,withModifiers as n}from"vue";import{property as r,identity as l}from"lodash-es";import{NCheckbox as c,NRadio as a}from"naive-ui";function i(n,l,a){return"checkbox"===r("originalField")(n).type?function(n){var r,l;const a=e({get(){var e,o;return null!=(o=null==(e=n.originalData)?void 0:e.every((e=>e.checked)))&&o},set(e){var o;null==(o=n.originalData)||o.forEach((o=>o.checked=e))}}),i=e((()=>{var e,o;return null!=(o=null==(e=n.originalData)?void 0:e.some((e=>e.checked)))&&o}));return o(c,{checked:a.value,"onUpdate:checked":e=>a.value=e,indeterminate:!a.value&&i.value,disabled:null==(l=null==(r=n.originalTableConfig)?void 0:r.checkboxConfig)?void 0:l.disableHeader},null)}(a):n[l.field]}const t={seq:e=>e.rowIndex+1,checkbox:e=>o(c,{checked:e.row.checked,"onUpdate:checked":o=>e.row.checked=o,onClick:n(l,["stop"])},null),radio(r,c){const i=e({get:()=>r.row===c.currentRow,set(){c.currentRow=r.row}});return o(a,{checked:i.value,"onUpdate:checked":e=>i.value=e,onClick:n(l,["stop"])},null)}};export{t as VerticalRenderMap,i as renderHeader};
1
+ function e(e,n){return e[n.field]}export{e as renderHeader};
@@ -1,12 +1,8 @@
1
1
  import { AnyObject } from '../../../../../shared/types';
2
- import { IhoTableConfig, IhoTableFieldItem } from '../../../../../components/iho-table';
3
- export declare type IhoTableVerticalState = Partial<{
4
- originalTableConfig: IhoTableConfig;
5
- originalFieldList: IhoTableFieldItem[];
6
- originalData: AnyObject[];
7
- verticalFieldList: IhoTableFieldItem[];
8
- verticalData: AnyObject[];
9
- headerDepth: number;
10
- currentRow: AnyObject | null;
11
- hoveringRow: AnyObject | null;
12
- }>;
2
+ import { IhoTableFieldItem } from '../../../../../components/iho-table';
3
+ export declare type IhoTableVerticalState = {
4
+ originalFieldList?: IhoTableFieldItem[];
5
+ verticalFieldList?: IhoTableFieldItem[];
6
+ verticalData?: AnyObject[];
7
+ headerDepth?: number;
8
+ };
@@ -3,26 +3,13 @@ import { VxeTableDefines } from 'vxe-table';
3
3
  import { IhoTableConfig, IhoTableFieldItem } from '../../../../../components/iho-table';
4
4
  export declare function isVerticalTable(tableConfig: IhoTableConfig): boolean;
5
5
  export declare function getFieldListDepth(fieldList: IhoTableFieldItem[]): number;
6
- export declare function isVerticalHeader(field: string): boolean;
7
- export declare function isVerticalBody(field: string): boolean;
8
- export declare function getHeaderDepthByField(field: string): number;
6
+ export declare function isVerticalHeader({ field }: IhoTableFieldItem): boolean;
7
+ export declare function isVerticalBody({ field }: IhoTableFieldItem): boolean;
8
+ export declare function getHeaderDepthByField({ field }: IhoTableFieldItem): number;
9
9
  export declare function bindHeaderInfoAndFlatten(fieldList: IhoTableFieldItem[], depth: number): IhoTableFieldItem[];
10
+ export declare function pickHeaderInfo(fieldItem: IhoTableFieldItem): Pick<IhoTableFieldItem, string>;
10
11
  export declare function getSpanInfo(row: AnyObject, column: VxeTableDefines.ColumnInfo): {
11
12
  rowspan: any;
12
13
  colspan: any;
13
14
  };
14
15
  export declare function createVerticalFieldList(tableData: AnyObject[], headerDepth: number): IhoTableFieldItem[];
15
- export declare function getVerticalInfoFromEvent(event: MouseEvent): {
16
- type: string;
17
- sequence: number;
18
- } | undefined;
19
- export declare function getOriginFieldFromRowData(row: AnyObject): VxeTableDefines.ColumnInfo;
20
- export declare function getOriginRowFromRowData(row: AnyObject, sequence: number): AnyObject;
21
- export declare function getOriginBasePayload(row: AnyObject, column: VxeTableDefines.ColumnInfo): {
22
- row: AnyObject;
23
- rowIndex: number;
24
- $rowIndex: number;
25
- column: VxeTableDefines.ColumnInfo;
26
- fixed: import("vxe-table").VxeColumnPropTypes.Fixed;
27
- type: "checkbox" | "radio" | "seq" | "expand" | "html";
28
- };
@@ -1 +1 @@
1
- import{traverse as n,findAncestor as e}from"../../../../../shared/utils/index.js";import{isString as t,range as r,property as i}from"lodash-es";import{VERTICAL_CELL_TYPE as o}from"./constants.js";function a(n){var e;return!!(null==(e=n.verticalConfig)?void 0:e.enable)}function c(n){let e=0;return function n(t,r=0){t.forEach((t=>{t.children?n(t.children,r+1):e=Math.max(e,r)}))}(n),e}function l(n){return!!t(n)&&n.startsWith("header_")}function u(n){return!!t(n)&&n.startsWith("body_")}function d(n){var e;return t(n)?+(null!=(e=n.split("_")[1])?e:0):0}function s(e,t){const i=[];return n(e,((n,e,a)=>{n.parent=a,n.children||(!function(n,e){let t=n,i=e;if(!n.parent)return n[`header_${e}`]=n.title,void r(e+1).forEach((t=>{n[`header_${t}_colspan`]=t===e?e+1:0,n[`header_${t}_rowspan`]=t===e?1:0}));for(;t;)n[`header_${i}`]=t.title,n[`header_${i}_rowspan`]=o(t),n[`header_${i}_colspan`]=1,i--,t=t.parent}(n,t),i.push(n))})),i.forEach(((n,e)=>{const t=i[e-1];t&&Object.entries(n).forEach((([e,r])=>{e.match(/^header_(\d+)$/)&&r===t[e]&&r&&(n[`${e}_colspan`]=0,n[`${e}_rowspan`]=0)}))})),i;function o(e){if(!e.children)return 1;let t=0;return n(e.children,(n=>{n.children||t++})),t}}function f(n,e){var t,r;return l(e.field)?{rowspan:null!=(t=n[e.field+"_rowspan"])?t:1,colspan:null!=(r=n[e.field+"_colspan"])?r:1}:{colspan:1,rowspan:1}}const p=({cell:n}={})=>{const e=n&&n.querySelector("input,.n-input__input-el");return e&&e.click(),e};function h(n,e){return[...r(e+1).map((n=>({field:`header_${n}`,title:`header_${n}`,minWidth:120,fixed:"left",editRender:{name:o,props:{},enable:!1}}))),...n.map(((n,e)=>({field:`body_${e}`,title:`body_${e}`,minWidth:120,editRender:{name:o,props:{},enable:!0,autofocus:p}})))]}function _(n){const t=e(n.target,(n=>"TD"===n.tagName));if(!t)return;const r=t.className.match(/(body|header)_(\d+)/);if(!r)return;const[,i,o]=r;return{type:i,sequence:+o}}function m(n){return i("originalField")(n)}function $(n,e){return i(`originalData.${e}`)(n)}function w(n,e){const t=d(e.field),r=m(n);return{row:$(n,t),rowIndex:t,$rowIndex:t,column:r,fixed:r.fixed,type:r.type}}p.toString=()=>"input,.n-input__input-el";export{s as bindHeaderInfoAndFlatten,h as createVerticalFieldList,c as getFieldListDepth,d as getHeaderDepthByField,w as getOriginBasePayload,m as getOriginFieldFromRowData,$ as getOriginRowFromRowData,f as getSpanInfo,_ as getVerticalInfoFromEvent,u as isVerticalBody,l as isVerticalHeader,a as isVerticalTable};
1
+ import{traverse as e}from"../../../../../shared/utils/index.js";import{isString as n,pick as r,range as t}from"lodash-es";import{VERTICAL_CELL_TYPE as i}from"./constants.js";function o(e){var n;return!!(null==(n=e.verticalConfig)?void 0:n.enable)}function a(e){let n=0;return function e(r,t=0){r.forEach((r=>{r.children?e(r.children,t+1):n=Math.max(n,t)}))}(e),n}function l({field:e}){return!!n(e)&&(null==e?void 0:e.startsWith("header_"))}function d({field:e}){return!!n(e)&&(null==e?void 0:e.startsWith("body_"))}function c({field:e}){var r;return n(e)?+(null!=(r=e.split("_")[1])?r:0):0}function f(n,r){const i=[];return e(n,((e,n,a)=>{e.parent=a,e.children||(!function(e,n){let r=e,i=n;if(!e.parent)return e[`header_${n}`]=e.title,void t(n+1).forEach((r=>{e[`header_${r}_colspan`]=r===n?n+1:0,e[`header_${r}_rowspan`]=r===n?1:0}));for(;r;)e[`header_${i}`]=r.title,e[`header_${i}_rowspan`]=o(r),e[`header_${i}_colspan`]=1,i--,r=r.parent}(e,r),i.push(e))})),i.forEach(((e,n)=>{const r=i[n-1];r&&Object.entries(e).forEach((([n,t])=>{n.match(/^header_(\d+)$/)&&t===r[n]&&(e[`${n}_colspan`]=0,e[`${n}_rowspan`]=0)}))})),i;function o(n){if(!n.children)return 1;let r=0;return e(n.children,(e=>{e.children||r++})),r}}function s(e){return r(e,Object.keys(e).filter((e=>e.startsWith("header_"))))}function u(e,n){var r,t;return l(n)?{rowspan:null!=(r=e[n.field+"_rowspan"])?r:1,colspan:null!=(t=e[n.field+"_colspan"])?t:1}:{colspan:1,rowspan:1}}function h(e,n){return[...t(n+1).map((e=>({field:`header_${e}`,title:`header_${e}`,minWidth:100,fixed:"left"}))),...e.map(((e,n)=>({field:`body_${n}`,title:`body_${n}`,minWidth:100,editRender:{name:i,props:{},enable:!0}})))]}export{f as bindHeaderInfoAndFlatten,h as createVerticalFieldList,a as getFieldListDepth,c as getHeaderDepthByField,u as getSpanInfo,d as isVerticalBody,l as isVerticalHeader,o as isVerticalTable,s as pickHeaderInfo};