mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
[improvement] Area: jsx (#2446)
This commit is contained in:
parent
f2a5c365de
commit
d08c51b233
@ -1,34 +1,12 @@
|
|||||||
<template>
|
import createSfc from '../utils/create';
|
||||||
<picker
|
|
||||||
ref="picker"
|
|
||||||
:class="b()"
|
|
||||||
show-toolbar
|
|
||||||
value-key="name"
|
|
||||||
:title="title"
|
|
||||||
:loading="loading"
|
|
||||||
:columns="displayColumns"
|
|
||||||
:item-height="itemHeight"
|
|
||||||
:visible-item-count="visibleItemCount"
|
|
||||||
@change="onChange"
|
|
||||||
@confirm="$emit('confirm', $event)"
|
|
||||||
@cancel="$emit('cancel', $event)"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import create from '../utils/create';
|
|
||||||
import Picker from '../picker';
|
import Picker from '../picker';
|
||||||
import PickerMixin from '../mixins/picker';
|
import PickerMixin from '../mixins/picker';
|
||||||
|
|
||||||
export default create({
|
export default createSfc({
|
||||||
name: 'area',
|
name: 'area',
|
||||||
|
|
||||||
mixins: [PickerMixin],
|
mixins: [PickerMixin],
|
||||||
|
|
||||||
components: {
|
|
||||||
Picker
|
|
||||||
},
|
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
value: String,
|
value: String,
|
||||||
areaList: {
|
areaList: {
|
||||||
@ -63,6 +41,13 @@ export default create({
|
|||||||
|
|
||||||
displayColumns() {
|
displayColumns() {
|
||||||
return this.columns.slice(0, +this.columnsNum);
|
return this.columns.slice(0, +this.columnsNum);
|
||||||
|
},
|
||||||
|
|
||||||
|
listeners() {
|
||||||
|
return {
|
||||||
|
...this.$listeners,
|
||||||
|
change: this.onChange
|
||||||
|
};
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -198,6 +183,22 @@ export default create({
|
|||||||
this.code = '';
|
this.code = '';
|
||||||
this.setValues();
|
this.setValues();
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
render(h) {
|
||||||
|
return (
|
||||||
|
<Picker
|
||||||
|
ref="picker"
|
||||||
|
class="van-area"
|
||||||
|
show-toolbar
|
||||||
|
value-key="name"
|
||||||
|
title={this.title}
|
||||||
|
loading={this.loading}
|
||||||
|
columns={this.displayColumns}
|
||||||
|
item-height={this.itemHeight}
|
||||||
|
visible-item-count={this.visibleItemCount}
|
||||||
|
{...{ on: this.listeners }}
|
||||||
|
/>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
|
@ -9,9 +9,15 @@ const firstOption = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
test('confirm & cancel event', async () => {
|
test('confirm & cancel event', async () => {
|
||||||
|
const onConfirm = jest.fn();
|
||||||
|
const onCancel = jest.fn();
|
||||||
const wrapper = mount(Area, {
|
const wrapper = mount(Area, {
|
||||||
propsData: {
|
propsData: {
|
||||||
areaList
|
areaList
|
||||||
|
},
|
||||||
|
listeners: {
|
||||||
|
confirm: onConfirm,
|
||||||
|
cancel: onCancel
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -20,8 +26,8 @@ test('confirm & cancel event', async () => {
|
|||||||
wrapper.find('.van-picker__confirm').trigger('click');
|
wrapper.find('.van-picker__confirm').trigger('click');
|
||||||
wrapper.find('.van-picker__cancel').trigger('click');
|
wrapper.find('.van-picker__cancel').trigger('click');
|
||||||
|
|
||||||
expect(wrapper.emitted('confirm')[0][0]).toEqual(firstOption);
|
expect(onConfirm.mock.calls[0][0]).toEqual(firstOption);
|
||||||
expect(wrapper.emitted('cancel')[0][0]).toEqual(firstOption);
|
expect(onCancel.mock.calls[0][0]).toEqual(firstOption);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('watch areaList & code', async () => {
|
test('watch areaList & code', async () => {
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
import createSfc from '../utils/create';
|
import createSfc from '../utils/create';
|
||||||
import createBem from '../utils/bem';
|
|
||||||
|
|
||||||
const bem = createBem('van-badge-group');
|
|
||||||
|
|
||||||
export default createSfc({
|
export default createSfc({
|
||||||
name: 'badge-group',
|
name: 'badge-group',
|
||||||
@ -26,10 +23,6 @@ export default createSfc({
|
|||||||
},
|
},
|
||||||
|
|
||||||
render(h) {
|
render(h) {
|
||||||
return (
|
return <div class="van-hairline--top-bottom van-badge-group">{this.$slots.default}</div>;
|
||||||
<div class={['van-hairline--top-bottom', bem()]}>
|
|
||||||
{this.$slots.default}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user