joy-admin-components 0.1.44 → 0.1.46

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(h,Y){typeof exports=="object"&&typeof module<"u"?Y(exports,require("element-plus"),require("vue"),require("file-saver"),require("exceljs"),require("dayjs"),require("vue-i18n"),require("lodash"),require("vuex"),require("vxe-pc-ui"),require("vue-router")):typeof define=="function"&&define.amd?define(["exports","element-plus","vue","file-saver","exceljs","dayjs","vue-i18n","lodash","vuex","vxe-pc-ui","vue-router"],Y):(h=typeof globalThis<"u"?globalThis:h||self,Y(h.JoyAdminComponents={},h.ElementPlus,h.Vue,h.fileSaver,h.ExcelJS,h.dayjs,h.VueI18n,h._,h.Vuex,h.VxeUI,h.VueRouter))})(this,function(h,Y,e,Ne,xe,ae,J,ee,W,ne,Re){"use strict";const Ae=e.defineComponent({name:"LayOutForm",setup(o,{slots:t,attrs:n,emit:r}){const l=e.ref(null),a=()=>t.default?t.default().filter(f=>f.type!==Symbol.for("v-cmt")).map(f=>f.type===Symbol.for("v-fgt")?f.children:f).flat().map(f=>{var c;return e.h(Y.ElCol,{span:((c=f.props)==null?void 0:c.span)||24},{default:()=>f})}):null;e.onMounted(()=>{r("ref",l.value)});function s(){return e.h(Y.ElForm,{...n,ref:l},()=>e.h(Y.ElRow,{gutter:n.gutter??20},{default:()=>a()}))}return s}});var ke=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function _e(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var Se={exports:{}};(function(o,t){(function(n,r){o.exports=r()})(ke,function(){var n="minute",r=/[+-]\d\d(?::?\d\d)?/g,l=/([+-]|\d\d)/g;return function(a,s,f){var c=s.prototype;f.utc=function(d){var m={date:d,utc:!0,args:arguments};return new s(m)},c.utc=function(d){var m=f(this.toDate(),{locale:this.$L,utc:!0});return d?m.add(this.utcOffset(),n):m},c.local=function(){return f(this.toDate(),{locale:this.$L,utc:!1})};var b=c.parse;c.parse=function(d){d.utc&&(this.$u=!0),this.$utils().u(d.$offset)||(this.$offset=d.$offset),b.call(this,d)};var C=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 C.call(this)};var $=c.utcOffset;c.utcOffset=function(d,m){var T=this.$utils().u;if(T(d))return this.$u?0:T(this.$offset)?$.call(this):this.$offset;if(typeof d=="string"&&(d=function(V){V===void 0&&(V="");var q=V.match(r);if(!q)return null;var E=(""+q[0]).match(l)||["-",0,0],x=E[0],y=60*+E[1]+ +E[2];return y===0?0:x==="+"?y:-y}(d),d===null))return this;var p=Math.abs(d)<=16?60*d:d;if(p===0)return this.utc(m);var g=this.clone();if(m)return g.$offset=p,g.$u=!1,g;var v=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();return(g=this.local().add(p+v,n)).$offset=p,g.$x.$localOffset=v,g};var _=c.format;c.format=function(d){var m=d||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return _.call(this,m)},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 S=c.toDate;c.toDate=function(d){return d==="s"&&this.$offset?f(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():S.call(this)};var w=c.diff;c.diff=function(d,m,T){if(d&&this.$u===d.$u)return w.call(this,d,m,T);var p=this.local(),g=f(d).local();return w.call(p,g,m,T)}}})})(Se);var qe=Se.exports;const je=_e(qe);var $e={exports:{}};(function(o,t){(function(n,r){o.exports=r()})(ke,function(){var n={year:0,month:1,day:2,hour:3,minute:4,second:5},r={};return function(l,a,s){var f,c=function(_,S,w){w===void 0&&(w={});var d=new Date(_),m=function(T,p){p===void 0&&(p={});var g=p.timeZoneName||"short",v=T+"|"+g,V=r[v];return V||(V=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:T,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:g}),r[v]=V),V}(S,w);return m.formatToParts(d)},b=function(_,S){for(var w=c(_,S),d=[],m=0;m<w.length;m+=1){var T=w[m],p=T.type,g=T.value,v=n[p];v>=0&&(d[v]=parseInt(g,10))}var V=d[3],q=V===24?0:V,E=d[0]+"-"+d[1]+"-"+d[2]+" "+q+":"+d[4]+":"+d[5]+":000",x=+_;return(s.utc(E).valueOf()-(x-=x%1e3))/6e4},C=a.prototype;C.tz=function(_,S){_===void 0&&(_=f);var w,d=this.utcOffset(),m=this.toDate(),T=m.toLocaleString("en-US",{timeZone:_}),p=Math.round((m-new Date(T))/1e3/60),g=15*-Math.round(m.getTimezoneOffset()/15)-p;if(!Number(g))w=this.utcOffset(0,S);else if(w=s(T,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(g,!0),S){var v=w.utcOffset();w=w.add(d-v,"minute")}return w.$x.$timezone=_,w},C.offsetName=function(_){var S=this.$x.$timezone||s.tz.guess(),w=c(this.valueOf(),S,{timeZoneName:_}).find(function(d){return d.type.toLowerCase()==="timezonename"});return w&&w.value};var $=C.startOf;C.startOf=function(_,S){if(!this.$x||!this.$x.$timezone)return $.call(this,_,S);var w=s(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return $.call(w,_,S).tz(this.$x.$timezone,!0)},s.tz=function(_,S,w){var d=w&&S,m=w||S||f,T=b(+s(),m);if(typeof _!="string")return s(_).tz(m);var p=function(q,E,x){var y=q-60*E*1e3,R=b(y,x);if(E===R)return[y,E];var B=b(y-=60*(R-E)*1e3,x);return R===B?[y,R]:[q-60*Math.min(R,B)*1e3,Math.max(R,B)]}(s.utc(_,d).valueOf(),T,m),g=p[0],v=p[1],V=s(g).utcOffset(v);return V.$x.$timezone=m,V},s.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},s.tz.setDefault=function(_){f=_}}})})($e);var Ue=$e.exports;const Pe=_e(Ue),se={"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":"展开",excel:{fieldsMappingRequired:"请输入列字段映射",invalidInput:"非法输入",invalidOption:"请输入有效选项!",copyFailed:"复制失败",sheetNameTooLong:'Sheet名称 "{0}" 长度超过31个字符,已自动截断为 "{1}"'},validate:{invalidInput:"请输入正确内容"},tools:{keysLengthError:"keys 长度必须大于2 默认前两位为 label value"}},ie={"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",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"}},Ee={zh_cn:se,en:ie};let te=null;function Te(o=null){if(o){const{global:t}=o;return t.messages.value.zh_cn?t.mergeLocaleMessage("zh_cn",se):t.setLocaleMessage("zh_cn",se),t.messages.value.en?t.mergeLocaleMessage("en",ie):t.setLocaleMessage("en",ie),te=o,o}return te||(te=J.createI18n({legacy:!1,locale:"zh_cn",fallbackLocale:"zh_cn",messages:Ee})),te}function ue(){return te||Te()}function ce(){return ue().global.t}ae.extend(je),ae.extend(Pe);async function Ye(o,t){const{fields:n,range:r=1}=t;if(!n){const s=ce();throw new Error(s("excel.fieldsMappingRequired"))}let l=new xe.Workbook;await l.xlsx.load(o);const a={};return l.eachSheet(function(s,f){const c=[];s.eachRow(function(b,C){if(C>r){let $={},_=!0;Object.keys(n).forEach(S=>{const w=b.getCell(n[S]).value;$[S]=w,w&&(_=!1)}),_||c.push($)}}),a[s._name]=c}),l=null,a}const He={columnWidth:30};async function Ie(o,t,n=[],r={}){if(!o||!t)return;const{columnStyle:l}=r,{columnWidth:a}=He;t.forEach(c=>{c.width=c.width?c.width:a});const{workbook:s,worksheet:f}=Ke();f.columns=t,f.addRows(n),l&&await Ze(s,f,l);try{const c=await s.xlsx.writeBuffer(),b=new File([c],o,{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});Ne.saveAs(b)}catch(c){console.log(c)}}function Ke(){const o=new xe.Workbook;o.creator="distributor System",o.lastModifiedBy="distributor System",o.created=new Date,o.modified=new Date,o.lastPrinted=new Date;const t=o.addWorksheet("Sheet1");return{workbook:o,worksheet:t}}async function Ze(o,t,n){const r=Object.keys(n);for(const l of r){const a=n[l],{type:s}=a;switch(s){case"IMG":await Ge(o,t,l);break}}}async function Ge(o,t,n,r){const l=t.getColumn(n),a=l.values;t.getColumn(n).width=20,t.eachRow((s,f)=>{f>1&&(s.height=40)});for(let s=0,f=a.length;s<f;s++){if(s<2)continue;let c=a[s];c&&(t.getCell(l.letter+s).value="",await We(o,t,c,{width:100,height:50,col:l._number-1,row:s-1}))}}async function We(o,t,n,r){const{col:l,row:a,width:s,height:f}=r,{success:c,base64:b}=await Je(n,.3);if(c){const C=o.addImage({base64:b,extension:"jpeg"});t.addImage(C,{tl:{col:l,row:a},ext:{width:s,height:f}})}}function Je(o,t=1){const n=new Image;return n.setAttribute("crossOrigin","anonymous"),n.crossOrigin="anonymous",n.src=o,new Promise((r,l)=>{n.onload=()=>{const a=document.createElement("canvas");a.width=n.width,a.height=n.height,a.getContext("2d").drawImage(n,0,0,a.width,a.height),r({success:!0,base64:a.toDataURL("image/jpeg",t)})},n.onerror=()=>{r({success:!1})}})}function Qe(o){if(o<26)return String.fromCharCode(65+o);{const t=String.fromCharCode(65+Math.floor((o-26)/26)),n=String.fromCharCode(65+(o-26)%26);return t+n}}function Xe(o){return new Promise(t=>{setTimeout(()=>{t()},o)})}function et(o){return JSON.parse(JSON.stringify(o))}function tt(o){let t=[],n={},r=(l,a)=>Object.prototype.hasOwnProperty.call(l,a);for(const l of o){n[l.id]={...l,children:r(n,l.id)?n[l.id].children:[]};const a=n[l.id];l.pid==-1?t.push(a):(r(n,l.pid)||(n[l.pid]={children:[]}),n[l.pid].children.push(a))}return t}function de(o,t=" "){return o?o.split(t).filter(n=>n.trim()):[]}class fe{constructor(t,n=["label","value","labelEn"]){this.list=t,this.map=new Map(t.map(r=>{let l={...r,label:r[n[0]],value:r[n[1]]};return n[2]&&(l.labelEn=r[n[2]]),[r[n[1]],l]}))}getName(t,n){if(!this.has(t))return"-";const{label:r,labelEn:l}=this.map.get(t);return(n=="zh_cn"?r:l)||r||"-"}getTag(t){if(!this.has(t))return"info";const{tag:n="info"}=this.map.get(t);return n}getItem(t){return this.has(t)?this.map.get(t):null}getColor(t){if(!this.has(t))return null;const{color:n}=this.map.get(t);return n}has(t){return this.map.has(t)}}function nt(o,t=[],n="i18nName"){if(o.length==0)return new fe([]);if(t.length<2){const l=ce();throw new Error(l("tools.keysLengthError"))}let r=o.map(l=>{let a={};return n&&(a.labelEn=l[n]),t.forEach((s,f)=>{f===0?a.label=l[s]:f===1?a.value=l[s]:a[s]=l[s]}),a});return new fe(r)}function ot(o){return o?o.replace(/<[^>]+>/g,""):""}function lt(o){return o?(o.includes("\\\\u")&&(o=o.replace(/\\/g,"")),o.replace(/\\u[\dA-F]{4}/gi,t=>String.fromCharCode(parseInt(t.replace(/\\u/g,""),16)))):""}function rt(o,t=10){let n=1048576*t;return!(o.size>n)}function at(o){return Array.from(10).fill(0).map((n,r)=>o+"_"+r)}function st(o){let t={};return o.map((n,r)=>{let{key:l,option:a,type:s}=n,f=Qe(r);a?t[l]=`${f}---option`:s==="image"?t[l]=`${f}---image`:t[l]=f}),t}function it(o,t){return t.split(".").reduce((n,r)=>n&&n[r],o)}const Nt="",oe=(o,t)=>{const n=o.__vccOpts||o;for(const[r,l]of t)n[r]=l;return n},ve=oe({__name:"index",props:e.mergeModels({api:{type:Function},showCheckAll:{type:Boolean,default:!0},maxLimit:{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"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useAttrs(),{t:l,locale:a}=J.useI18n(),s=e.useModel(o,"modelValue"),f=e.ref(""),c=e.computed(()=>{if(r.remote!==void 0)return n.data;const p=de(f.value),{data:g,labelValue:v}=n,V=g||$.value;if(p.length==0)return V;const{label:q,labelEn:E}=v;let x=a.value=="en_us"?E||"i18nName":q;return p.length==1?V.filter(R=>R[x].toLowerCase().includes(p[0].toLowerCase())):V.filter(R=>{let B=!1;return B=p.some(le=>R[x].toLowerCase()==le.toLowerCase()),B})}),b=e.computed({get(){return r.multiple==null||s.value==null?!1:s.value.length==c.value.length},set(p){return p}}),C=t,$=e.ref([]),_=async()=>{const{data:p}=await n.api();$.value=[...p],C("success",$)};n.api&&_();const S=n.labelValue.label.split("-"),w=p=>{if(S.length==1){if(n.changeLocal)return l(p[n.labelValue.label]);let g=a.value=="en_us"?p[n.labelValue.labelEn||"i18nName"]:p[n.labelValue.label];return g=g||p[n.labelValue.label],g}else{let g=[];return S.forEach(v=>{g.push(p[v])}),g.join("-")}};function d(p){s.value=p?c.value.map(g=>g[n.labelValue.value]):[],C("change",s.value)}function m(p){n.optionClick(p),C("change",r["value-key"]?p:p[n.labelValue.value])}function T(p){return s.value.length>=n.maxLimit&&!s.value.includes(p[n.labelValue.value])}return(p,g)=>{const v=e.resolveComponent("el-checkbox"),V=e.resolveComponent("el-option"),q=e.resolveComponent("el-select");return e.openBlock(),e.createBlock(q,e.mergeProps({modelValue:s.value,"onUpdate:modelValue":g[1]||(g[1]=E=>s.value=E),filterable:"","collapse-tags":"","collapse-tags-tooltip":"","filter-method":e.unref(r).remote!=null?void 0:E=>f.value=E,clearable:""},e.unref(r),{onClear:o.optionClick}),{default:e.withCtx(()=>[e.unref(r).multiple!=null&&o.showCheckAll&&o.maxLimit==null?e.renderSlot(p.$slots,"header",{key:0},()=>[e.createVNode(v,{class:"mgl20",modelValue:b.value,"onUpdate:modelValue":g[0]||(g[0]=E=>b.value=E),onChange:d},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(p.$t("quan-xuan")),1)]),_:1},8,["modelValue"])],!0):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(E,x)=>(e.openBlock(),e.createBlock(V,{key:x,label:w(E),disabled:e.unref(r).multiple!=null&&o.maxLimit>0?T(E):!1,onClick:e.withModifiers(y=>m(E),["stop"]),value:e.unref(r)["value-key"]?E:E[o.labelValue.value]},null,8,["label","disabled","onClick","value"]))),128))]),_:3},16,["modelValue","filter-method","onClear"])}}},[["__scopeId","data-v-34eb8641"]]),At="",ct=e.defineComponent({props:{name:{tyepe:String,required:!0}}});function ut(o,t,n,r,l,a){const s=e.resolveComponent("el-icon");return e.openBlock(),e.createBlock(s,{class:"cmp-icon"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.name)))]),_:1})}const he=oe(ct,[["render",ut],["__scopeId","data-v-733f9daa"]]),dt={__name:"index",emits:["ok","no"],setup(o,{emit:t}){const n=t,r=ee.debounce(()=>{n("ok")},500);function l(){n("no")}return(a,s)=>{const f=e.resolveComponent("el-link"),c=e.resolveComponent("el-popconfirm");return e.openBlock(),e.createBlock(c,e.mergeProps(a.$attrs,{onConfirm:e.unref(r),onCancel:l}),{reference:e.withCtx(()=>[e.createVNode(f,{underline:"never",type:a.$attrs.type},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3},8,["type"])]),_:3},16,["onConfirm"])}}},qt="",ft=["accept"],ht=oe({__name:"index",props:{accept:{type:String,default:".xlsx,.xls"},loading:{type:Boolean,default:!1}},emits:["fileChange"],setup(o,{emit:t}){const n=t,r=e.ref(null);function l(a){let s=a.target.files[0];n("fileChange",s),r.value.value=null}return(a,s)=>{const f=e.resolveComponent("el-button");return e.openBlock(),e.createElementBlock("span",null,[e.createVNode(f,{loading:o.loading,class:"mgr10",onClick:s[0]||(s[0]=c=>r.value.click())},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(a.$t("dao-ru")),1)]),_:1},8,["loading"]),e.createElementVNode("input",{onChange:l,ref_key:"input",ref:r,accept:o.accept,style:{position:"absolute",width:"0px",height:"0px",opacity:"0"},type:"file"},null,40,ft)])}}},[["__scopeId","data-v-5f1449ad"]]);function me(o){let t={};return o.forEach(n=>{const{key:r,type:l,option:a={},value:s,dateType:f}=n;if(r)if(l=="input"&&(a!=null&&a.multiple))t[r]=de(s);else if(l=="date")if(f.includes("range")){const[c,b]=r;let[C,$]=s||[];C&&f=="daterange"&&(C=ae(C).format("YYYY-MM-DD 00:00:00"),$=ae($).format("YYYY-MM-DD 23:59:59")),t[c]=C,t[b]=$}else t[r]=s;else t[r]=s}),t}const Ut="",mt={key:0},pt={class:"btns"},gt={class:"left"},Ct={class:"right"},Le=oe({__name:"index",props:{form:{type:Object,required:!0}},emits:["confirm","reset","visibleChange"],setup(o,{expose:t,emit:n}){const r=o,l=n,a=e.ref(!0),s=e.ref(null),{t:f}=J.useI18n(),c=e.computed(()=>a.value?f("guan-bi"):f("zhan-kai"));function b(){l("confirm")}function C(m){m.option.onClear&&m.option.onClear(),l("confirm")}function $(){l("reset")}function _(){l("confirm")}function S(){return me(r.form.items)}const w=ee.cloneDeep(r.form.items);function d(){r.form.items.forEach(m=>{const T=w.find(p=>p.key==m.key);T&&(m.value=T.value)})}return t({getPrm:S,reset:d}),(m,T)=>{const p=e.resolveComponent("el-input"),g=e.resolveComponent("el-date-picker"),v=e.resolveComponent("el-form-item"),V=e.resolveComponent("el-form"),q=e.resolveComponent("el-link"),E=e.resolveComponent("el-button");return e.openBlock(),e.createElementBlock("div",{class:"searchBar-container mgt10 mgb10",onKeydown:e.withKeys(b,["enter"])},[e.createElementVNode("div",{class:"searchBar",style:e.normalizeStyle({height:a.value?"auto":"42px"})},[e.createVNode(V,{inline:"",model:o.form.data},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.form.items.filter(x=>!x.hidden),x=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:x.key},[x.type=="br"?(e.openBlock(),e.createElementBlock("br",mt)):(e.openBlock(),e.createBlock(v,{key:1,label:x.name},{default:e.withCtx(()=>{var y,R;return[x.type==="input"?(e.openBlock(),e.createBlock(p,{key:0,modelValue:x.value,"onUpdate:modelValue":B=>x.value=B,class:e.normalizeClass(((y=x.option)==null?void 0:y.class)||"w150"),placeholder:m.$t("qing-shu-ru"),clearable:""},null,8,["modelValue","onUpdate:modelValue","class","placeholder"])):x.type==="custom"?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(x.render),{key:1})):e.createCommentVNode("",!0),x.type==="select"?(e.openBlock(),e.createBlock(ve,e.mergeProps({key:2,class:((R=x.option)==null?void 0:R.class)||"w150",modelValue:x.value,"onUpdate:modelValue":B=>x.value=B},{ref_for:!0},x.option,{onChange:b,onClear:B=>C(x)}),null,16,["class","modelValue","onUpdate:modelValue","onClear"])):e.createCommentVNode("",!0),x.type==="date"?(e.openBlock(),e.createBlock(g,{key:3,class:e.normalizeClass({datetimerange:"w300",daterange:"w200"}[x.dateType]||"w100"),modelValue:x.value,"onUpdate:modelValue":B=>x.value=B,"value-format":{datetimerange:"YYYY-MM-DD HH:mm:ss",daterange:"YYYY-MM-DD"}[x.dateType]||"YYYY-MM-DD",type:x.dateType||"date",onFocus:B=>s.value=x,onChange:B=>_(),placeholder:m.$t("qing-xuan-ze"),"start-placeholder":m.$t("kai-shi-shi-jian"),"end-placeholder":m.$t("jie-shu-shi-jian")},null,8,["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",pt,[e.createElementVNode("div",gt,[e.renderSlot(m.$slots,"table-header-left",{},void 0,!0)]),e.createElementVNode("div",Ct,[e.createVNode(q,{underline:"never",class:"mgr10",onClick:T[0]||(T[0]=()=>{l("visibleChange",!a.value),a.value=!a.value})},{default:e.withCtx(()=>[e.createVNode(he,{name:a.value?"ArrowUp":"ArrowDown"},null,8,["name"]),e.createTextVNode(" "+e.toDisplayString(c.value),1)]),_:1}),e.createVNode(E,{type:"primary",onClick:b},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.$t("shai-xuan")),1)]),_:1}),e.createVNode(E,{type:"primary",onClick:$},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.$t("chong-zhi")),1)]),_:1}),e.renderSlot(m.$slots,"btn",{},void 0,!0)])])],32)}}},[["__scopeId","data-v-32ac9990"]]),Yt="",yt={class:"center"},bt=oe({__name:"index",props:{id:{type:String,required:!0},loading:{type:Boolean,default:!1},immediate:{type:Boolean,default:!0},searchForm:{type:Object,default:()=>({items:[],selections:[],showSearch:!1,showPage:!1,showShadow:!1,showCheckBox:!1,enableCellCopy:!0})},api:{type:Function},data:{type:Array},tableConfig:{type:Object,default:()=>({})}},setup(o,{expose:t}){const{t:n,locale:r}=J.useI18n(),l=o,a=e.ref(!1),s=e.ref([]);l.searchForm.selections=[],console.log("单元格复制功能默认启用,若不需要请在searchForm中设置enableCellCopy为false123",l.searchForm.enableCellCopy),l.searchForm.enableCellCopy==null&&(l.searchForm.enableCellCopy=!0);const f=ee.cloneDeep(l.searchForm.items),c=l.searchForm.pageNoKey||"pageNo",b=e.reactive({[c]:1,pageSize:10,total:0}),C=e.ref(null),$=e.ref(null),_=e.ref(450),S=ee.debounce(()=>{e.nextTick(()=>{if(!$.value)return;const i=$.value.getBoundingClientRect(),k=window.innerHeight,L=i.top,z=100,P=k-L-z,M=200;_.value=Math.max(P,M)})},100),w=()=>{S()},d=()=>{if(!l.searchForm.enableCellCopy)return!1;const u=C.value;if(!u||!u.$el)return!1;const i=u.$el;return i.classList.add("cell-copy-enabled"),i.setAttribute("tabindex","-1"),i.removeEventListener("mousedown",B),i.removeEventListener("mousemove",le),i.removeEventListener("mouseup",ge),i.removeEventListener("keydown",ye),i.addEventListener("mousedown",B),i.addEventListener("mousemove",le),i.addEventListener("mouseup",ge),i.addEventListener("keydown",ye),!0};e.onMounted(()=>{S(),window.addEventListener("resize",w),l.searchForm.enableCellCopy&&(document.addEventListener("mouseup",Be),document.addEventListener("mousedown",Oe),setTimeout(()=>{d()},500))}),e.onUpdated(()=>{l.searchForm.enableCellCopy&&setTimeout(()=>{d()},500)}),e.onUnmounted(()=>{if(window.removeEventListener("resize",w),l.searchForm.enableCellCopy){document.removeEventListener("mouseup",Be),document.removeEventListener("mousedown",Oe);const u=C.value;if(u&&u.$el){const i=u.$el;i.removeEventListener("mousedown",B),i.removeEventListener("mousemove",le),i.removeEventListener("mouseup",ge),i.removeEventListener("keydown",ye)}}});const m=e.computed(()=>be.value.height||_.value);let T;async function p(u){const{dataFormat:i}=l.tableConfig;u.pageNo!=1&&(u.nextSearchAfter=T),a.value=!0;const{code:k,data:L={}}=await l.api(u).finally(()=>{a.value=!1,l.searchForm.selections=[]});if(k==200){let z=L.rows||L.records||[];s.value=i?i(z):z,b.total=L.totalRows||L.total||0,T=L.nextSearchAfter,l.searchForm.enableCellCopy&&e.nextTick(()=>{setTimeout(()=>{d()},100)})}}function g(u={}){const{searchData:i=()=>({})}=l.tableConfig,k=i();p({...b,...me(l.searchForm.items),...u,...k})}function v(){const{reset:u}=l.tableConfig;u&&u(),l.searchForm.items.forEach(i=>{const k=f.find(L=>ee.isArray(i.key)&&ee.isArray(L.key)?i.key.join(",")==L.key.join(","):L.key==i.key);k&&(i.value=k.value)}),g()}l.api&&l.immediate&&g();function V(){return{...b,...me(l.searchForm.items)}}const q=()=>{const u=C.value;u&&u.clearSort()},E=e.reactive({storage:!0}),x=e.reactive({width:"auto",drag:!0,resizable:!0,maxFixedSize:0}),y=e.reactive({isSelecting:!1,startCell:null,endCell:null,selectedCells:[]}),R=u=>{const i=u.closest(".vxe-body--column");if(!i||i.classList.contains("col--checkbox")||i.classList.contains("col--seq"))return null;const k=i.closest(".vxe-body--row");if(!k)return null;const L=C.value;if(!L)return null;let z=-1;const P=k.getAttribute("data-rowid");if(P!=null)z=parseInt(P,10);else{const F=k.parentElement;z=Array.from(F.querySelectorAll(".vxe-body--row")).indexOf(k)}if(z<0)return null;let M=-1;const G=i.getAttribute("data-colid");if(G&&(M=L.getColumns().findIndex(I=>I.id===G)),M<0){const I=Array.from(k.querySelectorAll(".vxe-body--column")).indexOf(i),N=!!i.closest(".vxe-table--fixed-left-wrapper"),j=!!i.closest(".vxe-table--fixed-right-wrapper"),O=L.getColumns();if(N){const U=O.filter(A=>A.fixed==="left");I<U.length&&(M=O.indexOf(U[I]))}else if(j){const U=O.filter(A=>A.fixed==="right");I<U.length&&(M=O.indexOf(U[I]))}else{const U=l.searchForm.showCheckBox?1:0;M=O.filter(H=>H.fixed==="left").length+I-U}}return M<0?null:{rowIndex:z,colIndex:M,cell:i}},B=u=>{const i=R(u.target);if(!i){Ce();return}y.isSelecting=!0,y.startCell={rowIndex:i.rowIndex,colIndex:i.colIndex},y.endCell={...y.startCell},Fe(),De()},le=u=>{if(!y.isSelecting)return;const i=R(u.target);i&&(y.endCell={rowIndex:i.rowIndex,colIndex:i.colIndex},Fe(),De())},ge=()=>{y.isSelecting=!1},Ce=()=>{y.selectedCells=[],y.startCell=null,y.endCell=null;const u=C.value;if(!u)return;u.$el.querySelectorAll(".cell-selected, .cell-border-top, .cell-border-right, .cell-border-bottom, .cell-border-left").forEach(k=>{k.classList.remove("cell-selected","cell-border-top","cell-border-right","cell-border-bottom","cell-border-left")})},Fe=()=>{if(!y.startCell||!y.endCell){y.selectedCells=[];return}const u=y.startCell.rowIndex,i=y.endCell.rowIndex,k=y.startCell.colIndex,L=y.endCell.colIndex,z=Math.min(u,i),P=Math.max(u,i),M=Math.min(k,L),G=Math.max(k,L);y.selectedCells=[];for(let F=z;F<=P;F++)for(let I=M;I<=G;I++)y.selectedCells.push({rowIndex:F,colIndex:I})},De=()=>{e.nextTick(()=>{const u=C.value;if(!u)return;const i=u.$el;if(i.querySelectorAll(".cell-selected, .cell-border-top, .cell-border-right, .cell-border-bottom, .cell-border-left").forEach(N=>{N.classList.remove("cell-selected","cell-border-top","cell-border-right","cell-border-bottom","cell-border-left")}),y.selectedCells.length===0)return;const k=u.getColumns(),L=y.selectedCells.map(N=>N.rowIndex),z=y.selectedCells.map(N=>N.colIndex),P=Math.min(...L),M=Math.max(...L),G=Math.min(...z),F=Math.max(...z),I=[i.querySelector(".vxe-table--body-wrapper tbody"),i.querySelector(".vxe-table--fixed-left-wrapper tbody"),i.querySelector(".vxe-table--fixed-right-wrapper tbody")].filter(Boolean);y.selectedCells.forEach(({rowIndex:N,colIndex:j})=>{const O=k[j];if(!O)return;const U=O.fixed==="left",A=O.fixed==="right";for(const H of I){const re=H.querySelectorAll(".vxe-body--row")[N];if(!re)continue;const Q=Array.from(re.querySelectorAll(".vxe-body--column"));let D=null;if(U&&H.closest(".vxe-table--fixed-left-wrapper")){const K=k.filter(Z=>Z.fixed==="left").indexOf(O);D=Q[K]}else if(A&&H.closest(".vxe-table--fixed-right-wrapper")){const K=k.filter(Z=>Z.fixed==="right").indexOf(O);D=Q[K]}else if(!U&&!A&&H.closest(".vxe-table--body-wrapper")){const X=l.searchForm.showCheckBox?1:0,K=k.filter(we=>we.fixed==="left").length,Z=j-K;D=Q[Z+X]}if(D&&!D.classList.contains("col--checkbox")&&!D.classList.contains("col--seq")){D.classList.add("cell-selected"),N===P&&D.classList.add("cell-border-top"),N===M&&D.classList.add("cell-border-bottom"),j===G&&D.classList.add("cell-border-left"),j===F&&D.classList.add("cell-border-right");break}}})})},Bt=async()=>{if(y.selectedCells.length===0)return;const u=C.value;if(!u)return;const i=u.$el,k=u.getColumns(),L=[...new Set(y.selectedCells.map(F=>F.rowIndex))].sort((F,I)=>F-I),z=[...new Set(y.selectedCells.map(F=>F.colIndex))].sort((F,I)=>F-I),P=[i.querySelector(".vxe-table--body-wrapper tbody"),i.querySelector(".vxe-table--fixed-left-wrapper tbody"),i.querySelector(".vxe-table--fixed-right-wrapper tbody")].filter(Boolean),M=[];L.forEach(F=>{const I=[];z.forEach(N=>{const j=k[N];if(!j){I.push("");return}const O=j.fixed==="left",U=j.fixed==="right";let A="";for(const H of P){const re=H.querySelectorAll(".vxe-body--row")[F];if(!re)continue;const Q=Array.from(re.querySelectorAll(".vxe-body--column"));let D=null;if(O&&H.closest(".vxe-table--fixed-left-wrapper")){const K=k.filter(Z=>Z.fixed==="left").indexOf(j);D=Q[K]}else if(U&&H.closest(".vxe-table--fixed-right-wrapper")){const K=k.filter(Z=>Z.fixed==="right").indexOf(j);D=Q[K]}else if(!O&&!U&&H.closest(".vxe-table--body-wrapper")){const X=l.searchForm.showCheckBox?1:0,K=k.filter(we=>we.fixed==="left").length,Z=N-K;D=Q[Z+X]}if(D&&!D.classList.contains("col--checkbox")&&!D.classList.contains("col--seq")){A=D.innerText||D.textContent||"",A=A.trim(),A=A.replace(/\n/g," ").replace(/\s+/g," ");break}}I.push(A)}),M.push(I.join(" "))});const G=M.join(`
2
- `);try{await navigator.clipboard.writeText(G)}catch(F){console.error("复制失败:",F)}},ye=u=>{l.searchForm.enableCellCopy&&((u.ctrlKey||u.metaKey)&&u.key==="c"?y.selectedCells.length>0&&(u.preventDefault(),u.stopPropagation(),Bt()):u.key==="Escape"&&Ce())},Be=()=>{y.isSelecting=!1},Oe=u=>{const i=C.value;if(!i||!i.$el)return;i.$el.contains(u.target)||Ce()},be=e.computed(()=>{const{customConfig:u,columnConfig:i,...k}=l.tableConfig;return{headerAlign:"left",align:"center",customConfig:{...E,...u},columnConfig:{...x,...i},"virtual-x-config":{enabled:!1,scrollToLeftOnChange:!1},"virtual-y-config":{enabled:!0,gt:100},...k}}),Ot=u=>{b.pageNo=u,g()},zt=u=>{b.pageSize=u,b[c]=1,g()};function ze(){const u=C.value.getCheckboxRecords();l.searchForm.selections=u}const Me=u=>{const i=C.value;if(i){i.toggleCheckboxRow(u);const k=C.value.getCheckboxRecords();l.searchForm.selections=k}};return t({tableRef:C,getList:g,getPrm:V,clearSort:q,calculateTableHeight:S}),(u,i)=>{var F;const k=e.resolveComponent("el-button"),L=e.resolveComponent("el-checkbox"),z=e.resolveComponent("el-text"),P=e.resolveComponent("vxe-column"),M=e.resolveComponent("VxeTable"),G=e.resolveComponent("el-pagination");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({box:o.searchForm.showShadow})},[o.searchForm.showSearch?(e.openBlock(),e.createBlock(Le,{key:0,form:o.searchForm,onReset:v,onConfirm:i[1]||(i[1]=I=>g()),onVisibleChange:e.unref(S)},{btn:e.withCtx(()=>[e.renderSlot(u.$slots,"search-bar-btn",{},void 0,!0),e.createVNode(k,{round:"",onClick:i[0]||(i[0]=I=>C.value.openCustom())},{default:e.withCtx(()=>[e.createVNode(he,{name:"Tools"})]),_:1})]),_:3},8,["form","onVisibleChange"])):e.createCommentVNode("",!0),e.renderSlot(u.$slots,"table-header-left",{},void 0,!0),e.createElementVNode("div",{ref_key:"tableContentRef",ref:$},[e.createVNode(M,e.mergeProps({id:o.id,ref_key:"tableRef",ref:C,loading:o.loading||a.value,data:o.api?s.value:o.data,border:""},be.value,{height:m.value,onCheckboxChange:ze,onCheckboxAll:ze,onSortChange:(F=be.value["sort-config"])==null?void 0:F.sortChange}),{default:e.withCtx(()=>[o.searchForm.showCheckBox==null||o.searchForm.showCheckBox?(e.openBlock(),e.createBlock(P,{key:0,type:"checkbox",width:e.unref(r)=="zh_cn"?80:150,title:u.$t("xu-hao"),fixed:"left"},{checkbox:e.withCtx(({rowIndex:I,row:N,checked:j,disabled:O,indeterminate:U})=>[e.createElementVNode("div",yt,[j?(e.openBlock(),e.createBlock(L,{key:0,checked:!0,disabled:O,size:"default",onClick:e.withModifiers(A=>!O&&Me(N),["stop"])},null,8,["disabled","onClick"])):(e.openBlock(),e.createBlock(L,{key:1,disabled:O,checked:!1,size:"default",onClick:e.withModifiers(A=>!O&&Me(N),["stop"])},null,8,["disabled","onClick"])),e.createVNode(z,{type:"info",class:"mgl5"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(I+1),1)]),_:2},1024)])]),_:1},8,["width","title"])):e.createCommentVNode("",!0),e.renderSlot(u.$slots,"default",{},void 0,!0)]),_:3},16,["id","loading","data","height","onSortChange"])],512),o.searchForm.showPage?(e.openBlock(),e.createBlock(G,{key:1,"current-page":b[e.unref(c)],"onUpdate:currentPage":i[2]||(i[2]=I=>b[e.unref(c)]=I),class:"myPagination mgt10",background:"",layout:"total, sizes, prev, pager, next",total:b.total,"page-size":b.pageSize,"page-sizes":[10,50,100,500],onCurrentChange:Ot,onSizeChange:zt},null,8,["current-page","total","page-size"])):e.createCommentVNode("",!0)],2)}}},[["__scopeId","data-v-8b6ee274"]]),wt={__name:"index",props:{sheetsConfig:{type:Object,required:!0},fileName:{type:String,required:!0}},setup(o){const t=o;function n(){Ie(t.fileName,t.sheetsConfig)}return(r,l)=>{const a=e.resolveComponent("el-link");return e.openBlock(),e.createBlock(a,e.mergeProps({type:"primary",underline:"never"},r.$attrs,{onClick:n}),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.$t("xia-zai-dao-ru-mo-ban")),1)]),_:1},16)}}};function xt(o,t={}){const n=ce(),r={inForm:!0,required:!0,...t},l={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+)*$/}[o],{inForm:a,value:s,required:f,msg:c=n("validate.invalidInput")}=r;return a?function(b,C,$){if(f){l.test(C)?$():$(new Error(c));return}C&&!l.test(C)?$(new Error(c)):$()}:l.test(s)}class kt{constructor(t={}){this.config={clientCode:t.clientCode||"one-portal",casServerUrl:`https://one-portal${t.isTest?"-test":""}.joy-group.com/api`,casPortalUrl:`https://one-portal${t.isTest?"-test":""}.joy-group.com`,serviceUrl:t.serviceUrl||window.location.origin+"/cas/callback",tokenKey:t.tokenKey||"one_portal_token",userKey:t.userKey||"one_portal_user",debug:t.debug||!1,autoLogin:t.autoLogin!==!1,loginCallback:t.loginCallback||null,logoutCallback:t.logoutCallback||null,errorCallback:t.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 t=localStorage.getItem(this.config.userKey);t&&(this.user=JSON.parse(t)),this.log("从本地存储加载数据:",{token:!!this.token,user:!!this.user})}catch(t){this.log("加载本地存储数据失败:",t)}}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(t){this.log("保存到本地存储失败:",t)}}clearStorage(){try{localStorage.removeItem(this.config.tokenKey),localStorage.removeItem(this.config.userKey),this.log("本地存储已清除")}catch(t){this.log("清除本地存储失败:",t)}}isLoggedIn(){return!!(this.token&&this.user)}getUser(){return this.user}getToken(){return this.token}login(){const t=`${this.config.casPortalUrl}?appCode=${this.config.clientCode}&redirectUrl=${encodeURIComponent(this.config.serviceUrl)}`;this.log("跳转到CAS登录页面:",t),window.location.href=t}async validateTicket(t){try{this.log("验证ST票据:",t);const n=await fetch(`${this.config.casServerUrl}/auth/validateST?ticket=${t}`,{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 t=new URL(window.location);t.searchParams.delete("ticket"),window.history.replaceState({},document.title,t.toString())}async logout(t=!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(),t&&this.login()}catch(n){this.log("登出失败:",n),this.handleError(n)}}async request(t,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 l=await fetch(t,r);return l.status===401?(this.log("Token已过期,需要重新登录"),this.logout(),null):l}catch(l){throw this.log("请求失败:",l),l}}async fetchUserInfo(){try{const t=await this.request(`${this.config.casServerUrl}/auth/user`);if(t&&t.ok){const n=await t.json();if(n.success&&n.data)return this.user=n.data,this.saveToStorage(),this.user}return null}catch(t){return this.log("获取用户信息失败:",t),null}}async refreshToken(){this.log("Token刷新功能暂未实现")}handleError(t){this.log("发生错误:",t),this.config.errorCallback&&this.config.errorCallback(t)}log(...t){this.config.debug&&console.log("[OnePortal CAS SDK]",...t)}checkLoginStatus(){return!this.isLoggedIn()&&this.config.autoLogin?(this.login(),!1):this.isLoggedIn()}setConfig(t,n){this.config[t]=n}getConfig(t){return this.config[t]}}function _t(o,t={}){const r=Object.assign({manual:!1,log:!1,params:null,format:null},t),{manual:l,log:a,params:s={},cb:f,format:c}=r,b=e.ref([]),C=e.ref(!1),$=_=>{const S=_||s;C.value=!0,o(S).then(w=>{const{code:d,data:m,msg:T}=w;if(f){const{records:p,rows:g}=m||{},v=p||g?p||g:m;b.value=pe(v,c),f(w)}if(m){if(m.records!=null||m.rows!=null){const{records:p,rows:g,total:v=0}=m||{};S&&S.total!=null&&(s.total=parseInt(v)),b.value=pe(p||g||[],c)}else b.value=pe(m,c);a&&console.log("useRequest-res",b.value)}}).catch(w=>{f&&(console.log("useRequestErr",w),f({code:500}))}).finally(()=>{C.value=!1})};return l||$(),[C,b,$]}function St(o){const t=e.ref(o),n=e.ref(""),r=e.ref("");return e.watch(t,l=>{const a=l||["",""];n.value=a[0],r.value=a[1]}),[t,n,r]}function $t(o){return Object.prototype.toString.call(o).slice(8,-1).toLowerCase()}function pe(o,t){if(!t)return o;if(o instanceof Array)return o.map(r=>{let l={};return t.forEach(a=>l[a]=r[a]),l});let n={};return t.forEach(r=>n[r]=o[r]),n}function Et(o,t=[]){const{locale:n}=J.useI18n(),r=e.ref(o());return e.watch([n,...t],()=>{r.value=o()},{immediate:!0}),r}function Tt(o,t="zh_cn",n="en_us"){if(!o)return"-";const r={en_us:n,zh_cn:t},a=ue().global.locale.value;return o[r[a]]||o[t]||"-"}function It(o,t){let n=W.mapState;return typeof o=="string"&&o.length>0&&(n=W.createNamespacedHelpers(o).mapState),Ve(t,n)}function vt(o,t){let n=W.mapGetters;return typeof o=="string"&&o.length>0&&(n=W.createNamespacedHelpers(o).mapGetters),Ve(t,n)}function Lt(o,t){let n=W.mapActions;return typeof o=="string"&&o.length>0&&(n=W.createNamespacedHelpers(o).mapActions),Vt(t,n)}function Ve(o,t){const n=W.useStore(),r=t(o),l={};return Object.keys(r).forEach(a=>{const s=r[a].bind({$store:n});l[a]=e.computed(s)}),l}function Vt(o,t){const n=W.useStore(),r=t(o),l={};return Object.keys(r).forEach(a=>{l[a]=r[a].bind({$store:n})}),l}const Ft={__name:"EnumRender",props:{renderOpts:{type:Object,default:()=>({enum:{}})},params:{type:Object}},setup(o){const t=o,n=t.params.row[t.params.column.field];return(r,l)=>{const a=e.resolveComponent("el-text");return o.renderOpts.text?(e.openBlock(),e.createBlock(a,{key:0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.renderOpts.enum.getName(e.unref(n))),1)]),_:1})):(e.openBlock(),e.createBlock(a,{key:1,type:o.renderOpts.enum.getTag(e.unref(n))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.renderOpts.enum.getName(e.unref(n))),1)]),_:1},8,["type"]))}}};function Dt(){ne.VxeUI.renderer.add("Enum",{renderTableDefault(o,t){return[null,void 0].includes(t.row[t.column.field])?"-":React.createElement(Ft,{renderOpts:o,params:t})}}),ne.VxeUI.renderer.add("InputNumber",{renderTableDefault(o,t){return React.createElement(Y.ElInputNumber,{"v-model":t.row[t.column.field],...o.props,"step-strictly":!0,"value-on-clear":0})}}),ne.VxeUI.renderer.add("TrueFalse",{renderTableDefault(o,t){const{locale:n}=J.useI18n();let r=n.value=="zh_cn";return React.createElement(Y.ElText,{type:t.row[t.column.field]?"success":"danger"},t.row[t.column.field]?r?"是":"YES":r?"否":"NO")}}),ne.VxeUI.renderer.add("I18n",{renderTableDefault(o,t){const{locale:n}=J.useI18n();let r=n.value=="zh_cn"?t.column.field:o.fieldEn;return t.row[r]||t.row[t.column.field]}}),ne.VxeUI.renderer.add("Link",{renderTableDefault(o,t){var f;let n=t.column.field;const r=Re.useRouter(),{multiple:l,to:a}=o;if(!l)return React.createElement(Y.ElLink,{underline:"never",type:"primary",onclick:()=>r.push({path:a,query:{[n]:t.row[n]}})},t.row[n]);const s=((f=t.row[n])==null?void 0:f.split(","))||[];return s.map((c,b)=>React.createElement("span",null,React.createElement(Y.ElLink,{underline:"never",type:"primary",onclick:()=>r.push({path:a,query:{[n]:c}})},c),b<s.length-1?",":""))}})}h.CmpDictionary=ve,h.CmpIcon=he,h.ConfrimButton=dt,h.DownExcelTemp=wt,h.ImportButton=ht,h.LayOutForm=Ae,h.ListPage=bt,h.OnePortalCasSDK=kt,h.SearchBar=Le,h.StatusMap=fe,h._toRaw=et,h._typeOf=$t,h.arrToStatusMap=nt,h.arrayToTree=tt,h.checkFileSize=rt,h.creatValidator=xt,h.createImportFields=st,h.createListPageId=at,h.en=ie,h.exportExcel=Ie,h.getI18n=ue,h.getI18nT=ce,h.getLocaleValue=Tt,h.getValueBykey=it,h.importExcel=Ye,h.messages=Ee,h.registerVxeRenderers=Dt,h.setupI18n=Te,h.sleep=Xe,h.stringToArray=de,h.stripHtmlTags=ot,h.unicode2Str=lt,h.useActions=Lt,h.useDatePicker=St,h.useGetters=vt,h.useI18nReState=Et,h.useRequest=_t,h.useState=It,h.zhCn=se,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
1
+ (function(h,K){typeof exports=="object"&&typeof module<"u"?K(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"],K):(h=typeof globalThis<"u"?globalThis:h||self,K(h.JoyAdminComponents={},h.ElementPlus,h.Vue,h.fileSaver,h.ExcelJS,h.dayjs,h.VueI18n,h._,h.VueRouter,h.Vuex,h.VxeUI))})(this,function(h,K,e,Ke,$e,se,Q,te,Ie,J,oe){"use strict";const He=e.defineComponent({name:"LayOutForm",setup(o,{slots:t,attrs:n,emit:r}){const a=e.ref(null),s=()=>t.default?t.default().filter(d=>d.type!==Symbol.for("v-cmt")).map(d=>d.type===Symbol.for("v-fgt")?d.children:d).flat().map(d=>{var u;return e.h(K.ElCol,{span:((u=d.props)==null?void 0:u.span)||24},{default:()=>d})}):null;e.onMounted(()=>{r("ref",a.value)});function l(){return e.h(K.ElForm,{...n,ref:a},()=>e.h(K.ElRow,{gutter:n.gutter??20},{default:()=>s()}))}return l}});var Ee=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Te(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var Le={exports:{}};(function(o,t){(function(n,r){o.exports=r()})(Ee,function(){var n="minute",r=/[+-]\d\d(?::?\d\d)?/g,a=/([+-]|\d\d)/g;return function(s,l,d){var u=l.prototype;d.utc=function(f){var m={date:f,utc:!0,args:arguments};return new l(m)},u.utc=function(f){var m=d(this.toDate(),{locale:this.$L,utc:!0});return f?m.add(this.utcOffset(),n):m},u.local=function(){return d(this.toDate(),{locale:this.$L,utc:!1})};var _=u.parse;u.parse=function(f){f.utc&&(this.$u=!0),this.$utils().u(f.$offset)||(this.$offset=f.$offset),_.call(this,f)};var $=u.init;u.init=function(){if(this.$u){var f=this.$d;this.$y=f.getUTCFullYear(),this.$M=f.getUTCMonth(),this.$D=f.getUTCDate(),this.$W=f.getUTCDay(),this.$H=f.getUTCHours(),this.$m=f.getUTCMinutes(),this.$s=f.getUTCSeconds(),this.$ms=f.getUTCMilliseconds()}else $.call(this)};var S=u.utcOffset;u.utcOffset=function(f,m){var I=this.$utils().u;if(I(f))return this.$u?0:I(this.$offset)?S.call(this):this.$offset;if(typeof f=="string"&&(f=function(v){v===void 0&&(v="");var A=v.match(r);if(!A)return null;var x=(""+A[0]).match(a)||["-",0,0],b=x[0],q=60*+x[1]+ +x[2];return q===0?0:b==="+"?q:-q}(f),f===null))return this;var p=Math.abs(f)<=16?60*f:f;if(p===0)return this.utc(m);var C=this.clone();if(m)return C.$offset=p,C.$u=!1,C;var L=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();return(C=this.local().add(p+L,n)).$offset=p,C.$x.$localOffset=L,C};var k=u.format;u.format=function(f){var m=f||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return k.call(this,m)},u.valueOf=function(){var f=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*f},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var y=u.toDate;u.toDate=function(f){return f==="s"&&this.$offset?d(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():y.call(this)};var g=u.diff;u.diff=function(f,m,I){if(f&&this.$u===f.$u)return g.call(this,f,m,I);var p=this.local(),C=d(f).local();return g.call(p,C,m,I)}}})})(Le);var Ze=Le.exports;const Ge=Te(Ze);var Fe={exports:{}};(function(o,t){(function(n,r){o.exports=r()})(Ee,function(){var n={year:0,month:1,day:2,hour:3,minute:4,second:5},r={};return function(a,s,l){var d,u=function(k,y,g){g===void 0&&(g={});var f=new Date(k),m=function(I,p){p===void 0&&(p={});var C=p.timeZoneName||"short",L=I+"|"+C,v=r[L];return v||(v=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:I,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:C}),r[L]=v),v}(y,g);return m.formatToParts(f)},_=function(k,y){for(var g=u(k,y),f=[],m=0;m<g.length;m+=1){var I=g[m],p=I.type,C=I.value,L=n[p];L>=0&&(f[L]=parseInt(C,10))}var v=f[3],A=v===24?0:v,x=f[0]+"-"+f[1]+"-"+f[2]+" "+A+":"+f[4]+":"+f[5]+":000",b=+k;return(l.utc(x).valueOf()-(b-=b%1e3))/6e4},$=s.prototype;$.tz=function(k,y){k===void 0&&(k=d);var g,f=this.utcOffset(),m=this.toDate(),I=m.toLocaleString("en-US",{timeZone:k}),p=Math.round((m-new Date(I))/1e3/60),C=15*-Math.round(m.getTimezoneOffset()/15)-p;if(!Number(C))g=this.utcOffset(0,y);else if(g=l(I,{locale:this.$L}).$set("millisecond",this.$ms).utcOffset(C,!0),y){var L=g.utcOffset();g=g.add(f-L,"minute")}return g.$x.$timezone=k,g},$.offsetName=function(k){var y=this.$x.$timezone||l.tz.guess(),g=u(this.valueOf(),y,{timeZoneName:k}).find(function(f){return f.type.toLowerCase()==="timezonename"});return g&&g.value};var S=$.startOf;$.startOf=function(k,y){if(!this.$x||!this.$x.$timezone)return S.call(this,k,y);var g=l(this.format("YYYY-MM-DD HH:mm:ss:SSS"),{locale:this.$L});return S.call(g,k,y).tz(this.$x.$timezone,!0)},l.tz=function(k,y,g){var f=g&&y,m=g||y||d,I=_(+l(),m);if(typeof k!="string")return l(k).tz(m);var p=function(A,x,b){var q=A-60*x*1e3,P=_(q,b);if(x===P)return[q,x];var M=_(q-=60*(P-x)*1e3,b);return P===M?[q,P]:[A-60*Math.min(P,M)*1e3,Math.max(P,M)]}(l.utc(k,f).valueOf(),I,m),C=p[0],L=p[1],v=l(C).utcOffset(L);return v.$x.$timezone=m,v},l.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},l.tz.setDefault=function(k){d=k}}})})(Fe);var We=Fe.exports;const Je=Te(We),ie={"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":"展开",excel:{fieldsMappingRequired:"请输入列字段映射",invalidInput:"非法输入",invalidOption:"请输入有效选项!",copyFailed:"复制失败",sheetNameTooLong:'Sheet名称 "{0}" 长度超过31个字符,已自动截断为 "{1}"'},validate:{invalidInput:"请输入正确内容"},tools:{keysLengthError:"keys 长度必须大于2 默认前两位为 label value"}},ce={"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",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"}},ve={zh_cn:ie,en:ce};let ne=null;function Ve(o=null){if(o){const{global:t}=o;return t.messages.value.zh_cn?t.mergeLocaleMessage("zh_cn",ie):t.setLocaleMessage("zh_cn",ie),t.messages.value.en?t.mergeLocaleMessage("en",ce):t.setLocaleMessage("en",ce),ne=o,o}return ne||(ne=Q.createI18n({legacy:!1,locale:"zh_cn",fallbackLocale:"zh_cn",messages:ve})),ne}function de(){return ne||Ve()}function ue(){return de().global.t}se.extend(Ge),se.extend(Je);async function Qe(o,t){const{fields:n,range:r=1}=t;if(!n){const l=ue();throw new Error(l("excel.fieldsMappingRequired"))}let a=new $e.Workbook;await a.xlsx.load(o);const s={};return a.eachSheet(function(l,d){const u=[];l.eachRow(function(_,$){if($>r){let S={},k=!0;Object.keys(n).forEach(y=>{const g=_.getCell(n[y]).value;S[y]=g,g&&(k=!1)}),k||u.push(S)}}),s[l._name]=u}),a=null,s}const Xe={columnWidth:30};async function De(o,t,n=[],r={}){if(!o||!t)return;const{columnStyle:a}=r,{columnWidth:s}=Xe;t.forEach(u=>{u.width=u.width?u.width:s});const{workbook:l,worksheet:d}=et();d.columns=t,d.addRows(n),a&&await tt(l,d,a);try{const u=await l.xlsx.writeBuffer(),_=new File([u],o,{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});Ke.saveAs(_)}catch(u){console.log(u)}}function et(){const o=new $e.Workbook;o.creator="distributor System",o.lastModifiedBy="distributor System",o.created=new Date,o.modified=new Date,o.lastPrinted=new Date;const t=o.addWorksheet("Sheet1");return{workbook:o,worksheet:t}}async function tt(o,t,n){const r=Object.keys(n);for(const a of r){const s=n[a],{type:l}=s;switch(l){case"IMG":await nt(o,t,a);break}}}async function nt(o,t,n,r){const a=t.getColumn(n),s=a.values;t.getColumn(n).width=20,t.eachRow((l,d)=>{d>1&&(l.height=40)});for(let l=0,d=s.length;l<d;l++){if(l<2)continue;let u=s[l];u&&(t.getCell(a.letter+l).value="",await ot(o,t,u,{width:100,height:50,col:a._number-1,row:l-1}))}}async function ot(o,t,n,r){const{col:a,row:s,width:l,height:d}=r,{success:u,base64:_}=await lt(n,.3);if(u){const $=o.addImage({base64:_,extension:"jpeg"});t.addImage($,{tl:{col:a,row:s},ext:{width:l,height:d}})}}function lt(o,t=1){const n=new Image;return n.setAttribute("crossOrigin","anonymous"),n.crossOrigin="anonymous",n.src=o,new Promise((r,a)=>{n.onload=()=>{const s=document.createElement("canvas");s.width=n.width,s.height=n.height,s.getContext("2d").drawImage(n,0,0,s.width,s.height),r({success:!0,base64:s.toDataURL("image/jpeg",t)})},n.onerror=()=>{r({success:!1})}})}function rt(o){if(o<26)return String.fromCharCode(65+o);{const t=String.fromCharCode(65+Math.floor((o-26)/26)),n=String.fromCharCode(65+(o-26)%26);return t+n}}function at(o){return new Promise(t=>{setTimeout(()=>{t()},o)})}function st(o){return JSON.parse(JSON.stringify(o))}function it(o){let t=[],n={},r=(a,s)=>Object.prototype.hasOwnProperty.call(a,s);for(const a of o){n[a.id]={...a,children:r(n,a.id)?n[a.id].children:[]};const s=n[a.id];a.pid==-1?t.push(s):(r(n,a.pid)||(n[a.pid]={children:[]}),n[a.pid].children.push(s))}return t}function fe(o,t=" "){return o?o.split(t).filter(n=>n.trim()):[]}class he{constructor(t,n=["label","value","labelEn"]){this.list=t,this.map=new Map(t.map(r=>{let a={...r,label:r[n[0]],value:r[n[1]]};return n[2]&&(a.labelEn=r[n[2]]),[r[n[1]],a]}))}getName(t,n){if(!this.has(t))return"-";const{label:r,labelEn:a}=this.map.get(t);return(n=="zh_cn"?r:a)||r||"-"}getTag(t){if(!this.has(t))return"info";const{tag:n="info"}=this.map.get(t);return n}getItem(t){return this.has(t)?this.map.get(t):null}getColor(t){if(!this.has(t))return null;const{color:n}=this.map.get(t);return n}has(t){return this.map.has(t)}}function ct(o,t=[],n="i18nName"){if(o.length==0)return new he([]);if(t.length<2){const a=ue();throw new Error(a("tools.keysLengthError"))}let r=o.map(a=>{let s={};return n&&(s.labelEn=a[n]),t.forEach((l,d)=>{d===0?s.label=a[l]:d===1?s.value=a[l]:s[l]=a[l]}),s});return new he(r)}function ut(o){return o?o.replace(/<[^>]+>/g,""):""}function dt(o){return o?(o.includes("\\\\u")&&(o=o.replace(/\\/g,"")),o.replace(/\\u[\dA-F]{4}/gi,t=>String.fromCharCode(parseInt(t.replace(/\\u/g,""),16)))):""}function ft(o,t=10){let n=1048576*t;return!(o.size>n)}function ht(o){return Array.from(10).fill(0).map((n,r)=>o+"_"+r)}function mt(o){let t={};return o.map((n,r)=>{let{key:a,option:s,type:l}=n,d=rt(r);s?t[a]=`${d}---option`:l==="image"?t[a]=`${d}---image`:t[a]=d}),t}function pt(o,t){return t.split(".").reduce((n,r)=>n&&n[r],o)}const Ht="",le=(o,t)=>{const n=o.__vccOpts||o;for(const[r,a]of t)n[r]=a;return n},Be=le({__name:"index",props:e.mergeModels({api:{type:Function},showCheckAll:{type:Boolean,default:!0},maxLimit:{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"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useAttrs(),{t:a,locale:s}=Q.useI18n(),l=e.useModel(o,"modelValue"),d=e.ref(""),u=e.computed(()=>{if(r.remote!==void 0)return n.data;const p=fe(d.value),{data:C,labelValue:L}=n,v=C||S.value;if(p.length==0)return v;const{label:A,labelEn:x}=L;let b=s.value=="en_us"?x||"i18nName":A;return p.length==1?v.filter(P=>P[b].toLowerCase().includes(p[0].toLowerCase())):v.filter(P=>{let M=!1;return M=p.some(Ce=>P[b].toLowerCase()==Ce.toLowerCase()),M})}),_=e.computed({get(){return r.multiple==null||l.value==null?!1:l.value.length==u.value.length},set(p){return p}}),$=t,S=e.ref([]),k=async()=>{const{data:p}=await n.api();S.value=[...p],$("success",S)};n.api&&k();const y=n.labelValue.label.split("-"),g=p=>{if(y.length==1){if(n.changeLocal)return a(p[n.labelValue.label]);let C=s.value=="en_us"?p[n.labelValue.labelEn||"i18nName"]:p[n.labelValue.label];return C=C||p[n.labelValue.label],C}else{let C=[];return y.forEach(L=>{C.push(p[L])}),C.join("-")}};function f(p){l.value=p?u.value.map(C=>C[n.labelValue.value]):[],$("change",l.value)}function m(p){n.optionClick(p),$("change",r["value-key"]?p:p[n.labelValue.value])}function I(p){return l.value.length>=n.maxLimit&&!l.value.includes(p[n.labelValue.value])}return(p,C)=>{const L=e.resolveComponent("el-checkbox"),v=e.resolveComponent("el-option"),A=e.resolveComponent("el-select");return e.openBlock(),e.createBlock(A,e.mergeProps({modelValue:l.value,"onUpdate:modelValue":C[1]||(C[1]=x=>l.value=x),filterable:"","collapse-tags":"","collapse-tags-tooltip":"","filter-method":e.unref(r).remote!=null?void 0:x=>d.value=x,clearable:""},e.unref(r),{onClear:o.optionClick}),{default:e.withCtx(()=>[e.unref(r).multiple!=null&&o.showCheckAll&&o.maxLimit==null?e.renderSlot(p.$slots,"header",{key:0},()=>[e.createVNode(L,{class:"mgl20",modelValue:_.value,"onUpdate:modelValue":C[0]||(C[0]=x=>_.value=x),onChange:f},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(p.$t("quan-xuan")),1)]),_:1},8,["modelValue"])],!0):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,(x,b)=>(e.openBlock(),e.createBlock(v,{key:b,label:g(x),disabled:e.unref(r).multiple!=null&&o.maxLimit>0?I(x):!1,onClick:e.withModifiers(q=>m(x),["stop"]),value:e.unref(r)["value-key"]?x:x[o.labelValue.value]},null,8,["label","disabled","onClick","value"]))),128))]),_:3},16,["modelValue","filter-method","onClear"])}}},[["__scopeId","data-v-34eb8641"]]),Gt="",gt=e.defineComponent({props:{name:{tyepe:String,required:!0}}});function Ct(o,t,n,r,a,s){const l=e.resolveComponent("el-icon");return e.openBlock(),e.createBlock(l,{class:"cmp-icon"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.name)))]),_:1})}const me=le(gt,[["render",Ct],["__scopeId","data-v-733f9daa"]]),yt={__name:"index",emits:["ok","no"],setup(o,{emit:t}){const n=t,r=te.debounce(()=>{n("ok")},500);function a(){n("no")}return(s,l)=>{const d=e.resolveComponent("el-link"),u=e.resolveComponent("el-popconfirm");return e.openBlock(),e.createBlock(u,e.mergeProps(s.$attrs,{onConfirm:e.unref(r),onCancel:a}),{reference:e.withCtx(()=>[e.createVNode(d,{underline:"never",type:s.$attrs.type},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:3},8,["type"])]),_:3},16,["onConfirm"])}}},Wt="",bt=["accept"],wt=le({__name:"index",props:{accept:{type:String,default:".xlsx,.xls"},loading:{type:Boolean,default:!1}},emits:["fileChange"],setup(o,{emit:t}){const n=t,r=e.ref(null);function a(s){let l=s.target.files[0];n("fileChange",l),r.value.value=null}return(s,l)=>{const d=e.resolveComponent("el-button");return e.openBlock(),e.createElementBlock("span",null,[e.createVNode(d,{loading:o.loading,class:"mgr10",onClick:l[0]||(l[0]=u=>r.value.click())},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.$t("dao-ru")),1)]),_:1},8,["loading"]),e.createElementVNode("input",{onChange:a,ref_key:"input",ref:r,accept:o.accept,style:{position:"absolute",width:"0px",height:"0px",opacity:"0"},type:"file"},null,40,bt)])}}},[["__scopeId","data-v-5f1449ad"]]);function pe(o){let t={};return o.forEach(n=>{const{key:r,type:a,option:s={},value:l,dateType:d}=n;if(r)if(a=="input"&&(s!=null&&s.multiple))t[r]=fe(l);else if(a=="date")if(d.includes("range")){const[u,_]=r;let[$,S]=l||[];$&&d=="daterange"&&($=se($).format("YYYY-MM-DD 00:00:00"),S=se(S).format("YYYY-MM-DD 23:59:59")),t[u]=$,t[_]=S}else t[r]=l;else t[r]=l}),t}const Qt="",kt={key:0},xt={class:"btns"},St={class:"left"},_t={class:"right"},ze=le({__name:"index",props:{form:{type:Object,required:!0}},emits:["confirm","reset","visibleChange"],setup(o,{expose:t,emit:n}){const r=o,a=n,s=e.ref(!0),l=e.ref(null),{t:d}=Q.useI18n(),u=e.computed(()=>s.value?d("guan-bi"):d("zhan-kai"));function _(){a("confirm")}function $(m){m.option.onClear&&m.option.onClear(),a("confirm")}function S(){a("reset")}function k(){a("confirm")}function y(){return pe(r.form.items)}const g=te.cloneDeep(r.form.items);function f(){r.form.items.forEach(m=>{const I=g.find(p=>p.key==m.key);I&&(m.value=I.value)})}return t({getPrm:y,reset:f}),(m,I)=>{const p=e.resolveComponent("el-input"),C=e.resolveComponent("el-date-picker"),L=e.resolveComponent("el-form-item"),v=e.resolveComponent("el-form"),A=e.resolveComponent("el-link"),x=e.resolveComponent("el-button");return e.openBlock(),e.createElementBlock("div",{class:"searchBar-container mgt10 mgb10",onKeydown:e.withKeys(_,["enter"])},[e.createElementVNode("div",{class:"searchBar",style:e.normalizeStyle({height:s.value?"auto":"42px"})},[e.createVNode(v,{inline:"",model:o.form.data},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.form.items.filter(b=>!b.hidden),b=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:b.key},[b.type=="br"?(e.openBlock(),e.createElementBlock("br",kt)):(e.openBlock(),e.createBlock(L,{key:1,label:b.name},{default:e.withCtx(()=>{var q,P;return[b.type==="input"?(e.openBlock(),e.createBlock(p,{key:0,modelValue:b.value,"onUpdate:modelValue":M=>b.value=M,class:e.normalizeClass(((q=b.option)==null?void 0:q.class)||"w150"),placeholder:m.$t("qing-shu-ru"),clearable:""},null,8,["modelValue","onUpdate:modelValue","class","placeholder"])):b.type==="custom"?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(b.render),{key:1})):e.createCommentVNode("",!0),b.type==="select"?(e.openBlock(),e.createBlock(Be,e.mergeProps({key:2,class:((P=b.option)==null?void 0:P.class)||"w150",modelValue:b.value,"onUpdate:modelValue":M=>b.value=M},{ref_for:!0},b.option,{onChange:_,onClear:M=>$(b)}),null,16,["class","modelValue","onUpdate:modelValue","onClear"])):e.createCommentVNode("",!0),b.type==="date"?(e.openBlock(),e.createBlock(C,{key:3,class:e.normalizeClass({datetimerange:"w300",daterange:"w200"}[b.dateType]||"w100"),modelValue:b.value,"onUpdate:modelValue":M=>b.value=M,"value-format":{datetimerange:"YYYY-MM-DD HH:mm:ss",daterange:"YYYY-MM-DD"}[b.dateType]||"YYYY-MM-DD",type:b.dateType||"date",onFocus:M=>l.value=b,onChange:M=>k(),placeholder:m.$t("qing-xuan-ze"),"start-placeholder":m.$t("kai-shi-shi-jian"),"end-placeholder":m.$t("jie-shu-shi-jian")},null,8,["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",xt,[e.createElementVNode("div",St,[e.renderSlot(m.$slots,"table-header-left",{},void 0,!0)]),e.createElementVNode("div",_t,[e.createVNode(A,{underline:"never",class:"mgr10",onClick:I[0]||(I[0]=()=>{a("visibleChange",!s.value),s.value=!s.value})},{default:e.withCtx(()=>[e.createVNode(me,{name:s.value?"ArrowUp":"ArrowDown"},null,8,["name"]),e.createTextVNode(" "+e.toDisplayString(u.value),1)]),_:1}),e.createVNode(x,{type:"primary",onClick:_},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.$t("shai-xuan")),1)]),_:1}),e.createVNode(x,{type:"primary",onClick:S},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.$t("chong-zhi")),1)]),_:1}),e.renderSlot(m.$slots,"btn",{},void 0,!0)])])],32)}}},[["__scopeId","data-v-32ac9990"]]),Oe={pageNoKey:"pageNo",pageSizeKey:"pageSize",totalKey:"total",defaultPageSize:10,pageSizes:[10,50,100,500],responseDataKeys:{rows:["rows","records"],total:["totalRows","total"]},showSearch:!1,showPage:!1,showShadow:!1,showCheckBox:!1,enableCellCopy:!0};let re={...Oe};function $t(o){re={...re,...o,responseDataKeys:{...re.responseDataKeys,...o.responseDataKeys||{}}}}function Me(){return re}function It(){re={...Oe}}const en="",Et={class:"center"},Tt=le({__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(o,{expose:t}){const{t:n,locale:r}=Q.useI18n(),a=Ie.useRoute(),s=Me(),l=o,d=e.ref(!1),u=e.ref([]);l.searchForm.showSearch===void 0&&(l.searchForm.showSearch=s.showSearch),l.searchForm.showPage===void 0&&(l.searchForm.showPage=s.showPage),l.searchForm.showShadow===void 0&&(l.searchForm.showShadow=s.showShadow),l.searchForm.showCheckBox===void 0&&(l.searchForm.showCheckBox=s.showCheckBox),l.searchForm.enableCellCopy===void 0&&(l.searchForm.enableCellCopy=s.enableCellCopy),l.searchForm.selections||(l.searchForm.selections=[]);const _=e.computed(()=>{const c=a.path.replace(/\//g,"-").replace(/^-/,"")||"default-table";return l.id?`listPageId-${c}-${l.id}`:`listPageId-${c}`}),$=te.cloneDeep(l.searchForm.items),S=l.searchForm.pageNoKey||s.pageNoKey,k=l.searchForm.pageSizeKey||s.pageSizeKey,y=e.reactive({[S]:1,[k]:l.searchForm.defaultPageSize||s.defaultPageSize,total:0}),g=e.ref(null),f=e.ref(null),m=e.ref(450),I=te.debounce(()=>{e.nextTick(()=>{if(!f.value)return;const i=f.value.getBoundingClientRect(),w=window.innerHeight,F=i.top,z=100,j=w-F-z,V=200;m.value=Math.max(j,V)})},100),p=()=>{I()},C=()=>{if(!l.searchForm.enableCellCopy)return!1;const c=g.value;if(!c||!c.$el)return!1;const i=c.$el;return i.classList.add("cell-copy-enabled"),i.setAttribute("tabindex","-1"),i.removeEventListener("mousedown",be),i.removeEventListener("mousemove",we),i.removeEventListener("mouseup",ke),i.removeEventListener("keydown",Se),i.addEventListener("mousedown",be),i.addEventListener("mousemove",we),i.addEventListener("mouseup",ke),i.addEventListener("keydown",Se),!0};e.onMounted(()=>{I(),window.addEventListener("resize",p),l.searchForm.enableCellCopy&&(document.addEventListener("mouseup",Pe),document.addEventListener("mousedown",je),setTimeout(()=>{C()},500))}),e.onUpdated(()=>{l.searchForm.enableCellCopy&&setTimeout(()=>{C()},500)}),e.onUnmounted(()=>{if(window.removeEventListener("resize",p),l.searchForm.enableCellCopy){document.removeEventListener("mouseup",Pe),document.removeEventListener("mousedown",je);const c=g.value;if(c&&c.$el){const i=c.$el;i.removeEventListener("mousedown",be),i.removeEventListener("mousemove",we),i.removeEventListener("mouseup",ke),i.removeEventListener("keydown",Se)}}});const L=e.computed(()=>ye.value.height||m.value);let v;async function A(c){const{dataFormat:i}=l.tableConfig;c[S]!=1&&(c.nextSearchAfter=v),d.value=!0;const{code:w,data:F={}}=await l.api(c).finally(()=>{d.value=!1,l.searchForm.selections=[]});if(w==200){let z=[];for(const V of s.responseDataKeys.rows)if(F[V]){z=F[V];break}let j=0;for(const V of s.responseDataKeys.total)if(F[V]!==void 0){j=F[V];break}u.value=i?i(z):z,y.total=j,v=F.nextSearchAfter,l.searchForm.enableCellCopy&&e.nextTick(()=>{setTimeout(()=>{C()},100)})}}function x(c={}){const{searchData:i=()=>({})}=l.tableConfig,w=i();A({...y,...pe(l.searchForm.items),...c,...w})}function b(){const{reset:c}=l.tableConfig;c&&c(),l.searchForm.items.forEach(i=>{const w=$.find(F=>te.isArray(i.key)&&te.isArray(F.key)?i.key.join(",")==F.key.join(","):F.key==i.key);w&&(i.value=w.value)}),x()}l.api&&l.immediate&&x();function q(){return{...y,...pe(l.searchForm.items)}}const P=()=>{const c=g.value;c&&c.clearSort()},M=e.reactive({storage:!0}),Ce=e.reactive({drag:!0,resizable:!0,maxFixedSize:0}),ye=e.computed(()=>{const{customConfig:c,columnConfig:i,...w}=l.tableConfig;return{headerAlign:"left",align:"center",customConfig:{...M,...c},columnConfig:{...Ce,...i},"virtual-x-config":{enabled:!1,scrollToLeftOnChange:!1},"virtual-y-config":{enabled:!0,gt:100},...w}}),E=e.reactive({isSelecting:!1,startCell:null,endCell:null,selectedCells:[]}),Re=c=>{const i=c.closest(".vxe-body--column");if(!i||i.classList.contains("col--checkbox")||i.classList.contains("col--seq"))return null;const w=i.closest(".vxe-body--row");if(!w)return null;const F=g.value;if(!F)return null;let z=-1;const j=w.getAttribute("data-rowid");if(j!=null)z=parseInt(j,10);else{const D=w.parentElement;z=Array.from(D.querySelectorAll(".vxe-body--row")).indexOf(w)}if(z<0)return null;let V=-1;const W=i.getAttribute("data-colid");if(W&&(V=F.getColumns().findIndex(T=>T.id===W)),V<0){const T=Array.from(w.querySelectorAll(".vxe-body--column")).indexOf(i),N=!!i.closest(".vxe-table--fixed-left-wrapper"),U=!!i.closest(".vxe-table--fixed-right-wrapper"),O=F.getColumns();if(N){const Y=O.filter(R=>R.fixed==="left");T<Y.length&&(V=O.indexOf(Y[T]))}else if(U){const Y=O.filter(R=>R.fixed==="right");T<Y.length&&(V=O.indexOf(Y[T]))}else{const Y=l.searchForm.showCheckBox?1:0;V=O.filter(H=>H.fixed==="left").length+T-Y}}return V<0?null:{rowIndex:z,colIndex:V,cell:i}},be=c=>{const i=Re(c.target);if(!i){xe();return}E.isSelecting=!0,E.startCell={rowIndex:i.rowIndex,colIndex:i.colIndex},E.endCell={...E.startCell},Ae(),qe()},we=c=>{if(!E.isSelecting)return;const i=Re(c.target);i&&(E.endCell={rowIndex:i.rowIndex,colIndex:i.colIndex},Ae(),qe())},ke=()=>{E.isSelecting=!1},xe=()=>{E.selectedCells=[],E.startCell=null,E.endCell=null;const c=g.value;if(!c)return;c.$el.querySelectorAll(".cell-selected, .cell-border-top, .cell-border-right, .cell-border-bottom, .cell-border-left").forEach(w=>{w.classList.remove("cell-selected","cell-border-top","cell-border-right","cell-border-bottom","cell-border-left")})},Ae=()=>{if(!E.startCell||!E.endCell){E.selectedCells=[];return}const c=E.startCell.rowIndex,i=E.endCell.rowIndex,w=E.startCell.colIndex,F=E.endCell.colIndex,z=Math.min(c,i),j=Math.max(c,i),V=Math.min(w,F),W=Math.max(w,F);E.selectedCells=[];for(let D=z;D<=j;D++)for(let T=V;T<=W;T++)E.selectedCells.push({rowIndex:D,colIndex:T})},qe=()=>{e.nextTick(()=>{const c=g.value;if(!c)return;const i=c.$el;if(i.querySelectorAll(".cell-selected, .cell-border-top, .cell-border-right, .cell-border-bottom, .cell-border-left").forEach(N=>{N.classList.remove("cell-selected","cell-border-top","cell-border-right","cell-border-bottom","cell-border-left")}),E.selectedCells.length===0)return;const w=c.getColumns(),F=E.selectedCells.map(N=>N.rowIndex),z=E.selectedCells.map(N=>N.colIndex),j=Math.min(...F),V=Math.max(...F),W=Math.min(...z),D=Math.max(...z),T=[i.querySelector(".vxe-table--body-wrapper tbody"),i.querySelector(".vxe-table--fixed-left-wrapper tbody"),i.querySelector(".vxe-table--fixed-right-wrapper tbody")].filter(Boolean);E.selectedCells.forEach(({rowIndex:N,colIndex:U})=>{const O=w[U];if(!O)return;const Y=O.fixed==="left",R=O.fixed==="right";for(const H of T){const ae=H.querySelectorAll(".vxe-body--row")[N];if(!ae)continue;const X=Array.from(ae.querySelectorAll(".vxe-body--column"));let B=null;if(Y&&H.closest(".vxe-table--fixed-left-wrapper")){const Z=w.filter(G=>G.fixed==="left").indexOf(O);B=X[Z]}else if(R&&H.closest(".vxe-table--fixed-right-wrapper")){const Z=w.filter(G=>G.fixed==="right").indexOf(O);B=X[Z]}else if(!Y&&!R&&H.closest(".vxe-table--body-wrapper")){const ee=l.searchForm.showCheckBox?1:0,Z=w.filter(_e=>_e.fixed==="left").length,G=U-Z;B=X[G+ee]}if(B&&!B.classList.contains("col--checkbox")&&!B.classList.contains("col--seq")){B.classList.add("cell-selected"),N===j&&B.classList.add("cell-border-top"),N===V&&B.classList.add("cell-border-bottom"),U===W&&B.classList.add("cell-border-left"),U===D&&B.classList.add("cell-border-right");break}}})})},jt=async()=>{if(E.selectedCells.length===0)return;const c=g.value;if(!c)return;const i=c.$el,w=c.getColumns(),F=[...new Set(E.selectedCells.map(D=>D.rowIndex))].sort((D,T)=>D-T),z=[...new Set(E.selectedCells.map(D=>D.colIndex))].sort((D,T)=>D-T),j=[i.querySelector(".vxe-table--body-wrapper tbody"),i.querySelector(".vxe-table--fixed-left-wrapper tbody"),i.querySelector(".vxe-table--fixed-right-wrapper tbody")].filter(Boolean),V=[];F.forEach(D=>{const T=[];z.forEach(N=>{const U=w[N];if(!U){T.push("");return}const O=U.fixed==="left",Y=U.fixed==="right";let R="";for(const H of j){const ae=H.querySelectorAll(".vxe-body--row")[D];if(!ae)continue;const X=Array.from(ae.querySelectorAll(".vxe-body--column"));let B=null;if(O&&H.closest(".vxe-table--fixed-left-wrapper")){const Z=w.filter(G=>G.fixed==="left").indexOf(U);B=X[Z]}else if(Y&&H.closest(".vxe-table--fixed-right-wrapper")){const Z=w.filter(G=>G.fixed==="right").indexOf(U);B=X[Z]}else if(!O&&!Y&&H.closest(".vxe-table--body-wrapper")){const ee=l.searchForm.showCheckBox?1:0,Z=w.filter(_e=>_e.fixed==="left").length,G=N-Z;B=X[G+ee]}if(B&&!B.classList.contains("col--checkbox")&&!B.classList.contains("col--seq")){R=B.innerText||B.textContent||"",R=R.trim(),R=R.replace(/\n/g," ").replace(/\s+/g," ");break}}T.push(R)}),V.push(T.join(" "))});const W=V.join(`
2
+ `);try{await navigator.clipboard.writeText(W)}catch(D){console.error("复制失败:",D)}},Se=c=>{l.searchForm.enableCellCopy&&((c.ctrlKey||c.metaKey)&&c.key==="c"?E.selectedCells.length>0&&(c.preventDefault(),c.stopPropagation(),jt()):c.key==="Escape"&&xe())},Pe=()=>{E.isSelecting=!1},je=c=>{const i=g.value;if(!i||!i.$el)return;i.$el.contains(c.target)||xe()},Ut=c=>{y[S]=c,x()},Yt=c=>{y[k]=c,y[S]=1,x()};function Ue(){const c=g.value.getCheckboxRecords();l.searchForm.selections=c}const Ye=c=>{const i=g.value;if(i){i.toggleCheckboxRow(c);const w=g.value.getCheckboxRecords();l.searchForm.selections=w}};return t({tableRef:g,getList:x,getPrm:q,clearSort:P,calculateTableHeight:I}),(c,i)=>{var D;const w=e.resolveComponent("el-button"),F=e.resolveComponent("el-checkbox"),z=e.resolveComponent("el-text"),j=e.resolveComponent("vxe-column"),V=e.resolveComponent("VxeTable"),W=e.resolveComponent("el-pagination");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass({box:o.searchForm.showShadow})},[o.searchForm.showSearch?(e.openBlock(),e.createBlock(ze,{key:0,form:o.searchForm,onReset:b,onConfirm:i[1]||(i[1]=T=>x()),onVisibleChange:e.unref(I)},{btn:e.withCtx(()=>[e.renderSlot(c.$slots,"search-bar-btn",{},void 0,!0),e.createVNode(w,{round:"",onClick:i[0]||(i[0]=T=>g.value.openCustom())},{default:e.withCtx(()=>[e.createVNode(me,{name:"Tools"})]),_:1})]),_:3},8,["form","onVisibleChange"])):e.createCommentVNode("",!0),e.renderSlot(c.$slots,"table-header-left",{},void 0,!0),e.createElementVNode("div",{ref_key:"tableContentRef",ref:f},[e.createVNode(V,e.mergeProps({id:_.value,ref_key:"tableRef",ref:g,loading:o.loading||d.value,data:o.api?u.value:o.data,border:""},ye.value,{height:L.value,onCheckboxChange:Ue,onCheckboxAll:Ue,onSortChange:(D=ye.value["sort-config"])==null?void 0:D.sortChange}),{default:e.withCtx(()=>[o.searchForm.showCheckBox==null||o.searchForm.showCheckBox?(e.openBlock(),e.createBlock(j,{key:0,type:"checkbox",width:e.unref(r)=="zh_cn"?80:150,title:c.$t("xu-hao"),fixed:"left"},{checkbox:e.withCtx(({rowIndex:T,row:N,checked:U,disabled:O,indeterminate:Y})=>[e.createElementVNode("div",Et,[U?(e.openBlock(),e.createBlock(F,{key:0,checked:!0,disabled:O,size:"default",onClick:e.withModifiers(R=>!O&&Ye(N),["stop"])},null,8,["disabled","onClick"])):(e.openBlock(),e.createBlock(F,{key:1,disabled:O,checked:!1,size:"default",onClick:e.withModifiers(R=>!O&&Ye(N),["stop"])},null,8,["disabled","onClick"])),e.createVNode(z,{type:"info",class:"mgl5"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(T+1),1)]),_:2},1024)])]),_:1},8,["width","title"])):e.createCommentVNode("",!0),e.renderSlot(c.$slots,"default",{},void 0,!0)]),_:3},16,["id","loading","data","height","onSortChange"])],512),o.searchForm.showPage?(e.openBlock(),e.createBlock(W,{key:1,"current-page":y[e.unref(S)],"onUpdate:currentPage":i[2]||(i[2]=T=>y[e.unref(S)]=T),class:"myPagination mgt10",background:"",layout:"total, sizes, prev, pager, next",total:y.total,"page-size":y[e.unref(k)],"page-sizes":o.searchForm.pageSizes||e.unref(s).pageSizes,onCurrentChange:Ut,onSizeChange:Yt},null,8,["current-page","total","page-size","page-sizes"])):e.createCommentVNode("",!0)],2)}}},[["__scopeId","data-v-de0d59d6"]]),Lt={__name:"index",props:{sheetsConfig:{type:Object,required:!0},fileName:{type:String,required:!0}},setup(o){const t=o;function n(){De(t.fileName,t.sheetsConfig)}return(r,a)=>{const s=e.resolveComponent("el-link");return e.openBlock(),e.createBlock(s,e.mergeProps({type:"primary",underline:"never"},r.$attrs,{onClick:n}),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.$t("xia-zai-dao-ru-mo-ban")),1)]),_:1},16)}}};function Ft(o,t={}){const n=ue(),r={inForm:!0,required:!0,...t},a={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+)*$/}[o],{inForm:s,value:l,required:d,msg:u=n("validate.invalidInput")}=r;return s?function(_,$,S){if(d){a.test($)?S():S(new Error(u));return}$&&!a.test($)?S(new Error(u)):S()}:a.test(l)}class vt{constructor(t={}){this.config={clientCode:t.clientCode||"one-portal",casServerUrl:`https://one-portal${t.isTest?"-test":""}.joy-group.com/api`,casPortalUrl:`https://one-portal${t.isTest?"-test":""}.joy-group.com`,serviceUrl:t.serviceUrl||window.location.origin+"/cas/callback",tokenKey:t.tokenKey||"one_portal_token",userKey:t.userKey||"one_portal_user",debug:t.debug||!1,autoLogin:t.autoLogin!==!1,loginCallback:t.loginCallback||null,logoutCallback:t.logoutCallback||null,errorCallback:t.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 t=localStorage.getItem(this.config.userKey);t&&(this.user=JSON.parse(t)),this.log("从本地存储加载数据:",{token:!!this.token,user:!!this.user})}catch(t){this.log("加载本地存储数据失败:",t)}}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(t){this.log("保存到本地存储失败:",t)}}clearStorage(){try{localStorage.removeItem(this.config.tokenKey),localStorage.removeItem(this.config.userKey),this.log("本地存储已清除")}catch(t){this.log("清除本地存储失败:",t)}}isLoggedIn(){return!!(this.token&&this.user)}getUser(){return this.user}getToken(){return this.token}login(){const t=`${this.config.casPortalUrl}?appCode=${this.config.clientCode}&redirectUrl=${encodeURIComponent(this.config.serviceUrl)}`;this.log("跳转到CAS登录页面:",t),window.location.href=t}async validateTicket(t){try{this.log("验证ST票据:",t);const n=await fetch(`${this.config.casServerUrl}/auth/validateST?ticket=${t}`,{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 t=new URL(window.location);t.searchParams.delete("ticket"),window.history.replaceState({},document.title,t.toString())}async logout(t=!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(),t&&this.login()}catch(n){this.log("登出失败:",n),this.handleError(n)}}async request(t,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 a=await fetch(t,r);return a.status===401?(this.log("Token已过期,需要重新登录"),this.logout(),null):a}catch(a){throw this.log("请求失败:",a),a}}async fetchUserInfo(){try{const t=await this.request(`${this.config.casServerUrl}/auth/user`);if(t&&t.ok){const n=await t.json();if(n.success&&n.data)return this.user=n.data,this.saveToStorage(),this.user}return null}catch(t){return this.log("获取用户信息失败:",t),null}}async refreshToken(){this.log("Token刷新功能暂未实现")}handleError(t){this.log("发生错误:",t),this.config.errorCallback&&this.config.errorCallback(t)}log(...t){this.config.debug&&console.log("[OnePortal CAS SDK]",...t)}checkLoginStatus(){return!this.isLoggedIn()&&this.config.autoLogin?(this.login(),!1):this.isLoggedIn()}setConfig(t,n){this.config[t]=n}getConfig(t){return this.config[t]}}function Vt(o,t={}){const r=Object.assign({manual:!1,log:!1,params:null,format:null},t),{manual:a,log:s,params:l={},cb:d,format:u}=r,_=e.ref([]),$=e.ref(!1),S=k=>{const y=k||l;$.value=!0,o(y).then(g=>{const{code:f,data:m,msg:I}=g;if(d){const{records:p,rows:C}=m||{},L=p||C?p||C:m;_.value=ge(L,u),d(g)}if(m){if(m.records!=null||m.rows!=null){const{records:p,rows:C,total:L=0}=m||{};y&&y.total!=null&&(l.total=parseInt(L)),_.value=ge(p||C||[],u)}else _.value=ge(m,u);s&&console.log("useRequest-res",_.value)}}).catch(g=>{d&&(console.log("useRequestErr",g),d({code:500}))}).finally(()=>{$.value=!1})};return a||S(),[$,_,S]}function Dt(o){const t=e.ref(o),n=e.ref(""),r=e.ref("");return e.watch(t,a=>{const s=a||["",""];n.value=s[0],r.value=s[1]}),[t,n,r]}function Bt(o){return Object.prototype.toString.call(o).slice(8,-1).toLowerCase()}function ge(o,t){if(!t)return o;if(o instanceof Array)return o.map(r=>{let a={};return t.forEach(s=>a[s]=r[s]),a});let n={};return t.forEach(r=>n[r]=o[r]),n}function zt(o,t=[]){const{locale:n}=Q.useI18n(),r=e.ref(o());return e.watch([n,...t],()=>{r.value=o()},{immediate:!0}),r}function Ot(o,t="zh_cn",n="en_us"){if(!o)return"-";const r={en_us:n,zh_cn:t},s=de().global.locale.value;return o[r[s]]||o[t]||"-"}function Mt(o,t){let n=J.mapState;return typeof o=="string"&&o.length>0&&(n=J.createNamespacedHelpers(o).mapState),Ne(t,n)}function Nt(o,t){let n=J.mapGetters;return typeof o=="string"&&o.length>0&&(n=J.createNamespacedHelpers(o).mapGetters),Ne(t,n)}function Rt(o,t){let n=J.mapActions;return typeof o=="string"&&o.length>0&&(n=J.createNamespacedHelpers(o).mapActions),At(t,n)}function Ne(o,t){const n=J.useStore(),r=t(o),a={};return Object.keys(r).forEach(s=>{const l=r[s].bind({$store:n});a[s]=e.computed(l)}),a}function At(o,t){const n=J.useStore(),r=t(o),a={};return Object.keys(r).forEach(s=>{a[s]=r[s].bind({$store:n})}),a}const qt={__name:"EnumRender",props:{renderOpts:{type:Object,default:()=>({enum:{}})},params:{type:Object}},setup(o){const t=o,n=t.params.row[t.params.column.field];return(r,a)=>{const s=e.resolveComponent("el-text");return o.renderOpts.text?(e.openBlock(),e.createBlock(s,{key:0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.renderOpts.enum.getName(e.unref(n))),1)]),_:1})):(e.openBlock(),e.createBlock(s,{key:1,type:o.renderOpts.enum.getTag(e.unref(n))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.renderOpts.enum.getName(e.unref(n))),1)]),_:1},8,["type"]))}}};function Pt(){oe.VxeUI.renderer.add("Enum",{renderTableDefault(o,t){return[null,void 0].includes(t.row[t.column.field])?"-":React.createElement(qt,{renderOpts:o,params:t})}}),oe.VxeUI.renderer.add("InputNumber",{renderTableDefault(o,t){return React.createElement(K.ElInputNumber,{"v-model":t.row[t.column.field],...o.props,"step-strictly":!0,"value-on-clear":0})}}),oe.VxeUI.renderer.add("TrueFalse",{renderTableDefault(o,t){const{locale:n}=Q.useI18n();let r=n.value=="zh_cn";return React.createElement(K.ElText,{type:t.row[t.column.field]?"success":"danger"},t.row[t.column.field]?r?"是":"YES":r?"否":"NO")}}),oe.VxeUI.renderer.add("I18n",{renderTableDefault(o,t){const{locale:n}=Q.useI18n();let r=n.value=="zh_cn"?t.column.field:o.fieldEn;return t.row[r]||t.row[t.column.field]}}),oe.VxeUI.renderer.add("Link",{renderTableDefault(o,t){var d;let n=t.column.field;const r=Ie.useRouter(),{multiple:a,to:s}=o;if(!a)return React.createElement(K.ElLink,{underline:"never",type:"primary",onclick:()=>r.push({path:s,query:{[n]:t.row[n]}})},t.row[n]);const l=((d=t.row[n])==null?void 0:d.split(","))||[];return l.map((u,_)=>React.createElement("span",null,React.createElement(K.ElLink,{underline:"never",type:"primary",onclick:()=>r.push({path:s,query:{[n]:u}})},u),_<l.length-1?",":""))}})}h.CmpDictionary=Be,h.CmpIcon=me,h.ConfrimButton=yt,h.DownExcelTemp=Lt,h.ImportButton=wt,h.LayOutForm=He,h.ListPage=Tt,h.OnePortalCasSDK=vt,h.SearchBar=ze,h.StatusMap=he,h._toRaw=st,h._typeOf=Bt,h.arrToStatusMap=ct,h.arrayToTree=it,h.checkFileSize=ft,h.creatValidator=Ft,h.createImportFields=mt,h.createListPageId=ht,h.en=ce,h.exportExcel=De,h.getI18n=de,h.getI18nT=ue,h.getListPageConfig=Me,h.getLocaleValue=Ot,h.getValueBykey=pt,h.importExcel=Qe,h.messages=ve,h.registerVxeRenderers=Pt,h.resetListPageConfig=It,h.setListPageConfig=$t,h.setupI18n=Ve,h.sleep=at,h.stringToArray=fe,h.stripHtmlTags=ut,h.unicode2Str=dt,h.useActions=Rt,h.useDatePicker=Dt,h.useGetters=Nt,h.useI18nReState=zt,h.useRequest=Vt,h.useState=Mt,h.zhCn=ie,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .cmp-icon[data-v-34eb8641],.cmp-icon[data-v-733f9daa],.cmp-icon[data-v-5f1449ad]{padding:0!important}.searchBar-container .searchBar[data-v-32ac9990]{overflow:hidden;transition:all .3s}.searchBar-container .btns[data-v-32ac9990]{display:flex;justify-content:space-between;align-items:center}.searchBar-container .btns .left[data-v-32ac9990]{display:flex;align-items:center}.searchBar-container .btns .left[data-v-32ac9990] .el-tabs__header{margin:0}.searchBar-container .btns .right[data-v-32ac9990]{text-align:right}[data-v-8b6ee274] .vxe-table-custom-wrapper.placement--top-right.is--active{max-height:400px!important}[data-v-8b6ee274] .vxe-table.cell-copy-enabled .vxe-body--column{-webkit-user-select:none;user-select:none}[data-v-8b6ee274] .vxe-table.cell-copy-enabled .vxe-body--column.cell-selected{background-color:#409eff26!important;position:relative}[data-v-8b6ee274] .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-8b6ee274] .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-8b6ee274] .vxe-table.cell-copy-enabled .vxe-body--column.cell-border-left{border-left:1px solid #409eff!important}[data-v-8b6ee274] .vxe-table.cell-copy-enabled .vxe-body--column.cell-border-right{border-right:1px solid #409eff!important}
1
+ .cmp-icon[data-v-34eb8641],.cmp-icon[data-v-733f9daa],.cmp-icon[data-v-5f1449ad]{padding:0!important}.searchBar-container .searchBar[data-v-32ac9990]{overflow:hidden;transition:all .3s}.searchBar-container .btns[data-v-32ac9990]{display:flex;justify-content:space-between;align-items:center}.searchBar-container .btns .left[data-v-32ac9990]{display:flex;align-items:center}.searchBar-container .btns .left[data-v-32ac9990] .el-tabs__header{margin:0}.searchBar-container .btns .right[data-v-32ac9990]{text-align:right}[data-v-de0d59d6] .vxe-table-custom-wrapper.placement--top-right.is--active{max-height:400px!important}[data-v-de0d59d6] .vxe-table.cell-copy-enabled .vxe-body--column{-webkit-user-select:none;user-select:none}[data-v-de0d59d6] .vxe-table.cell-copy-enabled .vxe-body--column.cell-selected{background-color:#409eff26!important;position:relative}[data-v-de0d59d6] .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-de0d59d6] .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-de0d59d6] .vxe-table.cell-copy-enabled .vxe-body--column.cell-border-left{border-left:1px solid #409eff!important}[data-v-de0d59d6] .vxe-table.cell-copy-enabled .vxe-body--column.cell-border-right{border-right:1px solid #409eff!important}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "joy-admin-components",
3
- "version": "0.1.44",
3
+ "version": "0.1.46",
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",
@@ -0,0 +1,273 @@
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: 20, // 默认每页条数,默认 10
18
+ pageSizes: [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
+ ```