Files
xin-procurement/public/assets/config-CeX61SBH.js
T
2026-08-15 00:19:00 +08:00

1 line
11 KiB
JavaScript

import{i as e}from"./rolldown-runtime-BgaNhQyE.js";import{Dr as t,t as n}from"./jsx-runtime-CRBytmvs.js";import{t as r}from"./request--UCyt0wo.js";import{t as i}from"./typography-DRFhazK9.js";import{A as a,B as o,f as s,l as c}from"./lodash-VautP0iT.js";import{t as l}from"./PlusOutlined-B8K2rG8r.js";import{t as u}from"./space-Cu4QVMgQ.js";import{t as d}from"./button-BILozH6U.js";import{n as f}from"./dropdown-Cg5iA4jt.js";import{t as p}from"./XinForm-B2aqXwsp.js";import{t as m}from"./radio-CxFl70_7.js";import{t as h}from"./card-DU2T2-YW.js";import{t as g}from"./spin-CfJYIffX.js";import{t as _}from"./checkbox-BSxplF7f.js";import{n as v,t as y}from"./row-DfzKzMF0.js";import{t as ee}from"./divider-BWjoWWHX.js";import{t as b}from"./form-B3R3kIqp.js";import{t as x}from"./input-CHcsaDtX.js";import{r as S}from"./CopyOutlined-pYq9KfGb.js";import{r as C}from"./PictureOutlined-CB8Pr7jP.js";import{t as w}from"./popconfirm-DyseZgpU.js";import{t as T}from"./switch--LhkZymx.js";import{t as E}from"./DeleteOutlined-DwOvobSM.js";import{t as D}from"./useTranslation-DBl6NYjI.js";var O=e(t(),1);async function te(){return r({url:`/system/config/group`,method:`get`})}async function ne(e){return r({url:`/system/config/group`,method:`post`,data:e})}async function re(e,t){return r({url:`/system/config/group/${e}`,method:`put`,data:t})}async function ie(e){return r({url:`/system/config/group/${e}`,method:`delete`})}async function ae(e){return r({url:`/system/config/items`,method:`get`,params:{group_id:e}})}async function oe(e){return r({url:`/system/config/items`,method:`post`,data:e})}async function se(e,t){return r({url:`/system/config/items/${e}`,method:`put`,data:t})}async function ce(e){return r({url:`/system/config/items/${e}`,method:`delete`})}async function le(e){return r({url:`/system/config/items/save`,method:`put`,data:{configs:e}})}async function ue(){return r({url:`/system/config/items/refreshCache`,method:`post`})}var k=n(),{TextArea:A}=x,{Text:j,Title:M}=i,N=()=>{let{t:e}=D(),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`}],[n,r]=(0,O.useState)([]),[i,N]=(0,O.useState)(),[P,F]=(0,O.useState)(),[I,L]=(0,O.useState)([]),[R,z]=(0,O.useState)(!1),[B,V]=(0,O.useState)(!1),[H,U]=(0,O.useState)(!1),[W,G]=(0,O.useState)(null),K=(0,O.useRef)(null),[q,J]=(0,O.useState)(null),Y=(0,O.useRef)(null),[X]=b.useForm(),Z=async()=>{try{z(!0);let{data:e}=await te(),t=e.data||[];r(t),!i&&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 ae(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,O.useEffect)(()=>{Z()},[]),(0,O.useEffect)(()=>{i&&Q(i)},[i]);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 re(W.id,t),C.success(e(`system.config.group.updateSuccess`))):(await ne(t),C.success(e(`system.config.group.createSuccess`))),K.current?.close(),await Z(),!0}catch{return!1}},me=async t=>{try{await ie(t),C.success(e(`system.config.group.deleteSuccess`)),i===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:i}),Y.current?.open()},ge=e=>{J(e),Y.current?.setFieldsValue(e),Y.current?.open()},$=async t=>{try{return q?(await se(q.id,{...t,group_id:i}),C.success(e(`system.config.item.updateSuccess`))):(await oe({...t,group_id:i}),C.success(e(`system.config.item.createSuccess`))),Y.current?.close(),await Q(i),!0}catch{return!1}},_e=async t=>{try{await ce(t),C.success(e(`system.config.item.deleteSuccess`)),await Q(i)}catch(e){console.error(`删除设置项失败:`,e)}},ve=async()=>{try{U(!0);let t=X.getFieldsValue();await le(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}})),C.success(e(`system.config.item.updateSuccess`))}finally{U(!1)}},ye=async()=>{try{U(!0),await ue(),C.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}')`,a=[];if(t.options_json)try{a=JSON.parse(t.options_json)}catch{console.error(`options解析失败:`,t.options_json)}let s={};if(t.props_json)try{s=JSON.parse(t.props_json)}catch{console.error(`props解析失败:`,t.props_json)}let c=()=>(0,k.jsxs)(`div`,{style:{marginBottom:8},children:[(0,k.jsxs)(u,{children:[(0,k.jsx)(j,{strong:!0,children:t.title}),(0,k.jsx)(d,{type:`text`,size:`small`,icon:(0,k.jsx)(S,{}),onClick:()=>ge(t)}),(0,k.jsx)(w,{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)(d,{type:`text`,size:`small`,danger:!0,icon:(0,k.jsx)(E,{})})})]}),(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})]})})]}),l;switch(r){case`Input`:l=(0,k.jsx)(x,{placeholder:t.describe||e(`system.config.form.placeholder.input`),...s});break;case`TextArea`:l=(0,k.jsx)(A,{placeholder:t.describe||e(`system.config.form.placeholder.input`),rows:4,...s});break;case`InputNumber`:l=(0,k.jsx)(o,{style:{width:`100%`},placeholder:t.describe||e(`system.config.form.placeholder.input`),...s});break;case`Switch`:l=(0,k.jsx)(T,{...s});break;case`Radio`:l=(0,k.jsx)(m.Group,{options:a,...s});break;case`Checkbox`:l=(0,k.jsx)(_.Group,{options:a,...s});break;default:l=(0,k.jsx)(x,{placeholder:t.describe||e(`system.config.form.placeholder.input`),...s})}return(0,k.jsxs)(`div`,{style:{marginBottom:24},children:[(0,k.jsx)(c,{}),(0,k.jsx)(b.Item,{name:n,noStyle:!0,children:l})]})},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)(y,{gutter:[16,16],children:[(0,k.jsx)(v,{xs:24,lg:4,children:(0,k.jsx)(h,{styles:{header:{paddingInline:16,paddingBlock:0,minHeight:48},body:{padding:16,minHeight:52}},title:(0,k.jsxs)(u,{children:[(0,k.jsx)(c,{}),e(`system.config.group.title`)]}),extra:(0,k.jsx)(d,{type:`link`,size:`small`,icon:(0,k.jsx)(l,{}),onClick:de,children:e(`system.config.group.add`)}),loading:R,children:(0,k.jsx)(f,{mode:`inline`,selectedKeys:i?[String(i)]:[],items:n.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)(u,{size:`small`,children:[(0,k.jsx)(d,{type:`text`,size:`small`,icon:(0,k.jsx)(S,{}),onClick:e=>{e.stopPropagation(),fe(t)}}),(0,k.jsx)(w,{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)(d,{type:`text`,size:`small`,danger:!0,icon:(0,k.jsx)(E,{}),onClick:e=>e.stopPropagation()})})]})]}),onClick:()=>{N(t.id),F(t.key)}}))})})}),(0,k.jsx)(v,{xs:24,lg:20,children:(0,k.jsx)(h,{styles:{header:{paddingInline:16,paddingBlock:0,minHeight:48},body:{padding:16,minHeight:52}},title:e(`system.config.item.title`),extra:i&&(0,k.jsxs)(u,{children:[(0,k.jsx)(d,{type:`primary`,icon:(0,k.jsx)(a,{}),onClick:ye,children:e(`system.config.refresh.button`)}),(0,k.jsx)(d,{type:`primary`,icon:(0,k.jsx)(s,{}),loading:H,onClick:ve,children:e(`system.config.save.button`)}),(0,k.jsx)(d,{type:`primary`,icon:(0,k.jsx)(l,{}),onClick:he,children:e(`system.config.item.add`)})]}),children:i?(0,k.jsx)(g,{spinning:B,children:(0,k.jsx)(b,{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)(ee,{})]},e.id))})}):(0,k.jsx)(`div`,{style:{textAlign:`center`,padding:`60px 0`,color:`#999`},children:e(`system.config.item.selectGroup`)})})}),(0,k.jsx)(p,{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)(p,{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};