# xm-select #### 介绍 始于Layui, 下拉选择框的多选解决方案 #### 软件架构 1. 引入第三方[preact](https://preactjs.com/)库, 利用jsx渲染页面结构 2. 使用[webpack](https://www.webpackjs.com/)进行打包 #### 安装教程 ``` 1. git clone https://gitee.com/maplemei/xm-select.git 2. cd xm-select 3. yarn 或者 npm install ``` #### 使用说明 > 历史版本 [formSelectes](https://github.com/hnzzmsf/layui-formSelects) > 联系方式 QQ群: 769620939 > 默认配置项 ``` { //多选数据 data: [], //默认选中数据, 优先级大于selected initValue: null, //默认提示 tips: '请选择', //please selected //空数据提示 empty: '暂无数据', //no data //搜索延迟 ms delay: 500, //搜索默认提示 searchTips: '请选择', //please search //是否开始本地搜索 filterable: false, //本地搜索过滤方法, 返回true表示显示, false不显示, val:当前输入框搜索值, item:选项数据, index: 数组坐标, porp: 自定义属性 filterMethod: function(val, item, index, prop){ if(!val) return true; return item[prop.name].indexOf(val) != -1; }, //下拉方向 direction: 'auto', //auto, down, up //自定义样式 style: {}, //自定义属性名称 prop: { name: 'name', value: 'value', selected: 'selected', disabled: 'disabled', }, //主题配置 theme: { color: '#009688', }, //模型 model: { label: { type: 'block', text: { left: '', right: '', separator: ', ', }, block: { showCount: 0, showIcon: true, }, count: { template(data, sels){ return "已选中 " + sels.length + " 项, 共 " + data.length + " 项" } }, }, }, // 展开下拉框, return false; 代表组件受控 show(){ }, // 隐藏下拉框, return false; 代表组件受控 hidn(){ }, // 模板组成, 当前option数据, 已经选中的数据, name, value template(item, sels, name, value){ return name; } } ``` > 默认方法 ``` //更新组件 xmSelect: update(options) //重置组件 xmSelect: reset() //重新渲染 xmSelect: render(options) //主动关闭 xmSelect: opened() //主动关闭 xmSelect: closed() //获取已选中数据 xmSelect: getValue() //设置选中数据, array: 选中数据, show: 是否展开下拉框 xmSelect: setValue(array, show) ``` #### 示例 [示例页面](https://maplemei.gitee.io/xm-select/) ```