UNPKG

quick-admin-vue3-core

Version:

以快(计算机执行效率、开发效率)为核心的后台管理系统开发模板

2 lines (1 loc) 1.37 kB
"use strict";const i=require("vue"),d=require("./index-BC11nvhb.cjs"),F=require("./BaseOption-BSmEMluK.cjs"),h={school:{reqNameKey:"name",resValKey:"id",fetchApi:d.GetMockOptions,defaultField:{prop:"xx",label:"学校"},extraParams:{type:"school"},handleItem(r){const{name:e,id:a}=r;return{label:e,value:a}}},company:{reqNameKey:"name",resValKey:"id",fetchApi:d.GetMockOptions,defaultField:{prop:"gs",label:"公司"},extraParams:{type:"company"},handleItem(r){const{full_name:e,short_name:a,id:n}=r;return{label:e,value:n,short_name:a,slots:[F.default,{rightKey:"short_name"}]}}}},S=()=>{function r(e,a,n,p){if(!h[e])throw new Error(`不存在type为${e}的类型`);let l=[];const{fetchApi:m,defaultField:y,handleItem:O,reqNameKey:g="name",resValKey:x="id",extraParams:q}=h[e],u=i.ref(!1),o=i.ref([]),K=i.computed(()=>o.value.map(O));n&&c(n);function c(t="",f=!1){if(!t){if(l.length)return o.value=l;if(!f)return}u.value=!!t,m({[g]:t,...q}).then(s=>{!l.length&&!t&&(l=s||[]),o.value=s||[]}).finally(()=>{u.value=!1})}function v(t){const f=o.value.find(s=>s[x]===t);i.nextTick(()=>p(t,f))}return{...y,...a,type:"select",attrs:{options:K,filterable:!0,placeholder:"支持输入名称/id进行搜索",remote:!0,remoteShowSuffix:!0,defaultFirstOption:!0,onFocus:()=>c("",!0),remoteMethod:c,onChange:p?v:void 0,loading:u}}}return{getSearchOpts:r}};exports.useSelectOpts=S;