Files
school2/public/assets/config-BRx7ukDN.js
T
2026-07-13 15:23:29 +08:00

1 line
10 KiB
JavaScript

import{Or as e,Tr as t,n,t as r}from"./jsx-runtime-NwRKtVrk.js";import{t as i}from"./request-Blbag3Ot.js";import{r as a}from"./CopyOutlined-bJLUKQgS.js";import{t as o}from"./button-CM-rzMOH.js";import{t as s}from"./space-Dvitgohy.js";import{n as c}from"./dropdown-DMnZiIxT.js";import{t as l}from"./card-D7XvzVif.js";import{t as u}from"./XinForm-ihfVpzb6.js";import{C as d,mt as f,v as p,x as ee}from"./es-Do50EHua.js";import{t as m}from"./spin-DV35Mdw9.js";import{t as h}from"./popconfirm-BkTOsppG.js";import{t as g}from"./radio-CkoyL693.js";import{A as _,C as v,M as y,N as b,P as x,S,_ as C,b as w,h as T,s as te,v as ne}from"./index-B7MUL4ct.js";var E=e(t(),1);async function re(){return i({url:`/system/config/group`,method:`get`})}async function ie(e){return i({url:`/system/config/group`,method:`post`,data:e})}async function ae(e,t){return i({url:`/system/config/group/${e}`,method:`put`,data:t})}async function oe(e){return i({url:`/system/config/group/${e}`,method:`delete`})}async function se(e){return i({url:`/system/config/items`,method:`get`,params:{group_id:e}})}async function ce(e){return i({url:`/system/config/items`,method:`post`,data:e})}async function le(e,t){return i({url:`/system/config/items/${e}`,method:`put`,data:t})}async function ue(e){return i({url:`/system/config/items/${e}`,method:`delete`})}async function D(e){return i({url:`/system/config/items/save`,method:`put`,data:{configs:e}})}async function O(){return i({url:`/system/config/items/refreshCache`,method:`post`})}var k=r(),{TextArea:A}=S,{Text:j,Title:M}=T,N=()=>{let{t:e}=te(),t=[{label:e(`system.config.component.Input`),value:`Input`},{label:e(`system.config.component.TextArea`),value:`TextArea`},{label:e(`system.config.component.InputNumber`),value:`InputNumber`},{label:e(`system.config.component.Switch`),value:`Switch`},{label:e(`system.config.component.Radio`),value:`Radio`},{label:e(`system.config.component.Checkbox`),value:`Checkbox`}],[r,i]=(0,E.useState)([]),[T,N]=(0,E.useState)(),[P,F]=(0,E.useState)(),[I,L]=(0,E.useState)([]),[R,z]=(0,E.useState)(!1),[B,V]=(0,E.useState)(!1),[H,U]=(0,E.useState)(!1),[W,G]=(0,E.useState)(null),K=(0,E.useRef)(null),[q,J]=(0,E.useState)(null),Y=(0,E.useRef)(null),[X]=v.useForm(),Z=async()=>{try{z(!0);let{data:e}=await re(),t=e.data||[];i(t),!T&&t.length>0&&(N(t[0].id),F(t[0].key))}finally{z(!1)}},Q=async e=>{if(e)try{V(!0);let{data:t}=await se(e),n=t.data||[];L(n);let r={};n.forEach(e=>{if((!e.type||[`Input`,`TextArea`,`Radio`].includes(e.type))&&(r[`item_${e.id}`]=String(e.values)),e.type&&e.type===`InputNumber`&&(r[`item_${e.id}`]=Number(e.values)),e.type&&e.type===`Switch`&&(e.values===`0`||e.values===`false`?r[`item_${e.id}`]=!1:r[`item_${e.id}`]=!!e.values),e.type&&e.type===`Checkbox`)try{r[`item_${e.id}`]=JSON.parse(e.values||`[]`)}catch{r[`item_${e.id}`]=[]}}),console.log(r),X.setFieldsValue(r)}finally{V(!1)}};(0,E.useEffect)(()=>{Z()},[]),(0,E.useEffect)(()=>{T&&Q(T)},[T]);let de=()=>{G(null),K.current?.resetFields(),K.current?.open()},fe=e=>{G(e),K.current?.setFieldsValue(e),K.current?.open()},pe=async t=>{try{return W?(await ae(W.id,t),w.success(e(`system.config.group.updateSuccess`))):(await ie(t),w.success(e(`system.config.group.createSuccess`))),K.current?.close(),await Z(),!0}catch{return!1}},me=async t=>{try{await oe(t),w.success(e(`system.config.group.deleteSuccess`)),T===t&&(N(void 0),F(void 0)),await Z()}catch(e){console.error(`删除设置组失败:`,e)}},he=()=>{J(null),Y.current?.resetFields(),Y.current?.setFieldsValue({group_id:T}),Y.current?.open()},ge=e=>{J(e),Y.current?.setFieldsValue(e),Y.current?.open()},$=async t=>{try{return q?(await le(q.id,{...t,group_id:T}),w.success(e(`system.config.item.updateSuccess`))):(await ce({...t,group_id:T}),w.success(e(`system.config.item.createSuccess`))),Y.current?.close(),await Q(T),!0}catch{return!1}},_e=async t=>{try{await ue(t),w.success(e(`system.config.item.deleteSuccess`)),await Q(T)}catch(e){console.error(`删除设置项失败:`,e)}},ve=async()=>{try{U(!0);let t=X.getFieldsValue();await D(I.map(e=>{let n=t[`item_${e.id}`];return!e.type||[`Input`,`TextArea`,`Radio`].includes(e.type)||e.type&&e.type===`InputNumber`?{id:e.id,value:String(n)}:e.type&&e.type===`Switch`?n===`0`||n===`false`||n?{id:e.id,value:`false`}:{id:e.id,value:`true`}:e.type&&e.type===`Checkbox`?{id:e.id,value:JSON.stringify(n)}:{id:e.id,value:n}})),w.success(e(`system.config.item.updateSuccess`))}finally{U(!1)}},ye=async()=>{try{U(!0),await O(),w.success(e(`system.config.item.refreshCacheSuccess`))}finally{U(!1)}},be=t=>{let n=`item_${t.id}`,r=t.type||`Input`,i=`site_config('${P}.${t.key}')`,c=[];if(t.options_json)try{c=JSON.parse(t.options_json)}catch{console.error(`options解析失败:`,t.options_json)}let l={};if(t.props_json)try{l=JSON.parse(t.props_json)}catch{console.error(`props解析失败:`,t.props_json)}let u=()=>(0,k.jsxs)(`div`,{style:{marginBottom:8},children:[(0,k.jsxs)(s,{children:[(0,k.jsx)(j,{strong:!0,children:t.title}),(0,k.jsx)(o,{type:`text`,size:`small`,icon:(0,k.jsx)(a,{}),onClick:()=>ge(t)}),(0,k.jsx)(h,{title:e(`system.config.item.deleteConfirm`),onConfirm:()=>_e(t.id),okText:e(`system.config.confirm.ok`),cancelText:e(`system.config.confirm.cancel`),children:(0,k.jsx)(o,{type:`text`,size:`small`,danger:!0,icon:(0,k.jsx)(f,{})})})]}),(0,k.jsx)(`div`,{style:{marginBottom:4},children:(0,k.jsxs)(j,{type:`secondary`,style:{fontSize:12},children:[t.describe,` `,(0,k.jsx)(j,{code:!0,copyable:!0,children:i})]})})]}),d;switch(r){case`Input`:d=(0,k.jsx)(S,{placeholder:t.describe||e(`system.config.form.placeholder.input`),...l});break;case`TextArea`:d=(0,k.jsx)(A,{placeholder:t.describe||e(`system.config.form.placeholder.input`),rows:4,...l});break;case`InputNumber`:d=(0,k.jsx)(_,{style:{width:`100%`},placeholder:t.describe||e(`system.config.form.placeholder.input`),...l});break;case`Switch`:d=(0,k.jsx)(C,{...l});break;case`Radio`:d=(0,k.jsx)(g.Group,{options:c,...l});break;case`Checkbox`:d=(0,k.jsx)(x.Group,{options:c,...l});break;default:d=(0,k.jsx)(S,{placeholder:t.describe||e(`system.config.form.placeholder.input`),...l})}return(0,k.jsxs)(`div`,{style:{marginBottom:24},children:[(0,k.jsx)(u,{}),(0,k.jsx)(v.Item,{name:n,noStyle:!0,children:d})]})},xe=[{title:e(`system.config.group.field.title`),dataIndex:`title`,valueType:`text`,rules:[{required:!0,message:e(`system.config.group.field.title.required`)}]},{title:e(`system.config.group.field.key`),dataIndex:`key`,valueType:`text`,rules:[{required:!0,message:e(`system.config.group.field.key.required`)}]},{title:e(`system.config.group.field.remark`),dataIndex:`remark`,valueType:`textarea`,colProps:{span:24}}],Se=[{title:e(`system.config.item.field.key`),dataIndex:`key`,valueType:`text`,rules:[{required:!0,message:e(`system.config.item.field.key.required`)}]},{title:e(`system.config.item.field.title`),dataIndex:`title`,valueType:`text`,rules:[{required:!0,message:e(`system.config.item.field.title.required`)}]},{title:e(`system.config.item.field.type`),dataIndex:`type`,valueType:`select`,fieldProps:{options:t},rules:[{required:!0,message:e(`system.config.item.field.type.required`)}]},{title:e(`system.config.item.field.sort`),dataIndex:`sort`,valueType:`digit`,initialValue:0},{title:e(`system.config.item.field.describe`),dataIndex:`describe`,valueType:`textarea`,colProps:{span:24}},{title:e(`system.config.item.field.options`),dataIndex:`options`,valueType:`textarea`,tooltip:e(`system.config.item.field.options.tooltip`)},{title:e(`system.config.item.field.props`),dataIndex:`props`,valueType:`textarea`,tooltip:e(`system.config.item.field.props.tooltip`)},{title:e(`system.config.item.field.values`),dataIndex:`values`,valueType:`text`}];return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(`div`,{className:`mb-5`,children:[(0,k.jsx)(M,{level:3,children:e(`system.config.page.title`)}),(0,k.jsx)(j,{type:`secondary`,children:e(`system.config.page.description`)})]}),(0,k.jsxs)(ne,{gutter:[16,16],children:[(0,k.jsx)(b,{xs:24,lg:4,children:(0,k.jsx)(l,{styles:{header:{paddingInline:16,paddingBlock:0,minHeight:48},body:{padding:16,minHeight:52}},title:(0,k.jsxs)(s,{children:[(0,k.jsx)(p,{}),e(`system.config.group.title`)]}),extra:(0,k.jsx)(o,{type:`link`,size:`small`,icon:(0,k.jsx)(n,{}),onClick:de,children:e(`system.config.group.add`)}),loading:R,children:(0,k.jsx)(c,{mode:`inline`,selectedKeys:T?[String(T)]:[],items:r.map(t=>({key:String(t.id),label:(0,k.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,k.jsx)(`span`,{children:t.title}),(0,k.jsxs)(s,{size:`small`,children:[(0,k.jsx)(o,{type:`text`,size:`small`,icon:(0,k.jsx)(a,{}),onClick:e=>{e.stopPropagation(),fe(t)}}),(0,k.jsx)(h,{title:e(`system.config.group.deleteConfirm`),description:e(`system.config.group.deleteWarning`),onConfirm:e=>{e?.stopPropagation(),me(t.id)},okText:e(`system.config.confirm.ok`),cancelText:e(`system.config.confirm.cancel`),children:(0,k.jsx)(o,{type:`text`,size:`small`,danger:!0,icon:(0,k.jsx)(f,{}),onClick:e=>e.stopPropagation()})})]})]}),onClick:()=>{N(t.id),F(t.key)}}))})})}),(0,k.jsx)(b,{xs:24,lg:20,children:(0,k.jsx)(l,{styles:{header:{paddingInline:16,paddingBlock:0,minHeight:48},body:{padding:16,minHeight:52}},title:e(`system.config.item.title`),extra:T&&(0,k.jsxs)(s,{children:[(0,k.jsx)(o,{type:`primary`,icon:(0,k.jsx)(d,{}),onClick:ye,children:e(`system.config.refresh.button`)}),(0,k.jsx)(o,{type:`primary`,icon:(0,k.jsx)(ee,{}),loading:H,onClick:ve,children:e(`system.config.save.button`)}),(0,k.jsx)(o,{type:`primary`,icon:(0,k.jsx)(n,{}),onClick:he,children:e(`system.config.item.add`)})]}),children:T?(0,k.jsx)(m,{spinning:B,children:(0,k.jsx)(v,{form:X,layout:`vertical`,children:I.length===0?(0,k.jsx)(`div`,{style:{textAlign:`center`,padding:`60px 0`,color:`#999`},children:e(`system.config.item.empty`)}):I.map((e,t)=>(0,k.jsxs)(`div`,{style:{position:`relative`},children:[(0,k.jsx)(`div`,{style:{paddingRight:80},children:be(e)}),t<I.length-1&&(0,k.jsx)(y,{})]},e.id))})}):(0,k.jsx)(`div`,{style:{textAlign:`center`,padding:`60px 0`,color:`#999`},children:e(`system.config.item.selectGroup`)})})}),(0,k.jsx)(u,{formRef:K,layoutType:`ModalForm`,columns:xe,onFinish:pe,modalProps:{title:e(W?`system.config.group.edit`:`system.config.group.create`),onCancel:()=>K.current?.close(),forceRender:!0,width:800},grid:!0,layout:`vertical`,colProps:{span:8},rowProps:{gutter:[30,0]},trigger:(0,k.jsx)(`span`,{style:{display:`none`}})}),(0,k.jsx)(u,{formRef:Y,layoutType:`ModalForm`,columns:Se,onFinish:$,grid:!0,colProps:{span:12},rowProps:{gutter:30},layout:`vertical`,modalProps:{title:e(q?`system.config.item.edit`:`system.config.item.create`),onCancel:()=>Y.current?.close(),forceRender:!0,width:800},trigger:(0,k.jsx)(`span`,{style:{display:`none`}})})]})]})};export{N as default};