import{d as U,b as a,i as v,w as u,e as m,c as _,U as N,V as j,t as k,g as S,f as g,n as V,a0 as F,a1 as H,j as d,Z as K,r as C,T as O,o as A,k as B,E as x}from"./index-BYp6OBwf.js";import{_ as J}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{b as R,u as L,c as W}from"./admin-QG1MRyaa.js";import"./index-CMW9Tl_L.js";const Z={class:"config-group-header"},Q={class:"config-group-title"},X={key:0,class:"config-group-desc"},Y={class:"config-items"},P={class:"config-item-info"},ee={class:"config-item-name"},te={key:0,class:"config-item-stage"},oe={class:"config-item-control"},ne={class:"config-json-preview"},se=U({__name:"ConfigGroup",props:{group:{},icon:{},iconColor:{},groupDescription:{},statusTag:{},itemStage:{}},emits:["update","edit"],setup(n){function f(i){return i.length>40?i.substring(0,40)+"...":i}return(i,r)=>{const p=d("el-icon"),b=d("el-tag"),h=d("el-switch"),w=d("el-input-number"),y=d("el-button"),s=d("el-card");return a(),v(s,{class:"config-group-card",shadow:"never"},{header:u(()=>[m("div",Z,[m("div",Q,[n.icon?(a(),v(p,{key:0,size:16,style:F({color:n.iconColor||"var(--accent)",marginRight:"6px"})},{default:u(()=>[(a(),v(H(n.icon)))]),_:1},8,["style"])):S("",!0),V(" "+k(n.group.name),1)]),n.statusTag?(a(),v(b,{key:0,type:n.statusTag.type,size:"small"},{default:u(()=>[V(k(n.statusTag.text),1)]),_:1},8,["type"])):S("",!0)]),n.groupDescription?(a(),_("div",X,k(n.groupDescription),1)):S("",!0)]),default:u(()=>[m("div",Y,[(a(!0),_(N,null,j(n.group.items,o=>(a(),_("div",{key:o.key,class:"config-item"},[m("div",P,[m("span",ee,k(o.description),1),n.itemStage?(a(),_("span",te,k(n.itemStage),1)):S("",!0)]),m("div",oe,[o.value_type==="boolean"?(a(),v(h,{key:0,"model-value":o.value==="true",onChange:l=>i.$emit("update",o.key,l?"true":"false")},null,8,["model-value","onChange"])):o.value_type==="number"?(a(),v(w,{key:1,"model-value":Number(o.value),min:0,max:999,size:"small","controls-position":"right",onChange:l=>i.$emit("update",o.key,String(l??0)),style:{width:"120px"}},null,8,["model-value","onChange"])):(a(),_(N,{key:2},[m("code",ne,k(f(o.value)),1),g(y,{size:"small",text:"",type:"primary",onClick:l=>i.$emit("edit",o)},{default:u(()=>[...r[0]||(r[0]=[V(" 编辑 ",-1)])]),_:1},8,["onClick"])],64))])]))),128))])]),_:1})}}}),ae=J(se,[["__scopeId","data-v-fdfcb9b4"]]),ie=K("config",()=>{const n=C([]),f=C(!1),i=C(""),r=C([]),p=O(()=>n.value.flatMap(s=>s.items));function b(s){return p.value.find(o=>o.key===s)}async function h(){f.value=!0;try{const s=await R();n.value=s.data.data.groups}catch(s){console.error("加载配置失败:",s)}finally{f.value=!1}}async function w(s,o){try{const D=(await L(s,o)).data.data;for(const $ of n.value){const t=$.items.find(e=>e.key===s);if(t){t.value=o;break}}return!0}catch(l){return console.error("更新配置失败:",l),!1}}async function y(s,o=20){i.value=s;try{const l=await W(s,o);r.value=l.data.data.items}catch(l){console.error("加载变更历史失败:",l)}}return{groups:n,loading:f,historyKey:i,historyItems:r,allConfigs:p,getConfigByKey:b,loadConfigs:h,updateConfigValue:w,loadHistory:y}}),le={class:"configs-page"},re={key:0,class:"loading-state"},ce={key:1,class:"feature-grid"},ue=U({__name:"Configs",setup(n){const f=ie(),i=C(!1),r=C(null),p=C("");A(()=>{f.loadConfigs()});async function b(t,e){await f.updateConfigValue(t,e)?x.success("配置已更新"):x.error("配置更新失败")}function h(t){r.value=t,p.value=t.value,i.value=!0}async function w(){if(!r.value)return;await f.updateConfigValue(r.value.key,p.value)?(x.success("配置已更新"),i.value=!1):x.error("配置更新失败")}const y={ai_:{icon:"Cpu",iconColor:"var(--accent)",desc:"Dify Agent + RAGFlow 检索增强,员工自助咨询"},manual_:{icon:"Headset",iconColor:"var(--success)",desc:"员工可摇铃呼叫坐席,坐席手动接单"},queue_:{icon:"Clock",iconColor:"var(--warning)",desc:"坐席全忙时排队等待,支持优先级排序"},satisfaction_:{icon:"Star",iconColor:"#fbbf24",desc:"会话结束后推送评价,统计满意度趋势"},emergency_:{icon:"WarningFilled",iconColor:"var(--danger)",desc:"系统维护时降级,引导员工走企微原生通道"},keyword_:{icon:"Key",iconColor:"var(--accent)",desc:"转人工/情绪关键词,JSON 格式存储"}};function s(t){var e;return((e=y[t])==null?void 0:e.icon)||"Setting"}function o(t){var e;return((e=y[t])==null?void 0:e.iconColor)||"var(--accent)"}function l(t){var e;return((e=y[t])==null?void 0:e.desc)||""}function D(t){if(t==="ai_"||t==="manual_"||t==="keyword_")return{type:"success",text:"已启用"};if(t==="queue_"||t==="satisfaction_")return{type:"warning",text:"阶段二"};if(t==="emergency_")return{type:"danger",text:"当前关闭"}}function $(t){if(t==="queue_"||t==="satisfaction_")return"阶段二"}return(t,e)=>{var z;const E=d("el-skeleton"),I=d("el-input"),G=d("el-form-item"),T=d("el-button"),M=d("el-form"),q=d("el-dialog");return a(),_("div",le,[e[5]||(e[5]=m("div",{class:"page-title"},"功能开关 / 参数",-1)),e[6]||(e[6]=m("div",{class:"page-desc"},"按阶段控制功能开放,运行时切换无需改代码。配置变更即时生效,支持回滚。",-1)),B(f).loading?(a(),_("div",re,[g(E,{rows:8,animated:""})])):(a(),_("div",ce,[(a(!0),_(N,null,j(B(f).groups,c=>(a(),v(ae,{key:c.key_prefix,group:c,icon:s(c.key_prefix),"icon-color":o(c.key_prefix),"group-description":l(c.key_prefix),"status-tag":D(c.key_prefix),"item-stage":$(c.key_prefix),onUpdate:b,onEdit:h},null,8,["group","icon","icon-color","group-description","status-tag","item-stage"]))),128))])),g(q,{modelValue:i.value,"onUpdate:modelValue":e[2]||(e[2]=c=>i.value=c),title:"编辑配置 — "+((z=r.value)==null?void 0:z.description),width:"560px","destroy-on-close":""},{default:u(()=>[r.value?(a(),v(M,{key:0,"label-position":"top"},{default:u(()=>[g(G,{label:"配置键"},{default:u(()=>[g(I,{"model-value":r.value.key,disabled:""},null,8,["model-value"])]),_:1}),g(G,{label:"配置值(JSON 格式)"},{default:u(()=>[g(I,{modelValue:p.value,"onUpdate:modelValue":e[0]||(e[0]=c=>p.value=c),type:"textarea",rows:8,placeholder:"请输入合法的 JSON 值"},null,8,["modelValue"])]),_:1}),g(G,null,{default:u(()=>[g(T,{type:"primary",onClick:w},{default:u(()=>[...e[3]||(e[3]=[V("保存变更",-1)])]),_:1}),g(T,{onClick:e[1]||(e[1]=c=>i.value=!1)},{default:u(()=>[...e[4]||(e[4]=[V("取消",-1)])]),_:1})]),_:1})]),_:1})):S("",!0)]),_:1},8,["modelValue","title"])])}}}),me=J(ue,[["__scopeId","data-v-f5be3c67"]]);export{me as default};