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

2 lines
4.4 KiB
Java

var K=Object.defineProperty,Q=Object.defineProperties;var Z=Object.getOwnPropertyDescriptors;var $=Object.getOwnPropertySymbols;var q=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable;var T=(e,n,t)=>n in e?K(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,v=(e,n)=>{for(var t in n||(n={}))q.call(n,t)&&T(e,t,n[t]);if($)for(var t of $(n))J.call(n,t)&&T(e,t,n[t]);return e},w=(e,n)=>Q(e,Z(n));var N=(e,n,t)=>new Promise((c,g)=>{var F=l=>{try{p(t.next(l))}catch(o){g(o)}},r=l=>{try{p(t.throw(l))}catch(o){g(o)}},p=l=>l.done?c(l.value):Promise.resolve(l.value).then(F,r);p((t=t.apply(e,n)).next())});import{as as y,bT as W,av as X,ad as Y,aO as _,c as x,bZ as ee,ah as ae,b2 as te,au as ne}from"./index-X7Y8jykP.js";import{useRuleFormItem as le}from"./useFormItem-b_EqFlJz.js";import{e as ie,h as P,w as oe,r as h,c as k,u as f,K as B,y as se,z as re,I as ue,D as de,A,L as fe,M as ce,N as ge,f as D,Q as pe,E as me,G as ve,B as he}from"./vue-vendor-DNhG1Cve.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";const Fe=ie({name:"ApiSelect",components:{Select:X,LoadingOutlined:W},inheritAttrs:!1,props:{value:[Array,String,Number],numberToString:y.bool,api:{type:Function,default:null},params:{type:Object,default:()=>({})},pageConfig:{type:Object,default:()=>({isPage:!1})},resultField:y.string.def(""),labelField:y.string.def("label"),valueField:y.string.def("value"),immediate:y.bool.def(!0)},emits:["options-change","change"],setup(e,{emit:n}){const t=h([]),c=h(!1),g=h(!0),F=h([]),r=_(),{t:p}=Y(),l=h(!0),o=h({pageNo:1,pageSize:10,total:0}),j={isPage:!1,pageField:"pageNo",pageSizeField:"pageSize",totalField:"total",listField:"records"},[S,I]=le(e,"value","change",F);let O;const U=k(()=>{let a=f(r)||{};return a&&a["onUpdate:value"]&&(O=a["onUpdate:value"],delete a["onUpdate:value"]),a.filterOption===void 0&&(a.filterOption=(i,u)=>typeof u.label=="string"?u.label.toLowerCase().indexOf(i.toLowerCase())!=-1:!0),a}),L=k(()=>{const{labelField:a,valueField:i,numberToString:u}=e;return f(t).reduce((m,s)=>{if(s){const C=s[i];m.push(w(v({},te(s,[a,i,"options"])),{label:s[a],value:u?`${C}`:C}))}return m},[])});P(()=>e.immediate,()=>{e.immediate&&b()},{immediate:!0}),P(()=>[e.api,e.pageConfig,e.resultField,e.params],()=>{e.immediate&&b()},{deep:!0}),P(()=>e.params,()=>{!f(g)&&b()},{deep:!0}),oe(()=>{e.value&&z()});const M=(a,i)=>i.value.toLowerCase().indexOf(a.toLowerCase())>=0||i.label.indexOf(a)>=0;function b(){return N(this,null,function*(){const a=e.api;if(!(!a||!x(a))){(!e.pageConfig.isPage||o.value.pageNo==1)&&(t.value=[]);try{c.value=!0;let{isPage:i,pageField:u,pageSizeField:m,totalField:s,listField:C}=v(v({},j),e.pageConfig),G=i?w(v({},e.params),{[u]:o.value.pageNo,[m]:o.value.pageSize}):v({},e.params);const d=yield a(G);if(i)t.value=[...t.value,...d[C]],o.value.total=d[s]||0,l.value=d[s]?t.value.length<d[s]:d[C]<o.value.pageSize;else{if(Array.isArray(d)){t.value=d,V();return}e.resultField&&(t.value=ee(d,e.resultField)||[])}V()}catch(i){}finally{c.value=!1,["multiple","tags"].includes(f(r).mode)&&!Array.isArray(f(S))&&I([]),E()}}})}function E(){let a=e.value;["multiple","tags"].includes(f(r).mode)?a&&typeof a=="string"&&a!="null"&&a!="undefined"?S.value=a.split(","):ae(a)&&(S.value=[a]):S.value=a}function z(){return N(this,null,function*(){!e.immediate&&f(g)&&(yield b(),g.value=!1)})}function V(){n("options-change",f(L))}function H(a,...i){O&&O(a),F.value=i}function R(a){const{scrollTop:i,scrollHeight:u,clientHeight:m}=a.target,s=u-i<=m+20;e.pageConfig.isPage&&s&&l.value&&!c.value&&(o.value.pageNo+=1,b())}return{state:S,attrs_:U,attrs:r,getOptions:L,loading:c,t:p,handleFetch:z,handleChange:H,handlePopupScroll:R,filterOption:M}}});function Se(e,n,t,c,g,F){const r=B("LoadingOutlined"),p=B("Select");return re(),se(p,he(e.attrs_,{value:e.state,"onUpdate:value":n[0]||(n[0]=l=>e.state=l),options:e.getOptions,"show-search":"","filter-option":e.filterOption,onChange:e.handleChange,onDropdownVisibleChange:e.handleFetch,onPopupScroll:e.handlePopupScroll}),ue({_:2},[de(Object.keys(e.$slots),l=>({name:l,fn:A(o=>[fe(e.$slots,l,ce(ge(o||{})))])})),e.loading?{name:"suffixIcon",fn:A(()=>[D(r,{spin:""})]),key:"0"}:void 0,e.loading?{name:"notFoundContent",fn:A(()=>[pe("span",null,[D(r,{spin:"",class:"mr-1"}),me(" "+ve(e.t("component.form.apiSelectNotFound")),1)])]),key:"1"}:void 0]),1040,["value","options","filter-option","onChange","onDropdownVisibleChange","onPopupScroll"])}const Ne=ne(Fe,[["render",Se]]);export{Ne as default};