Browse Source

材料计量单修改

ZaiZai 1 year ago
parent
commit
b0e3c717ae
1 changed files with 59 additions and 54 deletions
  1. 59 54
      src/views/debit-pay/material/components/order/dataModal.vue

+ 59 - 54
src/views/debit-pay/material/components/order/dataModal.vue

@@ -30,23 +30,23 @@
                             </el-col>
                             <el-col :span="8">
                                 <el-form-item label="单价:" prop="price">
-                                    <el-input v-model="baseForm.price" @blur="handleBlur"/>
+                                    <el-input v-model="baseForm.price" @blur="handleBlur" />
                                 </el-form-item>
                             </el-col>
                             <el-col :span="8">
-                                <el-form-item label="数量:"  prop="meterAmount" >
-                                    <el-input v-model="baseForm.meterAmount" @blur="handleBlur" ></el-input>
+                                <el-form-item label="数量:" prop="meterAmount">
+                                    <el-input v-model="baseForm.meterAmount" @blur="handleBlur" />
                                 </el-form-item>
                             </el-col>
                             <el-col :span="8">
                                 <el-form-item label="计量金额:">
-                                    <el-input v-model="baseForm.meterMoney" disabled type='number'/>
+                                    <el-input v-model="baseForm.meterMoney" disabled type="number" />
                                 </el-form-item>
                             </el-col>
 
                             <el-col :span="8">
                                 <el-form-item label="合同规定预付款金额:">
-                                    <el-input v-model="baseForm.contractStatedMoney" disabled/>
+                                    <el-input v-model="baseForm.contractStatedMoney" disabled />
                                 </el-form-item>
                             </el-col>
 
@@ -236,15 +236,18 @@ const getTreeData = async ()=>{
     }
 }
 const treeItem = ref({})
-const treeClick = ({ node, data, keys })=>{
-    console.log(data.value?.materialName)
-    console.log(!treeItem.value?.clPrepaymentRatio)
-    if (data.value?.materialName && !treeItem.value?.clPrepaymentRatio) {
+const treeClick = ({ node, data })=>{
+    if (node.level <= 1) return
+    treeItem.value = data
+    const { materialName, clPrepaymentRatio } = getObjValue(data)
+    if (isNullES(materialName)) {
+        window.$message.warning('请联系管理员设置材料名称')
+        return
+    }
+    if (isNullES(clPrepaymentRatio)) {
         window.$message.warning('请联系管理员设置材料预付款百分比!')
         return
     }
-
-    treeItem.value = data
     baseForm.value.contractMaterialName = data.materialName
     handleBlur()
     //由于业务需求改变,不需要回显示 单价
@@ -261,12 +264,12 @@ const baseFormRules = {
         message: '请输入材料到场编号',
     },
     meterAmount:[
-        { required:true , message:'请输入数量',trigger:'blur'},
-        { pattern: /^[0-9.]*$/,message:'数量需为数字',trigger:'blur'}
+        { required:true, message:'请输入数量', trigger:'blur' },
+        { pattern: /^[0-9.]*$/, message:'数量需为数字', trigger:'blur' },
     ],
     price:[
-        { required:true , message:'请输入单价',trigger:'blur'},
-        { pattern: /^[0-9.]*$/,message:'单价需为数字',trigger:'blur'}
+        { required:true, message:'请输入单价', trigger:'blur' },
+        { pattern: /^[0-9.]*$/, message:'单价需为数字', trigger:'blur' },
     ],
     businessDate: {
         required: true,
@@ -288,17 +291,19 @@ const baseFormRules = {
 
 // 计算金额
 const handleBlur = async () => {
-    console.log(treeItem.value?.clPrepaymentRatio)
     if ( baseForm.value?.price && baseForm.value?.meterAmount ) {
         baseForm.value.meterMoney = Math.round(baseForm.value.price * baseForm.value.meterAmount)
-
-        if ( treeItem.value?.clPrepaymentRatio ) {
-            baseForm.value.contractStatedMoney = Math.round(baseForm.value.meterMoney * treeItem.value?.clPrepaymentRatio / 100)
-        } else {
-            baseForm.value.contractStatedMoney = 0
+        const { id, clPrepaymentRatio } = treeItem.value
+        if (isNullES(id)) {
             window.$message.warning('请先选择左侧节点')
             return
         }
+        if (isNullES(clPrepaymentRatio)) {
+            baseForm.value.contractStatedMoney = 0
+            window.$message.warning('请联系管理员设置材料预付款百分比!')
+        } else {
+            baseForm.value.contractStatedMoney = Math.round(baseForm.value.meterMoney * clPrepaymentRatio / 100)
+        }
     } else {
         baseForm.value.meterMoney = 0
         baseForm.value.contractStatedMoney = 0
@@ -307,54 +312,54 @@ const handleBlur = async () => {
 
 const modalSaving = ref(false)
 const modalSave = async () => {
-    if (!treeItem.value?.id && ids.value.length < 1) {
+    const { id, clPrepaymentRatio } = treeItem.value
+    if (isNullES(id)) {
         window.$message.warning('请先选择左侧节点')
         return
     }
+    if (isNullES(clPrepaymentRatio)) {
+        window.$message.warning('请联系管理员设置材料预付款百分比!')
+        return
+    }
     const res = await formValidate(baseFormRef.value)
-    if (res) {
-        key1Data.value.forEach((ele)=>{
+    if (!res) return
+    key1Data.value.forEach((ele)=>{
         if (ele.id === baseForm.value.meterPeriodId) {
-                baseForm.value.periodName = ele.periodName
-                baseForm.value.periodNumber = ele.periodNumber
-            }
-        })
-        modalSaving.value = true
-        if (ids.value.length < 1) {
-            const { error, code, msg } = await orderApi.add({
+            baseForm.value.periodName = ele.periodName
+            baseForm.value.periodNumber = ele.periodNumber
+        }
+    })
+    modalSaving.value = true
+    if (ids.value.length < 1) {
+        const { error, code, msg } = await orderApi.add({
             ...baseForm.value,
             contractId:contractId.value,
             contractMaterialId:treeItem.value?.id,
             projectId:projectId.value,
-            })
-            //判断状态
-            modalSaving.value = false
-            if (!error && code === 200) {
-                window?.$message?.success(msg)
-
-
-            } else {
-                window.$message.error(msg ?? '操作失败')
-            }
-        } else if (ids.value.length > 0) {
-            const { error, code, msg } = await orderApi.update({
+        })
+        //判断状态
+        modalSaving.value = false
+        if (!error && code === 200) {
+            window?.$message?.success(msg)
+        } else {
+            window.$message.error(msg ?? '操作失败')
+        }
+    } else if (ids.value.length > 0) {
+        const { error, code, msg } = await orderApi.update({
             ...baseForm.value,
             contractId:contractId.value,
             contractMaterialId:treeItem.value?.id,
             projectId:projectId.value,
-            })
-            //判断状态
-            modalSaving.value = false
-            if (!error && code === 200) {
-                window?.$message?.success(msg)
-
-
-            } else {
-                window.$message.error(msg ?? '操作失败')
-            }
+        })
+        //判断状态
+        modalSaving.value = false
+        if (!error && code === 200) {
+            window?.$message?.success(msg)
+        } else {
+            window.$message.error(msg ?? '操作失败')
         }
-        modalClose()
     }
+    modalClose()
 }
 
 // 文件全部上传完成