UNPKG

@jecloud/plugin

Version:

JECloud 插件库

1 lines 2.14 kB
import{reactive as e,ref as r,nextTick as t,onMounted as s,watch as n}from"vue";import{Data as o,Modal as a,Hooks as u}from"@jecloud/ui";import l from"sortablejs";import{isNotEmpty as i}from"@jecloud/utils";export function useWorkflowOperationUser(c){var v=c.props,d=c.context,f=d.expose,p=d.emit,m=r(),U=r(),g=o.Store.useTreeStore({data:[]}),h=u.useModelValue({props:v,context:d,key:"result"}),w=u.useModelValue({props:v,context:d,key:"sequential"}),x=e({activeUser:null}),S={loadUser:function(e){g.loadData(e),t((function(){g.data.forEach((function(e){m.value.setTreeExpand(e,!0)})),v.selectAll&&v.multiple&&y()}))},selectHistoryUser:function(e){var r=e.userId,t=m.value.getRowById(r);i(t)?(m.value.setSelectRow(t),y({row:t})):(m.value.clearSelectedRecords(),i(r)&&a.notice("没有该人员!","warning"))}};f(S),s((function(){t((function(){S.loadUser(v.users),v.draggable&&l.create(U.value,{handle:".users-item",ghostClass:"users-item-sortable-ghost",onEnd:function(e){var r=e.newIndex,t=e.oldIndex,s=h.value,n=s.splice(t,1)[0];s.splice(r,0,n)}})}))}));var y=function(e){void 0===e&&(e={});var r=e.row,t=[];if(r?"json"===r.nodeInfoType&&t.push(r):g.cascade((function(e){if("json"===e.nodeInfoType){var r=t.filter((function(r){return r.id==e.id}));r.length<=0&&t.push(e)}})),v.multiple){var s=h.value,n=s.map((function(e){return e.id}));t=t.filter((function(e){return!n.includes(e.id)})),s.push.apply(s,t),x.activeUser=r||t[0]}else t.length&&(h.value=t,x.activeUser=t[0])};return n((function(){return w.value}),(function(e){p("changeSequential",e)})),{userConfig:x,selectUser:y,$userTree:m,treeStore:g,moveUser:function(e){switch(e){case"moveTreeUser":var r=m.value.getSelectedRecords()[0];r?y({row:r}):a.alert("请选择要添加人员!",a.status.warning);break;case"moveTreeUsers":y({});break;case"moveSelectUser":var t=h.value,s=t.find((function(e){var r;return e.id===(null===(r=x.activeUser)||void 0===r?void 0:r.id)}));if(s){var n=t.indexOf(s);t.splice(n,1),x.activeUser=t[0]}else a.alert("请选择要移除人员!",a.status.warning);break;case"moveSelectUsers":h.value=[],x.activeUser=null}},$userResult:U,result:h,sequential:w}}