diff --git a/packages/address-list/Item.js b/packages/address-list/Item.js new file mode 100644 index 000000000..c5b31acf8 --- /dev/null +++ b/packages/address-list/Item.js @@ -0,0 +1,47 @@ +import { use } from '../utils'; +import Icon from '../icon'; +import Cell from '../cell'; +import Radio from '../radio'; + +const [sfc, bem] = use('address-item'); + +export default sfc({ + props: { + data: Object, + disabled: Boolean, + switchable: Boolean + }, + + methods: { + onSelect() { + if (this.switchable) { + this.$emit('select'); + } + } + }, + + render(h) { + const { data, disabled, switchable } = this; + return ( + + +
{`${data.name},${data.tel}`}
+
{data.address}
+
+ { + event.stopPropagation(); + this.$emit('edit'); + }} + /> +
+ ); + } +}); diff --git a/packages/address-list/Item.vue b/packages/address-list/Item.vue deleted file mode 100644 index 7aa65a5ac..000000000 --- a/packages/address-list/Item.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - diff --git a/packages/address-list/index.js b/packages/address-list/index.js new file mode 100644 index 000000000..d4135ab0f --- /dev/null +++ b/packages/address-list/index.js @@ -0,0 +1,63 @@ +import { use } from '../utils'; +import Button from '../button'; +import RadioGroup from '../radio-group'; +import AddressItem from './Item'; + +const [sfc, bem, t] = use('address-list'); + +export default sfc({ + props: { + list: Array, + disabledList: Array, + disabledText: String, + addButtonText: String, + value: [String, Number], + switchable: { + type: Boolean, + default: true + } + }, + + render(h) { + const getList = (list, disabled) => + list.map((item, index) => ( + { + this.$emit(disabled ? 'select-disabled' : 'select', item, index); + }} + onEdit={() => { + this.$emit(disabled ? 'edit-disabled' : 'edit', item, index); + }} + /> + )); + + const List = getList(this.list); + const DisabledList = getList(this.disabledList, true); + + return ( +
+ {this.$slots.top} + this.$emit('input', event)}> + {List} + + {this.disabledText &&
{this.disabledText}
} + {DisabledList} + {this.$slots.default} +
+ ); + } +}); diff --git a/packages/address-list/index.vue b/packages/address-list/index.vue deleted file mode 100644 index 1880a29b5..000000000 --- a/packages/address-list/index.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - diff --git a/packages/address-list/test/__snapshots__/demo.spec.js.snap b/packages/address-list/test/__snapshots__/demo.spec.js.snap index bbdcbc22f..7c7516b6a 100644 --- a/packages/address-list/test/__snapshots__/demo.spec.js.snap +++ b/packages/address-list/test/__snapshots__/demo.spec.js.snap @@ -5,39 +5,40 @@ exports[`renders demo correctly 1`] = `
-
-
- -
-
张三,13000000000
浙江省杭州市西湖区文三路 138 号东方通信大厦 7 楼 501 室
-
- - - -
-
- -
-
李四,1310000000
浙江省杭州市拱墅区莫干山路 50 号
-
- - - -
-
-
-
以下地址超出配送范围
-
-
+
-
王五,1320000000
浙江省杭州市滨江区江南大道 15 号
+
张三,13000000000
+
浙江省杭州市西湖区文三路 138 号东方通信大厦 7 楼 501 室
-
+
+ +
+
李四,1310000000
+
浙江省杭州市拱墅区莫干山路 50 号
+
+ + + +
+
+
以下地址超出配送范围
+
+ +
+
王五,1320000000
+
浙江省杭州市滨江区江南大道 15 号
+
+ + + +
+ +