export default class DSJSelect { isFormItem: boolean = false; //是否为表单内组件 //是否为表单内组件 //是否为表单内组件 assignData!: Function; //渲染数据方法 //渲染数据方法 fetchOptions!: Function; //获取选项数组方法 //获取选项数组方法 modelValue: any; //绑定值 multiple: boolean = false; //是否多选 //是否多选 disabled: boolean = false; //是否禁用 //是否禁用 //是否禁用 valueKey!: string; //作为 value 唯一标识的键名,绑定值为对象类型时必填 //作为 value 唯一标识的键名,绑定值为对象类型时必填 size!: string; //输入框尺寸 //输入框尺寸 clearable: boolean = false; //是否可以清空选项 //是否可以清空选项 collapseTags: boolean = false; //多选时是否将选中值按文字的形式展示 //多选时是否将选中值按文字的形式展示 //多选时是否将选中值按文字的形式展示 multipleLimit!: number; //多选时用户最多可以选择的项目数,为 0 则不限制 //多选时用户最多可以选择的项目数,为 0 则不限制 name!: string; //select input 的 name 属性 //select input 的 name 属性 autocomplete!: string; //select input 的 autocomplete 属性 //select input 的 autocomplete 属性 placeholder!: string; //占位符 //占位符 filterable: boolean = false; //是否可搜索 //是否可搜索 allowCreate: boolean = false; //是否允许用户创建新条目,需配合 filterable 使用 //是否允许用户创建新条目,需配合 filterable 使用 //是否允许用户创建新条目,需配合 filterable 使用 filterMethod!: Function; //自定义搜索方法 //自定义搜索方法 remote: boolean = false; //是否为远程搜索 //是否为远程搜索 //是否为远程搜索 remoteMethod!: Function; //远程搜索方法 //远程搜索方法 loading: boolean = false; //是否正在从远程获取数据 //是否正在从远程获取数据 //是否正在从远程获取数据 loadingText!: string; //远程加载时显示的文字 //远程加载时显示的文字 noMatchText!: string; //搜索条件无匹配时显示的文字 //搜索条件无匹配时显示的文字 noDataText!: string; //选项为空时显示的文字 //选项为空时显示的文字 popperClass!: string; //Select 下拉框的类名 //Select 下拉框的类名 reserveKeyword: boolean = false; //多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 //多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 defaultFirstOption: boolean = false; //在输入框按下回车,选择第一个匹配项。需配合 filterable 或 remote 使用 //在输入框按下回车,选择第一个匹配项。需配合 filterable 或 remote 使用 popperAppendToBody: boolean = false; //是否将弹出框插入至 body 元素。在弹出框的定位出现问题时,可将该属性设置为 false //是否将弹出框插入至 body 元素。在弹出框的定位出现问题时,可将该属性设置为 false automaticDropdown: boolean = false; //对于不可搜索的 Select,是否在输入框获得焦点后自动弹出选项菜单 //对于不可搜索的 Select,是否在输入框获得焦点后自动弹出选项菜单 //对于不可搜索的 Select,是否在输入框获得焦点后自动弹出选项菜单 clearIcon!: string; //自定义清空图标的类名 //自定义清空图标的类名 change!: Function; //选中值发生变化时触发(目前的选中值) //选中值发生变化时触发(目前的选中值) visibleChange!: Function; //下拉框出现/隐藏时触发(出现则为 true,隐藏则为 false) //下拉框出现/隐藏时触发(出现则为 true,隐藏则为 false) removeTag!: Function; //多选模式下移除tag时触发(移除的tag值) //多选模式下移除tag时触发(移除的tag值) clear!: Function; //可清空的单选模式下用户点击清空按钮时触发 //可清空的单选模式下用户点击清空按钮时触发 blur!: Function; //当 input 失去焦点时触发(event: Event) //当 input 失去焦点时触发(event: Event) focus!: Function; //当 input 获得焦点时触发(event: Event) //当 input 获得焦点时触发(event: Event) constructor(opt: any) { let self = this; Object.assign(this,{ isFormItem: false, //是否为表单内组件 modelValue: '', //绑定值 fetchOptions: ()=>{}, //获取选项数组方法 multiple: false, //是否多选 disabled: false, //是否禁用 valueKey: 'value', //作为 value 唯一标识的键名,绑定值为对象类型时必填 size: 'small', //输入框尺寸 clearable: true, //是否可以清空选项 collapseTags: false, //多选时是否将选中值按文字的形式展示 multipleLimit: 0, //多选时用户最多可以选择的项目数,为 0 则不限制 name: '', //select input 的 name 属性 autocomplete: 'off', //select input 的 autocomplete 属性 placeholder: '请选择', //占位符 filterable: true, //是否可搜索 allowCreate: false, //是否允许用户创建新条目,需配合 filterable 使用 filterMethod: (val:any)=>{}, //自定义搜索方法 remote: false, //是否为远程搜索 remoteMethod: ()=>{}, //远程搜索方法 loading: false, //是否正在从远程获取数据 loadingText: '加载中', //远程加载时显示的文字 noMatchText: '无匹配数据', //搜索条件无匹配时显示的文字 noDataText: '无数据', //选项为空时显示的文字 popperClass: '', //Select 下拉框的类名 reserveKeyword: false, //多选且可搜索时,是否在选中一个选项后保留当前的搜索关键词 defaultFirstOption: false, //在输入框按下回车,选择第一个匹配项。需配合 filterable 或 remote 使用 popperAppendToBody: true, //是否将弹出框插入至 body 元素。在弹出框的定位出现问题时,可将该属性设置为 false automaticDropdown: false, //对于不可搜索的 Select,是否在输入框获得焦点后自动弹出选项菜单 clearIcon: 'el-icon-circle-close', //自定义清空图标的类名 change: ()=>{}, //选中值发生变化时触发(目前的选中值) visibleChange: ()=>{}, //下拉框出现/隐藏时触发(出现则为 true,隐藏则为 false) removeTag: ()=>{}, //多选模式下移除tag时触发(移除的tag值) clear: ()=>{}, //可清空的单选模式下用户点击清空按钮时触发 blur: ()=>{}, //当 input 失去焦点时触发(event: Event) focus: ()=>{}, //当 input 获得焦点时触发(event: Event) }, opt, {}); } }