四端上传

This commit is contained in:
tianmo committed 2026-09-29 15:25:40 +08:00
1 parent 25bbb5f9c8
commit c6e2cb4d5b
276 files changed
+17812 -3

No files matched your search

@@ -0,0 +1 @@
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[920],{754:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>c});var n=a(1333),l=a(8166),r=a(4705),s=a(8312),i=a(2787);function o(e){let{config:t}=e,[a,l]=(0,r.useState)([]),[o,d]=(0,r.useState)(0),[c,m]=(0,r.useState)(1),[u,x]=(0,r.useState)(""),[p,h]=(0,r.useState)(!1),[b,y]=(0,r.useState)(""),[g,f]=(0,r.useState)(!1),[v,j]=(0,r.useState)(null),[N,w]=(0,r.useState)({}),[S,_]=(0,r.useState)(!1),k=t.fields.filter(e=>!e.hideInTable),C=(0,r.useCallback)((e,a)=>{h(!0),y(""),s.F.listResource(t.key,{page:e,pageSize:20,keyword:a}).then(e=>{l(e.items),d(e.total),m(e.page)}).catch(e=>y(e.message)).finally(()=>h(!1))},[t.key]);(0,r.useEffect)(()=>{x(""),C(1,"")},[t.key,C]);let T=Math.max(1,Math.ceil(o/20));return(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsx)(i.$T,{message:b}),(0,n.jsxs)(i.Zp,{title:"".concat(t.title,"(共 ").concat(o," 条)"),action:(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(i.pd,{value:u,onChange:x,placeholder:"搜索…"}),(0,n.jsx)(i.$n,{variant:"ghost",onClick:()=>C(1,u),children:"搜索"}),(0,n.jsx)(i.$n,{onClick:()=>{let e={};for(let r of t.fields){var a,n,l;e[r.name]="select"===r.type?String(null!=(l=null==(n=r.options)||null==(a=n[0])?void 0:a.value)?l:1):""}w(e),j(null),f(!0)},children:"新建"})]}),children:[(0,n.jsx)("p",{className:"mb-3 text-xs text-gray-500",children:t.description}),p?(0,n.jsx)("div",{className:"py-10 text-center text-sm text-gray-400",children:"加载中…"}):0===a.length?(0,n.jsx)(i.Sv,{}):(0,n.jsx)("div",{className:"overflow-x-auto",children:(0,n.jsxs)("table",{className:"w-full text-sm",children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{className:"border-b border-gray-200 text-left text-xs text-gray-500",children:[(0,n.jsx)("th",{className:"px-2 py-2",children:"ID"}),k.map(e=>(0,n.jsx)("th",{className:"px-2 py-2",children:e.label},e.name)),(0,n.jsx)("th",{className:"px-2 py-2 text-right",children:"操作"})]})}),(0,n.jsx)("tbody",{children:a.map(e=>(0,n.jsxs)("tr",{className:"border-b border-gray-100 hover:bg-gray-50",children:[(0,n.jsx)("td",{className:"px-2 py-2 text-gray-400",children:String(e.id)}),k.map(t=>{let a=function(e,t){let a=t[e.name];if(null==a||""===a)return"—";if("select"===e.type&&e.options){let t=e.options.find(e=>e.value===Number(a));return t?t.label:String(a)}return"date"===e.type?String(a).slice(0,10):String(a)}(t,e);return(0,n.jsx)("td",{className:"max-w-[280px] truncate px-2 py-2",title:a,children:a},t.name)}),(0,n.jsxs)("td",{className:"whitespace-nowrap px-2 py-2 text-right",children:[(0,n.jsx)(i.$n,{variant:"ghost",onClick:()=>(e=>{let a={};for(let n of t.fields)a[n.name]=function(e,t){if(null==t)return"";if("date"===e.type){let e=new Date(String(t));return isNaN(e.getTime())?"":e.toISOString().slice(0,10)}return String(t)}(n,e[n.name]);w(a),j(e),f(!0)})(e),children:"编辑"})," ",(0,n.jsx)(i.$n,{variant:"danger",onClick:()=>{window.confirm("确定删除这条记录吗?此操作不可撤销。")&&(y(""),s.F.deleteResource(t.key,Number(e.id)).then(()=>C(c,u)).catch(e=>y(e.message)))},children:"删除"})]})]},String(e.id)))})]})}),(0,n.jsxs)("div",{className:"mt-4 flex items-center justify-between text-sm text-gray-500",children:[(0,n.jsxs)("span",{children:["第 ",c," / ",T," 页"]}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(i.$n,{variant:"ghost",disabled:c<=1,onClick:()=>C(c-1,u),children:"上一页"}),(0,n.jsx)(i.$n,{variant:"ghost",disabled:c>=T,onClick:()=>C(c+1,u),children:"下一页"})]})]})]}),(0,n.jsx)(i.aF,{open:g,title:"".concat(v?"编辑":"新建").concat(t.title),onClose:()=>f(!1),footer:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.$n,{variant:"ghost",onClick:()=>f(!1),children:"取消"}),(0,n.jsx)(i.$n,{onClick:()=>{let e=function(e,t){let a={};for(let n of e){let e=t[n.name];void 0!==e&&(""===e?a[n.name]="number"===n.type?0:null:"number"===n.type||"select"===n.type?a[n.name]=Number(e):a[n.name]=e)}return a}(t.fields.filter(e=>!(v&&e.immutable)),N);_(!0),y(""),(v?s.F.updateResource(t.key,Number(v.id),e):s.F.createResource(t.key,e)).then(()=>{f(!1),C(c,u)}).catch(e=>y(e.message)).finally(()=>_(!1))},disabled:S,children:S?"保存中…":"保存"})]}),children:(0,n.jsx)("div",{className:"space-y-3",children:t.fields.map(e=>{var t,a,l,r;let s=!!(v&&e.immutable);return(0,n.jsxs)("div",{children:[(0,n.jsxs)("label",{className:"mb-1 block text-sm text-gray-600",children:[e.label,e.immutable&&(0,n.jsx)("span",{className:"ml-2 text-xs text-orange-500",children:"创建后不可修改"})]}),"textarea"===e.type?(0,n.jsx)(i.TM,{value:null!=(t=N[e.name])?t:"",onChange:t=>w({...N,[e.name]:t})}):"select"===e.type?(0,n.jsx)(i.l6,{value:null!=(a=N[e.name])?a:"",onChange:t=>w({...N,[e.name]:t}),options:null!=(l=e.options)?l:[]}):(0,n.jsx)("div",{className:s?"pointer-events-none opacity-60":"",children:(0,n.jsx)(i.pd,{value:null!=(r=N[e.name])?r:"",onChange:t=>w({...N,[e.name]:t}),type:"number"===e.type?"number":"date"===e.type?"daLine truncated