refactor(frontend): API 子模块化、大组件拆分与 TanStack Query hooks
P1: kubernetes/system API 拆为子目录模块,导出工具下沉到 lib/export-utils,
http 统一 buildApiUrl/getWsBase;HostMonitor、DeploymentEdit* 拆至子组件。
P2: 新增 hooks/api(queryKeys、useTerminalSessions、useHostMonitor),
TerminalSessionsTab 与 HostMonitor 接入 TanStack Query。
P3: 保留 services/api 路径,未迁移至 api/ 目录。
This commit is contained in:
1 parent
7fb2236b4d
commit
0b404b4611
226 files changed
+3040
-2596
No files matched your search
@@ -0,0 +1 @@
|
||||
import{r as c,h as j,j as e,L as R,B as T,Q as V,V as z,X as Y,t as J,W as X,P as H}from"./index-Dmami9WE.js";import{C as K,a as Z}from"./card-CIfC-8Rh.js";import{t as C}from"./index-BuEnLCjT.js";import{P as F}from"./plus-O65gX7Qz.js";import{S as D}from"./star-DRCV7Fx2.js";import{C as ee}from"./chevron-up-Cq4GPopa.js";import{P as G}from"./play-0EwQQJX_.js";import{P as se}from"./pen-0lfnZsyH.js";import{T as q}from"./trash-2-DWVnIU6o.js";import{A as ae,a as te}from"./arrow-up-DMuDiHn6.js";const re={resource:"资源申请",app:"应用申请",permission:"权限审批"},O={submit:"提交阶段",audit:"审核阶段",execute:"执行阶段"},B={submit:"bg-blue-500/15 text-blue-400 border-blue-500/30",audit:"bg-purple-500/15 text-purple-400 border-purple-500/30",execute:"bg-green-500/15 text-green-400 border-green-500/30"},oe={submit:X,audit:J,execute:G},pe=[{value:"submit",label:"提交阶段",desc:"工单提交人"},{value:"audit",label:"审核阶段",desc:"审核人员审批"},{value:"execute",label:"执行阶段",desc:"执行人员操作"}],S={list:p=>j.get("/approval-workflows",p),get:p=>j.get(`/approval-workflows/${p}`),create:p=>j.post("/approval-workflows",p),update:(p,i)=>j.put(`/approval-workflows/${p}`,i),delete:p=>j.delete(`/approval-workflows/${p}`),setDefault:p=>j.put(`/approval-workflows/${p}/default`)},le=()=>j.get("/admin/users");function ce({users:p,selectedIds:i,label:v,onToggle:W,onToggleAll:y,onClear:f,getUserName:N}){const[m,_]=c.useState(!1),b=c.useRef(null),[k,l]=c.useState({top:0,left:0,width:0}),h=()=>{if(b.current){const d=b.current.getBoundingClientRect();l({top:d.bottom+4,left:d.left,width:d.width})}};return e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:121:5",className:"relative",children:[e.jsxs("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:122:7",ref:b,type:"button",onClick:()=>{m||h(),_(!m)},className:`w-full flex items-center justify-between px-3 py-2 rounded-lg text-sm transition-colors ${i.length===0?"bg-[var(--dg-bg-tertiary)] border border-red-500/40 text-[var(--dg-text-muted)]":"bg-[var(--dg-bg-tertiary)] border border-[var(--dg-border)] text-[var(--dg-text-primary)]"}`,children:[e.jsx("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:132:9",className:"truncate",children:i.length===0?`${v} * 请选择`:`${v} (${i.length}人)`}),e.jsx(z,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:135:9",className:`w-4 h-4 text-[var(--dg-text-muted)] transition-transform ${m?"rotate-180":""}`})]}),i.length>1&&e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:139:9",className:"flex flex-wrap gap-1 mt-1.5",children:i.map(d=>e.jsxs("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:141:13",className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[11px] bg-blue-500/15 text-blue-400",children:[N(d),e.jsx("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:143:15",onClick:()=>W(d),className:"hover:text-red-400",children:e.jsx(Y,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:143:84",className:"w-3 h-3"})})]},d))}),m&&e.jsxs(e.Fragment,{children:[e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:151:11",className:"fixed inset-0 z-40",onClick:()=>_(!1)}),e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:152:11",className:"fixed z-50 bg-[var(--dg-bg-secondary)] border border-[var(--dg-border)] rounded-lg shadow-xl max-h-52 overflow-y-auto",style:{top:k.top,left:k.left,width:k.width},children:[e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:154:13",className:"flex items-center justify-between px-3 py-2 border-b border-[var(--dg-border)]",children:[e.jsx("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:155:15",onClick:y,className:"text-[11px] text-blue-400 hover:text-blue-300",children:i.length===p.length&&p.length>0?"取消全选":"全选"}),i.length>0&&e.jsx("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:159:17",onClick:f,className:"text-[11px] text-red-400 hover:text-red-300",children:"清空"})]}),p.map(d=>{const w=i.includes(d.id);return e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:165:17",onClick:()=>W(d.id),className:"flex items-center gap-2.5 px-3 py-2 cursor-pointer hover:bg-[var(--dg-bg-hover)] transition-colors",children:[e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:167:19",className:`w-4 h-4 rounded border flex items-center justify-center flex-shrink-0 ${w?"bg-blue-500 border-blue-500":"border-[var(--dg-border)]"}`,children:w&&e.jsx(H,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:170:33",className:"w-3 h-3 text-white"})}),e.jsx("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:172:19",className:`text-sm flex-1 ${w?"text-[var(--dg-text-primary)]":"text-[var(--dg-text-secondary)]"}`,children:d.display_name||d.username}),e.jsx("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:175:19",className:"text-[10px] text-[var(--dg-text-muted)] px-1.5 py-0.5 rounded bg-[var(--dg-bg-tertiary)]",children:d.role})]},d.id)})]})]})]})}fuLine truncated
|
||||
Reference in new issue
Block a user