2 lines
7.1 KiB
Java
2 lines
7.1 KiB
Java
var ae=Object.defineProperty;var J=Object.getOwnPropertySymbols;var le=Object.prototype.hasOwnProperty,te=Object.prototype.propertyIsEnumerable;var U=(e,n,s)=>n in e?ae(e,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[n]=s,b=(e,n)=>{for(var s in n||(n={}))le.call(n,s)&&U(e,s,n[s]);if(J)for(var s of J(n))te.call(n,s)&&U(e,s,n[s]);return e};var F=(e,n,s)=>new Promise((c,y)=>{var p=d=>{try{i(s.next(d))}catch(l){y(l)}},o=d=>{try{i(s.throw(d))}catch(l){y(l)}},i=d=>d.done?c(d.value):Promise.resolve(d.value).then(p,o);i((s=s.apply(e,n)).next())});import{as as m,a4 as ne,J as oe,aO as ie,dU as ue,E as re,d as I,au as se,av as ce,aw as fe,aH as de}from"./index-X7Y8jykP.js";import{initDictOptions as E}from"./index-Cq6YxX27.js";import{e as ve,h as L,r as k,c as he,u as w,y as V,z as S,A as P,B as K,C as Y,F as O,D as R,E as ge,G,f as ye,Q as me,T as pe,J as Ce,H as Se}from"./vue-vendor-DNhG1Cve.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";const De=ve({name:"JSearchSelect",inheritAttrs:!1,props:{value:m.oneOfType([m.string,m.number]),dict:m.string,dictOptions:{type:Array,default:()=>[]},async:m.bool.def(!1),placeholder:m.string,popContainer:m.string,pageSize:m.number.def(10),getPopupContainer:{type:Function,default:e=>e==null?void 0:e.parentNode},adjustY:m.bool.def(!0),immediateChange:m.bool.def(!1),params:{type:Object,default:()=>{}},multiple:{type:Boolean,default:!1},useDicColor:{type:Boolean,default:!1}},emits:["change","update:value"],setup(e,{emit:n,refs:s}){const c=k([]),y=k(!1),p=ie({excludeDefaultKeys:!1}),o=k([]),i=k([]),d=k(0),l=k(!0);let C=!0,T=!1,v=1,N="";const D=he(()=>e.dict?e.dict.split(",").length>=2:!1);L(()=>e.dict,()=>{e.dict&&(D.value?$():q())},{immediate:!0}),L(()=>e.value,a=>{a||a===0?Q():(o.value=[],i.value=[])},{immediate:!0}),L(()=>e.dictOptions,a=>{a&&a.length>=0&&(c.value=[...a])},{immediate:!0});const H=ne(function(t){return F(this,null,function*(){if(!D.value)return;v=1,C=!0,N=t,d.value+=1;const f=w(d);c.value=[],y.value=!0;let r=B(t);r=r.replaceAll("'",""),I.get({url:`/sys/dict/loadDict/${e.dict}`,params:{keyword:r,pageSize:e.pageSize,pageNo:v}}).then(u=>{if(y.value=!1,u&&u.length>0){if(f!=w(d))return;c.value=u,v++}else v==1&&(C=!1)})})},300);function Q(){if(l.value===!1){l.value=!0;return}let{async:a,value:t,dict:f}=e;a?(!i||!i.key||i.key!==t)&&I.get({url:`/sys/dict/loadDictItem/${f}`,params:{key:t}}).then(r=>{if(r&&r.length>0)if(e.multiple){if(t){let u=[],h=t.toString().split(",");for(let g=0;g<r.length;g++){let A={key:h[g],label:r[g]};u.push(A),o.value.push(A.key)}i.value=u}}else{let u={key:t,label:r};e.value==t&&(i.value=b({},u)),e.immediateChange==!0&&n("change",e.value)}}):e.multiple?o.value=t.toString().split(","):(o.value=t.toString(),e.immediateChange==!0&&n("change",t.toString()))}function $(){return F(this,null,function*(){let{dict:a,async:t,dictOptions:f,pageSize:r}=e;if(t){if(a){v=1,C=!0,N="",y.value=!0;let u=B("");I.get({url:`/sys/dict/loadDict/${a}`,params:{pageSize:r,keyword:u,pageNo:v}}).then(h=>{y.value=!1,h&&h.length>0?(c.value=h,v++):v==1&&(C=!1)})}}else if(f&&f.length>0)c.value=f;else{let u="";if(a){let h=a.split(",");if(h[0].indexOf("where")>0){let A=h[0].split("where");u=A[0].trim()+","+h[1]+","+h[2]+","+encodeURIComponent(A[1])}else u=a;const g=yield E(u);c.value=g}}})}function q(){return F(this,null,function*(){c.value=yield E(e.dict)})}function M(a){e.multiple||(o.value=a,z())}function W(a){e.multiple||(a?(i.value=a,o.value=a.key):(i.value=null,o.value=null,c.value=null,H("")),z(),a!=null||(l.value=!0))}function X(a){let t=a;e.async&&(t=a.key),e.multiple&&t&&(e.async&&o.value.push(t),a!=null||(l.value=!0),z())}function Z(a){let t=a;if(e.async&&(t=a.key),e.multiple){if(e.async){let f=o.value.findIndex(r=>r===t);f!=-1&&o.value.splice(f,1)}a!=null||(l.value=!0),z()}}function z(){l.value=!1,e.multiple?(n("change",w(o).join(",")),n("update:value",w(o).join(","))):(n("change",w(o)),n("update:value",w(o)))}function j(a,t){let f="",r="";try{f=t.value,r=t.children()[0].children}catch(h){}let u=a.toLowerCase();return f.toLowerCase().indexOf(u)>=0||r.toLowerCase().indexOf(u)>=0}function _(a){return e.popContainer?ue(a,e.popContainer):typeof e.getPopupContainer=="function"?e.getPopupContainer(a):a==null?void 0:a.parentNode}function B(a){if(e.params&&e.params.column&&e.params.order){let t=a||"";return t=t+"[orderby:"+e.params.column+","+e.params.order+"]",encodeURI(t)}else return a}const x=()=>{var a,t;(re(i.value)||(a=i.value)!=null&&a.length)&&D.value&&e.async&&(c.value=[],$()),Array.isArray(i.value)&&i.value.length===0&&D.value&&e.async&&v>2&&(c.value=[],$()),(t=p.onFocus)==null||t.call(p)},ee=a=>F(null,null,function*(){if(D.value){const{target:t}=a,{scrollTop:f,scrollHeight:r,clientHeight:u}=t;if(!T&&C&&f+u>=r-10){T=!0;let h=B(N);I.get({url:`/sys/dict/loadDict/${e.dict}`,params:{pageSize:e.pageSize,keyword:h,pageNo:v}}).then(g=>{if(y.value=!1,(g==null?void 0:g.length)>0){if(JSON.stringify(g[0])===JSON.stringify(c.value[0])){C=!1;return}c.value.push(...g),v++}else C=!1}).finally(()=>{T=!1}).catch(()=>{v!=1&&v--})}}});return{attrs:p,options:c,loading:y,isDictTable:D,selectedValue:o,selectedAsyncValue:i,loadData:oe(H,800),getParentContainer:_,filterOption:j,handleChange:M,handleAsyncChange:W,handleAsyncFocus:x,handlePopupScroll:ee,handleSelect:X,handleDeSelect:Z}}});function ke(e,n,s,c,y,p){const o=de,i=fe,d=ce;return e.async?(S(),V(d,K({key:0},e.attrs,{value:e.selectedAsyncValue,"onUpdate:value":n[0]||(n[0]=l=>e.selectedAsyncValue=l),showSearch:"",labelInValue:"",allowClear:"",getPopupContainer:e.getParentContainer,placeholder:e.placeholder,filterOption:e.isDictTable?!1:e.filterOption,notFoundContent:e.loading?void 0:null,onFocus:e.handleAsyncFocus,onSearch:e.loadData,onChange:e.handleAsyncChange,onPopupScroll:e.handlePopupScroll,mode:e.multiple?"multiple":"",onSelect:e.handleSelect,onDeselect:e.handleDeSelect}),{notFoundContent:P(()=>[ye(o,{size:"small"})]),default:P(()=>[(S(!0),Y(O,null,R(e.options,l=>(S(),V(i,{key:l==null?void 0:l.value,value:l==null?void 0:l.value},{default:P(()=>[ge(G(l==null?void 0:l.text),1)]),_:2},1032,["value"]))),128))]),_:1},16,["value","getPopupContainer","placeholder","filterOption","notFoundContent","onFocus","onSearch","onChange","onPopupScroll","mode","onSelect","onDeselect"])):(S(),V(d,K({key:1,value:e.selectedValue,"onUpdate:value":n[1]||(n[1]=l=>e.selectedValue=l)},e.attrs,{showSearch:"",getPopupContainer:e.getParentContainer,placeholder:e.placeholder,filterOption:e.filterOption,notFoundContent:e.loading?void 0:null,dropdownAlign:{overflow:{adjustY:e.adjustY}},onChange:e.handleChange,mode:e.multiple?"multiple":"",onSelect:e.handleSelect,onDeselect:e.handleDeSelect}),{notFoundContent:P(()=>[e.loading?(S(),V(o,{key:0,size:"small"})):Se("",!0)]),default:P(()=>[(S(!0),Y(O,null,R(e.options,l=>(S(),V(i,{key:l==null?void 0:l.value,value:l==null?void 0:l.value},{default:P(()=>[me("span",{class:Ce([e.useDicColor&&l.color?"colorText":""]),style:pe({backgroundColor:`${e.useDicColor&&l.color}`})},G((l==null?void 0:l.text)||(l==null?void 0:l.label)),7)]),_:2},1032,["value"]))),128))]),_:1},16,["value","getPopupContainer","placeholder","filterOption","notFoundContent","dropdownAlign","onChange","mode","onSelect","onDeselect"]))}const ze=se(De,[["render",ke],["__scopeId","data-v-c6ef1c7d"]]);export{ze as default};
|