mobile-workflow/unpackage/dist/build/web/assets/pages-submit-InitiateProcess.CW3pnw9q.js
2024-06-02 23:55:29 +08:00

2 lines
16 KiB
JavaScript

import{_ as e,r as s,u as a,z as t,v as l,a as o,c as n,w as d,d as r,a2 as c,C as i,F as u,D as p,e as f,H as m,b as h,L as k,J as v,M as g,i as b,f as y,aA as w,p as _,W as E,at as C,aB as O,G as I,ad as N,O as D,aC as R,aD as S,aE as U,q as T,aF as L,aG as P,al as F,am as x,B as $,E as A,$ as V,s as j,P as q,S as M,j as B}from"./index-C5Ed3_rp.js";import{_ as z}from"./uni-segmented-control.C3AXntP9.js";import{F as G}from"./FormRender.Du5iL0RJ.js";import{f as J}from"./ProcessUtil.Cpq6blAo.js";import{c as K,d as H}from"./model.jKiqjnRd.js";const Y=e({__name:"ProcessNodeRender2",props:{task:{type:Object,required:!0,default:()=>({})},error:{type:Boolean,default:!1}},emits:["addOrg","delOrg"],setup(e,{expose:w,emit:_}){w({errorShark:function(e){C.value=!0,setTimeout((()=>C.value=!1),1200)}});const E=_,C=s();function O(e){E("addOrg",e)}function I(e,s){console.log("删除用户"),E("delOrg",e,s)}return(s,w)=>{const _=a(l("uni-icons"),t),E=b,N=y;return o(),n(E,{style:{padding:"32rpx 0"}},{default:d((()=>[r(E,{class:c({"w-process-render-node":!0,"shake-tip":C.value})},{default:d((()=>[r(_,{type:e.task.icon,size:25,color:"#888887",class:"w-node-icon"},null,8,["type"]),(o(),n(E,{class:"w-p-node",key:e.task.active},{default:d((()=>[(e.task.options||[]).length>0?(o(),n(E,{key:0,class:"w-p-node-branchs"},{default:d((()=>[(o(!0),i(u,null,p(e.task.options,(s=>(o(),n(E,{class:c({"w-p-node-branch":!0,"no-active":s.skip,"is-active":s.id===e.task.active}),key:s.id,onClick:a=>e.task.active=s.id},{default:d((()=>[f(m(s.title),1)])),_:2},1032,["class","onClick"])))),128))])),_:1})):(o(),n(E,{key:1},{default:d((()=>[e.task.enableEdit?(o(),n(N,{key:0,style:{color:"red"}},{default:d((()=>[f(" * ")])),_:1})):h("",!0),f(" "+m("END"===e.task.name?"流程结束":e.task.title),1)])),_:1})),r(N,null,{default:d((()=>[f(m(e.task.desc),1)])),_:1})])),_:1})),r(E,{class:"w-p-n-user"},{default:d((()=>[(o(!0),i(u,null,p(e.task.users,((s,a)=>(o(),n(k,{name:s.name,closeable:e.task.enableEdit,type:s.type,key:s.id,src:v(g)(s.avatar),size:30,showY:"",onClose:s=>I(a,e.task)},null,8,["name","closeable","type","src","onClose"])))),128)),e.task.enableEdit&&(e.task.multiple||0===e.task.users.length)?(o(),n(E,{key:0,class:"w-p-n-uadd",onClick:w[0]||(w[0]=s=>O(e.task))},{default:d((()=>[r(_,{type:"plusempty",size:"30",color:"#888887"})])),_:1})):h("",!0)])),_:1})])),_:1},8,["class"]),(o(),n(E,{key:e.task.active+"_",class:"w-sub-node"},{default:d((()=>[(o(!0),i(u,null,p(e.task.branchs?e.task.branchs[e.task.active]:[],(e=>(o(),n(W,{key:e.id+"_",class:"w-node-render",onAddOrg:O,onDelOrg:I,task:e},null,8,["task"])))),128))])),_:1}))])),_:1})}}},[["__scopeId","data-v-a2d44749"]]),W=e({__name:"ProcessNodeRender",props:{task:{type:Object,required:!0,default:()=>({})},error:{type:Boolean,default:!1}},emits:["addOrg","delOrg"],setup(e,{expose:w,emit:_}){w({errorShark:function(e){C.value=!0,setTimeout((()=>C.value=!1),1200)}});const E=_,C=s();function O(e){E("addOrg",e)}function I(e,s){console.log("删除用户"),E("delOrg",e,s)}return(s,w)=>{const _=a(l("uni-icons"),t),E=b,N=y;return o(),n(E,{style:{padding:"32rpx 0"}},{default:d((()=>[r(E,{class:c({"w-process-render-node":!0,"shake-tip":C.value})},{default:d((()=>[r(_,{type:e.task.icon,size:25,color:"#888887",class:"w-node-icon"},null,8,["type"]),(o(),n(E,{class:"w-p-node",key:e.task.active},{default:d((()=>[(e.task.options||[]).length>0?(o(),n(E,{key:0,class:"w-p-node-branchs"},{default:d((()=>[(o(!0),i(u,null,p(e.task.options,(s=>(o(),n(E,{class:c({"w-p-node-branch":!0,"no-active":s.skip,"is-active":s.id===e.task.active}),key:s.id,onClick:a=>e.task.active=s.id},{default:d((()=>[f(m(s.title),1)])),_:2},1032,["class","onClick"])))),128))])),_:1})):(o(),n(E,{key:1},{default:d((()=>[e.task.enableEdit?(o(),n(N,{key:0,style:{color:"red"}},{default:d((()=>[f(" * ")])),_:1})):h("",!0),f(" "+m("END"===e.task.name?"流程结束":e.task.title),1)])),_:1})),r(N,null,{default:d((()=>[f(m(e.task.desc),1)])),_:1})])),_:1})),r(E,{class:"w-p-n-user"},{default:d((()=>[(o(!0),i(u,null,p(e.task.users,((s,a)=>(o(),n(k,{name:s.name,closeable:e.task.enableEdit,type:s.type,key:s.id,src:v(g)(s.avatar),size:30,showY:"",onClose:s=>I(a,e.task)},null,8,["name","closeable","type","src","onClose"])))),128)),e.task.enableEdit&&(e.task.multiple||0===e.task.users.length)?(o(),n(E,{key:0,class:"w-p-n-uadd",onClick:w[0]||(w[0]=s=>O(e.task))},{default:d((()=>[r(_,{type:"plusempty",size:"30",color:"#888887"})])),_:1})):h("",!0)])),_:1})])),_:1},8,["class"]),(o(),n(E,{key:e.task.active+"_",class:"w-sub-node"},{default:d((()=>[(o(!0),i(u,null,p(e.task.branchs?e.task.branchs[e.task.active]:[],(e=>(o(),n(Y,{key:e.id+"_",class:"w-node-render",onAddOrg:O,onDelOrg:I,task:e},null,8,["task"])))),128))])),_:1}))])),_:1})}}},[["__scopeId","data-v-49dae80b"]]);const Q={getUserLeader:function(e,s,a){return w({url:"wflow/process/step/leader/level",method:"get",data:{level:e,deptId:s,skipEmpty:a}},!1)},getUserLeaders:function(e,s,a){return w({url:"wflow/process/step/leader/to/level",method:"get",data:{maxLevel:e,deptId:s,skipEmpty:a}},!1)},getUsersByRoles:function(e){return w({url:"wflow/process/step/userByRoles",method:"post",data:e},!1)},validateEl:function(e){return w({url:"/wflow/process/step/el/validate",method:"get",data:{el:e}})},deployProcess:function(e,s=!1){return w({url:`wflow/process/model${s?"/sub":""}/deploy/${e}`,method:"post"})},saveProcess:function(e,s=!1){return w({url:`wflow/process/model${s?"/sub":""}/save/`,method:"post",data:e})},getNewVerProcess:function(e,s=!1){return w({url:`wflow/process/model${s?"/sub":""}/${e}`,method:"get"})},getCustomPrintConfig:function(e){return w({url:`wflow/process/model/customPrint/${e}`,method:"get"})},getLeaderByDepts:function(e){return w({url:"wflow/process/step/deptLeader",method:"post",data:e},!1)},delProcessInst:function(e){return w({url:`wflow/process/instance/${e}`,method:"delete"})},getTrueConditions:function(e){return w({url:"/wflow/process/step/conditions/resolve",method:"post",data:e},!1)}},X=e({__name:"ProcessRender",props:{processDefId:String,process:{type:Object,default:()=>({})},formData:{type:Object,default:()=>({})},modelValue:{type:Object,default:()=>({})},deptId:{type:String,default:null}},emits:["update:modelValue","render-ok"],setup(e,{expose:a,emit:t}){const l=R(),c=e,f=_({get:()=>c.modelValue,set(e){m("update:modelValue",e)}});a({validate:function(e){let s=!0;console.log(s,"我的OK");for(let a of y.selectUserNodes)if(0===(f.value[a]||[]).length){s=!1;let e=y.branchNodeMap.get(a);for(;e&&e.id;)e.node.active=e.id,e=y.branchNodeMap.get(e.id);I((()=>{l.refs[a]&&l.refs[a][0].errorShark()}));break}console.log(s,"我的OK"),e&&e(s)}});const m=t,k=JSON.parse(E("loginUser"));k.value={id:k.userId,name:k.realName,avatar:g(k.avatar),sn:k.sn};const v=s(),y=C({selectUserNodes:new Set,loading:!1,selectedNode:{},reverse:!1,userCatch:{},oldFormData:{},models:null,processTasks:[],conditionFormItem:new Set,branchNodeMap:new Map,loadingReqs:[],calls:[]});O((()=>T()));const w=S((()=>T()),500);async function T(){console.log("渲染流程"),y.loading=!0,y.processTasks.length=0,y.selectUserNodes.clear(),y.loadingReqs.length=0,L(c.process,y.processTasks),y.processTasks.push({title:"结束",name:"END",icon:"checkbox-filled",enableEdit:!1}),y.loadingReqs.length>0?Promise.all(y.loadingReqs).then((()=>{y.loading=!1,m("render-ok")})).catch((()=>y.loading=!1)):(m("render-ok"),y.loading=!1)}function L(e,s,a,t){J(e,(e=>{switch(a&&y.branchNodeMap.set(e.id,{node:a,id:t}),e.type){case"ROOT":s.push({id:e.id,title:e.name,name:"发起人",desc:`${k.value.name} 将发起本流程`,icon:"contact-filled",enableEdit:!1,users:[k.value]});break;case"APPROVAL":s.push(P(e));break;case"TASK":s.push(P(e,!1));break;case"SUBPROC":s.push(function(e){let s={};switch(e.props.staterUser.type){case"ROOT":s=k.value;break;case"FORM":const a=c.formData[e.props.staterUser.value];s=Array.isArray(a)&&a.length>0?a[0]:{name:"请选人"};break;case"SELECT":s=e.props.staterUser.value||{}}const a={id:e.id,title:`${e.name} [由${s.id?s.name:"?"}发起]`,name:"子流程",desc:"",icon:"more-filled",enableEdit:!1,users:[s]};return function(e){y.models?e():(y.calls.push(e),1===y.calls.length&&K({},!0).then((e=>{y.models={},e.data.forEach((e=>{e.items.forEach((e=>y.models[e.procCode]=e.procName))})),y.calls.forEach((e=>e())),y.calls.length=0})))}((()=>{a.desc=`调用子流程 [${y.models[e.props.subProcCode]}]`})),a}(e));break;case"CC":s.push(function(e){let s={id:e.id,title:e.name,icon:"paperplane-filled",name:"抄送人",enableEdit:e.props.shouldAdd,type:"org",multiple:!0,desc:e.props.shouldAdd?"可添加抄送人":"流程将会抄送到他们",users:U(e.props.assignedUser)};y.userCatch[e.id]&&y.userCatch[e.id].length>0&&(s.users=y.userCatch[e.id]);return y.userCatch[e.id]=s.users,s}(e));break;case"CONDITIONS":return s.push(function(e,s,a){let t={id:e.id,title:e.name,name:"条件分支",icon:"tune",enableEdit:!1,active:e.branchs[0].id,options:[],desc:"只执行第一个满足条件的分支",branchs:{}};const l=Q.getTrueConditions({processDfId:c.processDefId,conditionNodeId:e.id,multiple:!1,context:{...c.formData,deptId:c.deptId}}).then((l=>{const o=new Set(l.data||[]);for(let s=0;s<e.branchs.length;s++){const a=e.branchs[s];a.skip=!o.has(a.id),a.skip||(t.active=a.id)}e.branchs.forEach((e=>{t.options.push({id:e.id,title:e.name,skip:e.skip}),t.branchs[e.id]=[],y.branchNodeMap.set(e.id,{node:s,id:a}),L(e.children,t.branchs[e.id],t,e.id)}))})).catch((e=>{t.desc='<span style="color:#CE5266;">条件解析异常,渲染失败😢<span>'}));return y.loadingReqs.push(l),t}(e,a,t)),L(e.children,s),!0;case"INCLUSIVES":return s.push(function(e,s,a){let t={id:e.id,title:e.name,name:"包容分支",icon:"tune-filled",enableEdit:!1,active:e.branchs[0].id,options:[],desc:"满足条件的分支均会执行",branchs:{}};const l=Q.getTrueConditions({processDfId:c.processDefId,conditionNodeId:e.id,multiple:!0,context:{...c.formData,deptId:c.deptId}}).then((l=>{const o=new Set(l.data||[]);for(let s=0;s<e.branchs.length;s++){const a=e.branchs[s];a.skip=!o.has(a.id),a.skip||(t.active=a.id)}e.branchs.forEach((e=>{t.options.push({id:e.id,title:e.name,skip:e.skip}),t.branchs[e.id]=[],y.branchNodeMap.set(e.id,{node:s,id:a}),L(e.children,t.branchs[e.id],t,e.id)}))})).catch((e=>{t.desc='<span style="color:#CE5266;">条件解析异常,渲染失败😢<span>'}));return y.loadingReqs.push(l),t}(e,a,t)),L(e.children,s),!0;case"CONCURRENTS":return s.push(function(e,s,a){let t={id:e.id,title:e.name,name:"并行分支",icon:"settings-filled",enableEdit:!1,active:e.branchs[0].id,options:[],desc:"所有分支都将同时执行",branchs:{}};return e.branchs.forEach((e=>{t.options.push({id:e.id,title:e.name,skip:!1}),t.branchs[e.id]=[],y.branchNodeMap.set(e.id,{node:s,id:a}),L(e.children,t.branchs[e.id],t,e.id)})),t}(e,a,t)),L(e.children,s),!0}}))}function P(e,s=!0){let a={id:e.id,title:e.name,name:s?"审批人":"办理人",icon:s?"person-filled":"calendar-filled",enableEdit:!1,multiple:!1,mode:e.props.mode,users:[],desc:""},t=!0;switch(e.props.assignedType){case"ASSIGN_USER":a.users=U(e.props.assignedUser),a.desc=s?"指定审批人":"指定办理人";break;case"ASSIGN_LEADER":y.loadingReqs.push(Q.getLeaderByDepts((e.props.assignedDept||[]).map((e=>e.id))).then((e=>{a.users=e.data}))),a.desc="指定部门的领导";break;case"SELF":a.users=[k.value],a.desc="发起人自己"+(s?"审批":"办理");break;case"SELF_SELECT":a.enableEdit=!0,y.selectUserNodes.add(e.id),a.multiple=e.props.selfSelect.multiple||!1,a.desc=s?"自选审批人":"自选办理人";break;case"LEADER_TOP":a.desc="连续多级主管"+(s?"审批":"办理");const l=e.props.leaderTop;y.loadingReqs.push(Q.getUserLeaders("TOP"===l.endCondition?0:l.endLevel,c.deptId,l.skipEmpty).then((e=>{a.users=e.data})));break;case"LEADER":a.desc=1===e.props.leader.level?"直接主管"+(s?"审批":"办理"):`${e.props.leader.level}级主管${s?"审批":"办理"}`,y.loadingReqs.push(Q.getUserLeader(e.props.leader.level,c.deptId,e.props.leader.skipEmpty).then((e=>{a.users=e.data?[e.data]:[]})));break;case"ROLE":a.desc=`由角色[${(e.props.role||[]).map((e=>e.name))}]${s?"审批":"办理"}`,y.loadingReqs.push(Q.getUsersByRoles({projectSn:k.value.sn,roleIds:(e.props.role||[]).map((e=>e.id))}).then((e=>{a.users=e.data})));break;case"FORM_USER":t=!1,a.desc="由表单字段内人员"+(s?"审批":"办理"),y.conditionFormItem.add(e.props.formUser),a.users=c.formData[e.props.formUser]||[];break;case"FORM_DEPT":t=!1,a.desc="由表单部门内主管"+(s?"审批":"办理"),y.conditionFormItem.add(e.props.formDept),y.loadingReqs.push(Q.getLeaderByDepts((c.formData[e.props.formDept]||[]).map((e=>e.id))).then((e=>{a.users=e.data})));break;case"REFUSE":a.desc="流程此处将被自动驳回"}return y.userCatch[e.id]&&y.userCatch[e.id].length>0&&(a.users=y.userCatch[e.id]),t&&(y.userCatch[e.id]=a.users),a}function F(e){console.log(e,"node"),y.selectedNode=e,v.value.show()}function x(e){var s;s=e,f.value[y.selectedNode.id]=[],s.forEach((e=>{-1===y.selectedNode.users.findIndex((s=>s.id===e.id))&&(e.enableEdit=!0,y.selectedNode.users.push(e),f.value[y.selectedNode.id]=y.selectedNode.users)}))}function $(e,s){s.users.splice(e,1)}return N(c.formData,(async()=>{w()})),(e,s)=>{const a=b;return!y.loading&&y.processTasks.length>0?(o(),n(a,{key:0,class:"w-process"},{default:d((()=>[r(a,{class:"w-process-line"}),(o(!0),i(u,null,p(y.processTasks,(e=>(o(),n(a,{class:"w-process-render",key:e.id},{default:d((()=>[r(W,{ref_for:!0,ref:e.id,class:"w-node-render",task:e,onAddOrg:F,onDelOrg:$},null,8,["task"])])),_:2},1024)))),128)),r(D,{ref_key:"orgPicker",ref:v,type:y.selectedNode.type||"user",multiple:y.selectedNode.multiple||!1,selected:y.selectedNode.users,onOk:x},null,8,["type","multiple","selected"])])),_:1})):h("",!0)}}},[["__scopeId","data-v-490b98cc"]]),Z=e({__name:"InitiateProcess",setup(e){const t=s(),c=s(),i=s({}),u=s({}),p=s([]),m=s(null),k=s({}),v=s(!1),g=s(!1),y=s(0),C=_((()=>A().windowHeight-70-36));T((e=>{var s;s=e.code||"",g.value=!0,H(s).then((e=>{console.log(JSON.stringify(e),777888999),u.value=e.data,g.value=!1})),L(O.userId).then((e=>{p.value=(e.data||[]).map((e=>({text:e.name,value:e.id}))),p.value.length>0&&(m.value=p.value[0].value)}))}));const O=JSON.parse(E("loginUser")),I=S((()=>V("showFp")),500);function N(e){y.value=e.currentIndex,V(0===y.value?"showFp":"hideFp")}function D(e){I()}function R(){t.value.validate((e=>{e?c.value.validate((e=>{e?function(){let e={deptId:m.value,formData:i.value,processUsers:k.value};(s=u.value.processDefId,a=e,w({url:`wflow/process/start/${s}`,method:"post",data:a})).then((e=>{j({icon:"success",title:"发起成功"}),q({delta:1})})).catch((e=>{j({icon:"none",title:"发起失败: "+e.msg})}));var s,a}():(y.value=1,j({icon:"none",title:"请按提示完成流程选项"}))})):(y.value=0,j({icon:"none",title:"请按提示完成表单"}))}))}return(e,s)=>{const w=a(l("uni-segmented-control"),z),_=b,E=a(l("uni-data-checkbox"),P),O=M,I=B;return o(),n(_,null,{default:d((()=>[r(_,{class:"nav-type"},{default:d((()=>[r(w,{current:y.value,values:["流程表单","流程步骤"],onClickItem:N,styleType:"text",activeColor:"#4C87F3"},null,8,["current"])])),_:1}),r(O,{class:"w-submit-form","scroll-y":"","show-scrollbar":"",style:$({height:C.value+"px"}),onScroll:D},{default:d((()=>[F(r(_,null,{default:d((()=>[p.value.length>1?(o(),n(_,{key:0,class:"w-start-dept"},{default:d((()=>[r(_,null,{default:d((()=>[f("发起人部门")])),_:1}),r(E,{modelValue:m.value,"onUpdate:modelValue":s[0]||(s[0]=e=>m.value=e),localdata:p.value},null,8,["modelValue","localdata"])])),_:1})):h("",!0),r(G,{ref_key:"wform",ref:t,config:u.value.formConfig,jsonConf:u.value.formItems,modelValue:i.value,"onUpdate:modelValue":s[1]||(s[1]=e=>i.value=e)},null,8,["config","jsonConf","modelValue"])])),_:1},512),[[x,0===y.value]]),F(r(_,{class:"w-process-render"},{default:d((()=>[!g.value&&m.value?(o(),n(X,{key:0,onRenderOk:s[2]||(s[2]=e=>v.value=!1),ref_key:"process",ref:c,"process-def-id":u.value.processDefId,"dept-id":m.value,modelValue:k.value,"onUpdate:modelValue":s[3]||(s[3]=e=>k.value=e),formData:i.value,process:u.value.process},null,8,["process-def-id","dept-id","modelValue","formData","process"])):h("",!0)])),_:1},512),[[x,1===y.value]])])),_:1},8,["style"]),r(_,{class:"w-submit-opration"},{default:d((()=>[r(I,{class:"w-button",type:"primary",onClick:R},{default:d((()=>[f("提交流程")])),_:1})])),_:1})])),_:1})}}},[["__scopeId","data-v-22e7eb44"]]);export{Z as default};