From 7f6d7a24dda66f2177b2ed86acd3bf0b22982605 Mon Sep 17 00:00:00 2001 From: cookfront Date: Tue, 28 Feb 2017 11:55:18 +0800 Subject: [PATCH 1/3] fix popup --- docs/index.js | 2 ++ src/mixins/popup/index.js | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/index.js b/docs/index.js index 8ee82377f..23b8c79ec 100644 --- a/docs/index.js +++ b/docs/index.js @@ -9,6 +9,8 @@ import ZanUI from '../src/index'; import '../packages/zanui-css/src/index.css'; +import { Dialog } from '../src/index'; +console.log(Dialog); Vue.use(ZanUI); Vue.use(VueRouter); Vue.component('side-nav', SideNav); diff --git a/src/mixins/popup/index.js b/src/mixins/popup/index.js index 91d86fed0..7e929d251 100644 --- a/src/mixins/popup/index.js +++ b/src/mixins/popup/index.js @@ -85,7 +85,6 @@ export default { const dom = getDOM(this.$el); const props = merge({}, this, options); - const overlay = props.overlay; const zIndex = props.zIndex; // 如果属性中传入了`zIndex`,则覆盖`PopupManager`中对应的`zIndex` @@ -94,7 +93,7 @@ export default { } // 如果显示遮罩层 - if (overlay) { + if (this.overlay) { if (this.closing) { PopupManager.closeModal(this._popupId); this.closing = false; @@ -102,7 +101,7 @@ export default { PopupManager.openModal(this._popupId, PopupManager.nextZIndex(), dom); // 如果滚动时需要锁定 - if (props.lockOnScroll) { + if (this.lockOnScroll) { // 将原来的`bodyOverflow`存起来 if (!this.bodyOverflow) { this.bodyOverflow = document.body.style.overflow; From 5de064caf4eccb073ef0810453bfb3886e5693fa Mon Sep 17 00:00:00 2001 From: cookfront Date: Tue, 28 Feb 2017 15:13:57 +0800 Subject: [PATCH 2/3] radio component --- docs/examples-docs/radio.md | 4 +-- docs/examples/dialog.vue | 3 +- docs/examples/radio.vue | 27 ++++++++++++++++ docs/index.js | 6 ---- packages/radio/src/radio-group.vue | 9 +++++- packages/radio/src/radio.vue | 50 +++++++++++++++++++++--------- 6 files changed, 73 insertions(+), 26 deletions(-) create mode 100644 docs/examples/radio.vue diff --git a/docs/examples-docs/radio.md b/docs/examples-docs/radio.md index 3d99958c0..cf62937f7 100644 --- a/docs/examples-docs/radio.md +++ b/docs/examples-docs/radio.md @@ -12,11 +12,9 @@ export default { ### 基础用法 -:::demo ```html - +单选框 ``` -::: ### API diff --git a/docs/examples/dialog.vue b/docs/examples/dialog.vue index dd6a8b30d..c17c07476 100644 --- a/docs/examples/dialog.vue +++ b/docs/examples/dialog.vue @@ -14,7 +14,8 @@ diff --git a/docs/index.js b/docs/index.js index 23b8c79ec..dee3b3d5b 100644 --- a/docs/index.js +++ b/docs/index.js @@ -5,13 +5,7 @@ import navConfig from './nav.config.json'; import routes from './router.config'; import SideNav from './components/side-nav'; import Mobile from './components/mobile'; -import ZanUI from '../src/index'; -import '../packages/zanui-css/src/index.css'; - -import { Dialog } from '../src/index'; -console.log(Dialog); -Vue.use(ZanUI); Vue.use(VueRouter); Vue.component('side-nav', SideNav); Vue.component('mobile', Mobile); diff --git a/packages/radio/src/radio-group.vue b/packages/radio/src/radio-group.vue index 157922b3b..6e6b774c6 100644 --- a/packages/radio/src/radio-group.vue +++ b/packages/radio/src/radio-group.vue @@ -9,7 +9,14 @@ export default { name: 'z-radio-group', props: { - value: [String, Number] + value: {}, + disabled: Boolean + }, + + watch: { + value(value) { + this.$emit('change', value); + } } }; diff --git a/packages/radio/src/radio.vue b/packages/radio/src/radio.vue index e51e1db7c..503d1298a 100644 --- a/packages/radio/src/radio.vue +++ b/packages/radio/src/radio.vue @@ -2,10 +2,15 @@
- + @@ -21,35 +26,50 @@ export default { props: { disabled: Boolean, value: {}, - parentGroup: null + name: [String, Number] }, computed: { isGroup() { - let parent = this.$parent; - while (parent) { - if (parent.$options.name === 'z-radio-group') { - this.parentGroup = parent; - return true; - } else { - parent = parent.$parent; - } - } - return false; + return !!this.findRadioGroup() }, - model: { + currentValue: { get() { return this.isGroup ? this.parentGroup.value : this.value; }, set(val) { if (this.isGroup) { - + this.parentGroup.$emit('input', val); } else { this.$emit('input', val); } } + }, + + isDisabled() { + return this.isGroup + ? this.parentGroup.disabled || this.disabled + : this.disabled; + } + }, + + methods: { + findRadioGroup() { + if (this.parentGroup) return; + + let parent = this.$parent; + while (parent) { + if (parent.$options.name === 'z-radio-group') { + this.parentGroup = parent; + break; + } else { + parent = parent.$parent; + } + } + + return this.parentGroup; } } }; From f2260deaa347996bbe93afa4c95cd2efcf7bb1f3 Mon Sep 17 00:00:00 2001 From: cookfront Date: Tue, 28 Feb 2017 16:32:26 +0800 Subject: [PATCH 3/3] radio component --- docs/examples-docs/radio.md | 58 ++++++++++++++++++++++++++++++-- docs/examples/radio.vue | 28 ++++++++++----- packages/radio/src/radio.vue | 6 +++- packages/zanui-css/src/radio.css | 41 ++++++++++++++++++++++ 4 files changed, 121 insertions(+), 12 deletions(-) diff --git a/docs/examples-docs/radio.md b/docs/examples-docs/radio.md index cf62937f7..665cfa7a0 100644 --- a/docs/examples-docs/radio.md +++ b/docs/examples-docs/radio.md @@ -13,10 +13,64 @@ export default { ### 基础用法 ```html -单选框 +单选框1 +单选框2 + + ``` -### API +### 禁用状态 + +```html +未选中禁用 +选中且禁用 + + +``` + +### radio组 + +```html + + 单选框1 + 单选框2 + + + +``` + +### Radio API + +| 参数 | 说明 | 类型 | 默认值 | 可选值 | +|-----------|-----------|-----------|-------------|-------------| +| disabled | 是否禁用单选框 | Boolean | false | | +| name | 根据这个来判断radio是否选中 | Boolean | false | | + +### RadioGroup API | 参数 | 说明 | 类型 | 默认值 | 可选值 | |-----------|-----------|-----------|-------------|-------------| diff --git a/docs/examples/radio.vue b/docs/examples/radio.vue index 50e2a92c8..e320960ec 100644 --- a/docs/examples/radio.vue +++ b/docs/examples/radio.vue @@ -1,9 +1,17 @@