WebApp【公共组件库】@前端(For Git Submodule)
Tevin
2021-11-16 040e2ccd2a26efd3b0bf65ddb400f9803ed52360
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>
@@ -51,12 +51,17 @@
        // 取值范围
        range: {
            type: Array,
            default: [0, 100],
            default: () => [0, 100],
        },
        // 步长
        step: {
            type: Number,
            default: 1,
        },
        // 奇偶修正 odd 奇数 / even 偶数
        correct: {
            type: String,
            default: '',
        },
        // 数值单位
        unit: {
@@ -68,11 +73,40 @@
        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)
                .find('.at-input__input')
                .find('.at-input__container')
                .prepend(this.$refs.number.$el);
        } else if (process.env.TARO_ENV === 'weapp') {
            $(this.$refs.input.$el)