Explorar o código

用料统计添加校验
可视化楼栋样式完善

付宇航 hai 1 ano
pai
achega
1590d5708c

+ 29 - 5
src/views/zdsz/enginee/material/material_statistics/index.vue

@@ -9,7 +9,7 @@
         </el-radio-group>
 <!--        <div class="topContain">-->
             <div style="width: 100%;height: 100%;display: flex;">
-              <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+              <el-form :model="queryParams" :rules="searchRules" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" class="searchForm">
                 <el-form-item label="行政区" prop="district">
                   <el-select v-model="queryParams.district" placeholder="请选择行政区" clearable
                              @change="queryParams.areaId = undefined;getAreaList(queryParams.district)"
@@ -24,7 +24,7 @@
                     />
                   </el-select>
                 </el-form-item>
-                <el-form-item label="小区名称" prop="areaId">
+                <el-form-item label="小区名称" prop="areaId" label-width="80px">
                   <el-select v-model="queryParams.areaId" filterable clearable placeholder="请选择小区">
                     <el-option
                       v-for="item in areaList"
@@ -58,7 +58,7 @@
                     </el-option>
                   </el-select>
                 </el-form-item>
-                <el-form-item label="工程周期" prop="enginCycle">
+                <el-form-item label="工程周期" prop="enginCycle" label-width="80px">
                   <el-select v-model="queryParams.enginCycle" filterable clearable placeholder="请选择规格"
                   >
                     <el-option
@@ -210,7 +210,18 @@ export default {
           },
           EnginMaterialQualityList:[],
           EnginSpecificationsList:[],
-            tableData: []
+          tableData: [],
+          searchRules:{
+              district: [
+                  {required: true, message: "行政区不能为空", trigger: ['change']}
+              ],
+              areaId: [
+                  {required: true, message: "小区不能为空", trigger: ['change']}
+              ],
+              enginCycle: [
+                  {required: true, message: "工程周期不能为空", trigger: ['change']}
+              ],
+          }
 
         }
     },
@@ -242,8 +253,15 @@ export default {
 
       /** 搜索按钮操作 */
       handleQuery() {
+        this.$refs.queryForm.validate(valid => {
+            if(valid){
+                // 校验 pass
+                this.getList();
+            } else {
+                this.$message.error('请填写必填项!')
+            }
+        })
         // this.queryParams = 1;
-        this.getList();
       },
       /** 重置按钮操作 */
       resetQuery() {
@@ -347,6 +365,12 @@ export default {
 </script>
 
 <style lang="scss" scoped>
+
+::v-deep .searchForm{
+  .el-input__inner{
+    width: 190px;
+  }
+}
 .tags-view-container{
     display: none;
 }

+ 23 - 5
src/views/zdsz/enginee/material/progres_statistics/progres_statistics.vue

@@ -9,7 +9,7 @@
           <el-radio-button label="3">可视化进度</el-radio-button>
         </el-radio-group>
         <div class="topContain">
-          <el-form :model="queryParams" ref="queryForm" size="small" :inline="true"  v-show="showSearch" label-width="68px">
+          <el-form :model="queryParams" ref="queryForm" :rules="searchRules" size="small" :inline="true"  v-show="showSearch" label-width="68px">
             <el-form-item label="行政区" prop="district">
               <el-select v-model="queryParams.district" placeholder="请选择行政区" clearable
                          @change="queryParams.areaId = undefined;getAreaList(queryParams.district)"
@@ -24,7 +24,7 @@
                 />
               </el-select>
             </el-form-item>
-            <el-form-item label="小区名称" prop="areaId">
+            <el-form-item label="小区名称" prop="areaId" label-width="80px">
               <el-select v-model="queryParams.areaId" filterable clearable placeholder="请选择小区">
                 <el-option
                   v-for="item in areaList"
@@ -34,7 +34,7 @@
                 </el-option>
               </el-select>
             </el-form-item>
-            <el-form-item label="工程周期" prop="enginCycle">
+            <el-form-item label="工程周期" prop="enginCycle" label-width="80px">
               <el-select v-model="queryParams.enginCycle" filterable clearable placeholder="请选择规格">
                 <el-option
                   v-for="dict in dict.type.engin_cycle"
@@ -127,7 +127,18 @@ export default {
             tableData: [
 
             ],
-            currentType:'管'
+            currentType:'管',
+            searchRules:{
+                district: [
+                    {required: true, message: "行政区不能为空", trigger: ['change']}
+                ],
+                areaId: [
+                    {required: true, message: "小区不能为空", trigger: ['change']}
+                ],
+                enginCycle: [
+                    {required: true, message: "工程周期不能为空", trigger: ['change']}
+                ],
+            }
         }
     },
   mounted() {
@@ -151,7 +162,14 @@ export default {
     },
     /** 搜索按钮操作 */
     handleQuery() {
-      this.getList();
+      this.$refs.queryForm.validate(valid => {
+          if(valid){
+              // 校验 pass
+              this.getList();
+          } else {
+              this.$message.error('请填写必填项!')
+          }
+      })
     },
     /** 重置按钮操作 */
     resetQuery() {

+ 46 - 16
src/views/zdsz/enginee/material/progres_visual/index.vue

@@ -15,10 +15,10 @@
           <el-radio-button label="3">可视化进度</el-radio-button>
         </el-radio-group>
         <div class="topContain">
-            <el-form :model="searchParam" ref="searchForm" class="searchForm">
+            <el-form :model="searchParam" ref="searchForm" class="searchForm" :rules="searchRules">
                 <el-form-item label="行政区" prop="district">
-                    <el-select v-model="info.district" placeholder="请选择行政区" clearable
-                            @change="searchParam.areaId = undefined;getAreaList(info.district)"
+                    <el-select v-model="searchParam.district" placeholder="请选择行政区" clearable
+                            @change="searchParam.areaId = undefined;getAreaList(searchParam.district)"
                             @clear="searchParam.areaId = undefined;areaList=[];
                             searchParam.buildingId = undefined;buildingList=[];
                             searchParam.unitId = undefined;unitList=[]">
@@ -30,7 +30,7 @@
                     />
                     </el-select>
                 </el-form-item>
-                <el-form-item label="小区名称" prop="areaId">
+                <el-form-item label="小区名称" prop="areaId" style="width: 218px;">
                     <el-select v-model="searchParam.areaId" filterable clearable placeholder="请选择小区"
                             @change="searchParam.buildingId = undefined;getBuildingList1(searchParam.areaId)"
                             @clear="searchParam.buildingId = undefined;buildingList=[];
@@ -66,7 +66,7 @@
                     ></el-option>
                     </el-select>
                 </el-form-item>
-                <el-form-item label="工程周期" prop="enginCycle">
+                <el-form-item label="工程周期" prop="enginCycle" style="width: 218px;">
                     <el-select
                         :disabled="title == '添加用料' "
                         v-model="searchParam.enginCycle"
@@ -151,13 +151,13 @@
         </div>
         <!-- 房间集合 -->
           <!-- 楼栋 or 单元 -->
-          <div style="min-width: 1618px;display: flex;overflow: hidden;overflow-x: scroll;">
+          <div style="min-width: 1618px;display: flex;overflow: hidden;overflow-x: scroll;align-items: end;">
             <div
                 v-for="(e,idx) in roomsInfo"
                 :key="idx"
                 class="buildingContain"
             >
-                <h2 style="text-align: center;">{{ e.unitName + '单元' }}</h2>
+                <h2 style="text-align: center;">{{ e.unitName }}</h2>
                 <!-- 楼层 -->
                 <div
                     v-for="(v,vdx) in e.roomStatusVoList"
@@ -200,7 +200,7 @@ export default {
     components:{
         ConstructionDetails
     },
-    dicts:['district','engin_cycle','new_built'],
+    dicts:['district','engin_cycle','new_built','old_renovation'],
     data(){
         return {
             currentMenu:3,   // 0:用料管理 1:进度统计 2:可视化进度
@@ -277,6 +277,7 @@ export default {
                 district: undefined,
             },
             searchParam:{
+                district: null,
                 enginCycle:null,
                 areaId: null,
                 buildingId: null,
@@ -287,6 +288,17 @@ export default {
             currentRoomId:null,
             currentEnginType:null,
             currentEnginClassification:'indoor_engin',
+            searchRules:{
+                district: [
+                    {required: true, message: "行政区不能为空", trigger: ['change']}
+                ],
+                areaId: [
+                    {required: true, message: "小区不能为空", trigger: ['change']}
+                ],
+                enginCycle: [
+                    {required: true, message: "工程周期不能为空", trigger: ['change']}
+                ],
+            }
         }
     },
     methods:{
@@ -294,6 +306,9 @@ export default {
             this.currentRoomId = e.roomId
             let dictValue
             // 拼接字典
+            console.log(e)
+            console.log(e.enginCycle)
+            console.log(this.dict.type[e.enginCycle])
             this.dict.type[e.enginCycle].forEach(v => {
                 if(v.label.includes('室内')){
                     this.currentEnginType = e.enginCycle
@@ -310,7 +325,9 @@ export default {
                     })
                 }
                 console.log(dict)
-                this.$refs.ConstructionDetails.open(dict)
+                setTimeout(() => {
+                    this.$refs.ConstructionDetails.open(dict)
+                })
             })
             this.status = 'read-only'
         },
@@ -335,13 +352,26 @@ export default {
         },
         // 查询进度
         searchCompletionInfo(){
-            getObtainRoomcCompletionInformationList(this.searchParam).then(res => {
-                let info = []
-                info = res.data
-                info.forEach(e => {
-                    e.roomStatusVoList = e.roomStatusVoList.reverse()
-                })
-                this.roomsInfo = info
+            this.$refs.searchForm.validate(valid => {
+                if(valid){
+                    // 校验 pass
+                    let params = {
+                        enginCycle:this.searchParam.enginCycle,
+                        areaId: this.searchParam.areaId,
+                        buildingId: this.searchParam.buildingId,
+                        unitId: this.searchParam.unitId,
+                    }
+                    getObtainRoomcCompletionInformationList(params).then(res => {
+                        let info = []
+                        info = res.data
+                        info.forEach(e => {
+                            e.roomStatusVoList = e.roomStatusVoList.reverse()
+                        })
+                        this.roomsInfo = info
+                    })
+                } else {
+                    this.$message.error('请填写必填项!')
+                }
             })
         },
         getAreaList(district) {

+ 1 - 1
src/views/zdsz/engineeringCivil/index.vue

@@ -1501,7 +1501,7 @@ export default {
     /** 导出按钮操作 */
     handleExport() {
       this.download('zdsz/engineeringCivil/export', {
-        ...this.queryParams
+        ...this.queryParams1
       }, `engineeringCivil_${new Date().getTime()}.xlsx`)
     }
   }