@gct-paas/v-ben 0.1.6-dev.23 → 0.1.6-dev.25

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
- /*! @gct-paas/v-ben v0.1.6-dev.23 */
2
- import{cssLoader as e,permission as t,t as n,useNamespace as o}from"@gct-paas/core";import{Fragment as l,computed as a,createBlock as r,createCommentVNode as i,createElementBlock as s,createElementVNode as u,createSlots as c,createTextVNode as d,createVNode as f,defineComponent as p,guardReactiveProps as m,h as g,mergeProps as y,nextTick as h,normalizeClass as v,normalizeProps as b,onActivated as C,onMounted as w,onUnmounted as S,openBlock as x,ref as k,renderList as B,renderSlot as T,resolveComponent as A,toDisplayString as P,toRaw as _,toValue as O,unref as $,useAttrs as R,vShow as F,watch as I,withCtx as D,withDirectives as E,withModifiers as H}from"vue";import{cloneDeep as z,omit as j}from"lodash-es";import{LeftOutlined as L,MoreOutlined as N,RightOutlined as W}from"@ant-design/icons-vue";import{Button as K,Divider as M,Dropdown as V,Menu as q,Popconfirm as U,Tooltip as G}from"ant-design-vue";var X=Object.prototype.toString;function Y(e,t){return X.call(e)===`[object ${t}]`}function J(e){return void 0!==e}function Q(e){return!J(e)}function Z(e){return null!==e&&Y(e,"Object")}function ee(e){return de(e)||ie(e)?0===e.length:e instanceof Map||e instanceof Set?0===e.size:!!Z(e)&&0===Object.keys(e).length}function te(e){return Y(e,"Date")}function ne(e){return null===e}function oe(e){return Q(e)&&ne(e)}function le(e){return Q(e)||ne(e)}function ae(e){return Y(e,"Number")}function re(e){return Y(e,"Promise")&&Z(e)&&se(e.then)&&se(e.then)}function ie(e){return Y(e,"String")}function se(e){return"function"==typeof e}function ue(e){return Y(e,"Boolean")}function ce(e){return Y(e,"RegExp")}function de(e){return!!e&&Array.isArray(e)}function fe(e){return"undefined"!=typeof window&&Y(e,"Window")}function pe(e){return Z(e)&&!!e.tagName}function me(e){return Y(e,"Map")}function ge(e){return/^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?/.test(e)}function ye(e){return void 0===e||!e&&0!==e&&"0"!==e||!/[^\s]/.test(e+"")}var he=(e,t)=>{const n=e.__vccOpts||e;for(const[o,l]of t)n[o]=l;return n},ve=/* @__PURE__ */he(p({name:"TableHeaderCell",components:{},props:{column:{type:Object,default:()=>({})}},setup:e=>({getTitle:a(()=>{var t,n;return(null===(t=e.column)||void 0===t?void 0:t.customTitle)||(null===(n=e.column)||void 0===n?void 0:n.title)})})}),[["render",function(e,t,n,o,l,a){return x(),s("span",null,P(e.getTitle),1)}]]),be={clickToRowSelect:{type:Boolean,default:!0},isTreeTable:Boolean,tableSetting:{type:Object,default:{}},inset:Boolean,showTableSetting:Boolean,autoCreateKey:{type:Boolean,default:!0},striped:{type:Boolean,default:!0},showSummary:Boolean,summaryFunc:{type:[Function,Array],default:null},summaryData:{type:Array,default:null},indentSize:{type:Number,default:24},canColDrag:{type:Boolean,default:!0},api:{type:Function,default:null},beforeFetch:{type:Function,default:null},afterFetch:{type:Function,default:null},handleSearchInfoFn:{type:Function,default:null},immediate:{type:Boolean,default:!0},emptyDataIsShowTable:{type:Boolean,default:!0},searchInfo:{type:Object,default:null},defSort:{type:Object,default:null},useSearchForm:Boolean,columns:{type:Array,default:()=>[]},showIndexColumn:{type:Boolean,default:!0},indexColumnProps:{type:Object,default:null},actionColumn:{type:Object,default:null},ellipsis:{type:Boolean,default:!0},isCanResizeParent:{type:Boolean,default:!1},canResize:{type:Boolean,default:!0},clearSelectOnPageChange:Boolean,resizeHeightOffset:{type:Number,default:0},rowSelection:{type:Object,default:null},title:{type:[String,Function],default:null},titleHelpMessage:{type:[String,Array]},maxHeight:Number,dataSource:{type:Array,default:null},rowKey:{type:[String,Function],default:""},bordered:Boolean,pagination:{type:[Object,Boolean],default:null},loading:Boolean,rowClassName:{type:Function},scroll:{type:Object,default:null},beforeEditSubmit:{type:Function},rowDraggable:{type:Boolean,default:!1},supportSameLevel:{type:Boolean,default:!1},rowDragApi:{type:Function,default:null},expandedRowKeys:{type:Array,default:()=>[]},emptyFull:{type:Boolean,default:!1}},Ce=["clickToRowSelect","isTreeTable","tableSetting","inset","showTableSetting","autoCreateKey","striped","showSummary","summaryFunc","summaryData","indentSize","canColDrag","api","beforeFetch","afterFetch","handleSearchInfoFn","immediate","emptyDataIsShowTable","searchInfo","defSort","useSearchForm","showIndexColumn","indexColumnProps","actionColumn","ellipsis","isCanResizeParent","canResize","clearSelectOnPageChange","resizeHeightOffset","titleHelpMessage","beforeEditSubmit","rowDraggable","supportSameLevel","rowDragApi","emptyFull"],we="INDEX",Se="ACTION",xe=["20","50","80","100"];function ke(e,t){const{key:n,dataIndex:o,children:l}=e;e.align=e.align||"left",t&&(n||void 0===o||(e.key=Array.isArray(o)?o.join("."):String(o)),ue(e.ellipsis)||Object.assign(e,{ellipsis:{showTitle:!1}})),l&&l.length&&Be(l,!!t);const a=e.customCell;e.customCell=(t,n)=>({...a&&a(t,n),onMouseenter(t){if(!e.ellipsis)return;const n=t.target;n.scrollWidth>n.clientWidth&&n.setAttribute("title",n.textContent??"")}})}function Be(e,t){e&&e.forEach(e=>{const{children:n}=e;ke(e,t),Be(n,t)})}function Te({page:e,type:t,originalElement:n}){return"prev"===t?0===e?null:g(L):"next"===t?1===e?null:g(W):n}var Ae="undefined"!=typeof window&&"undefined"!=typeof document,Pe=("undefined"!=typeof WorkerGlobalScope&&(globalThis,WorkerGlobalScope),Object.prototype.toString),_e=()=>{};function Oe(e){return Array.isArray(e)?e:[e]}function $e(e){const t=Object.create(null);return n=>t[n]||(t[n]=e(n))}var Re=/\B([A-Z])/g,Fe=($e(e=>e.replace(Re,"-$1").toLowerCase()),/-(\w)/g);function Ie(e,t=200,n={}){return function(e,t){return function(...n){return new Promise((o,l)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(o).catch(l)})}}(function(e,t={}){let n,o,l=_e;const a=e=>{clearTimeout(e),l(),l=_e};let r;return i=>{const s=O(e),u=O(t.maxWait);return n&&a(n),s<=0||void 0!==u&&u<=0?(o&&(a(o),o=void 0),Promise.resolve(i())):new Promise((e,c)=>{l=t.rejectOnCancel?c:e,r=i,u&&!o&&(o=setTimeout(()=>{n&&a(n),o=void 0,e(r())},u)),n=setTimeout(()=>{o&&a(o),o=void 0,e(i())},s)})}}(t,n),e)}$e(e=>e.replace(Fe,(e,t)=>t?t.toUpperCase():""));var De=Ae?window:void 0;function Ee(e,t,n,o,l,r,i,s){const u=k(215),c=Ie(f,100),d=a(()=>{const{canResize:t,scroll:n}=$(e);return t&&!(n||{}).y});function f(){h(()=>{y()})}I(()=>{var e;return[$(d),null===(e=$(r))||void 0===e?void 0:e.length]},()=>{c()},{flush:"post"});let p=null,m=null,g=null;async function y(){const{resizeHeightOffset:n,maxHeight:o,isCanResizeParent:a,useSearchForm:c}=$(e),f=$(l),y=$(r),v=$(t);if(!v)return;const b=v.$el;if(!b)return;if(!g&&(g=b.querySelector(".ant-table-body"),!g))return;const C=g.scrollHeight>g.clientHeight,w=g.scrollWidth>g.clientWidth;if(C?b.classList.contains("hide-scrollbar-y")&&b.classList.remove("hide-scrollbar-y"):b.classList.contains("hide-scrollbar-y")||b.classList.add("hide-scrollbar-y"),w?b.classList.contains("hide-scrollbar-x")&&b.classList.remove("hide-scrollbar-x"):b.classList.contains("hide-scrollbar-x")||b.classList.add("hide-scrollbar-x"),g.style.height="unset",!$(d)||!$(y)||0===y.length)return;await h();const S=b.querySelector(".ant-table-thead ");if(!S)return;let x=32,k=12;ue(f)?k=-8:(p=b.querySelector(".ant-pagination"),k+=p?p.offsetHeight||0:24);let B=0;ue(f)||(m?B+=m.offsetHeight||0:m=b.querySelector(".ant-table-footer"));let T=0;S&&(T=S.offsetHeight);let A=0;if($(i)&&a){var P,_,O;const e=12,t=16;let n=10;const o=(null===(P=$(i))||void 0===P?void 0:P.offsetHeight)??0;let l=(null===(_=$(s))||void 0===_?void 0:_.$el.offsetHeight)??0;l&&(l+=t),ue(f)&&!f&&(n=0),ue(c)&&!c&&(x=0),A=o-l-((null===(O=b.querySelector(".ant-table-title"))||void 0===O?void 0:O.offsetHeight)??0)-e-n}else A=function(e){const t=document.documentElement,n=t.scrollLeft,o=t.scrollTop,l=t.clientLeft,a=t.clientTop,r=window.pageXOffset,i=window.pageYOffset,{left:s,top:u,width:c,height:d}=function(e){return e&&e.getBoundingClientRect?e.getBoundingClientRect():0}(e),f=s+r-((r||n)-(l||0)),p=u+i-((i||o)-(a||0)),m=window.document.documentElement.clientWidth,g=window.document.documentElement.clientHeight;return{left:f,top:p,right:m-c-f,bottom:g-d-p,rightIncludeBody:m-f,bottomIncludeBody:g-p}}(S).bottomIncludeBody;let R=A-(n||0)-x-k-B-T;if(R=(R>o?o:R)??R,function(e){u.value=e}(R),f&&!ue(f)){const e=b.querySelector(".ant-table-body");e&&(e.style.height=`${R}px`)}}function v(){y(),h(()=>{c()})}(function(...e){const t=a(()=>{const t=Oe(O(e[0])).filter(e=>null!=e);return t.every(e=>"string"!=typeof e)?t:void 0});return n=([e,t,n,o],l,a)=>{if(!(null==e?void 0:e.length)||!(null==t?void 0:t.length)||!(null==n?void 0:n.length))return;const r=(i=o,"[object Object]"===Pe.call(i)?{...o}:o);var i;const s=e.flatMap(e=>t.flatMap(t=>n.map(n=>((e,t,n,o)=>(e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)))(e,t,n,r))));a(()=>{s.forEach(e=>e())})},o={flush:"post"},I(()=>{var n,o;return[null!==(n=null===(o=t.value)||void 0===o?void 0:o.map(e=>function(e){var t;const n=O(e);return null!==(t=null==n?void 0:n.$el)&&void 0!==t?t:n}(e)))&&void 0!==n?n:[De].filter(e=>null!=e),Oe(O(t.value?e[1]:e[0])),Oe($(t.value?e[2]:e[1])),O(t.value?e[3]:e[2])]},n,{...o,immediate:!0});var n,o})(window,"resize",Ie(y,280)),w(v),C(v);const b=a(()=>{var e;let l=0;$(o)&&(l+=60);const a=$(n).filter(e=>!e.defaultHidden);a.forEach(e=>{l+=Number.parseFloat(String(e.width))||0});const r=a.filter(e=>!Reflect.has(e,"width")).length;0!==r&&(l+=150*r);const i=$(t);return((null==i||null===(e=i.$el)||void 0===e?void 0:e.offsetWidth)??0)>l?void 0:l});return{getScrollRef:a(()=>{const t=$(u),{canResize:n,scroll:o}=$(e);return{x:$(b),y:n?t:null,scrollToFirstRowOnChange:!1,...o}}),redoHeight:f}}function He(e,t,n){const{expandedRowKeys:o=[]}=$(e),l=k([...o]),r=a(()=>$(e).autoCreateKey&&!$(e).rowKey),i=a(()=>{const{rowKey:t}=$(e);return $(r)?"key":t});function s(n){const o=[],{childrenColumnName:l}=$(e),a=l||"children";return _(n||$(t)).forEach(e=>{o.push(String(e[$(i)]));const t=e[a];(null==t?void 0:t.length)&&o.push(...s(t))}),o}return{getExpandOption:a(()=>{const{isTreeTable:t}=$(e);return t?{expandedRowKeys:$(l),onExpandedRowsChange:e=>{l.value=e,n("expanded-rows-change",e)}}:{}}),expandAll:function(){l.value=s()},expandRows:function(t){const{isTreeTable:n}=$(e);n&&(l.value=[...l.value,...t])},collapseAll:function(){l.value=[]}}}Ae&&window.document,Ae&&window.navigator,Ae&&window.location,Number.POSITIVE_INFINITY;var ze="vben";function je(e){return{prefixCls:`${ze}-${e}`,prefixVar:ze}}var Le=["headerCell","bodyCell"],Ne=p({name:"BasicTable",components:{HeaderCell:ve},props:be,emits:["change","register","expanded-rows-change"],setup(e,{attrs:o,emit:l,slots:r,expose:i}){const s=k(null),u=k(null),c=k(null),{prefixCls:d}=je("basic-table"),f=a(()=>({...e,...o})),{getPaginationInfo:p,setPagination:m,getPagination:g,getShowPagination:y,setShowPagination:h}=function(e){const t=k({}),o=k(!0);I(()=>$(e).pagination,e=>{!ue(e)&&e&&(t.value={...$(t),...e})},{deep:!0});const l=a(()=>{const{pagination:l}=$(e);return!(!$(o)||ue(l)&&!l)&&{current:1,pageSize:20,size:"small",defaultPageSize:20,showTotal:e=>n("sys.component.table.total",{total:e}),showSizeChanger:!0,pageSizeOptions:xe,itemRender:Te,showQuickJumper:!0,...ue(l)?{}:l??{},...$(t)}});return{getPagination:function(){return $(l)},getPaginationInfo:l,setShowPagination:async function(e){o.value=e},getShowPagination:function(){return $(o)},setPagination:function(e){const n=$(l);t.value={...ue(n)?{}:n,...e}}}}(f),v=a(()=>$(p)),b=a(()=>$(f).rowSelection??null),C=a(()=>$(f).dataSource??[]),{getViewColumns:w,getColumnsRef:S}=function(e,o){const l=k($(e).columns),r=a(()=>{const t=z($(l));if(function(e,t,o){const{showIndexColumn:l,indexColumnProps:a,isTreeTable:r}=$(e);let i=!1;if($(r))return;if(o.forEach(()=>{const e=o.findIndex(e=>e.flag===we);l?i=-1===e:l||-1===e||o.splice(e,1)}),!i)return;const s=o.some(e=>"left"===e.fixed);o.unshift({flag:we,width:70,title:n("sys.component.table.index"),align:"center",customRender:({index:e})=>{const n=$(t);if(ue(n))return`${e+1}`;const{current:o=1,pageSize:l=20}=n;return((o<1?1:o)-1)*l+e+1},...s?{fixed:"left"}:{},...a})}(e,o,t),function(e,t){const{actionColumn:n}=$(e);if(!n)return;const o=t.findIndex(e=>e.flag===Se);-1===o&&t.push({...t[o],fixed:"right",...n,flag:Se})}(e,t),!t)return[];const{ellipsis:a}=$(e);return t.forEach(e=>{const{customRender:t,slots:n}=e;ke(e,Reflect.has(e,"ellipsis")?!!e.ellipsis:!!a&&!t&&!n)}),t}),i=a(()=>{const e=function(e){const t=[],n=[],o=[];for(const l of e)"left"!==l.fixed?"right"!==l.fixed?o.push(l):n.push(l):t.push(l);return[...t,...o,...n].filter(e=>!e.defaultHidden)}($(r)),n=e=>{const{slots:t}=e;return t&&(null==t?void 0:t.title)||(e.customTitle=e.title,Reflect.deleteProperty(e,"title")),e};return z(e).filter(e=>{return(!(n=e.auth)||(Array.isArray(n)?n.some(e=>t.has(String(e))):t.has(String(n))))&&function(e){const t=e.ifShow;return ue(t)?t:!se(t)||t(e)}(e);var n}).map(e=>{var t;return(null===(t=e.children)||void 0===t?void 0:t.length)&&(e.children=e.children.map(n)),n(e)})});return I(()=>$(e).columns,e=>{l.value=e}),{getColumnsRef:r,getViewColumns:i}}(f,v),{getScrollRef:x,redoHeight:B}=Ee(f,s,S,b,v,C,u,c),{getExpandOption:T,expandAll:A}=He(f,C,l),P=a(()=>{let e={...o,...$(f),scroll:$(x),tableLayout:"fixed",columns:_($(w)),pagination:_($(p)),rowSelection:$(b),dataSource:$(C),...$(T)};return e=j(e,[...Ce,"class","onChange"]),e}),O=a(()=>{const e=$(P);return[d,o.class,{[`${d}-form-container`]:e.useSearchForm,[`${d}--inset`]:e.inset}]}),R=a(()=>{const{emptyDataIsShowTable:t,useSearchForm:n,dataSource:o}=e;return!(!t&&n&&!(null==o?void 0:o.length))}),F=a(()=>Object.keys(r).filter(e=>!Le.includes(e)));return i({expandAll:A,redoHeight:B,setPagination:m,getPagination:g,getShowPagination:y,setShowPagination:h}),l("register",{expandAll:A}),{formRef:c,tableElRef:s,wrapRef:u,getBindValues:P,getWrapperClass:O,handleTableChange:function(...e){l("change",...e);const{onChange:t}=$(f);t&&"function"==typeof t&&t(...e)},getEmptyDataIsShowTable:R,slotNames:F,emptyFull:e.emptyFull,redoHeight:B}},mounted(){this.redoHeight()}}),We=/* @__PURE__ */he(Ne,[["render",function(e,t,n,o,l,a){const r=A("HeaderCell"),i=A("a-table");return x(),s("div",{ref:"wrapRef",class:v(e.getWrapperClass)},[T(e.$slots,"beforeTable"),E(f(i,y({ref:"tableElRef"},e.getBindValues,{class:e.emptyFull?"empty-basic-table-wrapper":"",onChange:e.handleTableChange}),c({headerCell:D(({column:e})=>[f(r,{column:e},null,8,["column"])]),bodyCell:D(t=>[T(e.$slots,"bodyCell",b(m(t||{})))]),_:2},[B(e.slotNames,t=>({name:t,fn:D(n=>[T(e.$slots,t,b(m(n||{})))])}))]),1040,["class","onChange"]),[[F,e.getEmptyDataIsShowTable]])],2)}]]),Ke={key:0},Me={key:0},Ve=/* @__PURE__ */p({__name:"TableAction",props:{actions:{type:Array,default:null},dropDownActions:{type:Array,default:null},divider:{type:Boolean,default:!0},outside:Boolean,stopButtonPropagation:{type:Boolean,default:!1}},setup(e){const n=e,u=o("basic-table-action"),c=t.has;function d(e){const t=e.ifShow;let n=!0;return ue(t)&&(n=t),se(t)&&(n=t(e)),n}const p=a(()=>(_(n.actions)||[]).filter(e=>c(e.auth)&&d(e)).map(e=>{const{popConfirm:t}=e;return{getPopupContainer:()=>document.body,type:"link",size:"small",...e,...t||{},onConfirm:null==t?void 0:t.confirm,onCancel:null==t?void 0:t.cancel,enable:!!t}})),m=a(()=>{const e=(_(n.dropDownActions)||[]).filter(e=>c(e.auth)&&d(e));return e.map((t,o)=>{const{label:l,popConfirm:a}=t;return{...t,...a,onConfirm:null==a?void 0:a.confirm,onCancel:null==a?void 0:a.cancel,text:l,divider:o<e.length-1&&n.divider}})}),g=a(()=>"left");function h(e){n.stopButtonPropagation&&e.composedPath().find(e=>{var t;return"BUTTON"===(null===(t=e.tagName)||void 0===t?void 0:t.toUpperCase())})&&e.stopPropagation()}return(t,n)=>{const o=A("a-button");return x(),s("div",{class:v([$(u).b(),g.value]),onClick:h},[(x(!0),s(l,null,B(p.value,(t,n)=>{return x(),s(l,{key:`${n}-${t.label}`},[t.tooltip?(x(),r($(G),y({key:0,placement:"bottom"},{ref_for:!0},(o=t.tooltip,{getPopupContainer:()=>document.body,...ie(o)?{title:o}:o})),{default:D(()=>[f($(at),y({ref_for:!0},t),{default:D(()=>[t.label?(x(),s("span",Ke,P(t.label),1)):i("",!0)]),_:2},1040)]),_:2},1040)):(x(),r($(at),y({key:1,ref_for:!0},t),{default:D(()=>[t.label?(x(),s("span",Me,P(t.label),1)):i("",!0)]),_:2},1040)),e.divider&&n<p.value.length-1?(x(),r($(M),{key:2,type:"vertical",class:"action-divider"})):i("",!0)],64);var o}),128)),e.dropDownActions&&m.value.length>0?(x(),r($(st),{key:0,trigger:["hover"],"drop-menu-list":m.value,popconfirm:""},{default:D(()=>[T(t.$slots,"more"),t.$slots.more?i("",!0):(x(),r(o,{key:0,type:"link",size:"small"},{default:D(()=>[f($(N),{class:"icon-more"})]),_:1}))]),_:3},8,["drop-menu-list"])):i("",!0)],2)}}}),qe={key:0},Ue={key:0},Ge=/* @__PURE__ */p({__name:"TableActionAuto",props:{actions:{type:Array,default:null},divider:{type:Boolean,default:!0},outside:Boolean,stopButtonPropagation:{type:Boolean,default:!1},maxDispalyCount:{type:Number,default:4}},setup(e){const n=e,u=o("basic-table-action"),c=t.has,d=a(()=>[..._(n.actions)||[]].filter(e=>c(e.auth)&&function(e){const t=e.ifShow??!0;return se(t)?t(e):!!t}(e))),p=a(()=>{let e=[];return e=n.maxDispalyCount>=d.value.length?[...d.value]:d.value.slice(0,n.maxDispalyCount),e.map(e=>{const{popConfirm:t}=e;return{getPopupContainer:()=>document.body,type:"link",size:"small",...e,...t||{},onConfirm:null==t?void 0:t.confirm,onCancel:null==t?void 0:t.cancel,enable:!!t}})}),m=a(()=>{let e=[];return n.maxDispalyCount>=d.value.length?[]:(e=d.value.slice(n.maxDispalyCount),e.map((t,o)=>{const{label:l,popConfirm:a}=t;return{...t,...a,onConfirm:null==a?void 0:a.confirm,onCancel:null==a?void 0:a.cancel,text:l,divider:o<e.length-1&&n.divider}}))}),g=a(()=>"left");function h(e){n.stopButtonPropagation&&e.composedPath().find(e=>{var t;return"BUTTON"===(null===(t=e.tagName)||void 0===t?void 0:t.toUpperCase())})&&e.stopPropagation()}return(t,n)=>{const o=A("a-button");return x(),s("div",{class:v([$(u).b(),g.value]),onClick:H(h,["stop"])},[(x(!0),s(l,null,B(p.value,(t,n)=>{return x(),s(l,{key:`${n}-${t.label}`},[t.tooltip?(x(),r($(G),y({key:0,ref_for:!0},(o=t.tooltip,{getPopupContainer:()=>document.body,placement:"bottom",...ie(o)?{title:o}:o})),{default:D(()=>[f($(at),y({ref_for:!0},t),{default:D(()=>[t.label?(x(),s("span",qe,P(t.label),1)):i("",!0)]),_:2},1040)]),_:2},1040)):(x(),r($(at),y({key:1,ref_for:!0},t),{default:D(()=>[t.label?(x(),s("span",Ue,P(t.label),1)):i("",!0)]),_:2},1040)),e.divider&&n<p.value.length-1?(x(),r($(M),{key:2,type:"vertical",class:"action-divider"})):i("",!0)],64);var o}),128)),m.value.length>0?(x(),r($(st),{key:0,trigger:["hover"],"drop-menu-list":m.value,popconfirm:""},{default:D(()=>[T(t.$slots,"more"),t.$slots.more?i("",!0):(x(),r(o,{key:0,type:"link",size:"small"},{default:D(()=>[f($(N),{class:"icon-more"})]),_:1}))]),_:3},8,["drop-menu-list"])):i("",!0)],2)}}});function Xe(){const e=k(null);return[function(t,n){S(()=>{e.value=null}),e.value=t},{expandAll:()=>{(function(){const t=$(e);return t||console.error("The table instance has not been obtained yet, please make sure the table is presented when performing the table operation!"),t})().expandAll()}}]}var Ye=["primary","error","warning","success",""],Je={color:{type:String,validator:e=>Ye.includes(e),default:""},loading:{type:Boolean},disabled:{type:Boolean},preIcon:{type:String},postIcon:{type:String},iconSize:{type:Number,default:14},onClick:{type:Function,default:null}},Qe=/* @__PURE__ */p({name:"AButton",extends:K,inheritAttrs:!1,__name:"BasicButton",props:Je,setup(e){const t=e,n=R(),o=a(()=>{const{color:e,disabled:n}=t;return[{[`ant-btn-${e}`]:!!e,"is-disabled":n}]}),l=a(()=>({...$(n),...t}));return(e,t)=>(x(),r($(K),y(l.value,{class:o.value,onClick:e.onClick}),{default:D(t=>[T(e.$slots,"default",b(m(t||{})))]),_:3},16,["class","onClick"]))}}),Ze=p({name:"PopButton",inheritAttrs:!1,props:{enable:{type:Boolean,default:!0}},setup(e,{slots:t}){const o=R(),l=a(()=>Object.assign({okText:n("sys.okText"),cancelText:n("sys.cancelText"),overlayStyle:{}},{...e,...$(o)}));return()=>{const n=j($(l),"icon"),o=j(n,"title");o.disabled&&(o.color="");const a=g(Qe,o,t);return e.enable?g(U,n,{default:()=>a}):a}}}),et=Ze,tt={class:"custom-btn-container"},nt={class:"btn-left-title"},ot=/* @__PURE__ */he(/* @__PURE__ */p({__name:"custom-button",props:{title:{}},emits:["btn-left-click","btn-right-click"],setup:e=>(t,n)=>(x(),s("div",tt,[u("div",{class:"btn-left",onClick:n[0]||(n[0]=H(e=>t.$emit("btn-left-click"),["stop"]))},[T(t.$slots,"left-icon",{},void 0,!0),u("div",nt,P(e.title),1)]),u("div",{class:"btn-right",onClick:n[1]||(n[1]=H(e=>t.$emit("btn-right-click"),["stop"]))},[T(t.$slots,"right-icon",{},void 0,!0)])]))}),[["__scopeId","data-v-305f4090"]]),lt=Qe,at=et,rt={class:"ml-1"},it={key:1,class:"ml-1"},st=/* @__PURE__ */p({name:"VDropdown",__name:"Dropdown",props:{popconfirm:Boolean,trigger:{type:Array,default:()=>["contextmenu"]},dropMenuList:{type:Array,default:()=>[]},selectedKeys:{type:Array,default:()=>[]}},emits:["menuEvent"],setup(e,{emit:t}){const n=V,o=q,a=q.Item,c=q.Divider,p=U,m=e,g=t;function h(e){const t=j(e,["confirm","cancel","icon"]);return!e.onConfirm&&e.confirm&&se(e.confirm)&&(t.onConfirm=e.confirm),!e.onCancel&&e.cancel&&se(e.cancel)&&(t.onCancel=e.cancel),t}return(t,v)=>(x(),r($(n),y({trigger:e.trigger},t.$attrs),{overlay:D(()=>[f($(o),{"selected-keys":e.selectedKeys},{default:D(()=>[(x(!0),s(l,null,B(e.dropMenuList,t=>{return x(),s(l,{key:`${t.event}`},[f($(a),y({class:t.class},{ref_for:!0},(n=t.event,{key:n}),{disabled:t.disabled,onClick:e=>function(e){var t;const{event:n}=e;g("menuEvent",m.dropMenuList.find(e=>`${e.event}`==`${n}`)),null===(t=e.onClick)||void 0===t||t.call(e)}(t)}),{default:D(()=>[e.popconfirm&&t.popConfirm?(x(),r($(p),y({key:0,ref_for:!0},h(t.popConfirm)),{default:D(()=>[u("div",null,[u("span",rt,P(t.text),1)])]),_:2},1040)):(x(),s("span",it,P(t.text),1))]),_:2},1040,["class","disabled","onClick"]),t.divider?(x(),r($(c),{key:`d-${t.event}`})):i("",!0)],64);var n}),128))]),_:1},8,["selected-keys"])]),default:D(()=>[u("span",null,[T(t.$slots,"default")]),d(" "+P(e.dropMenuList)+" ",1)]),_:3},16,["trigger"]))}});function ut(){}var ct=new URL("./index.min.css",import.meta.url);e.load(ct.href);export{We as BasicTable,lt as Button,ot as CustomButton,st as Dropdown,at as PopConfirmButton,Ve as TableAction,Ge as TableActionAuto,Y as is,de as isArray,ue as isBoolean,te as isDate,J as isDef,pe as isElement,ee as isEmpty,ye as isEmptyStr,se as isFunction,me as isMap,ne as isNull,oe as isNullAndUnDef,le as isNullOrUnDef,ae as isNumber,Z as isObject,re as isPromise,ce as isRegExp,ie as isString,Q as isUnDef,ge as isUrl,fe as isWindow,ut as run,Xe as useTable};
1
+ /*! @gct-paas/v-ben v0.1.6-dev.25 */
2
+ import{cssLoader as e,permission as t,t as n,useNamespace as o}from"@gct-paas/core";import{Fragment as l,computed as a,createBlock as r,createCommentVNode as i,createElementBlock as s,createElementVNode as u,createSlots as c,createTextVNode as d,createVNode as f,defineComponent as p,guardReactiveProps as m,h as g,mergeProps as y,nextTick as h,normalizeClass as v,normalizeProps as b,onActivated as C,onMounted as w,onUnmounted as S,openBlock as x,ref as k,renderList as T,renderSlot as B,resolveComponent as A,toDisplayString as P,toRaw as R,toValue as _,unref as z,useAttrs as O,vShow as $,watch as I,withCtx as F,withDirectives as N,withModifiers as D}from"vue";import{cloneDeep as E,omit as H}from"lodash-es";import{LeftOutlined as j,MoreOutlined as L,RightOutlined as M}from"@ant-design/icons-vue";import{Button as W,Divider as K,Dropdown as U,Menu as V,Popconfirm as q,Tooltip as G}from"ant-design-vue";var X=Object.defineProperty,Y=(e,t)=>{let n={};for(var o in e)X(n,o,{get:e[o],enumerable:!0});return t||X(n,Symbol.toStringTag,{value:"Module"}),n},J=Object.prototype.toString;function Q(e,t){return J.call(e)===`[object ${t}]`}function Z(e){return void 0!==e}function ee(e){return!Z(e)}function te(e){return null!==e&&Q(e,"Object")}function ne(e){return pe(e)||ue(e)?0===e.length:e instanceof Map||e instanceof Set?0===e.size:!!te(e)&&0===Object.keys(e).length}function oe(e){return Q(e,"Date")}function le(e){return null===e}function ae(e){return ee(e)&&le(e)}function re(e){return ee(e)||le(e)}function ie(e){return Q(e,"Number")}function se(e){return Q(e,"Promise")&&te(e)&&ce(e.then)&&ce(e.then)}function ue(e){return Q(e,"String")}function ce(e){return"function"==typeof e}function de(e){return Q(e,"Boolean")}function fe(e){return Q(e,"RegExp")}function pe(e){return!!e&&Array.isArray(e)}function me(e){return"undefined"!=typeof window&&Q(e,"Window")}function ge(e){return te(e)&&!!e.tagName}function ye(e){return Q(e,"Map")}function he(e){return/^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?/.test(e)}function ve(e){return void 0===e||!e&&0!==e&&"0"!==e||!/[^\s]/.test(e+"")}var be=(e,t)=>{const n=e.__vccOpts||e;for(const[o,l]of t)n[o]=l;return n},Ce=/* @__PURE__ */be(p({name:"TableHeaderCell",components:{},props:{column:{type:Object,default:()=>({})}},setup:e=>({getTitle:a(()=>{var t,n;return(null===(t=e.column)||void 0===t?void 0:t.customTitle)||(null===(n=e.column)||void 0===n?void 0:n.title)})})}),[["render",function(e,t,n,o,l,a){return x(),s("span",null,P(e.getTitle),1)}]]),we={clickToRowSelect:{type:Boolean,default:!0},isTreeTable:Boolean,tableSetting:{type:Object,default:{}},inset:Boolean,showTableSetting:Boolean,autoCreateKey:{type:Boolean,default:!0},striped:{type:Boolean,default:!0},showSummary:Boolean,summaryFunc:{type:[Function,Array],default:null},summaryData:{type:Array,default:null},indentSize:{type:Number,default:24},canColDrag:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},api:{type:Function,default:null},beforeFetch:{type:Function,default:null},afterFetch:{type:Function,default:null},handleSearchInfoFn:{type:Function,default:null},immediate:{type:Boolean,default:!0},emptyDataIsShowTable:{type:Boolean,default:!0},searchInfo:{type:Object,default:null},defSort:{type:Object,default:null},useSearchForm:Boolean,columns:{type:Array,default:()=>[]},showIndexColumn:{type:Boolean,default:!0},indexColumnProps:{type:Object,default:null},actionColumn:{type:Object,default:null},ellipsis:{type:Boolean,default:!0},isCanResizeParent:{type:Boolean,default:!1},canResize:{type:Boolean,default:!0},clearSelectOnPageChange:Boolean,resizeHeightOffset:{type:Number,default:0},rowSelection:{type:Object,default:null},title:{type:[String,Function],default:null},titleHelpMessage:{type:[String,Array]},maxHeight:Number,dataSource:{type:Array,default:null},rowKey:{type:[String,Function],default:""},bordered:Boolean,pagination:{type:[Object,Boolean],default:null},loading:Boolean,rowClassName:{type:Function},scroll:{type:Object,default:null},beforeEditSubmit:{type:Function},rowDraggable:{type:Boolean,default:!1},supportSameLevel:{type:Boolean,default:!1},rowDragApi:{type:Function,default:null},expandedRowKeys:{type:Array,default:()=>[]},emptyFull:{type:Boolean,default:!1}},Se=["clickToRowSelect","isTreeTable","tableSetting","inset","showTableSetting","autoCreateKey","striped","showSummary","summaryFunc","summaryData","indentSize","canColDrag","resizable","api","beforeFetch","afterFetch","handleSearchInfoFn","immediate","emptyDataIsShowTable","searchInfo","defSort","useSearchForm","showIndexColumn","indexColumnProps","actionColumn","ellipsis","isCanResizeParent","canResize","clearSelectOnPageChange","resizeHeightOffset","titleHelpMessage","beforeEditSubmit","rowDraggable","supportSameLevel","rowDragApi","emptyFull"],xe="INDEX",ke="ACTION",Te=["20","50","80","100"];function Be(e,t,n){const{key:o,dataIndex:l,children:a}=e;e.align=e.align||"left",t&&(o||void 0===l||(e.key=Array.isArray(l)?l.join("."):String(l)),de(e.ellipsis)||Object.assign(e,{ellipsis:{showTitle:!1}})),a&&a.length&&Ae(a,!!t,n),function(e,t){if(!t||!1===e.resizable)return;if("string"==typeof e.width&&e.width.includes("%"))return;e.resizable=!0;const n=function(e){if(null!=e&&""!==e){if("number"==typeof e&&!Number.isNaN(e))return e;if("string"==typeof e){const t=Number.parseInt(e,10);if(!Number.isNaN(t))return t}}}(e.width);e.width=void 0===n?150:n}(e,n);const r=e.customCell;e.customCell=(t,n)=>({...r&&r(t,n),onMouseenter(t){if(!e.ellipsis)return;const n=t.target;n.scrollWidth>n.clientWidth&&n.setAttribute("title",n.textContent??"")}})}function Ae(e,t,n){e&&e.forEach(e=>{const{children:o}=e;Be(e,t,n),Ae(o,t,n)})}function Pe(e,t,n){const{dataIndex:o,key:l}=t;for(const r of e){var a;if(void 0!==o&&r.dataIndex===o||void 0!==l&&r.key===l)return r.width=n,!0;if((null===(a=r.children)||void 0===a?void 0:a.length)&&Pe(r.children,t,n))return!0}return!1}function Re(e,o){const l=k(z(e).columns),r=a(()=>{const t=E(z(l));if(function(e,t,o){const{showIndexColumn:l,indexColumnProps:a,isTreeTable:r}=z(e);let i=!1;if(z(r))return;if(o.forEach(()=>{const e=o.findIndex(e=>e.flag===xe);l?i=-1===e:l||-1===e||o.splice(e,1)}),!i)return;const s=o.some(e=>"left"===e.fixed);o.unshift({flag:xe,width:70,title:n("sys.component.table.index"),align:"center",customRender:({index:e})=>{const n=z(t);if(de(n))return`${e+1}`;const{current:o=1,pageSize:l=20}=n;return((o<1?1:o)-1)*l+e+1},...s?{fixed:"left"}:{},...a})}(e,o,t),function(e,t){const{actionColumn:n}=z(e);if(!n)return;const o=t.findIndex(e=>e.flag===ke);-1===o&&t.push({...t[o],fixed:"right",...n,flag:ke})}(e,t),!t)return[];const{ellipsis:a,resizable:r=!0}=z(e);return t.forEach(e=>{const{customRender:t,slots:n}=e;Be(e,Reflect.has(e,"ellipsis")?!!e.ellipsis:!!a&&!t&&!n,r)}),t}),i=a(()=>{const e=function(e){const t=[],n=[],o=[];for(const l of e)"left"!==l.fixed?"right"!==l.fixed?o.push(l):n.push(l):t.push(l);return[...t,...o,...n].filter(e=>!e.defaultHidden)}(z(r)),n=e=>{const{slots:t}=e;return t&&(null==t?void 0:t.title)||(e.customTitle=e.title,Reflect.deleteProperty(e,"title")),e};return E(e).filter(e=>{return(!(n=e.auth)||(Array.isArray(n)?n.some(e=>t.has(String(e))):t.has(String(n))))&&function(e){const t=e.ifShow;return de(t)?t:!ce(t)||t(e)}(e);var n}).map(e=>{var t;return(null===(t=e.children)||void 0===t?void 0:t.length)&&(e.children=e.children.map(n)),n(e)})});return I(()=>z(e).columns,e=>{l.value=e}),{getColumnsRef:r,getViewColumns:i,handleResizeColumn:function(e,t){t.width=e;const n=z(l);Pe(n,t,e)&&(l.value=[...n])}}}function _e({page:e,type:t,originalElement:n}){return"prev"===t?0===e?null:g(j):"next"===t?1===e?null:g(M):n}var ze="undefined"!=typeof window&&"undefined"!=typeof document,Oe=("undefined"!=typeof WorkerGlobalScope&&(globalThis,WorkerGlobalScope),Object.prototype.toString),$e=()=>{};function Ie(e){return Array.isArray(e)?e:[e]}function Fe(e){const t=Object.create(null);return n=>t[n]||(t[n]=e(n))}var Ne=/\B([A-Z])/g,De=(Fe(e=>e.replace(Ne,"-$1").toLowerCase()),/-(\w)/g);function Ee(e,t=200,n={}){return function(e,t){return function(...n){return new Promise((o,l)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(o).catch(l)})}}(function(e,t={}){let n,o,l=$e;const a=e=>{clearTimeout(e),l(),l=$e};let r;return i=>{const s=_(e),u=_(t.maxWait);return n&&a(n),s<=0||void 0!==u&&u<=0?(o&&(a(o),o=void 0),Promise.resolve(i())):new Promise((e,c)=>{l=t.rejectOnCancel?c:e,r=i,u&&!o&&(o=setTimeout(()=>{n&&a(n),o=void 0,e(r())},u)),n=setTimeout(()=>{o&&a(o),o=void 0,e(i())},s)})}}(t,n),e)}Fe(e=>e.replace(De,(e,t)=>t?t.toUpperCase():""));var He=ze?window:void 0;function je(e,t,n,o,l,r,i,s){const u=k(215),c=Ee(f,100),d=a(()=>{const{canResize:t,scroll:n}=z(e);return t&&!(n||{}).y});function f(){h(()=>{y()})}I(()=>{var e;return[z(d),null===(e=z(r))||void 0===e?void 0:e.length]},()=>{c()},{flush:"post"});let p=null,m=null,g=null;async function y(){const{resizeHeightOffset:n,maxHeight:o,isCanResizeParent:a,useSearchForm:c}=z(e),f=z(l),y=z(r),v=z(t);if(!v)return;const b=v.$el;if(!b)return;if(!g&&(g=b.querySelector(".ant-table-body"),!g))return;const C=g.scrollHeight>g.clientHeight,w=g.scrollWidth>g.clientWidth;if(C?b.classList.contains("hide-scrollbar-y")&&b.classList.remove("hide-scrollbar-y"):b.classList.contains("hide-scrollbar-y")||b.classList.add("hide-scrollbar-y"),w?b.classList.contains("hide-scrollbar-x")&&b.classList.remove("hide-scrollbar-x"):b.classList.contains("hide-scrollbar-x")||b.classList.add("hide-scrollbar-x"),g.style.height="unset",!z(d)||!z(y)||0===y.length)return;await h();const S=b.querySelector(".ant-table-thead ");if(!S)return;let x=32,k=12;de(f)?k=-8:(p=b.querySelector(".ant-pagination"),k+=p?p.offsetHeight||0:24);let T=0;de(f)||(m?T+=m.offsetHeight||0:m=b.querySelector(".ant-table-footer"));let B=0;S&&(B=S.offsetHeight);let A=0;if(z(i)&&a){var P,R,_;const e=12,t=16;let n=10;const o=(null===(P=z(i))||void 0===P?void 0:P.offsetHeight)??0;let l=(null===(R=z(s))||void 0===R?void 0:R.$el.offsetHeight)??0;l&&(l+=t),de(f)&&!f&&(n=0),de(c)&&!c&&(x=0),A=o-l-((null===(_=b.querySelector(".ant-table-title"))||void 0===_?void 0:_.offsetHeight)??0)-e-n}else A=function(e){const t=document.documentElement,n=t.scrollLeft,o=t.scrollTop,l=t.clientLeft,a=t.clientTop,r=window.pageXOffset,i=window.pageYOffset,{left:s,top:u,width:c,height:d}=function(e){return e&&e.getBoundingClientRect?e.getBoundingClientRect():0}(e),f=s+r-((r||n)-(l||0)),p=u+i-((i||o)-(a||0)),m=window.document.documentElement.clientWidth,g=window.document.documentElement.clientHeight;return{left:f,top:p,right:m-c-f,bottom:g-d-p,rightIncludeBody:m-f,bottomIncludeBody:g-p}}(S).bottomIncludeBody;let O=A-(n||0)-x-k-T-B;if(O=(O>o?o:O)??O,function(e){u.value=e}(O),f&&!de(f)){const e=b.querySelector(".ant-table-body");e&&(e.style.height=`${O}px`)}}function v(){y(),h(()=>{c()})}(function(...e){const t=a(()=>{const t=Ie(_(e[0])).filter(e=>null!=e);return t.every(e=>"string"!=typeof e)?t:void 0});return n=([e,t,n,o],l,a)=>{if(!(null==e?void 0:e.length)||!(null==t?void 0:t.length)||!(null==n?void 0:n.length))return;const r=(i=o,"[object Object]"===Oe.call(i)?{...o}:o);var i;const s=e.flatMap(e=>t.flatMap(t=>n.map(n=>((e,t,n,o)=>(e.addEventListener(t,n,o),()=>e.removeEventListener(t,n,o)))(e,t,n,r))));a(()=>{s.forEach(e=>e())})},o={flush:"post"},I(()=>{var n,o;return[null!==(n=null===(o=t.value)||void 0===o?void 0:o.map(e=>function(e){var t;const n=_(e);return null!==(t=null==n?void 0:n.$el)&&void 0!==t?t:n}(e)))&&void 0!==n?n:[He].filter(e=>null!=e),Ie(_(t.value?e[1]:e[0])),Ie(z(t.value?e[2]:e[1])),_(t.value?e[3]:e[2])]},n,{...o,immediate:!0});var n,o})(window,"resize",Ee(y,280)),w(v),C(v);const b=a(()=>{var e;let l=0;z(o)&&(l+=60);const a=z(n).filter(e=>!e.defaultHidden);a.forEach(e=>{l+=Number.parseFloat(String(e.width))||0});const r=a.filter(e=>!Reflect.has(e,"width")).length;0!==r&&(l+=150*r);const i=z(t);return((null==i||null===(e=i.$el)||void 0===e?void 0:e.offsetWidth)??0)>l?void 0:l});return{getScrollRef:a(()=>{const t=z(u),{canResize:n,scroll:o}=z(e);return{x:z(b),y:n?t:null,scrollToFirstRowOnChange:!1,...o}}),redoHeight:f}}function Le(e,t,n){const{expandedRowKeys:o=[]}=z(e),l=k([...o]),r=a(()=>z(e).autoCreateKey&&!z(e).rowKey),i=a(()=>{const{rowKey:t}=z(e);return z(r)?"key":t});function s(n){const o=[],{childrenColumnName:l}=z(e),a=l||"children";return R(n||z(t)).forEach(e=>{o.push(String(e[z(i)]));const t=e[a];(null==t?void 0:t.length)&&o.push(...s(t))}),o}return{getExpandOption:a(()=>{const{isTreeTable:t}=z(e);return t?{expandedRowKeys:z(l),onExpandedRowsChange:e=>{l.value=e,n("expanded-rows-change",e)}}:{}}),expandAll:function(){l.value=s()},expandRows:function(t){const{isTreeTable:n}=z(e);n&&(l.value=[...l.value,...t])},collapseAll:function(){l.value=[]}}}ze&&window.document,ze&&window.navigator,ze&&window.location,Number.POSITIVE_INFINITY;var Me="vben";function We(e){return{prefixCls:`${Me}-${e}`,prefixVar:Me}}var Ke=["headerCell","bodyCell"],Ue=p({name:"BasicTable",components:{HeaderCell:Ce},props:we,emits:["change","register","expanded-rows-change","resizeColumn"],setup(e,{attrs:t,emit:o,slots:l,expose:r}){const i=k(null),s=k(null),u=k(null),{prefixCls:c}=We("basic-table"),d=a(()=>({...e,...t})),{getPaginationInfo:f,setPagination:p,getPagination:m,getShowPagination:g,setShowPagination:y}=function(e){const t=k({}),o=k(!0);I(()=>z(e).pagination,e=>{!de(e)&&e&&(t.value={...z(t),...e})},{deep:!0});const l=a(()=>{const{pagination:l}=z(e);return!(!z(o)||de(l)&&!l)&&{current:1,pageSize:20,size:"small",defaultPageSize:20,showTotal:e=>n("sys.component.table.total",{total:e}),showSizeChanger:!0,pageSizeOptions:Te,itemRender:_e,showQuickJumper:!0,...de(l)?{}:l??{},...z(t)}});return{getPagination:function(){return z(l)},getPaginationInfo:l,setShowPagination:async function(e){o.value=e},getShowPagination:function(){return z(o)},setPagination:function(e){const n=z(l);t.value={...de(n)?{}:n,...e}}}}(d),h=a(()=>z(f)),v=a(()=>z(d).rowSelection??null),b=a(()=>z(d).dataSource??[]),{getViewColumns:C,getColumnsRef:w,handleResizeColumn:S}=Re(d,h),{getScrollRef:x,redoHeight:T}=je(d,i,w,v,h,b,s,u),{getExpandOption:B,expandAll:A}=Le(d,b,o),P=a(()=>{let e={...t,...z(d),scroll:z(x),tableLayout:"fixed",columns:R(z(C)),pagination:R(z(f)),rowSelection:z(v),dataSource:z(b),...z(B)};return e=H(e,[...Se,"class","onChange"]),e}),_=a(()=>{const e=z(P);return[c,t.class,{[`${c}-form-container`]:e.useSearchForm,[`${c}--inset`]:e.inset}]}),O=a(()=>{const{emptyDataIsShowTable:t,useSearchForm:n,dataSource:o}=e;return!(!t&&n&&!(null==o?void 0:o.length))}),$=a(()=>Object.keys(l).filter(e=>!Ke.includes(e)));return r({expandAll:A,redoHeight:T,setPagination:p,getPagination:m,getShowPagination:g,setShowPagination:y}),o("register",{expandAll:A}),{formRef:u,tableElRef:i,wrapRef:s,getBindValues:P,getWrapperClass:_,handleTableChange:function(...e){o("change",...e);const{onChange:t}=z(d);t&&"function"==typeof t&&t(...e)},handleResizeColumn:function(e,t){S(e,t),o("resizeColumn",e,t)},getEmptyDataIsShowTable:O,slotNames:$,emptyFull:e.emptyFull,redoHeight:T}},mounted(){this.redoHeight()}}),Ve=/* @__PURE__ */be(Ue,[["render",function(e,t,n,o,l,a){const r=A("HeaderCell"),i=A("a-table");return x(),s("div",{ref:"wrapRef",class:v(e.getWrapperClass)},[B(e.$slots,"beforeTable"),N(f(i,y({ref:"tableElRef"},e.getBindValues,{class:e.emptyFull?"empty-basic-table-wrapper":"",onChange:e.handleTableChange,onResizeColumn:e.handleResizeColumn}),c({headerCell:F(({column:e})=>[f(r,{column:e},null,8,["column"])]),bodyCell:F(t=>[B(e.$slots,"bodyCell",b(m(t||{})))]),_:2},[T(e.slotNames,t=>({name:t,fn:F(n=>[B(e.$slots,t,b(m(n||{})))])}))]),1040,["class","onChange","onResizeColumn"]),[[$,e.getEmptyDataIsShowTable]])],2)}]]),qe={key:0},Ge={key:0},Xe=/* @__PURE__ */p({__name:"TableAction",props:{actions:{type:Array,default:null},dropDownActions:{type:Array,default:null},divider:{type:Boolean,default:!0},outside:Boolean,stopButtonPropagation:{type:Boolean,default:!1}},setup(e){const n=e,u=o("basic-table-action"),c=t.has;function d(e){const t=e.ifShow;let n=!0;return de(t)&&(n=t),ce(t)&&(n=t(e)),n}const p=a(()=>(R(n.actions)||[]).filter(e=>c(e.auth)&&d(e)).map(e=>{const{popConfirm:t}=e;return{getPopupContainer:()=>document.body,type:"link",size:"small",...e,...t||{},onConfirm:null==t?void 0:t.confirm,onCancel:null==t?void 0:t.cancel,enable:!!t}})),m=a(()=>{const e=(R(n.dropDownActions)||[]).filter(e=>c(e.auth)&&d(e));return e.map((t,o)=>{const{label:l,popConfirm:a}=t;return{...t,...a,onConfirm:null==a?void 0:a.confirm,onCancel:null==a?void 0:a.cancel,text:l,divider:o<e.length-1&&n.divider}})}),g=a(()=>"left");function h(e){n.stopButtonPropagation&&e.composedPath().find(e=>{var t;return"BUTTON"===(null===(t=e.tagName)||void 0===t?void 0:t.toUpperCase())})&&e.stopPropagation()}return(t,n)=>{const o=A("a-button");return x(),s("div",{class:v([z(u).b(),g.value]),onClick:h},[(x(!0),s(l,null,T(p.value,(t,n)=>{return x(),s(l,{key:`${n}-${t.label}`},[t.tooltip?(x(),r(z(G),y({key:0,placement:"bottom"},{ref_for:!0},(o=t.tooltip,{getPopupContainer:()=>document.body,...ue(o)?{title:o}:o})),{default:F(()=>[f(z(ut),y({ref_for:!0},t),{default:F(()=>[t.label?(x(),s("span",qe,P(t.label),1)):i("",!0)]),_:2},1040)]),_:2},1040)):(x(),r(z(ut),y({key:1,ref_for:!0},t),{default:F(()=>[t.label?(x(),s("span",Ge,P(t.label),1)):i("",!0)]),_:2},1040)),e.divider&&n<p.value.length-1?(x(),r(z(K),{key:2,type:"vertical",class:"action-divider"})):i("",!0)],64);var o}),128)),e.dropDownActions&&m.value.length>0?(x(),r(z(ft),{key:0,trigger:["hover"],"drop-menu-list":m.value,popconfirm:""},{default:F(()=>[B(t.$slots,"more"),t.$slots.more?i("",!0):(x(),r(o,{key:0,type:"link",size:"small"},{default:F(()=>[f(z(L),{class:"icon-more"})]),_:1}))]),_:3},8,["drop-menu-list"])):i("",!0)],2)}}}),Ye={key:0},Je={key:0},Qe=/* @__PURE__ */p({__name:"TableActionAuto",props:{actions:{type:Array,default:null},divider:{type:Boolean,default:!0},outside:Boolean,stopButtonPropagation:{type:Boolean,default:!1},maxDispalyCount:{type:Number,default:4}},setup(e){const n=e,u=o("basic-table-action"),c=t.has,d=a(()=>[...R(n.actions)||[]].filter(e=>c(e.auth)&&function(e){const t=e.ifShow??!0;return ce(t)?t(e):!!t}(e))),p=a(()=>{let e=[];return e=n.maxDispalyCount>=d.value.length?[...d.value]:d.value.slice(0,n.maxDispalyCount),e.map(e=>{const{popConfirm:t}=e;return{getPopupContainer:()=>document.body,type:"link",size:"small",...e,...t||{},onConfirm:null==t?void 0:t.confirm,onCancel:null==t?void 0:t.cancel,enable:!!t}})}),m=a(()=>{let e=[];return n.maxDispalyCount>=d.value.length?[]:(e=d.value.slice(n.maxDispalyCount),e.map((t,o)=>{const{label:l,popConfirm:a}=t;return{...t,...a,onConfirm:null==a?void 0:a.confirm,onCancel:null==a?void 0:a.cancel,text:l,divider:o<e.length-1&&n.divider}}))}),g=a(()=>"left");function h(e){n.stopButtonPropagation&&e.composedPath().find(e=>{var t;return"BUTTON"===(null===(t=e.tagName)||void 0===t?void 0:t.toUpperCase())})&&e.stopPropagation()}return(t,n)=>{const o=A("a-button");return x(),s("div",{class:v([z(u).b(),g.value]),onClick:D(h,["stop"])},[(x(!0),s(l,null,T(p.value,(t,n)=>{return x(),s(l,{key:`${n}-${t.label}`},[t.tooltip?(x(),r(z(G),y({key:0,ref_for:!0},(o=t.tooltip,{getPopupContainer:()=>document.body,placement:"bottom",...ue(o)?{title:o}:o})),{default:F(()=>[f(z(ut),y({ref_for:!0},t),{default:F(()=>[t.label?(x(),s("span",Ye,P(t.label),1)):i("",!0)]),_:2},1040)]),_:2},1040)):(x(),r(z(ut),y({key:1,ref_for:!0},t),{default:F(()=>[t.label?(x(),s("span",Je,P(t.label),1)):i("",!0)]),_:2},1040)),e.divider&&n<p.value.length-1?(x(),r(z(K),{key:2,type:"vertical",class:"action-divider"})):i("",!0)],64);var o}),128)),m.value.length>0?(x(),r(z(ft),{key:0,trigger:["hover"],"drop-menu-list":m.value,popconfirm:""},{default:F(()=>[B(t.$slots,"more"),t.$slots.more?i("",!0):(x(),r(o,{key:0,type:"link",size:"small"},{default:F(()=>[f(z(L),{class:"icon-more"})]),_:1}))]),_:3},8,["drop-menu-list"])):i("",!0)],2)}}});function Ze(){const e=k(null);return[function(t,n){S(()=>{e.value=null}),e.value=t},{expandAll:()=>{(function(){const t=z(e);return t||console.error("The table instance has not been obtained yet, please make sure the table is presented when performing the table operation!"),t})().expandAll()}}]}var et=["primary","error","warning","success",""],tt={color:{type:String,validator:e=>et.includes(e),default:""},loading:{type:Boolean},disabled:{type:Boolean},preIcon:{type:String},postIcon:{type:String},iconSize:{type:Number,default:14},onClick:{type:Function,default:null}},nt=/* @__PURE__ */p({name:"AButton",extends:W,inheritAttrs:!1,__name:"BasicButton",props:tt,setup(e){const t=e,n=O(),o=a(()=>{const{color:e,disabled:n}=t;return[{[`ant-btn-${e}`]:!!e,"is-disabled":n}]}),l=a(()=>({...z(n),...t}));return(e,t)=>(x(),r(z(W),y(l.value,{class:o.value,onClick:e.onClick}),{default:F(t=>[B(e.$slots,"default",b(m(t||{})))]),_:3},16,["class","onClick"]))}}),ot=p({name:"PopButton",inheritAttrs:!1,props:{enable:{type:Boolean,default:!0}},setup(e,{slots:t}){const o=O(),l=a(()=>Object.assign({okText:n("sys.okText"),cancelText:n("sys.cancelText"),overlayStyle:{}},{...e,...z(o)}));return()=>{const n=H(z(l),"icon"),o=H(n,"title");o.disabled&&(o.color="");const a=g(nt,o,t);return e.enable?g(q,n,{default:()=>a}):a}}}),lt=ot,at={class:"custom-btn-container"},rt={class:"btn-left-title"},it=/* @__PURE__ */be(/* @__PURE__ */p({__name:"custom-button",props:{title:{}},emits:["btn-left-click","btn-right-click"],setup:e=>(t,n)=>(x(),s("div",at,[u("div",{class:"btn-left",onClick:n[0]||(n[0]=D(e=>t.$emit("btn-left-click"),["stop"]))},[B(t.$slots,"left-icon",{},void 0,!0),u("div",rt,P(e.title),1)]),u("div",{class:"btn-right",onClick:n[1]||(n[1]=D(e=>t.$emit("btn-right-click"),["stop"]))},[B(t.$slots,"right-icon",{},void 0,!0)])]))}),[["__scopeId","data-v-305f4090"]]),st=nt,ut=lt,ct={class:"ml-1"},dt={key:1,class:"ml-1"},ft=/* @__PURE__ */p({name:"VDropdown",__name:"Dropdown",props:{popconfirm:Boolean,trigger:{type:Array,default:()=>["contextmenu"]},dropMenuList:{type:Array,default:()=>[]},selectedKeys:{type:Array,default:()=>[]}},emits:["menuEvent"],setup(e,{emit:t}){const n=U,o=V,a=V.Item,c=V.Divider,p=q,m=e,g=t;function h(e){const t=H(e,["confirm","cancel","icon"]);return!e.onConfirm&&e.confirm&&ce(e.confirm)&&(t.onConfirm=e.confirm),!e.onCancel&&e.cancel&&ce(e.cancel)&&(t.onCancel=e.cancel),t}return(t,v)=>(x(),r(z(n),y({trigger:e.trigger},t.$attrs),{overlay:F(()=>[f(z(o),{"selected-keys":e.selectedKeys},{default:F(()=>[(x(!0),s(l,null,T(e.dropMenuList,t=>{return x(),s(l,{key:`${t.event}`},[f(z(a),y({class:t.class},{ref_for:!0},(n=t.event,{key:n}),{disabled:t.disabled,onClick:e=>function(e){var t;const{event:n}=e;g("menuEvent",m.dropMenuList.find(e=>`${e.event}`==`${n}`)),null===(t=e.onClick)||void 0===t||t.call(e)}(t)}),{default:F(()=>[e.popconfirm&&t.popConfirm?(x(),r(z(p),y({key:0,ref_for:!0},h(t.popConfirm)),{default:F(()=>[u("div",null,[u("span",ct,P(t.text),1)])]),_:2},1040)):(x(),s("span",dt,P(t.text),1))]),_:2},1040,["class","disabled","onClick"]),t.divider?(x(),r(z(c),{key:`d-${t.event}`})):i("",!0)],64);var n}),128))]),_:1},8,["selected-keys"])]),default:F(()=>[u("span",null,[B(t.$slots,"default")]),d(" "+P(e.dropMenuList)+" ",1)]),_:3},16,["trigger"]))}}),pt=/* @__PURE__ */Y({default:()=>mt}),mt={table:{index:"序号"}},gt=/* @__PURE__ */Y({default:()=>yt}),yt={okText:"确认",cancelText:"取消"},ht=/* @__PURE__ */Object.assign({"./sys/component.ts":pt,"./sys.ts":gt});async function vt(e){_gct.i18nUtil.autoRegisterLocale(ht)}function bt(){}var Ct=new URL("./index.min.css",import.meta.url);e.load(Ct.href);export{Ve as BasicTable,st as Button,it as CustomButton,ft as Dropdown,ut as PopConfirmButton,Xe as TableAction,Qe as TableActionAuto,Q as is,pe as isArray,de as isBoolean,oe as isDate,Z as isDef,ge as isElement,ne as isEmpty,ve as isEmptyStr,ce as isFunction,ye as isMap,le as isNull,ae as isNullAndUnDef,re as isNullOrUnDef,ie as isNumber,te as isObject,se as isPromise,fe as isRegExp,ue as isString,ee as isUnDef,he as isUrl,me as isWindow,bt as run,Ze as useTable,vt as vBenSetupApp};
@@ -0,0 +1,13 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __exportAll = (all, no_symbols) => {
4
+ let target = {};
5
+ for (var name in all) __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true
8
+ });
9
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
10
+ return target;
11
+ };
12
+ //#endregion
13
+ export { __exportAll };
@@ -1,3 +1,4 @@
1
+ import { BasicColumn } from './types/table';
1
2
  declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2
3
  clickToRowSelect: {
3
4
  type: BooleanConstructor;
@@ -35,6 +36,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
35
36
  type: BooleanConstructor;
36
37
  default: boolean;
37
38
  };
39
+ resizable: {
40
+ type: BooleanConstructor;
41
+ default: boolean;
42
+ };
38
43
  api: {
39
44
  type: import('vue').PropType<(...arg: unknown[]) => Promise<unknown>>;
40
45
  default: null;
@@ -69,7 +74,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
69
74
  };
70
75
  useSearchForm: BooleanConstructor;
71
76
  columns: {
72
- type: import('vue').PropType<import('..').BasicColumn[]>;
77
+ type: import('vue').PropType<BasicColumn[]>;
73
78
  default: () => never[];
74
79
  };
75
80
  showIndexColumn: {
@@ -77,11 +82,11 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
77
82
  default: boolean;
78
83
  };
79
84
  indexColumnProps: {
80
- type: import('vue').PropType<import('..').BasicColumn>;
85
+ type: import('vue').PropType<BasicColumn>;
81
86
  default: null;
82
87
  };
83
88
  actionColumn: {
84
- type: import('vue').PropType<import('..').BasicColumn>;
89
+ type: import('vue').PropType<BasicColumn>;
85
90
  default: null;
86
91
  };
87
92
  ellipsis: {
@@ -172,11 +177,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
172
177
  getBindValues: import('vue').ComputedRef<IObject>;
173
178
  getWrapperClass: import('vue').ComputedRef<import('vue').ClassValue[]>;
174
179
  handleTableChange: (...args: unknown[]) => void;
180
+ handleResizeColumn: (width: number, column: BasicColumn) => void;
175
181
  getEmptyDataIsShowTable: import('vue').ComputedRef<boolean>;
176
182
  slotNames: import('vue').ComputedRef<string[]>;
177
183
  emptyFull: boolean;
178
184
  redoHeight: () => void;
179
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("change" | "expanded-rows-change" | "register")[], "change" | "expanded-rows-change" | "register", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
185
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("change" | "expanded-rows-change" | "register" | "resizeColumn")[], "change" | "expanded-rows-change" | "register" | "resizeColumn", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
180
186
  clickToRowSelect: {
181
187
  type: BooleanConstructor;
182
188
  default: boolean;
@@ -213,6 +219,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
213
219
  type: BooleanConstructor;
214
220
  default: boolean;
215
221
  };
222
+ resizable: {
223
+ type: BooleanConstructor;
224
+ default: boolean;
225
+ };
216
226
  api: {
217
227
  type: import('vue').PropType<(...arg: unknown[]) => Promise<unknown>>;
218
228
  default: null;
@@ -247,7 +257,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
247
257
  };
248
258
  useSearchForm: BooleanConstructor;
249
259
  columns: {
250
- type: import('vue').PropType<import('..').BasicColumn[]>;
260
+ type: import('vue').PropType<BasicColumn[]>;
251
261
  default: () => never[];
252
262
  };
253
263
  showIndexColumn: {
@@ -255,11 +265,11 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
255
265
  default: boolean;
256
266
  };
257
267
  indexColumnProps: {
258
- type: import('vue').PropType<import('..').BasicColumn>;
268
+ type: import('vue').PropType<BasicColumn>;
259
269
  default: null;
260
270
  };
261
271
  actionColumn: {
262
- type: import('vue').PropType<import('..').BasicColumn>;
272
+ type: import('vue').PropType<BasicColumn>;
263
273
  default: null;
264
274
  };
265
275
  ellipsis: {
@@ -347,6 +357,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
347
357
  onChange?: ((...args: any[]) => any) | undefined;
348
358
  "onExpanded-rows-change"?: ((...args: any[]) => any) | undefined;
349
359
  onRegister?: ((...args: any[]) => any) | undefined;
360
+ onResizeColumn?: ((...args: any[]) => any) | undefined;
350
361
  }>, {
351
362
  clickToRowSelect: boolean;
352
363
  isTreeTable: boolean;
@@ -360,6 +371,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
360
371
  summaryData: Recordable<unknown>[];
361
372
  indentSize: number;
362
373
  canColDrag: boolean;
374
+ resizable: boolean;
363
375
  api: (...arg: unknown[]) => Promise<unknown>;
364
376
  beforeFetch: Fn<any, any>;
365
377
  afterFetch: Fn<any, any>;
@@ -369,10 +381,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
369
381
  searchInfo: Recordable<unknown>;
370
382
  defSort: Recordable<unknown>;
371
383
  useSearchForm: boolean;
372
- columns: import('..').BasicColumn[];
384
+ columns: BasicColumn[];
373
385
  showIndexColumn: boolean;
374
- indexColumnProps: import('..').BasicColumn;
375
- actionColumn: import('..').BasicColumn;
386
+ indexColumnProps: BasicColumn;
387
+ actionColumn: BasicColumn;
376
388
  ellipsis: boolean;
377
389
  isCanResizeParent: boolean;
378
390
  canResize: boolean;
@@ -397,18 +409,18 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
397
409
  }, {}, {
398
410
  HeaderCell: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
399
411
  column: {
400
- type: import('vue').PropType<import('..').BasicColumn>;
412
+ type: import('vue').PropType<BasicColumn>;
401
413
  default: () => {};
402
414
  };
403
415
  }>, {
404
416
  getTitle: import('vue').ComputedRef<void | string | number | boolean | JSX.Element | import('vue').VNodeArrayChildren | ((props: import('ant-design-vue/lib/table/interface').ColumnTitleProps<Recordable<unknown>>) => import('ant-design-vue/lib/_util/type').VueNode) | null>;
405
417
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
406
418
  column: {
407
- type: import('vue').PropType<import('..').BasicColumn>;
419
+ type: import('vue').PropType<BasicColumn>;
408
420
  default: () => {};
409
421
  };
410
422
  }>> & Readonly<{}>, {
411
- column: import('..').BasicColumn;
423
+ column: BasicColumn;
412
424
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
413
425
  }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
414
426
  export default _default;
@@ -11,7 +11,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
11
11
  class: normalizeClass(_ctx.getWrapperClass)
12
12
  }, [renderSlot(_ctx.$slots, "beforeTable"), withDirectives(createVNode(_component_a_table, mergeProps({ ref: "tableElRef" }, _ctx.getBindValues, {
13
13
  class: _ctx.emptyFull ? "empty-basic-table-wrapper" : "",
14
- onChange: _ctx.handleTableChange
14
+ onChange: _ctx.handleTableChange,
15
+ onResizeColumn: _ctx.handleResizeColumn
15
16
  }), createSlots({
16
17
  headerCell: withCtx(({ column }) => [createVNode(_component_HeaderCell, { column }, null, 8, ["column"])]),
17
18
  bodyCell: withCtx((data) => [renderSlot(_ctx.$slots, "bodyCell", normalizeProps(guardReactiveProps(data || {})))]),
@@ -21,7 +22,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
21
22
  name: slotName,
22
23
  fn: withCtx((data) => [renderSlot(_ctx.$slots, slotName, normalizeProps(guardReactiveProps(data || {})))])
23
24
  };
24
- })]), 1040, ["class", "onChange"]), [[vShow, _ctx.getEmptyDataIsShowTable]])], 2);
25
+ })]), 1040, [
26
+ "class",
27
+ "onChange",
28
+ "onResizeColumn"
29
+ ]), [[vShow, _ctx.getEmptyDataIsShowTable]])], 2);
25
30
  }
26
31
  var BasicTable_default = /* @__PURE__ */ _plugin_vue_export_helper_default(BasicTable_vue_vue_type_script_lang_default, [["render", _sfc_render]]);
27
32
  //#endregion
@@ -16,7 +16,8 @@ var BasicTable_vue_vue_type_script_lang_default = defineComponent({
16
16
  emits: [
17
17
  "change",
18
18
  "register",
19
- "expanded-rows-change"
19
+ "expanded-rows-change",
20
+ "resizeColumn"
20
21
  ],
21
22
  setup(props, { attrs, emit, slots, expose }) {
22
23
  const tableElRef = ref(null);
@@ -37,7 +38,7 @@ var BasicTable_vue_vue_type_script_lang_default = defineComponent({
37
38
  const getDataSourceRef = computed(() => {
38
39
  return unref(getProps).dataSource ?? [];
39
40
  });
40
- const { getViewColumns, getColumnsRef } = useColumns(getProps, getPaginationRef);
41
+ const { getViewColumns, getColumnsRef, handleResizeColumn } = useColumns(getProps, getPaginationRef);
41
42
  const { getScrollRef, redoHeight } = useTableScroll(getProps, tableElRef, getColumnsRef, getRowSelectionRef, getPaginationRef, getDataSourceRef, wrapRef, formRef);
42
43
  const { getExpandOption, expandAll } = useTableExpand(getProps, getDataSourceRef, emit);
43
44
  const getBindValues = computed(() => {
@@ -70,6 +71,10 @@ var BasicTable_vue_vue_type_script_lang_default = defineComponent({
70
71
  }
71
72
  ];
72
73
  });
74
+ function onResizeColumn(width, column) {
75
+ handleResizeColumn(width, column);
76
+ emit("resizeColumn", width, column);
77
+ }
73
78
  function handleTableChange(...args) {
74
79
  emit("change", ...args);
75
80
  const { onChange } = unref(getProps);
@@ -97,6 +102,7 @@ var BasicTable_vue_vue_type_script_lang_default = defineComponent({
97
102
  getBindValues,
98
103
  getWrapperClass,
99
104
  handleTableChange,
105
+ handleResizeColumn: onResizeColumn,
100
106
  getEmptyDataIsShowTable,
101
107
  slotNames,
102
108
  emptyFull: props.emptyFull,
@@ -8,3 +8,5 @@ export declare const ACTION_COLUMN_FLAG = "ACTION";
8
8
  export declare const PAGE_SIZE_OPTIONS: string[];
9
9
  /** 默认每页条数 */
10
10
  export declare const PAGE_SIZE = 20;
11
+ /** 开启列宽拖拽时,未指定 width 的列默认宽度 */
12
+ export declare const DEFAULT_RESIZABLE_COLUMN_WIDTH = 150;
@@ -4,4 +4,5 @@ import { ComputedRef } from 'vue';
4
4
  export declare function useColumns(propsRef: ComputedRef<BasicTableProps>, getPaginationRef: ComputedRef<boolean | PaginationProps>): {
5
5
  getColumnsRef: ComputedRef<BasicColumn[]>;
6
6
  getViewColumns: ComputedRef<BasicColumn[]>;
7
+ handleResizeColumn: (width: number, column: BasicColumn) => void;
7
8
  };
@@ -4,14 +4,34 @@ import { computed, ref, unref, watch } from "vue";
4
4
  import { cloneDeep } from "lodash-es";
5
5
  import { permission, t } from "@gct-paas/core";
6
6
  //#region src/components/v-ben-table/src/hooks/useColumns.ts
7
- function handleItem(item, ellipsis) {
7
+ function normalizeColumnWidth(width) {
8
+ if (width === void 0 || width === null || width === "") return;
9
+ if (typeof width === "number" && !Number.isNaN(width)) return width;
10
+ if (typeof width === "string") {
11
+ const numericWidth = Number.parseInt(width, 10);
12
+ if (!Number.isNaN(numericWidth)) return numericWidth;
13
+ }
14
+ }
15
+ function applyResizable(item, tableResizable) {
16
+ if (!tableResizable || item.resizable === false) return;
17
+ if (typeof item.width === "string" && item.width.includes("%")) return;
18
+ item.resizable = true;
19
+ const width = normalizeColumnWidth(item.width);
20
+ if (width !== void 0) {
21
+ item.width = width;
22
+ return;
23
+ }
24
+ item.width = 150;
25
+ }
26
+ function handleItem(item, ellipsis, tableResizable) {
8
27
  const { key, dataIndex, children } = item;
9
28
  item.align = item.align || "left";
10
29
  if (ellipsis) {
11
30
  if (!key && dataIndex !== void 0) item.key = Array.isArray(dataIndex) ? dataIndex.join(".") : String(dataIndex);
12
31
  if (!isBoolean(item.ellipsis)) Object.assign(item, { ellipsis: { showTitle: false } });
13
32
  }
14
- if (children && children.length) handleChildren(children, !!ellipsis);
33
+ if (children && children.length) handleChildren(children, !!ellipsis, tableResizable);
34
+ applyResizable(item, tableResizable);
15
35
  const originalCustomCell = item.customCell;
16
36
  /** 只有内容超出的时候才出 title */
17
37
  item.customCell = (record, rowIndex) => {
@@ -25,12 +45,12 @@ function handleItem(item, ellipsis) {
25
45
  };
26
46
  };
27
47
  }
28
- function handleChildren(children, ellipsis) {
48
+ function handleChildren(children, ellipsis, tableResizable) {
29
49
  if (!children) return;
30
50
  children.forEach((item) => {
31
51
  const { children: childCols } = item;
32
- handleItem(item, ellipsis);
33
- handleChildren(childCols, ellipsis);
52
+ handleItem(item, ellipsis, tableResizable);
53
+ handleChildren(childCols, ellipsis, tableResizable);
34
54
  });
35
55
  }
36
56
  function handleIndexColumn(propsRef, getPaginationRef, columns) {
@@ -102,6 +122,17 @@ function isIfShow(column) {
102
122
  if (isFunction(ifShow)) return ifShow(column);
103
123
  return true;
104
124
  }
125
+ function updateColumnWidth(columns, column, width) {
126
+ const { dataIndex, key } = column;
127
+ for (const col of columns) {
128
+ if (dataIndex !== void 0 && col.dataIndex === dataIndex || key !== void 0 && col.key === key) {
129
+ col.width = width;
130
+ return true;
131
+ }
132
+ if (col.children?.length && updateColumnWidth(col.children, column, width)) return true;
133
+ }
134
+ return false;
135
+ }
105
136
  function useColumns(propsRef, getPaginationRef) {
106
137
  const columnsRef = ref(unref(propsRef).columns);
107
138
  const getColumnsRef = computed(() => {
@@ -109,10 +140,10 @@ function useColumns(propsRef, getPaginationRef) {
109
140
  handleIndexColumn(propsRef, getPaginationRef, columns);
110
141
  handleActionColumn(propsRef, columns);
111
142
  if (!columns) return [];
112
- const { ellipsis } = unref(propsRef);
143
+ const { ellipsis, resizable = true } = unref(propsRef);
113
144
  columns.forEach((item) => {
114
145
  const { customRender, slots } = item;
115
- handleItem(item, Reflect.has(item, "ellipsis") ? !!item.ellipsis : !!ellipsis && !customRender && !slots);
146
+ handleItem(item, Reflect.has(item, "ellipsis") ? !!item.ellipsis : !!ellipsis && !customRender && !slots, resizable);
116
147
  });
117
148
  return columns;
118
149
  });
@@ -134,9 +165,15 @@ function useColumns(propsRef, getPaginationRef) {
134
165
  watch(() => unref(propsRef).columns, (columns) => {
135
166
  columnsRef.value = columns;
136
167
  });
168
+ function handleResizeColumn(width, column) {
169
+ column.width = width;
170
+ const columns = unref(columnsRef);
171
+ if (updateColumnWidth(columns, column, width)) columnsRef.value = [...columns];
172
+ }
137
173
  return {
138
174
  getColumnsRef,
139
- getViewColumns
175
+ getViewColumns,
176
+ handleResizeColumn
140
177
  };
141
178
  }
142
179
  //#endregion
@@ -38,6 +38,11 @@ export declare const basicProps: {
38
38
  type: BooleanConstructor;
39
39
  default: boolean;
40
40
  };
41
+ /** 是否开启列宽拖拽(ant-design-vue resizable) */
42
+ resizable: {
43
+ type: BooleanConstructor;
44
+ default: boolean;
45
+ };
41
46
  api: {
42
47
  type: PropType<(...arg: unknown[]) => Promise<unknown>>;
43
48
  default: null;
@@ -185,4 +190,4 @@ export declare const basicProps: {
185
190
  };
186
191
  };
187
192
  /** BasicTable 自有配置,不传给 ant-design-vue Table */
188
- export declare const basicTableInternalPropKeys: readonly ["clickToRowSelect", "isTreeTable", "tableSetting", "inset", "showTableSetting", "autoCreateKey", "striped", "showSummary", "summaryFunc", "summaryData", "indentSize", "canColDrag", "api", "beforeFetch", "afterFetch", "handleSearchInfoFn", "immediate", "emptyDataIsShowTable", "searchInfo", "defSort", "useSearchForm", "showIndexColumn", "indexColumnProps", "actionColumn", "ellipsis", "isCanResizeParent", "canResize", "clearSelectOnPageChange", "resizeHeightOffset", "titleHelpMessage", "beforeEditSubmit", "rowDraggable", "supportSameLevel", "rowDragApi", "emptyFull"];
193
+ export declare const basicTableInternalPropKeys: readonly ["clickToRowSelect", "isTreeTable", "tableSetting", "inset", "showTableSetting", "autoCreateKey", "striped", "showSummary", "summaryFunc", "summaryData", "indentSize", "canColDrag", "resizable", "api", "beforeFetch", "afterFetch", "handleSearchInfoFn", "immediate", "emptyDataIsShowTable", "searchInfo", "defSort", "useSearchForm", "showIndexColumn", "indexColumnProps", "actionColumn", "ellipsis", "isCanResizeParent", "canResize", "clearSelectOnPageChange", "resizeHeightOffset", "titleHelpMessage", "beforeEditSubmit", "rowDraggable", "supportSameLevel", "rowDragApi", "emptyFull"];
@@ -36,6 +36,11 @@ var basicProps = {
36
36
  type: Boolean,
37
37
  default: true
38
38
  },
39
+ /** 是否开启列宽拖拽(ant-design-vue resizable) */
40
+ resizable: {
41
+ type: Boolean,
42
+ default: true
43
+ },
39
44
  api: {
40
45
  type: Function,
41
46
  default: null
@@ -182,6 +187,7 @@ var basicTableInternalPropKeys = [
182
187
  "summaryData",
183
188
  "indentSize",
184
189
  "canColDrag",
190
+ "resizable",
185
191
  "api",
186
192
  "beforeFetch",
187
193
  "afterFetch",
@@ -120,6 +120,7 @@ export interface BasicTableProps<T = unknown> {
120
120
  summaryData?: Recordable[];
121
121
  showSummary?: boolean;
122
122
  canColDrag?: boolean;
123
+ resizable?: boolean;
123
124
  api?: (...arg: unknown[]) => Promise<IObject>;
124
125
  beforeFetch?: Fn;
125
126
  afterFetch?: Fn;
@@ -317,6 +318,9 @@ export type CellFormat = string | ((text: string, record: Recordable, index: num
317
318
  export interface BasicColumn extends ColumnProps<Recordable> {
318
319
  children?: BasicColumn[];
319
320
  filters?: ColumnFilterItem[];
321
+ resizable?: boolean;
322
+ minWidth?: number;
323
+ maxWidth?: number;
320
324
  flag?: 'INDEX' | 'DEFAULT' | 'CHECKBOX' | 'RADIO' | 'ACTION';
321
325
  customTitle?: VueNode;
322
326
  slots?: Recordable;
package/es/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './utils/is';
2
2
  export * from './components';
3
+ export { vBenSetupApp } from './setup-app';
3
4
  export declare function run(): void;
package/es/index.mjs CHANGED
@@ -7,7 +7,8 @@ import custom_button_default from "./components/v-ben-button/src/custom-button.v
7
7
  import { Button, PopConfirmButton } from "./components/v-ben-button/index.mjs";
8
8
  import { Dropdown } from "./components/v-ben-dropdown/index.mjs";
9
9
  import "./components/index.mjs";
10
+ import { vBenSetupApp } from "./setup-app.mjs";
10
11
  //#region src/index.ts
11
12
  function run() {}
12
13
  //#endregion
13
- export { BasicTable_default as BasicTable, Button, custom_button_default as CustomButton, Dropdown, PopConfirmButton, TableAction_default as TableAction, TableActionAuto_default as TableActionAuto, is, isArray, isBoolean, isDate, isDef, isElement, isEmpty, isEmptyStr, isFunction, isMap, isNull, isNullAndUnDef, isNullOrUnDef, isNumber, isObject, isPromise, isRegExp, isString, isUnDef, isUrl, isWindow, run, useTable };
14
+ export { BasicTable_default as BasicTable, Button, custom_button_default as CustomButton, Dropdown, PopConfirmButton, TableAction_default as TableAction, TableActionAuto_default as TableActionAuto, is, isArray, isBoolean, isDate, isDef, isElement, isEmpty, isEmptyStr, isFunction, isMap, isNull, isNullAndUnDef, isNullOrUnDef, isNumber, isObject, isPromise, isRegExp, isString, isUnDef, isUrl, isWindow, run, useTable, vBenSetupApp };
@@ -0,0 +1,2 @@
1
+ /** 注册 v-ben 包的 locale 多语言资源 */
2
+ export declare function registerVBenLocale(): void;
@@ -0,0 +1,13 @@
1
+ import { component_exports } from "./sys/component.mjs";
2
+ import { sys_exports } from "./sys.mjs";
3
+ //#region src/locale/auto-register.ts
4
+ var localeModules = /* @__PURE__ */ Object.assign({
5
+ "./sys/component.ts": component_exports,
6
+ "./sys.ts": sys_exports
7
+ });
8
+ /** 注册 v-ben 包的 locale 多语言资源 */
9
+ function registerVBenLocale() {
10
+ _gct.i18nUtil.autoRegisterLocale(localeModules);
11
+ }
12
+ //#endregion
13
+ export { registerVBenLocale };
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ table: {
3
+ index: string;
4
+ };
5
+ };
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { __exportAll } from "../../_virtual/_rolldown/runtime.mjs";
2
+ //#region src/locale/sys/component.ts
3
+ var component_exports = /* @__PURE__ */ __exportAll({ default: () => component_default });
4
+ var component_default = { table: { index: "序号" } };
5
+ //#endregion
6
+ export { component_exports };
@@ -0,0 +1,9 @@
1
+ import { __exportAll } from "../_virtual/_rolldown/runtime.mjs";
2
+ //#region src/locale/sys.ts
3
+ var sys_exports = /* @__PURE__ */ __exportAll({ default: () => sys_default });
4
+ var sys_default = {
5
+ okText: "确认",
6
+ cancelText: "取消"
7
+ };
8
+ //#endregion
9
+ export { sys_exports };
@@ -0,0 +1,2 @@
1
+ import { App } from 'vue';
2
+ export declare function vBenSetupApp(_app: App): Promise<void>;
@@ -0,0 +1,7 @@
1
+ import { registerVBenLocale } from "./locale/auto-register.mjs";
2
+ //#region src/setup-app.ts
3
+ async function vBenSetupApp(_app) {
4
+ registerVBenLocale();
5
+ }
6
+ //#endregion
7
+ export { vBenSetupApp };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gct-paas/v-ben",
3
- "version": "0.1.6-dev.23",
3
+ "version": "0.1.6-dev.25",
4
4
  "type": "module",
5
5
  "description": "paas 平台历史 v-ben 内容",
6
6
  "loader": "dist/loader.esm.min.js",
@@ -41,14 +41,14 @@
41
41
  "sortablejs": "^1.15.7",
42
42
  "vue": "^3.5.30",
43
43
  "vue-types": "^6.0.0",
44
- "@gct-paas/core": "0.1.6-dev.23",
45
- "@gct-paas/scss": "0.1.6-dev.23"
44
+ "@gct-paas/core": "0.1.6-dev.25",
45
+ "@gct-paas/scss": "0.1.6-dev.25"
46
46
  },
47
47
  "peerDependencies": {
48
48
  "@gct-paas/api": "^0.1.6-dev.14",
49
49
  "vue": ">=3",
50
- "@gct-paas/core": "0.1.6-dev.23",
51
- "@gct-paas/scss": "0.1.6-dev.23"
50
+ "@gct-paas/core": "0.1.6-dev.25",
51
+ "@gct-paas/scss": "0.1.6-dev.25"
52
52
  },
53
53
  "scripts": {
54
54
  "dev": "cross-env NODE_ENV=development vite build --watch --config vite.dev.config.ts",