Files
qhmes/web-dist/js/JSelectSingle-CYBc64RE.js
2026-06-16 18:19:57 +08:00

2 lines
4.5 KiB
Java

var V=(v,x,t)=>new Promise((g,c)=>{var o=a=>{try{f(t.next(a))}catch(h){c(h)}},i=a=>{try{f(t.throw(a))}catch(h){c(h)}},f=a=>a.done?g(a.value):Promise.resolve(a.value).then(o,i);f((t=t.apply(v,x)).next())});import{initDictOptions as E}from"./index-Cq6YxX27.js";import{a4 as G,aw as K,aH as Q,av as U,d as z,dU as j,au as q}from"./index-X7Y8jykP.js";import{e as R,r as _,c as C,h as b,y as w,z as D,A as B,C as W,F as X,D as Y,Q as Z,T as ee,J as te,G as ae,H as le,B as ne,u as S}from"./vue-vendor-DNhG1Cve.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";const oe=R({name:"JSelectSingle",__name:"JSelectSingle",props:{value:{},placeholder:{default:"请选择"},readOnly:{type:Boolean,default:!1},options:{default:()=>[]},triggerChange:{type:Boolean,default:!0},popContainer:{default:""},dictCode:{},disabled:{type:Boolean,default:!1},useDicColor:{type:Boolean,default:!1},pageSize:{default:10},scrollLoad:{type:Boolean,default:!1}},emits:["change","update:value","input","options-change"],setup(v,{emit:x}){var P;const t=v,g=x,c=_((P=t.value)!=null?P:void 0),o=_([]),i=_(!1),f=_(""),a={pageNo:1,hasMore:!0,loading:!1},h=C(()=>t.dictCode?t.dictCode.split(",").length>=2:!1),d=C(()=>t.scrollLoad&&h.value),k=C(()=>Array.isArray(o.value)?o.value.map((e,l)=>{var u,r;const n=(r=(u=e.text)!=null?u:e.label)!=null?r:"";return{key:`${e.value}_${n}_${l}`,text:n,value:e.value,class:[t.useDicColor&&e.color?"colorText":""],style:{backgroundColor:t.useDicColor&&e.color?String(e.color):""}}}):[]);function m(e,l){return z.get({url:`/sys/dict/loadDict/${t.dictCode}`,params:{pageNo:e,pageSize:t.pageSize,keyword:f.value,order:"asc"}}).then(n=>{const u=(n!=null?n:[]).map(r=>{var s;return{value:r.value,label:(s=r.text)!=null?s:r.label}});if(u.length===0){l||(o.value=[]),a.hasMore=!1;return}if(l){const r=new Set(o.value.map(p=>String(p.value))),s=u.filter(p=>!r.has(String(p.value)));s.length>0&&(o.value=[...o.value,...s])}else{if(S(c)&&S(o).length){const r=S(o).find(s=>String(s.value)===String(S(c)));r&&!u.some(s=>String(s.value)===String(r.value))&&u.push(r)}o.value=u}a.pageNo=e+1})}function F(){return V(this,null,function*(){var e;if(d.value)a.pageNo=1,a.hasMore=!0,i.value=!0,m(1,!1).catch(()=>{o.value=[]}).finally(()=>{i.value=!1,y()});else{let l=(e=t.dictCode)!=null?e:"";try{const n=yield E(l);o.value=n}catch(n){o.value=[]}}})}function I(e){return e==null?Promise.resolve(null):z.get({url:`/sys/dict/loadDictItem/${t.dictCode}`,params:{key:e}}).then(l=>Array.isArray(l)?{value:e,label:l[0]}:null).catch(()=>null)}function y(){if(!d.value)return;const e=c.value;e==null||o.value.some(n=>String(n.value)===String(e))||I(e).then(n=>{n&&(o.value=[n].concat(o.value))})}const L=G(e=>{d.value&&(f.value=e!=null?e:"",a.pageNo=1,a.hasMore=!0,i.value=!0,m(1,!1).catch(()=>{o.value=[]}).finally(()=>{i.value=!1,y()}))},300);function M(e){!e||!d.value||(a.pageNo=1,a.hasMore=!0,f.value="",i.value=!0,m(1,!1).finally(()=>{i.value=!1,y()}))}function $(e){if(!d.value||a.loading||!a.hasMore)return;const l=e.target,{scrollTop:n,scrollHeight:u,clientHeight:r}=l;n+r<u-10||(a.loading=!0,m(a.pageNo,!0).finally(()=>{a.loading=!1}).catch(()=>{a.pageNo>1&&a.pageNo--}))}const A=C(()=>d.value);function O(e){return t.popContainer?j(e,t.popContainer):e==null?void 0:e.parentNode}function H(e,l){var r,s,p;const n=(r=l.children)==null?void 0:r.call(l);return((p=(s=n==null?void 0:n[0])==null?void 0:s.children)!=null?p:"").toString().toLowerCase().indexOf(e.toLowerCase())>=0}const J=C(()=>(e,l)=>d.value?!0:H(e,l));function T(e){const l=e!=null?e:void 0;t.triggerChange?g("change",l):g("input",l),g("update:value",l)}function N(){var e;t.dictCode?F():o.value=(e=t.options)!=null?e:[]}return b(()=>t.dictCode,N),b(()=>t.value,e=>{c.value=e!=null?e:void 0,d.value&&y()}),b(()=>t.options,()=>{var e;t.dictCode||(o.value=(e=t.options)!=null?e:[])}),N(),(e,l)=>{const n=Q,u=K,r=U;return D(),w(r,ne({value:c.value,disabled:v.disabled,placeholder:v.placeholder,"filter-option":J.value,showSearch:A.value,getPopupContainer:O,notFoundContent:i.value?void 0:null,allowClear:"",onChange:T,onSearch:S(L),onPopupScroll:$,onDropdownVisibleChange:M},e.$attrs),{notFoundContent:B(()=>[i.value?(D(),w(n,{key:0,size:"small"})):le("",!0)]),default:B(()=>[(D(!0),W(X,null,Y(k.value,s=>(D(),w(u,{key:s.key,value:s.value,getPopupContainer:O},{default:B(()=>[Z("span",{class:te(s.class),style:ee(s.style)},ae(s.text),7)]),_:2},1032,["value"]))),128))]),_:1},16,["value","disabled","placeholder","filter-option","showSearch","notFoundContent","onSearch"])}}}),de=q(oe,[["__scopeId","data-v-a382b27e"]]);export{de as default};