import{i as e}from"./rolldown-runtime-BgaNhQyE.js";import{Dr as t,t as n}from"./jsx-runtime-CRBytmvs.js";import{D as r,E as i,j as a,l as o,t as s,w as c}from"./lodash-DzOfPy0f.js";import{t as l}from"./tooltip-SaeG1Uv7.js";import{t as u}from"./config-provider-CqLGIhNd.js";import{t as d}from"./PlusOutlined-B8K2rG8r.js";import{n as f,t as p}from"./table-BXi9q3AE.js";import{t as m}from"./space-Cu4QVMgQ.js";import{t as h}from"./button-BILozH6U.js";import{t as ee}from"./SearchOutlined-C1nd7QQO.js";import{t as te}from"./popover-BGq_MyT2.js";import{n as g}from"./LockOutlined-B8eRH1x4.js";import{a as ne,i as re,n as ie,o as ae,s as oe,t as se}from"./XinForm-BPDYdeax.js";import{t as ce}from"./card-DU2T2-YW.js";import{n as _,t as v}from"./row-DfzKzMF0.js";import{t as le}from"./divider-BWjoWWHX.js";import{t as ue}from"./dropdown-BgpiO8SY.js";import{t as de}from"./flex-BUqc4pUn.js";import{t as y}from"./form-B3R3kIqp.js";import{t as fe}from"./input-CHcsaDtX.js";import{r as pe}from"./CopyOutlined-pYq9KfGb.js";import{t as me}from"./DeleteOutlined-DwOvobSM.js";import{t as he}from"./useTranslation-DBl6NYjI.js";import{t as b}from"./AuthButton-DvrpreK4.js";var x=e(t(),1),S=s(),C=n();function ge(e){let{columns:t,handleSearch:n,submitter:r,form:i,grid:a=!0,rowProps:o={gutter:[20,20],wrap:!0},colProps:s={xs:24,sm:12,md:12,lg:8,xl:6,xxl:4},...c}=e,{t:l}=he(),[u]=y.useForm(i),d=(0,x.useCallback)((e,t)=>{let{dataIndex:n,valueType:r,title:i=``,fieldProps:o={},fieldRender:c}=e,l=(0,S.pick)(e,[`colon`,`extra`,`getValueFromEvent`,`help`,`htmlFor`,`initialValue`,`labelAlign`,`labelCol`,`name`,`normalize`,`noStyle`,`tooltip`,`wrapperCol`,`layout`]),d=String(n)||`form-item-${t}`,f=(0,C.jsx)(ie,{valueType:r,placeholder:i,...o}),p=(0,C.jsx)(y.Item,{style:{marginBottom:0},name:d,label:e.title,...l,required:!1,children:c?c(u):f},d);return a?(0,x.createElement)(_,{...s,...e.colProps,key:d},p):p},[u,a,s]),f=(0,x.useMemo)(()=>{if(r?.render===!1)return null;let e={search:(0,C.jsx)(h,{type:`primary`,onClick:()=>u.submit(),...r?.submitButtonProps,children:r?.submitText||l(`xin.table.search.search`)}),reset:(0,C.jsx)(h,{onClick:()=>u.resetFields(),...r?.resetButtonProps,children:r?.resetText||l(`xin.table.search.reset`)})};return typeof r?.render==`function`?r.render(e):(0,C.jsx)(y.Item,{style:{marginBottom:0},children:(0,C.jsxs)(m,{size:16,children:[e.reset,e.search]})})},[u,r,l]);return(0,C.jsx)(y,{...c,form:u,onFinish:n,style:{width:`100%`},children:a?(0,C.jsxs)(v,{...o,children:[t.map((e,t)=>d(e,t)),(0,C.jsx)(_,{...s,children:f})]}):(0,C.jsxs)(C.Fragment,{children:[t.map((e,t)=>d(e,t)),f]})})}var _e=e(g(),1),ve=10,w=1;function T(e){let{api:t,accessName:n,rowKey:s,columns:g,tableRef:ie,formProps:_,modalProps:v,cardProps:T,searchProps:ye,operateProps:be={},pagination:xe={},addShow:Se=!0,editShow:E=!0,deleteShow:D=!0,searchShow:O=!0,searchDefaultOpen:Ce=!1,operateShow:k=!0,paginationShow:we=!0,keywordSearchShow:Te=!0,toolBarRender:A,actionBarRender:j,operateRender:M,handleRequest:N,requestParams:P,handleFinish:F}=e,{t:I}=he(),L=(0,x.useRef)(null),[R,z]=(0,x.useState)(!0),[B,V]=(0,x.useState)([]),[H,Ee]=(0,x.useState)(0),[U,W]=(0,x.useState)({page:w,pageSize:ve}),[G,K]=(0,x.useState)(),[q,De]=(0,x.useState)(),[J]=y.useForm(),[Y,Oe]=(0,x.useState)([]),[ke,Ae]=(0,x.useState)(Ce),[X,je]=(0,x.useState)(`create`),[Z,Me]=(0,x.useState)(void 0),Q=(0,x.useCallback)(async e=>{try{z(!0);let n=Object.assign({page:w,pageSize:ve},e),r=P?P(n):n,i;if(N)i=await N(r);else{let{data:e}=await ae(t,r);i=e.data}V(i.data),Ee(i.total)}finally{z(!1)}},[t,N,P]),Ne=(0,x.useCallback)(()=>{je(`create`),Me(void 0),L.current?.resetFields(),L.current?.open()},[]),Pe=(0,x.useCallback)(e=>{je(`update`),Me(e),L.current?.setFieldsValue(e),L.current?.open()},[]);(0,x.useImperativeHandle)(ie,()=>({reload:async()=>{await Q(U)},reset:async()=>{J.resetFields(),W({page:1,pageSize:10}),await Q({page:1,pageSize:10})},getDataSource:()=>B,setDataSource:V,getTotal:()=>H,getLoading:()=>R,setLoading:z,setPageInfo:(e,t)=>{W(n=>({...n,...e!==void 0&&{page:e},...t!==void 0&&{pageSize:t}}))},getForm:()=>L.current,getSearchForm:()=>J})),(0,x.useEffect)(()=>{Q()},[]);let Fe=async(e,t,n)=>{let r={...U,page:e.current??U.page,pageSize:e.pageSize??U.pageSize};(0,S.isEmpty)(t)||(r.filterValues=t),n&&!(0,S.isArray)(n)&&!(0,S.isEmpty)(n)&&n.field?r.sorterValue={field:String(n.field),order:n.order===`ascend`?`asc`:`desc`}:delete r.sorterValue,W(r),await Q(r)},Ie=async e=>{if(!e){window.$message?.warning(I(`xin.table.keywordEmpty`));return}let t={...U,page:1,keywordSearch:e};W(t),await Q(t)},Le=e=>{if(e.target.value)W({...U,keywordSearch:e.target.value});else{let e={...U};delete e.keywordSearch,W(e)}},Re=async()=>{let e=J.getFieldsValue(),t={};Object.keys(e).forEach(n=>{let r=e[n];r===``||r==null?delete e[n]:_e.default.isDayjs(r)?(t[n]=r.format(`YYYY-MM-DD`),delete e[n]):(0,S.isArray)(r)&&r.length>0&&r.every(e=>_e.default.isDayjs(e))&&(t[n]=r.map(e=>e.format(`YYYY-MM-DD`)),delete e[n])}),await Q({page:1,...U,...e,...t})},ze=(0,x.useMemo)(()=>O?g.filter(e=>e.hideInSearch!==!0):[],[g,O]),Be=(0,x.useMemo)(()=>g.filter(e=>X===`update`?e.hideInForm!==!0&&e.hideInUpdate!==!0:e.hideInForm!==!0&&e.hideInCreate!==!0),[g,X]),$=(0,x.useMemo)(()=>g.filter(e=>e.hideInTable!==!0&&e.dataIndex).map(e=>(0,S.omit)(e,[`hideInTable`,`hideInForm`,`hideInSearch`,`search`])),[g]);(0,x.useEffect)(()=>{let e=$.filter(e=>!e.defaultHiddenInTable).map(e=>e.dataIndex);Oe(e)},[$]);let Ve=t=>{let n=()=>(typeof E==`function`?E(t):E)?(0,C.jsx)(b,{auth:e.accessName+`.update`,children:(0,C.jsx)(l,{title:I(`xin.table.edit`),children:(0,C.jsx)(h,{type:`primary`,icon:(0,C.jsx)(pe,{}),size:`small`,onClick:()=>Pe(t)})})},`update`):null,r=()=>(typeof D==`function`?D(t):D)?(0,C.jsx)(b,{auth:e.accessName+`.delete`,children:(0,C.jsx)(l,{title:I(`xin.table.delete`),children:(0,C.jsx)(h,{danger:!0,type:`primary`,icon:(0,C.jsx)(me,{}),size:`small`,onClick:()=>He(t)})})},`delete`):null;return M?M(t,{del:r(),edit:n()}):[r(),n()]},He=async e=>{window.$modal?.confirm({title:I(`xin.table.deleteConfirm`,{id:e[s]}),okText:I(`xin.table.deleteOk`),cancelText:I(`xin.table.deleteCancel`),onOk:async()=>{await ne(t+`/${e[s]}`),window.$message?.success(I(`xin.table.deleteSuccess`)),await Q(U)}})},Ue=async e=>{try{if(L.current?.setLoading(!0),F){await F(e,X,L,Z)&&(await Q(U),L.current?.close());return}if(X===`create`)await re(t,e),window.$message?.success(I(`xin.table.form.createSuccess`));else if(Z&&s)await oe(t+`/${Z[s]}`,e),window.$message?.success(I(`xin.table.form.updateSuccess`));else{window.$message?.error(I(`xin.table.form.updateKeyUndefined`));return}await Q(U),L.current?.close()}finally{L.current?.setLoading(!1)}},We={items:[{key:`large`,label:I(`xin.table.density.default`),onClick:()=>K(`large`)},{key:`middle`,label:I(`xin.table.density.middle`),onClick:()=>K(`middle`)},{key:`small`,label:I(`xin.table.density.compact`),onClick:()=>K(`small`)}],selectedKeys:[G||`large`]},Ge=(0,x.useMemo)(()=>g.filter(e=>e.hideInTable!==!0&&e.dataIndex).map(e=>({key:String(e.dataIndex),title:e.title})),[g]),Ke=e=>{(0,S.isArray)(e)&&Oe(e)},qe=(0,x.useMemo)(()=>{let e=$.filter(e=>Y.includes(e.dataIndex));return k?[...e,{title:I(`xin.table.operate`),key:`operate`,align:`center`,...be,render:(e,t)=>(0,C.jsx)(m,{children:[...Ve(t)]})}]:e},[$,Y,k]),Je={showQuickJumper:!0,showSizeChanger:!0,showTotal:e=>I(`xin.table.total`,{total:e}),pageSize:U.pageSize,...xe,current:U.page,total:H},Ye=()=>{let e=Se?(0,C.jsx)(b,{auth:n+`.create`,children:(0,C.jsx)(h,{type:`primary`,onClick:Ne,icon:(0,C.jsx)(d,{}),children:I(`xin.table.add`)})}):null,t=O?(0,C.jsx)(h,{type:`primary`,icon:(0,C.jsx)(ee,{}),onClick:()=>Ae(!ke),children:`搜索`}):null,r=Te?(0,C.jsx)(fe.Search,{onChange:Le,placeholder:I(`xin.table.keywordPlaceholder`),style:{width:200},value:U.keywordSearch,onSearch:Ie}):null;return j?j({add:e,search:t,keywordSearch:r}).filter(Boolean):[e,t,r].filter(Boolean)},Xe=()=>{let e=(0,C.jsx)(l,{title:`刷新表格`,children:(0,C.jsx)(h,{type:`text`,icon:(0,C.jsx)(a,{}),onClick:()=>Q()})}),t=(0,C.jsx)(ue,{menu:We,trigger:[`click`],children:(0,C.jsx)(h,{type:`text`,icon:(0,C.jsx)(c,{})})}),n=(0,C.jsx)(l,{title:I(q?`xin.table.hideBorder`:`xin.table.showBorder`),children:(0,C.jsx)(h,{type:`text`,icon:q?(0,C.jsx)(r,{}):(0,C.jsx)(i,{}),onClick:()=>De(!q)})}),s=(0,C.jsx)(te,{content:(0,C.jsx)(u,{theme:{components:{Tree:{switcherSize:12}}},children:(0,C.jsx)(f,{icon:!1,blockNode:!0,checkable:!0,treeData:Ge,selectable:!1,checkedKeys:Y,onCheck:Ke})}),trigger:`click`,placement:`bottomRight`,title:I(`xin.table.columnSettings`),children:(0,C.jsx)(l,{title:I(`xin.table.columnSettings`),children:(0,C.jsx)(h,{type:`text`,icon:(0,C.jsx)(o,{})})})});return A?A({reload:e,columnHeight:t,hideBorder:n,columnSetting:s}).filter(Boolean):[e,t,n,s]};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(ce,{...T,children:[ke&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(ge,{form:J,columns:ze,handleSearch:Re,...ye}),(0,C.jsx)(le,{})]}),(0,C.jsxs)(de,{justify:`space-between`,align:`center`,style:{marginBottom:20},children:[(0,C.jsx)(m,{children:[...Ye()]}),(0,C.jsx)(m,{size:1,children:[...Xe()]})]}),(0,C.jsx)(p,{loading:R,dataSource:B,size:G,bordered:q,...e,scroll:e.scroll??{x:`max-content`},columns:qe,rowKey:s,onChange:Fe,pagination:we?Je:!1})]}),(0,C.jsx)(se,{..._,columns:Be,formRef:L,layoutType:`ModalForm`,modalProps:{title:I(X===`update`?`xin.table.form.editTitle`:`xin.table.form.createTitle`),styles:{header:{marginBottom:16}},...v},onFinish:Ue})]})}export{T as t};