From c3f9ced46ecb712cd142f2a64083d35a113da549 Mon Sep 17 00:00:00 2001 From: niunai Date: Mon, 20 Mar 2017 21:59:28 +0800 Subject: [PATCH] add datetimepicker --- components.json | 3 +- docs/examples-docs/datetime-picker.md | 94 ++++++++ packages/datetime-picker/CHANGELOG.md | 8 + packages/datetime-picker/README.md | 26 +++ packages/datetime-picker/index.js | 3 + packages/datetime-picker/package.json | 10 + .../datetime-picker/src/datetime-picker.vue | 216 ++++++++++++++++++ packages/zanui-css/src/picker.css | 12 + src/index.js | 5 +- 9 files changed, 375 insertions(+), 2 deletions(-) create mode 100644 docs/examples-docs/datetime-picker.md create mode 100644 packages/datetime-picker/CHANGELOG.md create mode 100644 packages/datetime-picker/README.md create mode 100644 packages/datetime-picker/index.js create mode 100644 packages/datetime-picker/package.json create mode 100644 packages/datetime-picker/src/datetime-picker.vue diff --git a/components.json b/components.json index 30f219f4b..da3f772d4 100644 --- a/components.json +++ b/components.json @@ -34,5 +34,6 @@ "toast": "./packages/toast/index.js", "uploader": "./packages/uploader/index.js", "swipe": "./packages/swipe/index.js", - "swipe-item": "./packages/swipe-item/index.js" + "swipe-item": "./packages/swipe-item/index.js", + "datetime-picker": "./packages/datetime-picker/index.js" } diff --git a/docs/examples-docs/datetime-picker.md b/docs/examples-docs/datetime-picker.md new file mode 100644 index 000000000..f50a2543a --- /dev/null +++ b/docs/examples-docs/datetime-picker.md @@ -0,0 +1,94 @@ + + +## Picker组件 + +模仿iOS中的`UIPickerView`。 + +### 基础用法 + +:::demo 基础用法 +```html + + + + +``` +::: + + +### API + +| 参数 | 说明 | 类型 | 默认值 | 可选值 | +|-----------|-----------|-----------|-------------|-------------| +| visibileColumnCount | 每一列可见备选元素的个数 | Number | 5 | | +| itemHeight | 选中元素区高度 | Number | 44 | | +| columns | 对象数组,配置每一列显示的数据 | Array | | | +| showToolbar | 是否在组件顶部显示一个toolbar | Boolean | true | | + +### columns + +`API`中的`columns`为一个对象数组,数组中的每一个对象配置每一列,每一列有以下`key`: + +| key | 说明 | +|-----------|-----------| +| values | 列中对应的备选值 | +| defaultIndex | 初始选中值的索引,默认为0 | +| className | 为对应列添加特殊的`class` | + +### change事件 + +在`change`事件中,可以获取到`picker`实例,对`picker`进行相应的更新等操作: + +| 函数 | 说明 | +|-----------|-----------| +| getColumnValue(index) | 获取对应列中选中的值 | +| setColumnValue(index, value) | 设置对应列中选中的值 | +| getColumnValues(index) | 获取对应列中所有的备选值 | +| setColumnValues(index, values) | 设置对应列中所有的备选值 | +| getValues() | 获取所有列中被选中的值,返回一个数组 | +| setValues(values) | `values`为一个数组,设置所有列中被选中的值 | diff --git a/packages/datetime-picker/CHANGELOG.md b/packages/datetime-picker/CHANGELOG.md new file mode 100644 index 000000000..e88c472b3 --- /dev/null +++ b/packages/datetime-picker/CHANGELOG.md @@ -0,0 +1,8 @@ +## 0.0.2 (2017-01-20) + +* 改了bug A +* 加了功能B + +## 0.0.1 (2017-01-10) + +* 第一版 diff --git a/packages/datetime-picker/README.md b/packages/datetime-picker/README.md new file mode 100644 index 000000000..4c6172563 --- /dev/null +++ b/packages/datetime-picker/README.md @@ -0,0 +1,26 @@ +# @youzan/<%= name %> + +!!! 请在此处填写你的文档最简单描述 !!! + +[![version][version-image]][download-url] +[![download][download-image]][download-url] + +[version-image]: http://npm.qima-inc.com/badge/v/@youzan/<%= name %>.svg?style=flat-square +[download-image]: http://npm.qima-inc.com/badge/d/@youzan/<%= name %>.svg?style=flat-square +[download-url]: http://npm.qima-inc.com/package/@youzan/<%= name %> + +## Demo + +## Usage + +## API + +| 参数 | 说明 | 类型 | 默认值 | 可选值 | +|-----------|-----------|-----------|-------------|-------------| +| className | 自定义额外类名 | string | '' | '' | + + + + +## License +[MIT](https://opensource.org/licenses/MIT) diff --git a/packages/datetime-picker/index.js b/packages/datetime-picker/index.js new file mode 100644 index 000000000..c6ad7f9b3 --- /dev/null +++ b/packages/datetime-picker/index.js @@ -0,0 +1,3 @@ +import DateTimePicker from './src/datetime-picker'; + +export default DateTimePicker; diff --git a/packages/datetime-picker/package.json b/packages/datetime-picker/package.json new file mode 100644 index 000000000..e517e0566 --- /dev/null +++ b/packages/datetime-picker/package.json @@ -0,0 +1,10 @@ +{ + "name": "@youzan/zan-datetime-picker", + "version": "0.0.1", + "description": "datetime picker component", + "main": "./index.js", + "author": "niunai ", + "license": "MIT", + "devDependencies": {}, + "dependencies": {} +} diff --git a/packages/datetime-picker/src/datetime-picker.vue b/packages/datetime-picker/src/datetime-picker.vue new file mode 100644 index 000000000..5d36eb3cb --- /dev/null +++ b/packages/datetime-picker/src/datetime-picker.vue @@ -0,0 +1,216 @@ + + + diff --git a/packages/zanui-css/src/picker.css b/packages/zanui-css/src/picker.css index 0215ba9ab..45e5edecd 100644 --- a/packages/zanui-css/src/picker.css +++ b/packages/zanui-css/src/picker.css @@ -48,6 +48,18 @@ width: 33.333%; } } + + @m 4 { + .zan-picker-column { + width: 25%; + } + } + + @m 5 { + .zan-picker-column { + width: 20%; + } + } } } diff --git a/src/index.js b/src/index.js index 4e89c9f92..c6ab99de9 100644 --- a/src/index.js +++ b/src/index.js @@ -34,6 +34,7 @@ import Toast from '../packages/toast/index.js'; import Uploader from '../packages/uploader/index.js'; import Swipe from '../packages/swipe/index.js'; import SwipeItem from '../packages/swipe-item/index.js'; +import DatetimePicker from '../packages/datetime-picker/index.js'; const install = function(Vue) { if (install.installed) return; @@ -69,6 +70,7 @@ const install = function(Vue) { Vue.component(Uploader.name, Uploader); Vue.component(Swipe.name, Swipe); Vue.component(SwipeItem.name, SwipeItem); + Vue.component(DatetimePicker.name, DatetimePicker); }; // auto install @@ -114,5 +116,6 @@ module.exports = { Toast, Uploader, Swipe, - SwipeItem + SwipeItem, + DatetimePicker };