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