joy-admin-components 0.2.74 → 0.2.75
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.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(m,Z){typeof exports=="object"&&typeof module<"u"?Z(exports,require("element-plus"),require("vue"),require("file-saver"),require("exceljs"),require("dayjs"),require("vue-i18n"),require("lodash"),require("vue-router"),require("vuex"),require("vxe-pc-ui")):typeof define=="function"&&define.amd?define(["exports","element-plus","vue","file-saver","exceljs","dayjs","vue-i18n","lodash","vue-router","vuex","vxe-pc-ui"],Z):(m=typeof globalThis<"u"?globalThis:m||self,Z(m.JoyAdminComponents={},m.ElementPlus,m.Vue,m.fileSaver,m.ExcelJS,m.dayjs,m.VueI18n,m._,m.VueRouter,m.Vuex,m.VxeUI))})(this,function(m,Z,e,ve,ye,me,te,ae,De,oe,ne){"use strict";const lt=e.defineComponent({name:"LayOutForm",setup(t,{slots:o,attrs:n,emit:r}){const i=e.ref(null),l=()=>o.default?o.default().filter(s=>s.type!==Symbol.for("v-cmt")).map(s=>s.type===Symbol.for("v-fgt")?s.children:s).flat().map(s=>{var c,y,p,C;return e.h(Z.ElCol,{span:((c=s.props)==null?void 0:c.span)||((p=(y=s.props)==null?void 0:y.colProps)==null?void 0:p.span)||24,...(C=s.props)==null?void 0:C.colProps},{default:()=>s})}):null;e.onMounted(()=>{r("ref",i.value)});function a(){return e.h(Z.ElForm,{...n,ref:i},()=>e.h(Z.ElRow,{gutter:n.gutter??20},{default:()=>l()}))}return a}});var Be=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Me(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var ze={exports:{}};(function(t,o){(function(n,r){t.exports=r()})(Be,function(){var n="minute",r=/[+-]\d\d(?::?\d\d)?/g,i=/([+-]|\d\d)/g;return function(l,a,s){var c=a.prototype;s.utc=function(d){var w={date:d,utc:!0,args:arguments};return new a(w)},c.utc=function(d){var w=s(this.toDate(),{locale:this.$L,utc:!0});return d?w.add(this.utcOffset(),n):w},c.local=function(){return s(this.toDate(),{locale:this.$L,utc:!1})};var y=c.parse;c.parse=function(d){d.utc&&(this.$u=!0),this.$utils().u(d.$offset)||(this.$offset=d.$offset),y.call(this,d)};var p=c.init;c.init=function(){if(this.$u){var d=this.$d;this.$y=d.getUTCFullYear(),this.$M=d.getUTCMonth(),this.$D=d.getUTCDate(),this.$W=d.getUTCDay(),this.$H=d.getUTCHours(),this.$m=d.getUTCMinutes(),this.$s=d.getUTCSeconds(),this.$ms=d.getUTCMilliseconds()}else p.call(this)};var C=c.utcOffset;c.utcOffset=function(d,w){var _=this.$utils().u;if(_(d))return this.$u?0:_(this.$offset)?C.call(this):this.$offset;if(typeof d=="string"&&(d=function(B){B===void 0&&(B="");var j=B.match(r);if(!j)return null;var F=(""+j[0]).match(i)||["-",0,0],M=F[0],T=60*+F[1]+ +F[2];return T===0?0:M==="+"?T:-T}(d),d===null))return this;var S=Math.abs(d)<=16?60*d:d;if(S===0)return this.utc(w);var x=this.clone();if(w)return x.$offset=S,x.$u=!1,x;var E=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();return(x=this.local().add(S+E,n)).$offset=S,x.$x.$localOffset=E,x};var b=c.format;c.format=function(d){var w=d||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return b.call(this,w)},c.valueOf=function(){var d=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*d},c.isUTC=function(){return!!this.$u},c.toISOString=function(){return this.toDate().toISOString()},c.toString=function(){return this.toDate().toUTCString()};var g=c.toDate;c.toDate=function(d){return d==="s"&&this.$offset?s(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():g.call(this)};var h=c.diff;c.diff=function(d,w,_){if(d&&this.$u===d.$u)return h.call(this,d,w,_);var S=this.local(),x=s(d).local();return h.call(S,x,w,_)}}})})(ze);var at=ze.exports;const rt=Me(at);var Ne={exports:{}};(function(t,o){(function(n,r){t.exports=r()})(Be,function(){var n={year:0,month:1,day:2,hour:3,minute:4,second:5},r={};return function(i,l,a){var s,c=function(b,g,h){h===void 0&&(h={});var d=new Date(b),w=function(_,S){S===void 0&&(S={});var x=S.timeZoneName||"short",E=_+"|"+x,B=r[E];return B||(B=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:_,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:x}),r[E]=B),B}(g,h);return w.formatToParts(d)},y=function(b,g){for(var h=c(b,g),d=[],w=0;w<h.length;w+=1){var _=h[w],S=_.type,x=_.value,E=n[S];E>=0&&(d[E]=parseInt(x,10))}var B=d[3],j=B===24?0:B,F=d[0]+"-"+d[1]+"-"+d[2]+" "+j+":"+d[4]+":"+d[5]+":000",M=+b;return(a.utc(F).valueOf()-(M-=M%1e3))/6e4},p=l.prototype;p.tz=function(b,g){b===void 0&&(b=s);var h,d=this.utcOffset(),w=this.toDate(),_=w.toLocaleString("en-US",{timeZone:b}),S=Math.round((w-new Date(_))/1e3/60),x=15*-Math.round(w.getTimezoneOffset()/15)-S;if(!Number(x))h=this.utcOffset(0,g);else if(h=a(_,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(x,!0),g){var E=h.utcOffset();h=h.add(d-E,"minute")}return h.$x.$timezone=b,h},p.offsetName=function(b){var g=this.$x.$timezone||a.tz.guess(),h=c(this.valueOf(),g,{timeZoneName:b}).find(function(d){return d.type.toLowerCase()==="timezonename"});return h&&h.value};var C=p.startOf;p.startOf=function(b,g){if(!this.$x||!this.$x.$timezone)return C.call(this,b,g);var h=a(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return C.call(h,b,g).tz(this.$x.$timezone,!0)},a.tz=function(b,g,h){var d=h&&g,w=h||g||s,_=y(+a(),w);if(typeof b!="string")return a(b).tz(w);var S=function(j,F,M){var T=j-60*F*1e3,W=y(T,M);if(F===W)return[T,F];var k=y(T-=60*(W-F)*1e3,M);return W===k?[T,W]:[j-60*Math.min(W,k)*1e3,Math.max(W,k)]}(a.utc(b,d).valueOf(),_,w),x=S[0],E=S[1],B=a(x).utcOffset(E);return B.$x.$timezone=w,B},a.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},a.tz.setDefault=function(b){s=b}}})})(Ne);var it=Ne.exports;const st=Me(it),Ce={"dao-ru":"导入","quan-xuan":"全选","xia-zai-dao-ru-mo-ban":"下载导入模板","xu-hao":"序号","qing-shu-ru":"请输入","qing-xuan-ze":"请选择","kai-shi-shi-jian":"开始时间","jie-shu-shi-jian":"结束时间","shai-xuan":"筛选","chong-zhi":"重置","guan-bi":"关闭","zhan-kai":"展开","qu-xiao":"取消","ti-jiao":"提交","que-ding":"确定","que-ding-guan-bi-ma":"确定关闭吗","xia-zai-dao-ru-mo-ban":"下载导入模板",excel:{fieldsMappingRequired:"请输入列字段映射",invalidInput:"非法输入",invalidOption:"请输入有效选项!",copyFailed:"复制失败",sheetNameTooLong:'Sheet名称 "{0}" 长度超过31个字符,已自动截断为 "{1}"'},validate:{invalidInput:"请输入正确内容"},tools:{keysLengthError:"keys 长度必须大于2 默认前两位为 label value"}},be={"dao-ru":"Import","quan-xuan":"Select All","xia-zai-dao-ru-mo-ban":"Download Import Template","xu-hao":"No.","qing-shu-ru":"Please enter","qing-xuan-ze":"Please select","kai-shi-shi-jian":"Start Time","jie-shu-shi-jian":"End Time","shai-xuan":"Filter","chong-zhi":"Reset","guan-bi":"Collapse","zhan-kai":"Expand","qu-xiao":"Cancel","ti-jiao":"Submit","que-ding":"Confirm","que-ding-guan-bi-ma":"Are you sure to close?","xia-zai-dao-ru-mo-ban":"Download Import Template",excel:{fieldsMappingRequired:"Please enter column field mapping",invalidInput:"Invalid input",invalidOption:"Please enter a valid option!",copyFailed:"Copy failed",sheetNameTooLong:'Sheet name "{0}" exceeds 31 characters, automatically truncated to "{1}"'},validate:{invalidInput:"Please enter valid content"},tools:{keysLengthError:"Keys length must be greater than 2, default first two are label and value"}},Oe={zh_cn:Ce,en_us:be};let ue=null;function qe(t=null){if(t){const{global:o}=t;return o.messages.value.zh_cn?o.mergeLocaleMessage("zh_cn",Ce):o.setLocaleMessage("zh_cn",Ce),o.messages.value.en_us?o.mergeLocaleMessage("en_us",be):o.setLocaleMessage("en_us",be),ue=t,t}return ue||(ue=te.createI18n({legacy:!1,locale:"zh_cn",fallbackLocale:"zh_cn",messages:Oe})),ue}function we(){return ue||qe()}function re(){return we().global.t}me.extend(rt),me.extend(st);async function ct(t,o){const{fields:n,range:r=1}=o;if(!n){const a=re();throw new Error(a("excel.fieldsMappingRequired"))}let i=new ye.Workbook;await i.xlsx.load(t);const l={};return i.eachSheet(function(a,s){const c=[];a.eachRow(function(y,p){if(p>r){let C={},b=!0;Object.keys(n).forEach(g=>{const h=y.getCell(n[g]).value;C[g]=h,h&&(b=!1)}),b||c.push(C)}}),l[a._name]=c}),i=null,l}const Pe={columnWidth:30};async function dt(t,o,n=[],r={}){if(!t||!o)return;const{columnStyle:i}=r,{columnWidth:l}=Pe;o.forEach(c=>{c.width=c.width?c.width:l});const{workbook:a,worksheet:s}=ut();s.columns=o,s.addRows(n),i&&await ft(a,s,i);try{const c=await a.xlsx.writeBuffer(),y=new File([c],t,{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});ve.saveAs(y)}catch(c){console.log(c)}}function ut(){const t=new ye.Workbook;t.creator="distributor System",t.lastModifiedBy="distributor System",t.created=new Date,t.modified=new Date,t.lastPrinted=new Date;const o=t.addWorksheet("Sheet1");return{workbook:t,worksheet:o}}async function ft(t,o,n){const r=Object.keys(n);for(const i of r){const l=n[i],{type:a}=l;switch(a){case"IMG":await mt(t,o,i);break}}}async function mt(t,o,n,r){const i=o.getColumn(n),l=i.values;o.getColumn(n).width=20,o.eachRow((a,s)=>{s>1&&(a.height=40)});for(let a=0,s=l.length;a<s;a++){if(a<2)continue;let c=l[a];c&&(o.getCell(i.letter+a).value="",await ht(t,o,c,{width:100,height:50,col:i._number-1,row:a-1}))}}async function ht(t,o,n,r){const{col:i,row:l,width:a,height:s}=r,{success:c,base64:y}=await gt(n,.3);if(c){const p=t.addImage({base64:y,extension:"jpeg"});o.addImage(p,{tl:{col:i,row:l},ext:{width:a,height:s}})}}function gt(t,o=1){const n=new Image;return n.setAttribute("crossOrigin","anonymous"),n.crossOrigin="anonymous",n.src=t,new Promise((r,i)=>{n.onload=()=>{const l=document.createElement("canvas");l.width=n.width,l.height=n.height,l.getContext("2d").drawImage(n,0,0,l.width,l.height),r({success:!0,base64:l.toDataURL("image/jpeg",o)})},n.onerror=()=>{r({success:!1})}})}const Se="---";async function Ae(t,o){const{fields:n,range:r=1}=o;if(!n){const a=re();throw new Error(a("excel.fieldsMappingRequired"))}let i=new ye.Workbook;await i.xlsx.load(t);const l={};return i.eachSheet(function(a,s){if(a.state=="visible"){const c=[],y=n[a._name];if(y){let p=Object.values(y).some(b=>b.includes("image")),C={};p&&(a.getImages().forEach(g=>{const{tl:h}=g.range,d=i.model.media.find(w=>w.index===g.imageId);if(d){const w=d.buffer.toString("base64"),_=`data:image/${d.extension};base64,${w}`,S=`${Math.ceil(h.row)}_${Math.ceil(h.col)}`;C[S]?C[S].push(_):C[S]=[_]}}),console.log("withImages-imageMap",C)),a.eachRow(function(b,g){if(g>r){let h={_excelRowNumber:g},d=!0;Object.keys(y).forEach(w=>{var B,j;let[_,S]=y[w].split(Se);const x=b.getCell(_);let E;if(S=="image"&&p){const F=x._column._number,M=`${g}_${F}`;E=C[M]||""}else x.result!=null?E=x.result:(B=x.value)!=null&&B.richText?E=x.value.richText.reduce((F,M)=>F+M.text,""):(j=x.value)!=null&&j.hyperlink?E=x.value.text||x.value.hyperlink:x.type==4&&x.value?E=me(x.value).utc().format("YYYY-MM-DD HH:mm:ss"):E=x.value;E&&S=="option"&&(E=E.split(Se)[1]),h[w]=E,E&&(d=!1)}),d||c.push(h)}}),l[a._name]=c}}}),i=null,l}const pt={date:"yyyy-mm-dd",number:"0",string:"@"};async function je(t,o){if(!t||o.length==0)return;const n=yt(o);for(const r of n.worksheets){const{columnWidth:i}=Pe,l=o[r.name];if(!l)continue;const{tableHeader:a,tableData:s}=l;a.forEach(c=>{const{style:y={},required:p}=c,{font:C={}}=y;c.style={...y,font:{...C,color:{argb:p?"FFFF0000":void 0}}}}),r.columns=a,r.addRows(s),a.forEach(c=>{let{header:y,key:p,width:C,option:b,numFmt:g,locked:h,optionFormater:d}=c;const w=r.getColumn(p);if(w.numFmt=pt[g]||g,w.width=C||i,w.protection={locked:h===!0},b){const _=n.addWorksheet(p);_.state="hidden",d||(d=S=>`${S.label}${Se}${S.value}`),_.getColumn(1).values=b.map(d),Array(100).fill("").forEach((S,x)=>{if(x>0){const E=re();r.getCell(`${w.letter}${x}`).dataValidation={type:"list",formulae:[`${p}!$A$1:$A$${b.length}`],showErrorMessage:!0,error:E("excel.invalidInput"),errorStyle:"stop",errorMessage:E("excel.invalidOption")}}})}}),a.some(c=>c.locked)&&await r.protect("6737187214",{selectLockedCells:!0,selectUnlockedCells:!0})}try{const r=await n.xlsx.writeBuffer(),i=new File([r],t,{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});ve.saveAs(i)}catch(r){console.log(r)}}function yt(t){const o=re(),n=new ye.Workbook;return n.creator="distributor System",n.lastModifiedBy="distributor System",n.created=new Date,n.modified=new Date,n.lastPrinted=new Date,Object.keys(t).sort((i,l)=>{const a=t[i].sort??0,s=t[l].sort??0;return a-s}).forEach(i=>{let l=i,a=!1;/[\\/:*?\[\]]/g.test(i)&&(i=i.replace(/[\\/:*?\[\]]/g,""),a=!0),i.length>31&&(i=i.substring(0,31).trim(),a=!0,console.warn(o("excel.sheetNameTooLong",[l,i]))),a&&(t[i]=t[l],delete t[l]),n.addWorksheet(i)}),n}function Ct(t){if(t<26)return String.fromCharCode(65+t);{const o=String.fromCharCode(65+Math.floor((t-26)/26)),n=String.fromCharCode(65+(t-26)%26);return o+n}}function bt(t){return new Promise(o=>{setTimeout(()=>{o()},t)})}function wt(t){return JSON.parse(JSON.stringify(t))}function xt(t){let o=[],n={},r=(i,l)=>Object.prototype.hasOwnProperty.call(i,l);for(const i of t){n[i.id]={...i,children:r(n,i.id)?n[i.id].children:[]};const l=n[i.id];i.pid==-1?o.push(l):(r(n,i.pid)||(n[i.pid]={children:[]}),n[i.pid].children.push(l))}return o}function $e(t,o=" "){return t?t.split(o).filter(n=>n.trim()):[]}class Ve{constructor(o,n=["label","value","labelEn"]){this.list=o.map(r=>({...r,label:r[n[0]],labelEn:r[n[2]]??r[n[0]]??"",value:r[n[1]]})),this.map=new Map(this.list.map(r=>[r[n[1]],r]))}getName(o){if(!this.has(o))return"-";const n=we().global.locale,{label:r,labelEn:i}=this.map.get(o);return(n.value=="zh_cn"?r:i)??r??"-"}getTag(o){if(!this.has(o))return"info";const{tag:n="info"}=this.map.get(o);return n}getItem(o){return this.has(o)?this.map.get(o):null}getColor(o){if(!this.has(o))return null;const{color:n}=this.map.get(o);return n}has(o){return this.map.has(o)}}function kt(t,o=[],n="i18nName"){if(t.length==0)return new Ve([]);if(o.length<2){const i=re();throw new Error(i("tools.keysLengthError"))}let r=t.map(i=>{let l={};return n&&(l.labelEn=i[n]),o.forEach((a,s)=>{s===0?l.label=i[a]:s===1?l.value=i[a]:l[a]=i[a]}),l});return new Ve(r)}function _t(t){return t?t.replace(/<[^>]+>/g,""):""}function St(t){return t?(t.includes("\\\\u")&&(t=t.replace(/\\/g,"")),t.replace(/\\u[\dA-F]{4}/gi,o=>String.fromCharCode(parseInt(o.replace(/\\u/g,""),16)))):""}function $t(t,o=10){let n=1048576*o;return!(t.size>n)}function Vt(t){return Array.from(10).fill(0).map((n,r)=>t+"_"+r)}function Et(t){let o={};return t.map((n,r)=>{let{key:i,option:l,type:a,optionFormater:s}=n,c=Ct(r);l&&!s?o[i]=`${c}---option`:a==="image"?o[i]=`${c}---image`:o[i]=c}),o}function Tt(t,o){return o.split(".").reduce((n,r)=>n&&n[r],t)}const mo="",fe=(t,o)=>{const n=t.__vccOpts||t;for(const[r,i]of o)n[r]=i;return n},It=["onClick"],Re=fe({__name:"index",props:e.mergeModels({api:{type:Function},showCheckAll:{type:Boolean,default:!0},maxLimit:{type:Number,default:void 0},minLimit:{type:Number,default:void 0},optionClick:{type:Function,default:()=>{}},data:{type:Array},labelValue:{type:Object,default:()=>({label:"label",labelEn:"labelEn",value:"value"})},changeLocal:{type:Boolean,default:!1}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["success","change","changeAll"],["update:modelValue"]),setup(t,{emit:o}){const n=t,r=e.useAttrs(),{t:i,locale:l}=te.useI18n(),a=e.useModel(t,"modelValue"),s=e.computed(()=>r["value-key"]!=null),c=e.ref(""),y=e.computed(()=>{if(r.remote!==void 0)return n.data;const k=$e(c.value),{data:$,labelValue:q}=n,V=$||b.value;if(k.length==0)return V;const{label:G,labelEn:ie}=q;let D=l.value=="en_us"?ie||"i18nName":G;return k.length==1?V.filter(le=>le[D].toLowerCase().includes(k[0].toLowerCase())):V.filter(le=>{let ge=!1;return ge=k.some(_e=>le[D].toLowerCase()==_e.toLowerCase()),ge})}),p=e.computed({get(){return r.multiple==null||a.value==null?!1:a.value.length==y.value.length},set(k){return k}}),C=o,b=e.ref([]),g=async()=>{const{data:k}=await n.api();b.value=[...k],C("success",b)};n.api&&g();function h(k){C("change",k),d.value&&e.nextTick(()=>{n.optionClick&&n.optionClick(d.value),d.value=null})}const d=e.ref(null);function w(){C("change",a.value),e.nextTick(()=>{n.optionClick&&n.optionClick(null)})}function _(k){d.value=k}const S=n.labelValue.label.split("-"),x=k=>{if(S.length==1){if(n.changeLocal)return i(k[n.labelValue.label]);let $=l.value=="en_us"?k[n.labelValue.labelEn||"i18nName"]:k[n.labelValue.label];return $=$||k[n.labelValue.label],$+""}else{let $=[];return S.forEach(q=>{$.push(k[q])}),$.join("-")}};function E(k){let $=n.data?n.data:b.value;a.value=k?$.map(q=>s.value?q:q[n.labelValue.value]):[],e.nextTick(()=>{C("change",a.value),C("changeAll",a.value,$)})}function B(k){C("change",s.value?k:k[n.labelValue.value]),e.nextTick(()=>{n.optionClick&&n.optionClick(k)})}function j(k){const $=s.value?k:k[n.labelValue.value],q=s.value?a.value.some(V=>V[n.labelValue.value]===k[n.labelValue.value]):a.value.includes($);return!!(n.maxLimit>0&&a.value.length>=n.maxLimit&&!q||n.minLimit>0&&a.value.length===n.minLimit&&q)}function F(k){return k.map($=>({...$,label:x($),value:s.value?$:$[n.labelValue.value]}))}const M=e.ref([]),T=n.data?n.data:b.value;M.value=F(T),e.watch(()=>n.data?n.data:b.value,k=>{var q;const $=F(k);if($.length!==M.value.length)M.value=$;else{let V=!1;for(let G=0;G<$.length;G++)if($[G].value!==((q=M.value[G])==null?void 0:q.value)){V=!0;break}V&&(M.value=$)}},{deep:!0});const W=e.computed(()=>r.multiple!==void 0&&(n.maxLimit>0||n.minLimit>0)?M.value.map(k=>({...k,disabled:j(k)})):M.value);return(k,$)=>{const q=e.resolveComponent("el-checkbox"),V=e.resolveComponent("el-select-v2"),G=e.resolveComponent("el-option"),ie=e.resolveComponent("el-select");return e.unref(r).v2!=null?(e.openBlock(),e.createBlock(V,e.mergeProps({key:0,options:W.value,modelValue:a.value,"onUpdate:modelValue":$[1]||($[1]=D=>a.value=D)},e.unref(r),{filterable:"","collapse-tags":"","collapse-tags-tooltip":"",clearable:"",onChange:h}),e.createSlots({default:e.withCtx(({item:D})=>[e.createElementVNode("div",{onClick:se=>_(D)},e.toDisplayString(D.label),9,It)]),_:2},[e.unref(r).multiple!=null?{name:"header",fn:e.withCtx(()=>[e.renderSlot(k.$slots,"header",{},()=>[e.createVNode(q,{class:"mgl20",modelValue:p.value,"onUpdate:modelValue":$[0]||($[0]=D=>p.value=D),onChange:E},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.$t("quan-xuan")),1)]),_:1},8,["modelValue"])],!0)]),key:"0"}:void 0]),1040,["options","modelValue"])):(e.openBlock(),e.createBlock(ie,e.mergeProps({key:1,modelValue:a.value,"onUpdate:modelValue":$[3]||($[3]=D=>a.value=D),filterable:"","collapse-tags":"","collapse-tags-tooltip":"","filter-method":e.unref(r).remote!=null?void 0:D=>c.value=D,clearable:""},e.unref(r),{onClear:w}),{default:e.withCtx(()=>[e.unref(r).multiple!=null&&t.showCheckAll&&t.maxLimit==null?e.renderSlot(k.$slots,"header",{key:0},()=>[e.createVNode(q,{class:"mgl20",modelValue:p.value,"onUpdate:modelValue":$[2]||($[2]=D=>p.value=D),onChange:E},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.$t("quan-xuan")),1)]),_:1},8,["modelValue"])],!0):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,(D,se)=>(e.openBlock(),e.createBlock(G,{key:se,label:x(D),disabled:e.unref(r).multiple!=null&&(t.maxLimit>0||t.minLimit>0)?j(D):!1,onClick:e.withModifiers(le=>B(D),["stop"]),value:s.value?D:D[t.labelValue.value]},null,8,["label","disabled","onClick","value"]))),128))]),_:3},16,["modelValue","filter-method"]))}}},[["__scopeId","data-v-12794201"]]),go="",Lt=e.defineComponent({props:{name:{tyepe:String,required:!0}}});function Ft(t,o,n,r,i,l){const a=e.resolveComponent("el-icon");return e.openBlock(),e.createBlock(a,{class:"cmp-icon"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.name)))]),_:1})}const Ee=fe(Lt,[["render",Ft],["__scopeId","data-v-733f9daa"]]),po="",vt={class:"confirm-button-wrapper"},Dt=fe({__name:"index",emits:["ok","no"],setup(t,{emit:o}){const n=o,r=ae.debounce(()=>{n("ok")},500);function i(){n("no")}return(l,a)=>{const s=e.resolveComponent("el-popconfirm");return e.openBlock(),e.createElementBlock("span",vt,[e.createVNode(s,e.mergeProps(l.$attrs,{onConfirm:e.unref(r),onCancel:i}),{reference:e.withCtx(()=>[e.renderSlot(l.$slots,"default",{},void 0,!0)]),_:3},16,["onConfirm"])])}}},[["__scopeId","data-v-24cb35fd"]]),Co="",Bt={class:"ImportButton"},Mt=["accept"],zt=fe({__name:"index",props:{accept:{type:String,default:".xlsx,.xls"},fields:{type:Object,default:()=>({})},fileChange:{type:Function,required:!0}},emits:["fileChange"],setup(t,{emit:o}){const n=t,r=e.ref(null),i=e.ref(!1);async function l(a){i.value=!0;let s=a.target.files[0];const c=await Ae(s,n.fields).catch(()=>{i.value=!1}).finally(()=>{r.value.value=null});await n.fileChange(c).finally(()=>{i.value=!1})}return(a,s)=>{const c=e.resolveComponent("el-button");return e.openBlock(),e.createElementBlock("div",Bt,[e.createVNode(c,e.mergeProps({type:"primary",loading:i.value,class:"mgr10",onClick:s[0]||(s[0]=y=>r.value.click())},a.$attrs),{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(a.$t("dao-ru")),1)],!0)]),_:3},16,["loading"]),e.createElementVNode("input",{onChange:l,ref_key:"input",ref:r,accept:t.accept,style:{position:"absolute",width:"0px",height:"0px",opacity:"0"},type:"file"},null,40,Mt)])}}},[["__scopeId","data-v-ea0a4c60"]]);function Te(t){let o={};return t.forEach(n=>{const{key:r,type:i,option:l={},value:a,dateType:s="date"}=n;if(r)if(i=="input"&&(l!=null&&l.multiple))o[r]=$e(a);else if(i=="date")if(s.includes("range")){const[c,y]=r;let[p,C]=a||[];p&&s=="daterange"&&(p=me(p).format("YYYY-MM-DD 00:00:00"),C=me(C).format("YYYY-MM-DD 23:59:59")),o[c]=p,o[y]=C}else o[r]=a;else o[r]=a}),o}const wo="",Nt={key:0},Ot={class:"btns"},qt={class:"left"},Pt={class:"right"},Ue=fe({__name:"index",props:{form:{type:Object,required:!0}},emits:["confirm","reset","visibleChange"],setup(t,{expose:o,emit:n}){const r=t,i=n,l=e.ref(!0),a=e.ref(null),{t:s}=te.useI18n(),c={datetimerange:"YYYY-MM-DD HH:mm:ss",daterange:"YYYY-MM-DD",month:"YYYY-MM"},y=e.computed(()=>l.value?s("guan-bi"):s("zhan-kai"));function p(){i("confirm")}function C(_){_.option.onClear&&_.option.onClear(),i("confirm")}function b(){i("reset")}function g(){i("confirm")}function h(){return Te(r.form.items)}const d=ae.cloneDeep(r.form.items);function w(){r.form.items.forEach(_=>{const S=d.find(x=>x.key==_.key);S&&(_.value=S.value)})}return o({getPrm:h,reset:w}),(_,S)=>{const x=e.resolveComponent("el-input"),E=e.resolveComponent("el-date-picker"),B=e.resolveComponent("el-form-item"),j=e.resolveComponent("el-form"),F=e.resolveComponent("el-link"),M=e.resolveComponent("el-button");return e.openBlock(),e.createElementBlock("div",{class:"searchBar-container mgt10 mgb10",onKeydown:e.withKeys(p,["enter"])},[e.createElementVNode("div",{class:"searchBar",style:e.normalizeStyle({height:l.value?"auto":"32px"})},[e.createVNode(j,{inline:"",model:t.form.data},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.form.items.filter(T=>!T.hidden),T=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:T.key},[T.type=="br"?(e.openBlock(),e.createElementBlock("br",Nt)):(e.openBlock(),e.createBlock(B,{key:1,label:T.name},{default:e.withCtx(()=>{var W,k;return[T.type==="input"?(e.openBlock(),e.createBlock(x,{key:0,modelValue:T.value,"onUpdate:modelValue":$=>T.value=$,class:e.normalizeClass(((W=T.option)==null?void 0:W.class)||"w150"),placeholder:_.$t("qing-shu-ru"),clearable:""},null,8,["modelValue","onUpdate:modelValue","class","placeholder"])):T.type==="custom"?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(T.render),{key:1})):e.createCommentVNode("",!0),T.type==="select"?(e.openBlock(),e.createBlock(Re,e.mergeProps({key:2,class:((k=T.option)==null?void 0:k.class)||"w150",modelValue:T.value,"onUpdate:modelValue":$=>T.value=$},{ref_for:!0},T.option,{onChange:p,onClear:$=>C(T),placeholder:_.$t("qing-xuan-ze")}),null,16,["class","modelValue","onUpdate:modelValue","onClear","placeholder"])):e.createCommentVNode("",!0),T.type==="date"?(e.openBlock(),e.createBlock(E,e.mergeProps({key:3,class:{datetimerange:"w300",daterange:"w200"}[T.dateType]||"w100",modelValue:T.value,"onUpdate:modelValue":$=>T.value=$,"value-format":c[T.dateType]||"YYYY-MM-DD",type:T.dateType||"date",onFocus:$=>a.value=T,onChange:$=>g(),placeholder:_.$t("qing-xuan-ze"),"start-placeholder":_.$t("kai-shi-shi-jian"),"end-placeholder":_.$t("jie-shu-shi-jian")},{ref_for:!0},T.option),null,16,["class","modelValue","onUpdate:modelValue","value-format","type","onFocus","onChange","placeholder","start-placeholder","end-placeholder"])):e.createCommentVNode("",!0)]}),_:2},1032,["label"]))],64))),128))]),_:1},8,["model"])],4),e.createElementVNode("div",Ot,[e.createElementVNode("div",qt,[e.renderSlot(_.$slots,"table-header-left",{},void 0,!0)]),e.createElementVNode("div",Pt,[e.createVNode(F,{underline:"never",class:"mgr10",onClick:S[0]||(S[0]=()=>{i("visibleChange",!l.value),l.value=!l.value})},{default:e.withCtx(()=>[e.createVNode(Ee,{name:l.value?"ArrowUp":"ArrowDown"},null,8,["name"]),e.createTextVNode(" "+e.toDisplayString(y.value),1)]),_:1}),e.createVNode(M,{type:"primary",onClick:p},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_.$t("shai-xuan")),1)]),_:1}),e.createVNode(M,{type:"primary",onClick:b},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(_.$t("chong-zhi")),1)]),_:1}),e.renderSlot(_.$slots,"btn",{},void 0,!0)])])],32)}}},[["__scopeId","data-v-db6f71dd"]]),Ye={pageNoKey:"pageNo",pageSizeKey:"pageSize",totalKey:"total",defaultPageSize:10,pageSizes:[10,50,100,500],responseDataKeys:{rows:["rows","records","list"],total:["totalRows","total"]},showSearch:!1,showPage:!1,showShadow:!1,showCheckBox:!1,enableCellCopy:!0};let he={...Ye};function At(t){he={...he,...t,responseDataKeys:{...he.responseDataKeys,...t.responseDataKeys||{}}}}function He(){return he}function jt(){he={...Ye}}const ko="",Rt={class:"center"},Ut=fe({__name:"index",props:{id:{type:String,required:!1},loading:{type:Boolean,default:!1},immediate:{type:Boolean,default:!0},searchForm:{type:Object,default:()=>({items:[],selections:[]})},api:{type:Function},data:{type:Array},tableConfig:{type:Object,default:()=>({})}},setup(t,{expose:o}){const{t:n,locale:r}=te.useI18n(),i=De.useRoute(),l=He(),a=t,s=e.ref(!1),c=e.ref([]);a.searchForm.showSearch===void 0&&(a.searchForm.showSearch=l.showSearch),a.searchForm.showPage===void 0&&(a.searchForm.showPage=l.showPage),a.searchForm.showShadow===void 0&&(a.searchForm.showShadow=l.showShadow),a.searchForm.showCheckBox===void 0&&(a.searchForm.showCheckBox=l.showCheckBox),a.searchForm.enableCellCopy===void 0&&(a.searchForm.enableCellCopy=l.enableCellCopy),a.searchForm.selections||(a.searchForm.selections=[]);const y=e.computed(()=>{const f=i.path.replace(/\//g,"-").replace(/^-/,"")||"default-table";return a.id?`listPageId-${f}-${a.id}`:`listPageId-${f}`}),p=ae.cloneDeep(a.searchForm.items),C=a.searchForm.pageNoKey||l.pageNoKey,b=a.searchForm.pageSizeKey||l.pageSizeKey,g=e.reactive({[C]:1,[b]:a.searchForm.defaultPageSize||l.defaultPageSize,total:0}),h=e.ref(null),d=e.ref(null),w=e.ref(450),_=ae.debounce(()=>{e.nextTick(()=>{if(!d.value)return;const u=d.value.getBoundingClientRect(),I=window.innerHeight,v=u.top,P=100,Y=I-v-P,z=200;w.value=Math.max(Y,z)})},100),S=()=>{_()},x=()=>{if(!a.searchForm.enableCellCopy&&!l.enableCellCopy)return!1;const f=h.value;if(!f||!f.$el)return!1;const u=f.$el;return u.classList.add("cell-copy-enabled"),u.setAttribute("tabindex","-1"),u.removeEventListener("mousedown",ie),u.removeEventListener("mousemove",D),u.removeEventListener("mouseup",se),u.removeEventListener("keydown",Le),u.addEventListener("mousedown",ie),u.addEventListener("mousemove",D),u.addEventListener("mouseup",se),u.addEventListener("keydown",Le),!0};e.onMounted(()=>{_(),window.addEventListener("resize",S),(a.searchForm.enableCellCopy||l.enableCellCopy)&&(document.addEventListener("mouseup",et),document.addEventListener("mousedown",tt),setTimeout(()=>{x()},500))}),e.onUpdated(()=>{(a.searchForm.enableCellCopy||l.enableCellCopy)&&setTimeout(()=>{x()},500)}),e.onUnmounted(()=>{if(window.removeEventListener("resize",S),a.searchForm.enableCellCopy||l.enableCellCopy){document.removeEventListener("mouseup",et),document.removeEventListener("mousedown",tt);const f=h.value;if(f&&f.$el){const u=f.$el;u.removeEventListener("mousedown",ie),u.removeEventListener("mousemove",D),u.removeEventListener("mouseup",se),u.removeEventListener("keydown",Le)}}});const E=e.computed(()=>q.value.height||w.value);let B;async function j(f){const{dataFormat:u}=a.tableConfig;f[C]!=1&&(f.nextSearchAfter=B),s.value=!0;const{code:I,data:v={}}=await a.api(f).finally(()=>{s.value=!1,a.searchForm.selections=[]});if(I==200){let P=[];for(const z of l.responseDataKeys.rows)if(v[z]){P=v[z];break}let Y=0;for(const z of l.responseDataKeys.total)if(v[z]!==void 0){Y=v[z];break}c.value=u?u(P):P,g.total=Y,B=v.nextSearchAfter,(a.searchForm.enableCellCopy||l.enableCellCopy)&&e.nextTick(()=>{setTimeout(()=>{x()},100)})}}function F(f={}){const{searchData:u=()=>({})}=a.tableConfig,I=u();j({...g,...Te(a.searchForm.items),...f,...I})}function M(){const{reset:f}=a.tableConfig;f&&f(),a.searchForm.items.forEach(u=>{const I=p.find(v=>ae.isArray(u.key)&&ae.isArray(v.key)?u.key.join(",")==v.key.join(","):v.key==u.key);I&&(u.value=I.value)}),F()}a.api&&a.immediate&&F();function T(){return{...g,...Te(a.searchForm.items)}}const W=()=>{const f=h.value;f&&f.clearSort()},k=e.reactive({storage:!0}),$=e.reactive({drag:!0,resizable:!0,maxFixedSize:0}),q=e.computed(()=>{const{customConfig:f,columnConfig:u,...I}=a.tableConfig;return{headerAlign:"left",align:"center",customConfig:{...k,...f},columnConfig:{...$,...u},"virtual-x-config":{enabled:!1,scrollToLeftOnChange:!1},"virtual-y-config":{enabled:!0,gt:100},...I}}),V=e.reactive({isSelecting:!1,startCell:null,endCell:null,selectedCells:[]}),G=f=>{const u=f.closest(".vxe-body--column");if(!u||u.classList.contains("col--checkbox")||u.classList.contains("col--seq"))return null;const I=u.closest(".vxe-body--row");if(!I)return null;const v=h.value;if(!v)return null;let P=-1;const Y=I.getAttribute("data-rowid");if(Y!=null)P=parseInt(Y,10);else{const N=I.parentElement;P=Array.from(N.querySelectorAll(".vxe-body--row")).indexOf(I)}if(P<0)return null;let z=-1;const ee=u.getAttribute("data-colid");if(ee&&(z=v.getColumns().findIndex(L=>L.id===ee)),z<0){const L=Array.from(I.querySelectorAll(".vxe-body--column")).indexOf(u),R=!!u.closest(".vxe-table--fixed-left-wrapper"),H=!!u.closest(".vxe-table--fixed-right-wrapper"),A=v.getColumns();if(R){const K=A.filter(U=>U.fixed==="left");L<K.length&&(z=A.indexOf(K[L]))}else if(H){const K=A.filter(U=>U.fixed==="right");L<K.length&&(z=A.indexOf(K[L]))}else{const K=a.searchForm.showCheckBox?1:0;z=A.filter(J=>J.fixed==="left").length+L-K}}return z<0?null:{rowIndex:P,colIndex:z,cell:u}},ie=f=>{const u=G(f.target);if(!u){le();return}V.isSelecting=!0,V.startCell={rowIndex:u.rowIndex,colIndex:u.colIndex},V.endCell={...V.startCell},ge(),_e()},D=f=>{if(!V.isSelecting)return;const u=G(f.target);u&&(V.endCell={rowIndex:u.rowIndex,colIndex:u.colIndex},ge(),_e())},se=()=>{V.isSelecting=!1},le=()=>{V.selectedCells=[],V.startCell=null,V.endCell=null;const f=h.value;if(!f)return;f.$el.querySelectorAll(".cell-selected, .cell-border-top, .cell-border-right, .cell-border-bottom, .cell-border-left").forEach(I=>{I.classList.remove("cell-selected","cell-border-top","cell-border-right","cell-border-bottom","cell-border-left")})},ge=()=>{if(!V.startCell||!V.endCell){V.selectedCells=[];return}const f=V.startCell.rowIndex,u=V.endCell.rowIndex,I=V.startCell.colIndex,v=V.endCell.colIndex,P=Math.min(f,u),Y=Math.max(f,u),z=Math.min(I,v),ee=Math.max(I,v);V.selectedCells=[];for(let N=P;N<=Y;N++)for(let L=z;L<=ee;L++)V.selectedCells.push({rowIndex:N,colIndex:L})},_e=()=>{e.nextTick(()=>{const f=h.value;if(!f)return;const u=f.$el;if(u.querySelectorAll(".cell-selected, .cell-border-top, .cell-border-right, .cell-border-bottom, .cell-border-left").forEach(R=>{R.classList.remove("cell-selected","cell-border-top","cell-border-right","cell-border-bottom","cell-border-left")}),V.selectedCells.length===0)return;const I=f.getColumns(),v=V.selectedCells.map(R=>R.rowIndex),P=V.selectedCells.map(R=>R.colIndex),Y=Math.min(...v),z=Math.max(...v),ee=Math.min(...P),N=Math.max(...P),L=[u.querySelector(".vxe-table--body-wrapper tbody"),u.querySelector(".vxe-table--fixed-left-wrapper tbody"),u.querySelector(".vxe-table--fixed-right-wrapper tbody")].filter(Boolean);V.selectedCells.forEach(({rowIndex:R,colIndex:H})=>{const A=I[H];if(!A)return;const K=A.fixed==="left",U=A.fixed==="right";for(const J of L){const pe=J.querySelectorAll(".vxe-body--row")[R];if(!pe)continue;const ce=Array.from(pe.querySelectorAll(".vxe-body--column"));let O=null;if(K&&J.closest(".vxe-table--fixed-left-wrapper")){const X=I.filter(Q=>Q.fixed==="left").indexOf(A);O=ce[X]}else if(U&&J.closest(".vxe-table--fixed-right-wrapper")){const X=I.filter(Q=>Q.fixed==="right").indexOf(A);O=ce[X]}else if(!K&&!U&&J.closest(".vxe-table--body-wrapper")){const de=a.searchForm.showCheckBox?1:0,X=I.filter(Fe=>Fe.fixed==="left").length,Q=H-X;O=ce[Q+de]}if(O&&!O.classList.contains("col--checkbox")&&!O.classList.contains("col--seq")){O.classList.add("cell-selected"),R===Y&&O.classList.add("cell-border-top"),R===z&&O.classList.add("cell-border-bottom"),H===ee&&O.classList.add("cell-border-left"),H===N&&O.classList.add("cell-border-right");break}}})})},so=async()=>{if(V.selectedCells.length===0)return;const f=h.value;if(!f)return;const u=f.$el,I=f.getColumns(),v=[...new Set(V.selectedCells.map(N=>N.rowIndex))].sort((N,L)=>N-L),P=[...new Set(V.selectedCells.map(N=>N.colIndex))].sort((N,L)=>N-L),Y=[u.querySelector(".vxe-table--body-wrapper tbody"),u.querySelector(".vxe-table--fixed-left-wrapper tbody"),u.querySelector(".vxe-table--fixed-right-wrapper tbody")].filter(Boolean),z=[];v.forEach(N=>{const L=[];P.forEach(R=>{const H=I[R];if(!H){L.push("");return}const A=H.fixed==="left",K=H.fixed==="right";let U="";for(const J of Y){const pe=J.querySelectorAll(".vxe-body--row")[N];if(!pe)continue;const ce=Array.from(pe.querySelectorAll(".vxe-body--column"));let O=null;if(A&&J.closest(".vxe-table--fixed-left-wrapper")){const X=I.filter(Q=>Q.fixed==="left").indexOf(H);O=ce[X]}else if(K&&J.closest(".vxe-table--fixed-right-wrapper")){const X=I.filter(Q=>Q.fixed==="right").indexOf(H);O=ce[X]}else if(!A&&!K&&J.closest(".vxe-table--body-wrapper")){const de=a.searchForm.showCheckBox?1:0,X=I.filter(Fe=>Fe.fixed==="left").length,Q=R-X;O=ce[Q+de]}if(O&&!O.classList.contains("col--checkbox")&&!O.classList.contains("col--seq")){U=O.innerText||O.textContent||"",U=U.trim(),U=U.replace(/\n/g," ").replace(/\s+/g," ");break}}L.push(U)}),z.push(L.join(" "))});const ee=z.join(`
|
|
2
|
-
`);try{await navigator.clipboard.writeText(ee)}catch(N){console.error("复制失败:",N)}},Le=f=>{!a.searchForm.enableCellCopy&&!l.enableCellCopy||((f.ctrlKey||f.metaKey)&&f.key==="c"?V.selectedCells.length>0&&(f.preventDefault(),f.stopPropagation(),so()):f.key==="Escape"&&le())},et=()=>{V.isSelecting=!1},tt=f=>{const u=h.value;if(!u||!u.$el)return;u.$el.contains(f.target)||le()},co=f=>{g[C]=f,F()},uo=f=>{g[b]=f,g[C]=1,F()};function ot(){const f=h.value.getCheckboxRecords();a.searchForm.selections=f}const nt=f=>{const u=h.value;if(u){u.toggleCheckboxRow(f);const I=h.value.getCheckboxRecords();a.searchForm.selections=I}};return o({tableRef:h,getList:F,getPrm:T,clearSort:W,calculateTableHeight:_}),(f,u)=>{var N;const I=e.resolveComponent("el-button"),v=e.resolveComponent("el-checkbox"),P=e.resolveComponent("el-text"),Y=e.resolveComponent("vxe-column"),z=e.resolveComponent("VxeTable"),ee=e.resolveComponent("el-pagination");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({box:t.searchForm.showShadow})},[t.searchForm.showSearch?(e.openBlock(),e.createBlock(Ue,{key:0,form:t.searchForm,onReset:M,onConfirm:u[1]||(u[1]=L=>F()),onVisibleChange:e.unref(_)},{btn:e.withCtx(()=>[u[3]||(u[3]=e.createElementVNode("span",{class:"mgr10"},null,-1)),e.renderSlot(f.$slots,"search-bar-btn",{},void 0,!0),e.createVNode(I,{class:"mgl10",round:"",onClick:u[0]||(u[0]=L=>h.value.openCustom())},{default:e.withCtx(()=>[e.createVNode(Ee,{name:"Tools"})]),_:1})]),_:3},8,["form","onVisibleChange"])):e.createCommentVNode("",!0),e.renderSlot(f.$slots,"table-header-left",{},void 0,!0),e.createElementVNode("div",{ref_key:"tableContentRef",ref:d},[e.createVNode(z,e.mergeProps({id:y.value,ref_key:"tableRef",ref:h,loading:t.loading||s.value,data:t.api?c.value:t.data,border:""},q.value,{height:E.value,onCheckboxChange:ot,onCheckboxAll:ot,onSortChange:(N=q.value["sort-config"])==null?void 0:N.sortChange}),{default:e.withCtx(()=>[t.searchForm.showCheckBox==null||t.searchForm.showCheckBox?(e.openBlock(),e.createBlock(Y,{key:0,type:"checkbox",width:e.unref(r)=="zh_cn"?80:150,title:f.$t("xu-hao"),fixed:"left"},{checkbox:e.withCtx(({rowIndex:L,row:R,checked:H,disabled:A,indeterminate:K})=>[e.createElementVNode("div",Rt,[H?(e.openBlock(),e.createBlock(v,{key:0,checked:!0,disabled:A,size:"default",onClick:e.withModifiers(U=>!A&&nt(R),["stop"])},null,8,["disabled","onClick"])):(e.openBlock(),e.createBlock(v,{key:1,disabled:A,checked:!1,size:"default",onClick:e.withModifiers(U=>!A&&nt(R),["stop"])},null,8,["disabled","onClick"])),e.createVNode(P,{type:"info",class:"mgl5"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(L+1),1)]),_:2},1024)])]),_:1},8,["width","title"])):e.createCommentVNode("",!0),e.renderSlot(f.$slots,"default",{},void 0,!0)]),_:3},16,["id","loading","data","height","onSortChange"])],512),t.searchForm.showPage?(e.openBlock(),e.createBlock(ee,{key:1,"current-page":g[e.unref(C)],"onUpdate:currentPage":u[2]||(u[2]=L=>g[e.unref(C)]=L),class:"myPagination mgt10",background:"",layout:"total, sizes, prev, pager, next",total:g.total,"page-size":g[e.unref(b)],"page-sizes":t.searchForm.pageSizes||e.unref(l).pageSizes,onCurrentChange:co,onSizeChange:uo},null,8,["current-page","total","page-size","page-sizes"])):e.createCommentVNode("",!0)],2)}}},[["__scopeId","data-v-c022c16d"]]),Yt={__name:"index",props:{sheetsConfig:{type:Object,required:!0},fileName:{type:String,required:!0}},setup(t){const o=t;function n(){je(o.fileName,o.sheetsConfig)}return(r,i)=>{const l=e.resolveComponent("el-link");return e.openBlock(),e.createBlock(l,e.mergeProps({type:"primary",underline:"never"},r.$attrs,{onClick:n}),{default:e.withCtx(()=>[e.renderSlot(r.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(r.$t("xia-zai-dao-ru-mo-ban")),1)])]),_:3},16)}}},Ht={mounted(t,o){o.value&&Ke(t)},updated(t,o){o.value?Ke(t):We(t)},beforeUnmount(t){We(t)}};async function Ke(t){await b();const o=t.querySelector(".el-dialog");if(!o)return;const n=t.querySelector(".el-dialog__header"),r=t.querySelector(".el-overlay");r.style.cssText+="overflow: hidden;",n.style.cursor="move";let i=!1,l={window:{width:0,height:0},dialog:{x:0,y:0,width:0,height:0,marginTop:""},mouse:{x:0,y:0},drag:{x:0,y:0}};n.addEventListener("mousedown",c),document.addEventListener("mousemove",y),document.addEventListener("mouseup",p),window.addEventListener("resize",C);function a(){l.mouse.x-l.drag.x>=l.dialog.x&&(l.drag.x=l.mouse.x-l.dialog.x),l.drag.x-l.mouse.x>=l.window.width-(l.dialog.x+l.dialog.width)&&(l.drag.x=l.mouse.x+l.window.width-l.dialog.x-l.dialog.width),l.mouse.y-l.drag.y>=l.dialog.y&&(l.drag.y=l.mouse.y-l.dialog.y),l.drag.y-l.mouse.y>=l.window.height-(l.dialog.y+l.dialog.height)&&(l.drag.y=l.mouse.y+l.window.height-l.dialog.y-l.dialog.height),s()}function s(){let g=l.drag.y-l.mouse.y+l.dialog.y,h=l.drag.x-l.mouse.x+l.dialog.x;o.style.cssText+=`position: absolute; top: calc(${g}px - ${l.dialog.marginTop}); left: ${h}px;`}function c(g){g.button===0&&(l.window={width:document.body.clientWidth,height:document.body.clientHeight},l.dialog=o.getBoundingClientRect(),l.dialog.marginTop=window.getComputedStyle(o).marginTop,l.mouse={x:g.clientX,y:g.clientY},i=!0)}function y(g){i&&(l.drag={x:g.clientX,y:g.clientY},r.style.userSelect="none",a())}function p(g){r.style.userSelect="auto",i=!1}function C(g){}function b(){return new Promise((g,h)=>{setTimeout(()=>{g()},500)})}t.__mouseDown__=c,t.__mouseUp__=p,t.__mouseMove__=y,t.__sizeChange__=C}function We(t){document.removeEventListener("mousedown",t.__mouseDown__),document.removeEventListener("mousemove",t.__mouseMove__),document.removeEventListener("mouseup",t.__mouseUp__),window.removeEventListener("resize",t.__sizeChange__)}const So="",Kt={key:0,class:"drawer-btn"},Wt={key:1},Zt={__name:"index",props:{layer:{type:Object,default:()=>({show:!1,type:"layer",title:"",showButton:!1}),required:!0},loading:{type:Boolean,default:!1}},emits:["confirm"],setup(t,{emit:o}){const n=t,r=o,{t:i}=te.useI18n(),l=ae.debounce(()=>{r("confirm")},300);async function a(){n.layer.type=="drawer"?n.layer.onClose?n.layer.onClose():n.layer.closeConfirm?await Z.ElMessageBox.confirm(i("que-ding-guan-bi-ma"),{confirmButtonText:i("que-ding"),cancelButtonText:i("qu-xiao"),type:"warning"}).catch(()=>{})=="confirm"&&(n.layer.show=!1):n.layer.show=!1:n.layer.show=!1}return(s,c)=>{const y=e.resolveComponent("el-button"),p=e.resolveComponent("el-drawer"),C=e.resolveComponent("el-dialog");return t.layer.type?(e.openBlock(),e.createBlock(p,{key:0,modelValue:t.layer.show,"onUpdate:modelValue":c[0]||(c[0]=b=>t.layer.show=b),size:t.layer.width||"100%",title:t.layer.title,direction:"rtl","append-to-body":"","before-close":a,class:"drawer-content"},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default"),c[2]||(c[2]=e.createElementVNode("p",{class:"mgt50"},null,-1)),t.layer.showButton?(e.openBlock(),e.createElementBlock("div",Kt,[e.renderSlot(s.$slots,"btn",{},()=>[e.createVNode(y,{onClick:a},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.$t("qu-xiao")),1)]),_:1}),e.createVNode(y,{type:"primary",loading:t.loading,onClick:e.unref(l)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.$t("ti-jiao")),1)]),_:1},8,["loading","onClick"])])])):e.createCommentVNode("",!0)]),_:3},8,["modelValue","size","title"])):e.withDirectives((e.openBlock(),e.createElementBlock("div",Wt,[e.createVNode(C,{"close-on-click-modal":!1,modelValue:t.layer.show,"onUpdate:modelValue":c[1]||(c[1]=b=>t.layer.show=b),title:t.layer.title,width:t.layer.width||500,center:""},e.createSlots({default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:2},[t.layer.showButton?{name:"footer",fn:e.withCtx(()=>[e.renderSlot(s.$slots,"btn",{},()=>[e.createVNode(y,{onClick:a},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.$t("qu-xiao")),1)]),_:1}),e.createVNode(y,{type:"primary",onClick:e.unref(l)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.$t("ti-jiao")),1)]),_:1},8,["onClick"])])]),key:"0"}:void 0]),1032,["modelValue","title","width"])])),[[e.unref(Ht),t.layer.show]])}}};function Gt(t,o={}){const n=re(),r={inForm:!0,required:!0,...o},i={phone:/^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/,password:/(?=.*\d)(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,12}/,email:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/}[t],{inForm:l,value:a,required:s,msg:c=n("validate.invalidInput")}=r;return l?function(y,p,C){if(s){i.test(p)?C():C(new Error(c));return}p&&!i.test(p)?C(new Error(c)):C()}:i.test(a)}class Jt{constructor(o={}){this.config={clientCode:o.clientCode||"one-portal",casServerUrl:`https://one-portal${o.isTest?"-test":""}.joy-group.com/api`,casPortalUrl:`https://one-portal${o.isTest?"-test":""}.joy-group.com`,serviceUrl:o.serviceUrl||window.location.origin+"/cas/callback",tokenKey:o.tokenKey||"one_portal_token",userKey:o.userKey||"one_portal_user",debug:o.debug||!1,autoLogin:o.autoLogin!==!1,loginCallback:o.loginCallback||null,logoutCallback:o.logoutCallback||null,errorCallback:o.errorCallback||null},this.token=null,this.user=null,this.init()}init(){this.log("OnePortal CAS SDK 初始化中..."),this.loadFromStorage();const n=new URLSearchParams(window.location.search).get("ticket");this.isLoggedIn()&&this.config.loginCallback?this.config.loginCallback(this.user,this.token):n?(this.log("检测到ST票据:",n),this.validateTicket(n)):this.config.autoLogin&&!this.isLoggedIn()&&(this.log("用户未登录,准备跳转到CAS登录页面"),this.login())}loadFromStorage(){try{this.token=localStorage.getItem(this.config.tokenKey);const o=localStorage.getItem(this.config.userKey);o&&(this.user=JSON.parse(o)),this.log("从本地存储加载数据:",{token:!!this.token,user:!!this.user})}catch(o){this.log("加载本地存储数据失败:",o)}}saveToStorage(){try{this.token&&localStorage.setItem(this.config.tokenKey,this.token),this.user&&localStorage.setItem(this.config.userKey,JSON.stringify(this.user)),this.log("数据已保存到本地存储")}catch(o){this.log("保存到本地存储失败:",o)}}clearStorage(){try{localStorage.removeItem(this.config.tokenKey),localStorage.removeItem(this.config.userKey),this.log("本地存储已清除")}catch(o){this.log("清除本地存储失败:",o)}}isLoggedIn(){return!!(this.token&&this.user)}getUser(){return this.user}getToken(){return this.token}login(){const o=`${this.config.casPortalUrl}?appCode=${this.config.clientCode}&redirectUrl=${encodeURIComponent(this.config.serviceUrl)}`;this.log("跳转到CAS登录页面:",o),window.location.href=o}async validateTicket(o){try{this.log("验证ST票据:",o);const n=await fetch(`${this.config.casServerUrl}/auth/validateST?ticket=${o}`,{method:"GET",headers:{"Content-Type":"application/json"}});if(!n.ok)throw new Error(`HTTP ${n.status}: ${n.statusText}`);const r=await n.json();if(r.success&&r.data)return this.token=r.data.token,this.user=r.data.user,this.saveToStorage(),this.clearTicketFromUrl(),this.log("ST票据验证成功,用户登录成功:",this.user),this.config.loginCallback&&this.config.loginCallback(this.user,this.token),!0;throw new Error(r.message||"ST票据验证失败")}catch(n){return this.log("ST票据验证失败:",n),this.handleError(n),!1}}clearTicketFromUrl(){const o=new URL(window.location);o.searchParams.delete("ticket"),window.history.replaceState({},document.title,o.toString())}async logout(o=!0){try{if(this.log("用户登出"),this.token)try{await fetch(`${this.config.casServerUrl}/auth/logout`,{method:"POST",headers:{AppId:this.config.clientCode,Authorization:`Bearer ${this.token}`,"Content-Type":"application/json"}})}catch(n){this.log("调用服务端登出接口失败:",n)}this.token=null,this.user=null,this.clearStorage(),this.config.logoutCallback&&this.config.logoutCallback(),o&&this.login()}catch(n){this.log("登出失败:",n),this.handleError(n)}}async request(o,n={}){const r={headers:{"Content-Type":"application/json",...n.headers},...n};r.headers.appId=this.config.clientCode,this.token&&(r.headers.Authorization=`Bearer ${this.token}`);try{const i=await fetch(o,r);return i.status===401?(this.log("Token已过期,需要重新登录"),this.logout(),null):i}catch(i){throw this.log("请求失败:",i),i}}async fetchUserInfo(){try{const o=await this.request(`${this.config.casServerUrl}/auth/user`);if(o&&o.ok){const n=await o.json();if(n.success&&n.data)return this.user=n.data,this.saveToStorage(),this.user}return null}catch(o){return this.log("获取用户信息失败:",o),null}}async refreshToken(){this.log("Token刷新功能暂未实现")}handleError(o){this.log("发生错误:",o),this.config.errorCallback&&this.config.errorCallback(o)}log(...o){this.config.debug&&console.log("[OnePortal CAS SDK]",...o)}checkLoginStatus(){return!this.isLoggedIn()&&this.config.autoLogin?(this.login(),!1):this.isLoggedIn()}setConfig(o,n){this.config[o]=n}getConfig(o){return this.config[o]}}function xe(t,o=2,n=".",r=","){(t==null||t==="")&&(t=0);const i=Number(t);isNaN(i)?t=0:t=i,o=Math.max(0,Math.floor(o));const a=t.toFixed(o).split(".");let s=a[0];const c=a[1],y=s.startsWith("-");return y&&(s=s.slice(1)),s=s.replace(/\B(?=(\d{3})+(?!\d))/g,r),y&&(s="-"+s),o>0?s+n+c:s}function Ze(t,o=2){return xe(t,o)}function Ge(t,o=2){(t==null||t==="")&&(t=0);const n=Number(t);isNaN(n)?t=0:t=n;const r=t*100;return xe(r,o)+"%"}function Xt(t,o={}){const r=Object.assign({manual:!1,log:!1,params:null,format:null},o),{manual:i,log:l,params:a={},cb:s,format:c}=r,y=e.ref([]),p=e.ref(!1),C=b=>{const g=b||a;p.value=!0,t(g).then(h=>{const{code:d,data:w,msg:_}=h;if(s){const{records:S,rows:x}=w||{},E=S||x?S||x:w;y.value=Ie(E,c),s(h)}if(w){if(w.records!=null||w.rows!=null){const{records:S,rows:x,total:E=0}=w||{};g&&g.total!=null&&(a.total=parseInt(E)),y.value=Ie(S||x||[],c)}else y.value=Ie(w,c);l&&console.log("useRequest-res",y.value)}}).catch(h=>{s&&(console.log("useRequestErr",h),s({code:500}))}).finally(()=>{p.value=!1})};return i||C(),[p,y,C]}function Qt(t){const o=e.ref(t),n=e.ref(""),r=e.ref("");return e.watch(o,i=>{const l=i||["",""];n.value=l[0],r.value=l[1]}),[o,n,r]}function eo(t){return Object.prototype.toString.call(t).slice(8,-1).toLowerCase()}function Ie(t,o){if(!o)return t;if(t instanceof Array)return t.map(r=>{let i={};return o.forEach(l=>i[l]=r[l]),i});let n={};return o.forEach(r=>n[r]=t[r]),n}function to(t,o=[]){const{locale:n}=te.useI18n(),r=e.ref(t());return e.watch([n,...o],()=>{r.value=t()},{immediate:!0}),r}function oo(t,o="zh_cn",n="en_us"){if(!t)return"-";const r={en_us:n,zh_cn:o},l=we().global.locale.value;return t[r[l]]||t[o]||"-"}function no(t,o){let n=oe.mapState;return typeof t=="string"&&t.length>0&&(n=oe.createNamespacedHelpers(t).mapState),Je(o,n)}function lo(t,o){let n=oe.mapGetters;return typeof t=="string"&&t.length>0&&(n=oe.createNamespacedHelpers(t).mapGetters),Je(o,n)}function ao(t,o){let n=oe.mapActions;return typeof t=="string"&&t.length>0&&(n=oe.createNamespacedHelpers(t).mapActions),ro(o,n)}function Je(t,o){const n=oe.useStore(),r=o(t),i={};return Object.keys(r).forEach(l=>{const a=r[l].bind({$store:n});i[l]=e.computed(a)}),i}function ro(t,o){const n=oe.useStore(),r=o(t),i={};return Object.keys(r).forEach(l=>{i[l]=r[l].bind({$store:n})}),i}function ke(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}function Xe(){ne.VxeUI.formats.add("formatNumber",{cellFormatMethod({cellValue:t},o=2){return xe(t,o)}}),ne.VxeUI.formats.add("formatMoney",{cellFormatMethod({cellValue:t},o=2){return Ze(t,o)}}),ne.VxeUI.formats.add("formatPercent",{cellFormatMethod({cellValue:t},o=2){return Ge(t,o)}})}function Qe(){ne.VxeUI.renderer.add("Enum",{renderTableDefault(t,o){let n;if([null,void 0].includes(o.row[o.column.field]))return"-";const r=o.row[o.column.field];if(t.type=="tag"){let i;return e.createVNode(e.resolveComponent("el-text"),{type:t.enum.getTag(r)},ke(i=t.enum.getName(r))?i:{default:()=>[i]})}return e.createVNode(e.resolveComponent("el-text"),null,ke(n=t.enum.getName(r))?n:{default:()=>[n]})}}),ne.VxeUI.renderer.add("InputNumber",{renderTableDefault(t,o){return e.createVNode(Z.ElInputNumber,e.mergeProps({modelValue:o.row[o.column.field],"onUpdate:modelValue":n=>o.row[o.column.field]=n},t.props,{"step-strictly":!0,"value-on-clear":0}),null)}}),ne.VxeUI.renderer.add("TrueFalse",{renderTableDefault(t,o){const{locale:n}=te.useI18n();let r=n.value=="zh_cn";return e.createVNode(Z.ElText,{type:o.row[o.column.field]?"success":"danger"},{default:()=>[o.row[o.column.field]?r?"是":"YES":r?"否":"NO"]})}}),ne.VxeUI.renderer.add("I18n",{renderTableDefault(t,o){const{locale:n}=te.useI18n();let r=n.value=="zh_cn"?o.column.field:t.fieldEn;return o.row[r]||o.row[o.column.field]}}),ne.VxeUI.renderer.add("Link",{renderTableDefault(t,o){let n=o.column.field;const r=De.useRouter(),{multiple:i,to:l,openType:a="system"}=t,s=o.row[n];function c(y,p){a=="blank"?window.open(y):r.push({path:y,query:{[n]:p}})}if(i){const y=(s==null?void 0:s.split(","))||[];return y.map((p,C)=>e.createVNode("span",null,[e.createVNode(Z.ElLink,{underline:"never",type:"primary",onclick:()=>c(a=="stystem"?l:p,p)},ke(p)?p:{default:()=>[p]}),C<y.length-1?",":""]))}return e.createVNode(Z.ElLink,{underline:"never",type:"primary",onclick:()=>c(a=="stystem"?l:s,s)},ke(s)?s:{default:()=>[s]})}})}function io(){Xe(),Qe()}m.CmpDictionary=Re,m.CmpIcon=Ee,m.ConfrimButton=Dt,m.DownExcelTemp=Yt,m.ImportButton=zt,m.LayOutForm=lt,m.Layer=Zt,m.ListPage=Ut,m.OnePortalCasSDK=Jt,m.SearchBar=Ue,m.StatusMap=Ve,m._toRaw=wt,m._typeOf=eo,m.arrToStatusMap=kt,m.arrayToTree=xt,m.checkFileSize=$t,m.creatValidator=Gt,m.createImportFields=Et,m.createListPageId=Vt,m.en_us=be,m.exportExcel=dt,m.exportExcelMuilti=je,m.formatMoney=Ze,m.formatNumber=xe,m.formatPercent=Ge,m.getI18n=we,m.getI18nT=re,m.getListPageConfig=He,m.getLocaleValue=oo,m.getValueBykey=Tt,m.importExcel=ct,m.importExcelMuilti=Ae,m.messages=Oe,m.registerVxeFormatters=Xe,m.registerVxePlugins=io,m.registerVxeRenderers=Qe,m.resetListPageConfig=jt,m.setListPageConfig=At,m.setupI18n=qe,m.sleep=bt,m.stringToArray=$e,m.stripHtmlTags=_t,m.unicode2Str=St,m.useActions=ao,m.useDatePicker=Qt,m.useGetters=lo,m.useI18nReState=to,m.useRequest=Xt,m.useState=no,m.zh_cn=Ce,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`element-plus`),require(`vue`),require(`file-saver`),require(`exceljs`),require(`dayjs`),require(`vue-i18n`),require(`lodash`),require(`vue-router`),require(`vuex`),require(`vxe-pc-ui`)):typeof define==`function`&&define.amd?define([`exports`,`element-plus`,`vue`,`file-saver`,`exceljs`,`dayjs`,`vue-i18n`,`lodash`,`vue-router`,`vuex`,`vxe-pc-ui`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.JoyAdminComponents={},e.ElementPlus,e.Vue,e.fileSaver,e.ExcelJS,e.dayjs,e.VueI18n,e._,e.VueRouter,e.Vuex,e.VxeUI))})(this,function(e,t,n,r,i,a,o,s,c,l,u){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var d=Object.create,f=Object.defineProperty,p=Object.getOwnPropertyDescriptor,m=Object.getOwnPropertyNames,h=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty,_=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),v=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=m(t),a=0,o=i.length,s;a<o;a++)s=i[a],!g.call(e,s)&&s!==n&&f(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=p(t,s))||r.enumerable});return e},y=(e,t,n)=>(n=e==null?{}:d(h(e)),v(t||!e||!e.__esModule?f(n,`default`,{value:e,enumerable:!0}):n,e));i=y(i),a=y(a);var b=(0,n.defineComponent)({name:`LayOutForm`,setup(e,{slots:r,attrs:i,emit:a}){let o=(0,n.ref)(null),s=()=>r.default?r.default().filter(e=>e.type!==Symbol.for(`v-cmt`)).map(e=>e.type===Symbol.for(`v-fgt`)?e.children:e).flat().map(e=>(0,n.h)(t.ElCol,{span:e.props?.span||e.props?.colProps?.span||24,...e.props?.colProps},{default:()=>e})):null;(0,n.onMounted)(()=>{a(`ref`,o.value)});function c(){return(0,n.h)(t.ElForm,{...i,ref:o},()=>(0,n.h)(t.ElRow,{gutter:i.gutter??20},{default:()=>s()}))}return c}}),x=_(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_utc=r()})(e,(function(){"use strict";var e=`minute`,t=/[+-]\d\d(?::?\d\d)?/g,n=/([+-]|\d\d)/g;return function(r,i,a){var o=i.prototype;a.utc=function(e){return new i({date:e,utc:!0,args:arguments})},o.utc=function(t){var n=a(this.toDate(),{locale:this.$L,utc:!0});return t?n.add(this.utcOffset(),e):n},o.local=function(){return a(this.toDate(),{locale:this.$L,utc:!1})};var s=o.parse;o.parse=function(e){e.utc&&(this.$u=!0),this.$utils().u(e.$offset)||(this.$offset=e.$offset),s.call(this,e)};var c=o.init;o.init=function(){if(this.$u){var e=this.$d;this.$y=e.getUTCFullYear(),this.$M=e.getUTCMonth(),this.$D=e.getUTCDate(),this.$W=e.getUTCDay(),this.$H=e.getUTCHours(),this.$m=e.getUTCMinutes(),this.$s=e.getUTCSeconds(),this.$ms=e.getUTCMilliseconds()}else c.call(this)};var l=o.utcOffset;o.utcOffset=function(r,i){var a=this.$utils().u;if(a(r))return this.$u?0:a(this.$offset)?l.call(this):this.$offset;if(typeof r==`string`&&(r=function(e){e===void 0&&(e=``);var r=e.match(t);if(!r)return null;var i=(``+r[0]).match(n)||[`-`,0,0],a=i[0],o=60*i[1]+ +i[2];return o===0?0:a===`+`?o:-o}(r),r===null))return this;var o=Math.abs(r)<=16?60*r:r;if(o===0)return this.utc(i);var s=this.clone();if(i)return s.$offset=o,s.$u=!1,s;var c=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();return(s=this.local().add(o+c,e)).$offset=o,s.$x.$localOffset=c,s};var u=o.format;o.format=function(e){var t=e||(this.$u?`YYYY-MM-DDTHH:mm:ss[Z]`:``);return u.call(this,t)},o.valueOf=function(){var e=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*e},o.isUTC=function(){return!!this.$u},o.toISOString=function(){return this.toDate().toISOString()},o.toString=function(){return this.toDate().toUTCString()};var d=o.toDate;o.toDate=function(e){return e===`s`&&this.$offset?a(this.format(`YYYY-MM-DD HH:mm:ss:SSS`)).toDate():d.call(this)};var f=o.diff;o.diff=function(e,t,n){if(e&&this.$u===e.$u)return f.call(this,e,t,n);var r=this.local(),i=a(e).local();return f.call(r,i,t,n)}}}))})),S=_(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_timezone=r()})(e,(function(){"use strict";var e={year:0,month:1,day:2,hour:3,minute:4,second:5},t={};return function(n,r,i){var a,o=function(e,n,r){r===void 0&&(r={});var i=new Date(e);return function(e,n){n===void 0&&(n={});var r=n.timeZoneName||`short`,i=e+`|`+r,a=t[i];return a||(a=new Intl.DateTimeFormat(`en-US`,{hour12:!1,timeZone:e,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZoneName:r}),t[i]=a),a}(n,r).formatToParts(i)},s=function(t,n){for(var r=o(t,n),a=[],s=0;s<r.length;s+=1){var c=r[s],l=c.type,u=c.value,d=e[l];d>=0&&(a[d]=parseInt(u,10))}var f=a[3],p=f===24?0:f,m=a[0]+`-`+a[1]+`-`+a[2]+` `+p+`:`+a[4]+`:`+a[5]+`:000`,h=+t;return(i.utc(m).valueOf()-(h-=h%1e3))/6e4},c=r.prototype;c.tz=function(e,t){e===void 0&&(e=a);var n,r=this.utcOffset(),o=this.toDate(),s=o.toLocaleString(`en-US`,{timeZone:e}),c=Math.round((o-new Date(s))/1e3/60),l=15*-Math.round(o.getTimezoneOffset()/15)-c;if(!Number(l))n=this.utcOffset(0,t);else if(n=i(s,{locale:this.$L}).$set(`millisecond`,this.$ms).utcOffset(l,!0),t){var u=n.utcOffset();n=n.add(r-u,`minute`)}return n.$x.$timezone=e,n},c.offsetName=function(e){var t=this.$x.$timezone||i.tz.guess(),n=o(this.valueOf(),t,{timeZoneName:e}).find((function(e){return e.type.toLowerCase()===`timezonename`}));return n&&n.value};var l=c.startOf;c.startOf=function(e,t){if(!this.$x||!this.$x.$timezone)return l.call(this,e,t);var n=i(this.format(`YYYY-MM-DD HH:mm:ss:SSS`),{locale:this.$L});return l.call(n,e,t).tz(this.$x.$timezone,!0)},i.tz=function(e,t,n){var r=n&&t,o=n||t||a,c=s(+i(),o);if(typeof e!=`string`)return i(e).tz(o);var l=function(e,t,n){var r=e-60*t*1e3,i=s(r,n);if(t===i)return[r,t];var a=s(r-=60*(i-t)*1e3,n);return i===a?[r,i]:[e-60*Math.min(i,a)*1e3,Math.max(i,a)]}(i.utc(e,r).valueOf(),c,o),u=l[0],d=l[1],f=i(u).utcOffset(d);return f.$x.$timezone=o,f},i.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},i.tz.setDefault=function(e){a=e}}}))})),C=y(x()),w=y(S()),T={"dao-ru":`导入`,"quan-xuan":`全选`,"xia-zai-dao-ru-mo-ban":`下载导入模板`,"xu-hao":`序号`,"qing-shu-ru":`请输入`,"qing-xuan-ze":`请选择`,"kai-shi-shi-jian":`开始时间`,"jie-shu-shi-jian":`结束时间`,"shai-xuan":`筛选`,"chong-zhi":`重置`,"guan-bi":`关闭`,"zhan-kai":`展开`,"qu-xiao":`取消`,"ti-jiao":`提交`,"que-ding":`确定`,"que-ding-guan-bi-ma":`确定关闭吗`,"xia-zai-dao-ru-mo-ban":`下载导入模板`,excel:{fieldsMappingRequired:`请输入列字段映射`,invalidInput:`非法输入`,invalidOption:`请输入有效选项!`,copyFailed:`复制失败`,sheetNameTooLong:`Sheet名称 "{0}" 长度超过31个字符,已自动截断为 "{1}"`},validate:{invalidInput:`请输入正确内容`},tools:{keysLengthError:`keys 长度必须大于2 默认前两位为 label value`}},E={"dao-ru":`Import`,"quan-xuan":`Select All`,"xia-zai-dao-ru-mo-ban":`Download Import Template`,"xu-hao":`No.`,"qing-shu-ru":`Please enter`,"qing-xuan-ze":`Please select`,"kai-shi-shi-jian":`Start Time`,"jie-shu-shi-jian":`End Time`,"shai-xuan":`Filter`,"chong-zhi":`Reset`,"guan-bi":`Collapse`,"zhan-kai":`Expand`,"qu-xiao":`Cancel`,"ti-jiao":`Submit`,"que-ding":`Confirm`,"que-ding-guan-bi-ma":`Are you sure to close?`,"xia-zai-dao-ru-mo-ban":`Download Import Template`,excel:{fieldsMappingRequired:`Please enter column field mapping`,invalidInput:`Invalid input`,invalidOption:`Please enter a valid option!`,copyFailed:`Copy failed`,sheetNameTooLong:`Sheet name "{0}" exceeds 31 characters, automatically truncated to "{1}"`},validate:{invalidInput:`Please enter valid content`},tools:{keysLengthError:`Keys length must be greater than 2, default first two are label and value`}},D={zh_cn:T,en_us:E},O=null;function k(e=null){if(e){let{global:t}=e;return t.messages.value.zh_cn?t.mergeLocaleMessage(`zh_cn`,T):t.setLocaleMessage(`zh_cn`,T),t.messages.value.en_us?t.mergeLocaleMessage(`en_us`,E):t.setLocaleMessage(`en_us`,E),O=e,e}return O||=(0,o.createI18n)({legacy:!1,locale:`zh_cn`,fallbackLocale:`zh_cn`,messages:D}),O}function A(){return O||k()}function j(){return A().global.t}a.default.extend(C.default),a.default.extend(w.default);async function ee(e,t){let{fields:n,range:r=1}=t;if(!n){let e=j();throw Error(e(`excel.fieldsMappingRequired`))}let a=new i.default.Workbook;await a.xlsx.load(e);let o={};return a.eachSheet(function(e,t){let i=[];e.eachRow(function(e,t){if(t>r){let t={},r=!0;Object.keys(n).forEach(i=>{let a=e.getCell(n[i]).value;t[i]=a,a&&(r=!1)}),r||i.push(t)}}),o[e._name]=i}),a=null,o}var M={columnWidth:30};async function N(e,t,n=[],i={}){if(!e||!t)return;let{columnStyle:a}=i,{columnWidth:o}=M;t.forEach(e=>{e.width=e.width?e.width:o});let{workbook:s,worksheet:c}=P();c.columns=t,c.addRows(n),a&&await F(s,c,a);try{let t=await s.xlsx.writeBuffer();(0,r.saveAs)(new File([t],e,{type:`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`}))}catch(e){console.log(e)}}function P(){let e=new i.default.Workbook;return e.creator=`distributor System`,e.lastModifiedBy=`distributor System`,e.created=new Date,e.modified=new Date,e.lastPrinted=new Date,{workbook:e,worksheet:e.addWorksheet(`Sheet1`)}}async function F(e,t,n){let r=Object.keys(n);for(let i of r){let r=n[i],{type:a}=r;switch(a){case`IMG`:await I(e,t,i,r);break}}}async function I(e,t,n,r){let i=t.getColumn(n),a=i.values;t.getColumn(n).width=20,t.eachRow((e,t)=>{t>1&&(e.height=40)});for(let n=0,r=a.length;n<r;n++){if(n<2)continue;let r=a[n];r&&(t.getCell(i.letter+n).value=``,await L(e,t,r,{width:100,height:50,col:i._number-1,row:n-1}))}}async function L(e,t,n,r){let{col:i,row:a,width:o,height:s}=r,{success:c,base64:l}=await R(n,.3);if(c){let n=e.addImage({base64:l,extension:`jpeg`});t.addImage(n,{tl:{col:i,row:a},ext:{width:o,height:s}})}}function R(e,t=1){let n=new Image;return n.setAttribute(`crossOrigin`,`anonymous`),n.crossOrigin=`anonymous`,n.src=e,new Promise((e,r)=>{n.onload=()=>{let r=document.createElement(`canvas`);r.width=n.width,r.height=n.height,r.getContext(`2d`).drawImage(n,0,0,r.width,r.height),e({success:!0,base64:r.toDataURL(`image/jpeg`,t)})},n.onerror=()=>{e({success:!1})}})}var z=`---`;async function B(e,t){let{fields:n,range:r=1}=t;if(!n){let e=j();throw Error(e(`excel.fieldsMappingRequired`))}let o=new i.default.Workbook;await o.xlsx.load(e);let s={};return o.eachSheet(function(e,t){if(e.state==`visible`){let t=[],i=n[e._name];if(i){let n=Object.values(i).some(e=>e.includes(`image`)),c={};n&&(e.getImages().forEach(e=>{let{tl:t}=e.range,n=o.model.media.find(t=>t.index===e.imageId);if(n){let e=n.buffer.toString(`base64`),r=`data:image/${n.extension};base64,${e}`,i=`${Math.ceil(t.row)}_${Math.ceil(t.col)}`;c[i]?c[i].push(r):c[i]=[r]}}),console.log(`withImages-imageMap`,c)),e.eachRow(function(e,o){if(o>r){let r={_excelRowNumber:o},s=!0;Object.keys(i).forEach(t=>{let[l,u]=i[t].split(z),d=e.getCell(l),f;f=u==`image`&&n?c[`${o}_${d._column._number}`]||``:d.result==null?d.value?.richText?d.value.richText.reduce((e,t)=>e+t.text,``):d.value?.hyperlink?d.value.text||d.value.hyperlink:d.type==4&&d.value?(0,a.default)(d.value).utc().format(`YYYY-MM-DD HH:mm:ss`):d.value:d.result,f&&u==`option`&&(f=f.split(z)[1]),r[t]=f,f&&(s=!1)}),s||t.push(r)}}),s[e._name]=t}}}),o=null,s}var te={date:`yyyy-mm-dd`,number:`0`,string:`@`};async function V(e,t){if(!e||t.length==0)return;let n=H(t);for(let e of n.worksheets){let{columnWidth:r}=M,i=t[e.name];if(!i)continue;let{tableHeader:a,tableData:o}=i;a.forEach(e=>{let{style:t={},required:n}=e,{font:r={}}=t;e.style={...t,font:{...r,color:{argb:n?`FFFF0000`:void 0}}}}),e.columns=a,e.addRows(o),a.forEach(t=>{let{header:i,key:a,width:o,option:s,numFmt:c,locked:l,optionFormater:u}=t,d=e.getColumn(a);if(d.numFmt=te[c]||c,d.width=o||r,d.protection={locked:l===!0},s){let t=n.addWorksheet(a);t.state=`hidden`,u||=e=>`${e.label}${z}${e.value}`,t.getColumn(1).values=s.map(u),Array(100).fill(``).forEach((t,n)=>{if(n>0){let t=j();e.getCell(`${d.letter}${n}`).dataValidation={type:`list`,formulae:[`${a}!$A$1:$A$${s.length}`],showErrorMessage:!0,error:t(`excel.invalidInput`),errorStyle:`stop`,errorMessage:t(`excel.invalidOption`)}}})}}),a.some(e=>e.locked)&&await e.protect(`6737187214`,{selectLockedCells:!0,selectUnlockedCells:!0})}try{let t=await n.xlsx.writeBuffer();(0,r.saveAs)(new File([t],e,{type:`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`}))}catch(e){console.log(e)}}function H(e){let t=j(),n=new i.default.Workbook;return n.creator=`distributor System`,n.lastModifiedBy=`distributor System`,n.created=new Date,n.modified=new Date,n.lastPrinted=new Date,Object.keys(e).sort((t,n)=>(e[t].sort??0)-(e[n].sort??0)).forEach(r=>{let i=r,a=!1;/[\\/:*?\[\]]/g.test(r)&&(r=r.replace(/[\\/:*?\[\]]/g,``),a=!0),r.length>31&&(r=r.substring(0,31).trim(),a=!0,console.warn(t(`excel.sheetNameTooLong`,[i,r]))),a&&(e[r]=e[i],delete e[i]),n.addWorksheet(r)}),n}function U(e){return e<26?String.fromCharCode(65+e):String.fromCharCode(65+Math.floor((e-26)/26))+String.fromCharCode(65+(e-26)%26)}function ne(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}function re(e){return JSON.parse(JSON.stringify(e))}function W(e){let t=[],n={},r=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);for(let i of e){n[i.id]={...i,children:r(n,i.id)?n[i.id].children:[]};let e=n[i.id];i.pid==-1?t.push(e):(r(n,i.pid)||(n[i.pid]={children:[]}),n[i.pid].children.push(e))}return t}function G(e,t=` `){return e?e.split(t).filter(e=>e.trim()):[]}var K=class{constructor(e,t=[`label`,`value`,`labelEn`]){this.list=e.map(e=>({...e,label:e[t[0]],labelEn:e[t[2]]??e[t[0]]??``,value:e[t[1]]})),this.map=new Map(this.list.map(e=>[e[t[1]],e]))}getName(e){if(!this.has(e))return`-`;let t=A().global.locale,{label:n,labelEn:r}=this.map.get(e);return(t.value==`zh_cn`?n:r)??n??`-`}getTag(e){if(!this.has(e))return`info`;let{tag:t=`info`}=this.map.get(e);return t}getItem(e){return this.has(e)?this.map.get(e):null}getColor(e){if(!this.has(e))return null;let{color:t}=this.map.get(e);return t}has(e){return this.map.has(e)}};function ie(e,t=[],n=`i18nName`){if(e.length==0)return new K([]);if(t.length<2){let e=j();throw Error(e(`tools.keysLengthError`))}return new K(e.map(e=>{let r={};return n&&(r.labelEn=e[n]),t.forEach((t,n)=>{n===0?r.label=e[t]:n===1?r.value=e[t]:r[t]=e[t]}),r}))}function ae(e){return e?e.replace(/<[^>]+>/g,``):``}function oe(e){return e?(e.includes(`\\\\u`)&&(e=e.replace(/\\/g,``)),e.replace(/\\u[\dA-F]{4}/gi,e=>String.fromCharCode(parseInt(e.replace(/\\u/g,``),16)))):``}function se(e,t=10){let n=1024*1024*t;return!(e.size>n)}function ce(e){return Array.from(10).fill(0).map((t,n)=>e+`_`+n)}function le(e){let t={};return e.map((e,n)=>{let{key:r,option:i,type:a,optionFormater:o}=e,s=U(n);i&&!o?t[r]=`${s}---option`:a===`image`?t[r]=`${s}---image`:t[r]=s}),t}function ue(e,t){return t.split(`.`).reduce((e,t)=>e&&e[t],e)}var q=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},de=[`onClick`],fe=q({__name:`index`,props:(0,n.mergeModels)({api:{type:Function},showCheckAll:{type:Boolean,default:!0},maxLimit:{type:Number,default:void 0},minLimit:{type:Number,default:void 0},optionClick:{type:Function,default:()=>{}},data:{type:Array},labelValue:{type:Object,default:()=>({label:`label`,labelEn:`labelEn`,value:`value`})},changeLocal:{type:Boolean,default:!1}},{modelValue:{},modelModifiers:{}}),emits:(0,n.mergeModels)([`success`,`change`,`changeAll`],[`update:modelValue`]),setup(e,{emit:t}){let r=e,i=(0,n.useAttrs)(),{t:a,locale:s}=(0,o.useI18n)(),c=(0,n.useModel)(e,`modelValue`),l=(0,n.computed)(()=>i[`value-key`]!=null),u=(0,n.ref)(``),d=(0,n.computed)(()=>{if(i.remote!==void 0)return r.data;let e=G(u.value),{data:t,labelValue:n}=r,a=t||m.value;if(e.length==0)return a;let{label:o,labelEn:c}=n,l=s.value==`en_us`?c||`i18nName`:o;return e.length==1?a.filter(t=>t[l].toLowerCase().includes(e[0].toLowerCase())):a.filter(t=>{let n=!1;return n=e.some(e=>t[l].toLowerCase()==e.toLowerCase()),n})}),f=(0,n.computed)({get(){return i.multiple==null||c.value==null?!1:c.value.length==d.value.length},set(e){return e}}),p=t,m=(0,n.ref)([]);r.api&&(async()=>{let{data:e}=await r.api();m.value=[...e],p(`success`,m)})();function h(e){p(`change`,e),g.value&&(0,n.nextTick)(()=>{r.optionClick&&r.optionClick(g.value),g.value=null})}let g=(0,n.ref)(null);function _(){p(`change`,c.value),(0,n.nextTick)(()=>{r.optionClick&&r.optionClick(null)})}function v(e){g.value=e}let y=r.labelValue.label.split(`-`),b=e=>{if(y.length==1){if(r.changeLocal)return a(e[r.labelValue.label]);let t=s.value==`en_us`?e[r.labelValue.labelEn||`i18nName`]:e[r.labelValue.label];return t||=e[r.labelValue.label],t+``}else{let t=[];return y.forEach(n=>{t.push(e[n])}),t.join(`-`)}};function x(e){let t=r.data?r.data:m.value;c.value=e?t.map(e=>l.value?e:e[r.labelValue.value]):[],(0,n.nextTick)(()=>{p(`change`,c.value),p(`changeAll`,c.value,t)})}function S(e){p(`change`,l.value?e:e[r.labelValue.value]),(0,n.nextTick)(()=>{r.optionClick&&r.optionClick(e)})}function C(e){let t=l.value?e:e[r.labelValue.value],n=l.value?c.value.some(t=>t[r.labelValue.value]===e[r.labelValue.value]):c.value.includes(t);return!!(r.maxLimit>0&&c.value.length>=r.maxLimit&&!n||r.minLimit>0&&c.value.length===r.minLimit&&n)}function w(e){return e.map(e=>({...e,label:b(e),value:l.value?e:e[r.labelValue.value]}))}let T=(0,n.ref)([]);T.value=w(r.data?r.data:m.value),(0,n.watch)(()=>r.data?r.data:m.value,e=>{let t=w(e);if(t.length!==T.value.length)T.value=t;else{let e=!1;for(let n=0;n<t.length;n++)if(t[n].value!==T.value[n]?.value){e=!0;break}e&&(T.value=t)}},{deep:!0});let E=(0,n.computed)(()=>i.multiple!==void 0&&(r.maxLimit>0||r.minLimit>0)?T.value.map(e=>({...e,disabled:C(e)})):T.value);return(t,r)=>{let a=(0,n.resolveComponent)(`el-checkbox`),o=(0,n.resolveComponent)(`el-select-v2`),s=(0,n.resolveComponent)(`el-option`),p=(0,n.resolveComponent)(`el-select`);return(0,n.unref)(i).v2==null?((0,n.openBlock)(),(0,n.createBlock)(p,(0,n.mergeProps)({key:1,modelValue:c.value,"onUpdate:modelValue":r[3]||=e=>c.value=e,filterable:``,"collapse-tags":``,"collapse-tags-tooltip":``,"filter-method":(0,n.unref)(i).remote==null?e=>u.value=e:void 0,clearable:``},(0,n.unref)(i),{onClear:_}),{default:(0,n.withCtx)(()=>[(0,n.unref)(i).multiple!=null&&e.showCheckAll&&e.maxLimit==null?(0,n.renderSlot)(t.$slots,`header`,{key:0},()=>[(0,n.createVNode)(a,{class:`mgl20`,modelValue:f.value,"onUpdate:modelValue":r[2]||=e=>f.value=e,onChange:x},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.$t(`quan-xuan`)),1)]),_:1},8,[`modelValue`])],!0):(0,n.createCommentVNode)(``,!0),((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(d.value,(t,r)=>((0,n.openBlock)(),(0,n.createBlock)(s,{key:r,label:b(t),disabled:(0,n.unref)(i).multiple!=null&&(e.maxLimit>0||e.minLimit>0)?C(t):!1,onClick:(0,n.withModifiers)(e=>S(t),[`stop`]),value:l.value?t:t[e.labelValue.value]},null,8,[`label`,`disabled`,`onClick`,`value`]))),128))]),_:3},16,[`modelValue`,`filter-method`])):((0,n.openBlock)(),(0,n.createBlock)(o,(0,n.mergeProps)({key:0,options:E.value,modelValue:c.value,"onUpdate:modelValue":r[1]||=e=>c.value=e},(0,n.unref)(i),{filterable:``,"collapse-tags":``,"collapse-tags-tooltip":``,clearable:``,onChange:h}),(0,n.createSlots)({default:(0,n.withCtx)(({item:e})=>[(0,n.createElementVNode)(`div`,{onClick:t=>v(e)},(0,n.toDisplayString)(e.label),9,de)]),_:2},[(0,n.unref)(i).multiple==null?void 0:{name:`header`,fn:(0,n.withCtx)(()=>[(0,n.renderSlot)(t.$slots,`header`,{},()=>[(0,n.createVNode)(a,{class:`mgl20`,modelValue:f.value,"onUpdate:modelValue":r[0]||=e=>f.value=e,onChange:x},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.$t(`quan-xuan`)),1)]),_:1},8,[`modelValue`])],!0)]),key:`0`}]),1040,[`options`,`modelValue`]))}}},[[`__scopeId`,`data-v-12794201`]]),pe=(0,n.defineComponent)({props:{name:{tyepe:String,required:!0}}});function me(e,t,r,i,a,o){let s=(0,n.resolveComponent)(`el-icon`);return(0,n.openBlock)(),(0,n.createBlock)(s,{class:`cmp-icon`},{default:(0,n.withCtx)(()=>[((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(e.name)))]),_:1})}var J=q(pe,[[`render`,me],[`__scopeId`,`data-v-733f9daa`]]),he={class:`confirm-button-wrapper`},ge=q({__name:`index`,emits:[`ok`,`no`],setup(e,{emit:t}){let r=t,i=(0,s.debounce)(()=>{r(`ok`)},500);function a(){r(`no`)}return(e,t)=>{let r=(0,n.resolveComponent)(`el-popconfirm`);return(0,n.openBlock)(),(0,n.createElementBlock)(`span`,he,[(0,n.createVNode)(r,(0,n.mergeProps)(e.$attrs,{onConfirm:(0,n.unref)(i),onCancel:a}),{reference:(0,n.withCtx)(()=>[(0,n.renderSlot)(e.$slots,`default`,{},void 0,!0)]),_:3},16,[`onConfirm`])])}}},[[`__scopeId`,`data-v-24cb35fd`]]),_e={class:`ImportButton`},ve=[`accept`],ye=q({__name:`index`,props:{accept:{type:String,default:`.xlsx,.xls`},fields:{type:Object,default:()=>({})},fileChange:{type:Function,required:!0}},emits:[`fileChange`],setup(e,{emit:t}){let r=e,i=(0,n.ref)(null),a=(0,n.ref)(!1);async function o(e){a.value=!0;let t=e.target.files[0],n=await B(t,r.fields).catch(()=>{a.value=!1}).finally(()=>{i.value.value=null});await r.fileChange(n).finally(()=>{a.value=!1})}return(t,r)=>{let s=(0,n.resolveComponent)(`el-button`);return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,_e,[(0,n.createVNode)(s,(0,n.mergeProps)({type:`primary`,loading:a.value,class:`mgr10`,onClick:r[0]||=e=>i.value.click()},t.$attrs),{default:(0,n.withCtx)(()=>[(0,n.renderSlot)(t.$slots,`default`,{},()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.$t(`dao-ru`)),1)],!0)]),_:3},16,[`loading`]),(0,n.createElementVNode)(`input`,{onChange:o,ref_key:`input`,ref:i,accept:e.accept,style:{position:`absolute`,width:`0px`,height:`0px`,opacity:`0`},type:`file`},null,40,ve)])}}},[[`__scopeId`,`data-v-ea0a4c60`]]);function Y(e){let t={};return e.forEach(e=>{let{key:n,type:r,option:i={},value:o,dateType:s=`date`}=e;if(n)if(r==`input`&&i?.multiple)t[n]=G(o);else if(r==`date`)if(s.includes(`range`)){let[e,r]=n,[i,c]=o||[];i&&s==`daterange`&&(i=(0,a.default)(i).format(`YYYY-MM-DD 00:00:00`),c=(0,a.default)(c).format(`YYYY-MM-DD 23:59:59`)),t[e]=i,t[r]=c}else t[n]=o;else t[n]=o}),t}var be={key:0},xe={class:`btns`},Se={class:`left`},Ce={class:`right`},we=q({__name:`index`,props:{form:{type:Object,required:!0}},emits:[`confirm`,`reset`,`visibleChange`],setup(e,{expose:t,emit:r}){let i=e,a=r,c=(0,n.ref)(!0),l=(0,n.ref)(null),{t:u}=(0,o.useI18n)(),d={datetimerange:`YYYY-MM-DD HH:mm:ss`,daterange:`YYYY-MM-DD`,month:`YYYY-MM`},f=(0,n.computed)(()=>c.value?u(`guan-bi`):u(`zhan-kai`));function p(){a(`confirm`)}function m(e){e.option.onClear&&e.option.onClear(),a(`confirm`)}function h(){a(`reset`)}function g(){a(`confirm`)}function _(){return Y(i.form.items)}let v=(0,s.cloneDeep)(i.form.items);function y(){i.form.items.forEach(e=>{let t=v.find(t=>t.key==e.key);t&&(e.value=t.value)})}return t({getPrm:_,reset:y}),(t,r)=>{let i=(0,n.resolveComponent)(`el-input`),o=(0,n.resolveComponent)(`el-date-picker`),s=(0,n.resolveComponent)(`el-form-item`),u=(0,n.resolveComponent)(`el-form`),_=(0,n.resolveComponent)(`el-link`),v=(0,n.resolveComponent)(`el-button`);return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:`searchBar-container mgt10 mgb10`,onKeydown:(0,n.withKeys)(p,[`enter`])},[(0,n.createElementVNode)(`div`,{class:`searchBar`,style:(0,n.normalizeStyle)({height:c.value?`auto`:`32px`})},[(0,n.createVNode)(u,{inline:``,model:e.form.data},{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.form.items.filter(e=>!e.hidden),e=>((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:e.key},[e.type==`br`?((0,n.openBlock)(),(0,n.createElementBlock)(`br`,be)):((0,n.openBlock)(),(0,n.createBlock)(s,{key:1,label:e.name},{default:(0,n.withCtx)(()=>[e.type===`input`?((0,n.openBlock)(),(0,n.createBlock)(i,{key:0,modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,class:(0,n.normalizeClass)(e.option?.class||`w150`),placeholder:t.$t(`qing-shu-ru`),clearable:``},null,8,[`modelValue`,`onUpdate:modelValue`,`class`,`placeholder`])):e.type===`custom`?((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(e.render),{key:1})):(0,n.createCommentVNode)(``,!0),e.type===`select`?((0,n.openBlock)(),(0,n.createBlock)(fe,(0,n.mergeProps)({key:2,class:e.option?.class||`w150`,modelValue:e.value,"onUpdate:modelValue":t=>e.value=t},{ref_for:!0},e.option,{onChange:p,onClear:t=>m(e),placeholder:t.$t(`qing-xuan-ze`)}),null,16,[`class`,`modelValue`,`onUpdate:modelValue`,`onClear`,`placeholder`])):(0,n.createCommentVNode)(``,!0),e.type===`date`?((0,n.openBlock)(),(0,n.createBlock)(o,(0,n.mergeProps)({key:3,class:{datetimerange:`w300`,daterange:`w200`}[e.dateType]||`w100`,modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,"value-format":d[e.dateType]||`YYYY-MM-DD`,type:e.dateType||`date`,onFocus:t=>l.value=e,onChange:t=>g(e),placeholder:t.$t(`qing-xuan-ze`),"start-placeholder":t.$t(`kai-shi-shi-jian`),"end-placeholder":t.$t(`jie-shu-shi-jian`)},{ref_for:!0},e.option),null,16,[`class`,`modelValue`,`onUpdate:modelValue`,`value-format`,`type`,`onFocus`,`onChange`,`placeholder`,`start-placeholder`,`end-placeholder`])):(0,n.createCommentVNode)(``,!0)]),_:2},1032,[`label`]))],64))),128))]),_:1},8,[`model`])],4),(0,n.createElementVNode)(`div`,xe,[(0,n.createElementVNode)(`div`,Se,[(0,n.renderSlot)(t.$slots,`table-header-left`,{},void 0,!0)]),(0,n.createElementVNode)(`div`,Ce,[(0,n.createVNode)(_,{underline:`never`,class:`mgr10`,onClick:r[0]||=()=>{a(`visibleChange`,!c.value),c.value=!c.value}},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(J,{name:c.value?`ArrowUp`:`ArrowDown`},null,8,[`name`]),(0,n.createTextVNode)(` `+(0,n.toDisplayString)(f.value),1)]),_:1}),(0,n.createVNode)(v,{type:`primary`,onClick:p},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.$t(`shai-xuan`)),1)]),_:1}),(0,n.createVNode)(v,{type:`primary`,onClick:h},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.$t(`chong-zhi`)),1)]),_:1}),(0,n.renderSlot)(t.$slots,`btn`,{},void 0,!0)])])],32)}}},[[`__scopeId`,`data-v-db6f71dd`]]),Te={pageNoKey:`pageNo`,pageSizeKey:`pageSize`,totalKey:`total`,defaultPageSize:10,pageSizes:[10,50,100,500],responseDataKeys:{rows:[`rows`,`records`,`list`],total:[`totalRows`,`total`]},showSearch:!1,showPage:!1,showShadow:!1,showCheckBox:!1,enableCellCopy:!0},X={...Te};function Ee(e){X={...X,...e,responseDataKeys:{...X.responseDataKeys,...e.responseDataKeys||{}}}}function De(){return X}function Oe(){X={...Te}}var ke={class:`center`},Ae=q({__name:`index`,props:{id:{type:String,required:!1},loading:{type:Boolean,default:!1},immediate:{type:Boolean,default:!0},searchForm:{type:Object,default:()=>({items:[],selections:[]})},api:{type:Function},data:{type:Array},tableConfig:{type:Object,default:()=>({})}},setup(e,{expose:t}){let{t:r,locale:i}=(0,o.useI18n)(),a=(0,c.useRoute)(),l=De(),u=e,d=(0,n.ref)(!1),f=(0,n.ref)([]);u.searchForm.showSearch===void 0&&(u.searchForm.showSearch=l.showSearch),u.searchForm.showPage===void 0&&(u.searchForm.showPage=l.showPage),u.searchForm.showShadow===void 0&&(u.searchForm.showShadow=l.showShadow),u.searchForm.showCheckBox===void 0&&(u.searchForm.showCheckBox=l.showCheckBox),u.searchForm.enableCellCopy===void 0&&(u.searchForm.enableCellCopy=l.enableCellCopy),u.searchForm.selections||(u.searchForm.selections=[]);let p=(0,n.computed)(()=>{let e=a.path.replace(/\//g,`-`).replace(/^-/,``)||`default-table`;return u.id?`listPageId-${e}-${u.id}`:`listPageId-${e}`}),m=(0,s.cloneDeep)(u.searchForm.items),h=u.searchForm.pageNoKey||l.pageNoKey,g=u.searchForm.pageSizeKey||l.pageSizeKey,_=(0,n.reactive)({[h]:1,[g]:u.searchForm.defaultPageSize||l.defaultPageSize,total:0}),v=(0,n.ref)(null),y=(0,n.ref)(null),b=(0,n.ref)(450),x=(0,s.debounce)(()=>{(0,n.nextTick)(()=>{if(!y.value)return;let e=y.value.getBoundingClientRect(),t=window.innerHeight-e.top-100;b.value=Math.max(t,200)})},100),S=()=>{x()},C=()=>{if(!u.searchForm.enableCellCopy&&!l.enableCellCopy)return!1;let e=v.value;if(!e||!e.$el)return!1;let t=e.$el;return t.classList.add(`cell-copy-enabled`),t.setAttribute(`tabindex`,`-1`),t.removeEventListener(`mousedown`,F),t.removeEventListener(`mousemove`,I),t.removeEventListener(`mouseup`,L),t.removeEventListener(`keydown`,V),t.addEventListener(`mousedown`,F),t.addEventListener(`mousemove`,I),t.addEventListener(`mouseup`,L),t.addEventListener(`keydown`,V),!0};(0,n.onMounted)(()=>{x(),window.addEventListener(`resize`,S),(u.searchForm.enableCellCopy||l.enableCellCopy)&&(document.addEventListener(`mouseup`,H),document.addEventListener(`mousedown`,U),setTimeout(()=>{C()},500))}),(0,n.onUpdated)(()=>{(u.searchForm.enableCellCopy||l.enableCellCopy)&&setTimeout(()=>{C()},500)}),(0,n.onUnmounted)(()=>{if(window.removeEventListener(`resize`,S),u.searchForm.enableCellCopy||l.enableCellCopy){document.removeEventListener(`mouseup`,H),document.removeEventListener(`mousedown`,U);let e=v.value;if(e&&e.$el){let t=e.$el;t.removeEventListener(`mousedown`,F),t.removeEventListener(`mousemove`,I),t.removeEventListener(`mouseup`,L),t.removeEventListener(`keydown`,V)}}});let w=(0,n.computed)(()=>M.value.height||b.value),T;async function E(e){let{dataFormat:t}=u.tableConfig;e[h]!=1&&(e.nextSearchAfter=T),d.value=!0;let{code:r,data:i={}}=await u.api(e).finally(()=>{d.value=!1,u.searchForm.selections=[]});if(r==200){let e=[];for(let t of l.responseDataKeys.rows)if(i[t]){e=i[t];break}let r=0;for(let e of l.responseDataKeys.total)if(i[e]!==void 0){r=i[e];break}f.value=t?t(e):e,_.total=r,T=i.nextSearchAfter,(u.searchForm.enableCellCopy||l.enableCellCopy)&&(0,n.nextTick)(()=>{setTimeout(()=>{C()},100)})}}function D(e={}){let{searchData:t=()=>({})}=u.tableConfig,n=t();E({..._,...Y(u.searchForm.items),...e,...n})}function O(){let{reset:e}=u.tableConfig;e&&e(),u.searchForm.items.forEach(e=>{let t=m.find(t=>(0,s.isArray)(e.key)&&(0,s.isArray)(t.key)?e.key.join(`,`)==t.key.join(`,`):t.key==e.key);t&&(e.value=t.value)}),D()}u.api&&u.immediate&&D();function k(){return{..._,...Y(u.searchForm.items)}}let A=()=>{let e=v.value;e&&e.clearSort()},j=(0,n.reactive)({storage:!0}),ee=(0,n.reactive)({drag:!0,resizable:!0,maxFixedSize:0}),M=(0,n.computed)(()=>{let{customConfig:e,columnConfig:t,...n}=u.tableConfig;return{headerAlign:`left`,align:`center`,customConfig:{...j,...e},columnConfig:{...ee,...t},"virtual-x-config":{enabled:!1,scrollToLeftOnChange:!1},"virtual-y-config":{enabled:!0,gt:100},...n}}),N=(0,n.reactive)({isSelecting:!1,startCell:null,endCell:null,selectedCells:[]}),P=e=>{let t=e.closest(`.vxe-body--column`);if(!t||t.classList.contains(`col--checkbox`)||t.classList.contains(`col--seq`))return null;let n=t.closest(`.vxe-body--row`);if(!n)return null;let r=v.value;if(!r)return null;let i=-1,a=n.getAttribute(`data-rowid`);if(a!=null)i=parseInt(a,10);else{let e=n.parentElement;i=Array.from(e.querySelectorAll(`.vxe-body--row`)).indexOf(n)}if(i<0)return null;let o=-1,s=t.getAttribute(`data-colid`);if(s&&(o=r.getColumns().findIndex(e=>e.id===s)),o<0){let e=Array.from(n.querySelectorAll(`.vxe-body--column`)).indexOf(t),i=!!t.closest(`.vxe-table--fixed-left-wrapper`),a=!!t.closest(`.vxe-table--fixed-right-wrapper`),s=r.getColumns();if(i){let t=s.filter(e=>e.fixed===`left`);e<t.length&&(o=s.indexOf(t[e]))}else if(a){let t=s.filter(e=>e.fixed===`right`);e<t.length&&(o=s.indexOf(t[e]))}else{let t=u.searchForm.showCheckBox?1:0;o=s.filter(e=>e.fixed===`left`).length+e-t}}return o<0?null:{rowIndex:i,colIndex:o,cell:t}},F=e=>{let t=P(e.target);if(!t){R();return}N.isSelecting=!0,N.startCell={rowIndex:t.rowIndex,colIndex:t.colIndex},N.endCell={...N.startCell},z(),B()},I=e=>{if(!N.isSelecting)return;let t=P(e.target);t&&(N.endCell={rowIndex:t.rowIndex,colIndex:t.colIndex},z(),B())},L=()=>{N.isSelecting=!1},R=()=>{N.selectedCells=[],N.startCell=null,N.endCell=null;let e=v.value;e&&e.$el.querySelectorAll(`.cell-selected, .cell-border-top, .cell-border-right, .cell-border-bottom, .cell-border-left`).forEach(e=>{e.classList.remove(`cell-selected`,`cell-border-top`,`cell-border-right`,`cell-border-bottom`,`cell-border-left`)})},z=()=>{if(!N.startCell||!N.endCell){N.selectedCells=[];return}let e=N.startCell.rowIndex,t=N.endCell.rowIndex,n=N.startCell.colIndex,r=N.endCell.colIndex,i=Math.min(e,t),a=Math.max(e,t),o=Math.min(n,r),s=Math.max(n,r);N.selectedCells=[];for(let e=i;e<=a;e++)for(let t=o;t<=s;t++)N.selectedCells.push({rowIndex:e,colIndex:t})},B=()=>{(0,n.nextTick)(()=>{let e=v.value;if(!e)return;let t=e.$el;if(t.querySelectorAll(`.cell-selected, .cell-border-top, .cell-border-right, .cell-border-bottom, .cell-border-left`).forEach(e=>{e.classList.remove(`cell-selected`,`cell-border-top`,`cell-border-right`,`cell-border-bottom`,`cell-border-left`)}),N.selectedCells.length===0)return;let n=e.getColumns(),r=N.selectedCells.map(e=>e.rowIndex),i=N.selectedCells.map(e=>e.colIndex),a=Math.min(...r),o=Math.max(...r),s=Math.min(...i),c=Math.max(...i),l=[t.querySelector(`.vxe-table--body-wrapper tbody`),t.querySelector(`.vxe-table--fixed-left-wrapper tbody`),t.querySelector(`.vxe-table--fixed-right-wrapper tbody`)].filter(Boolean);N.selectedCells.forEach(({rowIndex:e,colIndex:t})=>{let r=n[t];if(!r)return;let i=r.fixed===`left`,d=r.fixed===`right`;for(let f of l){let l=f.querySelectorAll(`.vxe-body--row`)[e];if(!l)continue;let p=Array.from(l.querySelectorAll(`.vxe-body--column`)),m=null;if(i&&f.closest(`.vxe-table--fixed-left-wrapper`))m=p[n.filter(e=>e.fixed===`left`).indexOf(r)];else if(d&&f.closest(`.vxe-table--fixed-right-wrapper`))m=p[n.filter(e=>e.fixed===`right`).indexOf(r)];else if(!i&&!d&&f.closest(`.vxe-table--body-wrapper`)){let e=u.searchForm.showCheckBox?1:0;m=p[t-n.filter(e=>e.fixed===`left`).length+e]}if(m&&!m.classList.contains(`col--checkbox`)&&!m.classList.contains(`col--seq`)){m.classList.add(`cell-selected`),e===a&&m.classList.add(`cell-border-top`),e===o&&m.classList.add(`cell-border-bottom`),t===s&&m.classList.add(`cell-border-left`),t===c&&m.classList.add(`cell-border-right`);break}}})})},te=async()=>{if(N.selectedCells.length===0)return;let e=v.value;if(!e)return;let t=e.$el,n=e.getColumns(),r=[...new Set(N.selectedCells.map(e=>e.rowIndex))].sort((e,t)=>e-t),i=[...new Set(N.selectedCells.map(e=>e.colIndex))].sort((e,t)=>e-t),a=[t.querySelector(`.vxe-table--body-wrapper tbody`),t.querySelector(`.vxe-table--fixed-left-wrapper tbody`),t.querySelector(`.vxe-table--fixed-right-wrapper tbody`)].filter(Boolean),o=[];r.forEach(e=>{let t=[];i.forEach(r=>{let i=n[r];if(!i){t.push(``);return}let o=i.fixed===`left`,s=i.fixed===`right`,c=``;for(let t of a){let a=t.querySelectorAll(`.vxe-body--row`)[e];if(!a)continue;let l=Array.from(a.querySelectorAll(`.vxe-body--column`)),d=null;if(o&&t.closest(`.vxe-table--fixed-left-wrapper`))d=l[n.filter(e=>e.fixed===`left`).indexOf(i)];else if(s&&t.closest(`.vxe-table--fixed-right-wrapper`))d=l[n.filter(e=>e.fixed===`right`).indexOf(i)];else if(!o&&!s&&t.closest(`.vxe-table--body-wrapper`)){let e=u.searchForm.showCheckBox?1:0;d=l[r-n.filter(e=>e.fixed===`left`).length+e]}if(d&&!d.classList.contains(`col--checkbox`)&&!d.classList.contains(`col--seq`)){c=d.innerText||d.textContent||``,c=c.trim(),c=c.replace(/\n/g,` `).replace(/\s+/g,` `);break}}t.push(c)}),o.push(t.join(` `))});let s=o.join(`
|
|
2
|
+
`);try{await navigator.clipboard.writeText(s)}catch(e){console.error(`复制失败:`,e)}},V=e=>{!u.searchForm.enableCellCopy&&!l.enableCellCopy||((e.ctrlKey||e.metaKey)&&e.key===`c`?N.selectedCells.length>0&&(e.preventDefault(),e.stopPropagation(),te()):e.key===`Escape`&&R())},H=()=>{N.isSelecting=!1},U=e=>{let t=v.value;!t||!t.$el||t.$el.contains(e.target)||R()},ne=e=>{_[h]=e,D()},re=e=>{_[g]=e,_[h]=1,D()};function W(){let e=v.value.getCheckboxRecords();u.searchForm.selections=e}let G=e=>{let t=v.value;if(t){t.toggleCheckboxRow(e);let n=v.value.getCheckboxRecords();u.searchForm.selections=n}};return t({tableRef:v,getList:D,getPrm:k,clearSort:A,calculateTableHeight:x}),(t,r)=>{let a=(0,n.resolveComponent)(`el-button`),o=(0,n.resolveComponent)(`el-checkbox`),s=(0,n.resolveComponent)(`el-text`),c=(0,n.resolveComponent)(`vxe-column`),u=(0,n.resolveComponent)(`VxeTable`),m=(0,n.resolveComponent)(`el-pagination`);return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:(0,n.normalizeClass)({box:e.searchForm.showShadow})},[e.searchForm.showSearch?((0,n.openBlock)(),(0,n.createBlock)(we,{key:0,form:e.searchForm,onReset:O,onConfirm:r[1]||=e=>D(),onVisibleChange:(0,n.unref)(x)},{btn:(0,n.withCtx)(()=>[r[3]||=(0,n.createElementVNode)(`span`,{class:`mgr10`},null,-1),(0,n.renderSlot)(t.$slots,`search-bar-btn`,{},void 0,!0),(0,n.createVNode)(a,{class:`mgl10`,round:``,onClick:r[0]||=e=>v.value.openCustom()},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(J,{name:`Tools`})]),_:1})]),_:3},8,[`form`,`onVisibleChange`])):(0,n.createCommentVNode)(``,!0),(0,n.renderSlot)(t.$slots,`table-header-left`,{},void 0,!0),(0,n.createElementVNode)(`div`,{ref_key:`tableContentRef`,ref:y},[(0,n.createVNode)(u,(0,n.mergeProps)({id:p.value,ref_key:`tableRef`,ref:v,loading:e.loading||d.value,data:e.api?f.value:e.data,border:``},M.value,{height:w.value,onCheckboxChange:W,onCheckboxAll:W,onSortChange:M.value[`sort-config`]?.sortChange}),{default:(0,n.withCtx)(()=>[e.searchForm.showCheckBox==null||e.searchForm.showCheckBox?((0,n.openBlock)(),(0,n.createBlock)(c,{key:0,type:`checkbox`,width:(0,n.unref)(i)==`zh_cn`?80:150,title:t.$t(`xu-hao`),fixed:`left`},{checkbox:(0,n.withCtx)(({rowIndex:e,row:t,checked:r,disabled:i,indeterminate:a})=>[(0,n.createElementVNode)(`div`,ke,[r?((0,n.openBlock)(),(0,n.createBlock)(o,{key:0,checked:!0,disabled:i,size:`default`,onClick:(0,n.withModifiers)(e=>!i&&G(t),[`stop`])},null,8,[`disabled`,`onClick`])):((0,n.openBlock)(),(0,n.createBlock)(o,{key:1,disabled:i,checked:!1,size:`default`,onClick:(0,n.withModifiers)(e=>!i&&G(t),[`stop`])},null,8,[`disabled`,`onClick`])),(0,n.createVNode)(s,{type:`info`,class:`mgl5`},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e+1),1)]),_:2},1024)])]),_:1},8,[`width`,`title`])):(0,n.createCommentVNode)(``,!0),(0,n.renderSlot)(t.$slots,`default`,{},void 0,!0)]),_:3},16,[`id`,`loading`,`data`,`height`,`onSortChange`])],512),e.searchForm.showPage?((0,n.openBlock)(),(0,n.createBlock)(m,{key:1,"current-page":_[(0,n.unref)(h)],"onUpdate:currentPage":r[2]||=e=>_[(0,n.unref)(h)]=e,class:`myPagination mgt10`,background:``,layout:`total, sizes, prev, pager, next`,total:_.total,"page-size":_[(0,n.unref)(g)],"page-sizes":e.searchForm.pageSizes||(0,n.unref)(l).pageSizes,onCurrentChange:ne,onSizeChange:re},null,8,[`current-page`,`total`,`page-size`,`page-sizes`])):(0,n.createCommentVNode)(``,!0)],2)}}},[[`__scopeId`,`data-v-c022c16d`]]),je={__name:`index`,props:{sheetsConfig:{type:Object,required:!0},fileName:{type:String,required:!0}},setup(e){let t=e;function r(){V(t.fileName,t.sheetsConfig)}return(e,t)=>{let i=(0,n.resolveComponent)(`el-link`);return(0,n.openBlock)(),(0,n.createBlock)(i,(0,n.mergeProps)({type:`primary`,underline:`never`},e.$attrs,{onClick:r}),{default:(0,n.withCtx)(()=>[(0,n.renderSlot)(e.$slots,`default`,{},()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.$t(`xia-zai-dao-ru-mo-ban`)),1)])]),_:3},16)}}},Me={mounted(e,t){t.value&&Ne(e)},updated(e,t){t.value?Ne(e):Pe(e)},beforeUnmount(e){Pe(e)}};async function Ne(e){await f();let t=e.querySelector(`.el-dialog`);if(!t)return;let n=e.querySelector(`.el-dialog__header`),r=e.querySelector(`.el-overlay`);r.style.cssText+=`overflow: hidden;`,n.style.cursor=`move`;let i=!1,a={window:{width:0,height:0},dialog:{x:0,y:0,width:0,height:0,marginTop:``},mouse:{x:0,y:0},drag:{x:0,y:0}};n.addEventListener(`mousedown`,c),document.addEventListener(`mousemove`,l),document.addEventListener(`mouseup`,u),window.addEventListener(`resize`,d);function o(){a.mouse.x-a.drag.x>=a.dialog.x&&(a.drag.x=a.mouse.x-a.dialog.x),a.drag.x-a.mouse.x>=a.window.width-(a.dialog.x+a.dialog.width)&&(a.drag.x=a.mouse.x+a.window.width-a.dialog.x-a.dialog.width),a.mouse.y-a.drag.y>=a.dialog.y&&(a.drag.y=a.mouse.y-a.dialog.y),a.drag.y-a.mouse.y>=a.window.height-(a.dialog.y+a.dialog.height)&&(a.drag.y=a.mouse.y+a.window.height-a.dialog.y-a.dialog.height),s()}function s(){let e=a.drag.y-a.mouse.y+a.dialog.y,n=a.drag.x-a.mouse.x+a.dialog.x;t.style.cssText+=`position: absolute; top: calc(${e}px - ${a.dialog.marginTop}); left: ${n}px;`}function c(e){e.button===0&&(a.window={width:document.body.clientWidth,height:document.body.clientHeight},a.dialog=t.getBoundingClientRect(),a.dialog.marginTop=window.getComputedStyle(t).marginTop,a.mouse={x:e.clientX,y:e.clientY},i=!0)}function l(e){i&&(a.drag={x:e.clientX,y:e.clientY},r.style.userSelect=`none`,o())}function u(e){r.style.userSelect=`auto`,i=!1}function d(e){}function f(){return new Promise((e,t)=>{setTimeout(()=>{e()},500)})}e.__mouseDown__=c,e.__mouseUp__=u,e.__mouseMove__=l,e.__sizeChange__=d}function Pe(e){document.removeEventListener(`mousedown`,e.__mouseDown__),document.removeEventListener(`mousemove`,e.__mouseMove__),document.removeEventListener(`mouseup`,e.__mouseUp__),window.removeEventListener(`resize`,e.__sizeChange__)}var Fe={key:0,class:`drawer-btn`},Ie={key:1},Le={__name:`index`,props:{layer:{type:Object,default:()=>({show:!1,type:`layer`,title:``,showButton:!1}),required:!0},loading:{type:Boolean,default:!1}},emits:[`confirm`],setup(e,{emit:r}){let i=e,a=r,{t:c}=(0,o.useI18n)(),l=(0,s.debounce)(()=>{a(`confirm`)},300);async function u(){i.layer.type==`drawer`?i.layer.onClose?i.layer.onClose():i.layer.closeConfirm?await t.ElMessageBox.confirm(c(`que-ding-guan-bi-ma`),{confirmButtonText:c(`que-ding`),cancelButtonText:c(`qu-xiao`),type:`warning`}).catch(()=>{})==`confirm`&&(i.layer.show=!1):i.layer.show=!1:i.layer.show=!1}return(t,r)=>{let i=(0,n.resolveComponent)(`el-button`),a=(0,n.resolveComponent)(`el-drawer`),o=(0,n.resolveComponent)(`el-dialog`);return e.layer.type?((0,n.openBlock)(),(0,n.createBlock)(a,{key:0,modelValue:e.layer.show,"onUpdate:modelValue":r[0]||=t=>e.layer.show=t,size:e.layer.width||`100%`,title:e.layer.title,direction:`rtl`,"append-to-body":``,"before-close":u,class:`drawer-content`},{default:(0,n.withCtx)(()=>[(0,n.renderSlot)(t.$slots,`default`),r[2]||=(0,n.createElementVNode)(`p`,{class:`mgt50`},null,-1),e.layer.showButton?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,Fe,[(0,n.renderSlot)(t.$slots,`btn`,{},()=>[(0,n.createVNode)(i,{onClick:u},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.$t(`qu-xiao`)),1)]),_:1}),(0,n.createVNode)(i,{type:`primary`,loading:e.loading,onClick:(0,n.unref)(l)},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.$t(`ti-jiao`)),1)]),_:1},8,[`loading`,`onClick`])])])):(0,n.createCommentVNode)(``,!0)]),_:3},8,[`modelValue`,`size`,`title`])):(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)(`div`,Ie,[(0,n.createVNode)(o,{"close-on-click-modal":!1,modelValue:e.layer.show,"onUpdate:modelValue":r[1]||=t=>e.layer.show=t,title:e.layer.title,width:e.layer.width||500,center:``},(0,n.createSlots)({default:(0,n.withCtx)(()=>[(0,n.renderSlot)(t.$slots,`default`)]),_:2},[e.layer.showButton?{name:`footer`,fn:(0,n.withCtx)(()=>[(0,n.renderSlot)(t.$slots,`btn`,{},()=>[(0,n.createVNode)(i,{onClick:u},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.$t(`qu-xiao`)),1)]),_:1}),(0,n.createVNode)(i,{type:`primary`,onClick:(0,n.unref)(l)},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.$t(`ti-jiao`)),1)]),_:1},8,[`onClick`])])]),key:`0`}:void 0]),1032,[`modelValue`,`title`,`width`])])),[[(0,n.unref)(Me),e.layer.show]])}}};function Re(e,t={}){let n=j(),r={inForm:!0,required:!0,...t},i={phone:/^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{8}$/,password:/(?=.*\d)(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{8,12}/,email:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/}[e],{inForm:a,value:o,required:s,msg:c=n(`validate.invalidInput`)}=r;return a?function(e,t,n){if(s){i.test(t)?n():n(Error(c));return}t&&!i.test(t)?n(Error(c)):n()}:i.test(o)}var ze=class{constructor(e={}){this.config={clientCode:e.clientCode||`one-portal`,casServerUrl:`https://one-portal${e.isTest?`-test`:``}.joy-group.com/api`,casPortalUrl:`https://one-portal${e.isTest?`-test`:``}.joy-group.com`,serviceUrl:e.serviceUrl||window.location.origin+`/cas/callback`,tokenKey:e.tokenKey||`one_portal_token`,userKey:e.userKey||`one_portal_user`,debug:e.debug||!1,autoLogin:e.autoLogin!==!1,loginCallback:e.loginCallback||null,logoutCallback:e.logoutCallback||null,errorCallback:e.errorCallback||null},this.token=null,this.user=null,this.init()}init(){this.log(`OnePortal CAS SDK 初始化中...`),this.loadFromStorage();let e=new URLSearchParams(window.location.search).get(`ticket`);this.isLoggedIn()&&this.config.loginCallback?this.config.loginCallback(this.user,this.token):e?(this.log(`检测到ST票据:`,e),this.validateTicket(e)):this.config.autoLogin&&!this.isLoggedIn()&&(this.log(`用户未登录,准备跳转到CAS登录页面`),this.login())}loadFromStorage(){try{this.token=localStorage.getItem(this.config.tokenKey);let e=localStorage.getItem(this.config.userKey);e&&(this.user=JSON.parse(e)),this.log(`从本地存储加载数据:`,{token:!!this.token,user:!!this.user})}catch(e){this.log(`加载本地存储数据失败:`,e)}}saveToStorage(){try{this.token&&localStorage.setItem(this.config.tokenKey,this.token),this.user&&localStorage.setItem(this.config.userKey,JSON.stringify(this.user)),this.log(`数据已保存到本地存储`)}catch(e){this.log(`保存到本地存储失败:`,e)}}clearStorage(){try{localStorage.removeItem(this.config.tokenKey),localStorage.removeItem(this.config.userKey),this.log(`本地存储已清除`)}catch(e){this.log(`清除本地存储失败:`,e)}}isLoggedIn(){return!!(this.token&&this.user)}getUser(){return this.user}getToken(){return this.token}login(){let e=`${this.config.casPortalUrl}?appCode=${this.config.clientCode}&redirectUrl=${encodeURIComponent(this.config.serviceUrl)}`;this.log(`跳转到CAS登录页面:`,e),window.location.href=e}async validateTicket(e){try{this.log(`验证ST票据:`,e);let t=await fetch(`${this.config.casServerUrl}/auth/validateST?ticket=${e}`,{method:`GET`,headers:{"Content-Type":`application/json`}});if(!t.ok)throw Error(`HTTP ${t.status}: ${t.statusText}`);let n=await t.json();if(n.success&&n.data)return this.token=n.data.token,this.user=n.data.user,this.saveToStorage(),this.clearTicketFromUrl(),this.log(`ST票据验证成功,用户登录成功:`,this.user),this.config.loginCallback&&this.config.loginCallback(this.user,this.token),!0;throw Error(n.message||`ST票据验证失败`)}catch(e){return this.log(`ST票据验证失败:`,e),this.handleError(e),!1}}clearTicketFromUrl(){let e=new URL(window.location);e.searchParams.delete(`ticket`),window.history.replaceState({},document.title,e.toString())}async logout(e=!0){try{if(this.log(`用户登出`),this.token)try{await fetch(`${this.config.casServerUrl}/auth/logout`,{method:`POST`,headers:{AppId:this.config.clientCode,Authorization:`Bearer ${this.token}`,"Content-Type":`application/json`}})}catch(e){this.log(`调用服务端登出接口失败:`,e)}this.token=null,this.user=null,this.clearStorage(),this.config.logoutCallback&&this.config.logoutCallback(),e&&this.login()}catch(e){this.log(`登出失败:`,e),this.handleError(e)}}async request(e,t={}){let n={headers:{"Content-Type":`application/json`,...t.headers},...t};n.headers.appId=this.config.clientCode,this.token&&(n.headers.Authorization=`Bearer ${this.token}`);try{let t=await fetch(e,n);return t.status===401?(this.log(`Token已过期,需要重新登录`),this.logout(),null):t}catch(e){throw this.log(`请求失败:`,e),e}}async fetchUserInfo(){try{let e=await this.request(`${this.config.casServerUrl}/auth/user`);if(e&&e.ok){let t=await e.json();if(t.success&&t.data)return this.user=t.data,this.saveToStorage(),this.user}return null}catch(e){return this.log(`获取用户信息失败:`,e),null}}async refreshToken(){this.log(`Token刷新功能暂未实现`)}handleError(e){this.log(`发生错误:`,e),this.config.errorCallback&&this.config.errorCallback(e)}log(...e){this.config.debug&&console.log(`[OnePortal CAS SDK]`,...e)}checkLoginStatus(){return!this.isLoggedIn()&&this.config.autoLogin?(this.login(),!1):this.isLoggedIn()}setConfig(e,t){this.config[e]=t}getConfig(e){return this.config[e]}};function Z(e,t=2,n=`.`,r=`,`){(e==null||e===``)&&(e=0);let i=Number(e);e=isNaN(i)?0:i,t=Math.max(0,Math.floor(t));let a=e.toFixed(t).split(`.`),o=a[0],s=a[1],c=o.startsWith(`-`);return c&&(o=o.slice(1)),o=o.replace(/\B(?=(\d{3})+(?!\d))/g,r),c&&(o=`-`+o),t>0?o+n+s:o}function Be(e,t=2){return Z(e,t)}function Ve(e,t=2){(e==null||e===``)&&(e=0);let n=Number(e);return e=isNaN(n)?0:n,Z(e*100,t)+`%`}function He(e,t={}){let{manual:r,log:i,params:a={},cb:o,format:s}=Object.assign({manual:!1,log:!1,params:null,format:null},t),c=(0,n.ref)([]),l=(0,n.ref)(!1),u=t=>{let n=t||a;l.value=!0,e(n).then(e=>{let{code:t,data:r,msg:l}=e;if(o){let{records:t,rows:n}=r||{};c.value=Q(t||n?t||n:r,s),o(e)}if(r){if(r.records!=null||r.rows!=null){let{records:e,rows:t,total:i=0}=r||{};n&&n.total!=null&&(a.total=parseInt(i)),c.value=Q(e||t||[],s)}else c.value=Q(r,s);i&&console.log(`useRequest-res`,c.value)}}).catch(e=>{o&&(console.log(`useRequestErr`,e),o({code:500}))}).finally(()=>{l.value=!1})};return r||u(),[l,c,u]}function Ue(e){let t=(0,n.ref)(e),r=(0,n.ref)(``),i=(0,n.ref)(``);return(0,n.watch)(t,e=>{let t=e||[``,``];r.value=t[0],i.value=t[1]}),[t,r,i]}function We(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function Q(e,t){if(!t)return e;if(e instanceof Array)return e.map(e=>{let n={};return t.forEach(t=>n[t]=e[t]),n});let n={};return t.forEach(t=>n[t]=e[t]),n}function Ge(e,t=[]){let{locale:r}=(0,o.useI18n)(),i=(0,n.ref)(e());return(0,n.watch)([r,...t],()=>{i.value=e()},{immediate:!0}),i}function Ke(e,t=`zh_cn`,n=`en_us`){return e&&(e[{en_us:n,zh_cn:t}[A().global.locale.value]]||e[t])||`-`}function qe(e,t){let n=l.mapState;return typeof e==`string`&&e.length>0&&(n=(0,l.createNamespacedHelpers)(e).mapState),Xe(t,n)}function Je(e,t){let n=l.mapGetters;return typeof e==`string`&&e.length>0&&(n=(0,l.createNamespacedHelpers)(e).mapGetters),Xe(t,n)}function Ye(e,t){let n=l.mapActions;return typeof e==`string`&&e.length>0&&(n=(0,l.createNamespacedHelpers)(e).mapActions),Ze(t,n)}function Xe(e,t){let r=(0,l.useStore)(),i=t(e),a={};return Object.keys(i).forEach(e=>{a[e]=(0,n.computed)(i[e].bind({$store:r}))}),a}function Ze(e,t){let n=(0,l.useStore)(),r=t(e),i={};return Object.keys(r).forEach(e=>{i[e]=r[e].bind({$store:n})}),i}function $(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!(0,n.isVNode)(e)}function Qe(){u.VxeUI.formats.add(`formatNumber`,{cellFormatMethod({cellValue:e},t=2){return Z(e,t)}}),u.VxeUI.formats.add(`formatMoney`,{cellFormatMethod({cellValue:e},t=2){return Be(e,t)}}),u.VxeUI.formats.add(`formatPercent`,{cellFormatMethod({cellValue:e},t=2){return Ve(e,t)}})}function $e(){u.VxeUI.renderer.add(`Enum`,{renderTableDefault(e,t){let r;if([null,void 0].includes(t.row[t.column.field]))return`-`;let i=t.row[t.column.field];if(e.type==`tag`){let t;return(0,n.createVNode)((0,n.resolveComponent)(`el-text`),{type:e.enum.getTag(i)},$(t=e.enum.getName(i))?t:{default:()=>[t]})}return(0,n.createVNode)((0,n.resolveComponent)(`el-text`),null,$(r=e.enum.getName(i))?r:{default:()=>[r]})}}),u.VxeUI.renderer.add(`InputNumber`,{renderTableDefault(e,r){return(0,n.createVNode)(t.ElInputNumber,(0,n.mergeProps)({modelValue:r.row[r.column.field],"onUpdate:modelValue":e=>r.row[r.column.field]=e},e.props,{"step-strictly":!0,"value-on-clear":0}),null)}}),u.VxeUI.renderer.add(`TrueFalse`,{renderTableDefault(e,r){let{locale:i}=(0,o.useI18n)(),a=i.value==`zh_cn`;return(0,n.createVNode)(t.ElText,{type:r.row[r.column.field]?`success`:`danger`},{default:()=>[r.row[r.column.field]?a?`是`:`YES`:a?`否`:`NO`]})}}),u.VxeUI.renderer.add(`I18n`,{renderTableDefault(e,t){let{locale:n}=(0,o.useI18n)(),r=n.value==`zh_cn`?t.column.field:e.fieldEn;return t.row[r]||t.row[t.column.field]}}),u.VxeUI.renderer.add(`Link`,{renderTableDefault(e,r){let i=r.column.field,a=(0,c.useRouter)(),{multiple:o,to:s,openType:l=`system`}=e,u=r.row[i];function d(e,t){l==`blank`?window.open(e):a.push({path:e,query:{[i]:t}})}if(o){let e=u?.split(`,`)||[];return e.map((r,i)=>(0,n.createVNode)(`span`,null,[(0,n.createVNode)(t.ElLink,{underline:`never`,type:`primary`,onclick:()=>d(l==`stystem`?s:r,r)},$(r)?r:{default:()=>[r]}),i<e.length-1?`,`:``]))}return(0,n.createVNode)(t.ElLink,{underline:`never`,type:`primary`,onclick:()=>d(l==`stystem`?s:u,u)},$(u)?u:{default:()=>[u]})}})}function et(){Qe(),$e()}e.CmpDictionary=fe,e.CmpIcon=J,e.ConfrimButton=ge,e.DownExcelTemp=je,e.ImportButton=ye,e.LayOutForm=b,e.Layer=Le,e.ListPage=Ae,e.OnePortalCasSDK=ze,e.SearchBar=we,e.StatusMap=K,e._toRaw=re,e._typeOf=We,e.arrToStatusMap=ie,e.arrayToTree=W,e.checkFileSize=se,e.creatValidator=Re,e.createImportFields=le,e.createListPageId=ce,e.en_us=E,e.exportExcel=N,e.exportExcelMuilti=V,e.formatMoney=Be,e.formatNumber=Z,e.formatPercent=Ve,e.getI18n=A,e.getI18nT=j,e.getListPageConfig=De,e.getLocaleValue=Ke,e.getValueBykey=ue,e.importExcel=ee,e.importExcelMuilti=B,e.messages=D,e.registerVxeFormatters=Qe,e.registerVxePlugins=et,e.registerVxeRenderers=$e,e.resetListPageConfig=Oe,e.setListPageConfig=Ee,e.setupI18n=k,e.sleep=ne,e.stringToArray=G,e.stripHtmlTags=ae,e.unicode2Str=oe,e.useActions=Ye,e.useDatePicker=Ue,e.useGetters=Je,e.useI18nReState=Ge,e.useRequest=He,e.useState=qe,e.zh_cn=T});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "joy-admin-components",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.75",
|
|
4
4
|
"main": "./dist/joy-admin-components.umd.js",
|
|
5
5
|
"module": "./dist/joy-admin-components.es.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
@@ -35,24 +35,24 @@
|
|
|
35
35
|
"file-saver": "^2.0.5"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"@vitejs/plugin-vue": "^
|
|
38
|
+
"@vitejs/plugin-vue": "^6.0.5",
|
|
39
39
|
"element-plus": "^2.13.2",
|
|
40
40
|
"sass": "^1.97.3",
|
|
41
|
-
"vite": "^
|
|
41
|
+
"vite": "^8.0.3",
|
|
42
42
|
"vue": "^3.5.29",
|
|
43
|
-
"vue-i18n": "^
|
|
43
|
+
"vue-i18n": "^11.3.0",
|
|
44
44
|
"vuex": "^4.1.0",
|
|
45
45
|
"vxe-pc-ui": "4.4.26",
|
|
46
46
|
"vxe-table": "4.12.0"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@vitejs/plugin-vue": "^
|
|
50
|
-
"@vitejs/plugin-vue-jsx": "
|
|
49
|
+
"@vitejs/plugin-vue": "^6.0.5",
|
|
50
|
+
"@vitejs/plugin-vue-jsx": "^5.1.5",
|
|
51
51
|
"element-plus": "^2.13.2",
|
|
52
52
|
"sass": "^1.97.3",
|
|
53
|
-
"vite": "^
|
|
53
|
+
"vite": "^8.0.3",
|
|
54
54
|
"vue": "^3.5.29",
|
|
55
|
-
"vue-i18n": "^
|
|
55
|
+
"vue-i18n": "^11.3.0",
|
|
56
56
|
"vue-router": "4.5.0",
|
|
57
57
|
"vuex": "^4.1.0",
|
|
58
58
|
"vxe-pc-ui": "4.4.26",
|
package/dist/style.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.cmp-icon[data-v-12794201],.cmp-icon[data-v-733f9daa]{padding:0!important}.confirm-button-wrapper[data-v-24cb35fd],.ImportButton[data-v-ea0a4c60]{display:inline-block;line-height:1;vertical-align:middle}.searchBar-container .searchBar[data-v-db6f71dd]{overflow:hidden;transition:all .3s}.searchBar-container[data-v-db6f71dd] .el-form-item{margin-bottom:8px!important}.searchBar-container .btns[data-v-db6f71dd]{display:flex;justify-content:space-between;align-items:center}.searchBar-container .btns .left[data-v-db6f71dd]{display:flex;align-items:center}.searchBar-container .btns .left[data-v-db6f71dd] .el-tabs__header{margin:0}.searchBar-container .btns .right[data-v-db6f71dd]{display:flex;align-items:center;text-align:right}[data-v-c022c16d] .vxe-table-custom-wrapper.placement--top-right.is--active{max-height:400px!important}[data-v-c022c16d] .vxe-table.cell-copy-enabled .vxe-body--column{-webkit-user-select:none;user-select:none}[data-v-c022c16d] .vxe-table.cell-copy-enabled .vxe-body--column.cell-selected{background-color:#409eff26!important;position:relative}[data-v-c022c16d] .vxe-table.cell-copy-enabled .vxe-body--column.cell-border-top:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background-color:#409eff;pointer-events:none;z-index:10}[data-v-c022c16d] .vxe-table.cell-copy-enabled .vxe-body--column.cell-border-bottom:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background-color:#409eff;pointer-events:none;z-index:10}[data-v-c022c16d] .vxe-table.cell-copy-enabled .vxe-body--column.cell-border-left{border-left:1px solid #409eff!important}[data-v-c022c16d] .vxe-table.cell-copy-enabled .vxe-body--column.cell-border-right{border-right:1px solid #409eff!important}.drawer-content .drawer-btn{position:absolute;box-sizing:border-box;bottom:0;width:100%;text-align:right;padding:10px 60px 20px 20px;background-color:#fff;z-index:10}
|
|
@@ -1,273 +0,0 @@
|
|
|
1
|
-
# ListPage 全局配置使用指南
|
|
2
|
-
|
|
3
|
-
## 快速开始
|
|
4
|
-
|
|
5
|
-
### 1. 在项目入口配置一次(main.js)
|
|
6
|
-
|
|
7
|
-
```js
|
|
8
|
-
import { setListPageConfig } from 'joy-admin-components';
|
|
9
|
-
|
|
10
|
-
// 配置全局分页参数(根据后端接口规范配置)
|
|
11
|
-
setListPageConfig({
|
|
12
|
-
// 分页参数名
|
|
13
|
-
pageNoKey: 'pageNum', // 页码参数名,默认 'pageNo'
|
|
14
|
-
pageSizeKey: 'pageSize', // 每页条数参数名,默认 'pageSize'
|
|
15
|
-
|
|
16
|
-
// 分页默认值
|
|
17
|
-
defaultPageSize: 10, // 默认每页条数,默认 10
|
|
18
|
-
pageSizes: [10, 20, 50, 100], // 分页选项,默认 [10, 50, 100, 500]
|
|
19
|
-
|
|
20
|
-
// 响应数据字段映射(支持多种格式,按优先级尝试)
|
|
21
|
-
responseDataKeys: {
|
|
22
|
-
rows: ['data', 'list', 'rows'], // 数据列表字段,默认 ['rows', 'records']
|
|
23
|
-
total: ['totalCount', 'total'], // 总条数字段,默认 ['totalRows', 'total']
|
|
24
|
-
},
|
|
25
|
-
|
|
26
|
-
// UI 功能默认配置
|
|
27
|
-
showSearch: true, // 是否显示搜索栏,默认 false
|
|
28
|
-
showPage: true, // 是否显示分页,默认 false
|
|
29
|
-
showShadow: true, // 是否显示阴影,默认 false
|
|
30
|
-
showCheckBox: true, // 是否显示复选框列,默认 false
|
|
31
|
-
enableCellCopy: true, // 是否启用单元格复制,默认 true
|
|
32
|
-
});
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### 2. 组件中无需再传配置参数
|
|
36
|
-
|
|
37
|
-
```vue
|
|
38
|
-
<template>
|
|
39
|
-
<!-- 之前:每次都要传各种配置 -->
|
|
40
|
-
<ListPage
|
|
41
|
-
:api="getListApi"
|
|
42
|
-
:searchForm="{
|
|
43
|
-
pageNoKey: 'pageNum', // ❌ 不需要了!
|
|
44
|
-
showSearch: true, // ❌ 不需要了!
|
|
45
|
-
showPage: true, // ❌ 不需要了!
|
|
46
|
-
showCheckBox: true, // ❌ 不需要了!
|
|
47
|
-
items: []
|
|
48
|
-
}"
|
|
49
|
-
/>
|
|
50
|
-
|
|
51
|
-
<!-- 现在:直接使用,自动采用全局配置 -->
|
|
52
|
-
<ListPage
|
|
53
|
-
:api="getListApi"
|
|
54
|
-
:searchForm="{ items: [] }"
|
|
55
|
-
/>
|
|
56
|
-
</template>
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
## 配置项详解
|
|
60
|
-
|
|
61
|
-
### 完整配置项
|
|
62
|
-
|
|
63
|
-
```js
|
|
64
|
-
setListPageConfig({
|
|
65
|
-
// === 请求参数配置 ===
|
|
66
|
-
pageNoKey: 'pageNo', // 页码参数名
|
|
67
|
-
pageSizeKey: 'pageSize', // 每页条数参数名
|
|
68
|
-
|
|
69
|
-
// === 默认值配置 ===
|
|
70
|
-
defaultPageSize: 10, // 默认每页显示条数
|
|
71
|
-
pageSizes: [10, 50, 100, 500], // 分页器下拉选项
|
|
72
|
-
|
|
73
|
-
// === 响应数据字段映射 ===
|
|
74
|
-
responseDataKeys: {
|
|
75
|
-
rows: ['rows', 'records'], // 数据列表字段名(优先级从左到右)
|
|
76
|
-
total: ['totalRows', 'total'], // 总条数字段名
|
|
77
|
-
},
|
|
78
|
-
|
|
79
|
-
// === UI 功能默认配置 ===
|
|
80
|
-
showSearch: false, // 是否显示搜索栏
|
|
81
|
-
showPage: false, // 是否显示分页
|
|
82
|
-
showShadow: false, // 是否显示阴影
|
|
83
|
-
showCheckBox: false, // 是否显示复选框列
|
|
84
|
-
enableCellCopy: true, // 是否启用单元格复制功能
|
|
85
|
-
});
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### 按需覆盖(特殊场景)
|
|
89
|
-
|
|
90
|
-
如果某个页面的配置与全局配置不同,可以单独覆盖:
|
|
91
|
-
|
|
92
|
-
```vue
|
|
93
|
-
<template>
|
|
94
|
-
<!-- 覆盖分页参数名 -->
|
|
95
|
-
<ListPage
|
|
96
|
-
:api="getListApi"
|
|
97
|
-
:searchForm="{
|
|
98
|
-
pageNoKey: 'page', // 覆盖全局的 pageNoKey
|
|
99
|
-
pageSizeKey: 'limit', // 覆盖全局的 pageSizeKey
|
|
100
|
-
items: []
|
|
101
|
-
}"
|
|
102
|
-
/>
|
|
103
|
-
|
|
104
|
-
<!-- 覆盖分页默认值和选项 -->
|
|
105
|
-
<ListPage
|
|
106
|
-
:api="getListApi"
|
|
107
|
-
:searchForm="{
|
|
108
|
-
defaultPageSize: 50, // 覆盖默认每页条数
|
|
109
|
-
pageSizes: [50, 100], // 覆盖分页选项
|
|
110
|
-
items: []
|
|
111
|
-
}"
|
|
112
|
-
/>
|
|
113
|
-
|
|
114
|
-
<!-- 覆盖 UI 功能配置 -->
|
|
115
|
-
<ListPage
|
|
116
|
-
:api="getListApi"
|
|
117
|
-
:searchForm="{
|
|
118
|
-
showSearch: false, // 这个表格不显示搜索栏
|
|
119
|
-
showCheckBox: false, // 这个表格不显示复选框
|
|
120
|
-
enableCellCopy: false, // 这个表格禁用单元格复制
|
|
121
|
-
items: []
|
|
122
|
-
}"
|
|
123
|
-
/>
|
|
124
|
-
</template>
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
## 常见后端接口格式示例
|
|
128
|
-
|
|
129
|
-
### 示例 1:标准格式
|
|
130
|
-
|
|
131
|
-
**接口规范:**
|
|
132
|
-
- 请求:`{ pageNo: 1, pageSize: 10 }`
|
|
133
|
-
- 响应:`{ code: 200, data: { rows: [], total: 100 } }`
|
|
134
|
-
|
|
135
|
-
**配置:**
|
|
136
|
-
```js
|
|
137
|
-
// 默认配置,无需额外设置
|
|
138
|
-
setListPageConfig({
|
|
139
|
-
pageNoKey: 'pageNo',
|
|
140
|
-
pageSizeKey: 'pageSize',
|
|
141
|
-
responseDataKeys: {
|
|
142
|
-
rows: ['rows', 'records'],
|
|
143
|
-
total: ['totalRows', 'total'],
|
|
144
|
-
},
|
|
145
|
-
});
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
### 示例 2:自定义格式
|
|
149
|
-
|
|
150
|
-
**接口规范:**
|
|
151
|
-
- 请求:`{ pageNum: 1, limit: 10 }`
|
|
152
|
-
- 响应:`{ code: 0, data: { list: [], totalCount: 100 } }`
|
|
153
|
-
|
|
154
|
-
**配置:**
|
|
155
|
-
```js
|
|
156
|
-
setListPageConfig({
|
|
157
|
-
pageNoKey: 'pageNum',
|
|
158
|
-
pageSizeKey: 'limit',
|
|
159
|
-
responseDataKeys: {
|
|
160
|
-
rows: ['list'],
|
|
161
|
-
total: ['totalCount'],
|
|
162
|
-
},
|
|
163
|
-
});
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
### 示例 3:兼容多种格式
|
|
167
|
-
|
|
168
|
-
**接口规范:**
|
|
169
|
-
- 有的接口返回 `rows`,有的返回 `records`,还有的返回 `list`
|
|
170
|
-
- 有的接口返回 `total`,有的返回 `totalCount`
|
|
171
|
-
|
|
172
|
-
**配置:**
|
|
173
|
-
```js
|
|
174
|
-
setListPageConfig({
|
|
175
|
-
responseDataKeys: {
|
|
176
|
-
// 按优先级尝试,找到第一个存在的字段
|
|
177
|
-
rows: ['list', 'rows', 'records', 'data'],
|
|
178
|
-
total: ['totalCount', 'total', 'totalRows'],
|
|
179
|
-
},
|
|
180
|
-
});
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
## API 文档
|
|
184
|
-
|
|
185
|
-
### setListPageConfig(config)
|
|
186
|
-
|
|
187
|
-
设置全局配置。
|
|
188
|
-
|
|
189
|
-
**参数:**
|
|
190
|
-
- `config` (Object) - 配置对象
|
|
191
|
-
- `pageNoKey` (String) - 页码参数名
|
|
192
|
-
- `pageSizeKey` (String) - 每页条数参数名
|
|
193
|
-
- `defaultPageSize` (Number) - 默认每页条数
|
|
194
|
-
- `pageSizes` (Array\<Number\>) - 分页选项
|
|
195
|
-
- `responseDataKeys` (Object) - 响应数据字段映射
|
|
196
|
-
- `rows` (Array\<String\>) - 数据列表字段名
|
|
197
|
-
- `total` (Array\<String\>) - 总条数字段名
|
|
198
|
-
- `showSearch` (Boolean) - 是否显示搜索栏
|
|
199
|
-
- `showPage` (Boolean) - 是否显示分页
|
|
200
|
-
- `showShadow` (Boolean) - 是否显示阴影
|
|
201
|
-
- `showCheckBox` (Boolean) - 是否显示复选框列
|
|
202
|
-
- `enableCellCopy` (Boolean) - 是否启用单元格复制功能
|
|
203
|
-
|
|
204
|
-
**示例:**
|
|
205
|
-
```js
|
|
206
|
-
setListPageConfig({
|
|
207
|
-
pageNoKey: 'pageNum',
|
|
208
|
-
defaultPageSize: 20,
|
|
209
|
-
});
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
### getListPageConfig()
|
|
213
|
-
|
|
214
|
-
获取当前全局配置。
|
|
215
|
-
|
|
216
|
-
**返回:**
|
|
217
|
-
- (Object) 当前配置对象
|
|
218
|
-
|
|
219
|
-
**示例:**
|
|
220
|
-
```js
|
|
221
|
-
const config = getListPageConfig();
|
|
222
|
-
console.log(config.pageNoKey); // 'pageNo'
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### resetListPageConfig()
|
|
226
|
-
|
|
227
|
-
重置为默认配置。
|
|
228
|
-
|
|
229
|
-
**示例:**
|
|
230
|
-
```js
|
|
231
|
-
resetListPageConfig();
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
## 优势
|
|
235
|
-
|
|
236
|
-
✅ **配置一次,全项目生效** - 不用每个页面都传分页参数和 UI 配置
|
|
237
|
-
✅ **灵活覆盖** - 特殊场景可单独配置
|
|
238
|
-
✅ **兼容多种接口格式** - 支持配置多个字段名按优先级尝试
|
|
239
|
-
✅ **统一管理** - 所有表格的默认行为统一管理,易于维护
|
|
240
|
-
✅ **向后兼容** - 不影响现有代码
|
|
241
|
-
|
|
242
|
-
## 典型使用场景
|
|
243
|
-
|
|
244
|
-
### 场景 1:全项目表格都需要搜索、分页和复选框
|
|
245
|
-
|
|
246
|
-
```js
|
|
247
|
-
// main.js - 全局配置
|
|
248
|
-
setListPageConfig({
|
|
249
|
-
showSearch: true,
|
|
250
|
-
showPage: true,
|
|
251
|
-
showCheckBox: true,
|
|
252
|
-
});
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
```vue
|
|
256
|
-
<!-- 各个页面中 - 简洁! -->
|
|
257
|
-
<ListPage :api="getUserList" :searchForm="{ items: searchItems }" />
|
|
258
|
-
<ListPage :api="getOrderList" :searchForm="{ items: searchItems }" />
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
### 场景 2:个别页面不需要某些功能
|
|
262
|
-
|
|
263
|
-
```vue
|
|
264
|
-
<!-- 某个简单的查看页面,只需要展示数据 -->
|
|
265
|
-
<ListPage
|
|
266
|
-
:api="getLogList"
|
|
267
|
-
:searchForm="{
|
|
268
|
-
showSearch: false, // 不需要搜索
|
|
269
|
-
showCheckBox: false, // 不需要复选框
|
|
270
|
-
items: []
|
|
271
|
-
}"
|
|
272
|
-
/>
|
|
273
|
-
```
|