浏览代码

修复步进器bug

xiaohaizhao 1 年之前
父节点
当前提交
630aeb6bc2
共有 1 个文件被更改,包括 21 次插入10 次删除
  1. 21 10
      control/modules/My_input.vue

+ 21 - 10
control/modules/My_input.vue

@@ -31,10 +31,14 @@
                     <view class="title u-line-1">
                         {{ item.funcname }}{{ item.params.unit || '' }}
                     </view>
-                    <u-number-box :asyncChange="true" :min="item.params.num_minvalue" :max="item.params.num_maxvalue"
-                        :step="item.params.num_step" v-model="value" :decimal-length="item.params.num_scale"
-                        @change="stepChange" @focus="stepFocus" @blur="stepBlue" inputWidth="100" />
-                    <!-- </view> -->
+                    <!-- if 和 else 是因为有时候decimal-length设置为0不能点击加减 -->
+                    <u-number-box v-if="item.params.num_scale" :asyncChange="true" v-model="value"
+                        :min="item.params.num_minvalue" :max="item.params.num_maxvalue" :step="item.params.num_step"
+                        :decimal-length="item.params.num_scale" @change="stepChange" @focus="stepFocus" @blur="stepBlue"
+                        inputWidth="100" />
+                    <u-number-box v-else :asyncChange="true" v-model="value" :min="item.params.num_minvalue"
+                        :max="item.params.num_maxvalue" :step="item.params.num_step" @change="stepChange" @focus="stepFocus"
+                        @blur="stepBlue" inputWidth="100" />
                     <view class="tips" v-if="item.paramValue">
                         <u-icon name="info-circle-fill" color="#E2201A" />
                         <text style="margin-left: 4px;">
@@ -146,6 +150,7 @@ export default {
             confirmText: '确定',
             loading: false,
             stepIsCalculate: false,
+            stagingMethod: null,
             isSlot: false,
             switchTips: ""
         }
@@ -211,8 +216,8 @@ export default {
                     if (item.paramValue) toBeUpdated = `查询到“${item.funcname}”有待更新记录,待更新值为“${item.paramValue}”`
                 } else if (item.inputType == "step") {
                     this.value = params.lastvalue;
-                    if (this.value > params.num_maxvalue) this.value = params.num_maxvalue;
-                    if (this.value < params.num_minvalue) this.value = params.num_minvalue;
+                    /* if (this.value > params.num_maxvalue) this.value = params.num_maxvalue;
+                    if (this.value < params.num_minvalue) this.value = params.num_minvalue; */
                     if (params.num_minvalue || params.num_maxvalue) tips += `输入范围:${params.num_minvalue || 0} ~ ${params.num_maxvalue || '∞'}`
                     if (params.num_scale) tips += ` 保留${params.num_scale}位小数`
                     if (params.num_step) tips += ` 增量${params.num_step || 0}`
@@ -244,9 +249,12 @@ export default {
             this.stepIsCalculate = true;
         },
         stepBlue(e) {
-            const { num_step, num_scale } = this.item.params;
+            const { num_step, num_scale, num_maxvalue, num_minvalue } = this.item.params;
             this.value = currency(currency(e.value, { increment: num_step, precision: num_scale }).format()).value;
+            if (this.value < num_minvalue) this.value = num_minvalue - 0;
+            if (this.value > num_maxvalue) this.value = num_maxvalue - 0;
             this.stepIsCalculate = false;
+            if (this.stagingMethod) this.confirm();
         },
         /* 时段修改 */
         changeT_T(e) {
@@ -265,12 +273,12 @@ export default {
             let item = this.item,
                 params = item.params,
                 value = "";
-            if (item.inputType == 'int') {
+            if (item.inputType == 'int' || item.inputType == 'step') {
                 value = this.value - 0;
                 if (value == 0) return this.submitBreak("还未输入值")
                 if (params.num_scale != 0) value = value.toFixed(params.num_scale)
-                if (params.num_minvalue && value > params.num_minvalue) return this.submitBreak("输入值小于最低范围")
-                if (params.num_maxvalue && value < params.num_maxvalue) return this.submitBreak("输入值大于最大范围")
+                if (params.num_minvalue && value < params.num_minvalue) return this.submitBreak("输入值小于最低范围")
+                if (params.num_maxvalue && value > params.num_maxvalue) return this.submitBreak("输入值大于最大范围")
             } else if (item.inputType == "switch") {
                 let paramValue = item.paramValue + "";
                 if (paramValue.length) {
@@ -302,11 +310,14 @@ export default {
             })
         },
         async submit(w_functionid, params) {
+            console.log("提交", w_functionid, params)
+            if (this.stepIsCalculate) return this.stagingMethod = true;
             this.loading = true;
             let res = await this.$Http.setControlItem(w_functionid, params)
             this.loading = false;
             if (res) {
                 this.show = false;
+                this.stepIsCalculate = null;
                 setTimeout(() => {
                     // this.item = null;
                 }, 200);