File: /var/www/html/public/static/js/index-cd7d9c58.js
import{useExcelloader as ee}from"./hook-5fe443ff.js";import{be as j}from"./message-2472a54a.js";import{H as B}from"./handsontable.full-52d898a3.js";import{d as te}from"./vue-router-a383d220.js";import{getModelXlsTplByCustom as le}from"./lowcode-d91a45d5.js";import{E as ae}from"./index-74d93170.js";import{d as z,r as w,o as ne,G as V,Q as g,e as oe,f as ie,g as M,y as s,m as u,u as m,b5 as se,b4 as ue,v as x}from"./runtime-core.esm-bundler-6128546f.js";import{_ as re}from"./_plugin-vue_export-helper-c27b6911.js";import"./utils-2ab4f76a.js";import"./excelmaker-47cba4c4.js";import"./preload-helper-78dc9057.js";import"./vue-i18n.runtime.esm-bundler-6949bcab.js";import"./index-b7f916e1.js";import"./_commonjsHelpers-87174ba5.js";const J=f=>(se("data-v-c1e4898a"),f=f(),ue(),f),de={class:"w-full h-full text-center !m-0"},ce={class:"!m-0"},me=J(()=>M("h1",null,"XLS数据配置",-1)),pe=J(()=>M("div",{id:"xls_table"},null,-1)),fe=z({name:"ExcelExportMaker"}),ve=z({...fe,props:{height:{type:Number,default:500}},emits:["update:visible","data-apply","save"],setup(f,{emit:_e}){const O=f;te();const{saveFormJson:X,loadModelFieldList:R,save_loading:v,tpl_map:he,file_id:S,tpl_list:ge,mergeCells:C,clsData:b,clsOrgData:d,numColumns:E,numRows:H,col_import:r,col_heads:p,begin_col:_,field_options:U,upLoadXlsPrintUri:W,upLoadFileUriHeader:A,upLoadinfo:D,uploadFileFailed:G,formInline:y,hot:h}=ee(),F=w(400);F.value=O.height;const T=w("");T.value=W();const P=(e,l)=>{D.value=l,parseInt(e.success)==1?(j(l.name+"文件上传成功",{type:"success"}),E.value=e.data.xls.numColumns,H.value=e.data.xls.numRows,S.value=e.data.file_id,C.value=e.data.mergeCells,d.value=e.data.xls_data,b.value=e.data.data,r.value=e.data.col_import,p.value=e.data.col_heads,I()):j(l.name+"文件上传成功,但解析失败,请确定是否符合格式",{type:"error"})},K=e=>{let l=e+1,a="",t;for(;l>0;)t=(l-1)%26,a=String.fromCharCode(65+t)+a,l=Math.floor((l-t)/26);return a},Q=function(e,l,a,t,o,n,c){if(B.renderers.TextRenderer.apply(this,arguments),l.style.fontFamily="宋体",l.style.fontSize="12px",d.value&&d.value[a][t]&&d.value[a][t].font&&(l.style.fontFamily=d.value[a][t].font.font_name,l.style.fontSize=d.value[a][t].font.font_size+"px",d.value[a][t].font.bold&&(l.style.fontWeight="bold"),d.value[a][t].font.italic&&(l.style.fontStyle="italic")),l.innerHTML=n,r.value[a]&&(r.value[a]=="begin"||r.value[a]=="normal")){const i=document.createElement("select");U.value.forEach(k=>{const L=document.createElement("option");L.value=k.value,L.textContent=k.title,i.appendChild(L)}),i.value="",i.id=r.value[a]+"_"+a+"_"+t,p.value&&p.value[i.id]&&(i.value=p.value[i.id]),i.addEventListener("change",function(){this.value,p.value[this.id]=this.value});const N=document.createElement("span");N.innerHTML=" ",l.innerHTML&&(l.appendChild(N),l.appendChild(i))}};function I(){const e=Array.from({length:H.value},(a,t)=>{const o=[{value:"",title:"默认"},{value:"normal",title:"普通导入行"},{value:"begin",title:"明细开始行"},{value:"not_import",title:"不导入行"},{value:"end",title:"明细结束行"}],n=document.createElement("select");return o.forEach(c=>{const i=document.createElement("option");i.textContent=c.title,i.value=c.value,n.appendChild(i)}),n.id="col_select_"+t,n.value="",n.addEventListener("change",function(){let c=this.id.split("_");if(_.value!=-1&&this.value=="begin")return j("一次导入只能有一个明细导入行",{type:"warning"}),n.value="",n;r.value[c[2]]=this.value,this.value=="begin"||this.value=="normal"?(h.value.render(),this.value=="begin"&&(_.value=parseInt(c[2]),ae({title:"注意:",message:"开始导入行:本行做为列名匹配,不导入本行数据,请悉知",type:"warning",duration:15e3}))):_.value!=-1&&parseInt(c[2])==_.value&&(_.value=-1)}),r.value&&r.value[t]&&(n.value=r.value[t]),n});h.value&&h.value.destroy();const l=document.getElementById("xls_table");l.innerHTML="",h.value=new B(document.getElementById("xls_table"),{data:b.value,rowHeaderWidth:100,colHeaders:!0,rowHeaders:!0,readOnly:!0,manualColumnResize:!0,manualRowResize:!0,height:F.value,afterGetRowHeader:function(a,t){if(a>=0&&a<e.length){const o=document.createElement("div");o.style.display="flex",o.style.alignItems="center";const n=document.createElement("span");n.innerHTML=" ",o.appendChild(t.firstChild),o.appendChild(n),o.appendChild(e[a]),t.innerHTML="",t.appendChild(o)}},mergeCells:C.value,columns:Array.from({length:E.value},(a,t)=>({data:t,title:K(t),renderer:Q})),licenseKey:"non-commercial-and-evaluation"}),V(()=>{h.value.render()})}function q(e){let l=JSON.parse(y.json);R(l,()=>{})}function Y(e){X()}ne(()=>{R(()=>{$()})});function Z(e){}async function $(){v.value=!0;const{data:e,success:l}=await le("","");e.file_id?(E.value=e.xls.numColumns,H.value=e.xls.numRows,S.value=e.file_id,C.value=e.mergeCells,d.value=e.xls_data,b.value=e.data,r.value=e.config.col_import,p.value=e.config.col_heads,I(),V(()=>{v.value=!1})):v.value=!1}return(e,l)=>{const a=g("el-input"),t=g("el-form-item"),o=g("el-button"),n=g("el-upload"),c=g("el-form");return oe(),ie("div",de,[M("div",ce,[me,s(c,{inline:!0,model:m(y)},{default:u(()=>[s(t,{label:"JSON数据:",class:"flex items-center justify-center h-16"},{default:u(()=>[s(a,{modelValue:m(y).json,"onUpdate:modelValue":l[0]||(l[0]=i=>m(y).json=i),rows:2,type:"textarea",placeholder:"导入数据模版"},null,8,["modelValue"])]),_:1}),s(t,{label:"",class:"flex items-center justify-center"},{default:u(()=>[s(o,{type:"primary",onClick:q,loading:m(v)},{default:u(()=>[x("加载数据列")]),_:1},8,["loading"])]),_:1}),s(t,{label:"上传模版:",class:"flex items-center justify-center h-16"},{default:u(()=>[s(n,{ref:"upload",class:"upload-demo flex items-center justify-center",action:T.value,headers:m(A),limit:1,"on-success":P,"on-error":m(G)},{trigger:u(()=>[s(o,null,{default:u(()=>[x("选择模版文件")]),_:1})]),_:1},8,["action","headers","on-error"])]),_:1}),s(t,{label:"",class:"flex items-center justify-center"},{default:u(()=>[s(o,{type:"primary",onClick:Y,loading:m(v)},{default:u(()=>[x("保存模版")]),_:1},8,["loading"])]),_:1}),s(t,{label:"",class:"flex items-center justify-center"},{default:u(()=>[s(o,{onClick:Z},{default:u(()=>[x("重置")]),_:1})]),_:1})]),_:1},8,["model"]),pe])])}}});const ke=re(ve,[["__scopeId","data-v-c1e4898a"]]);export{ke as default};