From 86d7c3d0bd6f32b5acf492791db9b7b010ed48fe Mon Sep 17 00:00:00 2001 From: jiangruowei Date: Mon, 20 Mar 2017 17:20:30 +0800 Subject: [PATCH 01/15] feat: add autosize option --- docs/examples-docs/field.md | 16 +++++++++++++++ packages/field/src/field.vue | 35 ++++++++++++++++++++++++++++---- packages/zanui-css/src/field.css | 6 ++++++ 3 files changed, 53 insertions(+), 4 deletions(-) diff --git a/docs/examples-docs/field.md b/docs/examples-docs/field.md index a1d5556b0..0bcb5e04e 100644 --- a/docs/examples-docs/field.md +++ b/docs/examples-docs/field.md @@ -84,6 +84,19 @@ export default { ``` ::: + +### Autosize的输入框(仅支持textarea) + +传入`autosize`属性, 且将`rows`设为1。 + +:::demo 错误的输入框 +```html + + + +``` +::: + ### API | 参数 | 说明 | 类型 | 默认值 | 可选值 | @@ -96,4 +109,7 @@ export default { | error | 输入框是否有错误 | boolean | false | | | readonly | 输入框是否只读 | boolean | false | | | maxlength | 输入框maxlength | [String, Number] | '' | | +| rows | textarea rows | [String, Number] | '' | | +| cols | textarea cols | [String, Number] | '' | | +| autosize | 自动调整高度(仅支持textarea) | Boolean | false | true, false | diff --git a/packages/field/src/field.vue b/packages/field/src/field.vue index 911562faf..49ef58eee 100644 --- a/packages/field/src/field.vue +++ b/packages/field/src/field.vue @@ -8,16 +8,20 @@ 'zan-field--nolabel': !label, 'zan-field--disabled': disabled, 'zan-field--error': error, - 'zan-field--border': border + 'zan-field--border': border, + 'zan-field--autosize': autosize }"> + +## 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 }; From 09b4686860ad3ab67875ffd8d222c1905ca36cf6 Mon Sep 17 00:00:00 2001 From: cookfront Date: Mon, 20 Mar 2017 22:15:23 +0800 Subject: [PATCH 03/15] datetime picker --- packages/datetime-picker/src/datetime-picker.vue | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/datetime-picker/src/datetime-picker.vue b/packages/datetime-picker/src/datetime-picker.vue index 5d36eb3cb..22df23bfb 100644 --- a/packages/datetime-picker/src/datetime-picker.vue +++ b/packages/datetime-picker/src/datetime-picker.vue @@ -57,18 +57,24 @@ export default { data() { return { - + innerValue: this.val }; }, watch: { value(val) { this.innerValue = val; + }, + innerValue(val) { + console.log(val + '!!!'); + this.$emit('input', val); } }, computed: { ranges() { + console.log(this.innerValue + '!!'); + // return this.innerValue + '!!'; if (this.type === 'time') { return [ [this.minHour, this.maxHour], @@ -176,6 +182,7 @@ debugger this.$emit('confirm', this.innerValue); }, handlePickerChange(picker, values, index) { + console.log(this.innerValue); let value; if (this.type === 'time') { @@ -194,10 +201,9 @@ debugger } value = new Date(year, month - 1, date, hour, minute); } - debugger this.innerValue = value; - console.log(value); - this.$emit('input', value); + console.log(value, this.innerValue); + // this.$emit('input', value); } }, From 3782cf3edca731221b8e0ba58007eb3f2889adf6 Mon Sep 17 00:00:00 2001 From: cookfront Date: Tue, 21 Mar 2017 14:49:45 +0800 Subject: [PATCH 04/15] fix picker --- packages/datetime-picker/src/datetime-picker.vue | 1 - packages/picker/src/picker-column.vue | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/datetime-picker/src/datetime-picker.vue b/packages/datetime-picker/src/datetime-picker.vue index 22df23bfb..253888704 100644 --- a/packages/datetime-picker/src/datetime-picker.vue +++ b/packages/datetime-picker/src/datetime-picker.vue @@ -81,7 +81,6 @@ export default { [0, 59] ]; } -debugger const { maxYear, maxDate, maxMonth, maxHour, maxMinute } = this.getBoundary('max', this.innerValue); const { minYear, minDate, minMonth, minHour, minMinute } = this.getBoundary('min', this.innerValue); diff --git a/packages/picker/src/picker-column.vue b/packages/picker/src/picker-column.vue index a9b631dbf..636ca96c2 100644 --- a/packages/picker/src/picker-column.vue +++ b/packages/picker/src/picker-column.vue @@ -65,6 +65,9 @@ export default { }, watch: { + value(val) { + this.currentValue = val; + }, values(val) { this.currentValues = val; }, From 6280c694ae15df4ee1bed2040e35316fe36359ae Mon Sep 17 00:00:00 2001 From: cookfront Date: Tue, 21 Mar 2017 15:07:21 +0800 Subject: [PATCH 05/15] fix: toast message support html --- packages/toast/src/toast.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/toast/src/toast.vue b/packages/toast/src/toast.vue index 018d618de..d10498c5d 100644 --- a/packages/toast/src/toast.vue +++ b/packages/toast/src/toast.vue @@ -3,7 +3,7 @@
diff --git a/docs/assets/docs.css b/docs/assets/docs.css index 43a72f84d..0b812e40e 100644 --- a/docs/assets/docs.css +++ b/docs/assets/docs.css @@ -36,7 +36,7 @@ button, input, select, textarea { color: inherit; } -ul { +ul, ol { list-style: none; } @@ -65,3 +65,114 @@ ul { } } +.page-content { + box-sizing: border-box; + overflow: auto; + margin-left: 220px; + padding: 0 20px; + border-left: 1px solid #E5E5E5; + + section { + > h2 { + font-size: 36px; + color: #333; + margin: 20px 0; + line-height: 1.5; + } + + > h3 { + font-size: 30px; + color: #333; + margin: 23px 0; + } + + > p { + font-size: 14px; + line-height: 20px; + color: #666; + margin: 14px 0; + } + + > ul li, + > ol li { + color: #666; + line-height: 20px; + margin: 10px 0 10px 20px; + padding-left: 20px; + position: relative; + + &::before { + content: ''; + position: absolute; + width: 8px; + height: 8px; + box-sizing: border-box; + border: 2px solid #999; + border-radius: 50%; + top: 6px; + left: 0; + } + + li { + margin-left: 0; + } + } + } + + h2, h3, h4, h5 { + font-weight: normal; + color: #1f2f3d; + + &:hover a { + opacity: .4; + } + + a { + float: left; + margin-left: -20px; + opacity: 0; + cursor: pointer; + + &:hover { + opacity: .4; + } + } + } + + p > code, + .table code, + li > code { + background-color: #F2F2F2; + display: inline-block; + border: 1px solid #E5E5E5; + padding: 2px 4px; + color: #333; + margin: 0 3px; + } +} + +.table { + border-collapse: collapse; + width: 100%; + background-color: #fff; + color: #333; + font-size: 14px; + margin-bottom: 45px; + + th { + text-align: left; + border: 1px solid #E5E5E5; + background-color: #F2F2F2; + padding: 10px; + + &:first-child { + padding-left: 10px; + } + } + + td { + border: 1px solid #E5E5E5; + padding: 10px; + } +} + diff --git a/docs/components/side-nav.vue b/docs/components/side-nav.vue index 99ef043c0..eef949c18 100644 --- a/docs/components/side-nav.vue +++ b/docs/components/side-nav.vue @@ -93,7 +93,7 @@ export default { display: block; height: 40px; line-height: 40px; - font-size: 13px; + font-size: 14px; padding-left: 24px; &:hover { From 548bc6300bbbbee1dd6cfe953a1ffe01e445de9c Mon Sep 17 00:00:00 2001 From: cookfront Date: Wed, 22 Mar 2017 13:51:10 +0800 Subject: [PATCH 11/15] fix docs --- docs/assets/docs.css | 1 + docs/index.js | 7 +++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/assets/docs.css b/docs/assets/docs.css index 0b812e40e..abd7fdff6 100644 --- a/docs/assets/docs.css +++ b/docs/assets/docs.css @@ -96,6 +96,7 @@ ul, ol { > ul li, > ol li { color: #666; + font-size: 14px; line-height: 20px; margin: 10px 0 10px 20px; padding-left: 20px; diff --git a/docs/index.js b/docs/index.js index 587ad7d83..c4e8a454f 100644 --- a/docs/index.js +++ b/docs/index.js @@ -47,11 +47,10 @@ router.beforeEach((route, redirect, next) => { }); router.afterEach((route) => { - if (route.page !== '/') { - const sideNavHeight = document.querySelector('.side-nav').clientHeight; + if (route.path !== '/') { + const sideNavBox = document.querySelector('.side-nav'); const pageContentBox = document.querySelector('.page-content'); - const pageContentHeight = pageContentBox.clientHeight; - pageContentBox.style.height = Math.max(sideNavHeight, pageContentHeight) + 'px'; + pageContentBox.style.height = Math.max(sideNavBox && sideNavBox.clientHeight, pageContentBox && pageContentBox.clientHeight) + 'px'; } }); From b15140a8fc7f0ff30bad95135d84cee5ef3a03e7 Mon Sep 17 00:00:00 2001 From: cookfront Date: Wed, 22 Mar 2017 13:51:55 +0800 Subject: [PATCH 12/15] [build] 0.0.39 --- packages/zanui-css/package.json | 2 +- src/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/zanui-css/package.json b/packages/zanui-css/package.json index 95bd87b28..c8eda5348 100644 --- a/packages/zanui-css/package.json +++ b/packages/zanui-css/package.json @@ -1,6 +1,6 @@ { "name": "@youzan/zanui-css", - "version": "0.0.38", + "version": "0.0.39", "description": "zanui css.", "main": "lib/index.css", "style": "lib/index.css", diff --git a/src/index.js b/src/index.js index c6ab99de9..469d1b02d 100644 --- a/src/index.js +++ b/src/index.js @@ -80,7 +80,7 @@ if (typeof window !== 'undefined' && window.Vue) { module.exports = { install, - version: '0.0.38', + version: '0.0.39', Button, Switch, Field, From 79286072b9917a00381aef9f1c74290aeb329a42 Mon Sep 17 00:00:00 2001 From: cookfront Date: Wed, 22 Mar 2017 13:51:56 +0800 Subject: [PATCH 13/15] [release] 0.0.39 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4507cddc9..a71a8e726 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@youzan/zanui-vue", - "version": "0.0.38", + "version": "0.0.39", "description": "有赞vue wap组件库", "main": "lib/zanui.js", "style": "lib/zanui-css/index.css", From a955532901c71f540c4be5fb47f643ac9c8a500b Mon Sep 17 00:00:00 2001 From: cookfront Date: Wed, 22 Mar 2017 14:06:54 +0800 Subject: [PATCH 14/15] side nav --- docs/components/side-nav.vue | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/components/side-nav.vue b/docs/components/side-nav.vue index eef949c18..78996d7c8 100644 --- a/docs/components/side-nav.vue +++ b/docs/components/side-nav.vue @@ -58,7 +58,7 @@ export default { .side-nav { width: 220px; box-sizing: border-box; - padding: 40px 20px; + padding: 40px 0; float: left; background-color: #fff; @@ -83,9 +83,11 @@ export default { display: block; position: relative; transition: all .3s; + padding: 0 20px; &.active { color: #3388FF; + background-color: #F2F2F2; } } .nav-item { @@ -94,7 +96,7 @@ export default { height: 40px; line-height: 40px; font-size: 14px; - padding-left: 24px; + padding-left: 44px; &:hover { color: #3388FF; @@ -105,7 +107,7 @@ export default { .nav-group__title { font-size: 12px; color: #666; - padding-left: 8px; + padding-left: 28px; line-height: 26px; margin-top: 10px; } From 597d981f53e84d30e4061129cbde571b659352aa Mon Sep 17 00:00:00 2001 From: cookfront Date: Wed, 22 Mar 2017 14:47:07 +0800 Subject: [PATCH 15/15] fix docs anchor --- build/webpack.config.js | 2 +- docs/index.js | 2 +- examples.html | 2 +- index.html | 2 +- package.json | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/build/webpack.config.js b/build/webpack.config.js index 1d311de95..3d79653a2 100644 --- a/build/webpack.config.js +++ b/build/webpack.config.js @@ -29,7 +29,7 @@ module.exports = { }, output: { path: './docs/build/', - publicPath: 'docs/build/', + publicPath: '/docs/build/', filename: '[name].js' }, resolve: { diff --git a/docs/index.js b/docs/index.js index c4e8a454f..c07a71401 100644 --- a/docs/index.js +++ b/docs/index.js @@ -29,7 +29,7 @@ routesConfig.push({ }); const router = new VueRouter({ - mode: 'hash', + mode: 'history', base: __dirname, routes: routesConfig }); diff --git a/examples.html b/examples.html index 908ff24d3..d98f116de 100644 --- a/examples.html +++ b/examples.html @@ -11,6 +11,6 @@
- + diff --git a/index.html b/index.html index 5b0f386b1..eedf1af13 100644 --- a/index.html +++ b/index.html @@ -11,6 +11,6 @@ - + diff --git a/package.json b/package.json index a71a8e726..3dd778b59 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ ], "scripts": { "bootstrap": "npm i --registry=http://registry.npm.qima-inc.com", - "dev": "npm run build:file && webpack-dev-server --inline --hot --config build/webpack.config.js", + "dev": "npm run build:file && webpack-dev-server --inline --history-api-fallback --hot --config build/webpack.config.js", "build:file": "node build/bin/build-entry.js", "build:utils": "cross-env BABEL_ENV=utils babel src --out-dir lib --ignore src/index.js", "build:zanui-css": "gulp build --gulpfile packages/zanui-css/gulpfile.js && cp-cli packages/zanui-css/lib lib/zanui-css", @@ -141,7 +141,7 @@ "vue-template-compiler": "2.1.8", "vue-template-es2015-compiler": "^1.4.2", "webpack": "^2.2.1", - "webpack-dev-server": "^1.16.0", + "webpack-dev-server": "^1.16.3", "webpack-merge": "^2.0.0", "webpack-node-externals": "^1.5.4", "webpack-vendor-chunk-plugin": "^1.0.0"