74 lines
1.8 KiB
JavaScript
74 lines
1.8 KiB
JavaScript
import { VantComponent } from '../common/component';
|
|
VantComponent({
|
|
field: true,
|
|
classes: ['field-class', 'input-class', 'cancel-class'],
|
|
props: {
|
|
label: String,
|
|
focus: Boolean,
|
|
error: Boolean,
|
|
disabled: Boolean,
|
|
readonly: Boolean,
|
|
inputAlign: String,
|
|
showAction: Boolean,
|
|
useActionSlot: Boolean,
|
|
useLeftIconSlot: Boolean,
|
|
useRightIconSlot: Boolean,
|
|
leftIcon: {
|
|
type: String,
|
|
value: 'search'
|
|
},
|
|
rightIcon: String,
|
|
placeholder: String,
|
|
placeholderStyle: String,
|
|
actionText: {
|
|
type: String,
|
|
value: '取消'
|
|
},
|
|
background: {
|
|
type: String,
|
|
value: '#ffffff'
|
|
},
|
|
maxlength: {
|
|
type: Number,
|
|
value: -1
|
|
},
|
|
shape: {
|
|
type: String,
|
|
value: 'square'
|
|
},
|
|
clearable: {
|
|
type: Boolean,
|
|
value: true
|
|
}
|
|
},
|
|
methods: {
|
|
onChange(event) {
|
|
this.setData({ value: event.detail });
|
|
this.$emit('change', event.detail);
|
|
},
|
|
onCancel() {
|
|
/**
|
|
* 修复修改输入框值时,输入框失焦和赋值同时触发,赋值失效
|
|
* https://github.com/youzan/@vant/weapp/issues/1768
|
|
*/
|
|
setTimeout(() => {
|
|
this.setData({ value: '' });
|
|
this.$emit('cancel');
|
|
this.$emit('change', '');
|
|
}, 200);
|
|
},
|
|
onSearch() {
|
|
this.$emit('search', this.data.value);
|
|
},
|
|
onFocus() {
|
|
this.$emit('focus');
|
|
},
|
|
onBlur() {
|
|
this.$emit('blur');
|
|
},
|
|
onClear() {
|
|
this.$emit('clear');
|
|
},
|
|
}
|
|
});
|