From 036d3f05664afa75c2a5b44853de38c6a061e879 Mon Sep 17 00:00:00 2001 From: 刘汉宸 Date: Tue, 23 Jun 2020 17:19:51 +0800 Subject: [PATCH] feat: 新增选择器 --- examples/router/routes.js | 11 +++++++++++ examples/views/docs/component/select.md | 461 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ packages/scheme/index.vue | 2 +- packages/select/index.vue | 269 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 742 insertions(+), 1 deletion(-) create mode 100644 examples/views/docs/component/select.md create mode 100644 packages/select/index.vue diff --git a/examples/router/routes.js b/examples/router/routes.js index 11793c8..3fdcbdc 100644 --- a/examples/router/routes.js +++ b/examples/router/routes.js @@ -22,6 +22,17 @@ const _guides = [ const _components = [ { + group: '基础组件', + children: [ + { + path: 'select', + name: 'select', + meta: { title: 'Select 选择器' }, + component: () => import('@/views/docs/component/select.md'), + }, + ], + }, + { group: '业务组件', children: [ { diff --git a/examples/views/docs/component/select.md b/examples/views/docs/component/select.md new file mode 100644 index 0000000..e4d3695 --- /dev/null +++ b/examples/views/docs/component/select.md @@ -0,0 +1,461 @@ +# Select 选择器 + +可指定`url`或者`options`,生成远程加载或静态选择的选择器 + +## 基础用法 + +设置一个静态选择器 + +
+ +::: snippet `options`设置选择器选项 + +```html + + + +``` + +::: + +::: snippet 自定义选项 + +```html + + + + + +``` + +::: + +
+ +## 设置多选 + +支持多选 + +::: snippet `multiple`设置多选 + +```html + + + +``` + +::: + +## 绑定对象 + +可以直接以对象作为绑定值 + +
+ +::: snippet `raw`设置为原值模式,默认以`valueKey`为主键 + +```html + + + +``` + +::: + +::: snippet 支持多选 + +```html + + + +``` + +::: + +
+ +## 远程加载 + +可以通过设置`queryApi`自定义查询接口,也可以设置`url`及`http`进行内置格式的查询,其中`http`可在组件库全局配置 + +
+ +::: snippet `url`设置加载地址,`http`设置请求库 + +```html + + + +``` + +::: + +::: snippet `queryApi`自定义查询接口 + +```html + + + +``` + +::: + +
+ +
+ +::: snippet `auto`设置自动加载一次数据 + +```html + + + +``` + +::: + +::: snippet `update`设置每次打开下拉框都保持最新数据 + +```html + + + +``` + +::: + +
+ +
+ +::: snippet 单选时,当前选中项不包含在远程数据源中,可以通过`options`设置默认选项 + +```html + + + +``` + +::: + +::: snippet 多选时,当前选中项不包含在远程数据源中,可以通过`options`设置默认选项 + +```html + + + +``` + +::: + +
+ +## API + +## Attribute 属性 + +参数|说明|类型|可选值|默认值 +-|-|-|-|- +value | 值 | String, Number, Boolean, Object, Array | - | - +placeholder | 占位符 | String | - | 请选择 +options | 选项列表 | Array | - | [] +labelFormat | 标签格式化 | Function | - | - +labelKey | 标签字段名 | String | - | name +valueKey | 值字段名 | String | - | code +searchKey | 搜索字段名 | String | - | query +size | 大小 | String | mini、small、large | mini +multiple | 多选 | Boolean | - | false +disabled | 禁用 | Boolean | - | false +clearable | 可清除 | Boolean | - | true +filterable | 可搜索 | Boolean | - | true +reserveKeyword | 保留当前的搜索关键词 | Boolean | - | true +selectProps | Element Select组件参数 | Object | - | - +raw | 是否绑定原始对象 | Boolean | - | false +url | 远程搜索URL | String | - | - +http | HTTP请求库 | Function | - | - +queryApi | 自定义接口 | Function | - | - +triggerSize | 触发远程搜索的字段长度 | Number | - | 0 +auto | 初始化时自动查询数据 | Boolean | - | false +update | 点开下拉框时更新数据 | Boolean | - | false + +## Events 事件 + +事件名称|说明|回调参数 +-|-|- +change | 改变选中 | 值,选中项数据 \ No newline at end of file diff --git a/packages/scheme/index.vue b/packages/scheme/index.vue index f861f49..65404f2 100644 --- a/packages/scheme/index.vue +++ b/packages/scheme/index.vue @@ -216,7 +216,7 @@ export default { auto: Boolean, realSelection: Boolean, url: String, // 请求地址 - http: [Function, Promise], // http库 + http: Function, // http库 alias: Object, // 别名配置 }, data() { diff --git a/packages/select/index.vue b/packages/select/index.vue new file mode 100644 index 0000000..e749c58 --- /dev/null +++ b/packages/select/index.vue @@ -0,0 +1,269 @@ + + + + + -- libgit2 0.21.0