import{E as _e,a as fe}from"./index-DOmj2wT1.js";import{E as ye}from"./index-DOTsJDGF.js";import{E as be}from"./index-CunlXsH6.js";import{E as ge}from"./index-LblaQ-sT.js";import{E as we,a as Se}from"./index-uEvcRnhb.js";import{E as Ve,b as Ee}from"./index-CkuccYaV.js";import{E as ke}from"./index-Dn5wkPSB.js";import{E as Ce}from"./index-BWwMJoxR.js";import{ak as ae,b as le,i as Ie,d as J,a as se,D as R,o as r,c as b,h as O,s as a,f as p,n as f,N as oe,F as $e,B as he,G as re,H as xe,g as A,q as D,al as Z,e as c,w as l,r as Ne,E as H,b0 as De,b1 as Ue,aa as U,x as S,y,j as h,l as je,ab as Te,K as Ae,M as T,ad as F,A as L,da as ee}from"./index-_T_ZwAU8.js";import{C as ne}from"./raf-BSHx3Xj9.js";import{u as Be}from"./index-D9Qe2eDp.js";import{a as Pe,E as Fe}from"./index-DbiC_J6H.js";import{v as qe}from"./directive-DnYsEmpc.js";import{a as ze,b as Me,d as Ge,g as Ke,e as Le}from"./approval-CUMmJTq3.js";import{g as te}from"./project-rPDb_gVb.js";import{g as Oe}from"./tenant-DIdSWA56.js";import{_ as We}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./castArray-BlzMMKhq.js";import"./_baseClone-BuLLSdZ_.js";import"./index-I-t9u_Se.js";import"./index-CaL9AHzU.js";import"./index-DPr6SX3u.js";import"./vnode-BBSgohgu.js";import"./index-DrL-DdXi.js";import"./index-CnFjh-NG.js";import"./index-jXIxALr6.js";import"./scroll-xdnWlbe1.js";import"./clamp-eKDmixUu.js";import"./toNumber-B7ieOfxs.js";import"./_baseIteratee-C37ZLjhl.js";import"./omit-BNuYgpQl.js";import"./index-CwdOMQew.js";import"./use-dialog-CuUtYO5o.js";import"./index-D1ZBBHpl.js";import"./debounce-CtiCYe7I.js";import"./index-dqKVgrM4.js";const He=le({space:{type:[Number,String],default:""},active:{type:Number,default:0},direction:{type:String,default:"horizontal",values:["horizontal","vertical"]},alignCenter:{type:Boolean},simple:{type:Boolean},finishStatus:{type:String,values:["wait","process","finish","error","success"],default:"finish"},processStatus:{type:String,values:["wait","process","finish","error","success"],default:"process"}}),Re={[ne]:(g,x)=>[g,x].every(ae)},ue="ElSteps",Je=le({title:{type:String,default:""},icon:{type:Ie},description:{type:String,default:""},status:{type:String,values:["","wait","process","finish","error","success"],default:""}});var Ye=J({name:"ElSteps",__name:"steps",props:He,emits:Re,setup(g,{emit:x}){const n=g,w=x,C=se("steps"),{children:d,addChild:i,removeChild:E,ChildrenSorter:o}=Be(oe(),"ElStep");return R(d,()=>{d.value.forEach((v,u)=>{v.setIndex(u)})}),$e(ue,{props:n,steps:d,addStep:i,removeStep:E}),R(()=>n.active,(v,u)=>{w(ne,v,u)}),(v,u)=>(r(),b("div",{class:f([p(C).b(),p(C).m(g.simple?"simple":g.direction)])},[O(v.$slots,"default"),a(p(o))],2))}}),Qe=Ye,Xe=J({name:"ElStep",__name:"item",props:Je,setup(g){const x=g,n=se("step"),w=y(-1),C=y({}),d=y(""),i=he(ue),E=oe();let o=0,v=0;re(()=>{R([()=>i.props.active,()=>i.props.processStatus,()=>i.props.finishStatus],([s],[_])=>{v=_||0,o=s-v,G(s)},{immediate:!0})});const u=h(()=>x.status||d.value),m=h(()=>{const s=i.steps.value[w.value-1];return s?s.internalStatus.value:"wait"}),B=h(()=>i.props.alignCenter),P=h(()=>i.props.direction==="vertical"),N=h(()=>i.props.simple),q=h(()=>i.steps.value.length),M=h(()=>{var s;return((s=i.steps.value[q.value-1])==null?void 0:s.uid)===E.uid}),j=h(()=>N.value?"":i.props.space),I=h(()=>[n.b(),n.is(N.value?"simple":i.props.direction),n.is("flex",M.value&&!j.value&&!B.value),n.is("center",B.value&&!P.value&&!N.value)]),t=h(()=>{const s={flexBasis:ae(j.value)?`${j.value}px`:j.value?j.value:`${100/(q.value-(B.value?0:1))}%`};return P.value||M.value&&(s.maxWidth=`${100/q.value}%`),s}),k=s=>{w.value=s},$=s=>{const _=s==="wait",V={transitionDelay:`${Math.abs(o)===1?0:o>0?(w.value+1-v)*150:-(w.value+1-i.props.active)*150}ms`},z=s===i.props.processStatus||_?0:100;V.borderWidth=z&&!N.value?"1px":0,V[i.props.direction==="vertical"?"height":"width"]=`${z}%`,C.value=V},G=s=>{s>w.value?d.value=i.props.finishStatus:s===w.value&&m.value!=="error"?d.value=i.props.processStatus:d.value="wait";const _=i.steps.value[w.value-1];_&&_.calcProgress(d.value)},K={uid:E.uid,getVnode:()=>E.vnode,currentStatus:u,internalStatus:d,setIndex:k,calcProgress:$};return i.addStep(K),xe(()=>{i.removeStep(K)}),(s,_)=>(r(),b("div",{style:Z(t.value),class:f(I.value)},[A(" icon & line "),D("div",{class:f([p(n).e("head"),p(n).is(u.value)])},[N.value?A("v-if",!0):(r(),b("div",{key:0,class:f(p(n).e("line"))},[D("i",{class:f(p(n).e("line-inner")),style:Z(C.value)},null,6)],2)),D("div",{class:f([p(n).e("icon"),p(n).is(g.icon||s.$slots.icon?"icon":"text")])},[O(s.$slots,"icon",{},()=>[g.icon?(r(),c(p(H),{key:0,class:f(p(n).e("icon-inner"))},{default:l(()=>[(r(),c(Ne(g.icon)))]),_:1},8,["class"])):u.value==="success"?(r(),c(p(H),{key:1,class:f([p(n).e("icon-inner"),p(n).is("status")])},{default:l(()=>[a(p(De))]),_:1},8,["class"])):u.value==="error"?(r(),c(p(H),{key:2,class:f([p(n).e("icon-inner"),p(n).is("status")])},{default:l(()=>[a(p(Ue))]),_:1},8,["class"])):N.value?A("v-if",!0):(r(),b("div",{key:3,class:f(p(n).e("icon-inner"))},U(w.value+1),3))])],2)],2),A(" title & description "),D("div",{class:f(p(n).e("main"))},[D("div",{class:f([p(n).e("title"),p(n).is(u.value)])},[O(s.$slots,"title",{},()=>[S(U(g.title),1)])],2),N.value?(r(),b("div",{key:0,class:f(p(n).e("arrow"))},null,2)):(r(),b("div",{key:1,class:f([p(n).e("description"),p(n).is(u.value)])},[O(s.$slots,"description",{},()=>[S(U(g.description),1)])],2))],2)],6))}}),ie=Xe;const Ze=je(Qe,{Step:ie}),et=Te(ie),tt={class:"page-wrap"},at={class:"toolbar"},lt=J({__name:"ApprovalInstanceView",setup(g){const x=y(!1),n=y([]),w=y([]),C=y([]),d=y([]),i=y([]),E=y(!1),o=y({template_id:"",resource_type:"project",resource_id:"",applicant_id:"",tenant_id:""}),v=y(!1),u=y(null),m=y({approver_id:"",approved:!0,comment:""}),B={pending:"warning",approved:"success",rejected:"danger"};async function P(){x.value=!0;try{n.value=await ze()}finally{x.value=!1}}watch(()=>[o.value.resource_type,o.value.tenant_id],async([I,t])=>{I==="project"&&t?i.value=await te(t):i.value=[]});async function N(){var k;w.value=await Ke(),C.value=await ee(),d.value=await Oe();const I=localStorage.getItem("ygft.project.tenantId"),t=I&&d.value.some($=>$.id===I)?I:((k=d.value[0])==null?void 0:k.id)||"";o.value={template_id:"",resource_type:"project",resource_id:"",applicant_id:"",tenant_id:t},t&&(i.value=await te(t)),E.value=!0}async function q(){if(!o.value.resource_id||!o.value.applicant_id){L.warning("请填写资源与申请人");return}await Me({template_id:o.value.template_id||void 0,resource_type:o.value.resource_type,resource_id:o.value.resource_id,applicant_id:o.value.applicant_id}),L.success("发起成功"),E.value=!1,P()}async function M(I){u.value=await Ge(I.id),C.value=await ee(),m.value={approver_id:"",approved:!0,comment:""},v.value=!0}async function j(){if(!u.value||!m.value.approver_id){L.warning("请填写审批人");return}await Le(u.value.id,u.value.current_step,{approver_id:m.value.approver_id,approved:m.value.approved,comment:m.value.comment}),L.success("已提交"),v.value=!1,P()}return re(P),(I,t)=>{const k=be,$=Fe,G=ge,K=Pe,s=Se,_=we,V=fe,z=ye,Y=_e,Q=ke,pe=et,de=Ze,ve=Ce,X=Ee,ce=Ve,me=qe;return r(),b("div",tt,[D("div",at,[a(k,{type:"primary",onClick:N},{default:l(()=>[...t[14]||(t[14]=[S("发起审批",-1)])]),_:1})]),Ae((r(),c(K,{data:n.value,border:"",height:"100%"},{default:l(()=>[a($,{prop:"resource_type",label:"资源类型",width:"120"}),a($,{prop:"resource_id",label:"资源 ID","min-width":"160"}),a($,{prop:"applicant_id",label:"申请人","min-width":"120"}),a($,{prop:"status",label:"状态",width:"100"},{default:l(({row:e})=>[a(G,{type:B[e.status]},{default:l(()=>[S(U(e.status),1)]),_:2},1032,["type"])]),_:1}),a($,{prop:"current_step",label:"当前步",width:"80"}),a($,{label:"操作",width:"100"},{default:l(({row:e})=>[a(k,{link:"",type:"primary",onClick:W=>M(e)},{default:l(()=>[...t[15]||(t[15]=[S("详情/审批",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[me,x.value]]),a(Q,{modelValue:E.value,"onUpdate:modelValue":t[8]||(t[8]=e=>E.value=e),title:"发起审批",width:"520px"},{footer:l(()=>[a(k,{onClick:t[7]||(t[7]=e=>E.value=!1)},{default:l(()=>[...t[16]||(t[16]=[S("取消",-1)])]),_:1}),a(k,{type:"primary",onClick:q},{default:l(()=>[...t[17]||(t[17]=[S("发起",-1)])]),_:1})]),default:l(()=>[a(Y,{model:o.value,"label-width":"90px"},{default:l(()=>[a(V,{label:"模板"},{default:l(()=>[a(_,{modelValue:o.value.template_id,"onUpdate:modelValue":t[0]||(t[0]=e=>o.value.template_id=e),placeholder:"无模板(单步)",clearable:"",style:{width:"100%"}},{default:l(()=>[(r(!0),b(T,null,F(w.value,e=>(r(),c(s,{key:e.id,label:e.name,value:e.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(V,{label:"租户"},{default:l(()=>[a(_,{modelValue:o.value.tenant_id,"onUpdate:modelValue":t[1]||(t[1]=e=>o.value.tenant_id=e),placeholder:"选择租户",style:{width:"100%"},onChange:t[2]||(t[2]=e=>o.value.resource_id="")},{default:l(()=>[(r(!0),b(T,null,F(d.value,e=>(r(),c(s,{key:e.id,label:`${e.name} (${e.id})`,value:e.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(V,{label:"资源类型"},{default:l(()=>[a(_,{modelValue:o.value.resource_type,"onUpdate:modelValue":t[3]||(t[3]=e=>o.value.resource_type=e),style:{width:"100%"}},{default:l(()=>[a(s,{label:"project",value:"project"}),a(s,{label:"dataset",value:"dataset"}),a(s,{label:"model",value:"model"}),a(s,{label:"task",value:"task"})]),_:1},8,["modelValue"])]),_:1}),a(V,{label:"资源 ID",required:""},{default:l(()=>[o.value.resource_type==="project"?(r(),c(_,{key:0,modelValue:o.value.resource_id,"onUpdate:modelValue":t[4]||(t[4]=e=>o.value.resource_id=e),filterable:"",placeholder:"选择项目",style:{width:"100%"}},{default:l(()=>[(r(!0),b(T,null,F(i.value,e=>(r(),c(s,{key:e.id,label:`${e.name} (${e.id})`,value:e.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])):(r(),c(z,{key:1,modelValue:o.value.resource_id,"onUpdate:modelValue":t[5]||(t[5]=e=>o.value.resource_id=e),placeholder:"如资源 ID"},null,8,["modelValue"]))]),_:1}),a(V,{label:"申请人",required:""},{default:l(()=>[a(_,{modelValue:o.value.applicant_id,"onUpdate:modelValue":t[6]||(t[6]=e=>o.value.applicant_id=e),filterable:"",style:{width:"100%"}},{default:l(()=>[(r(!0),b(T,null,F(C.value,e=>(r(),c(s,{key:e.id,label:`${e.display_name} (${e.username})`,value:e.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),a(Q,{modelValue:v.value,"onUpdate:modelValue":t[13]||(t[13]=e=>v.value=e),title:"审批详情",width:"560px"},{footer:l(()=>[a(k,{onClick:t[12]||(t[12]=e=>v.value=!1)},{default:l(()=>[...t[20]||(t[20]=[S("关闭",-1)])]),_:1}),u.value&&u.value.status==="pending"?(r(),c(k,{key:0,type:"primary",onClick:j},{default:l(()=>[...t[21]||(t[21]=[S("提交审批",-1)])]),_:1})):A("",!0)]),default:l(()=>[u.value?(r(),b(T,{key:0},[D("p",null,"资源:"+U(u.value.resource_type)+" / "+U(u.value.resource_id),1),D("p",null,[S("申请人:"+U(u.value.applicant_id)+" 状态: ",1),a(G,{type:B[u.value.status]},{default:l(()=>[S(U(u.value.status),1)]),_:1},8,["type"])]),a(de,{active:u.value.current_step,"finish-status":"success","align-center":""},{default:l(()=>[(r(!0),b(T,null,F(u.value.steps,(e,W)=>(r(),c(pe,{key:W,title:`第${W+1}步`,description:e.approver_id||"任意审批人"},null,8,["title","description"]))),128))]),_:1},8,["active"]),a(ve),u.value.status==="pending"?(r(),c(Y,{key:0,model:m.value,"label-width":"90px"},{default:l(()=>[a(V,{label:"审批人",required:""},{default:l(()=>[a(_,{modelValue:m.value.approver_id,"onUpdate:modelValue":t[9]||(t[9]=e=>m.value.approver_id=e),filterable:"",style:{width:"100%"}},{default:l(()=>[(r(!0),b(T,null,F(C.value,e=>(r(),c(s,{key:e.id,label:`${e.display_name} (${e.username})`,value:e.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(V,{label:"结果"},{default:l(()=>[a(ce,{modelValue:m.value.approved,"onUpdate:modelValue":t[10]||(t[10]=e=>m.value.approved=e)},{default:l(()=>[a(X,{value:!0},{default:l(()=>[...t[18]||(t[18]=[S("通过",-1)])]),_:1}),a(X,{value:!1},{default:l(()=>[...t[19]||(t[19]=[S("拒绝",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(V,{label:"意见"},{default:l(()=>[a(z,{modelValue:m.value.comment,"onUpdate:modelValue":t[11]||(t[11]=e=>m.value.comment=e),type:"textarea"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])):A("",!0)],64)):A("",!0)]),_:1},8,["modelValue"])])}}}),zt=We(lt,[["__scopeId","data-v-58650213"]]);export{zt as default};