@jecloud/func
Version:
JECloud 功能库
1 lines • 2.81 kB
JavaScript
import{isVNode as t,createVNode as o}from"vue";import{watch as n}from"vue";import{WorkflowUtil as e}from"@jecloud/plugin";import{Button as r,Tooltip as i,Dropdown as a,Menu as u}from"@jecloud/ui";import{useWorkflowFormPerm as c}from"./use-workflow-perm";import{isNotEmpty as f,isEmpty as l}from"@jecloud/utils";function s(o){return"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!t(o)}export function useFuncWorkflow(t){var d=t.$func,v=c({$func:d}).workflowFormPerm,m=function(){var t=d.getFuncData().info,o=t.tableCode,n=t.funcCode,e=t.productCode,r=t.pkCode,i=t.funcId,a=d.store.activeBean[r];return a?{tableCode:o,funcCode:n,funcId:i,beanId:a,prod:e}:null},p=function(t,o){var n=m(),r=Promise.resolve(null);return n&&(r=e.getWorkflowInfo(n,t,d.store.activeBean)),r.then((function(t){if(d.store.activeWorkflow=t,v(),t&&f(d.$modal)&&d.store.isFuncForm&&o){!l(t.buttonList)&&t.buttonList.some((function(t){return-1!=["submitBtn","passBtn","vetoBtn","abstainBtn","receiveBtn","directSendBtn"].indexOf(t.id)}))||d.$modal.close()}}))},k=function(t){var o=t.bean;if(o){d.store.setActiveBean(o);var n=d.getFuncGrid();n&&n.store.commitRecord(o)}};return{workflowButtonSlot:function(){var t,o=m();return e.useWorkflowButtonSlot({buttons:null===(t=d.store.activeWorkflow)||void 0===t?void 0:t.buttonList,params:o,activeBean:d.store.activeBean,$func:d,callback:function(t){var o=t.bean,n=t.processInfo;k({bean:o}),n&&p(n,!0)}})()},workflowMainButtonSlot:function(){var t=m();if(l(t))return!1;t.activeBean=d.store.activeBean,t.$func=d;var n=[],c={};if(f(d.store.activeWorkflow)&&(n=d.store.activeWorkflow.buttonList||[],c=d.store.activeWorkflow.workflowConfig||{}),"NOSTATUS"==c.status&&n.length>1){var v=[];return n.forEach((function(t){v.push({title:t.modelName||t.name,pdid:t.pdid})})),f(c)?o(i,{title:"流程追踪"},{default:function(){return[o(a,{trigger:["click"]},{default:function(){return[o(r,{icon:"fal fa-sitemap",class:"bgcolor-grey"},null)]},overlay:function(){var n;return o(u,{onClick:function(o){t.pdid=o.key,e.showWorkflowMain({params:t,callback:function(t){var o=t.bean,n=t.processInfo;k({bean:o}),p(n)}})}},s(n=v.map((function(t){return o(u.Item,{key:t.pdid},{default:function(){return[t.title]}})})))?n:{default:function(){return[n]}})}})]}}):null}return f(c)?o(i,{title:"流程追踪"},{default:function(){return[o(r,{icon:"fal fa-sitemap",class:"bgcolor-grey",onClick:function(){n&&n.length>0&&(t.pdid=n[0]&&n[0].pdid),t.currentNode=null==c?void 0:c.currentNode,e.showWorkflowMain({params:t,callback:function(t){var o=t.bean,n=t.processInfo;k({bean:o}),p(n)}})}},null)]}}):null},watchBean4Workflow:function(){n((function(){return[d.store.activeBean,d.store.activeBeanEmitter]}),(function(){var t=d.getFuncData();d.store.activeWorkflow=null,t.info.enableWorkflow&&p()}))}}}