Files
aiops/backend/static/assets/RegionManager-DAgeWbRr.js
T
Logan.Li a8305de0f5 fix(k8s): Deployment 存储挂载六种卷类型 YAML 双向映射
- 抽取 deployment-volume-utils,修正 PVC/NFS/CM/Secret/HostPath/EmptyDir 读写
- 保存时保留系统卷与 serviceAccount 挂载,合并用户卷与挂载点
- 挂载支持 subPath;ConfigMap/Secret items 支持 key:path 简写
2026-06-26 14:57:09 +08:00

2 lines
14 KiB
JavaScript

import{r as t,j as e}from"./vendor-codemirror-C7mXSpXt.js";import{f as ee,B as u,D as se,a as ae,b as oe,c as te,d as ce,e as ne,t as N}from"./index-EF2TDvxx.js";import{I as j}from"./input--Xdj49es.js";import{L as i}from"./label-DZckFZd3.js";import{B as O}from"./badge-BodqHT_V.js";import{C as A}from"./checkbox-CY3XhE_w.js";import{T as re,a as le,b as V,c as r,d as de,e as l}from"./table-CUnn2-lp.js";import{S as y,a as C,b as w,c as S,d as R}from"./select-DbRZUnPK.js";import{r as M}from"./region-DScARMXs.js";import{S as ie,P as pe,T as H,L as $,M as ge,C as xe,a as he,d as me}from"./vendor-icons-Aso0-eeY.js";import"./index-CYARH0Cq.js";const k={aws:"AWS",aliyun:"阿里云",tencent:"腾讯云",huawei:"华为云",azure:"Azure"},ue={aws:"text-orange-400",aliyun:"text-orange-400",tencent:"text-blue-400",huawei:"text-red-400",azure:"text-blue-400"};function ke(){const D=ee(),[T,L]=t.useState([]),[F,I]=t.useState(!0),[b,Q]=t.useState(""),[f,W]=t.useState("all"),[c,d]=t.useState([]),[X,p]=t.useState(!1),[g,P]=t.useState(null),[B,z]=t.useState(!1),[a,n]=t.useState({name:"",code:"",provider:"aliyun",location:"",status:"active",endpoint:""}),x=t.useCallback(async()=>{I(!0);try{const o=(await M.list())?.list||[];L(o)}catch{L([])}finally{I(!1)}},[]);t.useEffect(()=>{x()},[x]);const h=T.filter(s=>{const o=s.name?.toLowerCase().includes(b.toLowerCase())||s.code?.toLowerCase().includes(b.toLowerCase()),v=f==="all"||s.provider===f;return o&&v}),E=h.length>0&&h.every(s=>c.includes(s.id)),q=()=>{d(E?[]:h.map(s=>s.id))},G=s=>{d(o=>o.includes(s)?o.filter(v=>v!==s):[...o,s])},J=()=>{P(null),n({name:"",code:"",provider:"aliyun",location:"",status:"active",endpoint:""}),p(!0)},K=s=>{P(s),n({name:s.name||"",code:s.code||"",provider:s.provider||"aliyun",location:s.location||"",status:s.status||"active",endpoint:s.endpoint||""}),p(!0)},U=async()=>{if(!(!a.name.trim()||!a.code.trim())){z(!0);try{g?await M.update(g.id,a):await M.create(a),p(!1),x()}catch{}finally{z(!1)}}},Y=async s=>{const o=T.find(m=>m.id===s);if(await D({title:"删除区域",description:`确定删除「${o?.name||s}」吗?此操作不可撤销。`,confirmText:"删除",variant:"destructive"}))try{await M.delete(s),N.success("区域已删除"),d(m=>m.filter(_=>_!==s)),x()}catch(m){console.error("删除区域失败:",m),N.error("删除失败")}},Z=async()=>{if(!(c.length===0||!await D({title:"批量删除区域",description:`确定删除选中的 ${c.length} 个区域吗?此操作不可撤销。`,confirmText:"批量删除",variant:"destructive"})))try{await M.batchDelete(c),N.success(`已删除 ${c.length} 个区域`),d([]),x()}catch(o){console.error("批量删除失败:",o),N.error("批量删除失败")}};return e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:185:5",className:"p-6 space-y-4",children:[e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:187:7",className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:188:9",className:"flex items-center gap-3 flex-1",children:[e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:189:11",className:"relative w-72",children:[e.jsx(ie,{"code-path":"src/components/cloud/RegionManager.tsx:190:13",className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-slate-500"}),e.jsx(j,{"code-path":"src/components/cloud/RegionManager.tsx:191:13",placeholder:"搜索区域名称或编码...",value:b,onChange:s=>Q(s.target.value),className:"pl-9 h-9 bg-slate-800/50 border-slate-700"})]}),e.jsxs(y,{"code-path":"src/components/cloud/RegionManager.tsx:198:11",value:f,onValueChange:W,children:[e.jsx(C,{"code-path":"src/components/cloud/RegionManager.tsx:199:13",className:"w-32 h-9 bg-slate-800/50 border-slate-700",children:e.jsx(w,{"code-path":"src/components/cloud/RegionManager.tsx:200:15"})}),e.jsxs(S,{"code-path":"src/components/cloud/RegionManager.tsx:202:13",children:[e.jsx(R,{"code-path":"src/components/cloud/RegionManager.tsx:203:15",value:"all",children:"全部云商"}),Object.entries(k).map(([s,o])=>e.jsx(R,{"code-path":"src/components/cloud/RegionManager.tsx:205:17",value:s,children:o},s))]})]})]}),e.jsxs(u,{"code-path":"src/components/cloud/RegionManager.tsx:210:9",onClick:J,className:"gap-2",children:[e.jsx(pe,{"code-path":"src/components/cloud/RegionManager.tsx:211:11",className:"h-4 w-4"}),"添加区域"]})]}),c.length>0&&e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:218:9",className:"flex items-center justify-between gap-4 px-4 py-2.5 rounded-lg bg-slate-800/50 border border-slate-700",children:[e.jsxs("span",{"code-path":"src/components/cloud/RegionManager.tsx:219:11",className:"text-sm text-slate-300",children:["已选择 ",e.jsx("span",{"code-path":"src/components/cloud/RegionManager.tsx:220:17",className:"font-semibold text-slate-100",children:c.length})," 个区域"]}),e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:222:11",className:"flex items-center gap-2",children:[e.jsx(u,{"code-path":"src/components/cloud/RegionManager.tsx:223:13",variant:"ghost",size:"sm",onClick:()=>d([]),className:"text-slate-400 hover:text-slate-200",children:"取消选择"}),e.jsxs(u,{"code-path":"src/components/cloud/RegionManager.tsx:226:13",variant:"outline",size:"sm",className:"border-red-500/30 text-red-400 hover:bg-red-500/10",onClick:Z,children:[e.jsx(H,{"code-path":"src/components/cloud/RegionManager.tsx:232:15",className:"h-4 w-4 mr-1.5"}),"批量删除"]})]})]}),F?e.jsx("div",{"code-path":"src/components/cloud/RegionManager.tsx:241:9",className:"flex justify-center py-20",children:e.jsx($,{"code-path":"src/components/cloud/RegionManager.tsx:242:11",className:"h-6 w-6 animate-spin text-slate-500"})}):h.length===0?e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:245:9",className:"text-center py-20 text-slate-500",children:[e.jsx(ge,{"code-path":"src/components/cloud/RegionManager.tsx:246:11",className:"h-12 w-12 mx-auto mb-3 opacity-40"}),e.jsx("p",{"code-path":"src/components/cloud/RegionManager.tsx:247:11",children:"暂无区域数据"})]}):e.jsx("div",{"code-path":"src/components/cloud/RegionManager.tsx:250:9",className:"rounded-lg overflow-hidden",children:e.jsxs(re,{"code-path":"src/components/cloud/RegionManager.tsx:251:11",children:[e.jsx(le,{"code-path":"src/components/cloud/RegionManager.tsx:252:13",children:e.jsxs(V,{"code-path":"src/components/cloud/RegionManager.tsx:253:15",className:"border-slate-800 hover:bg-transparent",children:[e.jsx(r,{"code-path":"src/components/cloud/RegionManager.tsx:254:17",className:"w-10",children:e.jsx(A,{"code-path":"src/components/cloud/RegionManager.tsx:255:19",checked:E,onCheckedChange:q,className:"border-slate-600"})}),e.jsx(r,{"code-path":"src/components/cloud/RegionManager.tsx:261:17",className:"text-slate-400",children:"区域名称"}),e.jsx(r,{"code-path":"src/components/cloud/RegionManager.tsx:262:17",className:"text-slate-400",children:"编码"}),e.jsx(r,{"code-path":"src/components/cloud/RegionManager.tsx:263:17",className:"text-slate-400",children:"云商"}),e.jsx(r,{"code-path":"src/components/cloud/RegionManager.tsx:264:17",className:"text-slate-400",children:"位置"}),e.jsx(r,{"code-path":"src/components/cloud/RegionManager.tsx:265:17",className:"text-slate-400",children:"接入端点"}),e.jsx(r,{"code-path":"src/components/cloud/RegionManager.tsx:266:17",className:"text-slate-400",children:"状态"}),e.jsx(r,{"code-path":"src/components/cloud/RegionManager.tsx:267:17",className:"text-slate-400 text-right",children:"操作"})]})}),e.jsx(de,{"code-path":"src/components/cloud/RegionManager.tsx:270:13",children:h.map(s=>e.jsxs(V,{"code-path":"src/components/cloud/RegionManager.tsx:272:17",className:"border-slate-800/50 group",children:[e.jsx(l,{"code-path":"src/components/cloud/RegionManager.tsx:273:19",children:e.jsx(A,{"code-path":"src/components/cloud/RegionManager.tsx:274:21",checked:c.includes(s.id),onCheckedChange:()=>G(s.id),className:"border-slate-600"})}),e.jsx(l,{"code-path":"src/components/cloud/RegionManager.tsx:280:19",className:"font-medium text-slate-200",children:s.name}),e.jsx(l,{"code-path":"src/components/cloud/RegionManager.tsx:281:19",className:"font-mono text-sm text-slate-400",children:s.code}),e.jsx(l,{"code-path":"src/components/cloud/RegionManager.tsx:282:19",children:e.jsx("span",{"code-path":"src/components/cloud/RegionManager.tsx:283:21",className:ue[s.provider]||"text-slate-400",children:k[s.provider]||s.provider})}),e.jsx(l,{"code-path":"src/components/cloud/RegionManager.tsx:287:19",className:"text-slate-400",children:s.location||"-"}),e.jsx(l,{"code-path":"src/components/cloud/RegionManager.tsx:288:19",className:"max-w-[200px] truncate font-mono text-xs text-slate-400",title:s.endpoint,children:s.endpoint||"-"}),e.jsx(l,{"code-path":"src/components/cloud/RegionManager.tsx:289:19",children:s.status==="active"?e.jsxs(O,{"code-path":"src/components/cloud/RegionManager.tsx:291:23",className:"bg-emerald-500/20 text-emerald-400 gap-1",children:[e.jsx(xe,{"code-path":"src/components/cloud/RegionManager.tsx:292:25",className:"h-3 w-3"})," 启用"]}):e.jsxs(O,{"code-path":"src/components/cloud/RegionManager.tsx:295:23",className:"bg-slate-500/20 text-slate-400 gap-1",children:[e.jsx(he,{"code-path":"src/components/cloud/RegionManager.tsx:296:25",className:"h-3 w-3"})," 禁用"]})}),e.jsx(l,{"code-path":"src/components/cloud/RegionManager.tsx:300:19",children:e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:301:21",className:"flex justify-end gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[e.jsx("button",{"code-path":"src/components/cloud/RegionManager.tsx:302:23",onClick:()=>K(s),className:"p-1.5 rounded hover:bg-slate-700 text-slate-400 hover:text-slate-200",children:e.jsx(me,{"code-path":"src/components/cloud/RegionManager.tsx:303:25",className:"h-3.5 w-3.5"})}),e.jsx("button",{"code-path":"src/components/cloud/RegionManager.tsx:305:23",onClick:()=>Y(s.id),className:"p-1.5 rounded hover:bg-slate-700 text-slate-400 hover:text-red-400",children:e.jsx(H,{"code-path":"src/components/cloud/RegionManager.tsx:306:25",className:"h-3.5 w-3.5"})})]})})]},s.id))})]})}),e.jsx(se,{"code-path":"src/components/cloud/RegionManager.tsx:318:7",open:X,onOpenChange:p,children:e.jsxs(ae,{"code-path":"src/components/cloud/RegionManager.tsx:319:9",children:[e.jsxs(oe,{"code-path":"src/components/cloud/RegionManager.tsx:320:11",children:[e.jsx(te,{"code-path":"src/components/cloud/RegionManager.tsx:321:13",children:g?"编辑区域":"添加区域"}),e.jsx(ce,{"code-path":"src/components/cloud/RegionManager.tsx:322:13",className:"sr-only",children:"描述"})]}),e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:324:11",className:"space-y-4 py-2",children:[e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:325:13",className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:326:15",className:"space-y-1.5",children:[e.jsx(i,{"code-path":"src/components/cloud/RegionManager.tsx:327:17",children:"区域名称 *"}),e.jsx(j,{"code-path":"src/components/cloud/RegionManager.tsx:328:17",value:a.name,onChange:s=>n({...a,name:s.target.value}),placeholder:"如:华北-北京",className:"bg-slate-800/50 border-slate-700"})]}),e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:335:15",className:"space-y-1.5",children:[e.jsx(i,{"code-path":"src/components/cloud/RegionManager.tsx:336:17",children:"编码 *"}),e.jsx(j,{"code-path":"src/components/cloud/RegionManager.tsx:337:17",value:a.code,onChange:s=>n({...a,code:s.target.value}),placeholder:"如:cn-north-1",className:"bg-slate-800/50 border-slate-700 font-mono",disabled:!!g})]})]}),e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:346:13",className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:347:15",className:"space-y-1.5",children:[e.jsx(i,{"code-path":"src/components/cloud/RegionManager.tsx:348:17",children:"云商"}),e.jsxs(y,{"code-path":"src/components/cloud/RegionManager.tsx:349:17",value:a.provider,onValueChange:s=>n({...a,provider:s}),children:[e.jsx(C,{"code-path":"src/components/cloud/RegionManager.tsx:350:19",className:"bg-slate-800/50 border-slate-700",children:e.jsx(w,{"code-path":"src/components/cloud/RegionManager.tsx:351:21"})}),e.jsx(S,{"code-path":"src/components/cloud/RegionManager.tsx:353:19",children:Object.entries(k).map(([s,o])=>e.jsx(R,{"code-path":"src/components/cloud/RegionManager.tsx:355:23",value:s,children:o},s))})]})]}),e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:360:15",className:"space-y-1.5",children:[e.jsx(i,{"code-path":"src/components/cloud/RegionManager.tsx:361:17",children:"状态"}),e.jsxs(y,{"code-path":"src/components/cloud/RegionManager.tsx:362:17",value:a.status,onValueChange:s=>n({...a,status:s}),children:[e.jsx(C,{"code-path":"src/components/cloud/RegionManager.tsx:363:19",className:"bg-slate-800/50 border-slate-700",children:e.jsx(w,{"code-path":"src/components/cloud/RegionManager.tsx:364:21"})}),e.jsxs(S,{"code-path":"src/components/cloud/RegionManager.tsx:366:19",children:[e.jsx(R,{"code-path":"src/components/cloud/RegionManager.tsx:367:21",value:"active",children:"启用"}),e.jsx(R,{"code-path":"src/components/cloud/RegionManager.tsx:368:21",value:"inactive",children:"禁用"})]})]})]})]}),e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:373:13",className:"space-y-1.5",children:[e.jsx(i,{"code-path":"src/components/cloud/RegionManager.tsx:374:15",children:"地理位置"}),e.jsx(j,{"code-path":"src/components/cloud/RegionManager.tsx:375:15",value:a.location,onChange:s=>n({...a,location:s.target.value}),placeholder:"如:中国北京",className:"bg-slate-800/50 border-slate-700"})]}),e.jsxs("div",{"code-path":"src/components/cloud/RegionManager.tsx:382:13",className:"space-y-1.5",children:[e.jsx(i,{"code-path":"src/components/cloud/RegionManager.tsx:383:15",children:"接入端点"}),e.jsx(j,{"code-path":"src/components/cloud/RegionManager.tsx:384:15",value:a.endpoint,onChange:s=>n({...a,endpoint:s.target.value}),placeholder:"如:ecs.cn-north-1.aliyuncs.com",className:"bg-slate-800/50 border-slate-700 font-mono text-sm"})]})]}),e.jsxs(ne,{"code-path":"src/components/cloud/RegionManager.tsx:392:11",children:[e.jsx(u,{"code-path":"src/components/cloud/RegionManager.tsx:393:13",variant:"ghost",onClick:()=>p(!1),children:"取消"}),e.jsxs(u,{"code-path":"src/components/cloud/RegionManager.tsx:394:13",onClick:U,disabled:B||!a.name.trim()||!a.code.trim(),children:[B&&e.jsx($,{"code-path":"src/components/cloud/RegionManager.tsx:395:30",className:"h-4 w-4 mr-1 animate-spin"}),g?"保存":"创建"]})]})]})})]})}export{ke as RegionManager};