import{g as Ce,o as n,c as o,F as v,a as e,r as h,d as N,t as d,l as g,n as z,A as E,_ as Se,j as We,k as c,p as ie,G as B,m as y,q as O,v as Ve,s as x,x as Ue,J as R,B as ee,D as Xe}from"./CfpW9SkI.js";import{u as Ye}from"./DSu8q42f.js";import{u as Qe}from"./CMwGY1Mu.js";import"./DL330dAC.js";const $e=[{code:"zh-CN",name:"中文(简体)"},{code:"zh-TW",name:"中文(繁体)"},{code:"zh-HK",name:"中文(香港)"},{code:"yue-HK",name:"粤语"},{code:"en-US",name:"英语(美国)"},{code:"en-GB",name:"英语(英国)"},{code:"ja-JP",name:"日语"},{code:"ko-KR",name:"韩语"},{code:"id-ID",name:"印尼语"},{code:"es-ES",name:"西班牙语(西)"},{code:"es-MX",name:"西班牙语(墨)"},{code:"pt-BR",name:"葡萄牙语(巴西)"},{code:"pt-PT",name:"葡萄牙语(葡)"},{code:"de-DE",name:"德语"},{code:"fr-FR",name:"法语"},{code:"it-IT",name:"意大利语"},{code:"nl-NL",name:"荷兰语"},{code:"pl-PL",name:"波兰语"},{code:"ru-RU",name:"俄语"},{code:"uk-UA",name:"乌克兰语"},{code:"tr-TR",name:"土耳其语"},{code:"vi-VN",name:"越南语"},{code:"th-TH",name:"泰语"},{code:"ms-MY",name:"马来语"},{code:"fil-PH",name:"菲律宾语"},{code:"ar-SA",name:"阿拉伯语"}];function Ze(M){const D=$e.find(w=>w.code===M);return D?D.name:M}const et={class:"lang-select"},tt={class:"lang-chip-name"},lt=["onClick"],st={key:0,class:"lang-empty"},nt={key:0,class:"lang-dd"},ot={class:"lang-dd-sum"},at={class:"lang-dd-panel"},dt=["checked","onChange"],it={class:"lang-opt-code"},ut={class:"lang-opt-name"},ct=["value","disabled"],rt=["value"],pt=Ce({__name:"LangSelect",props:{modelValue:{},multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},options:{default:void 0}},emits:["update:modelValue"],setup(M,{emit:D}){const w=M,V=D,W=E(()=>w.options&&w.options.length?w.options:$e),U=E(()=>(w.modelValue||"").split(",").map(T=>T.trim()).filter(Boolean));function S(T){return Ze(T)}function $(T){if(w.disabled)return;const j=U.value.slice(),m=j.indexOf(T);m>=0?j.splice(m,1):j.push(T),V("update:modelValue",j.join(","))}function H(T){V("update:modelValue",T.target.value)}return(T,j)=>(n(),o("div",et,[M.multiple?(n(),o(v,{key:0},[e("div",{class:z(["lang-chips",{"lang-disabled":M.disabled}])},[(n(!0),o(v,null,h(U.value,m=>(n(),o("span",{key:m,class:"lang-chip"},[N(d(m),1),e("span",tt,d(S(m)),1),e("button",{type:"button",class:"lang-x",onClick:X=>$(m)},"×",8,lt)]))),128)),U.value.length?g("",!0):(n(),o("span",st,"未选择语言"))],2),M.disabled?g("",!0):(n(),o("details",nt,[e("summary",ot,"+ 选择语言(已选 "+d(U.value.length)+")",1),e("div",at,[(n(!0),o(v,null,h(W.value,m=>(n(),o("label",{key:m.code,class:"lang-opt"},[e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary",checked:U.value.includes(m.code),onChange:X=>$(m.code)},null,40,dt),e("span",it,d(m.code),1),e("span",ut,d(m.name),1)]))),128))])]))],64)):(n(),o("select",{key:1,class:"select select-bordered select-sm w-full text-xs",value:M.modelValue,disabled:M.disabled,onChange:H},[j[0]||(j[0]=e("option",{value:""},"(未设置)",-1)),(n(!0),o(v,null,h(W.value,m=>(n(),o("option",{key:m.code,value:m.code},d(m.code)+" · "+d(m.name),9,rt))),128))],40,ct))]))}}),vt=Object.assign(Se(pt,[["__scopeId","data-v-4903af59"]]),{__name:"LangSelect"}),mt={key:0,class:"mb-4 rounded-lg px-4 py-3 text-sm",style:{background:"#fffbeb",border:"1px solid #fde68a",color:"#92400e"}},bt={class:"flex items-center justify-between mb-5"},xt={class:"flex items-center gap-3"},yt=["value"],_t=["value"],ht={class:"flex gap-4",style:{"align-items":"flex-start"}},gt={style:{width:"248px","flex-shrink":"0"}},kt={class:"flex flex-col gap-2"},ft=["onClick"],wt={style:{"min-width":"0",flex:"1"}},Vt={class:"flex items-center gap-2"},Ut={class:"font-semibold text-slate-800 text-sm truncate"},Ct={class:"flex flex-wrap gap-1 mt-1 items-center"},St={key:0,class:"provider-chip"},$t={key:1,class:"lock-badge"},Tt={key:0,class:"text-xs text-slate-400 text-center py-8"},At={class:"flex-1 min-w-0"},Mt={class:"bg-white rounded-2xl border border-slate-100 shadow-sm p-6"},zt={key:0,class:"text-center text-slate-300 py-20"},Dt={class:"flex items-center justify-between mb-5"},jt={class:"flex items-center gap-3"},Ft={class:"text-base font-semibold text-slate-800"},Nt={class:"text-xs text-slate-400 mt-0.5"},Lt={key:0},Rt={class:"flex gap-2"},It={class:"grid grid-cols-2 gap-4 mb-4"},Bt={class:"form-control"},Ot={class:"form-control"},Et={class:"form-control mb-4"},Ht={class:"mb-4"},Pt={class:"text-xs text-slate-500 ml-2"},Gt={key:0,class:"text-xs text-slate-400 py-4 text-center"},Jt={key:1,class:"overflow-x-auto"},Kt={class:"table text-xs"},qt=["onUpdate:modelValue","title"],Wt=["onUpdate:modelValue"],Xt={class:"text-center"},Yt=["onUpdate:modelValue"],Qt={class:"relative"},Zt=["type","onUpdate:modelValue"],el=["onClick"],tl=["onUpdate:modelValue"],ll=["onClick"],sl={class:"wizard-steps mb-5"},nl={key:0},ol={key:0},al={class:"type-grid"},dl=["onClick"],il={class:"text-sm text-slate-700 mt-2"},ul={class:"flex items-center justify-between mb-3"},cl={class:"text-sm text-slate-500"},rl={class:"type-grid"},pl=["onClick"],vl={class:"provider-chip"},ml={class:"text-sm text-slate-700 mt-2"},bl={class:"text-[11px] text-slate-400 mt-0.5"},xl={key:0,class:"text-xs text-slate-400 mt-2"},yl={class:"flex items-center justify-between mb-3"},_l={class:"flex items-center gap-2"},hl={key:0,class:"provider-chip"},gl={class:"flex gap-2"},kl={class:"grid grid-cols-2 gap-4 mb-4"},fl={class:"form-control"},wl={class:"form-control"},Vl={class:"grid grid-cols-2 gap-4 mb-4"},Ul={class:"form-control"},Cl={class:"form-control"},Sl={class:"form-control mb-4"},$l={key:0,class:"text-xs text-slate-400 py-4 text-center"},Tl={key:1,class:"overflow-x-auto"},Al={class:"table text-xs"},Ml=["onUpdate:modelValue","title"],zl=["onUpdate:modelValue"],Dl={class:"text-center"},jl=["onUpdate:modelValue"],Fl={class:"relative"},Nl=["type","onUpdate:modelValue"],Ll=["onClick"],Rl=["onUpdate:modelValue"],Il=["onClick"],Bl={key:0,class:"text-center py-10 text-slate-400"},Ol={class:"flex items-center justify-between mb-5"},El={class:"flex items-center gap-3"},Hl={class:"text-base font-semibold text-slate-800"},Pl={class:"badge badge-warning badge-sm mt-0.5"},Gl={class:"rounded-lg px-3 py-2 mb-4 text-xs",style:{background:"#fefce8",border:"1px solid #fde047",color:"#854d0e"}},Jl={class:"overflow-x-auto"},Kl={class:"table text-xs"},ql=["title"],Wl={class:"text-slate-500"},Xl={class:"text-center"},Yl={key:0,class:"disabled-badge"},Ql={key:1,class:"override-badge"},Zl={key:2,class:"inherit-badge"},es={class:"text-center"},ts=["onUpdate:modelValue"],ls={class:"relative"},ss=["type","onUpdate:modelValue","disabled"],ns=["onClick"],os=["onUpdate:modelValue","disabled","placeholder"],as={key:0},ds={class:"divider text-xs text-slate-400 my-3"},is={key:0,class:"text-xs text-slate-400 py-2 text-center"},us={key:1,class:"overflow-x-auto"},cs={class:"table text-xs"},rs=["onUpdate:modelValue","title"],ps=["onUpdate:modelValue"],vs={class:"text-center"},ms=["onUpdate:modelValue"],bs={class:"relative"},xs=["type","onUpdate:modelValue"],ys=["onClick"],_s=["onUpdate:modelValue"],hs=["onClick"],gs={class:"sync-overlay"},ks={class:"sync-box"},fs={class:"flex items-start gap-3 mb-4"},ws={style:{width:"42px",height:"42px",background:"linear-gradient(135deg,#4f46e5,#7c3aed)","border-radius":"13px",display:"flex","align-items":"center","justify-content":"center","flex-shrink":"0"}},Vs={style:{width:"20px",height:"20px",color:"#fff"},fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},Us={class:"text-xs text-slate-400 mt-1"},Cs=["innerHTML"],Ss={class:"flex items-center justify-between mb-1"},$s={class:"flex gap-2"},Ts={class:"sync-region-grid"},As=["onClick"],Ms=["checked","onClick"],zs={class:"sync-overlay"},Ds={class:"tpl-box"},js={class:"flex items-center justify-between mb-4"},Fs={class:"flex gap-2"},Ns={class:"tpl-list"},Ls={class:"text-xs font-semibold text-slate-500 mb-1"},Rs={style:{"min-width":"0",flex:"1"}},Is={class:"flex items-center gap-2"},Bs={class:"font-semibold text-sm text-slate-800 truncate"},Os={class:"provider-chip"},Es={key:0,class:"badge badge-xs badge-ghost"},Hs={class:"text-xs text-slate-400 mt-0.5"},Ps={class:"flex gap-1"},Gs=["onClick"],Js=["onClick"],Ks={key:0,class:"text-xs text-slate-400 text-center py-6"},qs={class:"flex items-center justify-between mb-4"},Ws={class:"text-base font-semibold text-slate-800"},Xs={class:"flex gap-2"},Ys={class:"grid grid-cols-2 gap-3 mb-3"},Qs={class:"form-control"},Zs=["disabled"],en={class:"form-control"},tn=["value"],ln={class:"form-control"},sn={class:"form-control"},nn={class:"form-control mb-3"},on={class:"overflow-x-auto",style:{"max-height":"34vh"}},an={class:"table text-xs"},dn=["onUpdate:modelValue","title"],un=["onUpdate:modelValue"],cn={class:"text-center"},rn=["onUpdate:modelValue"],pn=["onUpdate:modelValue"],vn=["onClick"],mn={key:0},bn=Ce({__name:"serviceconfig",setup(M){const D=[{value:1,label:"中国"},{value:2,label:"美国"},{value:3,label:"东亚"},{value:4,label:"东南亚"},{value:5,label:"南亚"},{value:6,label:"中东"},{value:7,label:"欧洲"},{value:8,label:"俄罗斯"},{value:9,label:"非洲"},{value:10,label:"南美"},{value:11,label:"北美"},{value:12,label:"大洋洲"},{value:13,label:"巴西"},{value:14,label:"印度"}],w=[{v:1,label:"STT 语音识别",short:"STT",color:"#0369a1",bg:"#dbeafe"},{v:2,label:"TTS 语音合成",short:"TTS",color:"#7c3aed",bg:"#ede9fe"},{v:3,label:"MT 机器翻译",short:"MT",color:"#059669",bg:"#dcfce7"},{v:4,label:"AST 端到端翻译",short:"AST",color:"#c2410c",bg:"#fff7ed"},{v:5,label:"LLM 大语言",short:"LLM",color:"#b45309",bg:"#fef9c3"},{v:7,label:"STS 端到端对话",short:"STS",color:"#be185d",bg:"#fce7f3"},{v:6,label:"存储 OSS/COS",short:"存储",color:"#475569",bg:"#f1f5f9"}],{webApi:V,consoleApi:W}=Ye(),{success:U,error:S}=Qe(),$=x(""),H=x([]);async function T(){try{const s=await W("products/list",{});H.value=(s??[]).map(l=>l.name).filter(Boolean)}catch{H.value=[]}}function j(){p.value=null,C.value="empty",Y()}function m(s){return w.find(l=>l.v===s)||{short:"?",color:"#999",bg:"#eee",v:0,label:""}}function X(s){return(s||"").split(",").map(l=>parseInt(l)||0).filter(l=>l>0)}function ue(s){return(s.fields||[]).filter(l=>l.encrypted).length}const te=x(!0),P=x([]),p=x(null),A=x(0),C=x("empty"),i=Ue({id:"",name:"",provider:"",description:"",enable:!1}),_=x(0),f=x([]),G=x(""),k=x(1),J=x([]),I=x([]),le=x(!1),K=x([]),se=E(()=>{const s=D.find(l=>l.value===A.value);return s?s.label:"区域"+A.value}),Te=E(()=>w.map(s=>({cat:s.v,label:s.label,items:K.value.filter(l=>l.category===s.v)})).filter(s=>s.items.length));async function Y(){try{const s=await V("getsvcconfigs",{app_name:$.value});P.value=s?.items??[],te.value=!0}catch{te.value=!1,P.value=[];return}if(p.value){const s=P.value.find(l=>l.id===p.value.id);s&&Q(s)}}async function ne(){try{const s=await V("getsvctemplates",{});K.value=s?.items??[]}catch{K.value=[]}}function Ae(){p.value?Q(p.value):C.value!=="new"&&(C.value="empty")}function Q(s){s&&(p.value=s,A.value===0?Me():Fe())}function Me(){const s=p.value;i.id=s.id,i.name=s.name||"",i.provider=s.provider||"",i.description=s.description||"",i.enable=!!s.enable,_.value=X(s.categories)[0]||0,f.value=JSON.parse(JSON.stringify(s.fields||[])).map(l=>({...l,_show:!1})),C.value="default"}function ze(){p.value=null,i.id="",i.name="",i.provider="",i.description="",i.enable=!1,_.value=0,f.value=[],G.value="",k.value=1,C.value="new"}const ce=E(()=>K.value.filter(s=>s.category===_.value));function De(s){_.value!==s&&(_.value=s,G.value="",i.provider="",f.value=[]),k.value=2}function re(s){s?(G.value=s.id,i.provider=s.provider||"",i.name||(i.name=s.name||""),i.id||(i.id=s.id||""),i.description||(i.description=s.description||""),f.value=(s.fields||[]).map(l=>({key:l.key,description:l.description,type:l.type||"",encrypted:!!l.encrypted,def_value:l.def_value||"",sort:l.sort,_show:!1}))):(G.value="",i.provider="",f.value=[]),k.value=3}function je(){p.value?Q(p.value):C.value="empty"}function pe(){f.value.push({key:"",description:"",encrypted:!1,def_value:"",sort:f.value.length,_show:!1})}function ve(s){f.value.splice(s,1),f.value.forEach((l,r)=>{l.sort=r})}async function Fe(){const s=p.value;le.value=!0,C.value="region";try{const r=(await V("getsvcregionoverride",{app_name:$.value,svc_id:s.id,region:A.value}))?.fields??[];J.value=r.filter(t=>!t.region_only).map(t=>({key:t.key,description:t.description,type:t.type||"",encrypted:!!t.encrypted,is_overridden:!!t.is_overridden,disabled:!!t.disabled,value:t.value||"",_input:t.encrypted?"":t.is_overridden&&t.value||"",_show:!1})),I.value=r.filter(t=>t.region_only).map(t=>({key:t.key,description:t.description,encrypted:!!t.encrypted,_input:t.encrypted?"":t.value||"",_show:!1}))}catch(l){S(l?.message??"加载区域分叉失败"),J.value=[],I.value=[]}finally{le.value=!1}}function Ne(){I.value.push({key:"",description:"",encrypted:!1,_input:"",_show:!1})}function Le(s){I.value.splice(s,1)}function Re(s){const l={name:i.name||"",provider:i.provider||"",description:i.description||"",categories:_.value?String(_.value):"",enable:i.enable||!1,fields:f.value.map(r=>({key:r.key,description:r.description,type:r.type||"",encrypted:r.encrypted,def_value:r.def_value,sort:r.sort}))};return s?l.id=i.id||"":l.id=p.value.id,l.app_name=$.value,l}function Ie(){const s={},l=[];J.value.forEach(t=>{s[t.key]=t._input||"",t.disabled&&l.push(t.key)});const r=I.value.filter(t=>(t.key||"").trim()).map((t,u)=>({key:t.key.trim(),description:t.description,encrypted:t.encrypted,def_value:t._input||"",sort:u}));return{overrides:s,disabled_keys:l,extra_fields:r}}async function me(s){const l=s||!p.value;if(A.value===0){const r=Re(l);if(!r.id||!r.name)return S("服务ID 和名称 必填"),!1;const t=l?"addsvcconfig":"updatesvcconfig";try{const u=await V(t,r);return p.value=u,await Y(),U("保存成功"),!0}catch(u){return S(u?.message??"保存失败"),!1}}else{const{overrides:r,disabled_keys:t,extra_fields:u}=Ie();try{return await V("savesvcregionoverride",{app_name:$.value,svc_id:p.value.id,region:A.value,overrides:r,disabled_keys:t,extra_fields:u}),U("区域分叉已保存"),!0}catch(a){return S(a?.message??"保存失败"),!1}}}async function Be(){if(p.value&&window.confirm("确定删除服务「"+p.value.name+"」及其所有区域分叉?")){try{await V("delsvcconfig",{app_name:$.value,id:p.value.id})}catch(s){S(s?.message??"删除失败");return}p.value=null,U("已删除"),await Y(),C.value="empty"}}const oe=x(!1),ae=x(!1),be=x(""),xe=x(""),L=x([]),ye=E(()=>D.filter(s=>s.value!==A.value));function de(s){ae.value=s;const l=p.value?p.value.name:i.name||"新服务",r=A.value===0;be.value=r?"「"+l+"」默认配置将保存,可同步推送到其他区域。":"「"+l+"」在当前区域的字段分叉将保存,可同步到其他区域。",xe.value=r?"✦ 同步内容:各字段默认值推送为目标区域「覆盖值」,目标区域原有分叉将被替换。":"✦ 同步内容:当前区域的值覆盖 / 区域专属字段 / 停用字段整体复制到目标区域。",L.value=[],oe.value=!0}function _e(s){const l=L.value.indexOf(s);l>=0?L.value.splice(l,1):L.value.push(s)}function he(s){L.value=s?ye.value.map(l=>l.value):[]}function ge(){oe.value=!1}async function Oe(){ge(),await me(ae.value)}async function Ee(){const s=L.value.slice();if(ge(),!await me(ae.value)||!s.length)return;const r=p.value?p.value.id:null;if(!r)return;let t=0;try{t=(await V("syncsvctoregins",{app_name:$.value,svc_id:r,src_region:A.value,target_regions:s}))?.synced??0}catch(a){S(a?.message??"同步失败");return}const u=s.map(a=>{const we=D.find(qe=>qe.value===a);return we?we.label:"区域"+a});U("已保存并同步到:"+u.join("、")+"("+t+" 个)")}const ke=x(!1),Z=x("list"),q=x(!1),b=Ue({id:"",category:2,provider:"",name:"",description:""}),F=x([]);function He(){ke.value=!1}function fe(s){s?(q.value=!0,b.id=s.id,b.category=s.category||2,b.provider=s.provider||"",b.name=s.name||"",b.description=s.description||"",F.value=(s.fields||[]).map(l=>({key:l.key,description:l.description,type:l.type||"",encrypted:!!l.encrypted,def_value:l.def_value||"",sort:l.sort}))):(q.value=!1,b.id="",b.category=2,b.provider="",b.name="",b.description="",F.value=[]),Z.value="form"}function Pe(){F.value.push({key:"",description:"",encrypted:!1,def_value:"",sort:F.value.length})}function Ge(s){F.value.splice(s,1),F.value.forEach((l,r)=>{l.sort=r})}async function Je(){if(!b.id.trim()||!b.name.trim()||!b.provider.trim()){S("模板ID / 展示名 / 服务商标识 必填");return}const s={id:b.id.trim(),category:Number(b.category)||0,provider:b.provider.trim(),name:b.name.trim(),description:b.description.trim(),fields:F.value.map((l,r)=>({key:l.key,description:l.description,type:l.type||"",encrypted:l.encrypted,def_value:l.def_value,sort:r}))};try{await V(q.value?"updatesvctemplate":"addsvctemplate",s)}catch(l){S(l?.message??"保存失败");return}U("模板已保存"),await ne(),Z.value="list"}async function Ke(s){if(window.confirm("确定删除模板「"+s.name+"」?"+(s.builtin?"(内置模板下次启动会被重新补回)":""))){try{await V("delsvctemplate",{id:s.id})}catch(l){S(l?.message??"删除失败");return}U("已删除"),await ne()}}return We(()=>{T(),Y(),ne()}),(s,l)=>{const r=vt;return n(),o("div",null,[te.value?g("",!0):(n(),o("div",mt," ⚠ 「第三方服务配置」后端接口暂不可用(连接失败),请检查 console 服务是否运行。 ")),e("div",bt,[l[29]||(l[29]=e("div",null,[e("h2",{class:"text-lg font-semibold text-slate-800"},"第三方服务配置"),e("p",{class:"text-xs text-slate-400 mt-1"},[N("按服务类型分组管理已接入的第三方服务(火山引擎、阿里云、Azure 等)。默认展示"),e("b",null,"全局默认"),N("配置,可切换到具体应用;区域默认"),e("b",null,"中国"),N(",切换区域可为该区域覆盖字段值。")])],-1)),e("div",xt,[c(e("select",{"onUpdate:modelValue":l[0]||(l[0]=t=>$.value=t),class:"select select-bordered select-sm",onChange:j},[l[27]||(l[27]=e("option",{value:""},"全局默认",-1)),(n(!0),o(v,null,h(H.value,t=>(n(),o("option",{key:t,value:t},"应用:"+d(t),9,yt))),128))],544),[[ie,$.value]]),c(e("select",{"onUpdate:modelValue":l[1]||(l[1]=t=>A.value=t),class:"select select-bordered select-sm",onChange:Ae},[(n(),o(v,null,h(D,t=>e("option",{key:t.value,value:t.value},d(t.label),9,_t)),64)),l[28]||(l[28]=e("option",{value:0},"默认(全区域)",-1))],544),[[ie,A.value,void 0,{number:!0}]]),e("button",{class:"btn btn-primary btn-sm text-white",onClick:ze},"+ 添加服务")])]),e("div",ht,[e("div",gt,[e("div",kt,[(n(!0),o(v,null,h(P.value,t=>(n(),o("div",{key:t.id,class:z(["svc-item",{active:p.value&&p.value.id===t.id}]),onClick:u=>Q(t)},[e("div",{class:"svc-logo",style:B({background:t.color||"#6366f1"})},d(t.icon||(t.name||"").charAt(0)),5),e("div",wt,[e("div",Vt,[e("span",Ut,d(t.name),1),e("span",{class:z(["badge badge-xs",t.enable?"badge-success":"badge-ghost"])},d(t.enable?"启用":"停用"),3)]),e("div",Ct,[t.provider?(n(),o("span",St,d(t.provider),1)):g("",!0),(n(!0),o(v,null,h(X(t.categories),u=>(n(),o("span",{key:u,class:"cat-chip",style:B({color:m(u).color,background:m(u).bg})},d(m(u).short),5))),128)),ue(t)?(n(),o("span",$t,"🔒"+d(ue(t)),1)):g("",!0)])])],10,ft))),128)),P.value.length?g("",!0):(n(),o("p",Tt,"暂无服务"))])]),e("div",At,[e("div",Mt,[C.value==="empty"?(n(),o("div",zt,[...l[30]||(l[30]=[e("div",{class:"text-5xl mb-3"},"⚙️",-1),e("p",{class:"text-sm"},"从左侧选择一个服务开始配置",-1)])])):C.value==="default"&&p.value?(n(),o(v,{key:1},[e("div",Dt,[e("div",jt,[e("div",{class:"svc-logo",style:B({background:p.value.color||"#6366f1",width:"44px",height:"44px",fontSize:"20px"})},d(p.value.icon||(p.value.name||"").charAt(0)),5),e("div",null,[e("h3",Ft,d(p.value.name),1),e("p",Nt,[N(d(p.value.id),1),i.provider?(n(),o("span",Lt," · 服务商 "+d(i.provider),1)):g("",!0)])])]),e("div",Rt,[e("button",{class:"btn btn-error btn-sm btn-outline",onClick:Be},"删除服务"),e("button",{class:"btn btn-primary btn-sm text-white",onClick:l[2]||(l[2]=t=>de(!1))},"保存")])]),l[38]||(l[38]=e("div",{class:"divider text-xs text-slate-400 my-3"},"基本信息",-1)),e("div",It,[e("div",Bt,[l[31]||(l[31]=e("label",{class:"label"},[e("span",{class:"label-text"},"服务名称 *")],-1)),c(e("input",{"onUpdate:modelValue":l[3]||(l[3]=t=>i.name=t),class:"input input-bordered"},null,512),[[y,i.name]])]),e("div",Ot,[l[32]||(l[32]=e("label",{class:"label"},[e("span",{class:"label-text"},"启用")],-1)),c(e("input",{"onUpdate:modelValue":l[4]||(l[4]=t=>i.enable=t),type:"checkbox",class:"toggle toggle-primary mt-3"},null,512),[[O,i.enable]])])]),e("div",Et,[l[33]||(l[33]=e("label",{class:"label"},[e("span",{class:"label-text"},"服务描述")],-1)),c(e("input",{"onUpdate:modelValue":l[5]||(l[5]=t=>i.description=t),class:"input input-bordered"},null,512),[[y,i.description]])]),e("div",Ht,[l[34]||(l[34]=e("p",{class:"text-sm font-medium text-slate-700 mb-2"},"服务类型",-1)),_.value?(n(),o("span",{key:0,class:"cat-chip",style:B({color:m(_.value).color,background:m(_.value).bg})},d(m(_.value).short),5)):g("",!0),e("span",Pt,d(_.value?m(_.value).label:"未设置"),1),l[35]||(l[35]=e("span",{class:"text-[11px] text-slate-400 ml-2"},"(类型在创建时确定,不可更改)",-1))]),l[39]||(l[39]=e("div",{class:"divider text-xs text-slate-400 my-3"},"配置字段(全区域共用)",-1)),e("div",null,[f.value.length?(n(),o("div",Jt,[e("table",Kt,[l[37]||(l[37]=e("thead",null,[e("tr",null,[e("th",{class:"w-44"},"字段名"),e("th",null,"字段描述"),e("th",{class:"w-16 text-center"},"加密"),e("th",null,"默认值"),e("th",{class:"w-12"})])],-1)),e("tbody",null,[(n(!0),o(v,null,h(f.value,(t,u)=>(n(),o("tr",{key:u},[e("td",null,[c(e("input",{class:"field-input","onUpdate:modelValue":a=>t.key=a,placeholder:"key",title:t.key},null,8,qt),[[y,t.key]])]),e("td",null,[c(e("input",{class:"field-input","onUpdate:modelValue":a=>t.description=a,placeholder:"用途描述"},null,8,Wt),[[y,t.description]])]),e("td",Xt,[c(e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary","onUpdate:modelValue":a=>t.encrypted=a},null,8,Yt),[[O,t.encrypted]])]),e("td",null,[t.type==="langs"?(n(),R(r,{key:0,modelValue:t.def_value,"onUpdate:modelValue":a=>t.def_value=a,multiple:!0},null,8,["modelValue","onUpdate:modelValue"])):t.type==="lang"?(n(),R(r,{key:1,modelValue:t.def_value,"onUpdate:modelValue":a=>t.def_value=a},null,8,["modelValue","onUpdate:modelValue"])):t.encrypted?(n(),o(v,{key:2},[e("div",Qt,[c(e("input",{type:t._show?"text":"password",class:"field-input pr-14","onUpdate:modelValue":a=>t.def_value=a,placeholder:"留空保留原值"},null,8,Zt),[[ee,t.def_value]]),e("button",{type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-xs text-slate-400 hover:text-slate-700",onClick:a=>t._show=!t._show},d(t._show?"隐藏":"显示"),9,el)]),l[36]||(l[36]=e("span",{class:"lock-badge ml-1"},"🔒 加密",-1))],64)):c((n(),o("input",{key:3,class:"field-input","onUpdate:modelValue":a=>t.def_value=a},null,8,tl)),[[y,t.def_value]])]),e("td",null,[e("button",{class:"btn btn-ghost btn-xs text-error",onClick:a=>ve(u)},"×",8,ll)])]))),128))])])])):(n(),o("p",Gt,"尚无字段,点击下方添加")),e("button",{class:"btn btn-ghost btn-sm mt-2 text-primary",onClick:pe},"+ 添加字段")])],64)):C.value==="new"?(n(),o(v,{key:2},[e("div",{class:"flex items-center justify-between mb-4"},[l[40]||(l[40]=e("h3",{class:"text-base font-semibold text-slate-800"},"新增第三方服务",-1)),e("button",{class:"btn btn-ghost btn-sm",onClick:je},"取消")]),e("div",sl,[e("div",{class:z(["wstep",{on:k.value>=1,cur:k.value===1}]),onClick:l[6]||(l[6]=t=>k.value=1)},[l[41]||(l[41]=N("① 服务类型",-1)),_.value?(n(),o("span",nl," · "+d(m(_.value).short),1)):g("",!0)],2),l[43]||(l[43]=e("div",{class:"wline"},null,-1)),e("div",{class:z(["wstep",{on:k.value>=2,cur:k.value===2,disabled:!_.value}]),onClick:l[7]||(l[7]=t=>_.value&&(k.value=2))},[l[42]||(l[42]=N("② 服务商",-1)),i.provider?(n(),o("span",ol," · "+d(i.provider),1)):g("",!0)],2),l[44]||(l[44]=e("div",{class:"wline"},null,-1)),e("div",{class:z(["wstep",{on:k.value>=3,cur:k.value===3,disabled:k.value<3}])},"③ 配置",2)]),k.value===1?(n(),o(v,{key:0},[l[45]||(l[45]=e("p",{class:"text-sm text-slate-500 mb-3"},"请选择要接入的服务类型(每个服务归属单一类型,独立配置):",-1)),e("div",al,[(n(),o(v,null,h(w,t=>e("div",{key:t.v,class:z(["type-card",{on:_.value===t.v}]),onClick:u=>De(t.v)},[e("span",{class:"cat-chip",style:B({color:t.color,background:t.bg})},d(t.short),5),e("span",il,d(t.label),1)],10,dl)),64))])],64)):k.value===2?(n(),o(v,{key:1},[e("div",ul,[e("p",cl,"为「"+d(m(_.value).label)+"」选择服务商:",1),e("button",{class:"btn btn-ghost btn-xs",onClick:l[8]||(l[8]=t=>k.value=1)},"← 上一步")]),e("div",rl,[(n(!0),o(v,null,h(ce.value,t=>(n(),o("div",{key:t.id,class:z(["type-card",{on:G.value===t.id}]),onClick:u=>re(t)},[e("span",vl,d(t.provider),1),e("span",ml,d(t.name),1),e("span",bl,d((t.fields||[]).length)+" 字段",1)],10,pl))),128)),e("div",{class:"type-card",onClick:l[9]||(l[9]=t=>re(null))},[...l[46]||(l[46]=[e("span",{class:"provider-chip",style:{background:"#f1f5f9",color:"#475569"}},"自定义",-1),e("span",{class:"text-sm text-slate-700 mt-2"},"空白自定义",-1),e("span",{class:"text-[11px] text-slate-400 mt-0.5"},"手动添加字段",-1)])])]),ce.value.length?g("",!0):(n(),o("p",xl,"该类型暂无内置模板,可选「空白自定义」,或到「服务商模板」新增。"))],64)):(n(),o(v,{key:2},[e("div",yl,[e("div",_l,[e("span",{class:"cat-chip",style:B({color:m(_.value).color,background:m(_.value).bg})},d(m(_.value).short),5),i.provider?(n(),o("span",hl,d(i.provider),1)):g("",!0)]),e("div",gl,[e("button",{class:"btn btn-ghost btn-xs",onClick:l[10]||(l[10]=t=>k.value=2)},"← 上一步"),e("button",{class:"btn btn-primary btn-sm text-white",onClick:l[11]||(l[11]=t=>de(!0))},"创建")])]),e("div",kl,[e("div",fl,[l[47]||(l[47]=e("label",{class:"label"},[e("span",{class:"label-text"},[N("服务ID * "),e("span",{class:"text-slate-400 text-xs"},"(唯一,如 tts_azure)")])],-1)),c(e("input",{"onUpdate:modelValue":l[12]||(l[12]=t=>i.id=t),class:"input input-bordered font-mono",placeholder:"tts_azure"},null,512),[[y,i.id]])]),e("div",wl,[l[48]||(l[48]=e("label",{class:"label"},[e("span",{class:"label-text"},"服务名称 *")],-1)),c(e("input",{"onUpdate:modelValue":l[13]||(l[13]=t=>i.name=t),class:"input input-bordered",placeholder:"微软 Azure TTS"},null,512),[[y,i.name]])])]),e("div",Vl,[e("div",Ul,[l[49]||(l[49]=e("label",{class:"label"},[e("span",{class:"label-text"},[N("服务商标识 "),e("span",{class:"text-slate-400 text-xs"},"(如 azure/alibaba)")])],-1)),c(e("input",{"onUpdate:modelValue":l[14]||(l[14]=t=>i.provider=t),class:"input input-bordered font-mono",placeholder:"azure"},null,512),[[y,i.provider]])]),e("div",Cl,[l[50]||(l[50]=e("label",{class:"label"},[e("span",{class:"label-text"},"启用")],-1)),c(e("input",{"onUpdate:modelValue":l[15]||(l[15]=t=>i.enable=t),type:"checkbox",class:"toggle toggle-primary mt-3"},null,512),[[O,i.enable]])])]),e("div",Sl,[l[51]||(l[51]=e("label",{class:"label"},[e("span",{class:"label-text"},"服务描述")],-1)),c(e("input",{"onUpdate:modelValue":l[16]||(l[16]=t=>i.description=t),class:"input input-bordered",placeholder:"简述该服务的用途"},null,512),[[y,i.description]])]),l[54]||(l[54]=e("div",{class:"divider text-xs text-slate-400 my-3"},"配置字段",-1)),e("div",null,[f.value.length?(n(),o("div",Tl,[e("table",Al,[l[53]||(l[53]=e("thead",null,[e("tr",null,[e("th",{class:"w-44"},"字段名"),e("th",null,"字段描述"),e("th",{class:"w-16 text-center"},"加密"),e("th",null,"默认值"),e("th",{class:"w-12"})])],-1)),e("tbody",null,[(n(!0),o(v,null,h(f.value,(t,u)=>(n(),o("tr",{key:u},[e("td",null,[c(e("input",{class:"field-input","onUpdate:modelValue":a=>t.key=a,placeholder:"key",title:t.key},null,8,Ml),[[y,t.key]])]),e("td",null,[c(e("input",{class:"field-input","onUpdate:modelValue":a=>t.description=a,placeholder:"用途描述"},null,8,zl),[[y,t.description]])]),e("td",Dl,[c(e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary","onUpdate:modelValue":a=>t.encrypted=a},null,8,jl),[[O,t.encrypted]])]),e("td",null,[t.type==="langs"?(n(),R(r,{key:0,modelValue:t.def_value,"onUpdate:modelValue":a=>t.def_value=a,multiple:!0},null,8,["modelValue","onUpdate:modelValue"])):t.type==="lang"?(n(),R(r,{key:1,modelValue:t.def_value,"onUpdate:modelValue":a=>t.def_value=a},null,8,["modelValue","onUpdate:modelValue"])):t.encrypted?(n(),o(v,{key:2},[e("div",Fl,[c(e("input",{type:t._show?"text":"password",class:"field-input pr-14","onUpdate:modelValue":a=>t.def_value=a,placeholder:"留空保留原值"},null,8,Nl),[[ee,t.def_value]]),e("button",{type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-xs text-slate-400 hover:text-slate-700",onClick:a=>t._show=!t._show},d(t._show?"隐藏":"显示"),9,Ll)]),l[52]||(l[52]=e("span",{class:"lock-badge ml-1"},"🔒 加密",-1))],64)):c((n(),o("input",{key:3,class:"field-input","onUpdate:modelValue":a=>t.def_value=a},null,8,Rl)),[[y,t.def_value]])]),e("td",null,[e("button",{class:"btn btn-ghost btn-xs text-error",onClick:a=>ve(u)},"×",8,Il)])]))),128))])])])):(n(),o("p",$l,"尚无字段,选模板自动带出或点击下方添加")),e("button",{class:"btn btn-ghost btn-sm mt-2 text-primary",onClick:pe},"+ 添加字段")])],64))],64)):C.value==="region"&&p.value?(n(),o(v,{key:3},[le.value?(n(),o("div",Bl,"加载中...")):(n(),o(v,{key:1},[e("div",Ol,[e("div",El,[e("div",{class:"svc-logo",style:B({background:p.value.color||"#6366f1",width:"44px",height:"44px",fontSize:"20px"})},d(p.value.icon||(p.value.name||"").charAt(0)),5),e("div",null,[e("h3",Hl,d(p.value.name),1),e("span",Pl,d(se.value)+" 分叉模式",1)])]),e("button",{class:"btn btn-primary btn-sm text-white",onClick:l[17]||(l[17]=t=>de(!1))},"保存分叉")]),e("div",Gl," ✦ 当前编辑「"+d(se.value)+"」的字段分叉:默认字段可覆盖值或勾选「不适用」停用;也可新增本区域专属字段。留空的覆盖字段继承默认值,加密字段留空保留已存储密文。 ",1),l[60]||(l[60]=e("p",{class:"text-sm font-medium text-slate-700 mb-2"},"默认字段",-1)),e("div",Jl,[e("table",Kl,[l[57]||(l[57]=e("thead",null,[e("tr",null,[e("th",{class:"w-44"},"字段名"),e("th",null,"字段描述"),e("th",{class:"w-24 text-center"},"状态"),e("th",{class:"w-20 text-center"},"本区域不适用"),e("th",null,"有效值")])],-1)),e("tbody",null,[(n(!0),o(v,null,h(J.value,(t,u)=>(n(),o("tr",{key:u,class:z({"opacity-50":t.disabled})},[e("td",{class:"font-mono text-slate-700 break-all",title:t.key},d(t.key),9,ql),e("td",Wl,d(t.description),1),e("td",Xl,[t.disabled?(n(),o("span",Yl,"停用")):t.is_overridden?(n(),o("span",Ql,"覆盖")):(n(),o("span",Zl,"继承"))]),e("td",es,[c(e("input",{type:"checkbox",class:"checkbox checkbox-xs","onUpdate:modelValue":a=>t.disabled=a},null,8,ts),[[O,t.disabled]])]),e("td",null,[t.type==="langs"?(n(),R(r,{key:0,modelValue:t._input,"onUpdate:modelValue":a=>t._input=a,multiple:!0,disabled:t.disabled},null,8,["modelValue","onUpdate:modelValue","disabled"])):t.type==="lang"?(n(),R(r,{key:1,modelValue:t._input,"onUpdate:modelValue":a=>t._input=a,disabled:t.disabled},null,8,["modelValue","onUpdate:modelValue","disabled"])):t.encrypted?(n(),o(v,{key:2},[e("div",ls,[c(e("input",{type:t._show?"text":"password",class:"field-input pr-14","onUpdate:modelValue":a=>t._input=a,disabled:t.disabled,placeholder:"留空继承默认"},null,8,ss),[[ee,t._input]]),e("button",{type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-xs text-slate-400 hover:text-slate-700",onClick:a=>t._show=!t._show},d(t._show?"隐藏":"显示"),9,ns)]),l[55]||(l[55]=e("span",{class:"lock-badge ml-1"},"🔒",-1))],64)):c((n(),o("input",{key:3,class:"field-input","onUpdate:modelValue":a=>t._input=a,disabled:t.disabled,placeholder:"留空继承:"+(t.value||"")},null,8,os)),[[y,t._input]])])],2))),128)),J.value.length?g("",!0):(n(),o("tr",as,[...l[56]||(l[56]=[e("td",{colspan:"5",class:"text-center text-slate-400 py-3"},"该服务尚无默认字段",-1)])]))])])]),e("div",ds,d(se.value)+" 专属字段",1),e("div",null,[I.value.length?(n(),o("div",us,[e("table",cs,[l[59]||(l[59]=e("thead",null,[e("tr",null,[e("th",{class:"w-44"},"字段名"),e("th",null,"字段描述"),e("th",{class:"w-16 text-center"},"加密"),e("th",null,"值"),e("th",{class:"w-12"})])],-1)),e("tbody",null,[(n(!0),o(v,null,h(I.value,(t,u)=>(n(),o("tr",{key:u},[e("td",null,[c(e("input",{class:"field-input","onUpdate:modelValue":a=>t.key=a,placeholder:"key",title:t.key},null,8,rs),[[y,t.key]])]),e("td",null,[c(e("input",{class:"field-input","onUpdate:modelValue":a=>t.description=a,placeholder:"用途描述"},null,8,ps),[[y,t.description]])]),e("td",vs,[c(e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary","onUpdate:modelValue":a=>t.encrypted=a},null,8,ms),[[O,t.encrypted]])]),e("td",null,[t.encrypted?(n(),o(v,{key:0},[e("div",bs,[c(e("input",{type:t._show?"text":"password",class:"field-input pr-14","onUpdate:modelValue":a=>t._input=a,placeholder:"留空保留原值"},null,8,xs),[[ee,t._input]]),e("button",{type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-xs text-slate-400 hover:text-slate-700",onClick:a=>t._show=!t._show},d(t._show?"隐藏":"显示"),9,ys)]),l[58]||(l[58]=e("span",{class:"lock-badge ml-1"},"🔒",-1))],64)):c((n(),o("input",{key:1,class:"field-input","onUpdate:modelValue":a=>t._input=a},null,8,_s)),[[y,t._input]])]),e("td",null,[e("button",{class:"btn btn-ghost btn-xs text-error",onClick:a=>Le(u)},"×",8,hs)])]))),128))])])])):(n(),o("p",is,"尚无区域专属字段,点击下方添加")),e("button",{class:"btn btn-ghost btn-sm mt-2 text-primary",onClick:Ne},"+ 添加区域专属字段")])],64))],64)):g("",!0)])])]),c(e("div",gs,[e("div",ks,[e("div",fs,[e("div",ws,[(n(),o("svg",Vs,[...l[61]||(l[61]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"},null,-1)])]))]),e("div",null,[l[62]||(l[62]=e("h3",{class:"text-base font-semibold text-slate-800"},"同步到其他区域",-1)),e("p",Us,d(be.value),1)])]),e("div",{class:"text-xs px-3 py-2 rounded-lg mb-3",style:{background:"#f0fdf4",border:"1px solid #bbf7d0",color:"#15803d"},innerHTML:xe.value},null,8,Cs),e("div",Ss,[l[63]||(l[63]=e("span",{class:"text-xs font-semibold text-slate-500"},"选择目标区域",-1)),e("div",$s,[e("button",{class:"btn btn-ghost btn-xs",onClick:l[18]||(l[18]=t=>he(!0))},"全选"),e("button",{class:"btn btn-ghost btn-xs",onClick:l[19]||(l[19]=t=>he(!1))},"清空")])]),e("div",Ts,[(n(!0),o(v,null,h(ye.value,t=>(n(),o("label",{key:t.value,class:z(["sync-region-item",{checked:L.value.includes(t.value)}]),onClick:u=>_e(t.value)},[e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary",checked:L.value.includes(t.value),onClick:Xe(u=>_e(t.value),["stop"])},null,8,Ms),e("span",null,d(t.label),1)],10,As))),128))]),l[64]||(l[64]=e("p",{class:"text-[11px] text-slate-400 mb-5"},"⚠ 已勾选区域将被当前配置(值覆盖 / 区域专属字段 / 停用字段)整体替换;加密字段密文一并同步。",-1)),e("div",{class:"flex gap-3 justify-end"},[e("button",{class:"btn btn-ghost",onClick:Oe},"仅保存当前区域"),e("button",{class:"btn btn-primary text-white",onClick:Ee},"保存并同步")])])],512),[[Ve,oe.value]]),c(e("div",zs,[e("div",Ds,[Z.value==="list"?(n(),o(v,{key:0},[e("div",js,[l[65]||(l[65]=e("div",null,[e("h3",{class:"text-base font-semibold text-slate-800"},"服务商模板"),e("p",{class:"text-xs text-slate-400 mt-1"},"模板是字段预设,新增服务时可一键带出。内置模板可编辑;删除后重启会被重新补回。")],-1)),e("div",Fs,[e("button",{class:"btn btn-primary btn-sm text-white",onClick:l[20]||(l[20]=t=>fe())},"+ 新增模板"),e("button",{class:"btn btn-ghost btn-sm",onClick:He},"关闭")])]),e("div",Ns,[(n(!0),o(v,null,h(Te.value,t=>(n(),o("div",{key:t.cat,class:"mb-3"},[e("p",Ls,d(t.label),1),(n(!0),o(v,null,h(t.items,u=>(n(),o("div",{key:u.id,class:"tpl-row"},[e("div",Rs,[e("div",Is,[e("span",Bs,d(u.name),1),e("span",Os,d(u.provider),1),u.builtin?(n(),o("span",Es,"内置")):g("",!0)]),e("p",Hs,d(u.id)+" · "+d((u.fields||[]).length)+" 字段",1)]),e("div",Ps,[e("button",{class:"btn btn-ghost btn-xs",onClick:a=>fe(u)},"编辑",8,Gs),e("button",{class:"btn btn-ghost btn-xs text-error",onClick:a=>Ke(u)},"删除",8,Js)])]))),128))]))),128)),K.value.length?g("",!0):(n(),o("p",Ks,"暂无模板"))])],64)):(n(),o(v,{key:1},[e("div",qs,[e("h3",Ws,d(q.value?"编辑模板":"新增模板"),1),e("div",Xs,[e("button",{class:"btn btn-ghost btn-sm",onClick:l[21]||(l[21]=t=>Z.value="list")},"返回"),e("button",{class:"btn btn-primary btn-sm text-white",onClick:Je},"保存")])]),e("div",Ys,[e("div",Qs,[l[66]||(l[66]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"模板ID *")],-1)),c(e("input",{"onUpdate:modelValue":l[22]||(l[22]=t=>b.id=t),disabled:q.value,class:"input input-bordered input-sm font-mono",placeholder:"tts_azure"},null,8,Zs),[[y,b.id]])]),e("div",en,[l[67]||(l[67]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"类别 *")],-1)),c(e("select",{"onUpdate:modelValue":l[23]||(l[23]=t=>b.category=t),class:"select select-bordered select-sm"},[(n(),o(v,null,h(w,t=>e("option",{key:t.v,value:t.v},d(t.label),9,tn)),64))],512),[[ie,b.category,void 0,{number:!0}]])]),e("div",ln,[l[68]||(l[68]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"服务商标识 *")],-1)),c(e("input",{"onUpdate:modelValue":l[24]||(l[24]=t=>b.provider=t),class:"input input-bordered input-sm font-mono",placeholder:"azure"},null,512),[[y,b.provider]])]),e("div",sn,[l[69]||(l[69]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"展示名 *")],-1)),c(e("input",{"onUpdate:modelValue":l[25]||(l[25]=t=>b.name=t),class:"input input-bordered input-sm",placeholder:"微软 Azure TTS"},null,512),[[y,b.name]])])]),e("div",nn,[l[70]||(l[70]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"描述")],-1)),c(e("input",{"onUpdate:modelValue":l[26]||(l[26]=t=>b.description=t),class:"input input-bordered input-sm"},null,512),[[y,b.description]])]),l[73]||(l[73]=e("p",{class:"text-sm font-medium text-slate-700 mb-1"},"字段",-1)),e("div",on,[e("table",an,[l[72]||(l[72]=e("thead",null,[e("tr",null,[e("th",{class:"w-44"},"字段名"),e("th",null,"字段描述"),e("th",{class:"w-16 text-center"},"加密"),e("th",null,"默认/提示值"),e("th",{class:"w-12"})])],-1)),e("tbody",null,[(n(!0),o(v,null,h(F.value,(t,u)=>(n(),o("tr",{key:u},[e("td",null,[c(e("input",{class:"field-input","onUpdate:modelValue":a=>t.key=a,placeholder:"key",title:t.key},null,8,dn),[[y,t.key]])]),e("td",null,[c(e("input",{class:"field-input","onUpdate:modelValue":a=>t.description=a,placeholder:"用途描述"},null,8,un),[[y,t.description]])]),e("td",cn,[c(e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary","onUpdate:modelValue":a=>t.encrypted=a},null,8,rn),[[O,t.encrypted]])]),e("td",null,[t.type==="langs"?(n(),R(r,{key:0,modelValue:t.def_value,"onUpdate:modelValue":a=>t.def_value=a,multiple:!0},null,8,["modelValue","onUpdate:modelValue"])):t.type==="lang"?(n(),R(r,{key:1,modelValue:t.def_value,"onUpdate:modelValue":a=>t.def_value=a},null,8,["modelValue","onUpdate:modelValue"])):c((n(),o("input",{key:2,class:"field-input","onUpdate:modelValue":a=>t.def_value=a,placeholder:"可留空"},null,8,pn)),[[y,t.def_value]])]),e("td",null,[e("button",{class:"btn btn-ghost btn-xs text-error",onClick:a=>Ge(u)},"×",8,vn)])]))),128)),F.value.length?g("",!0):(n(),o("tr",mn,[...l[71]||(l[71]=[e("td",{colspan:"5",class:"text-center text-slate-400 py-2"},"尚无字段",-1)])]))])])]),e("button",{class:"btn btn-ghost btn-sm mt-2 text-primary",onClick:Pe},"+ 添加字段")],64))])],512),[[Ve,ke.value]])])}}}),gn=Se(bn,[["__scopeId","data-v-04ce4a7d"]]);export{gn as default};