You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
4.5 KiB

var M=(i,F,r)=>new Promise((k,_)=>{var h=s=>{try{n(r.next(s))}catch(f){_(f)}},C=s=>{try{n(r.throw(s))}catch(f){_(f)}},n=s=>s.done?k(s.value):Promise.resolve(s.value).then(h,C);n((r=r.apply(i,F)).next())});import{d as T,r as d,P as j,Y as P,o as p,a as w,w as c,g as y,b as m,u as o,I as R,B as Y,h as I,i as z,F as E,bt as G,j as B,t as A,bo as H,dU as J,dV as Q,aT as W}from"./index-f4658ae7.js";import{C as U,a as D}from"./index-297faa0c.js";/* empty css *//* empty css */import{useDBSourceLoader as X}from"./useDBSourceLoader-8ab5ebe1.js";import{F as Z}from"./index-d51f1b4b.js";import{F as K}from"./FormItem-a040ce00.js";import"./Checkbox-abf1420e.js";import"./createForOfIteratorHelper-eb4541b9.js";import"./DBAccess-d3bef90d.js";import"./useSize-90c5eaba.js";import"./Col-dfe054f2.js";import"./index-2c9d82ce.js";const $=i=>(J("data-v-163a296f"),i=i(),Q(),i),ee={key:0,class:"flex p-1"},te={class:"header"},ae={style:{"font-weight":"bold"}},le=$(()=>B("br",null,null,-1)),se={class:"body"},oe={key:2,class:"list-picker body",style:{padding:"12px"}},ne=T({__name:"PopGroupList",props:{listSql:{type:String,default:""},groupListSql:{type:String,default:""},isMultiSelect:{type:Boolean,default:!1},isShowSearch:{type:Boolean,default:!1},selectedItems:{type:String,default:""}},setup(i,{expose:F}){const r=i,k=d(""),_=d(!0),h=d([]),C=d([]),n=d([]),s=d([]),f=d([]),L=d([]),O=(a,l)=>{a.checkedList=l.target.checked?s.value.filter(e=>e.GroupNo===a.No).map(e=>e.No):[],a.indeterminate=!1,g()},g=()=>{var a,l;if(_.value){const e=f.value.filter(N=>N.checkedList.length>0).map(N=>N.checkedList||[]),t=[],v=[];for(const N of e)for(const u of N)v.push(u),t.push(((a=s.value.find(b=>b.No===u))==null?void 0:a.Name)||"");L.value=t,n.value=v;return}L.value=[];for(const e of n.value)L.value.push(((l=C.value.find(t=>t.No==e))==null?void 0:l.Name)||"")},q=(a,l,e)=>(r.isMultiSelect||(a!=null?(f.value.forEach(t=>{t.checkedList=[]}),setTimeout(()=>{a.checkedList=[e.target.value],g()})):(n.value=[e.target.value],g())),!0),V=()=>{if(!k.value){_.value=!0;return}C.value=h.value.filter(a=>a.No.includes(k.value)||a.Name.includes(k.value)),_.value=!1},x=d(!1);return j(()=>M(this,null,function*(){try{x.value=!0;const{getDBSource:a}=X(),{listSql:l,groupListSql:e}=r;if(!l||!e){P.error("\u7F3A\u5C11\u5FC5\u8981\u7684\u53C2\u6570\uFF0C \u8BF7\u68C0\u67E5\u5206\u7EC4sql \u6216\u8005 \u5217\u8868sql \u662F\u5426\u4E3A\u7A7A");return}const t=yield a(e);h.value=yield a(l);let v="GroupNo";if(h.value.length>0){const u=Object.keys(h.value[0]);u.includes("GroupNo")?v="GroupNo":u.length>=3&&(v=u[2])}const N=r.selectedItems?r.selectedItems.split(","):[];f.value=t.map(u=>{const b=h.value.filter(S=>S[v]+""==u.No+"");return{No:u.No,Name:u.Name,checked:!1,indeterminate:!1,checkedList:b.filter(S=>N.includes(S.No)).map(S=>S.No),children:b}}),s.value=h.value}catch(a){P.error(a.toString())}finally{x.value=!1}})),F({checkedList:n,checkedNames:L}),(a,l)=>(p(),w(o(H),{spinning:x.value},{default:c(()=>[i.isShowSearch?(p(),y("div",ee,[m(o(Z),{layout:"inline","label-col":{span:8},"wrapper-col":{span:16},style:{width:"100%"}},{default:c(()=>[m(o(K),{label:"\u5173\u952E\u5B57"},{default:c(()=>[m(o(R),{value:k.value,"onUpdate:value":l[0]||(l[0]=e=>k.value=e),placeholder:"\u8BF7\u8F93\u5165\u5173\u952E\u5B57",onChange:V,"allow-clear":""},null,8,["value"])]),_:1}),m(o(K),null,{default:c(()=>[m(o(Y),{type:"primary",class:"btn_style",onClick:V},{default:c(()=>[I(" \u67E5\u8BE2")]),_:1})]),_:1})]),_:1})])):z("",!0),_.value?(p(!0),y(E,{key:1},G(f.value.filter(e=>Array.isArray(e.children)&&e.children.length>0),e=>(p(),y("div",{class:"list-picker",key:e.No},[B("div",te,[m(o(U),{checked:e.checked,"onUpdate:checked":t=>e.checked=t,indeterminate:e.indeterminate,onChange:t=>O(e,t),disabled:!i.isMultiSelect},{default:c(()=>[B("span",ae,A(e.Name),1)]),_:2},1032,["checked","onUpdate:checked","indeterminate","onChange","disabled"])]),le,B("div",se,[m(o(D),{value:e.checkedList,"onUpdate:value":t=>e.checkedList=t,onChange:g},{default:c(()=>[(p(!0),y(E,null,G(e.children,t=>(p(),w(o(U),{key:t.No,value:t.No,onChange:v=>q(e,t,v)},{default:c(()=>[I(A(t.Name),1)]),_:2},1032,["value","onChange"]))),128))]),_:2},1032,["value","onUpdate:value"])])]))),128)):(p(),y("div",oe,[m(o(D),{value:n.value,"onUpdate:value":l[1]||(l[1]=e=>n.value=e),onChange:g},{default:c(()=>[(p(!0),y(E,null,G(C.value,e=>(p(),w(o(U),{key:e.No,value:e.No,onChange:t=>q(null,e,t)},{default:c(()=>[I(A(e.Name),1)]),_:2},1032,["value","onChange"]))),128))]),_:1},8,["value"])]))]),_:1},8,["spinning"]))}});const Ce=W(ne,[["__scopeId","data-v-163a296f"]]);export{Ce as default};