张敏 a0dcec4dc5 [refactor] Field & Stepper 自定义组件改造 (#168)
* [refactor] Field & Stepper 自定义组件改造

* Field & Stepper remove componentId
2018-03-28 15:10:35 +08:00

72 lines
1.3 KiB
JavaScript

Component({
properties: {
size: String,
stepper: {
type: Number,
value: 1
},
min: {
type: Number,
value: 1
},
max: {
type: Number,
value: Infinity
},
step: {
type: Number,
value: 1
}
},
methods: {
handleZanStepperChange(e, type) {
const dataset = e.currentTarget.dataset;
const disabled = dataset.disabled;
const { step } = this.data;
let stepper = this.data.stepper;
if (disabled) return null;
if (type === 'minus') {
stepper -= step;
} else if (type === 'plus') {
stepper += step;
}
this.triggerEvent('change', stepper);
this.triggerEvent(type);
},
handleZanStepperMinus(e) {
this.handleZanStepperChange(e, 'minus');
},
handleZanStepperPlus(e) {
this.handleZanStepperChange( e, 'plus');
},
handleZanStepperBlur(e) {
const dataset = e.currentTarget.dataset;
let value = e.detail.value;
const { min, max } = this.data;
if (!value) {
setTimeout(() => {
this.triggerEvent('change', min);
}, 16);
return;
}
value = +value;
if (value > max) {
value = max;
} else if (value < min) {
value = min;
}
this.triggerEvent('change', value);
}
}
});