Files
qhmes/web-dist/js/JSelectMultiple-ByaAeU9_.js

2 lines
5.9 KiB
Java
Raw Normal View History

2026-06-16 18:19:57 +08:00
var V=(e,r,v)=>new Promise((i,l)=>{var p=c=>{try{s(v.next(c))}catch(n){l(n)}},y=c=>{try{s(v.throw(c))}catch(n){l(n)}},s=c=>c.done?i(c.value):Promise.resolve(c.value).then(p,y);s((v=v.apply(e,r)).next())});import{useRuleFormItem as z}from"./useFormItem-b_EqFlJz.js";import{J as I,d as q,as as O,aO as $,dU as E,au as N,aw as x,aH as j,av as J}from"./index-X7Y8jykP.js";import{initDictOptions as M}from"./index-Cq6YxX27.js";import{r as S,c as T,u as b,e as R,o as U,h as k,n as G,y as H,z as w,A as F,C as K,F as Q,D as W,Q as X,T as Y,J as Z,G as ee,H as ae}from"./vue-vendor-DNhG1Cve.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";const te=10,le=300;function ne(e,r,v){const i=S(!1),l=S(1),p=S(!0),y=S(!1),s=S(""),c=T(()=>e.dictCode?e.dictCode.split(",").length>=2:!1),n=T(()=>e.scrollLoad&&c.value);function D(o,f,d){const u=d!==void 0?d:s.value;return q.get({url:`/sys/dict/loadDict/${e.dictCode}`,params:{pageNo:o,pageSize:e.pageSize,keyword:u||"",order:"asc"}}).then(g=>{const a=(g||[]).map(t=>({value:t.value,label:t.text||t.label,text:t.text||t.label,color:t.color}));if(a.length>0){if(f){const t=new Set(r.value.map(C=>String(C.value))),h=a.filter(C=>!t.has(String(C.value)));h.length>0&&(r.value=r.value.concat(h))}else b(v).length&&b(r).length&&b(v).forEach(t=>{const h=b(r).find(C=>String(C.value)===String(t));h&&!a.some(C=>String(C.value)===String(t))&&a.push(h)}),r.value=a;l.value=o+1}else f||(r.value=[]),p.value=!1})}function P(o){return o==null||!e.dictCode?Promise.resolve(null):q.get({url:`/sys/dict/loadDictItem/${e.dictCode}`,params:{key:o}}).then(f=>{var d,u,g,a;if(Array.isArray(f)&&f.length>0){const t=f[0];return typeof t=="string"?{value:o,label:t,text:t,color:void 0}:{value:(d=t.value)!=null?d:o,label:(u=t.text)!=null?u:t.label,text:(a=(g=t.text)!=null?g:t.label)!=null?a:"",color:t.color}}return null}).catch(()=>null)}function m(){if(!n.value)return;const o=v.value;if(!o||o.length===0)return;const f=new Set(r.value.map(u=>String(u.value))),d=o.filter(u=>!f.has(String(u)));d.length!==0&&Promise.all(d.map(u=>P(u))).then(u=>{const g=u.filter(Boolean);g.length>0&&(r.value=[...r.value,...g])})}const L=I(o=>{n.value&&(s.value=o||"",l.value=1,p.value=!0,i.value=!0,D(1,!1,s.value).finally(()=>{i.value=!1,m()}))},le);function A(o){!n.value||!o||s.value&&(s.value="",l.value=1,p.value=!0,i.value=!0,D(1,!1,"").finally(()=>{i.value=!1,m()}))}function _(){n.value&&(l.value=1,p.value=!0,i.value=!0,D(1,!1).finally(()=>{i.value=!1,m()}))}function B(o){if(!n.value)return;const f=o.target,{scrollTop:d,scrollHeight:u,clientHeight:g}=f,a=d+g>=u-te;!y.value&&p.value&&a&&(y.value=!0,D(l.value,!0).finally(()=>{y.value=!1}).catch(()=>{l.value>1&&l.value--}))}return{isDictTable:c,useLoadDict:n,loading:i,loadDictOptions:_,ensureValueInOptions:m,handleSearch:L,handleDropdownVisibleChange:A,handlePopupScroll:B}}const oe=R({name:"JSelectMultiple",components:{},inheritAttrs:!1,props:{value:O.oneOfType([O.string,O.array]),placeholder:{type:String,default:"请选择",required:!1},readOnly:{type:Boolean,required:!1,default:!1},options:{type:Array,default:()=>[],required:!1},triggerChange:{type:Boolean,required:!1,default:!0},spliter:{type:String,required:!1,default:","},popContainer:{type:String,default:"",required:!1},dictCode:{type:String,required:!1},disabled:{type:Boolean,default:!1},useDicColor:{type:Boolean,default:!1},pageSize:{type:Number,default:10},scrollLoad:{type:Boolean,default:!1}},emits:["options-change","change","input","update:value"],setup(e,{emit:r}){const v=S([]),i=S(e.value?Array.isArray(e.value)?e.value:e.value.split(e.spliter):[]),l=S([]),p=$(),[y,,,s]=z(e,"value","change",v),c=ne(e,l,i),{useLoadDict:n,loading:D,loadDictOptions:P,ensureValueInOptions:m,handleSearch:L,handleDropdownVisibleChange:A,handlePopupScroll:_,isDictTable:B}=c,o=T(()=>Array.isArray(l.value)?l.value.map((a,t)=>{const{useDicColor:h}=e,C=a.text||a.label||a.label||"";return{key:a.value+"_"+C+"_"+t,text:C,value:a.value,color:a.color,class:[h&&a.color?"colorText":""],style:{backgroundColor:`${h&&a.color}`}}}):[]);U(()=>{e.dictCode?u():l.value=e.options}),k(()=>e.dic