diff --git a/packages/address-list/test/__snapshots__/demo.spec.js.snap b/packages/address-list/test/__snapshots__/demo.spec.js.snap index c756b7704..1110e53a1 100644 --- a/packages/address-list/test/__snapshots__/demo.spec.js.snap +++ b/packages/address-list/test/__snapshots__/demo.spec.js.snap @@ -7,13 +7,13 @@ exports[`renders demo correctly 1`] = `
-
张三,13000000000
浙江省杭州市西湖区文三路 138 号东方通信大厦 7 楼 501 室
+
张三,13000000000
浙江省杭州市西湖区文三路 138 号东方通信大厦 7 楼 501 室
-
李四,1310000000
浙江省杭州市拱墅区莫干山路 50 号
+
李四,1310000000
浙江省杭州市拱墅区莫干山路 50 号
@@ -21,7 +21,7 @@ exports[`renders demo correctly 1`] = `
以下地址超出配送范围
-
王五,1320000000
浙江省杭州市滨江区江南大道 15 号
+
王五,1320000000
浙江省杭州市滨江区江南大道 15 号
diff --git a/packages/contact-card/test/__snapshots__/demo.spec.js.snap b/packages/contact-card/test/__snapshots__/demo.spec.js.snap index e2b29b9c2..cec6b9b2e 100644 --- a/packages/contact-card/test/__snapshots__/demo.spec.js.snap +++ b/packages/contact-card/test/__snapshots__/demo.spec.js.snap @@ -13,7 +13,7 @@ exports[`renders demo correctly 1`] = `
-
张三,13000000000
+
张三,13000000000
diff --git a/packages/radio/index.js b/packages/radio/index.js new file mode 100644 index 000000000..5e16175b1 --- /dev/null +++ b/packages/radio/index.js @@ -0,0 +1,77 @@ +import { use } from '../utils'; +import Icon from '../icon'; +import findParent from '../mixins/find-parent'; + +const [sfc, bem] = use('radio'); + +export default sfc({ + mixins: [findParent], + + props: { + name: null, + value: null, + disabled: Boolean, + checkedColor: String, + labelPosition: String, + labelDisabled: Boolean + }, + + computed: { + currentValue: { + get() { + return this.parent ? this.parent.value : this.value; + }, + + set(val) { + (this.parent || this).$emit('input', val); + } + }, + + isDisabled() { + return this.parent ? this.parent.disabled || this.disabled : this.disabled; + } + }, + + created() { + this.findParent('van-radio-group'); + }, + + methods: { + onClickLabel() { + if (!this.isDisabled && !this.labelDisabled) { + this.currentValue = this.name; + } + } + }, + + render(h) { + const checked = this.currentValue === this.name; + const { isDisabled, checkedColor } = this; + const iconStyle = checkedColor && checked && !isDisabled && { color: checkedColor }; + + return ( +
{ + this.$emit('click'); + }} + > + + + + + {this.$slots.default && ( + + {this.$slots.default} + + )} +
+ ); + } +}); diff --git a/packages/radio/index.vue b/packages/radio/index.vue deleted file mode 100644 index 1f6834f30..000000000 --- a/packages/radio/index.vue +++ /dev/null @@ -1,90 +0,0 @@ - - - diff --git a/packages/radio/test/__snapshots__/demo.spec.js.snap b/packages/radio/test/__snapshots__/demo.spec.js.snap index ebb115345..cfd5841db 100644 --- a/packages/radio/test/__snapshots__/demo.spec.js.snap +++ b/packages/radio/test/__snapshots__/demo.spec.js.snap @@ -4,18 +4,18 @@ exports[`renders demo correctly 1`] = `
-
单选框 1
-
单选框 2
+
单选框 1
+
单选框 2
-
单选框 1
-
单选框 2
+
单选框 1
+
单选框 2
-
+
单选框
@@ -25,17 +25,13 @@ exports[`renders demo correctly 1`] = `
单选框1
-
- -
+
单选框2
-
- -
+