import{a5 as e,a6 as l,w as a,s as i,x as t,y as o,E as u,h as n,M as s,L as d,D as c}from"./element-plus.BfMFfVUv.js";import{u as r,c as _,P as p,D as v}from"./index.CCGY9CCJ.js";import{J as m,e9 as f,t as g,aP as y,S as b,T as h,a0 as w,$ as x,a9 as k,_ as V,H as D,ay as I,a1 as P,o as U,a6 as S,j as C,r as z,ak as B}from"./.pnpm.BudmgPu7.js";import{S as j}from"./SingleImageUpload.BrG2eeOy.js";import{_ as O}from"./_plugin-vue_export-helper.BCo6x5W8.js";import"./codemirror.BdleaLZh.js";const A={class:"flex items-center gap-2 w-full"},J={class:"flex items-center gap-2 w-full"},N={class:"flex items-center gap-2 w-full"},T={class:"flex items-center gap-2 w-full"},E={class:"space-y-2"},F={class:"space-y-2"},$={key:1,class:"space-y-2"},M=O(m({__name:"ConfigInfoDrawer",props:{modelValue:{type:Boolean}},emits:["update:modelValue"],setup(m,{emit:O}){const M=()=>Math.random().toString(36).substr(2,9),H=e=>/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(e),K=r(),L=C(()=>(K.device,v.DESKTOP,"60%")),W=f().t,q=_(),G=z("website"),Q=m,R=O,X=C({get:()=>Q.modelValue,set:e=>R("update:modelValue",e)}),Y=B({id:void 0,config_name:"",config_key:"",config_value:"",config_type:void 0,description:""}),Z=B({}),ee=e=>{Z[e]=!0},le=C(()=>Object.keys(Z).length>0),ae=async()=>{var e,l,a;const i=Object.keys(Z);if(0!==i.length)try{if("white_api_list_path"in Z&&(null==(e=me.value.white_api_list_path)?void 0:e.id)){const e=se.value.map(e=>e.value.trim()).filter(Boolean),l=JSON.stringify(e);await p.updateParams(me.value.white_api_list_path.id,{...me.value.white_api_list_path,config_value:l})}if("ip_black_list"in Z&&(null==(l=fe.value.ip_black_list)?void 0:l.id)){const e=de.value.map(e=>e.value.trim()).filter(Boolean),l=JSON.stringify(e);await p.updateParams(fe.value.ip_black_list.id,{...fe.value.ip_black_list,config_value:l})}if("ip_white_list"in Z&&(null==(a=ge.value.ip_white_list)?void 0:a.id)){const e=ce.value.map(e=>e.value.trim()).filter(Boolean),l=JSON.stringify(e);await p.updateParams(ge.value.ip_white_list.id,{...ge.value.ip_white_list,config_value:l})}const t=i.filter(e=>!["white_api_list_path","ip_black_list","ip_white_list"].includes(e)).map(e=>{const l=oe.value[e]||ye.value[e]||ue.value[e]||ne.value[e]||ge.value[e];return l&&l.id?p.updateParams(l.id,{...l}):Promise.resolve()});await Promise.all(t),i.forEach(e=>{delete Z[e]}),await q.getConfig(),re()}catch(t){}};async function ie(){X.value=!1}function te(){(()=>{var e,l,a,i,t;re();const o=Object.keys(Z);for(const u of o)oe.value[u]?oe.value[u].config_value=(null==(e=q.configData[u])?void 0:e.config_value)||"":ye.value[u]?ye.value[u].config_value=(null==(l=q.configData[u])?void 0:l.config_value)||"":ue.value[u]?ue.value[u].config_value=(null==(a=q.configData[u])?void 0:a.config_value)||"":ne.value[u]?ne.value[u].config_value=(null==(i=q.configData[u])?void 0:i.config_value)||"":ge.value[u]&&"ip_white_list"!==u&&(ge.value[u].config_value=(null==(t=q.configData[u])?void 0:t.config_value)||""),delete Z[u];c.close()})()}const oe=C(()=>({sys_web_title:q.configData.sys_web_title,sys_web_version:q.configData.sys_web_version,sys_web_description:q.configData.sys_web_description})),ue=C(()=>({sys_help_doc:q.configData.sys_help_doc,sys_git_code:q.configData.sys_git_code,sys_keep_record:q.configData.sys_keep_record,sys_web_copyright:q.configData.sys_web_copyright,sys_web_privacy:q.configData.sys_web_privacy})),ne=C(()=>({sys_web_clause:q.configData.sys_web_clause})),se=z([]),de=z([]),ce=z([]),re=()=>{var e,l,a;const i=(null==(e=q.configData.white_api_list_path)?void 0:e.config_value)||"";try{const e=JSON.parse(i);Array.isArray(e)?se.value=e.filter(e=>"string"==typeof e&&e.trim()).map(e=>({id:M(),value:e.trim()})):se.value=i?i.split("\n").filter(e=>e.trim()).map(e=>({id:M(),value:e.trim()})):[{id:M(),value:""}]}catch{se.value=i?i.split("\n").filter(e=>e.trim()).map(e=>({id:M(),value:e.trim()})):[{id:M(),value:""}]}const t=(null==(l=q.configData.ip_black_list)?void 0:l.config_value)||"";try{const e=JSON.parse(t);Array.isArray(e)?de.value=e.filter(e=>"string"==typeof e&&e.trim()).map(e=>({id:M(),value:e.trim()})):de.value=t?t.split("\n").filter(e=>e.trim()).map(e=>({id:M(),value:e.trim()})):[{id:M(),value:""}]}catch{de.value=t?t.split("\n").filter(e=>e.trim()).map(e=>({id:M(),value:e.trim()})):[{id:M(),value:""}]}const o=(null==(a=q.configData.ip_white_list)?void 0:a.config_value)||"";try{const e=JSON.parse(o);Array.isArray(e)?ce.value=e.filter(e=>"string"==typeof e&&e.trim()).map(e=>({id:M(),value:e.trim()})):ce.value=o?o.split("\n").filter(e=>e.trim()).map(e=>({id:M(),value:e.trim()})):[{id:M(),value:""}]}catch{ce.value=o?o.split("\n").filter(e=>e.trim()).map(e=>({id:M(),value:e.trim()})):[{id:M(),value:""}]}},_e=()=>{se.value.push({id:M(),value:""}),ee("white_api_list_path")},pe=()=>{de.value.push({id:M(),value:""}),ee("ip_black_list")},ve=()=>{ce.value.push({id:M(),value:""}),ee("ip_white_list")},me=C(()=>({white_api_list_path:q.configData.white_api_list_path})),fe=C(()=>({ip_black_list:q.configData.ip_black_list})),ge=C(()=>({demo_enable:q.configData.demo_enable,ip_white_list:q.configData.ip_white_list}));g(()=>{re()});const ye=C(()=>({sys_web_logo:{...q.configData.sys_web_logo,maxFileSize:5},sys_web_favicon:{...q.configData.sys_web_favicon,maxFileSize:5},sys_login_background:{...q.configData.sys_login_background,maxFileSize:10}})),be=e=>{u.error(`上传失败:${e.message||"请稍后重试"}`)};return g(()=>{q.getConfig()}),(c,r)=>{const _=i,p=o,v=t,m=a,f=l,g=n,C=s,z=e,B=d,O=y("hasPerm");return b(),h(B,{modelValue:X.value,"onUpdate:modelValue":r[1]||(r[1]=e=>X.value=e),title:"配置中心",size:L.value,"destroy-on-close":"",onClosed:te},{footer:w(()=>[x(g,{onClick:ie},{default:w(()=>[...r[16]||(r[16]=[k("取消",-1)])]),_:1}),S((b(),h(g,{type:"primary",disabled:!le.value,onClick:ae},{default:w(()=>[...r[17]||(r[17]=[k(" 保存 ",-1)])]),_:1},8,["disabled"])),[[O,["module_system:config:update"]]])]),default:w(()=>[x(z,{modelValue:G.value,"onUpdate:modelValue":r[0]||(r[0]=e=>G.value=e),type:"border-card"},{default:w(()=>[x(f,{label:"网站配置",name:"website"},{default:w(()=>[x(m,{model:Y,"label-suffix":":","label-width":"auto","label-position":"right"},{default:w(()=>[x(_,null,{default:w(()=>[...r[2]||(r[2]=[k("网站配置",-1)])]),_:1}),(b(!0),V(D,null,I(oe.value,(e,l)=>(b(),V("div",{key:l},[x(v,{label:e.config_name},{default:w(()=>[P("span",A,[x(p,{modelValue:e.config_value,"onUpdate:modelValue":l=>e.config_value=l,placeholder:U(W)("common.inputText"),clearable:"",style:{width:"100%"},onInput:e=>ee(l)},null,8,["modelValue","onUpdate:modelValue","placeholder","onInput"])])]),_:2},1032,["label"])]))),128)),x(_,null,{default:w(()=>[...r[3]||(r[3]=[k("网站图标",-1)])]),_:1}),(b(!0),V(D,null,I(ye.value,(e,l)=>(b(),V("div",{key:l},[x(v,{label:e.config_name},{default:w(()=>[P("div",J,[x(j,{modelValue:e.config_value,"onUpdate:modelValue":l=>e.config_value=l,data:{type:l},name:"file","max-file-size":e.maxFileSize,"show-tip":!0,"enable-preview":!0,onSuccess:e=>((e,l)=>{const a=e.file_url;l in q.configData&&(q.configData[l].config_value=a),l in oe.value?oe.value[l].config_value=a:l in ye.value&&(ye.value[l].config_value=a),ee(l)})(e,l),onError:be},null,8,["modelValue","onUpdate:modelValue","data","max-file-size","onSuccess"])])]),_:2},1032,["label"])]))),128))]),_:1},8,["model"])]),_:1}),x(f,{label:"安全隐私",name:"securityPrivacy"},{default:w(()=>[x(m,{model:Y,"label-suffix":":","label-width":"auto","label-position":"right"},{default:w(()=>[x(_,null,{default:w(()=>[...r[4]||(r[4]=[k("安全隐私",-1)])]),_:1}),(b(!0),V(D,null,I(ue.value,(e,l)=>(b(),V("div",{key:l},[x(v,{label:e.config_name},{default:w(()=>[P("span",N,[x(p,{modelValue:e.config_value,"onUpdate:modelValue":l=>e.config_value=l,placeholder:U(W)("common.inputText"),clearable:"",style:{width:"100%"},onInput:e=>ee(l)},null,8,["modelValue","onUpdate:modelValue","placeholder","onInput"])])]),_:2},1032,["label"])]))),128))]),_:1},8,["model"])]),_:1}),x(f,{label:"用户协议",name:"userAgreement"},{default:w(()=>[x(m,{model:Y,"label-suffix":":","label-width":"auto","label-position":"right"},{default:w(()=>[x(_,null,{default:w(()=>[...r[5]||(r[5]=[k("用户协议",-1)])]),_:1}),(b(!0),V(D,null,I(ne.value,(e,l)=>(b(),V("div",{key:l},[x(v,{label:e.config_name},{default:w(()=>[P("span",T,[x(p,{modelValue:e.config_value,"onUpdate:modelValue":l=>e.config_value=l,placeholder:U(W)("common.inputText"),clearable:"",style:{width:"100%"},onInput:e=>ee(l)},null,8,["modelValue","onUpdate:modelValue","placeholder","onInput"])])]),_:2},1032,["label"])]))),128))]),_:1},8,["model"])]),_:1}),x(f,{label:"接口白名单",name:"apiWhitelist"},{default:w(()=>[x(m,{model:Y,"label-suffix":":","label-width":"auto","label-position":"right"},{default:w(()=>[x(_,null,{default:w(()=>[...r[6]||(r[6]=[k("接口白名单",-1)])]),_:1}),(b(!0),V(D,null,I(me.value,(e,l)=>(b(),V("div",{key:l},[x(v,{label:e.config_name},{default:w(()=>[P("div",E,[(b(!0),V(D,null,I(se.value,e=>(b(),V("div",{key:e.id,class:"flex items-center gap-2"},[x(p,{modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"/api/v1/users/get",clearable:"",onInput:e=>ee(l),onBlur:l=>{var a;a=e.value,!/^\/[\w\-/]+$/.test(a)&&e.value.trim()&&U(u).warning("请输入有效的接口路径格式(以/开头)")}},null,8,["modelValue","onUpdate:modelValue","onInput","onBlur"]),x(g,{type:"danger",icon:"minus",circle:"",size:"small",onClick:l=>{return a=e.id,void(se.value.length<=1?u.warning("至少需要保留一个接口白名单配置"):(se.value=se.value.filter(e=>e.id!==a),ee("white_api_list_path")));var a}},null,8,["onClick"])]))),128)),x(g,{type:"primary",icon:"plus",size:"small",style:{"margin-top":"10px"},onClick:_e},{default:w(()=>[...r[7]||(r[7]=[k(" 添加接口路径 ",-1)])]),_:1}),r[8]||(r[8]=P("div",{class:"text-xs text-gray-500 mt-2"}," 配置说明:添加到白名单的接口路径无需登录即可访问,支持完整路径配置。 ",-1))])]),_:2},1032,["label"])]))),128))]),_:1},8,["model"])]),_:1}),x(f,{label:"IP黑名单",name:"ipBlacklist"},{default:w(()=>[x(m,{model:Y,"label-suffix":":","label-width":"auto","label-position":"right"},{default:w(()=>[x(_,null,{default:w(()=>[...r[9]||(r[9]=[k("IP黑名单",-1)])]),_:1}),(b(!0),V(D,null,I(fe.value,(e,l)=>(b(),V("div",{key:l},[x(v,{label:e.config_name},{default:w(()=>[P("div",F,[(b(!0),V(D,null,I(de.value,e=>(b(),V("div",{key:e.id,class:"flex items-center gap-2"},[x(p,{modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"192.168.1.1",clearable:"",style:{flex:"1"},onInput:e=>ee(l),onBlur:l=>{!H(e.value)&&e.value.trim()&&U(u).warning("请输入有效的IP地址格式")}},null,8,["modelValue","onUpdate:modelValue","onInput","onBlur"]),x(g,{type:"danger",icon:"minus",circle:"",size:"small",onClick:l=>{return a=e.id,void(de.value.length<=1?u.warning("至少需要保留一个IP黑名单配置"):(de.value=de.value.filter(e=>e.id!==a),ee("ip_black_list")));var a}},null,8,["onClick"])]))),128)),x(g,{type:"primary",icon:"plus",size:"small",style:{"margin-top":"10px"},onClick:pe},{default:w(()=>[...r[10]||(r[10]=[k(" 添加IP地址 ",-1)])]),_:1}),r[11]||(r[11]=P("div",{class:"text-xs text-gray-500 mt-2"}," 配置说明:添加到黑名单的IP地址将无法访问系统,支持单个IP配置。 ",-1))])]),_:2},1032,["label"])]))),128))]),_:1},8,["model"])]),_:1}),x(f,{label:"演示环境配置",name:"demo"},{default:w(()=>[x(m,{model:Y,"label-suffix":":","label-width":"auto","label-position":"right"},{default:w(()=>[x(_,null,{default:w(()=>[...r[12]||(r[12]=[k("演示环境配置",-1)])]),_:1}),(b(!0),V(D,null,I(ge.value,(e,l)=>(b(),V("div",{key:l},[x(v,{label:e.config_name},{default:w(()=>["demo_enable"===l?(b(),V(D,{key:0},[x(C,{"inline-prompt":"","active-text":"启用","inactive-text":"禁用","model-value":"true"===e.config_value,"onUpdate:modelValue":a=>{e.config_value=a?"true":"false",ee(l)}},null,8,["model-value","onUpdate:modelValue"]),r[13]||(r[13]=P("div",{class:"text-xs text-gray-500 mt-1"}," 配置说明:启用后系统将进入演示模式,部分功能可能受限。 ",-1))],64)):"ip_white_list"===l?(b(),V("div",$,[(b(!0),V(D,null,I(ce.value,e=>(b(),V("div",{key:e.id,class:"flex items-center gap-2"},[x(p,{modelValue:e.value,"onUpdate:modelValue":l=>e.value=l,placeholder:"192.168.1.1",clearable:"",style:{flex:"1"},onInput:e=>ee(l),onBlur:l=>{!H(e.value)&&e.value.trim()&&U(u).warning("请输入有效的IP地址格式")}},null,8,["modelValue","onUpdate:modelValue","onInput","onBlur"]),x(g,{type:"danger",icon:"minus",circle:"",size:"small",onClick:l=>{return a=e.id,void(ce.value.length<=1?u.warning("至少需要保留一个IP白名单配置"):(ce.value=ce.value.filter(e=>e.id!==a),ee("ip_white_list")));var a}},null,8,["onClick"])]))),128)),x(g,{type:"primary",icon:"plus",size:"small",style:{"margin-top":"10px"},onClick:ve},{default:w(()=>[...r[14]||(r[14]=[k(" 添加IP地址 ",-1)])]),_:1}),r[15]||(r[15]=P("div",{class:"text-xs text-gray-500 mt-2"}," 配置说明:演示模式下,只有白名单中的IP地址可以访问系统,支持单个IP配置。 ",-1))])):(b(),h(p,{key:2,modelValue:e.config_value,"onUpdate:modelValue":l=>e.config_value=l,placeholder:U(W)("common.inputText"),clearable:"",style:{width:"100%"},onInput:e=>ee(l)},null,8,["modelValue","onUpdate:modelValue","placeholder","onInput"]))]),_:2},1032,["label"])]))),128))]),_:1},8,["model"])]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["modelValue","size"])}}}),[["__scopeId","data-v-2de5db6a"]]);export{M as default};