UNPKG

@jecloud/plugin

Version:

JECloud 插件库

1 lines 3.21 kB
import{isEmpty as e,forEach as t,loadDDItemByCode as a,isArray as o,isNotEmpty as r}from"@jecloud/utils";import{Modal as n}from"@jecloud/ui";import{getSubmitNodeInfo as s,getSubmitNodeUsers as i,doButtonOperate as c,getTaskNodeInfo as u}from"../../../data/api";import d from"../../../data/model/task-node";import{OperatorEnum as m}from"../../../data/enum";export function useWorkflowOperation(e){e.props,e.context,e.$workflow.store.operationId}export function initSubmitNodeInfo(e){var t,r=e.store,n=e.button,i=e.nodeDataEmpty,c=e.loading,p=n.workflowConfig.currentNode,l=r.operationId;switch(l){case m.TASK_DIRECT_SEND_OPERATOR:case m.TASK_GOBACK_OPERATOR:case m.TASK_DISMISS_OPERATOR:t=u(r.getParams()).then((function(e){return o(e)?e:[e]})),r.directOperation=!0,l==m.TASK_DISMISS_OPERATOR&&(r.directOperationFirst=!0);break;case m.PROCESS_INVALID_OPERATOR:case m.TASK_PASS_OPERATOR:case m.TASK_VETO_OPERATOR:case m.TASK_ABSTAIN_OPERATOR:t=Promise.resolve([p]),r.directOperation=!0;break;case m.TASK_DELEGATE_OPERATOR:case m.TASK_TRANSFER_OPERATOR:t=Promise.resolve([p]);break;default:t=s(r.getParams())}return Promise.all([t,a("JE_WF_APPROOPINION")]).then((function(e){var t=e[0],a=e[1];if(t.length<=0)return i.value=!0,c.value=!1,!1;r.taskMessages=a,r.taskNodes=null==t?void 0:t.map((function(e){return new d(e)})),r.activeNode=r.taskNodes[0],r.directOperation||r.activeNode.submitDirectly?(r.directOperationFirst&&r.taskNodes.length>1?r.activeStep=1:r.activeStep=3,r.directOperation=!0):1===r.taskNodes.length&&(r.activeNode.end?(r.directOperation=!0,r.activeStep=3,r.name="结束"):r.nextSetp())}))}export function initSubmitNodeUsers(t){var a,o=t.store;if(e(o.activeNode.users)){var r=o.activeNode.target;a=i(o.getParams({target:r})).then((function(e){o.activeNode.setUsers(e.nodeAssigneeInfo);var t=e.commonUserInfo||[];return t.length>0&&(t.length>7?(o.historyUserData.showUserDatas=t.splice(0,7),o.historyUserData.menuUserDatas=t):o.historyUserData.showUserDatas=t),o.activeNode.users}))}else a=Promise.resolve(o.activeNode.users);return a.then((function(e){return o.updateTaskUsers(e),e}))}function p(e){var t=e.store,a=e.$modal,o=e.context,s=e.submitBtn,i=o.emit;r(s)&&(s.value.loading=!0),c(t.getOperatParams()).then((function(e){a.close(),n.notice(t.name+"成功!","success"),i("operate-done",e),r(s)&&(s.value.loading=!1)}))}export function doButtonOperate(e){var t=e.store,a=e.$modal,o=e.context,n=e.$func,s=e.submitBtn,i=n.action.baseAction.doSave,c=n.getFuncForm(),u=c.getButtons("formSaveBtn"),d=c.getChanges();n&&!u.hidden&&r(d)?i().then((function(){u.loading=!1,p({store:t,$modal:a,context:o,submitBtn:s})})):p({store:t,$modal:a,context:o,submitBtn:s})}export function doOperationSetp(a){var o=a.store,r=a.next,s=a.submitBtn;if(r)switch(o.activeStep){case 1:o.nextSetp();break;case 2:var i=Object.keys(o.taskUsers);if(e(i))return void n.alert("请选择人员信息!",n.status.warning);var c=!1;t(i,(function(t){var a=o.taskUsers[t];if(e(a.users))return c=!0,n.alert("请选择【"+a.nodeName+"】的人员信息!",n.status.warning),!1})),!c&&o.nextSetp();break;case 3:o.taskComment?o.operate({submitBtn:s}):n.alert("请填写审批意见!",n.status.warning)}else o.prevSetp()}