Files
xin-school/public/assets/index-rMui37zI.js
T
2026-05-30 17:38:49 +08:00

2 lines
8.0 KiB
JavaScript

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