Selaa lähdekoodia

去掉入住办理费用为0的校验

unknown 2 viikkoa sitten
vanhempi
commit
3d63e5ca8a

+ 16 - 6
src/views/elderly/apply/check-in/Check.vue

@@ -56,7 +56,8 @@ const validateForm = (dataForm: any): boolean => {
         message.error(`请选择月度固定项目${i + 1}的项目名称`)
         return false
       }
-      if (!item.actualAmount || item.actualAmount < 0) {
+      const actualAmountNum = Number(item.actualAmount)
+      if (item.actualAmount === '' || item.actualAmount === null || item.actualAmount === undefined || Number.isNaN(actualAmountNum) || actualAmountNum < 0) {
         message.error(`请输入月度固定项目${i + 1}的费用金额`)
         return false
       }
@@ -75,7 +76,8 @@ const validateForm = (dataForm: any): boolean => {
         message.error(`请选择一次性收费项目${i + 1}的项目名称`)
         return false
       }
-      if (!item.actualAmount || item.actualAmount < 0) {
+      const actualAmountNum2 = Number(item.actualAmount)
+      if (item.actualAmount === '' || item.actualAmount === null || item.actualAmount === undefined || Number.isNaN(actualAmountNum2) || actualAmountNum2 < 0) {
         message.error(`请输入一次性收费项目${i + 1}的费用金额`)
         return false
       }
@@ -94,10 +96,18 @@ const validateForm = (dataForm: any): boolean => {
         message.error(`请选择阶段收费项目${i + 1}的项目名称`)
         return false
       }
-      // 检查金额:优先检查 actualAmount,如果没有则检查 amount
-      const amount = item.actualAmount || item.amount
-      if (!amount || amount < 0) {
-        message.error(`请输入阶段收费项目${i + 1}的费用金额`)
+      // 检查金额:优先检查 actualAmount,如果没有则检查 amount,汇总到一个变量后统一校验
+      const amount = item.actualAmount !== undefined && item.actualAmount !== null && item.actualAmount !== '' ? item.actualAmount : item.amount
+      const amountNum = Number(amount)
+      const isValidAmount = amount !== '' && amount !== null && amount !== undefined && !Number.isNaN(amountNum) && amountNum >= 0
+      if (!isValidAmount) {
+        message.error(`请输入阶段收费项目${i + 1}的费用金额,金额不能小于0`)
+        return false
+      }
+      // 同时校验 totalAmount 也不能小于0
+      const totalAmountNum = Number(item.totalAmount)
+      if (Number.isNaN(totalAmountNum) || totalAmountNum < 0) {
+        message.error(`阶段收费项目${i + 1}的单项小计不能小于0`)
         return false
       }
       // 如果选中了分期,分期期数是必选的

+ 16 - 6
src/views/elderly/apply/check-in/ToLong.vue

@@ -56,7 +56,8 @@ const validateForm = (dataForm: any): boolean => {
         message.error(`请选择月度固定项目${i + 1}的项目名称`)
         return false
       }
-      if (!item.actualAmount || item.actualAmount < 0) {
+      const actualAmountNum = Number(item.actualAmount)
+      if (item.actualAmount === '' || item.actualAmount === null || item.actualAmount === undefined || Number.isNaN(actualAmountNum) || actualAmountNum < 0) {
         message.error(`请输入月度固定项目${i + 1}的费用金额`)
         return false
       }
@@ -75,7 +76,8 @@ const validateForm = (dataForm: any): boolean => {
         message.error(`请选择一次性收费项目${i + 1}的项目名称`)
         return false
       }
-      if (!item.actualAmount || item.actualAmount < 0) {
+      const actualAmountNum2 = Number(item.actualAmount)
+      if (item.actualAmount === '' || item.actualAmount === null || item.actualAmount === undefined || Number.isNaN(actualAmountNum2) || actualAmountNum2 < 0) {
         message.error(`请输入一次性收费项目${i + 1}的费用金额`)
         return false
       }
@@ -94,10 +96,18 @@ const validateForm = (dataForm: any): boolean => {
         message.error(`请选择阶段收费项目${i + 1}的项目名称`)
         return false
       }
-      // 检查金额:优先检查 actualAmount,如果没有则检查 amount
-      const amount = item.actualAmount || item.amount
-      if (!amount || amount < 0) {
-        message.error(`请输入阶段收费项目${i + 1}的费用金额`)
+      // 检查金额:优先检查 actualAmount,如果没有则检查 amount,汇总到一个变量后统一校验
+      const amount = item.actualAmount !== undefined && item.actualAmount !== null && item.actualAmount !== '' ? item.actualAmount : item.amount
+      const amountNum = Number(amount)
+      const isValidAmount = amount !== '' && amount !== null && amount !== undefined && !Number.isNaN(amountNum) && amountNum >= 0
+      if (!isValidAmount) {
+        message.error(`请输入阶段收费项目${i + 1}的费用金额,金额不能小于0`)
+        return false
+      }
+      // 同时校验 totalAmount 也不能小于0
+      const totalAmountNum = Number(item.totalAmount)
+      if (Number.isNaN(totalAmountNum) || totalAmountNum < 0) {
+        message.error(`阶段收费项目${i + 1}的单项小计不能小于0`)
         return false
       }
       // 如果选中了分期,分期期数是必选的