P1: - utils/storage.ts、theme.ts、validate.ts + index 统一出口 - request/store/useTheme 接入 storage;清零 confirm/alert - PipelineManager、TerminalAuditTab 拆分子模块(<700行红线) P2: - api/monitor、api/deploy 子目录化 - hooks/api 扩展:servers/pipelines/alerts/audit/sessionCommands - PipelineManager、AuditOperationsTab 接入 TanStack Query
2 lines
47 KiB
JavaScript
2 lines
47 KiB
JavaScript
import{i as ye,S as Ne,j as e,a0 as b,L as $,B as i,P as we,V as oe,D as M,a as J,b as q,c as H,d as G,C as pe,e as Q,r as v,t as T}from"./index-HuRw9UhJ.js";import{C as u,a as j,b as fe,c as Te,d as De}from"./card-B2Wqa0sK.js";import{B as C}from"./badge-CeS-g-Od.js";import{T as le}from"./textarea-Bzol9o6k.js";import{b as k}from"./approval-BpnRjDXJ.js";import{I as ce}from"./input-C9Xfv8um.js";import{F as _}from"./file-text-BqORyhNh.js";import{C as D}from"./circle-check-C5nUiTvE.js";import{C as F}from"./circle-x-BVvXVx7p.js";import{S as Fe}from"./search-CcKEpJIn.js";import{F as Ce}from"./funnel-D7YDgUpE.js";import{S as Pe}from"./square-pen-DoCLytAo.js";import{A as Se}from"./arrow-right-C1YbOgFu.js";import{L as ke}from"./label-DvRDtaMA.js";import{S as _e,a as Le,b as Oe,c as Ie,d as $e}from"./select-KDzbUQs3.js";import{P as ze}from"./plus-BVwIGPvl.js";import"./index-DwvHXNyF.js";import"./chevron-up-GXrRy2ul.js";const Re=[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]],Be=ye("git-commit-horizontal",Re);function Ee(a){if(Array.isArray(a))return a;if(typeof a=="string")try{const s=JSON.parse(a);return Array.isArray(s)?s:[]}catch{return[]}return[]}function I(a){if(!a)return[];const s=typeof a=="string"?(()=>{try{return JSON.parse(a)}catch{return null}})():a;return s?Array.isArray(s.fields)?s.fields:[]:[]}function Ve(a,s){if(!a)return null;let r;try{r=typeof a=="string"?JSON.parse(a):a}catch{return null}if(!r||typeof r!="object")return null;const o=I(s?.form_schema),n=new Map;o.forEach(p=>n.set(p.key,p.label));const m=Object.entries(r).filter(([,p])=>p!=null&&p!=="");return m.length===0?null:e.jsx("div",{"code-path":"src/components/approval/helpers.tsx:53:5",className:"grid grid-cols-2 gap-x-4 gap-y-3",children:m.map(([p,d])=>e.jsxs("div",{"code-path":"src/components/approval/helpers.tsx:55:9",className:"min-w-0",children:[e.jsx("p",{"code-path":"src/components/approval/helpers.tsx:56:11",className:"text-xs text-[var(--dg-text-muted)] mb-0.5",children:n.get(p)||p}),e.jsx("p",{"code-path":"src/components/approval/helpers.tsx:57:11",className:"text-sm text-[var(--dg-text-primary)] break-words",children:String(d)})]},p))})}const z=[{value:"server_apply",label:"云服务器申请",icon:Ne,color:"var(--dg-cyan)"},{value:"app_deploy",label:"应用部署申请",icon:Be,color:"var(--dg-blue)"}],Y=a=>z.find(s=>s.value===a)?.label||a||"通用审批",L=a=>z.find(s=>s.value===a)?.color||"var(--dg-text-secondary)",Me=a=>z.find(s=>s.value===a)?.icon||_,A=a=>a?.template?.type||a?.type||"";function U(a){const s=Ee(a.steps),r=a.current_step??0,o=s.length,n=s.filter(p=>p.status==="approved"||p.status==="completed").length,m=o>0?Math.round(n/o*100):0;return{steps:s,currentIndex:r,total:o,completed:n,percentage:m}}function X(a){const{steps:s,currentIndex:r}=U(a);return s.length===0?null:e.jsx("div",{"code-path":"src/components/approval/helpers.tsx:99:5",className:"flex items-center gap-1 overflow-x-auto",children:s.map((o,n)=>{const m=o.status==="approved"||o.status==="completed",p=n===r,d=o.status==="rejected";return e.jsxs("div",{"code-path":"src/components/approval/helpers.tsx:105:11",className:"flex items-center",children:[e.jsxs("div",{"code-path":"src/components/approval/helpers.tsx:106:13",className:b("flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs whitespace-nowrap",m&&"bg-emerald-500/10 text-emerald-400",p&&!d&&"bg-amber-500/10 text-amber-400 border border-amber-500/30",d&&"bg-red-500/10 text-red-400",!m&&!p&&!d&&"bg-[var(--dg-bg-tertiary)] text-[var(--dg-text-muted)]"),children:[m&&e.jsx(D,{"code-path":"src/components/approval/helpers.tsx:115:31",className:"h-3 w-3"}),d&&e.jsx(F,{"code-path":"src/components/approval/helpers.tsx:116:30",className:"h-3 w-3"}),p&&!d&&e.jsx($,{"code-path":"src/components/approval/helpers.tsx:117:44",className:"h-3 w-3 animate-spin"}),e.jsx("span",{"code-path":"src/components/approval/helpers.tsx:118:15",children:o.name||o.approver_name||`步骤 ${n+1}`})]}),n<s.length-1&&e.jsx("div",{"code-path":"src/components/approval/helpers.tsx:121:15",className:b("w-4 h-px",m?"bg-emerald-500/30":"bg-[var(--dg-border)]")})]},o.id||n)})})}const Je=[{key:"all",label:"全部",value:""},{key:"pending",label:"待审批",value:"pending"},{key:"approved",label:"已通过",value:"approved"},{key:"rejected",label:"已拒绝",value:"rejected"},{key:"processing",label:"进行中",value:"processing"},{key:"completed",label:"已完成",value:"completed"}];function qe(a){const s={pending:{label:"待审批",className:"border-amber-500/30 text-amber-400 bg-amber-500/10",dot:"bg-amber-400"},approved:{label:"已通过",className:"border-emerald-500/30 text-emerald-400 bg-emerald-500/10",dot:"bg-emerald-400"},rejected:{label:"已拒绝",className:"border-red-500/30 text-red-400 bg-red-500/10",dot:"bg-red-400"},processing:{label:"进行中",className:"border-[var(--dg-blue)]/30 text-[var(--dg-blue)] bg-[var(--dg-blue)]/10",dot:"bg-[var(--dg-blue)]"},completed:{label:"已完成",className:"border-[var(--dg-border)] text-[var(--dg-text-secondary)] bg-[var(--dg-bg-tertiary)]",dot:"bg-[var(--dg-text-secondary)]"}},r=s[a]||s.pending;return e.jsxs(C,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:64:5",variant:"outline",className:r.className,children:[e.jsx("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:65:7",className:b("w-1.5 h-1.5 rounded-full mr-1.5",r.dot)}),r.label]})}function He({filteredInstances:a,loading:s,searchQuery:r,setSearchQuery:o,statusFilter:n,setStatusFilter:m,onView:p,onApprove:d,onReject:y}){return e.jsxs(e.Fragment,{children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:98:7",className:"flex items-center justify-between flex-wrap gap-4",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:99:9",className:"relative w-72",children:[e.jsx(Fe,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:100:11",className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-[var(--dg-text-muted)]"}),e.jsx(ce,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:101:11",placeholder:"搜索标题/申请人...",value:r,onChange:c=>o(c.target.value),className:"pl-9 h-9 bg-[var(--dg-bg-tertiary)] border-[var(--dg-border)] text-[var(--dg-text-primary)] placeholder:text-[var(--dg-text-muted)]"})]}),e.jsx("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:108:9",className:"flex items-center gap-1 bg-[var(--dg-bg-tertiary)] border border-[var(--dg-border)] rounded-lg p-1",children:Je.map(c=>e.jsx("button",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:110:13",onClick:()=>m(c.value),className:b("px-3 py-1.5 rounded-md text-sm transition-colors",n===c.value?"bg-[var(--dg-bg-hover)] text-[var(--dg-text-primary)] font-medium":"text-[var(--dg-text-secondary)] hover:text-[var(--dg-text-primary)]"),children:c.label},c.key))})]}),s?e.jsx(u,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:128:9",className:"bg-[var(--dg-bg-secondary)] border-[var(--dg-border)]",children:e.jsx(j,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:129:11",className:"p-12",children:e.jsxs("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:130:13",className:"flex items-center justify-center text-[var(--dg-text-muted)]",children:[e.jsx($,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:131:15",className:"h-6 w-6 animate-spin mr-2"}),"加载中..."]})})}):a.length===0?e.jsx(u,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:137:9",className:"bg-[var(--dg-bg-secondary)] border-[var(--dg-border)]",children:e.jsx(j,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:138:11",className:"p-12",children:e.jsxs("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:139:13",className:"text-center",children:[e.jsx(_,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:140:15",className:"h-12 w-12 mx-auto text-[var(--dg-text-muted)] mb-4"}),e.jsx("h3",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:141:15",className:"text-lg font-medium text-[var(--dg-text-secondary)] mb-2",children:"暂无审批流程"}),e.jsx("p",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:142:15",className:"text-sm text-[var(--dg-text-muted)]",children:"当前筛选条件下没有匹配的流程实例"})]})})}):e.jsx("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:147:9",className:"grid grid-cols-1 gap-4",children:a.map(c=>{const w=Me(A(c)),{percentage:l}=U(c);return e.jsx(u,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:152:15",className:"bg-[var(--dg-bg-secondary)] border-[var(--dg-border)] hover:border-[var(--dg-border)] transition-colors",children:e.jsxs(j,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:153:17",className:"p-4",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:154:19",className:"flex items-start justify-between mb-3",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:155:21",className:"flex items-start gap-3",children:[e.jsx("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:156:23",className:"w-10 h-10 rounded-lg bg-[var(--dg-bg-tertiary)] flex items-center justify-center",style:{color:L(A(c))},children:e.jsx(w,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:157:25",className:"h-5 w-5"})}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:159:23",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:160:25",className:"flex items-center gap-2 mb-1",children:[e.jsx("h3",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:161:27",className:"font-medium text-[var(--dg-text-primary)]",children:c.title}),qe(c.status)]}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:164:25",className:"flex items-center gap-3 text-xs text-[var(--dg-text-muted)]",children:[e.jsx("span",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:165:27",className:"flex items-center gap-1",children:e.jsx(C,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:166:29",variant:"outline",className:"text-xs border-[var(--dg-border)]",style:{color:L(A(c))},children:Y(A(c))})}),e.jsxs("span",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:170:27",children:["申请人:",c.applicant_name||c.applicant||"--"]}),e.jsxs("span",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:171:27",children:["提交于 ",c.created_at?new Date(c.created_at).toLocaleString():"--"]})]})]})]}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:175:21",className:"flex items-center gap-2",children:[e.jsxs(i,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:176:23",variant:"ghost",size:"sm",className:"text-[var(--dg-text-secondary)] hover:text-[var(--dg-text-primary)]",onClick:()=>p(c),children:[e.jsx(we,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:177:25",className:"h-4 w-4 mr-1"}),"详情"]}),c.status==="pending"&&e.jsxs(e.Fragment,{children:[e.jsxs(i,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:182:27",variant:"outline",size:"sm",className:"border-emerald-500/30 text-emerald-400 hover:bg-emerald-500/10",onClick:()=>d(c),children:[e.jsx(D,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:188:29",className:"h-4 w-4 mr-1"}),"通过"]}),e.jsxs(i,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:191:27",variant:"outline",size:"sm",className:"border-red-500/30 text-red-400 hover:bg-red-500/10",onClick:()=>y(c),children:[e.jsx(F,{"code-path":"src/components/approval/ApprovalProcessTab.tsx:197:29",className:"h-4 w-4 mr-1"}),"拒绝"]})]})]})]}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:205:19",className:"mb-3",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:206:21",className:"flex items-center justify-between text-xs text-[var(--dg-text-muted)] mb-1.5",children:[e.jsx("span",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:207:23",children:"审批进度"}),e.jsxs("span",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:208:23",children:[l,"%"]})]}),e.jsx("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:210:21",className:"w-full h-1.5 bg-[var(--dg-bg-tertiary)] rounded-full overflow-hidden",children:e.jsx("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:211:23",className:b("h-full rounded-full transition-all",c.status==="rejected"?"bg-red-400":"bg-[var(--dg-blue)]"),style:{width:`${l}%`}})})]}),e.jsx("div",{"code-path":"src/components/approval/ApprovalProcessTab.tsx:221:19",className:"bg-[var(--dg-bg-primary)] rounded-lg p-3",children:X(c)})]})},c.id)})})]})}function ne(a){if(Array.isArray(a))return a;if(typeof a=="string")try{const s=JSON.parse(a);return Array.isArray(s)?s:[]}catch{return[]}return[]}const K=[{value:"deploy",label:"发布审批",color:"var(--dg-blue)"},{value:"server",label:"服务器操作",color:"var(--dg-cyan)"},{value:"permission",label:"权限申请",color:"var(--dg-purple)"}],Ge=a=>K.find(s=>s.value===a)?.label||a||"通用审批",Qe=a=>K.find(s=>s.value===a)?.color||"var(--dg-text-secondary)";function Ye(a){const s=ne(a.steps);return s.length===0?e.jsx("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:37:12",className:"text-[var(--dg-text-muted)] text-center py-4",children:"暂无流程节点"}):e.jsx("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:40:5",className:"flex items-center gap-2 overflow-x-auto py-4",children:s.map((r,o)=>e.jsxs("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:42:9",className:"flex items-center",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:43:11",className:b("px-4 py-2 rounded-lg border min-w-[100px] text-center",r.type==="start"&&"bg-emerald-500/10 border-emerald-500/30 text-emerald-400",r.type==="approval"&&"bg-[var(--dg-blue)]/10 border-[var(--dg-blue)]/30 text-[var(--dg-blue)]",r.type==="condition"&&"bg-amber-500/10 border-amber-500/30 text-amber-400",r.type==="end"&&"bg-[var(--dg-bg-tertiary)] border-[var(--dg-border)] text-[var(--dg-text-secondary)]"),children:[e.jsx("p",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:52:13",className:"text-sm font-medium",children:r.name}),r.approvers&&e.jsx("p",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:54:15",className:"text-xs text-[var(--dg-text-muted)] mt-1",children:Array.isArray(r.approvers)?r.approvers.join(", "):r.approvers})]}),o<s.length-1&&e.jsx(Se,{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:60:13",className:"h-4 w-4 text-[var(--dg-text-muted)] mx-2"})]},r.id||o))})}function Ue({filteredTemplates:a,templateTypeFilter:s,setTemplateTypeFilter:r}){return e.jsxs(e.Fragment,{children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:82:7",className:"flex items-center gap-3 flex-wrap",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:83:9",className:"flex items-center gap-1.5 text-sm text-[var(--dg-text-secondary)]",children:[e.jsx(Ce,{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:84:11",className:"h-4 w-4"}),e.jsx("span",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:85:11",children:"类型筛选:"})]}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:87:9",className:"flex items-center gap-1 bg-[var(--dg-bg-tertiary)] border border-[var(--dg-border)] rounded-lg p-1",children:[e.jsx("button",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:88:11",onClick:()=>r("all"),className:b("px-3 py-1.5 rounded-md text-sm transition-colors",s==="all"?"bg-[var(--dg-bg-hover)] text-[var(--dg-text-primary)] font-medium":"text-[var(--dg-text-secondary)] hover:text-[var(--dg-text-primary)]"),children:"全部类型"}),K.map(o=>e.jsxs("button",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:100:13",onClick:()=>r(o.value),className:b("px-3 py-1.5 rounded-md text-sm transition-colors flex items-center gap-1.5",s===o.value?"bg-[var(--dg-bg-hover)] text-[var(--dg-text-primary)] font-medium":"text-[var(--dg-text-secondary)] hover:text-[var(--dg-text-primary)]"),children:[e.jsx("span",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:110:15",style:{color:o.color},children:"●"}),o.label]},o.value))]})]}),e.jsx("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:117:7",className:"grid grid-cols-1 gap-4",children:a.length===0?e.jsx(u,{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:119:11",className:"bg-[var(--dg-bg-secondary)] border-[var(--dg-border)]",children:e.jsx(j,{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:120:13",className:"p-8",children:e.jsxs("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:121:15",className:"text-center",children:[e.jsx(oe,{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:122:17",className:"h-12 w-12 mx-auto text-[var(--dg-text-muted)] mb-4"}),e.jsx("h3",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:123:17",className:"text-lg font-medium text-[var(--dg-text-secondary)] mb-2",children:"暂无流程模板"}),e.jsx("p",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:124:17",className:"text-sm text-[var(--dg-text-muted)]",children:"当前筛选条件下没有匹配的模板"})]})})}):a.map(o=>e.jsxs(u,{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:130:13",className:"bg-[var(--dg-bg-secondary)] border-[var(--dg-border)]",children:[e.jsx(fe,{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:131:15",className:"pb-2",children:e.jsxs("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:132:17",className:"flex items-start justify-between",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:133:19",className:"flex items-center gap-3",children:[e.jsx("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:134:21",className:"w-10 h-10 rounded-lg bg-[var(--dg-blue)]/10 flex items-center justify-center",children:e.jsx(oe,{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:135:23",className:"h-5 w-5 text-[var(--dg-blue)]"})}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:137:21",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:138:23",className:"flex items-center gap-2",children:[e.jsx(Te,{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:139:25",className:"text-base text-[var(--dg-text-primary)]",children:o.name}),o.type&&e.jsx(C,{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:141:27",variant:"outline",className:"text-xs border-[var(--dg-border)]",style:{color:Qe(o.type)},children:Ge(o.type)})]}),e.jsx(De,{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:150:23",className:"text-[var(--dg-text-muted)]",children:o.description})]})]}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:153:19",className:"flex items-center gap-2",children:[e.jsx(C,{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:154:21",variant:"outline",className:o.status===1||o.status==="active"||o.status===!0?"border-emerald-500/30 text-emerald-400 bg-emerald-500/10":"border-[var(--dg-border)] text-[var(--dg-text-secondary)] bg-[var(--dg-bg-tertiary)]",children:o.status===1||o.status==="active"||o.status===!0?"已启用":"已停用"}),e.jsx(i,{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:164:21",variant:"ghost",size:"icon",className:"h-8 w-8 text-[var(--dg-text-secondary)] hover:text-[var(--dg-text-primary)]",children:e.jsx(Pe,{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:165:23",className:"h-4 w-4"})})]})]})}),e.jsxs(j,{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:170:15",children:[e.jsx("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:171:17",className:"bg-[var(--dg-bg-primary)] rounded-lg p-4 overflow-x-auto",children:Ye(o)}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:174:17",className:"flex items-center justify-between mt-4 text-sm text-[var(--dg-text-muted)]",children:[e.jsxs("span",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:175:19",children:["创建于 ",o.created_at?new Date(o.created_at).toLocaleDateString():"--"]}),e.jsxs("span",{"code-path":"src/components/approval/ApprovalTemplateTab.tsx:176:19",children:[ne(o.steps).length," 个节点"]})]})]})]},o.id))})]})}function Xe({open:a,onOpenChange:s,instance:r,templates:o,onApprove:n,onReject:m}){return r?e.jsx(M,{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:41:5",open:a,onOpenChange:s,children:e.jsxs(J,{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:42:7",className:"max-w-2xl bg-[var(--dg-bg-secondary)] border-[var(--dg-border)] max-h-[90vh] overflow-y-auto",children:[e.jsxs(q,{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:43:9",children:[e.jsx(H,{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:44:11",className:"text-[var(--dg-text-primary)]",children:"审批详情"}),e.jsx(G,{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:45:11",className:"text-[var(--dg-text-muted)]",children:"查看审批流程详细信息"})]}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:47:9",className:"space-y-4 py-2",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:48:11",children:[e.jsx("h3",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:49:13",className:"text-lg font-medium text-[var(--dg-text-primary)]",children:r.title}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:50:13",className:"flex items-center gap-2 mt-1",children:[e.jsx(C,{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:51:15",variant:"outline",className:"text-xs border-[var(--dg-border)]",style:{color:L(A(r))},children:Y(A(r))}),e.jsxs("span",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:54:15",className:"text-xs text-[var(--dg-text-muted)]",children:["申请人:",r.applicant_name||r.applicant||"--"]}),e.jsxs("span",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:57:15",className:"text-xs text-[var(--dg-text-muted)]",children:["提交于 ",r.created_at?new Date(r.created_at).toLocaleString():"--"]})]})]}),r.content&&e.jsx("div",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:65:13",className:"bg-[var(--dg-bg-primary)] rounded-lg p-4",children:e.jsx("p",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:66:15",className:"text-sm text-[var(--dg-text-secondary)] whitespace-pre-wrap",children:r.content})}),(()=>{const p=o.find(y=>y.id===r.template_id),d=Ve(r.form_data,p);return d?e.jsxs("div",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:76:15",className:"bg-[var(--dg-bg-primary)] rounded-lg p-4",children:[e.jsx("p",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:77:17",className:"text-sm font-medium text-[var(--dg-text-secondary)] mb-3",children:"申请表单"}),d]}):null})(),e.jsxs("div",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:84:11",className:"bg-[var(--dg-bg-primary)] rounded-lg p-4",children:[e.jsx("p",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:85:13",className:"text-sm font-medium text-[var(--dg-text-secondary)] mb-3",children:"审批进度"}),X(r)]}),r.actions&&e.jsxs("div",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:91:13",className:"bg-[var(--dg-bg-primary)] rounded-lg p-4",children:[e.jsx("p",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:92:15",className:"text-sm font-medium text-[var(--dg-text-secondary)] mb-3",children:"操作记录"}),e.jsx("div",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:93:15",className:"space-y-2",children:r.actions.map((p,d)=>e.jsxs("div",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:95:19",className:"flex items-center gap-3 text-sm",children:[p.action==="approve"?e.jsx(D,{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:97:23",className:"h-4 w-4 text-emerald-400"}):p.action==="reject"?e.jsx(F,{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:99:23",className:"h-4 w-4 text-red-400"}):e.jsx(pe,{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:101:23",className:"h-4 w-4 text-[var(--dg-text-muted)]"}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:103:21",children:[e.jsx("span",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:104:23",className:"text-[var(--dg-text-secondary)]",children:p.operator_name||p.operator}),e.jsx("span",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:107:23",className:"text-[var(--dg-text-muted)] mx-1",children:"·"}),e.jsx("span",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:108:23",className:"text-[var(--dg-text-secondary)]",children:p.action==="approve"?"通过":p.action==="reject"?"拒绝":"提交"}),p.comment&&e.jsx("p",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:112:25",className:"text-xs text-[var(--dg-text-muted)] mt-0.5",children:p.comment})]}),e.jsx("span",{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:115:21",className:"text-xs text-[var(--dg-text-muted)] ml-auto",children:p.created_at?new Date(p.created_at).toLocaleString():""})]},d))})]})]}),e.jsxs(Q,{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:124:9",children:[r.status==="pending"&&e.jsxs(e.Fragment,{children:[e.jsxs(i,{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:127:15",variant:"outline",className:"border-red-500/30 text-red-400 hover:bg-red-500/10",onClick:()=>{s(!1),m(r)},children:[e.jsx(F,{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:128:17",className:"h-4 w-4 mr-2"}),"拒绝"]}),e.jsxs(i,{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:130:15",className:"bg-emerald-500/90 hover:bg-emerald-500 text-white",onClick:()=>{s(!1),n(r)},children:[e.jsx(D,{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:131:17",className:"h-4 w-4 mr-2"}),"通过"]})]}),e.jsx(i,{"code-path":"src/components/approval/ApprovalDetailDialog.tsx:135:11",variant:"ghost",onClick:()=>s(!1),children:"关闭"})]})]})}):null}function Ke({open:a,onOpenChange:s,templates:r,onSuccess:o}){const[n,m]=v.useState(null),[p,d]=v.useState({}),[y,c]=v.useState(!1),w=async()=>{if(!n){T.error("请先选择申请类型");return}const l=I(n.form_schema);for(const x of l)if(x.required&&!p[x.key]){T.error(`请填写${x.label}`);return}c(!0);try{await k.createProcess({template_id:n.id,title:p.app_name||n.name,form_data:JSON.stringify(p)}),T.success("申请已提交"),s(!1),m(null),d({}),o()}catch(x){T.error("提交失败",{description:x?.message})}finally{c(!1)}};return e.jsx(M,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:78:5",open:a,onOpenChange:l=>{l||(m(null),d({})),s(l)},children:e.jsxs(J,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:89:7",className:"max-w-2xl bg-[var(--dg-bg-secondary)] border-[var(--dg-border)] max-h-[90vh] overflow-y-auto",children:[e.jsxs(q,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:90:9",children:[e.jsx(H,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:91:11",className:"text-[var(--dg-text-primary)]",children:"新建资源申请"}),e.jsx(G,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:92:11",className:"text-[var(--dg-text-muted)]",children:n?"请填写申请信息":"请选择申请类型"})]}),n?e.jsxs("div",{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:135:11",className:"py-2",children:[e.jsx("div",{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:136:13",className:"flex items-center gap-2 mb-4",children:e.jsx("button",{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:137:15",type:"button",onClick:()=>{m(null),d({})},className:"text-xs text-[var(--dg-text-muted)] hover:text-[var(--dg-text-primary)]",children:"← 返回选择类型"})}),e.jsx("div",{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:145:13",className:"grid grid-cols-2 gap-x-4 gap-y-4",children:I(n.form_schema).map(l=>{const x=l.type==="textarea";return e.jsxs("div",{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:149:19",className:b("space-y-1.5",x&&"col-span-2"),children:[e.jsxs(ke,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:150:21",className:"text-sm font-medium text-[var(--dg-text-secondary)]",children:[l.label,l.required&&e.jsx("span",{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:152:42",className:"text-red-400 ml-0.5",children:"*"})]}),l.type==="select"?e.jsxs(_e,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:155:23",value:String(p[l.key]??""),onValueChange:h=>d(g=>({...g,[l.key]:h})),children:[e.jsx(Le,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:159:25",className:"bg-[var(--dg-bg-primary)] border-[var(--dg-border)] text-[var(--dg-text-primary)]",children:e.jsx(Oe,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:160:27",placeholder:l.placeholder||`请选择${l.label}`})}),e.jsx(Ie,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:162:25",className:"bg-[var(--dg-bg-secondary)] border-[var(--dg-border)]",children:(l.options||[]).map(h=>e.jsx($e,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:164:29",value:h,className:"text-[var(--dg-text-primary)] focus:bg-[var(--dg-bg-hover)]",children:h},h))})]}):l.type==="textarea"?e.jsx(le,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:171:23",placeholder:l.placeholder||`请输入${l.label}`,value:p[l.key]??"",onChange:h=>d(g=>({...g,[l.key]:h.target.value})),className:"bg-[var(--dg-bg-primary)] border-[var(--dg-border)] text-[var(--dg-text-primary)] placeholder:text-[var(--dg-text-muted)] min-h-[80px]"}):e.jsx(ce,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:178:23",type:l.type==="number"?"number":"text",placeholder:l.placeholder||`请输入${l.label}`,value:p[l.key]??"",onChange:h=>d(g=>({...g,[l.key]:h.target.value})),className:"bg-[var(--dg-bg-primary)] border-[var(--dg-border)] text-[var(--dg-text-primary)] placeholder:text-[var(--dg-text-muted)]"})]},l.key)})})]}):e.jsx("div",{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:99:11",className:"grid grid-cols-2 gap-4 py-2",children:z.map(l=>{const x=r.find(g=>g.type===l.value&&g.enabled!==!1),h=l.icon;return e.jsxs("button",{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:106:17",type:"button",disabled:!x,onClick:()=>{m(x),d({})},className:b("flex flex-col items-start gap-3 p-5 rounded-xl text-left transition-colors","bg-[var(--dg-bg-tertiary)] hover:bg-[var(--dg-bg-hover)]",!x&&"opacity-40 cursor-not-allowed hover:bg-[var(--dg-bg-tertiary)]"),children:[e.jsx("div",{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:117:19",className:"w-10 h-10 rounded-lg flex items-center justify-center",style:{backgroundColor:`color-mix(in srgb, ${l.color} 15%, transparent)`,color:l.color},children:e.jsx(h,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:121:21",className:"h-5 w-5"})}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:123:19",children:[e.jsx("p",{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:124:21",className:"text-sm font-medium text-[var(--dg-text-primary)]",children:l.label}),e.jsx("p",{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:125:21",className:"text-xs text-[var(--dg-text-muted)] mt-0.5",children:x?x.description||`共 ${I(x.form_schema).length} 个字段`:"暂无可用模板"})]})]},l.value)})}),e.jsxs(Q,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:196:9",children:[e.jsx(i,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:197:11",variant:"ghost",onClick:()=>s(!1),children:"取消"}),n&&e.jsxs(i,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:199:13",className:"bg-[var(--dg-blue)] hover:opacity-90 text-white",onClick:w,disabled:y,children:[y&&e.jsx($,{"code-path":"src/components/approval/ApprovalCreateDialog.tsx:204:30",className:"h-4 w-4 mr-2 animate-spin"}),"提交申请"]})]})]})})}function We(){const[a,s]=v.useState("instances"),[r,o]=v.useState([]),[n,m]=v.useState([]),[p,d]=v.useState([]),[y,c]=v.useState(!0),[w,l]=v.useState(""),[x,h]=v.useState(""),[g,de]=v.useState("all"),[me,W]=v.useState(!1),[P,Z]=v.useState(null),[ve,O]=v.useState(!1),[f,xe]=v.useState("approve"),[R,ee]=v.useState(""),[ae,te]=v.useState(!1),[ie,re]=v.useState(!1),B=async()=>{try{c(!0);const[t,N,V]=await Promise.all([k.getProcesses().catch(()=>null),k.getTemplates().catch(()=>null),k.getProcesses({status:"pending"}).catch(()=>null)]);o(t?.list||[]),m(N?.list||[]),d(V?.list||[])}catch(t){console.error("加载审批数据失败:",t)}finally{c(!1)}};v.useEffect(()=>{B()},[]);const he=r.filter(t=>{const N=(t.title||"").toLowerCase().includes(w.toLowerCase())||(t.applicant_name||t.applicant||"").toLowerCase().includes(w.toLowerCase()),V=!x||t.status===x;return N&&V}),ge=n.filter(t=>g==="all"||t.type===g),se=t=>{Z(t),W(!0)},S=(t,N)=>{xe(t),Z(N),ee(""),O(!0)},be=async()=>{if(P)try{te(!0),f==="approve"?(await k.approveProcess(P.id,R),T.success("审批通过")):(await k.rejectProcess(P.id,R),T.success("已拒绝")),O(!1),B()}catch(t){T.error("操作失败",{description:t.message})}finally{te(!1)}},ue=r.filter(t=>t.status==="pending").length,je=r.filter(t=>t.status==="approved").length,Ae=r.filter(t=>t.status==="rejected").length,E=p.filter(t=>t.status==="pending").length;return e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:139:5",className:"space-y-6",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:141:7",className:"flex items-center justify-between",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:142:9",children:[e.jsx("h1",{"code-path":"src/components/approval/ApprovalFlow.tsx:143:11",className:"text-2xl font-bold text-[var(--dg-text-primary)]",children:"资源申请"}),e.jsx("p",{"code-path":"src/components/approval/ApprovalFlow.tsx:144:11",className:"text-sm text-[var(--dg-text-muted)] mt-1",children:"云服务器申请 · 应用部署申请"})]}),e.jsxs(i,{"code-path":"src/components/approval/ApprovalFlow.tsx:146:9",className:"bg-[var(--dg-blue)] hover:opacity-90 text-white",onClick:()=>re(!0),children:[e.jsx(ze,{"code-path":"src/components/approval/ApprovalFlow.tsx:150:11",className:"h-4 w-4 mr-2"}),"新建申请"]})]}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:156:7",className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[e.jsx(u,{"code-path":"src/components/approval/ApprovalFlow.tsx:157:9",className:"bg-[var(--dg-bg-secondary)] border-[var(--dg-border)]",children:e.jsx(j,{"code-path":"src/components/approval/ApprovalFlow.tsx:158:11",className:"p-4",children:e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:159:13",className:"flex items-center justify-between",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:160:15",children:[e.jsx("p",{"code-path":"src/components/approval/ApprovalFlow.tsx:161:17",className:"text-sm text-[var(--dg-text-muted)]",children:"待审批"}),e.jsx("p",{"code-path":"src/components/approval/ApprovalFlow.tsx:162:17",className:"text-2xl font-bold text-amber-400",children:ue})]}),e.jsx("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:164:15",className:"p-3 rounded-lg bg-amber-500/10 text-amber-400",children:e.jsx(pe,{"code-path":"src/components/approval/ApprovalFlow.tsx:165:17",className:"h-5 w-5"})})]})})}),e.jsx(u,{"code-path":"src/components/approval/ApprovalFlow.tsx:170:9",className:"bg-[var(--dg-bg-secondary)] border-[var(--dg-border)]",children:e.jsx(j,{"code-path":"src/components/approval/ApprovalFlow.tsx:171:11",className:"p-4",children:e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:172:13",className:"flex items-center justify-between",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:173:15",children:[e.jsx("p",{"code-path":"src/components/approval/ApprovalFlow.tsx:174:17",className:"text-sm text-[var(--dg-text-muted)]",children:"已通过"}),e.jsx("p",{"code-path":"src/components/approval/ApprovalFlow.tsx:175:17",className:"text-2xl font-bold text-emerald-400",children:je})]}),e.jsx("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:177:15",className:"p-3 rounded-lg bg-emerald-500/10 text-emerald-400",children:e.jsx(D,{"code-path":"src/components/approval/ApprovalFlow.tsx:178:17",className:"h-5 w-5"})})]})})}),e.jsx(u,{"code-path":"src/components/approval/ApprovalFlow.tsx:183:9",className:"bg-[var(--dg-bg-secondary)] border-[var(--dg-border)]",children:e.jsx(j,{"code-path":"src/components/approval/ApprovalFlow.tsx:184:11",className:"p-4",children:e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:185:13",className:"flex items-center justify-between",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:186:15",children:[e.jsx("p",{"code-path":"src/components/approval/ApprovalFlow.tsx:187:17",className:"text-sm text-[var(--dg-text-muted)]",children:"已拒绝"}),e.jsx("p",{"code-path":"src/components/approval/ApprovalFlow.tsx:188:17",className:"text-2xl font-bold text-red-400",children:Ae})]}),e.jsx("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:190:15",className:"p-3 rounded-lg bg-red-500/10 text-red-400",children:e.jsx(F,{"code-path":"src/components/approval/ApprovalFlow.tsx:191:17",className:"h-5 w-5"})})]})})}),e.jsx(u,{"code-path":"src/components/approval/ApprovalFlow.tsx:196:9",className:"bg-[var(--dg-bg-secondary)] border-[var(--dg-border)]",children:e.jsx(j,{"code-path":"src/components/approval/ApprovalFlow.tsx:197:11",className:"p-4",children:e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:198:13",className:"flex items-center justify-between",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:199:15",children:[e.jsx("p",{"code-path":"src/components/approval/ApprovalFlow.tsx:200:17",className:"text-sm text-[var(--dg-text-muted)]",children:"我的待办"}),e.jsx("p",{"code-path":"src/components/approval/ApprovalFlow.tsx:201:17",className:"text-2xl font-bold text-[var(--dg-blue)]",children:E})]}),e.jsx("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:203:15",className:"p-3 rounded-lg bg-[var(--dg-blue)]/10 text-[var(--dg-blue)]",children:e.jsx(_,{"code-path":"src/components/approval/ApprovalFlow.tsx:204:17",className:"h-5 w-5"})})]})})})]}),e.jsx("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:212:7",className:"flex items-center gap-1 border-b border-[var(--dg-border)]",children:[{key:"instances",label:"审批实例"},{key:"flows",label:"流程模板"},{key:"my-approvals",label:"我的审批"}].map(t=>e.jsxs("button",{"code-path":"src/components/approval/ApprovalFlow.tsx:218:11",onClick:()=>s(t.key),className:b("px-4 py-2 text-sm font-medium border-b-2 -mb-px transition-colors",a===t.key?"border-[var(--dg-blue)] text-[var(--dg-blue)]":"border-transparent text-[var(--dg-text-secondary)] hover:text-[var(--dg-text-primary)]"),children:[t.label,t.key==="my-approvals"&&E>0&&e.jsx(C,{"code-path":"src/components/approval/ApprovalFlow.tsx:230:15",className:"ml-2 bg-red-500/20 text-red-400 border-0 text-xs",children:E})]},t.key))}),a==="instances"&&e.jsx(He,{"code-path":"src/components/approval/ApprovalFlow.tsx:238:9",processes:r,filteredInstances:he,loading:y,searchQuery:w,setSearchQuery:l,statusFilter:x,setStatusFilter:h,onView:se,onApprove:t=>S("approve",t),onReject:t=>S("reject",t)}),a==="flows"&&e.jsx(Ue,{"code-path":"src/components/approval/ApprovalFlow.tsx:253:9",filteredTemplates:ge,templateTypeFilter:g,setTemplateTypeFilter:de}),a==="my-approvals"&&e.jsx("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:261:9",className:"grid grid-cols-1 gap-4",children:p.length===0?e.jsx(u,{"code-path":"src/components/approval/ApprovalFlow.tsx:263:13",className:"bg-[var(--dg-bg-secondary)] border-[var(--dg-border)]",children:e.jsx(j,{"code-path":"src/components/approval/ApprovalFlow.tsx:264:15",className:"p-12",children:e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:265:17",className:"text-center",children:[e.jsx(_,{"code-path":"src/components/approval/ApprovalFlow.tsx:266:19",className:"h-12 w-12 mx-auto text-[var(--dg-text-muted)] mb-4"}),e.jsx("h3",{"code-path":"src/components/approval/ApprovalFlow.tsx:267:19",className:"text-lg font-medium text-[var(--dg-text-secondary)] mb-2",children:"暂无待办"}),e.jsx("p",{"code-path":"src/components/approval/ApprovalFlow.tsx:268:19",className:"text-sm text-[var(--dg-text-muted)]",children:"没有等待你处理的审批"})]})})}):p.map(t=>{const{percentage:N}=U(t);return e.jsx(u,{"code-path":"src/components/approval/ApprovalFlow.tsx:276:17",className:"bg-[var(--dg-bg-secondary)] border-[var(--dg-border)]",children:e.jsxs(j,{"code-path":"src/components/approval/ApprovalFlow.tsx:277:19",className:"p-4",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:278:21",className:"flex items-start justify-between mb-3",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:279:23",className:"flex items-start gap-3",children:[e.jsx("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:280:25",className:"w-10 h-10 rounded-lg bg-[var(--dg-bg-tertiary)] flex items-center justify-center",style:{color:L(A(t))},children:e.jsx(_,{"code-path":"src/components/approval/ApprovalFlow.tsx:281:27",className:"h-5 w-5"})}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:283:25",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:284:27",className:"flex items-center gap-2 mb-1",children:[e.jsx("h3",{"code-path":"src/components/approval/ApprovalFlow.tsx:285:29",className:"font-medium text-[var(--dg-text-primary)]",children:t.title}),e.jsx(C,{"code-path":"src/components/approval/ApprovalFlow.tsx:286:29",variant:"outline",className:"text-xs border-[var(--dg-border)]",style:{color:L(A(t))},children:Y(A(t))})]}),e.jsxs("p",{"code-path":"src/components/approval/ApprovalFlow.tsx:290:27",className:"text-xs text-[var(--dg-text-muted)]",children:["申请人:",t.applicant_name||t.applicant||"--"]}),e.jsxs("p",{"code-path":"src/components/approval/ApprovalFlow.tsx:293:27",className:"text-xs text-[var(--dg-text-muted)]",children:["提交于 ",t.created_at?new Date(t.created_at).toLocaleString():"--"]})]})]}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:298:23",className:"flex items-center gap-2",children:[e.jsxs(i,{"code-path":"src/components/approval/ApprovalFlow.tsx:299:25",variant:"ghost",size:"sm",onClick:()=>se(t),children:[e.jsx(_,{"code-path":"src/components/approval/ApprovalFlow.tsx:300:27",className:"h-4 w-4 mr-1"}),"详情"]}),t.status==="pending"&&e.jsxs(e.Fragment,{children:[e.jsxs(i,{"code-path":"src/components/approval/ApprovalFlow.tsx:305:29",variant:"outline",size:"sm",className:"border-emerald-500/30 text-emerald-400 hover:bg-emerald-500/10",onClick:()=>S("approve",t),children:[e.jsx(D,{"code-path":"src/components/approval/ApprovalFlow.tsx:306:31",className:"h-4 w-4 mr-1"}),"通过"]}),e.jsxs(i,{"code-path":"src/components/approval/ApprovalFlow.tsx:308:29",variant:"outline",size:"sm",className:"border-red-500/30 text-red-400 hover:bg-red-500/10",onClick:()=>S("reject",t),children:[e.jsx(F,{"code-path":"src/components/approval/ApprovalFlow.tsx:309:31",className:"h-4 w-4 mr-1"}),"拒绝"]})]})]})]}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:315:21",className:"mb-3",children:[e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:316:23",className:"flex items-center justify-between text-xs text-[var(--dg-text-muted)] mb-1.5",children:[e.jsx("span",{"code-path":"src/components/approval/ApprovalFlow.tsx:317:25",children:"审批进度"}),e.jsxs("span",{"code-path":"src/components/approval/ApprovalFlow.tsx:318:25",children:[N,"%"]})]}),e.jsx("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:320:23",className:"w-full h-1.5 bg-[var(--dg-bg-tertiary)] rounded-full overflow-hidden",children:e.jsx("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:321:25",className:b("h-full rounded-full",t.status==="rejected"?"bg-red-400":"bg-[var(--dg-blue)]"),style:{width:`${N}%`}})})]}),e.jsx("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:324:21",className:"bg-[var(--dg-bg-primary)] rounded-lg p-3",children:X(t)})]})},t.id)})}),e.jsx(Xe,{"code-path":"src/components/approval/ApprovalFlow.tsx:336:7",open:me,onOpenChange:W,instance:P,templates:n,onApprove:t=>S("approve",t),onReject:t=>S("reject",t)}),e.jsx(M,{"code-path":"src/components/approval/ApprovalFlow.tsx:346:7",open:ve,onOpenChange:O,children:e.jsxs(J,{"code-path":"src/components/approval/ApprovalFlow.tsx:347:9",className:"max-w-md bg-[var(--dg-bg-secondary)] border-[var(--dg-border)]",children:[e.jsxs(q,{"code-path":"src/components/approval/ApprovalFlow.tsx:348:11",children:[e.jsx(H,{"code-path":"src/components/approval/ApprovalFlow.tsx:349:13",className:"text-[var(--dg-text-primary)] flex items-center gap-2",children:f==="approve"?e.jsxs(e.Fragment,{children:[e.jsx(D,{"code-path":"src/components/approval/ApprovalFlow.tsx:352:19",className:"h-5 w-5 text-emerald-400"}),"确认通过审批"]}):e.jsxs(e.Fragment,{children:[e.jsx(F,{"code-path":"src/components/approval/ApprovalFlow.tsx:357:19",className:"h-5 w-5 text-red-400"}),"确认拒绝审批"]})}),e.jsx(G,{"code-path":"src/components/approval/ApprovalFlow.tsx:362:13",className:"text-[var(--dg-text-muted)]",children:f==="approve"?"请填写审批意见后确认通过":"请填写拒绝原因后确认拒绝"})]}),P&&e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:367:13",className:"py-2",children:[e.jsxs("p",{"code-path":"src/components/approval/ApprovalFlow.tsx:368:15",className:"text-sm text-[var(--dg-text-secondary)] mb-2",children:["审批标题:",e.jsx("span",{"code-path":"src/components/approval/ApprovalFlow.tsx:369:22",className:"text-[var(--dg-text-primary)]",children:P.title})]}),e.jsxs("div",{"code-path":"src/components/approval/ApprovalFlow.tsx:371:15",className:"space-y-2",children:[e.jsx("label",{"code-path":"src/components/approval/ApprovalFlow.tsx:372:17",className:"text-sm font-medium text-[var(--dg-text-secondary)]",children:f==="approve"?"审批意见":"拒绝原因"}),e.jsx(le,{"code-path":"src/components/approval/ApprovalFlow.tsx:375:17",placeholder:f==="approve"?"请填写审批意见(可选)":"请填写拒绝原因",value:R,onChange:t=>ee(t.target.value),className:"bg-[var(--dg-bg-primary)] border-[var(--dg-border)] text-[var(--dg-text-primary)] placeholder:text-[var(--dg-text-muted)] min-h-[80px]"})]})]}),e.jsxs(Q,{"code-path":"src/components/approval/ApprovalFlow.tsx:384:11",children:[e.jsx(i,{"code-path":"src/components/approval/ApprovalFlow.tsx:385:13",variant:"outline",onClick:()=>O(!1),className:"border-[var(--dg-border)] text-[var(--dg-text-secondary)]",children:"取消"}),e.jsxs(i,{"code-path":"src/components/approval/ApprovalFlow.tsx:388:13",onClick:be,disabled:ae,className:f==="approve"?"bg-emerald-500/90 hover:bg-emerald-500 text-white":"bg-red-500 hover:bg-red-600 text-white",children:[ae&&e.jsx($,{"code-path":"src/components/approval/ApprovalFlow.tsx:393:36",className:"h-4 w-4 mr-2 animate-spin"}),f==="approve"?"确认通过":"确认拒绝"]})]})]})}),e.jsx(Ke,{"code-path":"src/components/approval/ApprovalFlow.tsx:401:7",open:ie,onOpenChange:re,templates:n,onSuccess:B})]})}const ba=We;export{We as ApprovalFlow,ba as ApprovalFlowManager};
|