Browse Source

市政工程|工业工程 新增用料

刘浩男 1 year ago
parent
commit
e21426fc2c
2 changed files with 49 additions and 26 deletions
  1. 1 0
      package.json
  2. 48 26
      src/views/zdsz/engineeringIndustry/index.vue

+ 1 - 0
package.json

@@ -51,6 +51,7 @@
     "quill": "1.3.7",
     "screenfull": "5.0.2",
     "sortablejs": "1.10.2",
+    "uuid": "^9.0.1",
     "vue": "2.6.12",
     "vue-count-to": "1.0.13",
     "vue-cropper": "0.5.5",

+ 48 - 26
src/views/zdsz/engineeringIndustry/index.vue

@@ -215,10 +215,6 @@
             placeholder="请选择施工时间">
           </el-date-picker>
         </el-form-item>
-        <el-form-item label="施工人" prop="constructUser" v-if="form.id">
-          <el-input v-model="zEngineeringNodeBo.zEngineeringInfoBo.constructUser" placeholder="请填写施工人"
-                    maxlength="20" disabled></el-input>
-        </el-form-item>
         <el-row>
           <el-form-item label="照片" prop="zEngiineeringPhotoBoList" style="width: 100%;">
             <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
@@ -229,8 +225,8 @@
         <el-row v-for="(item, index) in zEngineeringMaterialBo" :key="index">
           <el-col :span="7">
             <el-form-item
-              :prop="`zEngineeringMaterialBo.${index}.materialQuality`"
-              :rules="{ required:true, validator: validateState, trigger: 'blur', index:index }"
+              :prop="`${item.id}.materialQuality`"
+              style="margin-left: 120px"
               label-width="auto"
               label="材质"
             >
@@ -247,8 +243,8 @@
           </el-col>
           <el-col :span="7">
             <el-form-item
-              :prop="`zEngineeringMaterialBo.${index}.specifications`"
-              :rules="{ required:true, validator: validateSize, trigger: 'change', index:index }"
+              :prop="`${item.id}.specifications`"
+              style="margin-left: 80px"
               label-width="auto"
               label="规格"
             >
@@ -264,8 +260,8 @@
           </el-col>
           <el-col :span="7">
             <el-form-item
-              :prop="`zEngineeringMaterialBo.${index}.number`"
-              :rules="{ required:true, validator: validateNumber, trigger: 'change', index:index }"
+              :prop="`${item.id}.number`"
+              style="margin-left: 40px"
               label-width="auto"
               label="数量"
             >
@@ -292,6 +288,7 @@
     <ConstructionDetails
       ref="ConstructionDetails"
       :currentCollapses="currentCollapses"
+      @updateNodeOption = "updateNodeOption"
     />
   </div>
 </template>
@@ -490,8 +487,9 @@ export default {
   },
   methods: {
     validateState(rule, value, callback) {
+      console.log(rule)
+      console.log(value)
       return new Promise((resolve, reject) => {
-
         if (value !== null && value !== undefined && value !== '' && value !== 0) {
           resolve(true)
         } else {
@@ -500,8 +498,10 @@ export default {
       })
     },
     validateSize(rule, value, callback) {
+      console.log(value)
       return new Promise((resolve, reject) => {
         const value = this.zEngineeringMaterialBo[rule.index].specifications
+        console.log(value)
         if (value !== null && value !== undefined && value !== '' && value !== 0) {
           resolve(true)
         } else {
@@ -510,6 +510,7 @@ export default {
       })
     },
     validateNumber(rule, value, callback) {
+      console.log(value)
       return new Promise((resolve, reject) => {
         const value = this.zEngineeringMaterialBo[rule.index].number
         // 至少有一个图片、一个用料信息、一个创建时间
@@ -520,6 +521,12 @@ export default {
         }
       })
     },
+    updateNodeOption(value){
+      UpdateEngineeIndustry(value).then(res => {
+        this.$modal.msgSuccess("修改成功");
+        this.getList();
+      })
+    },
     // 根据所选材质获取对应规格
     getEnginSpecificationsList(item, index) {
       this.zEngineeringMaterialBo[index].specifications = null
@@ -534,26 +541,40 @@ export default {
       putEngineeEngineeIndustry(id).then(response => {
         this.loading = false;
         this.form = response.data
-        this.zEngineeringNodeBo = response.data.zEngineeringNodeBoList[0]
-        this.zEngineeringNodeBo.zEngineeringInfoBo = response.data.zEngineeringNodeBoList[0].zEngineeringInfoBoList[0]
-        this.zEngineeringNodeBo.zEngineeringInfoBo.zEngiineeringPhotoBoList = response.data.zEngineeringNodeBoList[0].zEngineeringInfoBoList[0].zEngiineeringPhotoBoList
-        this.zEngineeringMaterialBo = response.data.zEngineeringNodeBoList[0].zEngineeringInfoBoList[0].zEngineeringMaterialBo
+        this.form.zEngineeringNodeBo = []
         this.nodeDetailVisible = true;
       });
     },
     updateMaterBo() {
       this.form.files = this.form.pics
-      console.log(this.form)
-      this.form.zEngineeringNodeBo = this.zEngineeringNodeBo
-      this.form.zEngineeringNodeBoList = []
-      this.$refs.nodeForm.validate(valid => {
+      this.form.zEngineeringNodeBo = []
+      if (this.zEngineeringMaterialBo.length > 0) {
+        let valid = true;
+        if (this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['materialQuality'] == '' || this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['materialQuality'] == null) {
+          valid = false;
+        }
+        if (this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['specifications'] == '' || this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['specifications'] == null) {
+          valid = false;
+        }
+        if (this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['number'] == '' || this.zEngineeringMaterialBo[this.zEngineeringMaterialBo.length - 1]['number'] == null) {
+          valid = false;
+        }
         if (valid) {
-          UpdateEngineeIndustry(this.form).then(res => {
-            this.nodeDetailVisible = false
-            this.$modal.msgSuccess("新增成功");
-          })
+          this.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo = this.zEngineeringMaterialBo
+          this.form.zEngineeringNodeBo = this.zEngineeringNodeBo
+          this.$refs.nodeForm.validate(valid => {
+            if (valid) {
+              EditEngineeEngineeIndustry(this.form).then(res => {
+                this.nodeDetailVisible = false
+                this.$modal.msgSuccess("新增成功");
+              })
+            }
+          });
+        } else {
+          this.$message.warning('完善信息!')
         }
-      });
+      }
+
     },
     //新增用料信息
     addzEngineeringMaterialBo() {
@@ -608,6 +629,7 @@ export default {
     },
     nodeCancel() {
       this.nodeDetailVisible = false
+      this.reset()
     },
     // 填写施工信息
     toNodeDetail() {
@@ -649,8 +671,8 @@ export default {
       }
       this.form.zEngineeringNodeBo = {}
       this.form.zEngineeringNodeBo.zEngineeringInfoBo = {}
-      this.form.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo = []
-      this.form.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo.push({
+      this.zEngineeringMaterialBo = []
+      this.zEngineeringMaterialBo.push({
         materialQuality: '', // 用料材质
         specifications: '', // 用料规格
         number: '' // 用料数量