Files
Migu2.0/MiGu.Server/wwwroot/assets/SystemCenterView-DTMANlHu.js
T

3 lines
24 KiB
JavaScript
Raw Normal View History

2026-06-08 18:18:48 +08:00
import{aN as Q,bZ as Ye,bC as C,bs as u,aG as x,aD as c,aK as e,x as Ze,c8 as l,ai as R,bE as D,aE as E,N as ie,bS as T,aj as Qe,O as ue,z as el,bL as S,r as de,aJ as d,bl as ll,ad as re,aF as H,ay as Z,aW as al,X as b,y as tl,ak as ee,bp as he,h as ol,S as nl,G as Se,a4 as Te,Z as Ie,a8 as ze,R as Ae,t as Pe,bA as se,b4 as B,bV as sl,ac as Ne,a9 as Re,bv as Ve,c9 as we,b$ as il,ab as ul,aS as ke,b9 as dl,aP as Ce,bD as rl,F as ml,a2 as pl,w as cl,v as fl,Y as Ue,aa as _l,u as vl,L as bl,c7 as xe,bW as gl,bX as yl}from"./index-D5GfLbIx.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import{C as Vl}from"./ConfigPageBase-CgfsngDp.js";/* empty css *//* empty css */import{a as Ee,m as wl}from"./mapEdit-BXIATxCI.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";/* empty css */import"./PermissionGuard-CR4qtxrh.js";import"./reflection-BwOBPyb9.js";import"./monitorConfigCache-DXn96T8F.js";const kl={class:"theme-customizer"},Cl={class:"tc-title-row"},Ul={class:"tc-name"},xl={class:"tc-panel"},El={class:"tc-picker-row"},$l={class:"tc-hex"},hl={class:"tc-field-hint"},Sl={class:"tc-actions"},Tl={class:"tc-footer"},Il=Q({__name:"ThemeCustomizer",setup(v){const s=Ye(),I=C(s.themeId),M=["#7c3aed","#8b5cf6","#c4b5fd","#5b21b6","#4c1d95","#6366f1","#a855f7","#9333ea","#1565c0","#00796b","#b71c1c","#455a64","#e65100"],A=Z(()=>s.availableThemes.some(y=>w(y.id)));function w(y){const p=s.themeOverrides[y];return!!p&&Object.keys(p).length>0}function m(y){const p=s.getMergedTheme(al(y));return{background:`linear-gradient(135deg, ${p.preview} 0%, ${p.previewAccent} 100%)`}}function i(y,p,z){z&&(s.setThemeColor(y,p,z),y===s.themeId&&b.success("已应用当前主题配色"))}function $(y){s.clearThemeOverrides(y),b.info("已恢复该主题默认配色")}function g(){s.clearAllThemeOverrides(),b.info("已恢复全部主题默认配色")}return(y,p)=>{const z=re,O=el,r=ue,F=ie,q=de,G=tl,J=Ze;return u(),x("div",kl,[p[6]||(p[6]=c("p",{class:"tc-hint"}," 为各主题单独调色;修改后立即预览。当前生效主题会同步应用到全站。保存系统配置时一并写入本地。 ",-1)),e(J,{modelValue:I.value,"onUpdate:modelValue":p[0]||(p[0]=n=>I.value=n),accordion:""},{default:l(()=>[(u(!0),x(R,null,D(T(s).availableThemes,n=>(u(),E(G,{key:n.id,name:n.id},{title:l(()=>[c("div",Cl,[c("span",{class:"tc-swatch",style:ll(m(n.id))},null,4),c("span",Ul,S(n.name),1),w(n.id)?(u(),E(z,{key:0,size:"small",type:"warning",effect:"plain"},{default:l(()=>[...p[1]||(p[1]=[d("已自定义",-1)])]),_:1})):H("",!0),n.id===T(s).themeId?(u(),E(z,{key:1,size:"small",type:"success",effect:"plain"},{default:l(()=>[...p[2]||(p[2]=[d("当前",-1)])]),_:1})):H("",!0)])]),default:l(()=>[c("div",xl,[e(F,{"label-width":"100px",class:"tc-form"},{default:l(()=>[(u(!0),x(R,null,D(T(Qe),V=>(u(),E(r,{key:V.key,label:V.label},{default:l(()=>[c("div",El,[e(O,{"model-value":T(s).getThemeColor(n.id,V.key),"color-format":"hex",predefine:M,"onUpdate:modelValue":f=>i(n.id,V.key,f)},null,8,["model-value","onUpdate:modelValue"]),c("span",$l,S(T(s).getThemeColor(n.id,V.key)),1),c("span",hl,S(V.hint),1)])]),_:2},1032,["label"]))),128))]),_:2},1024),c("div",Sl,[e(q,{size:"small",onClick:V=>T(s).setThemeId(n.id)},{default:l(()=>[...p[3]||(p[3]=[d("切换到此主题",-1)])]),_:1},8,["onClick"]),e(q,{size:"small",disabled:!w(n.id),onClick:V=>$(n.id)},{default:l(()=>[...p[4]||(p[4]=[d("恢复默认",-1)])]),_:1},8,["disabled","onClick"])])])]),_:2},1032,["name"]))),
`),"onUpdate:modelValue":f=>V({...n,security:{...n.security,corsWhitelist:f.split(/\s+/).filter(Boolean)}})},null,8,["model-value","onUpdate:modelValue"])]),_:2},1024),e(y,{"content-position":"left"},{default:l(()=>[...i[9]||(i[9]=[d("界面主题配色",-1)])]),_:1}),e(g,{label:"主题取色盘"},{default:l(()=>[e(zl)]),_:1})]),_:2},1032,["model"])]),_:1},8,["defaults"]),e(J,{class:"ai-service-card",shadow:"never"},{header:l(()=>[i[12]||(i[12]=c("span",null,"AI 服务(地图编辑器「AI 生图」依赖)",-1)),s.configured?(u(),E(q,{key:0,type:"success",size:"small",effect:"dark",class:"ml-8"},{default:l(()=>[...i[10]||(i[10]=[d("已配置",-1)])]),_:1})):(u(),E(q,{key:1,type:"warning",size:"small",effect:"dark",class:"ml-8"},{default:l(()=>[...i[11]||(i[11]=[d("未配置",-1)])]),_:1}))]),default:l(()=>[e(F,{"label-width":"140px",size:"default"},{default:l(()=>[e(g,{label:"Endpoint"},{default:l(()=>[e(r,{modelValue:s.endpoint,"onUpdate:modelValue":i[0]||(i[0]=n=>s.endpoint=n),placeholder:"https://api.openai.com/v1/chat/completions"},null,8,["modelValue"])]),_:1}),e(g,{label:"API Key"},{default:l(()=>[e(r,{modelValue:s.apiKey,"onUpdate:modelValue":i[1]||(i[1]=n=>s.apiKey=n),type:"password","show-password":"",placeholder:"sk-..."},null,8,["modelValue"])]),_:1}),e(g,{label:"模型"},{default:l(()=>[e(r,{modelValue:s.model,"onUpdate:modelValue":i[2]||(i[2]=n=>s.model=n),placeholder:"gpt-4o-mini"},null,8,["modelValue"])]),_:1}),e(g,{label:"System Prompt"},{default:l(()=>[e(r,{modelValue:s.systemPrompt,"onUpdate:modelValue":i[3]||(i[3]=n=>s.systemPrompt=n),type:"textarea",rows:4},null,8,["modelValue"])]),_:1}),e(g,{label:"Temperature"},{default:l(()=>[e($,{modelValue:s.temperature,"onUpdate:modelValue":i[4]||(i[4]=n=>s.temperature=n),min:0,max:2,step:.1},null,8,["modelValue"])]),_:1}),e(g,{label:"Max Tokens"},{default:l(()=>[e($,{modelValue:s.maxTokens,"onUpdate:modelValue":i[5]||(i[5]=n=>s.maxTokens=n),min:64,max:32e3,step:64},null,8,["modelValue"])]),_:1}),e(g,{label:"超时 (秒)"},{default:l(()=>[e($,{modelValue:s.timeoutSec,"onUpdate:modelValue":i[6]||(i[6]=n=>s.timeoutSec=n),min:5,max:600},null,8,["modelValue"])]),_:1}),e(g,null,{default:l(()=>[e(G,{type:"primary",loading:I.value,onClick:A},{default:l(()=>[...i[13]||(i[13]=[d("保存 AI 配置",-1)])]),_:1},8,["loading"]),e(G,{loading:M.value,onClick:w},{default:l(()=>[...i[14]||(i[14]=[d("测试连通",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1})],64)}}}),Pl=ee(Al,[["__scopeId","data-v-b66101c5"]]);async function Nl(){const{data:v}=await B.get("/rbac/catalog");return v}async function Rl(){const{data:v}=await B.get("/rbac/roles");return v}async function Ml(v){if(v.id){const{data:I}=await B.put(`/rbac/roles/${v.id}`,v);return I}const{data:s}=await B.post("/rbac/roles",v);return s}async function Ol(v){await B.delete(`/rbac/roles/${v}`)}async function Bl(){const{data:v}=await B.get("/rbac/users");return v}async function Dl(v){const{data:s}=await B.post("/rbac/users",v);return s}async function $e(v,s){const{data:I}=await B.put(`/rbac/users/${v}`,s);return I}async function ql(v,s){await B.put(`/rbac/users/${v}/password`,{password:s})}async function jl(v){await B.delete(`/rbac/users/${v}`)}const Ll={class:"rbac-header"},Fl={class:"tab-toolbar"},Gl={class:"toolbar-hint"},Kl={key:0,class:"muted"},Wl={class:"tab-toolbar"},Hl={class:"toolbar-hint"},Jl={key:1},Xl={key:0,class:"page-picker"},Yl={class:"page-group-head"},Zl={class:"page-group-title"},Ql={class:"page-group-actions"},ea={key:1,class:"wildcard-hint"},la=Q({__name:"AuthRoleView",setup(v){const s=sl(),I=Z(()=>s.user?.id??""),M=C("users"),A=C(!1),w=C(!1),m=C(null),i=C([]),$=C([]);function g(o){return i.value.find(a=>a.id===o)?.name??o}function y(o){return o==="*"?"通用":o==="Platform"?"管理端":o==="RCSMonitor"?"运营端":o}function p(o){return o==="*"?"danger":o==="Platform"?"warning":"success"}async function z(){A.value=!0;try{const[o,a,_]=await Promise.all([Nl(),Rl(),Bl()]);m.value=o,i.value=a,$.value=_}catch(o){b.error(`加载失败${L(o)}`)}finally{A.value=!1}}const O=C(!1),r=se({id:null,usernam