Quellcode durchsuchen

数字输入框修改

duy vor 2 Monaten
Ursprung
Commit
ee450970c6

+ 16 - 16
src/renderer/src/views/project/data/addAndEdit.vue

@@ -45,10 +45,10 @@
                                     <el-input v-model="baseForm.operationCompany" clearable placeholder="请输入" />
                                 </el-form-item>
                                 <el-form-item label="实际运营里程(公里):" prop="actualOperatingMileage">
-                                    <HcInputNumber1 v-model="baseForm.actualOperatingMileage" clearable placeholder="请输入" class="w-full" />
+                                    <HcInputNumberNum v-model="baseForm.actualOperatingMileage" clearable placeholder="请输入" class="w-full" />
                                 </el-form-item>
                                 <el-form-item label="车道数" prop="lane">
-                                    <HcInputNumber1 v-model="baseForm.lane" clearable placeholder="请输入" class="w-full" />
+                                    <HcInputNumberNum v-model="baseForm.lane" clearable placeholder="请输入" class="w-full" />
                                 </el-form-item>
                             </div>
                         </div>
@@ -80,7 +80,7 @@
                             <div class="jitems-center mt-1 w-full flex justify-between">
                                 <span class="text-gray">年度收入</span>
                                 <div class="ml-3 w-64 flex items-center whitespace-nowrap">
-                                    <HcInputNumber1 v-model="yearFuns[selectIndex].tollInflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
+                                    <HcInputNumberNum v-model="yearFuns[selectIndex].tollInflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
                                     <span class="ml-1 flex-shrink-0 font-900">万元</span>
                                 </div>
                             </div>
@@ -93,7 +93,7 @@
                             <div class="mt-1 w-full flex items-center justify-between">
                                 <span class="text-gray">年度收入</span>
                                 <div class="ml-3 w-64 flex items-center whitespace-nowrap">
-                                    <HcInputNumber1 v-model="yearFuns[selectIndex].otherInflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
+                                    <HcInputNumberNum v-model="yearFuns[selectIndex].otherInflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
                                     <span class="ml-1 flex-shrink-0 font-900">万元</span>
                                 </div>
                             </div>
@@ -112,7 +112,7 @@
                             <div class="jitems-center mt-1 w-full flex justify-between">
                                 <span class="text-gray">总投资</span>
                                 <div class="ml-3 w-64 flex items-center whitespace-nowrap">
-                                    <HcInputNumber1 v-model="yearFuns[selectIndex].constructInvestOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
+                                    <HcInputNumberNum v-model="yearFuns[selectIndex].constructInvestOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
                                     <span class="ml-1 flex-shrink-0 font-900">万元</span>
                                 </div>
                             </div>
@@ -136,7 +136,7 @@
                             <div class="mt-1 w-full flex items-center justify-between">
                                 <span class="text-gray">年度偿还</span>
                                 <div class="ml-3 w-64 flex items-center whitespace-nowrap">
-                                    <HcInputNumber1 v-model="yearFuns[selectIndex].borrowPrincipalOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
+                                    <HcInputNumberNum v-model="yearFuns[selectIndex].borrowPrincipalOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
                                     <span class="ml-1 flex-shrink-0 font-900">万元</span>
                                 </div>
                             </div>
@@ -150,7 +150,7 @@
                             <div class="jitems-center mt-1 w-full flex justify-between">
                                 <span class="text-gray">年度偿还</span>
                                 <div class="ml-3 w-64 flex items-center whitespace-nowrap">
-                                    <HcInputNumber1 v-model="yearFuns[selectIndex].borrowInterestOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
+                                    <HcInputNumberNum v-model="yearFuns[selectIndex].borrowInterestOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
                                     <span class="ml-1 flex-shrink-0 font-900">万元</span>
                                 </div>
                             </div>
@@ -166,35 +166,35 @@
                             <div class="mt-1 w-full flex items-center justify-between">
                                 <span class="text-gray">养护、小修费</span>
                                 <div class="ml-3 w-64 flex items-center whitespace-nowrap">
-                                    <HcInputNumber1 v-model="yearFuns[selectIndex].operateMaintainOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
+                                    <HcInputNumberNum v-model="yearFuns[selectIndex].operateMaintainOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
                                     <span class="ml-1 flex-shrink-0 font-900">万元</span>
                                 </div>
                             </div>
                             <div class="mt-1 w-full flex items-center justify-between">
                                 <span class="text-gray">大修费</span>
                                 <div class="ml-3 w-64 flex items-center whitespace-nowrap">
-                                    <HcInputNumber1 v-model="yearFuns[selectIndex].operateOverhaulOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
+                                    <HcInputNumberNum v-model="yearFuns[selectIndex].operateOverhaulOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
                                     <span class="ml-1 flex-shrink-0 font-900">万元</span>
                                 </div>
                             </div>
                             <div class="mt-1 w-full flex items-center justify-between">
                                 <span class="text-gray">资本性支出</span>
                                 <div class="ml-3 w-64 flex items-center whitespace-nowrap">
-                                    <HcInputNumber1 v-model="yearFuns[selectIndex].operateCapitalOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
+                                    <HcInputNumberNum v-model="yearFuns[selectIndex].operateCapitalOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
                                     <span class="ml-1 flex-shrink-0 font-900">万元</span>
                                 </div>
                             </div>
                             <div class="mt-1 w-full flex items-center justify-between">
                                 <span class="text-gray">运营管理费</span>
                                 <div class="ml-3 w-64 flex items-center whitespace-nowrap">
-                                    <HcInputNumber1 v-model="yearFuns[selectIndex].operateOperationOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
+                                    <HcInputNumberNum v-model="yearFuns[selectIndex].operateOperationOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
                                     <span class="ml-1 flex-shrink-0 font-900">万元</span>
                                 </div>
                             </div>
                             <div class="mt-1 w-full flex items-center justify-between">
                                 <span class="text-gray">其他费用</span>
                                 <div class="ml-3 w-64 flex items-center whitespace-nowrap">
-                                    <HcInputNumber1 v-model="yearFuns[selectIndex].operateOtherOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
+                                    <HcInputNumberNum v-model="yearFuns[selectIndex].operateOtherOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
                                     <span class="ml-1 flex-shrink-0 font-900">万元</span>
                                 </div>
                             </div>
@@ -207,7 +207,7 @@
                             <div class="mt-1 w-full flex items-center justify-between">
                                 <span class="text-gray">年度税金</span>
                                 <div class="ml-3 w-64 flex items-center whitespace-nowrap">
-                                    <HcInputNumber1 v-model="yearFuns[selectIndex].operationTaxesOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
+                                    <HcInputNumberNum v-model="yearFuns[selectIndex].operationTaxesOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
                                     <span class="ml-1 flex-shrink-0 font-900">万元</span>
                                 </div>
                             </div>
@@ -221,7 +221,7 @@
                             <div class="jitems-center mt-1 w-full flex justify-between">
                                 <span class="text-gray">年度费用</span>
                                 <div class="ml-3 w-64 flex items-center whitespace-nowrap">
-                                    <HcInputNumber1 v-model="yearFuns[selectIndex].otherOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
+                                    <HcInputNumberNum v-model="yearFuns[selectIndex].otherOutflow" clearable placeholder="请输入" :disabled="data?.isView" class="w-full" />
                                     <span class="ml-1 flex-shrink-0 font-900">万元</span>
                                 </div>
                             </div>
@@ -250,7 +250,7 @@
                             <div class="jitems-center mt-1 w-full flex justify-between">
                                 <span class="text-gray">车流量</span>
                                 <div class="ml-3 w-64 flex items-center">
-                                    <HcInputNumber1 
+                                    <HcInputNumberNum 
                                         v-model="carList[carSelectIndex].numbers[index]" 
                                         clearable 
                                         placeholder="请输入" 
@@ -283,7 +283,7 @@ import { getDictionaryData } from '~src/utils/tools'
 import { arrIndex, formValidate, getArrValue } from 'js-fast-way'
 import projectApi from '~api/promanage/project'
 import { getDictionary } from '~api/dictbiz.js'
-import HcInputNumber1 from './input-number.vue'
+import HcInputNumberNum from './input-number.vue'
 import BigNumber from 'bignumber.js'
 const props = defineProps({
     data: {

+ 19 - 8
src/renderer/src/views/project/data/input-number.vue

@@ -1,5 +1,9 @@
 <template>
-    <el-input-number v-model="warningValue" :min="0" class="w-46px" :controls="false" @blur="inputBlur" />
+    <el-input-number
+        v-model="warningValue" :min="0" class="w-46px" :controls="false" :step="0.01"
+        @input="handleInput"
+        @blur="inputBlur"
+    />
 </template>
 
 <script setup>
@@ -22,13 +26,20 @@ watch(() => modelValue.value, (val) => {
     warningValue.value = isNullES(val) ? null : Number(val)
 }, { deep: true, immediate:true })
 
-//输入内容改变
+
+const handleInput = (val) => {
+    if (val === null || val === '') return
+    // 允许输入多个小数位,不做处理
+    warningValue.value = val
+    modelValue.value = Number(val) // 确保传递给modelValue的是数字类型
+}
+
+//失去焦点时处理小数位数
 const inputBlur = () => {
-    const roundedValue = Math.round(warningValue.value * 100) / 100
-    
-    modelValue.value = roundedValue
- 
-    
-    
+    if (warningValue.value === null || warningValue.value === '') return
+    const roundedValue = Number(warningValue.value).toFixed(2)
+    warningValue.value = Number(roundedValue)
+    // modelValue.value = roundedValue
+    modelValue.value = Number(roundedValue) // 确保传递给modelValue的是数字类型
 }
 </script>