UNPKG

@jecloud/plugin

Version:

JECloud 插件库

1 lines 5.56 kB
var o=this&&this.__assign||function(){return o=Object.assign||function(o){for(var t,n=1,r=arguments.length;n<r;n++)for(var e in t=arguments[n])Object.prototype.hasOwnProperty.call(t,e)&&(o[e]=t[e]);return o},o.apply(this,arguments)};import{createVNode as t,mergeProps as n}from"vue";import{Modal as r,Button as e}from"@jecloud/ui";import{OperatorEnum as a}from"../../data/enum";import i from"../../data/model/task-operation-params";import{doButtonOperate as u,getWorkflowInfo as c,getCountersignApprovalOpinion as s}from"../../data/api";import l from"../../data/model/workflow-config";import{TaskChangeButton as f,TaskEndButton as d,TaskButtonBgColor as p,TaskCancellationButton as m}from"../../data/model/task-button";import b from"../../data/model/workflow-form-config";import{showTaskChange as k,showWorkflowOperation as E,showWorkflowMain as v,showTaskChangeUser as O}from"../../workflow-modal";import{isArray as w,isNotEmpty as A,toTemplate as T,execScript4Return as g,execScript as h,decode as P,isEmpty as S,isPromise as R}from"@jecloud/utils";import{getGlobalConfig as _}from"../../../config-provider";export{v as showWorkflowMain};export function doWorkflowOperation(t){var n=t.button,e=t.params,c=t.callback,s=n.operationId,l=new i(o(o({},e),n)).toParams();switch(s){case a.PROCESS_CANCEL_OPERATOR:r.confirm("是否要撤销流程(撤销后将删除审批记录)!",(function(){u(l).then((function(o){r.notice(n.name+"成功!","success"),c(o)}))}));break;case a.PROCESS_EMPTY_START_OPERATOR:case a.TASK_RETREIEVE_OPERATOR:case a.TASK_CLAIM_OPERATOR:case a.TASK_CANCEL_DELEGATE_OPERATOR:u(l).then((function(o){r.notice(n.name+"成功!","success"),c(o)}));break;case a.TASK_URGE_OPERATOR:u(l).then((function(){return r.notice(n.name+"成功!","success")}));break;case a.TASK_CHANGE_OPERATOR:k({button:n,callback:c});break;case a.TASK_PERSONNEL_ADJUSTMENTS_OPERATOR:case a.TASK_CHANGE_ASSIGNEE_OPERATOR:O({params:l,button:n,callback:c});break;case a.TASK_REBOOK_OPERATOR:C({taskOperationParams:l,callback:c});break;default:E({params:e,button:n,callback:c})}}var C=function(o){var t=o.taskOperationParams,n=o.callback,e=function(o){var t=o.taskOperationParams,e=o.buttonName,a=o.button,i=o.$modal;u(t).then((function(o){r.notice(e+"成功!","success"),n(o),a.loading=!1,i.close()}))};s({taskId:t.taskId}).then((function(o){r.dialog({content:"是否要进行改签重新投票!",title:"改签",buttons:[{text:"通过",type:"primary",closable:!1,disabled:"PASS"==o,handler:function(o){var n=o.button,r=o.$modal;n.loading=!0,t.opinionType="PASS",e({taskOperationParams:t,button:n,buttonName:"通过",$modal:r})}},{text:"否决",type:"primary",closable:!1,disabled:"VETO"==o,handler:function(o){var n=o.button,r=o.$modal;n.loading=!0,t.opinionType="VETO",e({taskOperationParams:t,button:n,buttonName:"否决",$modal:r})}},{text:"弃权",type:"primary",closable:!1,disabled:"ABSTAIN"==o,handler:function(o){var n=o.button,r=o.$modal;n.loading=!0,t.opinionType="ABSTAIN",e({taskOperationParams:t,button:n,buttonName:"弃权",$modal:r})}},{text:"取消"}]})}))};export var useWorkflowButtonSlot=function(r){var a=r.buttons,i=void 0===a?[]:a,u=(r.buttonClass,r.params),c=(r.callback,r.activeBean),s=r.$func;return function(){var a,l;return u&&(null!==(a=i.value)&&void 0!==a?a:i).length>0?(null!==(l=i.value)&&void 0!==l?l:i).map((function(a){return a.isEnd?t("span",null,[a.name]):function(a){return y({button:a,activeBean:c,$func:s})?null:S(u.pdid)||u.pdid==a.pdid||"taskChangeBtn"==a.id?t(e,n({icon:a.icon,class:"workflow-btn",style:"color:#2196F3;border-color:#e6e6e6"},N(o(o({},r),{button:a}))),{default:function(){return[a.name]}}):null}(a)})):null}};var y=function(o){var t=!1,n=o.button,r=o.activeBean,e=o.$func,a=n.id,i=n.displayExpressionWhenStarted,u=n.displayExpressionWhenStartedFn;return-1!=["sponsorBtn","startBtn"].indexOf(a)&&(A(i)&&A(r)&&(t=!g(T(i,r))),A(u)&&(t=!h(u,{EventOptions:{$func:e,button:n,isTrusted:!0,type:"workflow"},JE:_("JE")}))),t},N=function(o){var t=o.params,n=o.callback,r=o.$func,e=o.button;return{onClick:function(){$({type:"beforeClick",button:e,$func:r}).then((function(){t.$func=r,doWorkflowOperation({params:t,button:e,callback:function(){for(var o=[],t=0;t<arguments.length;t++)o[t]=arguments[t];n.apply(void 0,o),$({type:"afterClick",button:e,$func:r});var a=o[0].processInfo;if(A(a)){var i=a[0].workflowConfig;i&&1==i.listSynchronization&&r.getFuncGrid().store.reload()}}})}))}}},$=function(o){var t=o.type,n=o.button,r=o.$func,e=n.pcListeners,a=!0;if(A(e)){var i=P(e);return A(i[t])?(a=h(i[t],{EventOptions:{$func:r,button:n,isTrusted:!0,type:"workflow"},JE:_("JE")}),R(a)?a:!1!==a?Promise.resolve():Promise.reject()):Promise.resolve()}return Promise.resolve()};export function getWorkflowInfo(t,n,r){return(n?Promise.resolve(n):c(t)).then((function(n){w(n)||(n=[n]),n.forEach((function(t){var e,a;if(t.workflowConfig){t.formConfig=new b(t.formConfig),t.workflowConfig=new l(t.workflowConfig);var i=t.workflowConfig;if(null===(e=t.buttonList)||void 0===e||e.forEach((function(o){o.workflowConfig=i})),i.isEnd&&(A(r)&&"SUSPEND"==r.SY_AUDFLAG?t.buttonList.push(m()):t.buttonList.push(d())),n.length>1)t.buttonList.some((function(o){return"taskChangeBtn"==o.id}))||t.buttonList.push(o(o({},f()),{currentNodeId:i.currentNode.nodeId,taskList:n}))}null===(a=t.buttonList)||void 0===a||a.forEach((function(o){o.bgColor=p}))}));var e=n[0];if(A(t.currentNode)&&A(t.currentNode.nodeId)&&n.length>1){var a=n.find((function(o){return o.workflowConfig.currentNode.nodeId===t.currentNode.nodeId}));a&&(e=a)}return e}))}