@gopowerteam/table-render 0.0.4 → 0.0.6

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,3 @@
1
- import type { DataRecord, TableColumnsOptions } from '../interfaces';
2
- export declare function defineColumns<T = DataRecord>(columns: TableColumnsOptions<T>): TableColumnsOptions<T>;
1
+ import type { DataRecord, TableColumnsOptions, TableColumnsStringKeyOptions, TableColumnsTypeKeyOptions } from '../interfaces';
2
+ export declare function defineColumns<T = DataRecord>(columns: TableColumnsTypeKeyOptions<T>): TableColumnsOptions<T>;
3
+ export declare function defineColumns<T = DataRecord>(columns: TableColumnsStringKeyOptions<T>): TableColumnsOptions<T>;
@@ -54,4 +54,4 @@ use chrome, FireFox or Internet Explorer 11`)}var r=s("safe-buffer"),t=s("random
54
54
  * @author Louis-Dominique Dubeau
55
55
  * @license MIT
56
56
  * @copyright Louis-Dominique Dubeau
57
- */function p(o){return o>=65&&o<=90||o===95||o>=97&&o<=122||o>=192&&o<=214||o>=216&&o<=246||o>=248&&o<=767||o>=880&&o<=893||o>=895&&o<=8191||o>=8204&&o<=8205||o>=8304&&o<=8591||o>=11264&&o<=12271||o>=12289&&o<=55295||o>=63744&&o<=64975||o>=65008&&o<=65533||o>=65536&&o<=983039}Object.defineProperty(_,"__esModule",{value:!0}),_.NC_NAME_START_CHAR="A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿",_.NC_NAME_CHAR="-"+_.NC_NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",_.NC_NAME_START_CHAR_RE=new RegExp("^["+_.NC_NAME_START_CHAR+"]$","u"),_.NC_NAME_CHAR_RE=new RegExp("^["+_.NC_NAME_CHAR+"]$","u"),_.NC_NAME_RE=new RegExp("^["+_.NC_NAME_START_CHAR+"]["+_.NC_NAME_CHAR+"]*$","u"),_.isNCNameStartChar=p,_.isNCNameChar=function(o){return p(o)||o===45||o===46||o>=48&&o<=57||o===183||o>=768&&o<=879||o>=8255&&o<=8256}},{}]},{},[15])(15)})})(nr);var br=nr.exports;const gr=Symbol.for("RenderColumnType");function Me(X,at,s){return at.$type=X,at.$disableColumnMode=s==null?void 0:s.disableColumnMode,at.$disableViewMode=s==null?void 0:s.disableViewMode,at}function Ee(X,at){return(at.index||at.key).split(".").reduce((s,C)=>s==null?void 0:s[C],X)}function yr(X){return Me("button",(s,C,_)=>{const p=Xe.useModal(),o=Array.isArray(X)?X:"buttons"in X?X.buttons:[X],a=(t,e)=>typeof t=="function"?t(s):t===void 0?e:t;async function r(t){await(t.confirm===!0?new Promise(l=>{p.confirm({title:"提示信息",content:t.confirmText??"您确定要执行该操作?",onOk:()=>l(!0),onCancel:()=>l(!1)})}):Promise.resolve(!0))&&(t!=null&&t.onClick)&&(await t.onClick(s),t.autoReload&&(_!=null&&_.emits)&&(_==null||_.emits("reload")))}return yt.createVNode(yt.Fragment,null,[o.filter(t=>a(t.visiable,!0)).map(t=>yt.createVNode(_e.Button,{onClick:()=>r(t),type:t.type||"text",shape:t.shape,disabled:a(t.disabled,!1)},{icon:t.icon,default:()=>(typeof t.content=="function"?t.content(s):t.content)||""}))])},{disableViewMode:!0})}function Qe(X){const at=_=>_.replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g,"$1,"),s=_=>(parseFloat(_.toString())/((X==null?void 0:X.scale)||1)).toFixed((X==null?void 0:X.precision)||2);return Me("dict",(_,p)=>{const o=Ee(_,p);return yt.createVNode("div",null,[(X==null?void 0:X.prefix)!==void 0&&yt.createVNode("span",null,[X==null?void 0:X.prefix]),yt.createVNode("span",{class:"currency_value"},[(X==null?void 0:X.thousands)===!1?s(o):at(s(o))]),(X==null?void 0:X.suffix)!==void 0&&yt.createVNode("span",null,[X==null?void 0:X.suffix])])})}const vr={success:"arcoblue",warning:"orange",error:"red"};function wr(X){return X instanceof Map?X:X.dict}function _r(X){const at=X instanceof Map?!1:X.tag;return typeof at=="string"?vr[at]:at}function xr(X){const at=wr(X),s=_r(X);return Me("dict",(_,p)=>{const o=Ee(_,p);return s?yt.createVNode(_e.Tag,{color:s===!0?void 0:s},{default:()=>[at.get(o)||o]}):yt.createVNode("span",null,[at.get(o)||o])})}function kr(X){function at(_,p){var a;const o=(a=document.getElementById(_))==null?void 0:a.getBoundingClientRect();if(o){const r=new Image(100,100);r.id=`IMAGE_${_}_PREVIEW`,r.src=p,r.setAttribute("style",["position:fixed;",`top:${o.top}px;`,`left:${o.left+o.width}px;`,"min-width:400px;","height:auto;","z-index:100;"].join("")),document.body.appendChild(r)}}function s(_){const p=document.getElementById(`IMAGE_${_}_PREVIEW`);p==null||p.remove()}return Me("image",(_,p,o)=>{const a=Ee(_,p),r=Math.random().toString(32).slice(2).toUpperCase(),t={width:o!=null&&o.previewing?(X==null?void 0:X.width)||"auto":"40px",height:o!=null&&o.previewing&&(X==null?void 0:X.height)||"auto",borderRadius:X==null?void 0:X.radius,maxWidth:!(X!=null&&X.height)&&!(X!=null&&X.width)?"150px":"auto",display:"block",margin:"auto",objectFit:"contain",transform:`rotate(${(X==null?void 0:X.rotate)||0}deg)`,cursor:X!=null&&X.preview?"pointer":"unset"},e=`${p.index||p.key}_parsed`;if(X!=null&&X.parse&&(X==null||X.parse(a).then(l=>_[e]=l)),X!=null&&X.parse&&!_[e])return yt.createVNode("div",null,[yt.createTextVNode("Loading...")]);{const l=_[e]||a;return yt.createVNode("img",{id:r,onMouseenter:()=>(X==null?void 0:X.preview)&&!(o!=null&&o.previewing)&&at(r,l),onMouseleave:()=>(X==null?void 0:X.preview)&&!(o!=null&&o.previewing)&&s(r),src:l,style:t},null)}})}const Sr=" ";function Cr(X){return X==null?void 0:X.replace(/(\d{3})\d*(\d{4})/g,"$1****$2")}function Tr(X,at){return X==null?void 0:X.replace(/\*/g,"M").replace(/\B(?=(?:\S{4})+$)/g,at??Sr).replace(/M/g,"*")}function Mr(X){return Me("phone",(s,C)=>{const _=Ee(s,C),p=Tr(X!=null&&X.safe?Cr(_):_,X==null?void 0:X.separator);return X!=null&&X.callable?yt.createVNode("a",{style:"text-decoration:none;",href:`tel:${_}`},[p]):yt.createVNode("span",null,[p])})}function Er(X){return Me("render",s=>X(s))}function Ar(X){return Me("tag",(s,C)=>{const _=Ee(s,C),p=(X==null?void 0:X.textColors)||["#F87335"],o=(X==null?void 0:X.backgroundColors)||["#FFF4E8"];return yt.createVNode("div",{style:{display:"flex",flexWrap:"wrap"}},[_.map((a,r)=>yt.createVNode("span",{style:{margin:"2px",padding:"2px 5px",border:`solid 2px ${(X==null?void 0:X.border)||"transparent"}`,borderRadius:`${(X==null?void 0:X.radius)||0}px`,color:typeof p=="function"?p(a,r):p[r%p.length],backgroundColor:typeof o=="function"?o(a,r):o[r%o.length]}},[a]))])})}function tr(X){if(typeof X=="string")return X;if(typeof X=="number")return`${X}px`}function Rr(X,at,s){var C,_;return typeof X=="function"?(C=X(s))==null?void 0:C.toString():typeof(X==null?void 0:X.content)=="function"?(_=X==null?void 0:X.content(s))==null?void 0:_.toString():typeof(X==null?void 0:X.content)=="string"?X==null?void 0:X.content:Ee(s,at)}function Or(X,at){if(typeof X!="function"){if(typeof(X==null?void 0:X.color)=="function")return X==null?void 0:X.color(at);if(typeof(X==null?void 0:X.color)=="string")return X==null?void 0:X.color}}function jr(X,at){if(typeof X!="function")return typeof(X==null?void 0:X.size)=="function"?tr(X==null?void 0:X.size(at)):tr(X==null?void 0:X.size)}function Ir(X,at){let s="";const C=Or(X,at),_=jr(X,at);return C&&(s+=`color:${C};`),_&&(s+=`font-size:${_};`),s}function Nr(X){return Me("text",(s,C)=>{const _=Rr(X||{},C,s),p=Ir(X||{},s);return yt.createVNode("span",{style:p},[_])})}function Pr(){return{text:Nr,dict:xr,tag:Ar,render:Er,phone:Mr,image:kr,currency:Qe,date:Qe,button:yr}}function Ke(X,at){if(!(X!=null&&X.render))return;const s=X.render({...Pr()});return{render:({record:C})=>s(C,X,at),[gr]:s.$type,disableColumnMode:s.$disableColumnMode,disableViewMode:s.$disableViewMode,isRender:s.$type==="render",type:s.$type}}function Br(X,at,s){return X.map(C=>({...at||{},...C})).map(C=>Dr(C,s)).filter(Boolean)}function Dr(X,at){const{render:s,disableColumnMode:C}=Ke(X,{previewing:!1,emits:at})||{};if(!(C||X.visiable===!1||typeof X.visiable=="function"&&X.visiable()===!1))return{dataIndex:X.index||X.key,title:X.title,width:X.width==="auto"?void 0:X.width,align:X.align??"center",fixed:X.fixed,ellipsis:X.ellipsis??!0,sortable:X.sortable?{sorter:!0,sortDirections:["ascend","descend"],defaultSortOrder:X.sortable==="asc"?"ascend":"descend"}:void 0,tooltip:!0,...X.extraProps,render:s}}function Fr(){return new br.Workbook}function Lr(X,at="Sheet1"){return X.addWorksheet(at,{headerFooter:{firstHeader:"",firstFooter:""}})}function zr(X,at){X.columns=at}function Ur(X,at){X.addRows(at)}async function $r({columns:X,rows:at,filename:s}){const C=Fr(),_=Lr(C);zr(_,X),Ur(_,at);const p=await C.xlsx.writeBuffer(),o=new Blob([p]);Vr(o,s||`${cr().format("YYYY-MM-DD HH:mm:ss")}.xlsx`)}function Vr(X,at){const s=document.createElement("a");s.download=at||"download",s.href=URL.createObjectURL(X),s.click(),setTimeout(()=>{URL.revokeObjectURL(s.href)},1e3)}function Hr(X,at){const s={};return X.filter(_=>_.exportable!==!1).map(_=>({options:_,render:Ke(_),content:typeof _.exportable=="object"?_.exportable.content:void 0})).forEach(_=>{var a;const p=(a=_.render)==null?void 0:a.render,o=()=>{var r;switch(!0){case!!_.content:return _.content&&_.content(at);case!!p:{const t=document.createElement("div"),e=yt.h(()=>p&&p({record:at}));return yt.render(e,t),(r=e.el)==null?void 0:r.innerText}default:return Ee(at,_.options)}};s[_.options.key]=o()}),s}function qr(X){switch(!0){case typeof X=="number":return X/6;case(typeof X=="string"&&X.endsWith("px")):return parseInt(X.replace("px",""))/6;default:return 30}}function Wr(X,at,s){const C=X.filter(p=>p.exportable!==!1).map(p=>{var o,a;return{key:p.key,header:((o=p.exportable)==null?void 0:o.header)||p.title,width:((a=p.exportable)==null?void 0:a.width)||qr(p.width)}}),_=at.map(p=>Hr(X,p));$r({columns:C,rows:_,filename:s})}function Xr(){return{exportExcel:Wr}}class Ye{constructor(at){Ne(this,"sort",{});Ne(this,"before",at=>{at.paramsQuery={...at.paramsQuery||{},sort:this.stringify(this.sort)}});at&&(this.sort=at)}update(at,s){at&&s&&(this.sort[at]=s)}remove(at){const s=Object.entries(this.sort).filter(([C])=>C!==at);this.sort={},s&&s.forEach(([C,_])=>{this.sort[C]=_})}reset(){this.sort={}}stringify(at){return typeof at!="object"?[]:(at instanceof Ye&&(at=at.sort),Object.entries(at).map(([s,C])=>`${s},${C}`))}}function Kr(X){return typeof X=="function"||Object.prototype.toString.call(X)==="[object Object]"&&!yt.isVNode(X)}const Yr=yt.defineComponent({props:{record:{type:Object,required:!0},columns:{type:Array,required:!0},minWidth:{type:Number,required:!1,default:350},border:{type:Boolean,default:!0},exclude:{type:Array,default:()=>[]},layout:{type:String,required:!1,default:"horizontal"},buttons:{type:Array,default:()=>[]}},setup(X){const at=yt.getCurrentInstance(),s=yt.ref(0),C=X.columns.filter(p=>typeof p.visiable=="boolean"?p.visiable:typeof p.visiable=="function"?p.visiable():!0).map(p=>({options:p,renderer:Ke(p,{previewing:!0})})).filter(({options:p})=>{var o;return!((o=X.exclude)!=null&&o.includes(p.key))}).filter(({renderer:p})=>!(p!=null&&p.disableViewMode));function _(){var p;if(at){const o=(p=at.proxy)==null?void 0:p.$el;s.value=Math.floor(o.offsetWidth/X.minWidth)}}return yt.onMounted(()=>{_()}),()=>{let p;return yt.createVNode("div",{class:"preview-container"},[yt.createVNode(_e.Descriptions,{column:s.value,bordered:!0,align:"left",layout:X.layout},Kr(p=C.map(o=>yt.createVNode(_e.DescriptionsItem,{label:o.options.title},{default:()=>{var a,r;return[(a=o.renderer)!=null&&a.render?(r=o.renderer)==null?void 0:r.render({record:X.record}):Ee(X.record,o.options)]}})))?p:{default:()=>[p]})])}}});const Zr=Symbol("ArcoConfigProvider"),Gr="arco",Jr="$arco",ir=X=>{var at,s,C;const _=yt.getCurrentInstance(),p=yt.inject(Zr,void 0),o=(C=(s=p==null?void 0:p.prefixCls)!=null?s:(at=_==null?void 0:_.appContext.config.globalProperties[Jr])==null?void 0:at.classPrefix)!=null?C:Gr;return X?`${o}-${X}`:o},Qr=Object.prototype.toString;function sr(X){return Qr.call(X)==="[object Number]"&&X===X}var or=(X,at)=>{for(const[s,C]of at)X[s]=C;return X};const tn=yt.defineComponent({name:"IconDownload",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:X=>["butt","round","square"].includes(X)},strokeLinejoin:{type:String,default:"miter",validator:X=>["arcs","bevel","miter","miter-clip","round"].includes(X)},rotate:Number,spin:Boolean},emits:{click:X=>!0},setup(X,{emit:at}){const s=ir("icon"),C=yt.computed(()=>[s,`${s}-download`,{[`${s}-spin`]:X.spin}]),_=yt.computed(()=>{const o={};return X.size&&(o.fontSize=sr(X.size)?`${X.size}px`:X.size),X.rotate&&(o.transform=`rotate(${X.rotate}deg)`),o});return{cls:C,innerStyle:_,onClick:o=>{at("click",o)}}}}),en=["stroke-width","stroke-linecap","stroke-linejoin"],rn=yt.createElementVNode("path",{d:"m33.072 22.071-9.07 9.071-9.072-9.07M24 5v26m16 4v6H8v-6"},null,-1),nn=[rn];function sn(X,at,s,C,_,p){return yt.openBlock(),yt.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:yt.normalizeClass(X.cls),style:yt.normalizeStyle(X.innerStyle),"stroke-width":X.strokeWidth,"stroke-linecap":X.strokeLinecap,"stroke-linejoin":X.strokeLinejoin,onClick:at[0]||(at[0]=(...o)=>X.onClick&&X.onClick(...o))},nn,14,en)}var qe=or(tn,[["render",sn]]);const on=Object.assign(qe,{install:(X,at)=>{var s;const C=(s=at==null?void 0:at.iconPrefix)!=null?s:"";X.component(C+qe.name,qe)}}),an=yt.defineComponent({name:"IconRefresh",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:X=>["butt","round","square"].includes(X)},strokeLinejoin:{type:String,default:"miter",validator:X=>["arcs","bevel","miter","miter-clip","round"].includes(X)},rotate:Number,spin:Boolean},emits:{click:X=>!0},setup(X,{emit:at}){const s=ir("icon"),C=yt.computed(()=>[s,`${s}-refresh`,{[`${s}-spin`]:X.spin}]),_=yt.computed(()=>{const o={};return X.size&&(o.fontSize=sr(X.size)?`${X.size}px`:X.size),X.rotate&&(o.transform=`rotate(${X.rotate}deg)`),o});return{cls:C,innerStyle:_,onClick:o=>{at("click",o)}}}}),ln=["stroke-width","stroke-linecap","stroke-linejoin"],un=yt.createElementVNode("path",{d:"M38.837 18C36.463 12.136 30.715 8 24 8 15.163 8 8 15.163 8 24s7.163 16 16 16c7.455 0 13.72-5.1 15.496-12M40 8v10H30"},null,-1),cn=[un];function hn(X,at,s,C,_,p){return yt.openBlock(),yt.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:yt.normalizeClass(X.cls),style:yt.normalizeStyle(X.innerStyle),"stroke-width":X.strokeWidth,"stroke-linecap":X.strokeLinecap,"stroke-linejoin":X.strokeLinejoin,onClick:at[0]||(at[0]=(...o)=>X.onClick&&X.onClick(...o))},cn,14,ln)}var We=or(an,[["render",hn]]);const fn=Object.assign(We,{install:(X,at)=>{var s;const C=(s=at==null?void 0:at.iconPrefix)!=null?s:"";X.component(C+We.name,We)}});function dn(X,at,{tableForm:s,tableEvents:C}){const _=X.refreshable||X.exportable||at.slots.actions,p=(s==null?void 0:s.length)&&_;return()=>yt.createVNode(yt.Fragment,null,[p&&yt.createVNode(_e.Divider,{margin:0},null),_&&yt.createVNode("div",{class:"table-actions",style:{display:"flex",justifyContent:"space-between",margin:"20px 0",flexDirection:X.actionsPosition==="right"?"row":"row-reverse",alignItems:"center"}},[yt.createVNode("div",{class:"built-in"},[yt.createVNode(_e.Space,null,{default:()=>[X.refreshable&&yt.createVNode(_e.Button,{type:"outline",shape:"circle"},{icon:()=>yt.createVNode(fn,{onClick:()=>C("reload")},null)}),X.exportable&&yt.createVNode(_e.Button,{type:"outline",shape:"circle"},{icon:()=>yt.createVNode(on,{onClick:()=>C("export")},null)})]})]),yt.createVNode("div",{class:"customs"},[yt.createVNode(_e.Space,null,{default:()=>[at.slots.actions&&at.slots.actions()]})])])])}function pn(X,at,{tableForm:s,tableEvents:C,formInstance:_}){return s!=null&&s.length?()=>yt.createVNode("div",{class:"table-form"},[yt.createVNode(er.FormRender,{form:s,ref:p=>_&&(_.value=p),searchable:!0,onSubmit:()=>C("reload",{reset:!0})},null)]):()=>{}}function mn(X,at,{tableSource:s}){const C=yt.ref([]);function _(){const a=typeof X.selection=="string"?{type:X.selection}:X.selection;switch(a==null?void 0:a.type){case"radio":return{title:"选择",...a,selectedRowKeys:C.value};case"checkbox":return{showCheckedAll:!0,selectedRowKeys:C.value,...a}}}function p(a,r,t){const{type:e}=_()||{};switch(e){case"radio":at.emit("update:radio-key",r),at.emit("update:radio-row",t);break;case"checkbox":at.emit("update:checkbox-keys",a),at.emit("update:checkbox-rows",a.map(l=>s.value.find(n=>n[X.rowKey]===l)));break}}function o(){yt.nextTick(()=>{at.emit("update:checkbox-keys",C.value),at.emit("update:checkbox-rows",C.value)})}return{selectedRowKeys:C,rowSelection:_(),onSelect:p,onSelectAll:o}}function bn(X,at,{pageService:s,tableEvents:C}){function _(o){s&&(s.pageIndex=o,C("reload"))}function p(o){s&&(s.pageSize=o,C("reload"))}return s?()=>yt.createVNode("div",{class:"table-pagination",style:{padding:"10px 0"}},[yt.createVNode(_e.Pagination,{current:s.pageIndex,"onUpdate:current":o=>s.pageIndex=o,"page-size":s.pageSize,"onUpdate:page-size":o=>s.pageSize=o,total:s.total,"page-size-options":s.pageSizeOpts,"hide-on-single-page":!0,"show-total":!0,"show-page-size":!0,onChange:o=>_(o),onPageSizeChange:o=>p(o),style:{justifyContent:"flex-end"}},null)]):()=>{}}const gn=yt.defineComponent({props:{record:{type:Object,required:!0},form:{type:Array,required:!0},onSubmit:{type:Function,required:!1}},setup(X){const at=Xe.useModal();function s(C){X.onSubmit&&X.onSubmit(C),at.close(C)}return()=>yt.createVNode("div",{class:"edit-form-container"},[yt.createVNode(er.FormRender,{name:"form",form:X.form,onSubmit:s},null)])}});function yn(X){return!!X&&(typeof X=="object"||typeof X=="function")&&typeof X.then=="function"}const ar=yt.defineComponent({props:{rowKey:{type:String,required:!0},form:{type:Object,required:!1},columns:{type:Object,required:!0},autoLoad:{type:Boolean,required:!1,default:!0},loadData:{type:Function,required:!1},height:{type:Number,required:!1},size:{type:String,required:!1,default:"large"},columnsOptions:{type:Object,required:!1},selection:{type:[String,Object],required:!1},radioKey:{type:[String,Number],required:!1},checkboxKeys:{type:Array,required:!1},radioRow:{type:Object,required:!1},checkboxRows:{type:Array,required:!1},exportable:{type:[Boolean,Object],required:!1,default:!1},refreshable:{type:Boolean,required:!1},actionsPosition:{type:String,required:!1,default:"right"},pageable:{type:[Object,Boolean],required:!1},sortable:{type:[Object],required:!1}},expose:["preview","export","edit","reload","tableSource","formSource","update:radio-key","update:radio-row","update:checkbox-keys","update:checkbox-rows"],setup(X,at){var M;const s=Math.random().toString(32).slice(2).toUpperCase(),C=yt.ref(),_=yt.ref(),p=yt.ref(),[o,a]=dr(X.columns),r=yt.ref(!1),t=X.form??pr(X.columns),e=n(),l=i();function n(){switch(!0){case typeof X.pageable=="boolean":return new Je;case(typeof X.pageable=="object"&&!!X.pageable.reset):return X.pageable;case(typeof X.pageable=="object"&&(!!X.pageable.index||!!X.pageable.size)):return new Je(X.pageable.index,X.pageable.size)}}function i(){const v=X.columns.find(m=>!!m.sortable);if(v)return new Ye({[v.key]:v.sortable,...X.sortable})}const c=v=>{const{exportExcel:m}=Xr();m((v==null?void 0:v.columns)||X.columns,(v==null?void 0:v.source)||o.value,(v==null?void 0:v.filename)||(typeof X.exportable=="object"?X.exportable.filename:void 0))},h=v=>{let m;switch(!0){case!!(v!=null&&v.key):m=o.value.find(b=>b[X.rowKey]===(v==null?void 0:v.key));break;case!!(v!=null&&v.record):m=v==null?void 0:v.record;break}if(!m)throw new Error("未找到需要预览的数据");return p.value.open(Yr,{record:m,columns:X.columns},{title:(v==null?void 0:v.title)||"详情",mode:(v==null?void 0:v.mode)||"dialog"})},u=v=>{let m;switch(!0){case!!(v!=null&&v.key):m=o.value.find(b=>b[X.rowKey]===(v==null?void 0:v.key));break;case!!(v!=null&&v.record):m=v==null?void 0:v.record;break}if(!m)throw new Error("未找到需要编辑的数据");return p.value.open(gn,{record:m,form:v==null?void 0:v.form,onSubmit:v.onSubmit},{title:(v==null?void 0:v.title)||"编辑",mode:(v==null?void 0:v.mode)||"dialog",footer:!0,form:"form"})},d=v=>{var g;if(!X.loadData)return;v!=null&&v.reset&&(e&&e.reset(),l&&l.reset());const m={...((g=_.value)==null?void 0:g.formSource)||{}};Object.keys(m).forEach(y=>{[null,void 0,""].includes(m[y])&&delete m[y]});const b=X.loadData({form:m,page:e,sort:l,update:a});yn(b)&&(r.value=!0,Promise.resolve(b).finally(()=>{r.value=!1}))},f=rr({reload:d,preview:h,export:c,edit:u});function w(v,m){l&&(m?l.update(v,m==="descend"?"desc":"asc"):l.remove(v),f("reload"))}const x=Br(X.columns,X.columnsOptions,f),A={tableEvents:f,tableForm:t,tableSource:o,formInstance:_,pageService:e},N=pn(X,at,A),L=dn(X,at,A),j=bn(X,at,A),{selectedRowKeys:P,rowSelection:D,onSelect:$,onSelectAll:B}=mn(X,at,A),k={rowKey:X.rowKey,size:X.size,scroll:{x:X.columns.reduce((v,m)=>v+=typeof m.width!="number"?Math.max(m.title.length*16,80):m.width,0),y:X.height??"100%"},rowSelection:D};return yt.onMounted(()=>{X.autoLoad&&d()}),{tableId:s,tableInstance:C,tableSource:o,tableOptions:k,tableColumns:x,tableEvents:f,tableForm:t,tableLoading:r,modalInstance:p,formSource:(M=_==null?void 0:_.value)==null?void 0:M.formSource,reload:d,preview:h,edit:u,export:c,onSorterChange:w,renders:{renderTableForm:N,renderTableActions:L,renderTablePagination:j},tableSelection:{selectedRowKeys:P,rowSelection:D,onSelect:$,onSelectAll:B}}},render(){const X=()=>yt.createVNode("div",{class:"table-body"},[yt.createVNode(_e.Table,yt.mergeProps({loading:this.tableLoading,data:this.tableSource,columns:this.tableColumns,ref:at=>this.tableInstance=at,onSelect:this.tableSelection.onSelect,onSelectAll:this.tableSelection.onSelectAll,onSorterChange:this.onSorterChange,selectedKeys:this.tableSelection.selectedRowKeys.value,"onUpdate:selectedKeys":at=>this.tableSelection.selectedRowKeys.value=at,pagination:!1},this.tableOptions),null)]);return yt.createVNode("div",{class:"table-render"},[yt.createVNode(Xe.ModalProvider,{ref:at=>this.modalInstance=at},{default:()=>[yt.createVNode("div",{class:"table-render-content"},[this.renders.renderTableForm(),this.renders.renderTableActions(),X(),this.renders.renderTablePagination()])]})])}});function vn(X){return X}function wn(X){return X}const _n={install(X,at){X.component("TableRender",ar)}};exports.TableRenderResolver=hr.TableRenderResolver;exports.TableRender=ar;exports.default=_n;exports.defineColumns=vn;exports.defineTableLoad=wn;exports.useEvents=rr;exports.useTable=mr;
57
+ */function p(o){return o>=65&&o<=90||o===95||o>=97&&o<=122||o>=192&&o<=214||o>=216&&o<=246||o>=248&&o<=767||o>=880&&o<=893||o>=895&&o<=8191||o>=8204&&o<=8205||o>=8304&&o<=8591||o>=11264&&o<=12271||o>=12289&&o<=55295||o>=63744&&o<=64975||o>=65008&&o<=65533||o>=65536&&o<=983039}Object.defineProperty(_,"__esModule",{value:!0}),_.NC_NAME_START_CHAR="A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿",_.NC_NAME_CHAR="-"+_.NC_NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",_.NC_NAME_START_CHAR_RE=new RegExp("^["+_.NC_NAME_START_CHAR+"]$","u"),_.NC_NAME_CHAR_RE=new RegExp("^["+_.NC_NAME_CHAR+"]$","u"),_.NC_NAME_RE=new RegExp("^["+_.NC_NAME_START_CHAR+"]["+_.NC_NAME_CHAR+"]*$","u"),_.isNCNameStartChar=p,_.isNCNameChar=function(o){return p(o)||o===45||o===46||o>=48&&o<=57||o===183||o>=768&&o<=879||o>=8255&&o<=8256}},{}]},{},[15])(15)})})(nr);var br=nr.exports;const gr=Symbol.for("RenderColumnType");function Me(X,at,s){return at.$type=X,at.$disableColumnMode=s==null?void 0:s.disableColumnMode,at.$disableViewMode=s==null?void 0:s.disableViewMode,at}function Ee(X,at){return(at.index||at.key).split(".").reduce((s,C)=>s==null?void 0:s[C],X)}function yr(X){return Me("button",(s,C,_)=>{const p=Xe.useModal(),o=Array.isArray(X)?X:"buttons"in X?X.buttons:[X],a=(t,e)=>typeof t=="function"?t(s):t===void 0?e:t;async function r(t){await(t.confirm===!0?new Promise(l=>{p.confirm({title:"提示信息",content:t.confirmText??"您确定要执行该操作?",onOk:()=>l(!0),onCancel:()=>l(!1)})}):Promise.resolve(!0))&&(t!=null&&t.onClick)&&(await t.onClick(s),t.autoReload&&(_!=null&&_.emits)&&(_==null||_.emits("reload")))}return yt.createVNode(yt.Fragment,null,[o.filter(t=>a(t.visiable,!0)).map(t=>yt.createVNode(_e.Button,{onClick:()=>r(t),type:t.type||"text",shape:t.shape,disabled:a(t.disabled,!1)},{icon:t.icon,default:()=>(typeof t.content=="function"?t.content(s):t.content)||""}))])},{disableViewMode:!0})}function Qe(X){const at=_=>_.replace(/(\d{1,3})(?=(\d{3})+(?:$|\.))/g,"$1,"),s=_=>(parseFloat(_.toString())/((X==null?void 0:X.scale)||1)).toFixed((X==null?void 0:X.precision)||2);return Me("dict",(_,p)=>{const o=Ee(_,p);return yt.createVNode("div",null,[(X==null?void 0:X.prefix)!==void 0&&yt.createVNode("span",null,[X==null?void 0:X.prefix]),yt.createVNode("span",{class:"currency_value"},[(X==null?void 0:X.thousands)===!1?s(o):at(s(o))]),(X==null?void 0:X.suffix)!==void 0&&yt.createVNode("span",null,[X==null?void 0:X.suffix])])})}const vr={success:"arcoblue",warning:"orange",error:"red"};function wr(X){return X instanceof Map?X:X.dict}function _r(X){const at=X instanceof Map?!1:X.tag;return typeof at=="string"?vr[at]:at}function xr(X){const at=wr(X),s=_r(X);return Me("dict",(_,p)=>{const o=Ee(_,p);return s?yt.createVNode(_e.Tag,{color:s===!0?void 0:s},{default:()=>[at.get(o)||o]}):yt.createVNode("span",null,[at.get(o)||o])})}function kr(X){function at(_,p){var a;const o=(a=document.getElementById(_))==null?void 0:a.getBoundingClientRect();if(o){const r=new Image(100,100);r.id=`IMAGE_${_}_PREVIEW`,r.src=p,r.setAttribute("style",["position:fixed;",`top:${o.top}px;`,`left:${o.left+o.width}px;`,"min-width:400px;","height:auto;","z-index:100;"].join("")),document.body.appendChild(r)}}function s(_){const p=document.getElementById(`IMAGE_${_}_PREVIEW`);p==null||p.remove()}return Me("image",(_,p,o)=>{const a=Ee(_,p),r=Math.random().toString(32).slice(2).toUpperCase(),t={width:o!=null&&o.previewing?(X==null?void 0:X.width)||"auto":"40px",height:o!=null&&o.previewing&&(X==null?void 0:X.height)||"auto",borderRadius:X==null?void 0:X.radius,maxWidth:!(X!=null&&X.height)&&!(X!=null&&X.width)?"150px":"auto",display:"block",margin:"auto",objectFit:"contain",transform:`rotate(${(X==null?void 0:X.rotate)||0}deg)`,cursor:X!=null&&X.preview?"pointer":"unset"},e=`${p.index||p.key}_parsed`;if(X!=null&&X.parse&&(X==null||X.parse(a).then(l=>_[e]=l)),X!=null&&X.parse&&!_[e])return yt.createVNode("div",null,[yt.createTextVNode("Loading...")]);{const l=_[e]||a;return yt.createVNode("img",{id:r,onMouseenter:()=>(X==null?void 0:X.preview)&&!(o!=null&&o.previewing)&&at(r,l),onMouseleave:()=>(X==null?void 0:X.preview)&&!(o!=null&&o.previewing)&&s(r),src:l,style:t},null)}})}const Sr=" ";function Cr(X){return X==null?void 0:X.replace(/(\d{3})\d*(\d{4})/g,"$1****$2")}function Tr(X,at){return X==null?void 0:X.replace(/\*/g,"M").replace(/\B(?=(?:\S{4})+$)/g,at??Sr).replace(/M/g,"*")}function Mr(X){return Me("phone",(s,C)=>{const _=Ee(s,C),p=Tr(X!=null&&X.safe?Cr(_):_,X==null?void 0:X.separator);return X!=null&&X.callable?yt.createVNode("a",{style:"text-decoration:none;",href:`tel:${_}`},[p]):yt.createVNode("span",null,[p])})}function Er(X){return Me("render",s=>X(s))}function Ar(X){return Me("tag",(s,C)=>{const _=Ee(s,C),p=(X==null?void 0:X.textColors)||["#F87335"],o=(X==null?void 0:X.backgroundColors)||["#FFF4E8"];return yt.createVNode("div",{style:{display:"flex",flexWrap:"wrap"}},[_.map((a,r)=>yt.createVNode("span",{style:{margin:"2px",padding:"2px 5px",border:`solid 2px ${(X==null?void 0:X.border)||"transparent"}`,borderRadius:`${(X==null?void 0:X.radius)||0}px`,color:typeof p=="function"?p(a,r):p[r%p.length],backgroundColor:typeof o=="function"?o(a,r):o[r%o.length]}},[a]))])})}function tr(X){if(typeof X=="string")return X;if(typeof X=="number")return`${X}px`}function Rr(X,at,s){var C,_;return typeof X=="function"?(C=X(s))==null?void 0:C.toString():typeof(X==null?void 0:X.content)=="function"?(_=X==null?void 0:X.content(s))==null?void 0:_.toString():typeof(X==null?void 0:X.content)=="string"?X==null?void 0:X.content:Ee(s,at)}function Or(X,at){if(typeof X!="function"){if(typeof(X==null?void 0:X.color)=="function")return X==null?void 0:X.color(at);if(typeof(X==null?void 0:X.color)=="string")return X==null?void 0:X.color}}function jr(X,at){if(typeof X!="function")return typeof(X==null?void 0:X.size)=="function"?tr(X==null?void 0:X.size(at)):tr(X==null?void 0:X.size)}function Ir(X,at){let s="";const C=Or(X,at),_=jr(X,at);return C&&(s+=`color:${C};`),_&&(s+=`font-size:${_};`),s}function Nr(X){return Me("text",(s,C)=>{const _=Rr(X||{},C,s),p=Ir(X||{},s);return yt.createVNode("span",{style:p},[_])})}function Pr(){return{text:Nr,dict:xr,tag:Ar,render:Er,phone:Mr,image:kr,currency:Qe,date:Qe,button:yr}}function Ke(X,at){if(!(X!=null&&X.render))return;const s=X.render({...Pr()});return{render:({record:C})=>s(C,X,at),[gr]:s.$type,disableColumnMode:s.$disableColumnMode,disableViewMode:s.$disableViewMode,isRender:s.$type==="render",type:s.$type}}function Br(X,at,s){return X.map(C=>({...at||{},...C})).map(C=>Dr(C,s)).filter(Boolean)}function Dr(X,at){const{render:s,disableColumnMode:C}=Ke(X,{previewing:!1,emits:at})||{};if(!(C||X.visiable===!1||typeof X.visiable=="function"&&X.visiable()===!1))return{dataIndex:X.index||X.key,title:X.title,width:X.width==="auto"?void 0:X.width,align:X.align??"center",fixed:X.fixed,ellipsis:X.ellipsis??!0,sortable:X.sortable?{sorter:!0,sortDirections:["ascend","descend"],defaultSortOrder:X.sortable==="asc"?"ascend":"descend"}:void 0,tooltip:!0,...X.extraProps,render:s}}function Fr(){return new br.Workbook}function Lr(X,at="Sheet1"){return X.addWorksheet(at,{headerFooter:{firstHeader:"",firstFooter:""}})}function zr(X,at){X.columns=at}function Ur(X,at){X.addRows(at)}async function $r({columns:X,rows:at,filename:s}){const C=Fr(),_=Lr(C);zr(_,X),Ur(_,at);const p=await C.xlsx.writeBuffer(),o=new Blob([p]);Vr(o,s||`${cr().format("YYYY-MM-DD HH:mm:ss")}.xlsx`)}function Vr(X,at){const s=document.createElement("a");s.download=at||"download",s.href=URL.createObjectURL(X),s.click(),setTimeout(()=>{URL.revokeObjectURL(s.href)},1e3)}function Hr(X,at){const s={};return X.filter(_=>_.exportable!==!1).map(_=>({options:_,render:Ke(_),content:typeof _.exportable=="object"?_.exportable.content:void 0})).forEach(_=>{var a;const p=(a=_.render)==null?void 0:a.render,o=()=>{var r;switch(!0){case!!_.content:return _.content&&_.content(at);case!!p:{const t=document.createElement("div"),e=yt.h(()=>p&&p({record:at}));return yt.render(e,t),(r=e.el)==null?void 0:r.innerText}default:return Ee(at,_.options)}};s[_.options.key]=o()}),s}function qr(X){switch(!0){case typeof X=="number":return X/6;case(typeof X=="string"&&X.endsWith("px")):return parseInt(X.replace("px",""))/6;default:return 30}}function Wr(X,at,s){const C=X.filter(p=>p.exportable!==!1).map(p=>{var o,a;return{key:p.key,header:((o=p.exportable)==null?void 0:o.header)||p.title,width:((a=p.exportable)==null?void 0:a.width)||qr(p.width)}}),_=at.map(p=>Hr(X,p));$r({columns:C,rows:_,filename:s})}function Xr(){return{exportExcel:Wr}}class Ye{constructor(at){Ne(this,"sort",{});Ne(this,"before",at=>{at.paramsQuery={...at.paramsQuery||{},sort:this.stringify(this.sort)}});at&&(this.sort=at)}update(at,s){at&&s&&(this.sort[at]=s)}remove(at){const s=Object.entries(this.sort).filter(([C])=>C!==at);this.sort={},s&&s.forEach(([C,_])=>{this.sort[C]=_})}reset(){this.sort={}}stringify(at){return typeof at!="object"?[]:(at instanceof Ye&&(at=at.sort),Object.entries(at).map(([s,C])=>`${s},${C}`))}}function Kr(X){return typeof X=="function"||Object.prototype.toString.call(X)==="[object Object]"&&!yt.isVNode(X)}const Yr=yt.defineComponent({props:{record:{type:Object,required:!0},columns:{type:Array,required:!0},minWidth:{type:Number,required:!1,default:350},border:{type:Boolean,default:!0},exclude:{type:Array,default:()=>[]},layout:{type:String,required:!1,default:"horizontal"},buttons:{type:Array,default:()=>[]}},setup(X){const at=yt.getCurrentInstance(),s=yt.ref(0),C=X.columns.filter(p=>typeof p.visiable=="boolean"?p.visiable:typeof p.visiable=="function"?p.visiable():!0).map(p=>({options:p,renderer:Ke(p,{previewing:!0})})).filter(({options:p})=>{var o;return!((o=X.exclude)!=null&&o.includes(p.key))}).filter(({renderer:p})=>!(p!=null&&p.disableViewMode));function _(){var p;if(at){const o=(p=at.proxy)==null?void 0:p.$el;s.value=Math.floor(o.offsetWidth/X.minWidth)}}return yt.onMounted(()=>{_()}),()=>{let p;return yt.createVNode("div",{class:"preview-container"},[yt.createVNode(_e.Descriptions,{column:s.value,bordered:!0,align:"left",layout:X.layout},Kr(p=C.map(o=>yt.createVNode(_e.DescriptionsItem,{label:o.options.title},{default:()=>{var a,r;return[(a=o.renderer)!=null&&a.render?(r=o.renderer)==null?void 0:r.render({record:X.record}):Ee(X.record,o.options)]}})))?p:{default:()=>[p]})])}}});const Zr=Symbol("ArcoConfigProvider"),Gr="arco",Jr="$arco",ir=X=>{var at,s,C;const _=yt.getCurrentInstance(),p=yt.inject(Zr,void 0),o=(C=(s=p==null?void 0:p.prefixCls)!=null?s:(at=_==null?void 0:_.appContext.config.globalProperties[Jr])==null?void 0:at.classPrefix)!=null?C:Gr;return X?`${o}-${X}`:o},Qr=Object.prototype.toString;function sr(X){return Qr.call(X)==="[object Number]"&&X===X}var or=(X,at)=>{for(const[s,C]of at)X[s]=C;return X};const tn=yt.defineComponent({name:"IconDownload",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:X=>["butt","round","square"].includes(X)},strokeLinejoin:{type:String,default:"miter",validator:X=>["arcs","bevel","miter","miter-clip","round"].includes(X)},rotate:Number,spin:Boolean},emits:{click:X=>!0},setup(X,{emit:at}){const s=ir("icon"),C=yt.computed(()=>[s,`${s}-download`,{[`${s}-spin`]:X.spin}]),_=yt.computed(()=>{const o={};return X.size&&(o.fontSize=sr(X.size)?`${X.size}px`:X.size),X.rotate&&(o.transform=`rotate(${X.rotate}deg)`),o});return{cls:C,innerStyle:_,onClick:o=>{at("click",o)}}}}),en=["stroke-width","stroke-linecap","stroke-linejoin"],rn=yt.createElementVNode("path",{d:"m33.072 22.071-9.07 9.071-9.072-9.07M24 5v26m16 4v6H8v-6"},null,-1),nn=[rn];function sn(X,at,s,C,_,p){return yt.openBlock(),yt.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:yt.normalizeClass(X.cls),style:yt.normalizeStyle(X.innerStyle),"stroke-width":X.strokeWidth,"stroke-linecap":X.strokeLinecap,"stroke-linejoin":X.strokeLinejoin,onClick:at[0]||(at[0]=(...o)=>X.onClick&&X.onClick(...o))},nn,14,en)}var qe=or(tn,[["render",sn]]);const on=Object.assign(qe,{install:(X,at)=>{var s;const C=(s=at==null?void 0:at.iconPrefix)!=null?s:"";X.component(C+qe.name,qe)}}),an=yt.defineComponent({name:"IconRefresh",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:X=>["butt","round","square"].includes(X)},strokeLinejoin:{type:String,default:"miter",validator:X=>["arcs","bevel","miter","miter-clip","round"].includes(X)},rotate:Number,spin:Boolean},emits:{click:X=>!0},setup(X,{emit:at}){const s=ir("icon"),C=yt.computed(()=>[s,`${s}-refresh`,{[`${s}-spin`]:X.spin}]),_=yt.computed(()=>{const o={};return X.size&&(o.fontSize=sr(X.size)?`${X.size}px`:X.size),X.rotate&&(o.transform=`rotate(${X.rotate}deg)`),o});return{cls:C,innerStyle:_,onClick:o=>{at("click",o)}}}}),ln=["stroke-width","stroke-linecap","stroke-linejoin"],un=yt.createElementVNode("path",{d:"M38.837 18C36.463 12.136 30.715 8 24 8 15.163 8 8 15.163 8 24s7.163 16 16 16c7.455 0 13.72-5.1 15.496-12M40 8v10H30"},null,-1),cn=[un];function hn(X,at,s,C,_,p){return yt.openBlock(),yt.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:yt.normalizeClass(X.cls),style:yt.normalizeStyle(X.innerStyle),"stroke-width":X.strokeWidth,"stroke-linecap":X.strokeLinecap,"stroke-linejoin":X.strokeLinejoin,onClick:at[0]||(at[0]=(...o)=>X.onClick&&X.onClick(...o))},cn,14,ln)}var We=or(an,[["render",hn]]);const fn=Object.assign(We,{install:(X,at)=>{var s;const C=(s=at==null?void 0:at.iconPrefix)!=null?s:"";X.component(C+We.name,We)}});function dn(X,at,{tableForm:s,tableEvents:C}){const _=X.refreshable||X.exportable||at.slots.actions,p=!!(s!=null&&s.length)&&_;return _||p?()=>yt.createVNode(yt.Fragment,null,[p&&yt.createVNode(_e.Divider,{margin:0},null),_&&yt.createVNode("div",{class:"table-actions",style:{display:"flex",justifyContent:"space-between",margin:"20px 0",flexDirection:X.actionsPosition==="right"?"row":"row-reverse",alignItems:"center"}},[yt.createVNode("div",{class:"built-in"},[yt.createVNode(_e.Space,null,{default:()=>[X.refreshable&&yt.createVNode(_e.Button,{type:"outline",shape:"circle"},{icon:()=>yt.createVNode(fn,{onClick:()=>C("reload")},null)}),X.exportable&&yt.createVNode(_e.Button,{type:"outline",shape:"circle"},{icon:()=>yt.createVNode(on,{onClick:()=>C("export")},null)})]})]),yt.createVNode("div",{class:"customs"},[yt.createVNode(_e.Space,null,{default:()=>[at.slots.actions&&at.slots.actions()]})])])]):()=>{}}function pn(X,at,{tableForm:s,tableEvents:C,formInstance:_}){return s!=null&&s.length?()=>yt.createVNode("div",{class:"table-form"},[yt.createVNode(er.FormRender,{form:s,ref:p=>_&&(_.value=p),searchable:!0,onSubmit:()=>C("reload",{reset:!0})},null)]):()=>{}}function mn(X,at,{tableSource:s}){const C=yt.ref([]);function _(){const a=typeof X.selection=="string"?{type:X.selection}:X.selection;switch(a==null?void 0:a.type){case"radio":return{title:"选择",...a,selectedRowKeys:C.value};case"checkbox":return{showCheckedAll:!0,selectedRowKeys:C.value,...a}}}function p(a,r,t){const{type:e}=_()||{};switch(e){case"radio":at.emit("update:radio-key",r),at.emit("update:radio-row",t);break;case"checkbox":at.emit("update:checkbox-keys",a),at.emit("update:checkbox-rows",a.map(l=>s.value.find(n=>n[X.rowKey]===l)));break}}function o(){yt.nextTick(()=>{at.emit("update:checkbox-keys",C.value),at.emit("update:checkbox-rows",C.value)})}return{selectedRowKeys:C,rowSelection:_(),onSelect:p,onSelectAll:o}}function bn(X,at,{pageService:s,tableEvents:C}){function _(o){s&&(s.pageIndex=o,C("reload"))}function p(o){s&&(s.pageSize=o,C("reload"))}return s?()=>yt.createVNode("div",{class:"table-pagination",style:{padding:"10px 0"}},[yt.createVNode(_e.Pagination,{current:s.pageIndex,"onUpdate:current":o=>s.pageIndex=o,"page-size":s.pageSize,"onUpdate:page-size":o=>s.pageSize=o,total:s.total,"page-size-options":s.pageSizeOpts,"hide-on-single-page":!0,"show-total":!0,"show-page-size":!0,onChange:o=>_(o),onPageSizeChange:o=>p(o),style:{justifyContent:"flex-end"}},null)]):()=>{}}const gn=yt.defineComponent({props:{record:{type:Object,required:!0},form:{type:Array,required:!0},onSubmit:{type:Function,required:!1}},setup(X){const at=Xe.useModal();function s(C){X.onSubmit&&X.onSubmit(C),at.close(C)}return()=>yt.createVNode("div",{class:"edit-form-container"},[yt.createVNode(er.FormRender,{name:"form",form:X.form,onSubmit:s},null)])}});function yn(X){return!!X&&(typeof X=="object"||typeof X=="function")&&typeof X.then=="function"}const ar=yt.defineComponent({props:{rowKey:{type:String,required:!0},form:{type:Object,required:!1},columns:{type:Object,required:!0},autoLoad:{type:Boolean,required:!1,default:!0},dataLoad:{type:Function,required:!1},height:{type:Number,required:!1},size:{type:String,required:!1,default:"large"},columnsOptions:{type:Object,required:!1},selection:{type:[String,Object],required:!1},radioKey:{type:[String,Number],required:!1},checkboxKeys:{type:Array,required:!1},radioRow:{type:Object,required:!1},checkboxRows:{type:Array,required:!1},exportable:{type:[Boolean,Object],required:!1,default:!1},refreshable:{type:Boolean,required:!1},actionsPosition:{type:String,required:!1,default:"right"},pageable:{type:[Object,Boolean],required:!1,default:!1},sortable:{type:[Object],required:!1}},expose:["preview","export","edit","reload","tableSource","formSource","update:radio-key","update:radio-row","update:checkbox-keys","update:checkbox-rows"],setup(X,at){var M;const s=Math.random().toString(32).slice(2).toUpperCase(),C=yt.ref(),_=yt.ref(),p=yt.ref(),[o,a]=dr(X.columns),r=yt.ref(!1),t=X.form??pr(X.columns),e=n(),l=i();function n(){switch(!0){case(typeof X.pageable=="boolean"&&X.pageable===!0):return new Je;case(typeof X.pageable=="object"&&!!X.pageable.reset):return X.pageable;case(typeof X.pageable=="object"&&(!!X.pageable.index||!!X.pageable.size)):return new Je(X.pageable.index,X.pageable.size)}}function i(){const v=X.columns.find(m=>!!m.sortable);if(v)return new Ye({[v.key]:v.sortable,...X.sortable})}const c=v=>{const{exportExcel:m}=Xr();m((v==null?void 0:v.columns)||X.columns,(v==null?void 0:v.source)||o.value,(v==null?void 0:v.filename)||(typeof X.exportable=="object"?X.exportable.filename:void 0))},h=v=>{let m;switch(!0){case!!(v!=null&&v.key):m=o.value.find(b=>b[X.rowKey]===(v==null?void 0:v.key));break;case!!(v!=null&&v.record):m=v==null?void 0:v.record;break}if(!m)throw new Error("未找到需要预览的数据");return p.value.open(Yr,{record:m,columns:X.columns},{title:(v==null?void 0:v.title)||"详情",mode:(v==null?void 0:v.mode)||"dialog"})},u=v=>{let m;switch(!0){case!!(v!=null&&v.key):m=o.value.find(b=>b[X.rowKey]===(v==null?void 0:v.key));break;case!!(v!=null&&v.record):m=v==null?void 0:v.record;break}if(!m)throw new Error("未找到需要编辑的数据");return p.value.open(gn,{record:m,form:v==null?void 0:v.form,onSubmit:v.onSubmit},{title:(v==null?void 0:v.title)||"编辑",mode:(v==null?void 0:v.mode)||"dialog",footer:!0,form:"form"})},d=v=>{var g;if(!X.dataLoad)return;v!=null&&v.reset&&(e&&e.reset(),l&&l.reset());const m={...((g=_.value)==null?void 0:g.formSource)||{}};Object.keys(m).forEach(y=>{[null,void 0,""].includes(m[y])&&delete m[y]});const b=X.dataLoad({form:m,page:e,sort:l,update:a});yn(b)&&(r.value=!0,Promise.resolve(b).finally(()=>{r.value=!1}))},f=rr({reload:d,preview:h,export:c,edit:u});function w(v,m){l&&(m?l.update(v,m==="descend"?"desc":"asc"):l.remove(v),f("reload"))}const x=Br(X.columns,X.columnsOptions,f),A={tableEvents:f,tableForm:t,tableSource:o,formInstance:_,pageService:e},N=pn(X,at,A),L=dn(X,at,A),j=bn(X,at,A),{selectedRowKeys:P,rowSelection:D,onSelect:$,onSelectAll:B}=mn(X,at,A),k={rowKey:X.rowKey,size:X.size,scroll:{x:X.columns.reduce((v,m)=>v+=typeof m.width!="number"?Math.max(m.title.length*16,80):m.width,0),y:X.height??"100%"},rowSelection:D};return yt.onMounted(()=>{X.autoLoad&&d()}),{tableId:s,tableInstance:C,tableSource:o,tableOptions:k,tableColumns:x,tableEvents:f,tableForm:t,tableLoading:r,modalInstance:p,formSource:(M=_==null?void 0:_.value)==null?void 0:M.formSource,reload:d,preview:h,edit:u,export:c,onSorterChange:w,renders:{renderTableForm:N,renderTableActions:L,renderTablePagination:j},tableSelection:{selectedRowKeys:P,rowSelection:D,onSelect:$,onSelectAll:B}}},render(){const X=()=>yt.createVNode("div",{class:"table-body"},[yt.createVNode(_e.Table,yt.mergeProps({loading:this.tableLoading,data:this.tableSource,columns:this.tableColumns,ref:at=>this.tableInstance=at,onSelect:this.tableSelection.onSelect,onSelectAll:this.tableSelection.onSelectAll,onSorterChange:this.onSorterChange,selectedKeys:this.tableSelection.selectedRowKeys.value,"onUpdate:selectedKeys":at=>this.tableSelection.selectedRowKeys.value=at,pagination:!1},this.tableOptions),null)]);return yt.createVNode("div",{class:"table-render"},[yt.createVNode(Xe.ModalProvider,{ref:at=>this.modalInstance=at},{default:()=>[yt.createVNode("div",{class:"table-render-content"},[this.renders.renderTableForm(),this.renders.renderTableActions(),X(),this.renders.renderTablePagination()])]})])}});function vn(X){return X}function wn(X){return X}const _n={install(X,at){X.component("TableRender",ar)}};exports.TableRenderResolver=hr.TableRenderResolver;exports.TableRender=ar;exports.default=_n;exports.defineColumns=vn;exports.defineTableLoad=wn;exports.useEvents=rr;exports.useTable=mr;
@@ -2,6 +2,7 @@ export * from './table-column-render';
2
2
  export * from './table-column-options';
3
3
  export * from './table-load-params';
4
4
  export * from './sortable-options';
5
+ export * from './pageable-options';
5
6
  export interface DataRecord {
6
7
  [key: string]: any;
7
8
  }
@@ -14,7 +14,7 @@ export interface TableColumnSharedOptions {
14
14
  * 列配置
15
15
  */
16
16
  export interface TableColumnOptions<T> {
17
- key: string;
17
+ key: string | keyof T;
18
18
  title: string;
19
19
  index?: string;
20
20
  fixed?: 'left' | 'right';
@@ -31,10 +31,18 @@ export interface TableColumnOptions<T> {
31
31
  visiable?: boolean | (() => boolean);
32
32
  extraProps?: Partial<Omit<TableColumnData, 'dataIndex' | 'title' | 'fixed' | 'align' | 'width'>>;
33
33
  }
34
+ export interface TableColumnTypeKeyOptions<T> extends TableColumnOptions<T> {
35
+ key: keyof T;
36
+ }
37
+ export interface TableColumnStringKeyOptions<T> extends TableColumnOptions<T> {
38
+ key: string;
39
+ }
34
40
  export interface ExportColumnOptions {
35
41
  header?: string;
36
42
  width?: number;
37
43
  content?: (record: DataRecord) => string | number | undefined;
38
44
  }
39
45
  export type TableColumnsOptions<T = DataRecord> = TableColumnOptions<T>[];
46
+ export type TableColumnsTypeKeyOptions<T = DataRecord> = TableColumnTypeKeyOptions<T>[];
47
+ export type TableColumnsStringKeyOptions<T = DataRecord> = TableColumnStringKeyOptions<T>[];
40
48
  export type DataFormatter<T> = (record: T) => string | number | Date | undefined;
@@ -22,7 +22,7 @@ export declare const TableRender: import("vue").DefineComponent<{
22
22
  required: false;
23
23
  default: boolean;
24
24
  };
25
- loadData: {
25
+ dataLoad: {
26
26
  type: PropType<(params: TableLoadParams) => (void | Promise<any>)>;
27
27
  required: false;
28
28
  };
@@ -87,6 +87,7 @@ export declare const TableRender: import("vue").DefineComponent<{
87
87
  size: number;
88
88
  }>;
89
89
  required: false;
90
+ default: boolean;
90
91
  };
91
92
  sortable: {
92
93
  type: PropType<Record<string, "desc" | "asc">>;
@@ -951,8 +952,8 @@ export declare const TableRender: import("vue").DefineComponent<{
951
952
  onSorterChange: (dataIndex: string, direction: string) => void;
952
953
  renders: {
953
954
  renderTableForm: (() => import("vue/jsx-runtime").JSX.Element) | (() => undefined);
954
- renderTableActions: () => import("vue/jsx-runtime").JSX.Element;
955
- renderTablePagination: (() => import("vue/jsx-runtime").JSX.Element) | (() => undefined);
955
+ renderTableActions: () => JSX.Element | undefined;
956
+ renderTablePagination: () => JSX.Element | undefined;
956
957
  };
957
958
  tableSelection: {
958
959
  selectedRowKeys: Ref<(string | number)[]>;
@@ -978,7 +979,7 @@ export declare const TableRender: import("vue").DefineComponent<{
978
979
  required: false;
979
980
  default: boolean;
980
981
  };
981
- loadData: {
982
+ dataLoad: {
982
983
  type: PropType<(params: TableLoadParams) => (void | Promise<any>)>;
983
984
  required: false;
984
985
  };
@@ -1043,6 +1044,7 @@ export declare const TableRender: import("vue").DefineComponent<{
1043
1044
  size: number;
1044
1045
  }>;
1045
1046
  required: false;
1047
+ default: boolean;
1046
1048
  };
1047
1049
  sortable: {
1048
1050
  type: PropType<Record<string, "desc" | "asc">>;
@@ -1056,6 +1058,10 @@ export declare const TableRender: import("vue").DefineComponent<{
1056
1058
  };
1057
1059
  refreshable: boolean;
1058
1060
  actionsPosition: "left" | "right";
1061
+ pageable: boolean | (RequestPlugin & PageableOptions) | {
1062
+ index: number;
1063
+ size: number;
1064
+ };
1059
1065
  }, {}>;
1060
1066
  export type TableRenderInstance = InstanceType<typeof TableRender>;
1061
1067
  export type TableRenderProps = TableRenderInstance['$props'];
@@ -1,2 +1,2 @@
1
1
  import type { TableRenderContext, TableRenderOptions, TableRenderProps } from '.';
2
- export declare function tableActionsRender(props: TableRenderProps, ctx: TableRenderContext, { tableForm, tableEvents, }: TableRenderOptions): () => import("vue/jsx-runtime").JSX.Element;
2
+ export declare function tableActionsRender(props: TableRenderProps, ctx: TableRenderContext, { tableForm, tableEvents, }: TableRenderOptions): () => (JSX.Element | undefined);
@@ -1,2 +1,2 @@
1
1
  import type { TableRenderContext, TableRenderOptions, TableRenderProps } from '.';
2
- export declare function tablePaginationRender(props: TableRenderProps, ctx: TableRenderContext, { pageService, tableEvents, }: TableRenderOptions): (() => import("vue/jsx-runtime").JSX.Element) | (() => undefined);
2
+ export declare function tablePaginationRender(props: TableRenderProps, ctx: TableRenderContext, { pageService, tableEvents, }: TableRenderOptions): () => (JSX.Element | undefined);
@@ -1,2 +1,3 @@
1
- import type { DataRecord, TableColumnsOptions } from '../interfaces';
2
- export declare function defineColumns<T = DataRecord>(columns: TableColumnsOptions<T>): TableColumnsOptions<T>;
1
+ import type { DataRecord, TableColumnsOptions, TableColumnsStringKeyOptions, TableColumnsTypeKeyOptions } from '../interfaces';
2
+ export declare function defineColumns<T = DataRecord>(columns: TableColumnsTypeKeyOptions<T>): TableColumnsOptions<T>;
3
+ export declare function defineColumns<T = DataRecord>(columns: TableColumnsStringKeyOptions<T>): TableColumnsOptions<T>;
package/dist/es/index.mjs CHANGED
@@ -33904,8 +33904,8 @@ function Fn(X, at, {
33904
33904
  tableForm: s,
33905
33905
  tableEvents: C
33906
33906
  }) {
33907
- const _ = X.refreshable || X.exportable || at.slots.actions, p = (s == null ? void 0 : s.length) && _;
33908
- return () => Xt(or, null, [p && Xt(jr, {
33907
+ const _ = X.refreshable || X.exportable || at.slots.actions, p = !!(s != null && s.length) && _;
33908
+ return _ || p ? () => Xt(or, null, [p && Xt(jr, {
33909
33909
  margin: 0
33910
33910
  }, null), _ && Xt("div", {
33911
33911
  class: "table-actions",
@@ -33938,7 +33938,8 @@ function Fn(X, at, {
33938
33938
  class: "customs"
33939
33939
  }, [Xt(rr, null, {
33940
33940
  default: () => [at.slots.actions && at.slots.actions()]
33941
- })])])]);
33941
+ })])])]) : () => {
33942
+ };
33942
33943
  }
33943
33944
  function Ln(X, at, {
33944
33945
  tableForm: s,
@@ -34090,7 +34091,7 @@ const Vn = /* @__PURE__ */ Be({
34090
34091
  required: !1,
34091
34092
  default: !0
34092
34093
  },
34093
- loadData: {
34094
+ dataLoad: {
34094
34095
  type: Function,
34095
34096
  required: !1
34096
34097
  },
@@ -34143,7 +34144,8 @@ const Vn = /* @__PURE__ */ Be({
34143
34144
  },
34144
34145
  pageable: {
34145
34146
  type: [Object, Boolean],
34146
- required: !1
34147
+ required: !1,
34148
+ default: !1
34147
34149
  },
34148
34150
  sortable: {
34149
34151
  type: [Object],
@@ -34156,7 +34158,7 @@ const Vn = /* @__PURE__ */ Be({
34156
34158
  const s = Math.random().toString(32).slice(2).toUpperCase(), C = Te(), _ = Te(), p = Te(), [o, a] = Fr(X.columns), r = Te(!1), t = X.form ?? Lr(X.columns), e = n(), l = i();
34157
34159
  function n() {
34158
34160
  switch (!0) {
34159
- case typeof X.pageable == "boolean":
34161
+ case (typeof X.pageable == "boolean" && X.pageable === !0):
34160
34162
  return new nr();
34161
34163
  case (typeof X.pageable == "object" && !!X.pageable.reset):
34162
34164
  return X.pageable;
@@ -34220,7 +34222,7 @@ const Vn = /* @__PURE__ */ Be({
34220
34222
  });
34221
34223
  }, d = (v) => {
34222
34224
  var g;
34223
- if (!X.loadData)
34225
+ if (!X.dataLoad)
34224
34226
  return;
34225
34227
  v != null && v.reset && (e && e.reset(), l && l.reset());
34226
34228
  const m = {
@@ -34229,7 +34231,7 @@ const Vn = /* @__PURE__ */ Be({
34229
34231
  Object.keys(m).forEach((y) => {
34230
34232
  [null, void 0, ""].includes(m[y]) && delete m[y];
34231
34233
  });
34232
- const b = X.loadData({
34234
+ const b = X.dataLoad({
34233
34235
  form: m,
34234
34236
  page: e,
34235
34237
  sort: l,
@@ -2,6 +2,7 @@ export * from './table-column-render';
2
2
  export * from './table-column-options';
3
3
  export * from './table-load-params';
4
4
  export * from './sortable-options';
5
+ export * from './pageable-options';
5
6
  export interface DataRecord {
6
7
  [key: string]: any;
7
8
  }
@@ -14,7 +14,7 @@ export interface TableColumnSharedOptions {
14
14
  * 列配置
15
15
  */
16
16
  export interface TableColumnOptions<T> {
17
- key: string;
17
+ key: string | keyof T;
18
18
  title: string;
19
19
  index?: string;
20
20
  fixed?: 'left' | 'right';
@@ -31,10 +31,18 @@ export interface TableColumnOptions<T> {
31
31
  visiable?: boolean | (() => boolean);
32
32
  extraProps?: Partial<Omit<TableColumnData, 'dataIndex' | 'title' | 'fixed' | 'align' | 'width'>>;
33
33
  }
34
+ export interface TableColumnTypeKeyOptions<T> extends TableColumnOptions<T> {
35
+ key: keyof T;
36
+ }
37
+ export interface TableColumnStringKeyOptions<T> extends TableColumnOptions<T> {
38
+ key: string;
39
+ }
34
40
  export interface ExportColumnOptions {
35
41
  header?: string;
36
42
  width?: number;
37
43
  content?: (record: DataRecord) => string | number | undefined;
38
44
  }
39
45
  export type TableColumnsOptions<T = DataRecord> = TableColumnOptions<T>[];
46
+ export type TableColumnsTypeKeyOptions<T = DataRecord> = TableColumnTypeKeyOptions<T>[];
47
+ export type TableColumnsStringKeyOptions<T = DataRecord> = TableColumnStringKeyOptions<T>[];
40
48
  export type DataFormatter<T> = (record: T) => string | number | Date | undefined;
@@ -22,7 +22,7 @@ export declare const TableRender: import("vue").DefineComponent<{
22
22
  required: false;
23
23
  default: boolean;
24
24
  };
25
- loadData: {
25
+ dataLoad: {
26
26
  type: PropType<(params: TableLoadParams) => (void | Promise<any>)>;
27
27
  required: false;
28
28
  };
@@ -87,6 +87,7 @@ export declare const TableRender: import("vue").DefineComponent<{
87
87
  size: number;
88
88
  }>;
89
89
  required: false;
90
+ default: boolean;
90
91
  };
91
92
  sortable: {
92
93
  type: PropType<Record<string, "desc" | "asc">>;
@@ -951,8 +952,8 @@ export declare const TableRender: import("vue").DefineComponent<{
951
952
  onSorterChange: (dataIndex: string, direction: string) => void;
952
953
  renders: {
953
954
  renderTableForm: (() => import("vue/jsx-runtime").JSX.Element) | (() => undefined);
954
- renderTableActions: () => import("vue/jsx-runtime").JSX.Element;
955
- renderTablePagination: (() => import("vue/jsx-runtime").JSX.Element) | (() => undefined);
955
+ renderTableActions: () => JSX.Element | undefined;
956
+ renderTablePagination: () => JSX.Element | undefined;
956
957
  };
957
958
  tableSelection: {
958
959
  selectedRowKeys: Ref<(string | number)[]>;
@@ -978,7 +979,7 @@ export declare const TableRender: import("vue").DefineComponent<{
978
979
  required: false;
979
980
  default: boolean;
980
981
  };
981
- loadData: {
982
+ dataLoad: {
982
983
  type: PropType<(params: TableLoadParams) => (void | Promise<any>)>;
983
984
  required: false;
984
985
  };
@@ -1043,6 +1044,7 @@ export declare const TableRender: import("vue").DefineComponent<{
1043
1044
  size: number;
1044
1045
  }>;
1045
1046
  required: false;
1047
+ default: boolean;
1046
1048
  };
1047
1049
  sortable: {
1048
1050
  type: PropType<Record<string, "desc" | "asc">>;
@@ -1056,6 +1058,10 @@ export declare const TableRender: import("vue").DefineComponent<{
1056
1058
  };
1057
1059
  refreshable: boolean;
1058
1060
  actionsPosition: "left" | "right";
1061
+ pageable: boolean | (RequestPlugin & PageableOptions) | {
1062
+ index: number;
1063
+ size: number;
1064
+ };
1059
1065
  }, {}>;
1060
1066
  export type TableRenderInstance = InstanceType<typeof TableRender>;
1061
1067
  export type TableRenderProps = TableRenderInstance['$props'];
@@ -1,2 +1,2 @@
1
1
  import type { TableRenderContext, TableRenderOptions, TableRenderProps } from '.';
2
- export declare function tableActionsRender(props: TableRenderProps, ctx: TableRenderContext, { tableForm, tableEvents, }: TableRenderOptions): () => import("vue/jsx-runtime").JSX.Element;
2
+ export declare function tableActionsRender(props: TableRenderProps, ctx: TableRenderContext, { tableForm, tableEvents, }: TableRenderOptions): () => (JSX.Element | undefined);
@@ -1,2 +1,2 @@
1
1
  import type { TableRenderContext, TableRenderOptions, TableRenderProps } from '.';
2
- export declare function tablePaginationRender(props: TableRenderProps, ctx: TableRenderContext, { pageService, tableEvents, }: TableRenderOptions): (() => import("vue/jsx-runtime").JSX.Element) | (() => undefined);
2
+ export declare function tablePaginationRender(props: TableRenderProps, ctx: TableRenderContext, { pageService, tableEvents, }: TableRenderOptions): () => (JSX.Element | undefined);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gopowerteam/table-render",
3
3
  "type": "module",
4
- "version": "0.0.4",
4
+ "version": "0.0.6",
5
5
  "author": {
6
6
  "name": "zhuchentong",
7
7
  "email": "2037630@gmail.com"