2 lines
6.9 KiB
JavaScript
2 lines
6.9 KiB
JavaScript
var oe=Object.defineProperty,re=Object.defineProperties;var ie=Object.getOwnPropertyDescriptors;var E=Object.getOwnPropertySymbols;var ue=Object.prototype.hasOwnProperty,se=Object.prototype.propertyIsEnumerable;var P=(s,r,l)=>r in s?oe(s,r,{enumerable:!0,configurable:!0,writable:!0,value:l}):s[r]=l,L=(s,r)=>{for(var l in r||(r={}))ue.call(r,l)&&P(s,l,r[l]);if(E)for(var l of E(r))se.call(r,l)&&P(s,l,r[l]);return s},T=(s,r)=>re(s,ie(r));var b=(s,r,l)=>new Promise((y,x)=>{var k=c=>{try{m(l.next(c))}catch(d){x(d)}},C=c=>{try{m(l.throw(c))}catch(d){x(d)}},m=c=>c.done?y(c.value):Promise.resolve(c.value).then(k,C);m((l=l.apply(s,r)).next())});import{g as ce}from"./index-Xdrc-RlS.js";import{a as $}from"./index-9kjABknm.js";import{b_ as K,bt as de,ct as pe,cu as ve,bS as O,bZ as ge,ay as R,a9 as fe,ac as he}from"./bootstrap-DmcuvVZS.js";import{m as me,b9 as S,d9 as Se,aa as A,ab as we,b2 as _,u as g,bJ as w,j as h,ae as B,ad as j,ac as q,bp as I,ai as J}from"../jse/index-index-B6J4axeY.js";import{u as ye}from"./use-modal-BrjqCt0f.js";import"./x-CGHUyQuD.js";const Ce={class:"h-[500px] overflow-auto rounded border"},ke={class:"border-b p-2"},ze={key:0},be={key:1},xe=me({name:"UserSelectModal",__name:"select-modal",props:{cancelText:{default:"取消"},confirmText:{default:"确定"},multiple:{type:Boolean,default:!0},title:{default:"选择用户"},value:{default:()=>[]}},emits:["cancel","closed","confirm","update:value"],setup(s,{emit:r}){const l=r,y=S([]),x=S([]),k=S([]),C=S(),m=S(""),c=S([]),d=S([]),[Z,z]=ye({onCancel:N,onClosed:le,onOpenChange(a){return b(this,null,function*(){var t;if(!a){V();return}const e=z.getData();if(e){z.lock();try{const n=yield ce();x.value=n;const u=Se(n);if(y.value=u.map(v=>M(v)),k.value=y.value.map(v=>v.key),yield U(1,o.value.pagination.pageSize),(t=e.userIds)!=null&&t.length){d.value=e.userIds.map(String);const{list:v}=yield $({pageNo:1,pageSize:100,userIds:e.userIds}),f=new Map(c.value.map(p=>[p.id,p]));v.forEach(p=>{f.has(p.id)||f.set(p.id,p)}),c.value=[...f.values()],D()}z.open()}finally{z.unlock()}}})},destroyOnClose:!0}),o=S({searchValue:"",dataSource:[],pagination:{current:1,pageSize:10,total:0}}),i=S({searchValue:"",dataSource:[],pagination:{current:1,pageSize:10,total:0}}),F=A(()=>[...o.value.dataSource,...i.value.dataSource]),G=A(()=>{if(!m.value)return y.value;const a=(e,t=0)=>{var v;if(t>100)return null;const n=(v=e==null?void 0:e.name)==null?void 0:v.toLowerCase(),u=m.value.toLowerCase();if(n!=null&&n.includes(u))return T(L({},e),{children:e.children});if(e.children){const f=e.children.map(p=>a(p,t+1)).filter(Boolean);if(f.length>0)return T(L({},e),{children:f})}return null};return y.value.map(e=>a(e)).filter(Boolean)});function U(a,e){return b(this,null,function*(){try{const{list:t,total:n}=yield $({pageNo:a,pageSize:e,deptId:C.value,username:o.value.searchValue||void 0});o.value.dataSource=t,o.value.pagination.total=n,o.value.pagination.current=a,o.value.pagination.pageSize=e;const u=t.filter(v=>!c.value.some(f=>f.id===v.id));u.length>0&&c.value.push(...u)}finally{}})}function D(){const a=new Set(d.value),e=c.value.filter(p=>a.has(String(p.id))),t=i.value.searchValue?e.filter(p=>p.nickname.toLowerCase().includes(i.value.searchValue.toLowerCase())):e;i.value.pagination.total=new Set(t.map(p=>p.id)).size;const{current:n,pageSize:u}=i.value.pagination,v=(n-1)*u,f=v+u;i.value.dataSource=t.slice(v,f)}function H(a,e){return b(this,null,function*(){yield U(a,e)})}function Q(a,e){i.value.pagination.current=a,i.value.pagination.pageSize=e,D()}function W(a,e){return b(this,null,function*(){a==="left"?(o.value.searchValue=e,o.value.pagination.current=1,yield U(1,o.value.pagination.pageSize)):(i.value.searchValue=e,i.value.pagination.current=1,D())})}function X(a){d.value=[...new Set(a)],l("update:value",d.value.map(Number)),D()}function V(){c.value=[],d.value=[],C.value=void 0,d.value=[],o.value={searchValue:"",dataSource:[],pagination:{current:1,pageSize:10,total:0}},i.value={searchValue:"",dataSource:[],pagination:{current:1,pageSize:10,total:0}}}function Y(a,e){return e.username.toLowerCase().includes(a.toLowerCase())}function ee(a){k.value=a}function ae(a){if(m.value=a,a){const e=t=>{const n=[];for(const u of t)n.push(u.key),u.children&&n.push(...e(u.children));return n};k.value=e(y.value)}else k.value=y.value.map(e=>e.key)}function te(a,e){return b(this,null,function*(){const t=a.length>0?Number(a[0]):void 0;C.value=t===C.value?void 0:t;const{pageSize:n}=o.value.pagination;o.value.pagination.current=1,yield U(1,n)})}function ne(){if(d.value.length===0){fe.warning("请选择用户");return}l("confirm",c.value.filter(a=>d.value.includes(String(a.id)))),z.close()}function N(){l("cancel"),z.close(),setTimeout(()=>{V()},300)}function le(){l("closed"),V()}function M(a){var e;return{key:String(a.id),title:`${a.name} (${a.id})`,name:a.name,children:(e=a.children)==null?void 0:e.map(t=>M(t))}}return(a,e)=>(_(),we(g(Z),{class:"w-2/5",key:"user-select-modal",title:s.title},{footer:w(()=>[h(g(R),{type:"primary",disabled:d.value.length===0,onClick:ne},{default:w(()=>[J(I(s.confirmText),1)]),_:1},8,["disabled"]),h(g(R),{onClick:N},{default:w(()=>[J(I(s.cancelText),1)]),_:1})]),default:w(()=>[h(g(ge),{gutter:[16,16]},{default:w(()=>[h(g(K),{span:6},{default:w(()=>[B("div",Ce,[B("div",ke,[h(g(de),{value:m.value,"onUpdate:value":e[0]||(e[0]=t=>m.value=t),placeholder:"搜索部门","allow-clear":"",onInput:e[1]||(e[1]=t=>{var n,u;return ae((u=(n=t.target)==null?void 0:n.value)!=null?u:"")})},null,8,["value"])]),h(g(pe),{"tree-data":G.value,"expanded-keys":k.value,"selected-keys":C.value?[String(C.value)]:[],onSelect:te,onExpand:ee},null,8,["tree-data","expanded-keys","selected-keys"])])]),_:1}),h(g(K),{span:18},{default:w(()=>[h(g(ve),{"row-key":t=>String(t.id),"data-source":F.value,"target-keys":d.value,"onUpdate:targetKeys":e[6]||(e[6]=t=>d.value=t),titles:["未选","已选"],"show-search":!0,"show-select-all":!0,"filter-option":Y,onChange:X,onSearch:W},{render:w(t=>[B("span",null,I(t==null?void 0:t.nickname)+" ("+I(t==null?void 0:t.username)+")",1)]),footer:w(({direction:t})=>[t==="left"?(_(),j("div",ze,[h(g(O),{current:o.value.pagination.current,"onUpdate:current":e[2]||(e[2]=n=>o.value.pagination.current=n),"page-size":o.value.pagination.pageSize,"onUpdate:pageSize":e[3]||(e[3]=n=>o.value.pagination.pageSize=n),total:o.value.pagination.total,"show-size-changer":!0,"show-total":n=>`共 ${n} 条`,size:"small",onChange:H},null,8,["current","page-size","total","show-total"])])):q("",!0),t==="right"?(_(),j("div",be,[h(g(O),{current:i.value.pagination.current,"onUpdate:current":e[4]||(e[4]=n=>i.value.pagination.current=n),"page-size":i.value.pagination.pageSize,"onUpdate:pageSize":e[5]||(e[5]=n=>i.value.pagination.pageSize=n),total:i.value.pagination.total,"show-size-changer":!0,"show-total":n=>`共 ${n} 条`,size:"small",onChange:Q},null,8,["current","page-size","total","show-total"])])):q("",!0)]),_:1},8,["row-key","data-source","target-keys"])]),_:1})]),_:1})]),_:1},8,["title"]))}}),Be=he(xe,[["__scopeId","data-v-e6a522b2"]]);export{Be as default};
|