# MSelect
# 参数配置
以下字段为MSelect的默认配置、扩展事件和选项,其他配置和事件请参照el-select
# Props
字段 | 说明 | 类型 | 默认值 |
---|---|---|---|
params | 请求参数 | object | {} |
valueKey | 对应数据绑定和展示字段 | Object | { label: 'label', value: 'value' } |
dataList | 下拉数据 | array | [] |
getList | 异步获取数据的方法,当dataList不为空时不执行该方法 | promise | - |
filterable | 是否可搜索 | boolean | true |
clearable | 是否可清楚 | boolean | true |
customRender | 自定义模版 | Function | - |
# Events
事件名称 | 说明 | 回调参数 |
---|---|---|
selectList | 当异步请求数据时成功回调 | 当前下拉数据 array |
currentObj | 当前选中或清除时回调 | 当前选中的数据 object、null |
# 用法
-
- 黄金糕
- 双皮奶
- 蚵仔煎
- 龙须面
- 北京烤鸭
无数据
-
加载中
-
加载中
-
加载中
-
- 黄金糕选项1
- 双皮奶选项2
- 蚵仔煎选项3
- 龙须面选项4
- 北京烤鸭选项5
无数据
-
- 黄金糕选项1
- 双皮奶选项2
- 蚵仔煎选项3
- 龙须面选项4
- 北京烤鸭选项5
无数据
-
- 黄金糕
- 双皮奶
- 蚵仔煎
- 龙须面
- 北京烤鸭
无数据
-
- 黄金糕选项1
- 双皮奶选项2
- 蚵仔煎选项3
- 龙须面选项4
- 北京烤鸭选项5
无数据
<template>
<ul class="demo-select">
<li class="li">
<label>基本用法</label>
<m-select v-model="value" :data-list="dataList" ></m-select>
</li>
<li class="li">
<label>异步获取数据</label>
<m-select v-model="value" :get-list="getList"></m-select>
</li>
<li class="li">
<label>远程搜索</label>
<m-select v-model="value" :get-list="remoteMethod" remote></m-select>
</li>
<li class="li">
<label>扩展事件</label>
<m-select
v-model="value"
@selectList="setSelectList"
@currentObj="currentObj"
:get-list="getList"
:params='params'
></m-select>
</li>
<li class="li">
<label>自定义模板</label>
<m-select v-model="value" :data-list="dataList" :custom-render="customRender"></m-select>
</li>
<li class="li">
<label>禁用</label>
<m-select v-model="value" :data-list="dataList" :custom-render="customRender" disabled></m-select>
</li>
<li class="li">
<label>基础多选</label>
<m-select v-model="value1" multiple :data-list="dataList" ></m-select>
</li>
<li class="li">
<label>基础多选自定义模板</label>
<m-select
v-model="value1"
multiple
:data-list="dataList"
:custom-render="customRender"
collapse-tags
></m-select>
</li>
</ul>
</template>
<script>
export default {
data() {
return {
value: null,
value1: [],
dataList: [
{
value: "选项1",
label: "黄金糕",
disabled: true
},
{
value: "选项2",
label: "双皮奶"
},
{
value: "选项3",
label: "蚵仔煎"
},
{
value: "选项4",
label: "龙须面"
},
{
value: "选项5",
label: "北京烤鸭"
}
],
params:{
id:1
}
};
},
methods: {
customRender(h, item) {
return (
<div>
<span style="float: left">{item.label}</span>
<span style="float: right; color: #8492a6; font-size: 13px">
{item.value}
</span>
</div>
);
},
getList(params) {
console.log('getList 参数',params)
return new Promise(reslove=>{
setTimeout(()=>{
reslove(this.dataList)
},2000)
})
},
remoteMethod(params) {
console.log('remoteMethod 参数',params)
return new Promise(reslove=>{
setTimeout(()=>{
if(params.keyWord){
reslove(this.dataList)
}else{
reslove([])
}
},2000)
})
},
setSelectList(arr) {
console.log('setSelectList',arr)
},
currentObj(obj) {
console.log('currentObj',obj)
}
}
};
</script>
<style lang="scss">
.demo-select {
.li {
margin-bottom: 10px;
display: flex;
}
label {
width: 200px;
text-align: right;
padding: 0 8px;
}
}
</style>
显示代码