Files
xin-school/public/assets/config-Cv4QnqXU.js
T
2026-06-17 13:08:53 +08:00

1 line
10 KiB
JavaScript

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