浏览代码

添加用料节点动态禁用
基建工程用料材质规格可手填

付宇航 1 年之前
父节点
当前提交
110fda552a

+ 45 - 2
src/components/EnginNodeInfo/index.vue

@@ -73,7 +73,7 @@
           <div>默认的行内容</div>
         </template>
         <!-- 循环输出的行内容 -->
-        <el-col :span="7" v-show="materialComponList.includes('materialQuality')">
+        <el-col :span="7" v-show="materialComponList.includes('materialQuality')" v-if="enginType != '基建工程'">
           <el-form-item
             :prop="'zEngineeringMaterialBo.' + index + '.materialQuality'"
             label-width="50px"
@@ -92,7 +92,7 @@
             </el-select>
           </el-form-item>
         </el-col>
-        <el-col :span="7" v-show="materialComponList.includes('specifications')">
+        <el-col :span="7" v-show="materialComponList.includes('specifications')" v-if="enginType != '基建工程'">
           <el-form-item
             :prop="'zEngineeringMaterialBo.' + index + '.specifications'"
             label-width="50px"
@@ -111,6 +111,46 @@
             </el-select>
           </el-form-item>
         </el-col>
+        <!-- 基建 -->
+        <el-col :span="7" v-show="materialComponList.includes('materialQuality')" v-if="enginType == '基建工程'">
+          <el-form-item
+            :prop="'zEngineeringMaterialBo.' + index + '.materialQuality'"
+            label-width="50px"
+            label="材质"
+
+          >
+            <!--                  :rules="{required: true, message: '请输入材质', trigger: 'blur'}"-->
+            <!--                  <el-input v-model="item.materialQuality" placeholder="请输入材质" style="width: 100%"/>-->
+            <el-select v-model="item.materialQuality" placeholder="请选择材质" style="width: 100%" @change="getEnginSpecificationsList(item, index)" filterable="true" @blur="selectBlur(arguments,index,'materialQuality')">
+              <el-option
+                v-for="e in materialQualityList"
+                :key="e.id"
+                :label="e.name"
+                :value="e.id"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="7" v-show="materialComponList.includes('specifications')" v-if="enginType == '基建工程'">
+          <el-form-item
+            :prop="'zEngineeringMaterialBo.' + index + '.specifications'"
+            label-width="50px"
+            label="规格"
+
+          >
+            <!--                  :rules="{required: true, message: '请输入规格', trigger: 'blur'}"-->
+            <!--                  <el-input v-model="item.specifications" placeholder="请输入规格" style="width: 100%"/>-->
+            <el-select v-model="status == '修改' ? item.specificationsName : item.specifications" placeholder="请选择规格" style="width: 100%" filterable="true" @blur="selectBlur(arguments,index,'specifications')">
+              <el-option
+                v-for="e in specificationsList"
+                :key="e.id"
+                :label="e.name"
+                :value="e.id"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <!-- end -->
         <el-col :span="7" v-show="materialComponList.includes('number')">
           <el-form-item
             :prop="'zEngineeringMaterialBo.' + index + '.number'"
@@ -323,6 +363,9 @@ export default {
     // this.addMaterial()
   },
   methods:{
+    selectBlur(_,index,name) {
+      this.zEngineeringMaterialBo[index][name] = [...arguments][0][0].target.value
+    },
     // 收集节点信息
     infoCollection(){
       let result = null

+ 30 - 0
src/views/zdsz/engineeringCivil/index.vue

@@ -402,6 +402,7 @@
             <el-form-item label="环节">
               <el-checkbox-group v-model="currentCheckList">
                 <el-checkbox
+                  :disabled=enginNodeStatusExecuted(item)
                   :label="item.dictValue"
                   v-for="item in checkList"
                   :key="item"
@@ -1016,6 +1017,7 @@ export default {
 
       },
       currentEnginName: null,
+      currentCheckingEnginList:[]
     };
   },
   created() {
@@ -1029,6 +1031,14 @@ export default {
     }
   },
   methods: {
+    enginNodeStatusExecuted(item){
+      try {
+        let flag
+        if(this.currentCheckingEnginList.filter(e => e.label == item.dictValue)[0].status == '1') return true
+      } catch (error) {
+        return false
+      }
+    },
     checkingAllFormClosed(){
       this.$refs.checkingFormAll.resetFields()
     },
@@ -1170,6 +1180,25 @@ export default {
       const id = data.id || this.ids
       getEngineeringCivil(id).then(res => {
         this.loading = false;
+        this.currentCheckingEnginList = []
+        // 处理当前已审核通过的节点
+        try {
+          res.data.zEngineeringNodeBoList.forEach(e => {
+            let status
+            try {
+              status = e.zEngineeringInfoBoList[0].zEngineeringReviewBo.reviewStatus
+            } catch (error) {
+              status = '1'
+            }
+            this.currentCheckingEnginList.push({
+              label:e.type,
+              status
+            })
+          })
+        } catch (error) {
+          this.currentCheckingEnginList = []
+        }
+        console.log('as',this.currentCheckingEnginList)
         let newData = res.data
         // 手动调用行政区发生改变
         this.districtHasChanged(newData.district)
@@ -1182,6 +1211,7 @@ export default {
         this.currentCheckList = []
         getDicts(val).then(res => {
           this.checkList = res.data
+          console.log(this.checkList)
         })
 
         this.queryParams = newData

+ 3 - 2
src/views/zdsz/engineeringInfrastructure/index.vue

@@ -185,9 +185,10 @@
             maxlength="100"
             />
         </el-form-item>
-        <el-form-item label="环节" style="width: 100%;margin-left: 0;" v-if="title!=='修改基建工程'">
-          <el-checkbox-group v-model="currentCheckList" @change="console.log(currentCheckList)">
+        <el-form-item label="环节" prop="currentCheckList" style="width: 100%;margin-left: 0;" v-if="title!=='修改基建工程'">
+          <el-checkbox-group v-model="currentCheckList" @change="console.log(currentCheckList)" :rules="{required: true, message: '请输入材质', trigger: 'blur'}">
             <el-checkbox
+              :rules="{required: true, message: '请输入材质', trigger: 'blur'}"
               :label="item.label"
               v-for="item in checkList"
               :key="item.label"