UNPKG

@jecloud/func

Version:

JECloud 功能库

1 lines 3.23 kB
import{withDirectives as e,resolveDirective as t,createVNode as n}from"vue";import{defineComponent as r,ref as a,onMounted as c,watch as o}from"vue";import{Tree as i,Data as l}from"@jecloud/ui";import{loadUserPersoninfo as u}from"../../../../data/api/rbac";import{isNotEmpty as s,cloneDeep as d,isEmpty as h}from"@jecloud/utils";export default r({name:"JeFuncSelectUserTree",inheritAttrs:!1,props:{activeKey:String,multipleType:String,unCheckDatas:Object,checkedUser:Object,panelType:String,showDeveloper:String},emits:["changeSelectData","changeTabActiveKey"],setup:function(r,p){p.slots,p.attrs;var f=p.emit,v=(p.expose,a()),m=l.Store.useTreeStore({data:[]}),T=a(!0),y=a({rowField:"id",parentField:"parentId",checkbox:!0,textField:"text"}),g=function(e,t){t&&v.value.setAllCheckboxRow(!1);var n=[];"role"==r.activeKey?e.forEach((function(e){m.cascade((function(t){var r;"user"==t.nodeInfoType&&(null===(r=t.bean)||void 0===r?void 0:r.JE_RBAC_ACCOUNTDEPT_ID)==e.id&&n.push(t)}),m.data)})):e.forEach((function(e){var t=v.value.getRowById(e.id);n.push(t)})),v.value.setSelectRow(n,t)};c((function(){!function(e){T.value=!0;var t="commonUser",n={};"role"==e?t="roleUser":"dept"==e?t="deptUser":"organ"==e&&(t="orgUser","1"==r.showDeveloper&&(n.showDeveloper="1")),n.type=t,u({params:n}).then((function(e){m.data=e.children,m.loadData(e.children),"commonUser"==n.type&&e.children.length<=0&&f("changeTabActiveKey","dept"),setTimeout((function(){g(r.checkedUser,!0),T.value=!1}),100)}))}(r.activeKey)}));var D=function(e){e.records;var t=e.checked,n=e.row,a=e.newValue;if(h(t))return!0;var c=[];if("M"==r.multipleType){var o=function(e){"user"==e.nodeInfoType&&c.push(e),e.children.length>0&&e.children.forEach((function(e){o(e)}))};o(d(n));var i=[];(l=d(c)).forEach((function(e){(!i.some((function(t){return t.id==e.id}))||i.length<=0)&&("role"==r.activeKey&&(e.id=e.bean.JE_RBAC_ACCOUNTDEPT_ID),i.push(e))})),f("changeSelectData",{checked:t,data:i})}else if(s(a)?(t=!0,"user"==a.nodeInfoType&&c.push(a)):(t=!1,"user"==n.nodeInfoType&&c.push(n)),c.length>0){var l=d(c);"role"==r.activeKey&&l.forEach((function(e){e.id=e.bean.JE_RBAC_ACCOUNTDEPT_ID})),f("changeSelectData",{checked:t,data:l})}},E=function(e){var t=e.row,n=[];if("M"==r.multipleType){var a=function(e){"user"==e.nodeInfoType&&n.push(e),e.children.length>0&&e.children.forEach((function(e){a(e)}))};a(t)}else"user"==t.nodeInfoType&&n.push(t);if(n.length>0){var c=d(n);"role"==r.activeKey&&c.forEach((function(e){e.id=e.bean.JE_RBAC_ACCOUNTDEPT_ID})),f("changeSelectData",{checked:!0,data:c})}};o((function(){return r.unCheckDatas}),(function(e){e&&e.length>0&&r.panelType==r.activeKey&&g(e,!1)})),o((function(){return r.activeKey}),(function(e){r.checkedUser&&r.panelType==e&&g(r.checkedUser,!0)}),{deep:!0});var C={placeholder:"请输入关键字..."};return function(){return e(n(i,{ref:v,class:"je-func-select-user-tree",height:"100%",size:"mini","tree-config":y.value,store:m,multiple:"M"==r.multipleType,search:C,onSelectChange:D,onSearchSelect:E},{nodeDefault:function(e){var t=e.row;return"common"==r.activeKey?n("div",{class:"node-context"},[t.text,n("span",{class:"node-deptname"},[t.bean.DEPARTMENT_NAME])]):n("div",null,[t.text])}}),[[t("loading"),T.value]])}}});