| 1 |
- import{g as e,bD as t,bl as s,bE as l,o as a,X as i,t as o,p as r,w as c,v as n,x as d,y as u,B as h,D as p,F as m,E as f,H as y,z as g,R as b,A as k,I as v,q as C,a6 as S,bF as _}from"./index-P0fyQ2Em.js";import{_ as I}from"./u-search.CSVnMmHg.js";import{r as L}from"./uni-app.es.DOtS5Ldl.js";import{_ as j}from"./u-tag.BmeG4z_q.js";import{l as w,_ as T}from"./ly-tree.DZ8MU_HY.js";import{_ as V}from"./u-avatar.q3DpmfEb.js";import{_ as N}from"./u-button.Chh1-6a-.js";import{_ as x}from"./u-popup.CXrq2y3n.js";import{u as K}from"./base.DOXur1tF.js";import{_ as A}from"./index.BuZ8YmVY.js";import{_ as P}from"./_plugin-vue_export-helper.BCo6x5W8.js";import{s as $}from"./index.DsvBnwWf.js";const D=K(),U={label:"fullName",value:"id",icon:"icon",children:"children"},z={enabledMark:1,groupId:"",organizeId:"",positionId:"",roleId:""};const O=P({name:"jnpf-user-select",components:{SelectPopup:P({props:{selectedData:{type:Array,default:()=>[]},ableIds:{type:Array,default:()=>[]},selectType:{type:String,default:"all"},modelValue:{type:Boolean,default:!1},zIndex:{type:[String,Number],default:0},props:{type:Object,default:()=>({label:"fullName",value:"id",icon:"icon",children:"children",isLeaf:"isLeaf"})},multiple:{type:Boolean,default:!1}},components:{lyCheckbox:w,Empty:A},data:()=>({moving:!1,selectedList:[],selectedIds:[],keyword:"",showPopup:!1,lazyOptions:[],activeKey:"user",hasPage:!1,pagination:{hasPage:1,currentPage:1,pageSize:20},triggered:!1,finish:!1,list:[],userList:[],scrollTop:0,currStep:0,userQuery:{}}),watch:{modelValue:{handler(e){this.showPopup=e,e&&setTimeout((()=>this.init()),10)},immediate:!0},selectedList:{handler(e){this.selectedIds=e.map((e=>e.id)),this.$refs.tree&&this.$refs.tree.setCheckedKeys(this.selectedIds)},deep:!0}},computed:{baseURL(){return this.define.baseURL},uZIndex(){return this.zIndex?this.zIndex:this.$u.zIndex.popup},realProps(){return{...U,...this.props}},getCurrList(){const t=e("userInfo")||{};return[{fullName:`${t.userName}/${t.userAccount}`,headIcon:t.headIcon,id:t.userId,realName:t.userName}]}},methods:{init(){this.keyword="",this.hasPage=0,this.currStep=0,this.activeKey="user",this.resetQuery(),this.$nextTick((()=>{this.triggered=!0})),this.selectedList=JSON.parse(JSON.stringify(this.selectedData)),"all"===this.selectType?this.getGroupList():(this.hasPage=1,this.getConditionOptions())},handleToFirst(){this.currStep&&(this.currStep=0,this.hasPage=!1,this.keyword="",this.resetQuery())},resetQuery(){this.userList=[],this.finish=!1,this.pagination.currentPage=1},getConditionOptions(){if(!this.ableIds.length)return;const e={keyword:this.keyword,ids:this.ableIds,...this.pagination};t(e).then((e=>{const t=e.data.list||[];t.length<this.pagination.pageSize&&(this.finish=!0),this.userList=this.userList.concat(t),this.pagination.currentPage++}))},loadNode(e,t){var l;const a=e.key||"0",i=(null==(l=null==e?void 0:e.data)?void 0:l.type)||"organize";s({id:a,type:i}).then((e=>{var s;const l=(null==(s=e.data)?void 0:s.list)||[];t(l)}))},handleScroll(e){this.scrollTop=e.detail.scrollTop},goTop(){this.scrollTop=0},handleScrollToLower(){this.finish||"current"===this.activeKey||this.getUserData()},getUserData(){"all"==this.selectType?this.getUserList():this.getConditionOptions()},getUserList(){let e={keyword:this.keyword,...this.pagination,...this.userQuery};l(e).then((e=>{const t=e.data.list||[];t.length<this.pagination.pageSize&&(this.finish=!0),this.userList=this.userList.concat(t),this.pagination.currentPage++}))},handleTreeNodeClick(e){const t=e.data;this.handleNodeClick(t)},handleNodeClick(e){let t=`${"position"===this.activeKey?e.type||"position":this.activeKey}Id`;"user"===this.activeKey&&(t="groupId"),this.userQuery={...z,[t]:e.id},this.currStep=1,this.keyword="",this.resetQuery(),this.getUserList()},handleUserNodeClick(e){const t=this.selectedList.findIndex((t=>t.id===e.id));if(-1!==t)return this.selectedList.splice(t,1);this.multiple?this.selectedList.push(e):this.selectedList=[e]},delSelect(e){this.selectedList.splice(e,1)},setCheckAll(){this.selectedIds=[],this.selectedList=[]},handleConfirm(){this.$emit("confirm",this.selectedList,this.selectedIds),this.close()},close(){this.$emit("close",!1)},toggloActive(e){this.activeKey!==e&&(this.currStep=0,this.keyword="",this.resetQuery(),this.$nextTick((async()=>(this.activeKey=e,this.goTop(),"user"===this.activeKey?this.getGroupList():"role"===this.activeKey?this.list=await D.getRoleList():void("current"===this.activeKey&&(this.userList=this.getCurrList))))))},async getGroupList(){const e=await D.getGroupList();this.list=[{fullName:"全部用户",icon:"icon-ym icon-ym-generator-group1",id:""},...e]},handleSearch(e){this.keyword=e,this.hasPage="all"!==this.selectType||!!e,this.currStep=e?1:0,this.goTop(),"user"!=this.activeKey&&(this.activeKey="user"),this.$nextTick((()=>{(this.keyword||"all"!==this.selectType)&&(this.userQuery={...z},this.getGroupList(),this.resetQuery(),this.$u.debounce(this.getUserData,300))}))}}},[["render",function(e,t,s,l,_,w){const K=v,A=C,P=L(a("u-search"),I),$=L(a("u-tag"),j),D=S,U=L(a("ly-tree"),T),z=i("Empty"),O=i("lyCheckbox"),Q=L(a("u-avatar"),V),R=L(a("u-button"),N),B=L(a("u-popup"),x);return o(),r(B,{class:"jnpf-tree-select-popup",mode:"right",modelValue:_.showPopup,"onUpdate:modelValue":t[11]||(t[11]=e=>_.showPopup=e),width:"100%",onClose:w.close},{default:c((()=>[n(A,{class:"jnpf-tree-select-body"},{default:c((()=>[n(A,{class:"jnpf-tree-select-title"},{default:c((()=>[n(K,{class:"icon-ym icon-ym-report-icon-preview-pagePre backIcon",onClick:t[0]||(t[0]=e=>w.close())}),n(A,{class:"title"},{default:c((()=>[d("选择用户")])),_:1})])),_:1}),n(A,{class:"jnpf-tree-select-search"},{default:c((()=>[n(P,{placeholder:e.$t("app.apply.pleaseKeyword"),modelValue:_.keyword,"onUpdate:modelValue":t[1]||(t[1]=e=>_.keyword=e),height:"72","show-action":!1,onChange:w.handleSearch,"bg-color":"#f0f2f6",shape:"square"},null,8,["placeholder","modelValue","onChange"])])),_:1}),n(A,{class:"jnpf-tree-selected"},{default:c((()=>[n(A,{class:"jnpf-tree-selected-head"},{default:c((()=>[n(A,null,{default:c((()=>[d(u(e.$t("component.jnpf.common.selected"))+"("+u(_.selectedList.length||0)+")",1)])),_:1}),s.multiple?(o(),r(A,{key:0,class:"clear-btn",onClick:w.setCheckAll},{default:c((()=>[d(u(e.$t("component.jnpf.common.clearAll")),1)])),_:1},8,["onClick"])):h("",!0)])),_:1}),n(A,{class:"jnpf-tree-selected-box"},{default:c((()=>[n(D,{"scroll-y":"true",class:"select-list"},{default:c((()=>[(o(!0),p(m,null,f(_.selectedList,((e,t)=>(o(),r($,{closeable:"",onClose:e=>w.delSelect(t),key:t,text:e.fullName,class:"u-selectTag"},null,8,["onClose","text"])))),128))])),_:1})])),_:1})])),_:1}),n(A,{class:"jnpf-tree-selected-line"}),n(A,{class:"jnpf-tree-selected-tabs"},{default:c((()=>[n(A,{class:y(["tab-item",{"tab-item-active":"user"===_.activeKey}]),onClick:t[2]||(t[2]=e=>w.toggloActive("user"))},{default:c((()=>[d(" 用户 ")])),_:1},8,["class"]),"all"===s.selectType?(o(),p(m,{key:0},[n(A,{class:y(["tab-item",{"tab-item-active":"position"===_.activeKey}]),onClick:t[3]||(t[3]=e=>w.toggloActive("position"))},{default:c((()=>[d(" 组织岗位 ")])),_:1},8,["class"]),n(A,{class:y(["tab-item",{"tab-item-active":"role"===_.activeKey}]),onClick:t[4]||(t[4]=e=>w.toggloActive("role"))},{default:c((()=>[d(" 角色 ")])),_:1},8,["class"]),n(A,{class:y(["tab-item",{"tab-item-active":"current"===_.activeKey}]),onClick:t[5]||(t[5]=e=>w.toggloActive("current"))},{default:c((()=>[d(" 当前用户 ")])),_:1},8,["class"])],64)):h("",!0)])),_:1}),"all"===s.selectType&&"current"!==_.activeKey?(o(),r(A,{key:0,class:"jnpf-tree-selected-breadcrumb"},{default:c((()=>["user"===_.activeKey?(o(),r(A,{key:0,class:y(["breadcrumb-item",{"breadcrumb-item-active":!_.currStep}]),onClick:t[6]||(t[6]=e=>w.handleToFirst())},{default:c((()=>[d(" 用户组 ")])),_:1},8,["class"])):h("",!0),"position"===_.activeKey?(o(),r(A,{key:1,class:y(["breadcrumb-item",{"breadcrumb-item-active":!_.currStep}]),onClick:t[7]||(t[7]=e=>w.handleToFirst())},{default:c((()=>[d(" 组织岗位 ")])),_:1},8,["class"])):h("",!0),"role"===_.activeKey?(o(),r(A,{key:2,class:y(["breadcrumb-item",{"breadcrumb-item-active":!_.currStep}]),onClick:t[8]||(t[8]=e=>w.handleToFirst())},{default:c((()=>[d(" 角色 ")])),_:1},8,["class"])):h("",!0),_.currStep?(o(),r(A,{key:3,class:"icon-ym icon-ym-caret-right breadcrumb-item"})):h("",!0),_.currStep?(o(),r(A,{key:4,class:y(["breadcrumb-item",{"breadcrumb-item-active":_.currStep}])},{default:c((()=>[d(" 用户列表 ")])),_:1},8,["class"])):h("",!0)])),_:1})):h("",!0),n(A,{class:"jnpf-tree-select-tree"},{default:c((()=>[g(n(D,{"scroll-y":!0,style:{height:"100%"},"scroll-top":_.scrollTop,onScroll:w.handleScroll},{default:c((()=>["position"===_.activeKey?(o(),r(U,{key:0,ref:"tree",props:w.realProps,"node-key":w.realProps.value,load:w.loadNode,lazy:"","tree-data":_.lazyOptions,"show-node-icon":"",defaultExpandAll:!1,onNodeClick:w.handleTreeNodeClick,expandOnClickNode:!1,checkOnClickNode:!1},null,8,["props","node-key","load","tree-data","onNodeClick"])):(o(),p(m,{key:1},[_.list.length?(o(),r(A,{key:0,class:"jnpf-selcet-list"},{default:c((()=>[(o(!0),p(m,null,f(_.list,(e=>(o(),r(A,{class:"jnpf-selcet-cell",key:e.id,onClick:b((t=>w.handleNodeClick(e)),["stop"])},{default:c((()=>[n(A,{class:y(["jnpf-selcet-cell-icon",e.icon])},null,8,["class"]),n(A,{class:"jnpf-selcet-cell-name"},{default:c((()=>[d(u(e.fullName),1)])),_:2},1024)])),_:2},1032,["onClick"])))),128))])),_:1})):(o(),r(z,{key:1,class:"h-full"}))],64))])),_:1},8,["scroll-top","onScroll"]),[[k,!_.hasPage&&!_.currStep&&"all"===s.selectType&&"current"!==_.activeKey]]),_.hasPage||_.currStep||"current"===_.activeKey?(o(),r(D,{key:0,"scroll-y":!0,style:{height:"100%"},"refresher-enabled":!1,"refresher-threshold":100,"scroll-with-animation":!0,"refresher-triggered":_.triggered,onScrolltolower:w.handleScrollToLower},{default:c((()=>[_.userList.length?(o(),r(A,{key:0,class:"jnpf-selcet-list"},{default:c((()=>[(o(!0),p(m,null,f(_.userList,(e=>(o(),r(A,{class:"jnpf-selcet-cell",key:e.id,onClick:b((t=>w.handleUserNodeClick(e)),["stop"])},{default:c((()=>[n(A,{class:"jnpf-selcet-cell-action"},{default:c((()=>[n(O,{type:s.multiple?"checkbox":"radio",checked:_.selectedIds.includes(e.id)},null,8,["type","checked"])])),_:2},1024),n(Q,{class:"jnpf-selcet-cell-avatar",src:w.baseURL+e.headIcon,mode:"circle",size:"44"},null,8,["src"]),n(A,{class:"jnpf-selcet-cell-name"},{default:c((()=>[d(u(e.fullName),1)])),_:2},1024)])),_:2},1032,["onClick"])))),128))])),_:1})):(o(),r(z,{key:1,class:"h-full"}))])),_:1},8,["refresher-triggered","onScrolltolower"])):h("",!0)])),_:1}),n(A,{class:"jnpf-tree-select-actions"},{default:c((()=>[n(R,{class:"buttom-btn",onClick:t[9]||(t[9]=e=>w.close())},{default:c((()=>[d(u(e.$t("common.cancelText")),1)])),_:1}),n(R,{class:"buttom-btn",type:"primary",onClick:t[10]||(t[10]=b((e=>w.handleConfirm()),["stop"]))},{default:c((()=>[d(u(e.$t("common.okText")),1)])),_:1})])),_:1})])),_:1})])),_:1},8,["modelValue","onClose"])}]]),selectBox:$},props:{modelValue:{default:""},isInput:{type:Boolean,default:!0},placeholder:{type:String,default:"请选择"},disabled:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},selectType:{type:String,default:"all"},ableIds:{type:Array,default:()=>[]},ableRelationIds:{type:[Array,String],default:()=>[]}},data:()=>({selectShow:!1,innerValue:"",selectedData:[],realAbleIds:[]}),watch:{modelValue:{handler(){this.setDefault()},immediate:!0}},methods:{setDefault(){if(!this.modelValue||!this.modelValue.length)return this.setNullValue();const e=this.multiple?this.modelValue:[this.modelValue];_(e).then((e=>{if(!this.modelValue||!this.modelValue.length)return this.setNullValue();const t=e.data.list||[];this.selectedData=t,this.innerValue=this.selectedData.map((e=>e.fullName)).join()}))},setNullValue(){this.innerValue="",this.selectedData=[]},openSelect(){if(!this.disabled){if("custom"===this.selectType)this.realAbleIds=this.ableIds;else if("all"!=this.selectType){const e="--"+this.selectType;let t=this.ableRelationIds?Array.isArray(this.ableRelationIds)?this.ableRelationIds:[this.ableRelationIds]:[];this.realAbleIds=t.map((t=>t+e))}else this.realAbleIds=[];this.selectShow=!0}},handleConfirm(e,t){this.multiple?(this.$emit("update:modelValue",t),this.$emit("change",t,e)):(this.$emit("update:modelValue",t[0]),this.$emit("change",t[0],e[0]))},handleClose(){this.selectShow=!1}}},[["render",function(e,t,s,l,a,d){const u=i("selectBox"),p=i("SelectPopup"),m=C;return o(),r(m,{class:"jnpf-user-select w-full"},{default:c((()=>[s.isInput?(o(),r(u,{key:0,modelValue:a.innerValue,"onUpdate:modelValue":t[0]||(t[0]=e=>a.innerValue=e),placeholder:s.placeholder,onOpenSelect:d.openSelect,"select-open":a.selectShow,disabled:s.disabled},null,8,["modelValue","placeholder","onOpenSelect","select-open","disabled"])):h("",!0),n(p,{modelValue:a.selectShow,"onUpdate:modelValue":t[1]||(t[1]=e=>a.selectShow=e),multiple:s.multiple,selectedData:a.selectedData,onClose:d.handleClose,onConfirm:d.handleConfirm,selectType:s.selectType,ableIds:a.realAbleIds},null,8,["modelValue","multiple","selectedData","onClose","onConfirm","selectType","ableIds"])])),_:1})}]]);export{O as _};
|