2 lines
13 KiB
Java
2 lines
13 KiB
Java
var Me=Object.defineProperty,Oe=Object.defineProperties;var Ee=Object.getOwnPropertyDescriptors;var he=Object.getOwnPropertySymbols;var Ae=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable;var ve=(f,k,n)=>k in f?Me(f,k,{enumerable:!0,configurable:!0,writable:!0,value:n}):f[k]=n,A=(f,k)=>{for(var n in k||(k={}))Ae.call(k,n)&&ve(f,n,k[n]);if(he)for(var n of he(k))$e.call(k,n)&&ve(f,n,k[n]);return f},X=(f,k)=>Oe(f,Ee(k));var pe=(f,k,n)=>new Promise((x,M)=>{var B=c=>{try{_(n.next(c))}catch(y){M(y)}},S=c=>{try{_(n.throw(c))}catch(y){M(y)}},_=c=>c.done?x(c.value):Promise.resolve(c.value).then(B,S);_((n=n.apply(f,k)).next())});import{e as me,h as _e,y as Q,z as o,u as T,B as ee,A as j,Q as u,f as b,r as m,C as v,F as K,b as ye,H as D,D as P,G as R,R as fe,E as ze,a2 as Y}from"./vue-vendor-DNhG1Cve.js";import{B as Pe}from"./index-BDvqZ5j4.js";import{s as Ce,aG as Je,v as W,fV as ke,bL as Le,b$ as Ve,b1 as je,d as ge,aP as te,fY as be,d1 as He,au as Se,as as Z,aO as qe,ag as Fe,E as Qe}from"./index-X7Y8jykP.js";import{a as Ge,u as Xe}from"./useModal-DaJ3Bflg.js";import"./index-DSsDi_fL.js";import{C as Ye}from"./Group-UHkub2tu.js";import{B as We,_ as Ze}from"./index-lcIOKfa7.js";import{H as et}from"./HomeOutlined-CZ9a0aTj.js";import{J as tt}from"./JSelectBiz-CRkPo6gN.js";import"./BasicModal-xH56XuRZ.js";import"./ModalHeader-Sr8KwhJJ.js";import"./useTimeout-D5AmIBZw.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";import"./index-BzChaRPg.js";import"./useWindowSizeFn-C-0M9_Ul.js";import"./index-ByCwbQDV.js";import"./index-Upeu4GGa.js";import"./index-C4wWpZeQ.js";import"./index-M9QP6cvf.js";import"./Skeleton-CimgOdM7.js";import"./useScrollTo-0FPEw5-K.js";import"./useIntersectionObserver-BGOgyKyu.js";import"./useAppInject-DPZGPcR3.js";import"./index-CuWaQdlK.js";import"./index-DO7ZhK45.js";import"./Checkbox-Dbxs4we4.js";import"./index-BuONesFs.js";import"./dropdown-jkliuVyN.js";import"./index-J2mOtM3w.js";const at={class:"j-select-user-by-dept"},st={class:"modal-content"},lt={class:"left-content"},nt={class:"search-box"},rt={class:"tree-box"},ot={key:0,class:"search-result"},ct={key:0,class:"search-user"},dt=["onClick"],it={class:"right"},ut={class:"search-user-item-circle"},ht=["src"],vt={class:"search-user-item-info"},pt={class:"search-user-item-name"},ft={class:"search-user-item-org"},kt={key:1,class:"search-depart"},gt=["onClick"],mt={class:"search-depart-item-name"},_t={key:1,class:"no-data"},yt={key:0},Ct={class:"depart-users-tree"},bt={key:0,class:"allChecked"},St=["onClick"],Ut={class:"right"},Dt={class:"depart-users-tree-item-circle"},Tt=["src"],It={class:"depart-users-tree-item-name"},Bt={key:0,class:"dept-user-pagination"},wt={key:1,class:"depart-tree"},xt=["onClick"],Nt={class:"depart-tree-item-name"},Kt={key:2,class:"no-data"},Rt={class:"right-content"},Mt={class:"selected-header"},Ot={class:"selected-users"},Et={class:"content"},At=["onClick"],$t={class:"avatar-circle"},zt=["src"],Pt={class:"mask"},Jt={class:"user-name"},Lt=me({name:"JSelectUserByDepartmentModal",__name:"JSelectUserByDepartmentModal",props:{rowKey:{type:String,default:"id"},labelKey:{type:String,default:"name"},modalTitle:{type:String,default:"部门用户选择"},selectedUser:{type:Array,default:()=>[]},params:{type:Object,default:()=>{}},useCompanyShortName:{type:Boolean,default:!0},maxSelectCount:{type:Number,default:0},isRadioSelection:{type:Boolean,default:!1}},emits:["close","register","change"],setup(f,{emit:k}){const n=f,x=k,{createMessage:M}=Ce(),B=m(""),S=m([]),_=m([]),c=m([]),y=m([]),C=m([]),N=m(""),O=m(1),J=m(50),w=m(0),d=m([]),h=m(!1),i=ye({depart:[],user:[]}),L=m(),$={},[V,{closeModal:z}]=Ge(e=>pe(null,null,function*(){n.selectedUser.length&&(d.value=n.selectedUser),Ke()})),H=e=>{e===!1&&setTimeout(()=>{x("close")},300)},E=()=>{if(d.value.length==0){M.warning("请选择人员");return}if(n.isRadioSelection&&d.value.length>1){M.warning("只允许选择一个用户");return}if(n.maxSelectCount&&d.value.length>n.maxSelectCount){M.warning(`最多只能选择${n.maxSelectCount}个用户`);return}x("change",d.value),z()},ae=()=>{var e;B.value?(ge.get({url:"/sys/user/listAll",params:{column:"createTime",order:"desc",pageNo:1,pageSize:100,realname:`*${B.value}*`}}).then(t=>{var l,a;(l=t.records)==null||l.forEach(r=>{d.value.find(I=>I.id==r.id)?r.checked=!0:r.checked=!1}),i.user=(a=t.records)!=null?a:[]}),i.depart=(e=Re(B.value))!=null?e:[]):(i.user=[],i.depart=[])},se=e=>{if(C.value=[],N.value="",O.value=1,w.value=0,e){const t=S.value.findIndex(a=>a.id===e.id);t!=-1&&(S.value=S.value.filter((a,r)=>r<=t));const l=ue(e.id,_.value);c.value=l.children}else c.value=_.value,S.value=[]},le=(e,t)=>{const{target:l}=e;if(l.checked){de(t.id).then(r=>{q(r)}),y.value.push(t.id);const a=G(t.id);a!=null&&a.children&&(a.children.every(p=>p.checked)?a.checked=!0:a.checked=!1)}else{const a=y.value.findIndex(p=>p.id===t.id);a!=-1&&y.value.splice(a,1);const r=G(t.id);r&&(r.checked=!1),de(t.id).then(p=>{p.forEach(I=>{const U=d.value.findIndex(s=>s.id===I.id);U!=-1&&d.value.splice(U,1)})})}},ne=e=>{S.value=[...S.value,e],e.children?(e.checked&&e.children.forEach(t=>{t.checked=!0}),c.value=e.children,ge.get({url:"/sys/sysDepart/getUsersByDepartId",params:{id:e.id}}).then(t=>{const l=t!=null?t:[];e.checked&&l.forEach(a=>{a.checked=!0}),d.value.length&&l.forEach(a=>{d.value.find(p=>p.id===a.id)&&(a.checked=!0)}),C.value=l.sort((a,r)=>a.sort-r.sort)})):(c.value=[],N.value=e.id,O.value=1,w.value=0,re(e.id,1))},re=(e,t)=>ce({departId:e,pageNo:t,pageSize:J.value}).then(l=>{var a;if(l!=null&&l.records){w.value=(a=l.total)!=null?a:0,O.value=t;let r=!0;l.records.forEach(p=>{d.value.find(U=>U.id==p.id)?p.checked=!0:(p.checked=!1,r=!1)}),h.value=r&&l.records.length>0,C.value=l.records.sort((p,I)=>p.sort-I.sort)}}),Ue=e=>{re(N.value,e)},De=e=>{e.checked=!e.checked,e.checked?q(e):d.value=d.value.filter(t=>t.id!==e.id),e.checked==!1&&(h.value=!1)},Te=({target:e})=>{const{checked:t}=e;t?(C.value.forEach(l=>l.checked=!0),q(C.value)):(C.value.forEach(l=>l.checked=!1),d.value=d.value.filter(l=>{const a=l.id;return!C.value.find(p=>p.id===a)}))},Ie=e=>{const t=d.value.findIndex(a=>a.id===e.id);t!=-1&&d.value.splice(t,1);const l=C.value.find(a=>a.id===e.id);l&&(l.checked=!1,h.value=!1)},Be=e=>{e.checked=!e.checked,e.checked?q(e):d.value=d.value.filter(t=>t.id!==e.id)},we=(e,t)=>{le(e,t)},xe=e=>{i.depart=[],i.user=[],S.value=ie(e.id),ne(e)},q=e=>{let t=[];te(e)?t=e.filter(a=>!d.value.find(r=>r.id===a.id)):d.value.find(a=>a.id===e.id)||(t=[e]),d.value=[...d.value,...t];const l=C.value.every(a=>!!a.checked);h.value=l};_e(S,()=>{setTimeout(()=>{Ne()},0)});const Ne=()=>{var t;const e=(t=L.value)==null?void 0:t.querySelector("ol");e&&(e.scrollLeft=3e4)},oe=e=>n!=null&&n.params?A(A({},e),n.params):e,Ke=e=>{e=oe(e),He(A({},e)).then(t=>{t&&(_.value=t,c.value=t)})},ce=e=>(e=oe(e),be(A({},e))),de=e=>new Promise(t=>{$[e]?t($[e]):ce({departId:e,pageNo:1,pageSize:1e3}).then(l=>{var a,r;$[e]=(a=l.records)!=null?a:[],t((r=l.records)!=null?r:[])})}),ie=(e,t=_.value,l=[])=>{for(const a of t){if(a.id===e)return[...l];if(a.children){const r=ie(e,a.children,[...l,a]);if(r.length)return r}}return[]},G=(e,t=_.value,l=null)=>{for(const a of t){if(a.id===e)return l;if(a.children){const r=G(e,a.children,a);if(r)return r}}return null},Re=(e,t=_.value)=>{const l=[],a=r=>{var p,I;for(const U of r)(p=F(U.departName,U.departNameAbbr))!=null&&p.toLowerCase().includes(e.toLowerCase())&&l.push(U),(I=U.children)!=null&&I.length&&a(U.children)};return a(t),l},ue=(e,t=_.value)=>{for(const l of t){if(l.id===e)return l;if(l.children){const a=ue(e,l.children);if(a)return a}}return null};function F(e,t){return n.useCompanyShortName&&t?t:e}return(e,t)=>{const l=Je,a=Ye,r=Le,p=Ze,I=We,U=Ve;return o(),Q(T(Pe),ee({wrapClassName:"JSelectUserByDepartmentModal"},e.$attrs,{onRegister:T(V),title:f.modalTitle,width:"800px",onOk:E,destroyOnClose:"",onVisibleChange:H}),{default:j(()=>[u("div",at,[u("div",st,[u("div",lt,[u("div",nt,[b(l,{value:B.value,"onUpdate:value":t[0]||(t[0]=s=>B.value=s),valueModifiers:{trim:!0},placeholder:"搜索",onChange:ae,onPressEnter:ae,allowClear:""},null,8,["value"])]),u("div",rt,[B.value.length?(o(),v(K,{key:0},[i.depart.length||i.user.length?(o(),v("div",ot,[i.user.length?(o(),v("div",ct,[t[6]||(t[6]=u("p",{class:"search-user-title"},"人员",-1)),(o(!0),v(K,null,P(i.user,s=>(o(),v("div",{key:s.id,class:"search-user-item",onClick:g=>Be(s)},[b(a,{checked:s.checked,"onUpdate:checked":g=>s.checked=g},null,8,["checked","onUpdate:checked"]),u("div",it,[u("div",ut,[s.avatar?(o(),v("img",{key:0,src:T(W)(s.avatar),alt:"avatar"},null,8,ht)):D("",!0)]),u("div",vt,[u("div",pt,R(s.realname),1),u("div",ft,R(s.orgCodeTxt),1)])])],8,dt))),128))])):D("",!0),i.depart.length?(o(),v("div",kt,[t[7]||(t[7]=u("p",{class:"search-depart-title"},"部门",-1)),(o(!0),v(K,null,P(i.depart,s=>(o(),v("div",{key:s.id,class:"search-depart-item",onClick:g=>xe(s)},[b(a,{checked:s.checked,"onUpdate:checked":g=>s.checked=g,onClick:t[1]||(t[1]=fe(()=>{},["stop"])),onChange:g=>we(g,s)},null,8,["checked","onUpdate:checked","onChange"]),u("div",mt,R(F(s.departName,s.departNameAbbr)),1),b(T(ke))],8,gt))),128))])):D("",!0)])):(o(),v("div",_t,[b(r,{description:"暂无数据"})]))],64)):(o(),v(K,{key:1},[u("div",{ref_key:"breadcrumbBoxRef",ref:L},[S.value.length?(o(),Q(I,{key:0},{default:j(()=>[b(p,{onClick:t[2]||(t[2]=s=>se())},{default:j(()=>[b(T(et))]),_:1}),(o(!0),v(K,null,P(S.value,s=>(o(),Q(p,{key:s==null?void 0:s.id,onClick:g=>se(s)},{default:j(()=>[u("span",null,R(F(s.departName,s.departNameAbbr)),1)]),_:2},1032,["onClick"]))),128))]),_:1})):D("",!0)],512),C.value.length||w.value>0?(o(),v("div",yt,[u("div",Ct,[c.value.length?D("",!0):(o(),v("div",bt,[b(a,{checked:h.value,"onUpdate:checked":t[3]||(t[3]=s=>h.value=s),onChange:Te},{default:j(()=>[...t[8]||(t[8]=[ze("全选",-1)])]),_:1},8,["checked"])])),(o(!0),v(K,null,P(C.value,s=>(o(),v("div",{key:s.id,class:"depart-users-tree-item",onClick:g=>De(s)},[b(a,{checked:s.checked,"onUpdate:checked":g=>s.checked=g},null,8,["checked","onUpdate:checked"]),u("div",Ut,[u("div",Dt,[s.avatar?(o(),v("img",{key:0,src:T(W)(s.avatar),alt:"avatar"},null,8,Tt)):D("",!0)]),u("div",It,R(s.realname),1)])],8,St))),128))]),!c.value.length&&w.value>J.value?(o(),v("div",Bt,[b(U,{current:O.value,"onUpdate:current":t[4]||(t[4]=s=>O.value=s),total:w.value,pageSize:J.value,size:"small",showSizeChanger:!1,showQuickJumper:!1,onChange:Ue},null,8,["current","total","pageSize"])])):D("",!0)])):D("",!0),c.value.length?(o(),v("div",wt,[(o(!0),v(K,null,P(c.value,s=>(o(),v("div",{key:s.id,class:"depart-tree-item",onClick:g=>ne(s)},[b(a,{checked:s.checked,"onUpdate:checked":g=>s.checked=g,onClick:t[5]||(t[5]=fe(()=>{},["stop"])),onChange:g=>le(g,s)},null,8,["checked","onUpdate:checked","onChange"]),u("div",Nt,R(F(s.departName,s.departNameAbbr)),1),b(T(ke))],8,xt))),128))])):D("",!0),c.value.length===0&&C.value.length===0?(o(),v("div",Kt,[b(r,{description:"暂无数据"})])):D("",!0)],64))])]),u("div",Rt,[u("div",Mt," 已选人员:"+R(d.value.length)+"人 ",1),u("div",Ot,[u("div",Et,[(o(!0),v(K,null,P(d.value,s=>(o(),v("div",{key:s.id,class:"user-avatar",onClick:g=>Ie(s)},[u("div",$t,[s.avatar?(o(),v("img",{key:0,src:T(W)(s.avatar),alt:"avatar"},null,8,zt)):D("",!0),u("div",Pt,[b(T(je))])]),u("div",Jt,R(s.realname),1)],8,At))),128))])])])])])]),_:1},16,["onRegister","title"])}}}),Vt=Se(Lt,[["__scopeId","data-v-18a2e2c1"]]),jt=me({name:"JSelectUserByDepartment",__name:"JSelectUserByDepartment",props:{value:Z.oneOfType([Z.string,Z.array]),modalTitle:{type:String,default:"部门用户选择"},rowKey:{type:String,default:"username"},labelKey:{type:String,default:"realname"},params:{type:Object,default:()=>{}},isRadioSelection:{type:Boolean,default:!1}},emits:["options-change","change","update:value"],setup(f,{emit:k}){const n=f,x=k,{createMessage:M}=Ce(),[B,{openModal:S}]=Xe(),_=m(!1),c=m([]);let y=ye({value:[],change:!1});const C=m(!1);Y("selectOptions",c),Y("selectValues",y),Y("loadingEcho",C);const N=qe();function O(){_.value=!0,setTimeout(()=>{S(!0,{isUpdate:!1})},0)}const J=h=>{c.value=c.value.filter(i=>h.includes(i[n.rowKey])),w(c.value)},w=h=>{c.value=h.map(i=>X(A({},i),{label:i[n.labelKey],value:i[n.rowKey]})),y.value=h.map(i=>i[n.rowKey]),x("update:value",y.value),x("change",y.value),x("options-change",c.value)},d=()=>{let h=n.value,i;if(te(h)||Fe(h)){if(te(h)?(i=h.length,h=h.join(",")):i=h.split(",").length,h=h.trim(),h){let L=!1;if(L=h.split(",").every(V=>!!c.value.find(z=>z[n.rowKey]===V)),L){y.value=h.split(",");return}const $={isMultiTranslate:!0,pageSize:i,[n.rowKey]:h};Qe(N.params)&&Object.assign($,N.params),be($).then(V=>{var H;const z=(H=V.records)!=null?H:[];y.value=z.map(E=>E[n.rowKey]),c.value=z.map(E=>X(A({},E),{label:E[n.labelKey],value:E[n.rowKey]}))})}}else y.value=[]};return _e(()=>n.value,()=>{d()},{deep:!0,immediate:!0}),(h,i)=>(o(),v("div",null,[b(tt,ee({onHandleOpen:O,loading:C.value},T(N),{onChange:J}),null,16,["loading"]),_.value?(o(),Q(Vt,ee({key:0,selectedUser:c.value,modalTitle:f.modalTitle,rowKey:f.rowKey,labelKey:f.labelKey,isRadioSelection:f.isRadioSelection,params:f.params,onRegister:T(B),onChange:w,onClose:i[0]||(i[0]=()=>_.value=!1)},T(N)),null,16,["selectedUser","modalTitle","rowKey","labelKey","isRadioSelection","params","onRegister"])):D("",!0)]))}}),Ca=Se(jt,[["__scopeId","data-v-f1b19c00"]]);export{Ca as default};
|