[improvement] Area: jsx (#2446)

This commit is contained in:
neverland 2019-01-06 09:26:09 +08:00 committed by GitHub
parent f2a5c365de
commit d08c51b233
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 35 additions and 35 deletions

View File

@ -1,34 +1,12 @@
<template>
<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 createSfc from '../utils/create';
import Picker from '../picker';
import PickerMixin from '../mixins/picker';
export default create({
export default createSfc({
name: 'area',
mixins: [PickerMixin],
components: {
Picker
},
props: {
value: String,
areaList: {
@ -63,6 +41,13 @@ export default create({
displayColumns() {
return this.columns.slice(0, +this.columnsNum);
},
listeners() {
return {
...this.$listeners,
change: this.onChange
};
}
},
@ -198,6 +183,22 @@ export default create({
this.code = '';
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>

View File

@ -9,9 +9,15 @@ const firstOption = [
];
test('confirm & cancel event', async () => {
const onConfirm = jest.fn();
const onCancel = jest.fn();
const wrapper = mount(Area, {
propsData: {
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__cancel').trigger('click');
expect(wrapper.emitted('confirm')[0][0]).toEqual(firstOption);
expect(wrapper.emitted('cancel')[0][0]).toEqual(firstOption);
expect(onConfirm.mock.calls[0][0]).toEqual(firstOption);
expect(onCancel.mock.calls[0][0]).toEqual(firstOption);
});
test('watch areaList & code', async () => {

View File

@ -1,7 +1,4 @@
import createSfc from '../utils/create';
import createBem from '../utils/bem';
const bem = createBem('van-badge-group');
export default createSfc({
name: 'badge-group',
@ -26,10 +23,6 @@ export default createSfc({
},
render(h) {
return (
<div class={['van-hairline--top-bottom', bem()]}>
{this.$slots.default}
</div>
);
return <div class="van-hairline--top-bottom van-badge-group">{this.$slots.default}</div>;
}
});