You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
4.8 KiB

var U=Object.defineProperty,V=Object.defineProperties;var E=Object.getOwnPropertyDescriptors;var I=Object.getOwnPropertySymbols;var W=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable;var L=(e,n,t)=>n in e?U(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,b=(e,n)=>{for(var t in n||(n={}))W.call(n,t)&&L(e,t,n[t]);if(I)for(var t of I(n))G.call(n,t)&&L(e,t,n[t]);return e},C=(e,n)=>V(e,E(n));import{b as M,dc as Q,d as Y,bY as q,f4 as H,dQ as J,bL as K,bK as X,ay as k,m as Z,ai as x,f as P,K as z,u as j,an as ee,aj as te,ak as oe,aT as ne,aU as c,o as i,g as y,F as w,bt as re,a as d,w as f,aW as T,bW as se,x as A,i as g,h as D,t as B,aP as F,aV as ae}from"./index-f4658ae7.js";import{D as le}from"./index-0e56c5c3.js";import{T as ie}from"./index-134963ca.js";import{useTableContext as ue}from"./useTableContext-e652508f.js";import{ACTION_COLUMN_FLAG as ce}from"./const-0405ffdf.js";var de={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M456 231a56 56 0 10112 0 56 56 0 10-112 0zm0 280a56 56 0 10112 0 56 56 0 10-112 0zm0 280a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"more",theme:"outlined"};const pe=de;function R(e){for(var n=1;n<arguments.length;n++){var t=arguments[n]!=null?Object(arguments[n]):{},u=Object.keys(t);typeof Object.getOwnPropertySymbols=="function"&&(u=u.concat(Object.getOwnPropertySymbols(t).filter(function(p){return Object.getOwnPropertyDescriptor(t,p).enumerable}))),u.forEach(function(p){me(e,p,t[p])})}return e}function me(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}var S=function(n,t){var u=R({},n,t.attrs);return M(Q,R({},u,{icon:pe}),null)};S.displayName="MoreOutlined";S.inheritAttrs=!1;const fe=S,ge=Y({name:"TableAction",components:{Icon:q,PopConfirmButton:H,Divider:le,Dropdown:J,MoreOutlined:fe,Tooltip:K,DownOutlined:X,Tag:ie},props:{actions:{type:Array,default:null},dropDownActions:{type:Array,default:null},divider:k.bool.def(!0),outside:k.bool,stopButtonPropagation:k.bool.def(!1),moreName:{type:String,default:null}},setup(e){const{prefixCls:n}=Z("basic-table-action");let t={};e.outside||(t=ue());const{hasPermission:u}=x();function p(r){const o=r.ifShow;let a=!0;return ee(o)&&(a=o),te(o)&&(a=o(r)),a}const N=P(()=>(z(e.actions)||[]).filter(r=>u(r.auth)&&p(r)).map(r=>{const{popConfirm:o}=r;return C(b(b({getPopupContainer:()=>{var a;return(a=j(t==null?void 0:t.wrapRef.value))!=null?a:document.body},type:"link",size:"small"},r),o||{}),{onConfirm:o==null?void 0:o.confirm,onCancel:o==null?void 0:o.cancel,enable:!!o})})),_=P(()=>{const r=(z(e.dropDownActions)||[]).filter(o=>u(o.auth)&&p(o));return r.map((o,a)=>{const{label:m,popConfirm:l}=o;return C(b(b({},o),l),{onConfirm:l==null?void 0:l.confirm,onCancel:l==null?void 0:l.cancel,text:m,divider:a<r.length-1?e.divider:!1})})}),v=P(()=>{var a,m;const o=(((a=t==null?void 0:t.getColumns)==null?void 0:a.call(t))||[]).find(l=>l.flag===ce);return(m=o==null?void 0:o.align)!=null?m:"left"});function O(r){return b({getPopupContainer:()=>{var o;return(o=j(t==null?void 0:t.wrapRef.value))!=null?o:document.body},placement:"bottom"},oe(r)?{title:r}:r)}function h(r){if(!e.stopButtonPropagation)return;r.composedPath().find(m=>{var l;return((l=m.tagName)==null?void 0:l.toUpperCase())==="BUTTON"})&&r.stopPropagation()}return{prefixCls:n,getActions:N,getDropdownList:_,getAlign:v,onCellClick:h,getTooltip:O}}});function be(e,n,t,u,p,N){const _=c("Icon"),v=c("PopConfirmButton"),O=c("Tooltip"),h=c("Divider"),r=c("down-outlined"),o=c("Tag"),a=c("MoreOutlined"),m=c("a-button"),l=c("Dropdown");return i(),y("div",{class:A([e.prefixCls,e.getAlign]),onClick:n[0]||(n[0]=(...s)=>e.onCellClick&&e.onCellClick(...s))},[(i(!0),y(w,null,re(e.getActions,(s,$)=>(i(),y(w,{key:`${$}-${s.label}`},[s.tooltip?(i(),d(O,T(F({key:0},e.getTooltip(s.tooltip))),{default:f(()=>[M(v,T(se(s)),{default:f(()=>[s.icon?(i(),d(_,{key:0,icon:s.icon,class:A({"mr-1":!!s.label})},null,8,["icon","class"])):g("",!0),s.label?(i(),y(w,{key:1},[D(B(s.label),1)],64)):g("",!0)]),_:2},1040)]),_:2},1040)):(i(),d(v,T(F({key:1},s)),{default:f(()=>[s.icon?(i(),d(_,{key:0,icon:s.icon,class:A({"mr-1":!!s.label})},null,8,["icon","class"])):g("",!0),s.label?(i(),y(w,{key:1},[D(B(s.label),1)],64)):g("",!0)]),_:2},1040)),e.divider&&$<e.getActions.length-1?(i(),d(h,{key:2,type:"vertical",class:"action-divider"})):g("",!0)],64))),128)),e.dropDownActions&&e.getDropdownList.length>0?(i(),d(l,{key:0,trigger:["hover"],dropMenuList:e.getDropdownList,popconfirm:""},{default:f(()=>[ae(e.$slots,"more"),e.$slots.more?g("",!0):(i(),d(m,{key:0,type:"link",size:"small"},{default:f(()=>[e.moreName?(i(),d(o,{key:0},{icon:f(()=>[M(r)]),default:f(()=>[D(" "+B(e.moreName),1)]),_:1})):(i(),d(a,{key:1,class:"icon-more"}))]),_:1}))]),_:3},8,["dropMenuList"])):g("",!0)],2)}const Ce=ne(ge,[["render",be]]);export{Ce as default};