denwa-react-shared
Version:
1 lines • 1.48 kB
JavaScript
let e=require("react/jsx-runtime"),t=require("antd"),n=require("@ant-design/icons");var r=({viewText:r,actionsText:i,editText:a,deleteText:o,columns:s,serverPagination:c,scroll:l,loading:u,dataSource:d,isHiddenUpdate:f,isCanRead:p,isCanUpdate:m,isCanDelete:h,isFixedActions:g,onView:_,onDropdownClick:v,onEdit:y,onDelete:b,onShowSizeChange:x,...S})=>{let C=d?.map(e=>{let t={};return Object.entries(e).forEach(([e,n])=>{t[e]=n||`-`}),t}),w=s??[],T=c?{current:c.page??1,pageSize:c.limit??1,total:c.count??0,pageSizeOptions:[10,20,50,100,200,500],showSizeChanger:!0,showQuickJumper:!0,onShowSizeChange:x,showTotal:(e,t)=>`${t[0]}-${t[1]} / ${e}`}:null,E=e=>{`id`in e&&typeof e.id==`string`&&_(e.id)},D=e=>{`id`in e&&typeof e.id==`string`&&v(e.id)},O=[];!f&&m&&O.push({key:`edit`,label:(0,e.jsx)(t.Button,{type:`link`,block:!0,onClick:y,children:a})}),h&&b&&O.push({key:`delete`,label:(0,e.jsx)(t.Button,{type:`link`,block:!0,danger:!0,onClick:b,children:o})});let k=[...w,{title:i,key:`action`,width:180,fixed:g?`right`:!1,render:n=>O.length?(0,e.jsx)(t.Dropdown.Button,{disabled:!p,menu:{items:O,onClick:()=>D(n)},onClick:()=>E(n),children:r}):(0,e.jsx)(t.Button,{disabled:!p,onClick:()=>E(n),children:r})}];return(0,e.jsx)(t.Table,{...S,className:`baseTable`,dataSource:C,columns:k,pagination:T?{...T,size:`small`}:!1,scroll:{...l,y:`50vh`,scrollToFirstRowOnChange:!0},loading:{spinning:!!u,indicator:(0,e.jsx)(n.LoadingOutlined,{style:{fontSize:36}})}})};exports.BaseTable=r;