1 |
- import{q as h,bf as y,r as i,w as c,bm as S,bn as P,aH as V,D as C}from"./index.f47bb45b.js";import{u as R}from"./use-response-handle.a0fb8de0.js";const q={api:{type:Function,required:!0},value:{type:String},requestProp:{type:String},responseLabelProp:{type:String},responseValProp:{type:String},placeholder:{type:String}};function j(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!V(e)}const M=h({name:"RemoteSelect",props:q,emits:["listChange","itemChange"],setup(e,{emit:n}){const s=y(e,"value"),d=R(),l=i([]),o=i(!1);async function m(a){if(!a)return;const{responseLabelProp:t,responseValProp:r,requestProp:u,api:f}=e;o.value=!0;const{code:g,data:b,message:v}=await f({[u||t]:a});d({code:g,message:v,handler:()=>{l.value=b.list.map(p=>({label:p[t],value:p[r]})),n("listChange",C(l))}}),o.value=!1}return()=>{let a;return c(P,{modelValue:s.value,"onUpdate:modelValue":t=>s.value=t,placeholder:e.placeholder,remoteMethod:m,loading:o.value,reserveKeyword:!0,filterable:!0,clearable:!0,remote:!0,onChange:()=>n("itemChange")},j(a=l.value.map((t,r)=>c(S,{label:t.label,key:r,value:t.value},null)))?a:{default:()=>[a]})}}});export{M as R};
|