import{aj as c,u as ce,r,F as R,j as s,T as de,a as ue,C as A,bk as pe,S as P,B as x,a2 as B,ak as D,al as O,bl as ge,D as me,w as u,I as G,bm as ye,bn as xe,bo as he,bd as fe}from"./index-B-sDl1ER.js";import{X as z,D as je}from"./index-duCmqVUU.js";import{C as V}from"./index-CO5DzGxy.js";import{P as M}from"./index-BPV0ygaW.js";import{S as Se}from"./index-DmtjhyJb.js";import{R as be}from"./index-CeRfFUxJ.js";import"./index-BZjcF0yn.js";import"./tslib.es6-BaFViOhq.js";import"./index-D3yl9SWR.js";import"./progress-C__thZ4V.js";import"./index-C9m5qSM4.js";import"./Table-B11dzOaz.js";async function ve(){return c({url:"/system/setting/group",method:"get"})}async function ke(e){return c({url:"/system/setting/group",method:"post",data:e})}async function Ie(e,p){return c({url:`/system/setting/group/${e}`,method:"put",data:p})}async function Te(e){return c({url:`/system/setting/group/${e}`,method:"delete"})}async function we(e){return c({url:"/system/setting/items",method:"get",params:{group_id:e}})}async function Ce(e){return c({url:"/system/setting/items",method:"post",data:e})}async function Re(e,p){return c({url:`/system/setting/items/${e}`,method:"put",data:p})}async function Pe(e){return c({url:`/system/setting/items/${e}`,method:"delete"})}async function Ge(e,p){return c({url:`/system/setting/items/save/${e}`,method:"put",data:{values:p}})}const{TextArea:Fe}=G,{Text:f,Title:_e}=de,He=()=>{const{t:e}=ce(),p=[{label:e("setting.component.Input"),value:"Input"},{label:e("setting.component.TextArea"),value:"TextArea"},{label:e("setting.component.InputNumber"),value:"InputNumber"},{label:e("setting.component.Switch"),value:"Switch"},{label:e("setting.component.Radio"),value:"Radio"},{label:e("setting.component.Checkbox"),value:"Checkbox"},{label:e("setting.component.Select"),value:"Select"},{label:e("setting.component.DatePicker"),value:"DatePicker"}],[L,H]=r.useState([]),[i,j]=r.useState(),[J,S]=r.useState(),[b,K]=r.useState([]),[X,F]=r.useState(!1),[W,_]=r.useState(!1),[v,N]=r.useState(null),g=r.useRef(null),[k,$]=r.useState(null),d=r.useRef(null),[q]=R.useForm(),I=r.useRef({}),T=async()=>{try{F(!0);const{data:t}=await ve(),n=t.data||[];H(n),!i&&n.length>0&&(j(n[0].id),S(n[0].key))}finally{F(!1)}},w=async t=>{if(t)try{_(!0);const{data:n}=await we(t),y=n.data||[];K(y);const h={};y.forEach(o=>{if(o.values)try{h[`item_${o.id}`]=JSON.parse(o.values)}catch{h[`item_${o.id}`]=o.values}}),q.setFieldsValue(h)}finally{_(!1)}};r.useEffect(()=>{T()},[]),r.useEffect(()=>{i&&w(i)},[i]);const Q=()=>{N(null),g.current?.resetFields(),g.current?.open()},U=t=>{N(t),g.current?.setFieldsValue(t),g.current?.open()},Y=async t=>{try{return v?(await Ie(v.id,t),u.success(e("setting.group.updateSuccess"))):(await ke(t),u.success(e("setting.group.createSuccess"))),g.current?.close(),await T(),!0}catch{return!1}},Z=async t=>{try{await Te(t),u.success(e("setting.group.deleteSuccess")),i===t&&(j(void 0),S(void 0)),await T()}catch(n){console.error("删除设置组失败:",n)}},ee=()=>{$(null),d.current?.resetFields(),d.current?.setFieldsValue({group_id:i}),d.current?.open()},te=t=>{$(t),d.current?.setFieldsValue(t),d.current?.open()},se=async t=>{try{return k?(await Re(k.id,{...t,group_id:i}),u.success(e("setting.item.updateSuccess"))):(await Ce({...t,group_id:i}),u.success(e("setting.item.createSuccess"))),d.current?.close(),await w(i),!0}catch{return!1}},ne=async t=>{try{await Pe(t),u.success(e("setting.item.deleteSuccess")),await w(i)}catch(n){console.error("删除设置项失败:",n)}},C=async(t,n)=>{I.current[t]&&clearTimeout(I.current[t]),I.current[t]=setTimeout(async()=>{try{const y=typeof n=="object"?JSON.stringify(n):String(n);await Ge(t,y),u.success(e("setting.save.success"),1)}catch{u.error(e("setting.save.error"))}},500)},ie=t=>{const n=`item_${t.id}`,y=t.type||"Input",h=`setting('${J}.${t.key}')`;let o=[];if(t.options_json)try{o=JSON.parse(t.options_json)}catch{console.error("options解析失败:",t.options_json)}let E={};if(t.props_json)try{E=JSON.parse(t.props_json)}catch{console.error("props解析失败:",t.props_json)}const l={...E,onChange:m=>{const le=m?.target?m.target.value:m;C(t.id,le)}},ae=()=>s.jsxs("div",{style:{marginBottom:8},children:[s.jsxs(P,{children:[s.jsx(f,{strong:!0,children:t.title}),s.jsx(x,{type:"text",size:"small",icon:s.jsx(B,{}),onClick:()=>te(t)}),s.jsx(M,{title:e("setting.item.deleteConfirm"),onConfirm:()=>ne(t.id),okText:e("setting.confirm.ok"),cancelText:e("setting.confirm.cancel"),children:s.jsx(x,{type:"text",size:"small",danger:!0,icon:s.jsx(D,{})})})]}),s.jsx("div",{style:{marginBottom:4},children:s.jsxs(f,{type:"secondary",style:{fontSize:12},children:[t.describe," ",s.jsx(f,{code:!0,copyable:!0,children:h})]})})]});let a;switch(y){case"Input":a=s.jsx(G,{placeholder:t.describe||e("setting.form.placeholder.input"),...l,onBlur:m=>C(t.id,m.target.value)});break;case"TextArea":a=s.jsx(Fe,{placeholder:t.describe||e("setting.form.placeholder.input"),rows:4,...l,onBlur:m=>C(t.id,m.target.value)});break;case"InputNumber":a=s.jsx(he,{style:{width:"100%"},placeholder:t.describe||e("setting.form.placeholder.input"),...l});break;case"Switch":a=s.jsx(fe,{...l});break;case"Radio":a=s.jsx(be.Group,{options:o,...l});break;case"Checkbox":a=s.jsx(xe.Group,{options:o,...l});break;case"Select":a=s.jsx(ye,{placeholder:t.describe||e("setting.form.placeholder.select"),options:o,...l});break;case"DatePicker":a=s.jsx(je,{style:{width:"100%"},placeholder:t.describe||e("setting.form.placeholder.date"),...l});break;default:a=s.jsx(G,{placeholder:t.describe||e("setting.form.placeholder.input"),...l})}return s.jsxs("div",{style:{marginBottom:24},children:[s.jsx(ae,{}),s.jsx(R.Item,{name:n,noStyle:!0,children:a})]})},re=[{title:e("setting.group.field.title"),dataIndex:"title",valueType:"text",rules:[{required:!0,message:e("setting.group.field.title.required")}]},{title:e("setting.group.field.key"),dataIndex:"key",valueType:"text",rules:[{required:!0,message:e("setting.group.field.key.required")}]},{title:e("setting.group.field.remark"),dataIndex:"remark",valueType:"textarea",colProps:{span:24}}],oe=[{title:e("setting.item.field.key"),dataIndex:"key",valueType:"text",rules:[{required:!0,message:e("setting.item.field.key.required")}]},{title:e("setting.item.field.title"),dataIndex:"title",valueType:"text",rules:[{required:!0,message:e("setting.item.field.title.required")}]},{title:e("setting.item.field.type"),dataIndex:"type",valueType:"select",fieldProps:{options:p},rules:[{required:!0,message:e("setting.item.field.type.required")}]},{title:e("setting.item.field.sort"),dataIndex:"sort",valueType:"digit"},{title:e("setting.item.field.describe"),dataIndex:"describe",valueType:"textarea",colProps:{span:24}},{title:e("setting.item.field.options"),dataIndex:"options",valueType:"textarea",tooltip:e("setting.item.field.options.tooltip")},{title:e("setting.item.field.props"),dataIndex:"props",valueType:"textarea",tooltip:e("setting.item.field.props.tooltip")},{title:e("setting.item.field.values"),dataIndex:"values",valueType:"text"}];return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"mb-5",children:[s.jsx(_e,{level:3,children:e("setting.page.title")}),s.jsx(f,{type:"secondary",children:e("setting.page.description")})]}),s.jsxs(ue,{gutter:[16,16],children:[s.jsx(A,{xs:24,lg:4,children:s.jsx(V,{styles:{header:{paddingInline:16,paddingBlock:0,minHeight:48},body:{padding:16,minHeight:52}},title:s.jsxs(P,{children:[s.jsx(ge,{}),e("setting.group.title")]}),extra:s.jsx(x,{type:"link",size:"small",icon:s.jsx(O,{}),onClick:Q,children:e("setting.group.add")}),loading:X,children:s.jsx(pe,{mode:"inline",selectedKeys:i?[String(i)]:[],items:L.map(t=>({key:String(t.id),label:s.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[s.jsx("span",{children:t.title}),s.jsxs(P,{size:"small",children:[s.jsx(x,{type:"text",size:"small",icon:s.jsx(B,{}),onClick:n=>{n.stopPropagation(),U(t)}}),s.jsx(M,{title:e("setting.group.deleteConfirm"),description:e("setting.group.deleteWarning"),onConfirm:n=>{n?.stopPropagation(),Z(t.id)},okText:e("setting.confirm.ok"),cancelText:e("setting.confirm.cancel"),children:s.jsx(x,{type:"text",size:"small",danger:!0,icon:s.jsx(D,{}),onClick:n=>n.stopPropagation()})})]})]}),onClick:()=>{j(t.id),S(t.key)}}))})})}),s.jsx(A,{xs:24,lg:20,children:s.jsx(V,{styles:{header:{paddingInline:16,paddingBlock:0,minHeight:48},body:{padding:16,minHeight:52}},title:e("setting.item.title"),extra:i&&s.jsx(x,{type:"link",size:"small",icon:s.jsx(O,{}),onClick:ee,children:e("setting.item.add")}),children:i?s.jsx(Se,{spinning:W,children:s.jsx(R,{form:q,layout:"vertical",children:b.length===0?s.jsx("div",{style:{textAlign:"center",padding:"60px 0",color:"#999"},children:e("setting.item.empty")}):b.map((t,n)=>s.jsxs("div",{style:{position:"relative"},children:[s.jsx("div",{style:{paddingRight:80},children:ie(t)}),ng.current?.close(),forceRender:!0,width:800},grid:!0,layout:"vertical",colProps:{span:8},rowProps:{gutter:[30,0]},trigger:s.jsx("span",{style:{display:"none"}})}),s.jsx(z,{formRef:d,layoutType:"ModalForm",columns:oe,onFinish:se,grid:!0,colProps:{span:12},rowProps:{gutter:30},layout:"vertical",modalProps:{title:e(k?"setting.item.edit":"setting.item.create"),onCancel:()=>d.current?.close(),forceRender:!0,width:800},trigger:s.jsx("span",{style:{display:"none"}})})]})]})};export{He as default};