0.1.7 • Published 1 year ago
tags-selector v0.1.7
tag-select
功能介绍
基于elementUI的下拉选项框实现,包括如下功能点
- 下拉框选项可设置默认项,支持在输入框中输入关键字筛选选项,如果没有所需选项,可以选择“新增标签:XXX”新建标签
- 支持为输入的标签设置最大长度、最多可选数量、Reg校验
- 标签内容中开头和结尾的空格自动去除
- 标签字符数大于配置值,使用省略号表示后面的内容,鼠标放置到标签上,出现title显示全部内容
使用示例
main.js中引入
import tagSelect from 'tags-selector'
Vue.use(tagSelect)
<el-form>
<el-form-item label="标签" label-width="100px" prop="labels" :error="tagErr">
<tag-select
:labelsFormDataProp.sync="formAllData.labels"
:initOptions="initOptions"
:reg="Reg"
:maxChecked="5"
:maxLength="10"
:ellipsisLength="6"
@error="handleTagErr"
@clearError="handleClearTagErr">
</tag-select>
</el-form-item>
</el-form>
data() {
return {
formAllData: {
labels: []
},
Reg: /^[0-9]+$/,
tagErr: "",
initOptions: [{
name: '默认选项1',
id: 1
},
{
name: '默认选项2',
id: 2
},
{
name: '默认选项3',
id: 2
}]
}
},
methods: {
handleTagErr() {
this.tagErr = "输入的字符无效,仅支持数字";
},
handleClearTagErr() {
this.tagErr = "";
},
}
效果截图
Options
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
labelsFormDataProp | 选中的标签项数组,支持 .sync 修饰符。数据格式为{labelId: 0,labelName:'',tag:'CREATE'}如果选中已存在的默认选项,tag为EXIST,id为该选项的id;如果选中新建的选项,tag为CREATE,id为0 | array | - | [] |
initOptions | 默认的选项列表,数组项的格式需满足{name: '',id: 1} | array | - | [] |
placeholder | 输入框占位文本 | string | - | '标签' |
reg | 对输入的新标签的校验规则 | RegExp | - | 默认支持数字、中英文、下划线 |
maxChecked | 筛选框中的最多可选数量 | Number | - | - |
maxLength | 新增标签的最大输入字数 | Number | - | - |
ellipsisLength | 标签显示省略号时的最大字符长度 | Number | - | - |
promptText | 新增标签时的提示语预设文本 | String | - | '新增标签:' |
Events
事件名称 | 说明 | 回调参数 |
---|---|---|
error | 标签校验失败时触发 | - |
clearError | 需要父组件清除校验时触发 | - |