2 lines
24 KiB
JavaScript
2 lines
24 KiB
JavaScript
import{r as l,u as Q,j as e,L as D,B as $,Q as V,V as R,X as z,t as Y,W as X,P as H}from"./index-CwVkcMR-.js";import{C as K,a as Z}from"./card-C5qBu7CR.js";import{t as _}from"./index-Dxvx0mlR.js";import{a as C}from"./approval-DOWuQTU9.js";import{P as J}from"./plus-CaJ-dB4A.js";import{S as B}from"./star-BY-sYfNe.js";import{C as ee}from"./chevron-up-DM77dvsL.js";import{P as F}from"./play-_cqG4jyc.js";import{P as se}from"./pen-BT_2xx_Z.js";import{T as G}from"./trash-2-BPpnm3Sz.js";import{A as ae,a as te}from"./arrow-up-Tz6HpGg2.js";const re={resource:"资源申请",app:"应用申请",permission:"权限审批"},L={submit:"提交阶段",audit:"审核阶段",execute:"执行阶段"},O={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:Y,execute:F},pe=[{value:"submit",label:"提交阶段",desc:"工单提交人"},{value:"audit",label:"审核阶段",desc:"审核人员审批"},{value:"execute",label:"执行阶段",desc:"执行人员操作"}];function le({users:i,selectedIds:x,label:v,onToggle:j,onToggleAll:y,onClear:f,getUserName:W}){const[m,N]=l.useState(!1),b=l.useRef(null),[k,p]=l.useState({top:0,left:0,width:0}),h=()=>{if(b.current){const c=b.current.getBoundingClientRect();p({top:c.bottom+4,left:c.left,width:c.width})}};return e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:112:5",className:"relative",children:[e.jsxs("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:113:7",ref:b,type:"button",onClick:()=>{m||h(),N(!m)},className:`w-full flex items-center justify-between px-3 py-2 rounded-lg text-sm transition-colors ${x.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:123:9",className:"truncate",children:x.length===0?`${v} * 请选择`:`${v} (${x.length}人)`}),e.jsx(R,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:126:9",className:`w-4 h-4 text-[var(--dg-text-muted)] transition-transform ${m?"rotate-180":""}`})]}),x.length>1&&e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:130:9",className:"flex flex-wrap gap-1 mt-1.5",children:x.map(c=>e.jsxs("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:132: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:[W(c),e.jsx("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:134:15",onClick:()=>j(c),className:"hover:text-red-400",children:e.jsx(z,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:134:84",className:"w-3 h-3"})})]},c))}),m&&e.jsxs(e.Fragment,{children:[e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:142:11",className:"fixed inset-0 z-40",onClick:()=>N(!1)}),e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:143: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:145: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:146:15",onClick:y,className:"text-[11px] text-blue-400 hover:text-blue-300",children:x.length===i.length&&i.length>0?"取消全选":"全选"}),x.length>0&&e.jsx("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:150:17",onClick:f,className:"text-[11px] text-red-400 hover:text-red-300",children:"清空"})]}),i.map(c=>{const w=x.includes(c.id);return e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:156:17",onClick:()=>j(c.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:158: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:161:33",className:"w-3 h-3 text-white"})}),e.jsx("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:163:19",className:`text-sm flex-1 ${w?"text-[var(--dg-text-primary)]":"text-[var(--dg-text-secondary)]"}`,children:c.display_name||c.username}),e.jsx("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:166:19",className:"text-[10px] text-[var(--dg-text-muted)] px-1.5 py-0.5 rounded bg-[var(--dg-bg-tertiary)]",children:c.role})]},c.id)})]})]})]})}function ce({workflow:i,users:x,onClose:v,onSaved:j}){const y=!!i,[f,W]=l.useState(i?.name||""),[m,N]=l.useState(i?.description||""),[b,k]=l.useState(i?.category||"resource"),[p,h]=l.useState([]),[c,w]=l.useState(!1),[E,P]=l.useState("");l.useEffect(()=>{i?.steps?.length?h(i.steps.map(s=>({name:s.name,step_type:s.step_type==="serial"||s.step_type==="parallel"?"audit":s.step_type,approver_ids:U(s.approver_ids)}))):h([{name:"提交申请",step_type:"submit",approver_ids:[]},{name:"审核",step_type:"audit",approver_ids:[]}])},[i]);const U=s=>{if(!s)return[];try{const t=JSON.parse(s);return Array.isArray(t)?t:[]}catch{return[]}},a=s=>{const t={submit:"提交",audit:"审核",execute:"执行"},r=p.filter(u=>u.step_type===s).length,g=r>0?` ${r+1}`:"";h([...p,{name:`${t[s]}${g}`,step_type:s,approver_ids:[]}])},n=s=>h(p.filter((t,r)=>r!==s)),o=(s,t)=>{const r=s+t;if(r<0||r>=p.length)return;const g=[...p];[g[s],g[r]]=[g[r],g[s]],h(g)},d=(s,t)=>{h(p.map((r,g)=>g===s?{...r,...t}:r))},S=(s,t)=>{const r=p[s],g=r.approver_ids.includes(t);d(s,{approver_ids:g?r.approver_ids.filter(u=>u!==t):[...r.approver_ids,t]})},A=s=>{const t=x.filter(r=>r.is_active!==!1);return s==="audit"?t:s==="execute"?t.filter(r=>["super_admin","k8s_admin","release_admin","resource_admin"].includes(r.role)):t},q=s=>{const t=p[s],r=A(t.step_type),g=t.approver_ids.length===r.length&&r.length>0;d(s,{approver_ids:g?[]:r.map(u=>u.id)})},I=async()=>{if(!f.trim()){P("请输入流程名称");return}if(p.length===0){P("请至少添加一个步骤");return}for(let s=0;s<p.length;s++)if(p[s].step_type!=="submit"&&p[s].approver_ids.length===0){P(`步骤"${p[s].name}"需要关联至少一个审批人`);return}w(!0),P("");try{const s={name:f.trim(),description:m.trim()||null,category:b,steps:p.map((t,r)=>({step_number:r+1,name:t.name,step_type:t.step_type,approver_ids:t.approver_ids.length>0?JSON.stringify(t.approver_ids):null,is_required:!0,timeout_hours:24,auto_approve_on_timeout:!1}))};y&&i?await C.update(i.id,s):await C.create(s),j()}catch(s){const t=s?.response?.data?.detail||"保存失败";P(t)}finally{w(!1)}},M=s=>{const t=x.find(r=>r.id===s);return t?t.display_name||t.username:`#${s}`},T="w-full px-3 py-2 bg-[var(--dg-bg-tertiary)] border border-[var(--dg-border)] rounded-lg text-sm focus:border-blue-400 focus:outline-none transition-colors text-[var(--dg-text-primary)]";return e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:314:5",className:"fixed inset-0 z-50 flex items-center justify-center",children:[e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:315:7",className:"absolute inset-0 bg-black/50",onClick:v}),e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:316:7",className:"relative bg-[var(--dg-bg-secondary)] rounded-xl shadow-2xl w-full max-w-2xl max-h-[90vh] overflow-y-auto m-4",children:[e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:317:9",className:"flex items-center justify-between px-5 py-4 border-b border-[var(--dg-border)]",children:[e.jsx("h2",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:318:11",className:"text-base font-semibold text-[var(--dg-text-primary)]",children:y?"编辑审批流程":"新建审批流程"}),e.jsx("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:321:11",onClick:v,className:"p-1.5 rounded-lg hover:bg-[var(--dg-bg-hover)] text-[var(--dg-text-secondary)] transition-colors",children:e.jsx(z,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:322:13",className:"w-4 h-4"})})]}),e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:326:9",className:"px-5 pb-5 space-y-4 pt-4",children:[E&&e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:327:21",className:"px-3 py-2 text-sm text-red-400 bg-red-500/10 rounded-lg",children:E}),e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:329:11",className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:330:13",children:[e.jsx("label",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:331:15",className:"block text-xs font-medium text-[var(--dg-text-secondary)] mb-1",children:"流程名称 *"}),e.jsx("input",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:332:15",className:T,value:f,onChange:s=>W(s.target.value),placeholder:"输入流程名称"})]}),e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:334:13",children:[e.jsx("label",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:335:15",className:"block text-xs font-medium text-[var(--dg-text-secondary)] mb-1",children:"所属分类"}),e.jsxs("select",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:336:15",className:T,value:b,onChange:s=>k(s.target.value),children:[e.jsx("option",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:337:17",value:"resource",children:"资源申请"}),e.jsx("option",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:338:17",value:"app",children:"应用申请"}),e.jsx("option",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:339:17",value:"permission",children:"权限审批"})]})]})]}),e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:344:11",children:[e.jsx("label",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:345:13",className:"block text-xs font-medium text-[var(--dg-text-secondary)] mb-1",children:"描述"}),e.jsx("input",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:346:13",className:T,value:m,onChange:s=>N(s.target.value),placeholder:"可选"})]}),e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:350:11",children:[e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:351:13",className:"flex items-center justify-between mb-2",children:[e.jsx("label",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:352:15",className:"text-xs font-medium text-[var(--dg-text-secondary)]",children:"流程步骤"}),e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:353:15",className:"flex items-center gap-1",children:pe.map(s=>e.jsxs("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:355:19",onClick:()=>a(s.value),className:"flex items-center gap-1 px-2 py-1 text-[11px] font-medium bg-blue-500/10 text-blue-400 hover:bg-blue-500/20 rounded transition-colors",children:[e.jsx(J,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:357:21",className:"w-3 h-3"}),s.label]},s.value))})]}),e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:363:13",className:"space-y-2",children:[p.map((s,t)=>{const r=O[s.step_type],g=oe[s.step_type]||Y;return e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:368:19",className:"p-3 bg-[var(--dg-bg-primary)] rounded-lg border border-[var(--dg-border)]",children:[e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:369:21",className:"flex items-center gap-2 mb-2",children:[e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:370:23",className:`w-7 h-7 rounded-md flex items-center justify-center flex-shrink-0 ${r.split(" ")[0]}`,children:e.jsx(g,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:371:25",className:`w-3.5 h-3.5 ${r.split(" ")[1]}`})}),e.jsx("input",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:373:23",className:"flex-1 px-2 py-1 bg-[var(--dg-bg-tertiary)] border border-[var(--dg-border)] rounded text-sm focus:border-blue-400 focus:outline-none text-[var(--dg-text-primary)]",value:s.name,onChange:u=>d(t,{name:u.target.value}),placeholder:"步骤名称"}),e.jsx("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:378:23",className:`text-[10px] px-1.5 py-0.5 rounded ${r}`,children:L[s.step_type]}),e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:381:23",className:"flex items-center gap-0.5 ml-1",children:[e.jsx("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:382:25",onClick:()=>o(t,-1),disabled:t===0,className:"p-1 rounded hover:bg-[var(--dg-bg-hover)] text-[var(--dg-text-muted)] disabled:opacity-20 transition-colors",children:e.jsx(ae,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:384:27",className:"w-3.5 h-3.5"})}),e.jsx("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:386:25",onClick:()=>o(t,1),disabled:t===p.length-1,className:"p-1 rounded hover:bg-[var(--dg-bg-hover)] text-[var(--dg-text-muted)] disabled:opacity-20 transition-colors",children:e.jsx(te,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:388:27",className:"w-3.5 h-3.5"})}),e.jsx("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:390:25",onClick:()=>n(t),className:"p-1 rounded hover:bg-red-500/10 text-[var(--dg-text-muted)] hover:text-red-400 transition-colors",children:e.jsx(G,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:392:27",className:"w-3.5 h-3.5"})})]})]}),s.step_type!=="submit"&&e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:398:23",className:"pl-9 mt-2",children:e.jsx(le,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:399:25",users:A(s.step_type),selectedIds:s.approver_ids,label:s.step_type==="audit"?"审核人":"执行人",onToggle:u=>S(t,u),onToggleAll:()=>q(t),onClear:()=>d(t,{approver_ids:[]}),getUserName:M})})]},t)}),p.length===0&&e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:415:17",className:"text-center py-4 text-sm text-[var(--dg-text-muted)]",children:"请点击上方按钮添加流程步骤"})]})]})]}),e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:423:9",className:"flex items-center justify-end gap-3 px-5 py-4 border-t border-[var(--dg-border)]",children:[e.jsx("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:424:11",onClick:v,className:"px-4 py-2 text-sm text-[var(--dg-text-secondary)] hover:bg-[var(--dg-bg-hover)] rounded-lg transition-colors",children:"取消"}),e.jsxs($,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:427:11",onClick:I,disabled:c,children:[c&&e.jsx(D,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:428:28",className:"w-4 h-4 animate-spin mr-1"}),y?"保存":"创建"]})]})]})]})}function ke(){const[i,x]=l.useState([]),[v,j]=l.useState([]),[y,f]=l.useState(!0),[W,m]=l.useState(null),[N,b]=l.useState(null),[k,p]=l.useState(void 0),h=l.useCallback(async()=>{try{f(!0),m(null);const a=await C.list(),o=(Array.isArray(a?.list)?a.list:Array.isArray(a)?a:[]).map(d=>({...d,steps:d.steps||[]}));x(o)}catch{m("获取审批流程失败")}finally{f(!1)}},[]),c=l.useCallback(async()=>{try{const a=await Q.getUsers(),o=(Array.isArray(a?.list)?a.list:Array.isArray(a)?a:[]).map(d=>({...d,role:d.role||(Array.isArray(d.roles)&&d.roles.length>0?d.roles[0].code:"")}));j(o)}catch{}},[]);l.useEffect(()=>{h(),c()},[h,c]);const w=l.useCallback(async a=>{try{await C.update(a.id,{is_active:!a.is_active}),x(n=>n.map(o=>o.id===a.id?{...o,is_active:!o.is_active}:o)),_.success(a.is_active?"已停用":"已启用")}catch{_.error("操作失败")}},[]),E=l.useCallback(async(a,n)=>{if(window.confirm(`确定删除审批流程「${n}」?删除后不可恢复。`))try{await C.delete(a),x(o=>o.filter(d=>d.id!==a)),_.success("已删除")}catch{_.error("删除失败")}},[]),P=l.useCallback(async a=>{try{await C.setDefault(a),x(n=>n.map(o=>({...o,is_default:o.id===a}))),_.success("已设为默认")}catch{_.error("操作失败")}},[]),U=l.useCallback(a=>{const n=v.find(o=>o.id===a);return n?n.display_name||n.username:`#${a}`},[v]);return y?e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:517:7",className:"flex items-center justify-center h-64",children:e.jsx(D,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:518:9",className:"w-8 h-8 animate-spin text-blue-400"})}):W?e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:525:7",className:"flex flex-col items-center justify-center h-64 text-[var(--dg-text-muted)]",children:[e.jsx("p",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:526:9",className:"text-sm",children:W}),e.jsx($,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:527:9",variant:"outline",onClick:h,className:"mt-3",children:"重试"})]}):e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:533:5",className:"space-y-5",children:[e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:535:7",className:"flex items-center justify-between",children:[e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:536:9",children:[e.jsx("h1",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:537:11",className:"text-2xl font-semibold text-[var(--dg-text-primary)]",children:"审批流程配置"}),e.jsx("p",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:538:11",className:"text-sm text-[var(--dg-text-secondary)] mt-1",children:"为资源申请、应用申请、权限审批配置多级审批流程"})]}),e.jsxs($,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:542:9",onClick:()=>p(null),children:[e.jsx(J,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:543:11",className:"w-4 h-4 mr-1.5"}),"新建流程"]})]}),i.length===0?e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:548:9",className:"dg-card p-12 text-center",children:[e.jsx(V,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:549:11",className:"w-12 h-12 mx-auto mb-3 opacity-50 text-[var(--dg-text-muted)]"}),e.jsx("p",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:550:11",className:"text-sm text-[var(--dg-text-muted)] mb-4",children:"暂无审批流程"}),e.jsx($,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:551:11",variant:"outline",onClick:()=>p(null),children:"创建第一个流程"})]}):e.jsx(e.Fragment,{children:e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:556:11",className:"space-y-4",children:i.map(a=>{const n=N===a.id;return e.jsx(K,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:560:17",className:`dg-card overflow-hidden ${a.is_active?"":"opacity-50"}`,children:e.jsxs(Z,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:561:19",className:"p-5",children:[e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:562:21",className:"flex items-start justify-between",children:[e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:563:23",className:"flex-1 min-w-0",children:[e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:564:25",className:"flex items-center gap-3 mb-2 flex-wrap",children:[e.jsx("h3",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:565:27",className:"text-lg font-semibold text-[var(--dg-text-primary)]",children:a.name}),a.is_default&&e.jsxs("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:566:45",className:"text-[10px] px-1.5 py-0.5 rounded bg-yellow-400/15 text-yellow-400 flex items-center gap-1",children:[e.jsx(B,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:566:154",className:"w-3 h-3"}),"默认"]}),e.jsx("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:567:27",className:`text-[10px] px-1.5 py-0.5 rounded ${a.is_active?"bg-green-500/15 text-green-400":"bg-red-500/15 text-red-400"}`,children:a.is_active?"启用":"停用"}),e.jsx("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:570:27",className:"text-[10px] px-1.5 py-0.5 rounded bg-blue-500/15 text-blue-400",children:re[a.category]||a.category})]}),a.description&&e.jsx("p",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:574:44",className:"text-sm text-[var(--dg-text-secondary)] mb-1",children:a.description}),e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:575:25",className:"flex items-center gap-1.5 mt-2 flex-wrap",children:a.steps?.map((o,d)=>e.jsxs("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:577:29",className:"flex items-center gap-1",children:[e.jsx("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:578:31",className:`text-[10px] px-1.5 py-0.5 rounded ${O[o.step_type]||"bg-gray-500/15 text-gray-400 border-gray-500/30"}`,children:L[o.step_type]||o.step_type}),d<(a.steps?.length||0)-1&&e.jsx("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:582:33",className:"text-[var(--dg-text-muted)] text-[10px]",children:"→"})]},d))})]}),e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:589:23",className:"flex items-center gap-1 flex-shrink-0 ml-4",children:[e.jsx("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:590:25",onClick:()=>b(n?null:a.id),className:"p-1.5 rounded hover:bg-[var(--dg-bg-hover)] text-[var(--dg-text-muted)] transition-colors",children:n?e.jsx(ee,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:592:41",className:"w-4 h-4"}):e.jsx(R,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:592:77",className:"w-4 h-4"})}),!a.is_default&&e.jsx("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:595:27",onClick:()=>P(a.id),className:"p-1.5 rounded hover:bg-yellow-500/10 text-[var(--dg-text-muted)] hover:text-yellow-400 transition-colors",title:"设为默认",children:e.jsx(B,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:597:29",className:"w-4 h-4"})}),e.jsx("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:600:25",onClick:()=>w(a),className:`p-1.5 rounded transition-colors ${a.is_active?"hover:bg-red-500/10 text-green-400 hover:text-red-400":"hover:bg-green-500/10 text-red-400 hover:text-green-400"}`,title:a.is_active?"停用":"启用",children:e.jsx(F,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:603:27",className:`w-4 h-4 ${a.is_active?"":"rotate-180"}`})}),e.jsx("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:605:25",onClick:()=>p(a),className:"p-1.5 rounded hover:bg-[var(--dg-bg-hover)] text-[var(--dg-text-muted)] hover:text-blue-400 transition-colors",title:"编辑",children:e.jsx(se,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:607:27",className:"w-4 h-4"})}),e.jsx("button",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:609:25",onClick:()=>E(a.id,a.name),className:"p-1.5 rounded hover:bg-red-500/10 text-[var(--dg-text-muted)] hover:text-red-400 transition-colors",title:"删除",children:e.jsx(G,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:611:27",className:"w-4 h-4"})})]})]}),n&&e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:617:23",className:"mt-4 pt-4 border-t border-[var(--dg-border)] space-y-3",children:a.steps?.map((o,d)=>{const S=(()=>{try{const A=JSON.parse(o.approver_ids||"[]");return Array.isArray(A)?A:[]}catch{return[]}})();return e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:621:29",className:"flex items-start gap-3 p-3 bg-[var(--dg-bg-primary)] rounded-lg",children:[e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:622:31",className:"w-6 h-6 rounded-full bg-[var(--dg-bg-tertiary)] flex items-center justify-center text-xs font-medium text-[var(--dg-text-secondary)] flex-shrink-0 mt-0.5",children:o.step_number}),e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:625:31",className:"flex-1 min-w-0",children:[e.jsxs("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:626:33",className:"flex items-center gap-2 mb-1",children:[e.jsx("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:627:35",className:"text-sm font-medium text-[var(--dg-text-primary)]",children:o.name}),e.jsx("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:628:35",className:`text-[10px] px-1.5 py-0.5 rounded ${O[o.step_type]||"bg-gray-500/15 text-gray-400 border-gray-500/30"}`,children:L[o.step_type]||o.step_type})]}),S.length>0&&e.jsx("div",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:633:35",className:"flex flex-wrap gap-1",children:S.map(A=>e.jsx("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:635:39",className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[11px] bg-blue-500/15 text-blue-400",children:U(A)},A))}),S.length===0&&o.step_type!=="submit"&&e.jsx("span",{"code-path":"src/pages/ApprovalWorkflowPage.tsx:642:35",className:"text-[11px] text-red-400",children:"未关联审批人"})]})]},d)})})]})},a.id)})})}),k!==void 0&&e.jsx(ce,{"code-path":"src/pages/ApprovalWorkflowPage.tsx:659:9",workflow:k,users:v,onClose:()=>p(void 0),onSaved:()=>{p(void 0),h()}})]})}export{ke as default};
|