import{t as W,R as ee,K as ie,E as N}from"./index.7fvhmzrS.js";import{U as de,A as pe,a as ue,b as me}from"./api.C3J8NLYY.js";import{a as _e,r as K,w as P,_ as O,t as ce,aj as u,J as h,o as g,K as l,S as t,b as v,P as y,c as D,a9 as E,R as L,M as j,Q as fe,u as Q}from"./vue.D1BjjNmv.js";import{_ as ge}from"./_plugin-vue_export-helper.DlAUqK2U.js";function ye(){return W({url:"/api/system/device/category/",method:"get"})}function be(){return W({url:"/api/system/app_user/?user_type=3",method:"get"})}function ve(F){return W({url:"/api/system/approval/workflow_step/?workflow_id="+F,method:"get"})}const we={class:"workflow-steps"},Ve={class:"workflow-step"},ke={class:"step-title"},qe={class:"step-roles"},xe={style:{"text-align":"center",margin:"16px 0"}},Ue={class:"workflow-step"},he=_e({__name:"index",props:{visible:{type:Boolean},editData:{},mode:{}},emits:["update:visible","success"],setup(F,{emit:te}){const c=F,H=te,S=K(c.visible);P(()=>c.visible,s=>S.value=s),P(S,s=>H("update:visible",s));const G=O([]);be().then(s=>{const e=s.data;G.splice(0,G.length,...e)}).catch(s=>{console.error("请求失败:",s)});const J=O([]);ye().then(s=>{const e=s.data;console.log("获取到的data值:",e),J.splice(0,J.length,...e)}).catch(s=>{console.error("请求失败:",s)});const oe=()=>({name:"",passType:"",leaderId:null}),A=()=>({roles:[oe()]}),o=O({name:"",scene:"",workflow_type:"0",description:"",is_active:!0,condition:{min_days:1,max_days:null,roles:[],equipment:[],borrow_types:[],team_type:[]},steps:[A()]}),M=O({name:[{required:!0,message:"请输入流程名称",trigger:"blur"}],workflow_type:[{required:!0,message:"请选择流程类型",trigger:"change"}],description:[{required:!0,message:"请输入流程描述",trigger:"blur"}],is_active:[{required:!0,message:"请输选择是否启用",trigger:"blur"}],"condition.min_days":[{required:!0,message:"请输入最少借用天数",trigger:"change"}],"condition.max_days":[{required:!1,validator:(s,e,_)=>{const n=o.condition.min_days;return e==null||e===void 0||e===""?_():typeof e=="number"&&typeof n=="number"&&e{s.roles.forEach((_,n)=>{M[`steps.${e}.roles.${n}.name`]=[{required:!0,message:"请选择角色",trigger:"change"}],M[`steps.${e}.roles.${n}.passType`]=[{required:!0,message:"请选择通过条件",trigger:"change"}]})})}const B=K("");P(()=>c.editData,async s=>{var e,_,n,m,f,w;if(console.log("编辑时获取到的值val:",s),s){const d=JSON.parse(JSON.stringify(s));o.name=d.name||"",o.scene=d.scene||"",o.workflow_type=String(d.workflow_type??"0"),o.description=d.description||"",o.is_active=d.is_active??!0;const V=d.trigger_conditions||{};o.condition={min_days:(_=(e=d.duration_rules)==null?void 0:e[0])==null?void 0:_.min_days,max_days:(m=(n=d.duration_rules)==null?void 0:n[0])==null?void 0:m.max_days,roles:V.user_types||[],equipment:Array.isArray(V.equipment_categories)?V.equipment_categories[0]:"",borrow_types:Array.isArray((w=(f=d.duration_rules)==null?void 0:f[0])==null?void 0:w.borrow_types)?d.duration_rules[0].borrow_types.map(i=>String(i)):[],team_type:Array.isArray(V.team_type)?V.team_type.map(i=>String(i)):[]};const k=await ve(d.id);console.log("workflowSteps",k),k&&k.data?(B.value=k.data[0].id,o.steps=k.data.map(i=>({roles:[{name:i.step_name||"",passType:String(i.step_type??"1"),leaderId:i.app_approver_names.join(",")||null}]}))):o.steps=[A()],Y()}else o.name="",o.scene="",o.workflow_type="0",o.description="",o.is_active=!0,o.condition={min_days:1,max_days:null,roles:[],equipment:[],borrow_types:[],team_type:[]},o.steps=[A()];Y(),await ce()},{immediate:!0});function le(){if(o.steps.length>=5){N.warning("最多只能添加 5 个审批步骤");return}o.steps.push(A())}function ae(s){o.steps.length>1&&o.steps.splice(s,1)}function se(s,e){o.steps[s].roles.length>1&&o.steps[s].roles.splice(e,1)}function Z(){S.value=!1}const ne={管理员:1,指导老师:2};async function re(){var n,m,f,w,d,V,k,i,C,$,T;try{await((n=X.value)==null?void 0:n.validate())}catch(r){console.warn("表单验证失败:",r);return}const s=!!c.editData,e={name:o.name,workflow_type:o.workflow_type,description:o.description,is_active:typeof o.is_active=="boolean"?o.is_active:!0,trigger_conditions:{min_days:(m=o.condition)==null?void 0:m.min_days,max_days:(f=o.condition)==null?void 0:f.max_days,equipment_categories:(w=o.condition)!=null&&w.equipment?[o.condition.equipment]:["贵重设备"],borrow_types:(V=(d=o.condition)==null?void 0:d.borrow_types)!=null&&V.length?o.condition.borrow_types:["0","1","2"],team_type:(i=(k=o.condition)==null?void 0:k.team_type)!=null&&i.length?o.condition.team_type:["0","1"],user_types:($=(C=o.condition)==null?void 0:C.roles)!=null&&$.length?o.condition.roles:["student","teacher"],require_approval:!0}};let _="";if(s){console.log(B.value);const r=await de(B.value,e);if(_=B.value,console.log(r),!r||r.code!==2e3){N.error("编辑流程失败");return}}else{const r=await pe(e);if(_=(T=r==null?void 0:r.data)==null?void 0:T.id,!_){N.error("新增未能获取流程 ID");return}}for(let r=0;rp.name).filter(Boolean),z=U.roles.map(p=>p.passType).filter(Boolean),a=U.roles.map(p=>p.leaderId).filter(Boolean),b=z[0]||"1",q=I.map(p=>ne[p]).filter(Boolean),x={workflow:String(_),step_name:`${I.join(",")}审批`,step_order:R,step_type:b,description:`由${I.join(",")}进行审批`,approvers:[1],app_approvers:a.length>0?a:[],approver_roles:q,approver_depts:[],approval_conditions:{required_fields:[],value_ranges:{}},timeout_hours:24,timeout_action:"auto_reject",is_active:!0};console.log(`步骤 ${R} payload`,x),s?await ue(c.editData.id,x):await me(x)}N.success("保存成功"),H("success"),S.value=!1}return(s,e)=>{const _=u("el-input"),n=u("el-form-item"),m=u("el-col"),f=u("el-option"),w=u("el-select"),d=u("el-row"),V=u("el-divider"),k=u("el-input-number"),i=u("el-checkbox"),C=u("el-checkbox-group"),$=u("el-card"),T=u("el-icon"),r=u("el-button"),U=u("el-radio"),R=u("el-radio-group"),I=u("el-form"),z=u("el-dialog");return g(),h(z,{title:s.editData?c.mode==="view"?"查看":"编辑":"新建审批流程",modelValue:S.value,"onUpdate:modelValue":e[10]||(e[10]=a=>S.value=a),width:"900px",onClose:Z},{footer:l(()=>[t(r,{onClick:Z},{default:l(()=>e[27]||(e[27]=[y("关闭")])),_:1}),c.mode!=="view"?(g(),h(r,{key:0,type:"primary",onClick:re},{default:l(()=>e[28]||(e[28]=[y("提交")])),_:1})):j("",!0)]),default:l(()=>[t(I,{model:o,"label-width":"110px",rules:M,ref_key:"formRef",ref:X,disabled:c.mode==="view"},{default:l(()=>[t(d,{gutter:20},{default:l(()=>[t(m,{span:12},{default:l(()=>[t(n,{label:"流程名称",prop:"name"},{default:l(()=>[t(_,{modelValue:o.name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.name=a),placeholder:"请输入"},null,8,["modelValue"])]),_:1})]),_:1}),t(m,{span:12},{default:l(()=>[t(n,{label:"流程类型",prop:"workflow_type"},{default:l(()=>[t(w,{modelValue:o.workflow_type,"onUpdate:modelValue":e[1]||(e[1]=a=>o.workflow_type=a),placeholder:"请选择流程类型",disabled:c.mode==="view"},{default:l(()=>[t(f,{label:"设备借用申请",value:"0"})]),_:1},8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1}),t(d,{gutter:20},{default:l(()=>[t(m,{span:12},{default:l(()=>[t(n,{label:"流程描述",prop:"description"},{default:l(()=>[t(_,{modelValue:o.description,"onUpdate:modelValue":e[2]||(e[2]=a=>o.description=a),type:"textarea",rows:2,placeholder:"请输入流程描述",disabled:c.mode==="view"},null,8,["modelValue","disabled"])]),_:1})]),_:1}),t(m,{span:12},{default:l(()=>[t(n,{label:"是否启用",prop:"is_active"},{default:l(()=>[t(w,{modelValue:o.is_active,"onUpdate:modelValue":e[3]||(e[3]=a=>o.is_active=a),placeholder:"请选择启用还是禁用",disabled:c.mode==="view"},{default:l(()=>[t(f,{label:"启用",value:!0}),t(f,{label:"禁用",value:!1})]),_:1},8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1}),t(V,null,{default:l(()=>e[11]||(e[11]=[y("条件选择")])),_:1}),t(d,{gutter:20},{default:l(()=>[t(m,{span:8},{default:l(()=>[t(n,{label:"最少借用天数",prop:"condition.min_days"},{default:l(()=>[t(k,{modelValue:o.condition.min_days,"onUpdate:modelValue":e[4]||(e[4]=a=>o.condition.min_days=a),min:1,"controls-position":"right",style:{width:"100px"}},null,8,["modelValue"]),e[12]||(e[12]=v("span",{style:{"margin-left":"8px"}},"天",-1))]),_:1})]),_:1}),t(m,{span:8},{default:l(()=>[t(n,{label:"最多借用天数",prop:"condition.max_days"},{default:l(()=>[t(k,{modelValue:o.condition.max_days,"onUpdate:modelValue":e[5]||(e[5]=a=>o.condition.max_days=a),min:1,"controls-position":"right",style:{width:"100px"}},null,8,["modelValue"]),e[13]||(e[13]=v("span",{style:{"margin-left":"8px"}},"天",-1))]),_:1})]),_:1}),t(m,{span:8},{default:l(()=>[t(n,{label:"用户角色",prop:"condition.roles"},{default:l(()=>[t(C,{modelValue:o.condition.roles,"onUpdate:modelValue":e[6]||(e[6]=a=>o.condition.roles=a)},{default:l(()=>[t(i,{label:"教师",value:"teacher"}),t(i,{label:"学生",value:"student"}),t(i,{label:"非本院师生",value:"external"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(m,{span:8},{default:l(()=>[t(n,{label:"设备标签",prop:"condition.equipment"},{default:l(()=>[t(w,{modelValue:o.condition.equipment,"onUpdate:modelValue":e[7]||(e[7]=a=>o.condition.equipment=a),placeholder:"请选择"},{default:l(()=>[(g(!0),D(L,null,E(J,(a,b)=>(g(),h(f,{key:b,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(m,{span:8},{default:l(()=>[t(n,{label:"借用类型",prop:"condition.borrow_types"},{default:l(()=>[t(C,{modelValue:o.condition.borrow_types,"onUpdate:modelValue":e[8]||(e[8]=a=>o.condition.borrow_types=a),disabled:c.mode==="view"},{default:l(()=>[t(i,{label:"0"},{default:l(()=>e[14]||(e[14]=[y("常规借用")])),_:1}),t(i,{label:"1"},{default:l(()=>e[15]||(e[15]=[y("课堂借用")])),_:1}),t(i,{label:"2"},{default:l(()=>e[16]||(e[16]=[y("特殊借用")])),_:1})]),_:1},8,["modelValue","disabled"])]),_:1})]),_:1}),t(m,{span:8},{default:l(()=>[t(n,{label:"借用方式",prop:"condition.team_type"},{default:l(()=>[t(C,{modelValue:o.condition.team_type,"onUpdate:modelValue":e[9]||(e[9]=a=>o.condition.team_type=a),disabled:c.mode==="view"},{default:l(()=>[t(i,{label:"0"},{default:l(()=>e[17]||(e[17]=[y("个人借用")])),_:1}),t(i,{label:"1"},{default:l(()=>e[18]||(e[18]=[y("团队借用")])),_:1})]),_:1},8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1}),t(V,null,{default:l(()=>e[19]||(e[19]=[y("流程配置")])),_:1}),v("div",we,[v("div",Ve,[t($,{shadow:"never",class:"step-card borrower"},{default:l(()=>e[20]||(e[20]=[v("div",{class:"step-title"},"借用人",-1)])),_:1}),e[21]||(e[21]=v("div",{class:"step-line"},null,-1))]),(g(!0),D(L,null,E(o.steps,(a,b)=>(g(),D("div",{class:"workflow-step",key:b},[t($,{shadow:"never",class:"step-card"},{default:l(()=>[v("div",ke,[y(" 审批步骤"+fe(b+1)+" ",1),o.steps.length>1&&b!==0?(g(),h(r,{key:0,type:"danger",size:"small",onClick:q=>ae(b),style:{"margin-left":"10px"}},{default:l(()=>[t(T,null,{default:l(()=>[t(Q(ee))]),_:1}),e[22]||(e[22]=y(" 删除步骤 "))]),_:2},1032,["onClick"])):j("",!0)]),v("div",qe,[(g(!0),D(L,null,E(a.roles,(q,x)=>(g(),D("div",{key:x,class:"role-row",style:{position:"relative",padding:"0 20px"}},[t(n,{label:"角色","label-position":"left","label-width":"100px",prop:`steps.${b}.roles.${x}.name`,rules:[{required:!0,message:"请选择角色",trigger:"change"}]},{default:l(()=>[t(w,{modelValue:q.name,"onUpdate:modelValue":p=>q.name=p,placeholder:"请选择角色",style:{width:"300px"}},{default:l(()=>[t(f,{label:"老师",value:"老师"}),t(f,{label:"管理员",value:"管理员"}),t(f,{label:"学院领导",value:"学院领导"})]),_:2},1032,["modelValue","onUpdate:modelValue"])]),_:2},1032,["prop"]),q.name==="学院领导审批"||q.name==="学院领导"?(g(),h(n,{key:0,label:"领导姓名","label-position":"left","label-width":"100px",prop:`steps.${b}.roles.${x}.leaderId`,rules:[{required:!0,message:"请选择领导姓名",trigger:"change"}]},{default:l(()=>[t(w,{modelValue:q.leaderId,"onUpdate:modelValue":p=>q.leaderId=p,placeholder:"请选择领导姓名",style:{width:"300px"}},{default:l(()=>[(g(!0),D(L,null,E(G,p=>(g(),h(f,{key:p.id,label:p.name,value:p.id},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue"])]),_:2},1032,["prop"])):j("",!0),t(n,{label:"通过条件","label-position":"left",prop:`steps.${b}.roles.${x}.passType`,rules:[{required:!0,message:"请选择通过条件",trigger:"change"}]},{default:l(()=>[t(R,{modelValue:q.passType,"onUpdate:modelValue":p=>q.passType=p},{default:l(()=>[t(U,{label:"1名通过即可",value:"1"}),t(U,{label:"所有人员通过",value:"2"}),t(U,{label:"部门负责人审批",value:"3"}),t(U,{label:"角色审批",value:"4"}),t(U,{label:"自动审批",value:"5"})]),_:2},1032,["modelValue","onUpdate:modelValue"])]),_:2},1032,["prop"]),a.roles.length>1&&x!==0?(g(),h(r,{key:1,type:"danger",size:"small",onClick:p=>se(b,x),style:{position:"absolute",right:"0",top:"0"}},{default:l(()=>[t(T,null,{default:l(()=>[t(Q(ee))]),_:1}),e[23]||(e[23]=y(" 删除角色 "))]),_:2},1032,["onClick"])):j("",!0)]))),128))])]),_:2},1024),e[24]||(e[24]=v("div",{class:"step-line"},null,-1))]))),128)),v("div",xe,[c.mode!=="view"?(g(),h(r,{key:0,type:"primary",onClick:le,disabled:o.steps.length>=5},{default:l(()=>[t(T,null,{default:l(()=>[t(Q(ie))]),_:1}),e[25]||(e[25]=y(" 添加审批步骤 "))]),_:1},8,["disabled"])):j("",!0)]),v("div",Ue,[t($,{shadow:"never",class:"step-card done"},{default:l(()=>e[26]||(e[26]=[v("div",{class:"step-title"},"审批完成",-1)])),_:1})])])]),_:1},8,["model","rules","disabled"])]),_:1},8,["title","modelValue"])}}}),De=ge(he,[["__scopeId","data-v-6fe392ad"]]);export{De as default};