Browse Source

change: indent计价step3表单自动计算触发逻辑调整.

peter 2 months ago
parent
commit
e28e3b4d69
1 changed files with 18 additions and 27 deletions
  1. 18 27
      src/pages/indent-manage/indent/components/calcPrice/index.vue

+ 18 - 27
src/pages/indent-manage/indent/components/calcPrice/index.vue

@@ -315,8 +315,7 @@
                     <el-input
                       v-model="form.tax"
                       :disabled="form.coo_certificate === 'on'"
-                      type="number"
-                      @blur="() => onForm3ItemChange(form, 'tax')"
+                      @input="() => onForm3ItemChange(form, 'tax')"
                     >
                       <template #append>%</template>
                     </el-input>
@@ -325,7 +324,6 @@
                     <el-input
                       v-model="form.tax_fee"
                       disabled
-                      type="number"
                     >
                       <template #append>AUD</template>
                     </el-input>
@@ -333,8 +331,7 @@
                   <el-form-item label="入口报关费用">
                     <el-input
                       v-model="form.gatt_tax_fee"
-                      type="number"
-                      @blur="() => onForm3ItemChange(form, 'gatt_tax_fee')"
+                      @input="() => onForm3ItemChange(form, 'gatt_tax_fee')"
                     >
                       <template #append>AUD</template>
                     </el-input>
@@ -342,8 +339,7 @@
                   <el-form-item label="验货费">
                     <el-input
                       v-model="form.review_cost"
-                      type="number"
-                      @blur="() => onForm3ItemChange(form, 'review_cost')"
+                      @input="() => onForm3ItemChange(form, 'review_cost')"
                     >
                       <template #append>AUD</template>
                     </el-input>
@@ -351,8 +347,7 @@
                   <el-form-item label="国内运费总价">
                     <el-input
                       v-model="form.cn_freight_cost"
-                      type="number"
-                      @blur="() => onForm3ItemChange(form, 'cn_freight_cost')"
+                      @input="() => onForm3ItemChange(form, 'cn_freight_cost')"
                     >
                       <template #append>RMB</template>
                     </el-input>
@@ -360,8 +355,7 @@
                   <el-form-item label="国外本土运费">
                     <el-input
                       v-model="form.local_freight_cost"
-                      type="number"
-                      @blur="
+                      @input="
                         () => onForm3ItemChange(form, 'local_freight_cost')
                       "
                     >
@@ -377,8 +371,7 @@
                   <el-form-item label="Set Up Cost">
                     <el-input
                       v-model="form.setup_cost"
-                      type="number"
-                      @blur="() => onForm3ItemChange(form, 'setup_cost')"
+                      @input="() => onForm3ItemChange(form, 'setup_cost')"
                     >
                       <template #append>AUD</template>
                     </el-input>
@@ -386,8 +379,7 @@
                   <el-form-item label="本地收费">
                     <el-input
                       v-model="form.add_freight_cost"
-                      type="number"
-                      @blur="() => onForm3ItemChange(form, 'add_freight_cost')"
+                      @input="() => onForm3ItemChange(form, 'add_freight_cost')"
                     >
                       <template #append>AUD</template>
                     </el-input>
@@ -395,8 +387,7 @@
                   <el-form-item label="售卖单价">
                     <el-input
                       v-model="form.sold_unit"
-                      type="number"
-                      @blur="() => onForm3ItemChange(form, 'sold_unit')"
+                      @input="() => onForm3ItemChange(form, 'sold_unit')"
                     >
                       <template #append>AUD</template>
                     </el-input>
@@ -405,7 +396,6 @@
                     <el-input
                       v-model="form.sold_price"
                       disabled
-                      type="number"
                     >
                       <template #append>AUD</template>
                     </el-input>
@@ -419,8 +409,7 @@
                   <el-form-item label="利润率">
                     <el-input
                       v-model="form.profit_margin"
-                      type="number"
-                      @blur="() => onForm3ItemChange(form, 'profit_margin')"
+                      @input="() => onForm3ItemChange(form, 'profit_margin')"
                     >
                       <template #append>%</template>
                     </el-input>
@@ -429,7 +418,6 @@
                     <el-input
                       v-model="form.profit"
                       disabled
-                      type="number"
                     >
                       <template #append>AUD</template>
                     </el-input>
@@ -1389,10 +1377,6 @@ let changeCOO = (form: any, value: any) => {
     onForm3ItemChange(form, 'tax')
   }
 }
-let convertIntoNumber = (value: string | number) => {
-  const result = Number(value)
-  return typeof result === 'number' ? result : 0
-}
 let calcTaxFee = (form: any) => {
   form.tax_fee = savePrecision(
     mathjs.chain(form.product_cost).multiply(form.tax).divide(100).done(),
@@ -1449,8 +1433,12 @@ let calcSoldPriceBySoldUnit = (form: any) => {
   )
 }
 let onForm3ItemChange = (form: any, key: string) => {
-  // form3 的项除了开关, 其他输入框变动首先将对应之转换为数字.
-  form[key] = convertIntoNumber(form[key])
+  let dotFlag = false
+  if (typeof form[key] === 'string' && /\.$/.test(form[key])) {
+    // 处理小数点
+    form[key] = form[key].replace(/\.$/, '')
+    dotFlag = true
+  }
 
   // 各输入框之间的输入值变动会有联动.
   // 注意, 各 case 里面的调用顺序有影响, 改动之前务必保证你理解当前在做什么.
@@ -1525,6 +1513,9 @@ let onForm3ItemChange = (form: any, key: string) => {
       // 默认不做任何处理
       break
   }
+  if (dotFlag) {
+    form[key] = form[key] + '.'
+  }
 }
 let openDTDDialog = (columnNum: number, rowNum: number) => {
   dtdData.value = {