浏览代码

用户添加用户类型

wangtong 1 年之前
父节点
当前提交
2bf71cb1ed
共有 1 个文件被更改,包括 450 次插入39 次删除
  1. 450 39
      src/views/zdsz/engineeringCivil/index.vue

+ 450 - 39
src/views/zdsz/engineeringCivil/index.vue

@@ -1,12 +1,12 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form :model="queryParams1" ref="queryForm" 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)"
-                   @clear="queryParams.areaId = undefined;areaList=[];
-                   queryParams.buildingId = undefined;buildingList=[];
-                   queryParams.unitId = undefined;unitList=[]">
+        <el-select v-model="queryParams1.district" placeholder="请选择行政区" clearable
+                   @change="queryParams1.areaId = undefined;getAreaList(queryParams1.district)"
+                   @clear="queryParams1.areaId = undefined;areaList=[];
+                   queryParams1.buildingId = undefined;buildingList=[];
+                   queryParams1.unitId = undefined;unitList=[]">
           <el-option
             v-for="dict in dict.type.district"
             :key="dict.value"
@@ -16,10 +16,10 @@
         </el-select>
       </el-form-item>
       <el-form-item label="小区名称" prop="areaId">
-        <el-select v-model="queryParams.areaId" filterable clearable placeholder="请选择小区"
-                   @change="queryParams.buildingId = undefined;getBuildingList(queryParams.areaId)"
-                   @clear="queryParams.buildingId = undefined;buildingList=[];
-                   queryParams.unitId = undefined;unitList=[]">
+        <el-select v-model="queryParams1.areaId" filterable clearable placeholder="请选择小区"
+                   @change="queryParams1.buildingId = undefined;getBuildingList1(queryParams1.areaId)"
+                   @clear="queryParams1.buildingId = undefined;buildingList=[];
+                   queryParams1.unitId = undefined;unitList=[]">
           <el-option
             v-for="item in areaList"
             :key="item.id"
@@ -29,9 +29,9 @@
         </el-select>
       </el-form-item>
       <el-form-item label="楼宇名称" prop="buildingId">
-        <el-select v-model="queryParams.buildingId" filterable clearable placeholder="请选择楼宇"
-                   @change="queryParams.unitId = undefined;getUnitList(queryParams.buildingId)"
-                   @clear="queryParams.unitId = undefined;unitList=[]"
+        <el-select v-model="queryParams1.buildingId" filterable clearable placeholder="请选择楼宇"
+                   @change="queryParams1.unitId = undefined;getUnitList1(queryParams1.buildingId)"
+                   @clear="queryParams1.unitId = undefined;unitList=[]"
         >
           <el-option
             v-for="item in buildingList"
@@ -42,7 +42,7 @@
         </el-select>
       </el-form-item>
       <el-form-item label="单元" prop="unitId">
-        <el-select v-model="queryParams.unitId" placeholder="请选择单元" filterable clearable>
+        <el-select v-model="queryParams1.unitId" placeholder="请选择单元" filterable clearable>
           <el-option
             v-for="obj in unitList"
             :key="obj.id"
@@ -156,36 +156,149 @@
     <pagination
       v-show="total>0"
       :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
+      :page.sync="queryParams1.pageNum"
+      :limit.sync="queryParams1.pageSize"
       @pagination="getList"
     />
-
+    <EngineePipe ref="enginPipe"/>
     <!-- 添加或修改民用工程对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+    <el-dialog :title="title" :visible.sync="open" append-to-body customClass="appendElDialog">
+      <el-form ref="form" :model="queryParams" :rules="rules" label-width="110px">
         <el-form-item label="行政区" prop="district">
-          <el-select v-model="form.district" placeholder="请选择行政区">
+          <el-select
+            v-model="queryParams.district"
+            placeholder="请选择行政区"
+            @change="districtHasChanged"
+          >
+            <el-option
+              v-for="e in dict.type.district"
+              :key="e.value"
+              :label="e.label"
+              :value="e.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="小区" prop="areaId">
+          <el-select
+            v-model="queryParams.areaId"
+            placeholder="请选择小区"
+            @change="communityHasChanged"
+          >
+            <el-option
+              v-for="e in communityOptions"
+              :key="e.id"
+              :label="e.name"
+              :value="e.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="楼栋" prop="buildingId">
+          <el-select
+            v-model="queryParams.buildingId"
+            placeholder="请选择楼栋"
+            @change="buildingHasChanged"
+          >
             <el-option
-              v-for="dict in dict.type.district"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
+              v-for="e in buildingOptions"
+              :key="e.id"
+              :label="e.name"
+              :value="e.id"
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="默认图片地址" prop="imgUrl">
-          <el-input v-model="form.imgUrl" placeholder="请输入默认图片地址"/>
+        <el-form-item label="单元" prop="unitId">
+          <el-select
+            v-model="queryParams.unitId"
+            placeholder="请选择单元"
+            @change="unitHasChanged"
+          >
+            <el-option
+              v-for="e in unitOptions"
+              :key="e.id"
+              :label="e.name"
+              :value="e.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="房间" prop="houseId">
+          <el-select
+            v-model="queryParams.houseId"
+            placeholder="请选择房间"
+          >
+            <el-option
+              v-for="e in houseOptions"
+              :key="e.id"
+              :label="e.name"
+              :value="e.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <!-- <el-form-item label="工程类型" prop="enginType">
+          <el-select
+              v-model="queryParams.enginType"
+              placeholder="请选择工程类型"
+              @change="enginTypeHasChanged"
+              >
+            <el-option
+              v-for="e in enginTypeOption"
+              :key="e.value"
+              :label="e.label"
+              :value="e.value"
+            ></el-option>
+          </el-select>
+        </el-form-item> -->
+        <el-form-item label="工程类型">
+          <el-cascader
+            v-model="value"
+            :options="options"
+            @change="currentEnginTypeChange">
+          </el-cascader>
+        </el-form-item>
+        <el-form-item label="工程节点">
+          <el-select
+            v-model="enginClassificationinfo"
+            placeholder="请选择工程节点"
+          >
+            <el-option
+              v-for="e in enginClassificationOption"
+              :key="e.value"
+              :label="e.label"
+              :value="e.value"
+            ></el-option>
+          </el-select>
         </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" placeholder="请输入备注"/>
+        <el-form-item label="工程周期" prop="enginCycle">
+          <el-select
+            v-model="queryParams.enginCycle"
+            placeholder="请填写工程周期"
+          >
+            <el-option
+              v-for="e in dict.type.engin_cycle"
+              :key="e.value"
+              :label="e.label"
+              :value="e.value"
+            ></el-option>
+          </el-select>
         </el-form-item>
+        <!-- <el-form-item label="备注" prop="remark">
+          <el-input
+            v-model="queryParams.remark"
+            type="textarea"
+            placeholder="请输入内容"
+            class="remark_input"
+            />
+        </el-form-item> -->
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
+        <!-- <el-button :loading="buttonLoading" type="primary" @click="submitForm">确定</el-button> -->
+        <el-button :loading="buttonLoading" type="primary" @click="toNodeDetail">填写节点信息</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+    <EngineeNode
+      ref="childNode"
+      @closeToSucceed="closeToSucceed"
+    />
   </div>
 </template>
 
@@ -197,15 +310,84 @@ import {
   addEngineeringCivil,
   updateEngineeringCivil
 } from "@/api/zdsz/engineeringCivil";
+import {
+  addEnginee,                                // 新增工程
+  getUnitList,                               // 获取当前单元集合
+  getHousesList,                             // 获取当前房间集合
+  putEngineeringCivil,                       // 民用工程修改
+  viewEngineeringCivil,                      // 民用工程查看详情
+  deleteEngineeringCivil,                    // 删除民用工程
+} from "@/api/zdsz/enginee"
 import {getAreaList} from "@/api/zdsz/area";
 import {getBuildingList} from "@/api/zdsz/building";
 import {getUnits} from "@/api/zdsz/unit";
-
+import EngineeNode from '@/components/EngineeNode/index'
+import EngineePipe from "@/components/EngineePipe"
 export default {
+  components:{
+    EngineeNode,
+    EngineePipe
+  },
+
   name: "EngineeringCivil",
-  dicts: ['district', 'engin_cycle'],
+  dicts: ['pass_check',
+    'is_repair',
+    'engin_type',
+    'self_closing_valve_type',
+    'visit_type','district',
+    'new_built_indoor_engin',
+    "old_renovation_indoor_engin",
+    "old_renovation_courtyard_engin",
+    "old_renovation_overhead",
+    "new_built_indoor_engin",
+    "new_built_courtyard_engin",
+    "new_built_overhead",
+    "engin_cycle"],
   data() {
     return {
+      enginClassificationinfo:'',
+      enginClassification:'',
+      enginClassificationOption:[],
+      options: [
+        {
+          value: 'old_renovation',
+          label: '旧改',
+          children: [
+            {
+              value: 'old_renovation_indoor_engin',
+              label: '室内',
+
+            },
+            {
+              value: 'old_renovation_courtyard_engin',
+              label: '庭院',
+            },
+            {
+              value: 'old_renovation_overhead',
+              label: '架空',
+            }
+          ]
+        },
+        {
+          value: 'new_built',
+          label: '新建',
+          children: [
+            {
+              value: 'new_built_indoor_engin',
+              label: '室内',
+
+            },
+            {
+              value: 'new_built_courtyard_engin',
+              label: '庭院',
+            },
+            {
+              value: 'new_built_overhead',
+              label: '架空',
+            }
+          ]
+        },
+      ],
       // 按钮loading
       buttonLoading: false,
       // 遮罩层
@@ -240,9 +422,57 @@ export default {
         enginCycle: undefined,
         completionStatus: undefined,
         imgUrl: undefined,
+        zEngineeringNodeBo: {
+          type: undefined,
+          zEngineeringInfoBo: {
+            constructAddre: undefined,        // 施工地址
+            constructPhone: undefined,        // 施工人电话
+            constructUser: undefined,         // 施工人
+            headName: undefined,              // 负责人
+            headPhone: undefined,             // 负责人电话
+            constructAccordingDrawings: undefined, // 是否按图纸施工
+            segmentedCompressionQualified: undefined, // 分段打压是否合格
+            selfClosingValveType: undefined,          // 自闭阀类型
+            visitType: undefined,                     // 上门类型
+            backfillTime: undefined,                  // 回填时间
+            constructTime: undefined,                  // 施工时间
+            zEngiineeringPhotoBoList: undefined,              // 图片列表
+            zEngineeringMaterialBo: undefined,// 用料对象,    //节点信息
+          }
+        }
+      },
+      queryParams1:{
+        pageNum: 1,
+        pageSize: 10,
+        district: undefined,
+        areaId: undefined,
+        buildingId: undefined,
+        unitId: undefined,
+        houseId: undefined,
+        enginType: undefined,
+        enginClassification: undefined,
+        enginCycle: undefined,
+        completionStatus: undefined,
+        imgUrl: undefined,
+      },
+      zEngineeringInfoBo:{
+        constructAddre:'',        // 施工地址
+        constructPhone:'',        // 施工人电话
+        constructUser:'',         // 施工人
+        headName:'',              // 负责人
+        headPhone:'',             // 负责人电话
+        constructAccordingDrawings:'', // 是否按图纸施工
+        segmentedCompressionQualified:'', // 分段打压是否合格
+        selfClosingValveType:'',          // 自闭阀类型
+        visitType:'',                     // 上门类型
+        backfillTime:'',                  // 回填时间
+        constructTime:'',                  // 施工时间
+        zEngiineeringPhotoBoList:[],              // 图片列表
+        zEngineeringMaterialBo:[],// 用料对象
       },
       // 表单参数
       form: {},
+      value: [],
       // 表单校验
       rules: {
         id: [
@@ -285,6 +515,16 @@ export default {
       areaList: [],
       buildingList: [],
       unitList: [],
+      currentDistrict:null,       // 当前行政区
+      currentCommunity:null,      // 当前小区
+      currentBuilding:null,       // 当前楼宇
+      currentUnit:null,           // 当前单元
+      communityOptions:[
+      ],
+      buildingOptions:[],         // 楼栋集合
+      unitOptions:[],             // 单元集合
+      houseOptions:[],            // 房间集合
+      enginClassification_list:[]// 室内节点
     };
   },
   created() {
@@ -293,17 +533,65 @@ export default {
   mounted() {
   },
   methods: {
+    currentEnginTypeChange(val){
+      const enginDict = val[1]
+      const enginType = val[0]
+      this.queryParams.enginType = enginType
+      this.enginClassification=enginDict
+      this.enginClassificationOption = this.dict.type[enginDict]
+      console.log(this.value)
+    },
+    // 当前所选行政区发生改变 查询当前小区集合
+    districtHasChanged(district){
+      this.queryParams.areaId = null
+      this.queryParams.buildingId = null
+      this.queryParams.unitId = null
+      getAreaList({district}).then(res => {
+        this.communityOptions = res.data
+      })
+    },
+    // 当前所选小区发生改变 查询当前楼栋集合
+    communityHasChanged(areaId){
+      this.queryParams.buildingId = null
+      this.queryParams.unitId = null
+      getBuildingList({areaId}).then(res => {
+        this.buildingOptions = res.data
+      })
+    },
+    buildingHasChanged(buildingId){
+      console.log(buildingId)
+      this.queryParams.unitId = null
+      getUnitList({buildingId}).then(res => {
+        this.unitOptions = res.data
+      })
+    },
+    unitHasChanged(unitId){
+      getHousesList({unitId}).then(res => {
+        console.log(res)
+        this.houseOptions = res.data
+      })
+    },
+    enginTypeHasChanged(val){
+      if(val == 'old_renovation'){
+
+      }else if(val == 'new_built'){
+
+      }
+    },
+    closeToSucceed(){
+      this.open = false;
+    },
     getAreaList(district) {
       if (district === undefined || district == null || district === '')
         return
       getAreaList({district: district}).then(res => this.areaList = res.data)
     },
-    getBuildingList(areaId) {
+    getBuildingList1(areaId) {
       if (areaId === undefined || areaId == null || areaId === '')
         return
       getBuildingList({areaId: areaId}).then(res => this.buildingList = res.data)
     },
-    getUnitList(buildingId) {
+    getUnitList1(buildingId) {
       if (buildingId === undefined || buildingId == null || buildingId === '')
         return
       getUnits(this.queryParams.areaId, buildingId).then(res => this.unitList = res.data)
@@ -311,7 +599,7 @@ export default {
     /** 查询民用工程列表 */
     getList() {
       this.loading = true;
-      listEngineeringCivil(this.queryParams).then(response => {
+      listEngineeringCivil(this.queryParams1).then(response => {
         this.engineeringCivilList = response.rows;
         this.total = response.total;
         this.loading = false;
@@ -362,6 +650,37 @@ export default {
       this.single = selection.length !== 1
       this.multiple = !selection.length
     },
+    // 新增顶管工程
+    addNewPipe(data){
+      this.$refs.enginPipe.openDialog({
+        id:data.id
+      },'add')
+    },
+    nodeCancel(){
+      this.nodeDetailVisible = false
+    },
+    toNodeDetail(){
+      if(this.currentType == 'put'){
+        this.$refs.childNode.open(this.queryParams,16)
+        this.currentType = null
+        return
+      }
+      // 加工 enginClassification 工程节点
+      const parts = this.value[1].split('_');
+      let result = parts.slice(2).join('_');
+      console.log(result)
+      this.queryParams.zEngineeringNodeBo.type = this.enginClassification
+      this.queryParams.enginClassification = result
+      console.log(this.queryParams)
+      this.$refs.childNode.open(this.queryParams,0)
+      return
+      this.$refs['form'].validate(e => {
+        if(e){
+          this.nodeDetailVisible = true
+        }
+      })
+
+    },
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
@@ -371,14 +690,55 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.loading = true;
-      this.reset();
+     // this.reset();
       const id = row.id || this.ids
-      getEngineeringCivil(id).then(response => {
+      // getEngineeringCivil(id).then(response => {
+      //   this.loading = false;
+      //   this.queryParams = response.data;
+      //   console.log(this.form)
+      //   this.open = true;
+      //
+      // });
+      getEngineeringCivil(id).then(res => {
         this.loading = false;
-        this.form = response.data;
-        this.open = true;
+        let newData = res.data
+        console.log(newData)
+        console.log(res.data.zEngineeringNodeBoList[0].type)
+        let zEngineeringNodeBo = {
+          type:res.data.zEngineeringNodeBoList[0].type,
+          zEngineeringInfoBo:res.data.zEngineeringNodeBoList[0].zEngineeringInfoBo
+        }
+        if (res.data.areaId!=''&&res.data.areaId!=null)
+        {
+          this.communityHasChanged(res.data.areaId)
+        }
+        if (res.data.district!=''&&res.data.district!=null)
+        {
+          this.districtHasChanged(res.data.district)
+        }
+        if (res.data.buildingId!=''&&res.data.buildingId!=null)
+        {
+          this.buildingHasChanged(res.data.buildingId)
+        }
+        if (res.data.unitId!=''&&res.data.unitId!=null)
+        {
+          this.unitHasChanged(res.data.unitId)
+        }
+        this.value[0]=res.data.enginType
+        this.value[1]=res.data.enginClassification
+        if (res.data.enginClassification!=null&&res.data.enginClassification!='')
+        {
+          this.enginClassificationOption = this.dict.type[res.data.enginClassification]
+        }
+        this.enginClassificationinfo=zEngineeringNodeBo.type
+        newData.zEngineeringNodeBo = zEngineeringNodeBo
+        this.currentType = 'put'
+        this.queryParams = newData
+        console.log(this.queryParams)
+        this.zEngineeringInfoBo = newData.zEngineeringNodeBo.zEngineeringInfoBo
+        this.open = true
         this.title = "修改民用工程";
-      });
+      })
     },
     /** 提交按钮 */
     submitForm() {
@@ -429,3 +789,54 @@ export default {
   }
 };
 </script>
+<style lang="scss" scoped>
+::v-deep .appendElDialog{
+  width: 70%;
+  height: 80%;
+
+
+  .el-dialog__body{
+    height: 85%;
+  }
+
+  .el-form-item{
+    margin-bottom: 22px;
+    width: 44%;
+    display: inline-block;
+  }
+  .el-form-item:nth-child(2n+2){
+    margin-left: 5%;
+  }
+  .el-form-item:not(:nth-child(1):nth-child(2)){
+    margin-top: 0.5%;
+  }
+  .remark_input{
+    .el-textarea__inner{
+      width: 238%;
+      height: 190px;
+    }
+  }
+}
+
+::v-deep .appendElNodeDialog{
+  // width: 70%;
+  height: 80%;
+
+
+  .el-dialog__body{
+    height: 85%;
+  }
+
+  .el-form-item{
+    margin-bottom: 22px;
+    width: 44%;
+    display: inline-block;
+  }
+  .el-form-item:nth-child(2n+2){
+    margin-left: 5%;
+  }
+  .el-form-item:not(:nth-child(1):nth-child(2)){
+    margin-top: 0.5%;
+  }
+}
+</style>