WebApp【公共组件库】@前端(For Git Submodule)
Tevin
2021-04-21 9842802a547a53ea8d82d65c2e7d0e1c3acbd888
数值增减组件增加奇偶修正功能
3 files modified
46 ■■■■ changed files
forms/datePicker/CDateRangeAction.vue 4 ●●●● patch | view | raw | blame | history
forms/datePicker/CDateTimeAction.vue 4 ●●●● patch | view | raw | blame | history
forms/numberStep/CNumberStep.vue 38 ●●●●● patch | view | raw | blame | history
forms/datePicker/CDateRangeAction.vue
@@ -28,7 +28,7 @@
                </view>
                <view class="date">
                    <picker
                        mode='date'
                        mode="date"
                        :value="startDate"
                        @change="evt => handleStartDateChange(evt.detail.value)"
                    >
@@ -41,7 +41,7 @@
                        </view>
                    </picker>
                    <picker
                        mode='date'
                        mode="date"
                        :value="endDate"
                        @change="evt => handleEndDateChange(evt.detail.value)"
                    >
forms/datePicker/CDateTimeAction.vue
@@ -33,7 +33,7 @@
                </view>
                <view class="date">
                    <picker
                        mode='date'
                        mode="date"
                        :value="date"
                        @change="evt => handleDateChange(evt.detail.value)"
                    >
@@ -46,7 +46,7 @@
                        </view>
                    </picker>
                    <picker
                        mode='time'
                        mode="time"
                        :value="time"
                        @change="evt => handleTimeChange(evt.detail.value)"
                    >
forms/numberStep/CNumberStep.vue
@@ -24,7 +24,7 @@
                :step="step"
                :width="120"
                :value="itemRes.formData[itemRes.name]"
                :onChange="evt=>itemRes.onChange(evt)"
                :onChange="evt=>handleChange(evt)"
            />
            <view class="c-number-step-unit">{{unit}}</view>
        </view>
@@ -58,6 +58,11 @@
            type: Number,
            default: 1,
        },
        // 奇偶修正 odd 奇数 / even 偶数
        correct: {
            type: String,
            default: '',
        },
        // 数值单位
        unit: {
            type: String,
@@ -68,7 +73,36 @@
        return {};
    },
    computed: {},
    methods: {},
    methods: {
        handleChange(val) {
            // 奇偶修正模式
            if (this.correct) {
                const lastValue = this.itemRes.formData[this.itemRes.name];
                let nextValue = val;
                if (
                    (this.correct === 'odd' && nextValue % 2 === 0) ||
                    (this.correct === 'even' && nextValue % 2 === 1)
                ) {
                    // 增加
                    if (lastValue < nextValue) {
                        nextValue++;
                    }
                    // 减小
                    else if (lastValue > nextValue) {
                        nextValue--;
                    }
                }
                // 范围
                nextValue = Math.max(nextValue, this.range[0]);
                nextValue = Math.min(nextValue, this.range[1]);
                this.itemRes.onChange(nextValue);
            }
            // 正常模式
            else {
                this.itemRes.onChange(val);
            }
        },
    },
    mounted() {
        if (process.env.TARO_ENV === 'h5') {
            $(this.$refs.input.$el)