1 |
- import{u as m}from"./use-response-handle.10a5ad96.js";import{q as R,a2 as w,B as h,t as d,aI as V,aJ as C,aK as q,v as x}from"./index.f00b3728.js";const _={api:{type:Function,required:!0},value:{type:String},subLabelProp:{type:String},requestProp:{type:String},responseLabelProp:{type:String},responseValProp:{type:String},placeholder:{type:String},isRoot:{type:Boolean},width:{type:String}};function j(a){return typeof a=="function"||Object.prototype.toString.call(a)==="[object Object]"&&!q(a)}const D=R({name:"RemoteSelect",props:_,emits:["listChange","itemChange","itenDetail","update:value","inital"],setup(a,{emit:r,expose:S}){const g=w({get(){return a.value},set(t){r("update:value",t)}}),y=m(),o=h([]),s=h(!1);async function P(t){const{responseLabelProp:e,responseValProp:l,subLabelProp:u,api:b}=a;s.value=!0;const{code:v,data:p,message:i}=await b(t);s.value=!1,y({code:v,message:i,handler:()=>{const f=a.isRoot?p:p.list;o.value=f.map(n=>({...n,label:n[e],value:n[l],subLabel:n[u]})),r("inital",o.value[0][l])}})}async function L(t){if(!t)return;const{responseLabelProp:e,responseValProp:l,requestProp:u,subLabelProp:b,api:v}=a;s.value=!0;const{code:p,data:i,message:f}=await v({[u||e]:t});y({code:p,message:f,handler:()=>{const n=a.isRoot?i:i.list;o.value=n.map(c=>({...c,label:c[e],value:c[l],subLabel:c[b]})),r("listChange",x(o))}}),s.value=!1}return S({initalData:P}),()=>{let t;return d(C,{modelValue:g.value,"onUpdate:modelValue":e=>g.value=e,placeholder:a.placeholder,remoteMethod:L,loading:s.value,reserveKeyword:!0,filterable:!0,clearable:!0,remote:!0,style:{wdith:a.width?a.width+"px":""},onChange:e=>{r("itemChange",o.value.find(l=>l.value===e))}},j(t=o.value.map((e,l)=>d(V,{label:e.subLabel?e.label+" - "+e.subLabel:e.label,key:l,value:e.value},{default:()=>[d("span",{style:"float: left"},[e.label]),d("span",{style:"float: right;color: var(--el-text-color-secondary);font-size: 13px;"},[e.subLabel])]})))?t:{default:()=>[t]})}}});export{D as R};
|