Bladeren bron

民用工程 增删改查联调

付宇航 1 jaar geleden
bovenliggende
commit
0fba2f66e4

+ 83 - 5
src/api/zdsz/enginee.js

@@ -24,6 +24,22 @@ export function getUnitList({buildingId}) {
     })
 }
 
+// 查询房间集合
+export function getHousesList({unitId}) {
+    return request({
+        url: `/zdsz/house/getHousesList?unitId=${unitId}`,
+        method: 'get',
+    })
+}
+
+// 获取工程材质
+export function getEnginMaterialQualityList({enginType}) {
+    return request({
+        url: `/zdsz/enginMaterialQuality/getEnginMaterialQualityList?enginType=${enginType}`,
+        method: 'get',
+    })
+}
+
 
 
 // 查询工程列表(工业 1 市政 2)
@@ -42,6 +58,16 @@ export function getPipeJackingList({enginName = null}) {
     })
 }
 
+// 新增工程(工业 市政)
+export function addEnginee(data) {
+    return request({
+      url: '/zdsz/engineeringIndustry',
+      method: 'post',
+      data
+    })
+}
+
+
 // 查询危险工程列表
 export function getEnginDangerousList({ZEngineeringDangerousBo = {}}) {
     return request({
@@ -51,17 +77,25 @@ export function getEnginDangerousList({ZEngineeringDangerousBo = {}}) {
 }
 
 
-// 新增工程(工业 市政)
-export function addEnginee(data) {
+// 新增危险作业工程
+export function addEngineeringDangerous(data) {
     return request({
-      url: '/zdsz/engineeringIndustry',
+      url: '/zdsz/engineeringDangerous',
       method: 'post',
       data
     })
 }
 
-// 新增危险作业工程
-export function addEngineeringDangerous(data) {
+// 查询危险作业工程详情
+export function viewEngineeringDangerous(id) {
+    return request({
+      url: `/zdsz/engineeringDangerous/query/${id}`,
+      method: 'get',
+    })
+}
+
+// 修改危险作业工程
+export function putEngineeringDangerous(data) {
     return request({
       url: '/zdsz/engineeringDangerous',
       method: 'post',
@@ -87,6 +121,49 @@ export function putEngineeringPipeJacking(data) {
     })
 }
 
+// 查询民用工程列表
+export function getEngineeringCivil() {
+    return request({
+        url: `/zdsz/engineeringCivil/list`,
+        method: 'get',
+    })
+}
+
+// 新增民用工程
+export function addEngineeringCivil(data) {
+    return request({
+      url: '/zdsz/engineeringCivil',
+      method: 'post',
+      data
+    })
+}
+
+// 修改民用工程
+export function putEngineeringCivil(data) {
+    return request({
+      url: '/zdsz/engineeringCivil',
+      method: 'put',
+      data
+    })
+}
+
+// 查询民用工程详情
+export function viewEngineeringCivil(id) {
+    return request({
+      url: `/zdsz/engineeringCivil/${id}`,
+      method: 'get',
+    })
+}
+
+// 删除民用工程
+export function deleteEngineeringCivil(id) {
+    return request({
+      url: `/zdsz/engineeringCivil/${id}`,
+      method: 'delete',
+    })
+}
+
+
 // 查询顶管工程详情
 export function viewEngineeringPipeJacking(id) {
     return request({
@@ -95,6 +172,7 @@ export function viewEngineeringPipeJacking(id) {
     })
 }
 
+
 // 删除顶管工程详情
 export function deleteEngineeringPipeJacking(id) {
     return request({

+ 105 - 20
src/components/EngineeNode/index.vue

@@ -8,6 +8,7 @@
 
 
 <template>
+  <div style="width: 100%; height: 100%;">
     <el-dialog :visible="nodeDetailVisible" :rules="nodeRules" title="节点信息" append-to-body customClass="appendElNodeDialog">
         <el-form ref="nodeForm" :model="zEngineeringInfoBo" :rules="nodeRules" label-width="110px">
             <el-form-item label="节点类型" prop="type">
@@ -64,34 +65,67 @@
                 ></el-option>
             </el-select>
             </el-form-item>
-            <el-form-item label="自闭阀类型" prop="selfClosingValveType">
-            <el-select v-model="zEngineeringInfoBo.selfClosingValveType">
+            <el-form-item label="照片" prop="zEngiineeringPhotoBoList" style="width: 100%;">
+            <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="zEngineeringInfoBo.zEngiineeringPhotoBoList"
+                            @input="getUrl"></ObsImageUpload>
+            </el-form-item>
+            <el-button :loading="buttonLoading" type="primary" @click="submitForm">提交</el-button>
+            <el-button type="primary" @click="addMaterial">添加用料单</el-button>
+            <el-button @click="nodeCancel">取 消</el-button>
+        </el-form>
+    </el-dialog>
+
+    <el-drawer
+      title="用料单"
+      :visible.sync="drawer"
+      :direction="direction"
+      :before-close="handleClose">
+      <el-form ref="materialForm" :model="zEngineeringMaterialBoIO" :rules="materialRules" label-width="110px">
+        <el-form-item label="腐蚀等级" prop="corrosionLevel" >
+          <el-select v-model="zEngineeringMaterialBoIO.corrosionLevel">
+              <el-option
+                v-for="e in dict.type.corrosion_level"
+                :key="e.value"
+                :label="e.label"
+                :value="e.value"
+                >
+              </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="品牌" prop="brand" >
+          <el-select v-model="zEngineeringMaterialBoIO.brand">
+              <el-option
+                v-for="e in dict.type.brand"
+                :key="e.value"
+                :label="e.label"
+                :value="e.value"
+                >
+              </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="上门类型" prop="visitType">
+            <el-select v-model="zEngineeringMaterialBoIO.visitType">
                 <el-option
-                v-for="e in dict.type.self_closing_valve_type"
+                v-for="e in dict.type.visit_type"
                 :key="e.value"
                 :label="e.label"
                 :value="e.value"
                 ></el-option>
             </el-select>
-            </el-form-item>
-            <el-form-item label="上门类型" prop="visitType">
-            <el-select v-model="zEngineeringInfoBo.visitType">
+        </el-form-item>
+        <el-form-item label="自闭阀类型" prop="selfClosingValveType">
+            <el-select v-model="zEngineeringMaterialBoIO.selfClosingValveType">
                 <el-option
-                v-for="e in dict.type.visit_type"
+                v-for="e in dict.type.self_closing_valve_type"
                 :key="e.value"
                 :label="e.label"
                 :value="e.value"
                 ></el-option>
             </el-select>
-            </el-form-item>
-            <el-form-item label="照片" prop="zEngiineeringPhotoBoList" style="width: 100%;">
-            <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="zEngineeringInfoBo.zEngiineeringPhotoBoList"
-                            @input="getUrl"></ObsImageUpload>
-            </el-form-item>
-            <el-button :loading="buttonLoading" type="primary" @click="submitForm">提交</el-button>
-            <el-button @click="nodeCancel">取 消</el-button>
-        </el-form>
-    </el-dialog>
+          </el-form-item>
+      </el-form>
+    </el-drawer>
+  </div>
 </template>
 
 <script>
@@ -100,10 +134,13 @@ import {
     addEngineeringDangerous,                   // 新增危险作业工程
     addEngineeringPipeJacking,                 // 新增顶管工程
     putEngineeringPipeJacking,                 // 修改顶管工程
+    getEnginMaterialQualityList,               // 获取工程材质
+    addEngineeringCivil,               // 新增民用工程
+    putEngineeringCivil,                 // 民用修改
 } from "@/api/zdsz/enginee"
 export default {
     name:'EngineeNode',
-    dicts:['pass_check','is_repair','engin_type','self_closing_valve_type','visit_type'],
+    dicts:['pass_check','is_repair','engin_type','self_closing_valve_type','visit_type','corrosion_level','brand'],
     data(){
         return {
             params:{},                  // 所有参数集合
@@ -138,8 +175,6 @@ export default {
               headPhone:'',             // 负责人电话
               constructAccordingDrawings:'', // 是否按图纸施工
               segmentedCompressionQualified:'', // 分段打压是否合格
-              selfClosingValveType:'',          // 自闭阀类型
-              visitType:'',                     // 上门类型
               backfillTime:'',                  // 回填时间
               constructTime:'',                  // 施工时间
               zEngiineeringPhotoBoList:[],              // 图片列表
@@ -167,9 +202,22 @@ export default {
               }
             ],  
             currentType:null ,          // 民用工程 0 ,市政工程 1,工业工程 2 ,顶管工程 3,危险作业工程 4,基建工程 5
-        }
+            drawer: false,
+            direction: 'rtl',
+            materialRules:[],
+            zEngineeringMaterialBoIO:{
+              corrosionLevel:null,            // 腐蚀等级
+              brand:null,                     // 品牌
+              visitType:'',                   // 上门类型
+              selfClosingValveType:'',        // 自闭阀类型
+            }
+          }
     },
     methods:{
+        // 添加用料
+        addMaterial(){
+          this.drawer = true
+        },
         getUrl(url) {
             this.zEngineeringInfoBo.zEngiineeringPhotoBoList = this.$refs.obsImageUpload.fileList?this.$refs.obsImageUpload.fileList.map(e=>e.url):[];
         },
@@ -183,7 +231,22 @@ export default {
         submitForm() {
             // this.$refs["nodeForm"].validate(valid => {
                 // if (valid) {
+                  this.zEngineeringInfoBo.zEngineeringMaterialBo.push(this.zEngineeringMaterialBoIO)
                     switch(this.currentType){
+                        case 0 :
+                            // 民用工程 新增
+                            this.params.zEngineeringNodeBo.zEngineeringInfoBo = this.zEngineeringInfoBo
+                            addEngineeringCivil(this.params).then(res => {
+                              if(res.code == 200){
+                                this.$message({
+                                  message: '新增成功',
+                                  type: 'success'
+                                });
+                                this.$emit('closeToSucceed')
+                                this.nodeDetailVisible = false
+                              }
+                            })
+                        break;
                         case 4 :
                             // 危险作业工程
                             this.params.zEngineeringNodeBo.zEngineeringInfoBo = this.zEngineeringInfoBo
@@ -221,6 +284,21 @@ export default {
                               }
                             })
                         break;
+                        case 16 :
+                            // 民用修改
+                            this.params.zEngineeringNodeBo.zEngineeringInfoBo = this.zEngineeringInfoBo
+                            putEngineeringCivil(this.params).then(res => {
+                              console.log('民用________',res)
+                              if(res.code == 200){
+                                this.$message({
+                                  message: '修改成功',
+                                  type: 'success'
+                                });
+                                this.$emit('closeToSucceed')
+                                this.nodeDetailVisible = false
+                              }
+                            })
+                        break;
                     }
                 // this.params.zEngineeringNodeBo.zEngineeringInfoBo = this.zEngineeringInfoBo
                 // console.log(this.queryParams)
@@ -232,11 +310,18 @@ export default {
         },
         open(queryParams,type){
             this.currentType = type
+            console.log(this.queryParams)
+            getEnginMaterialQualityList(this.currentType).then(res => {
+              console.log(res)
+            })
             this.params = queryParams
             this.nodeDetailVisible = true
             if(type == 15){
               this.zEngineeringInfoBo = this.params.zEngineeringNodeBo.zEngineeringInfoBo
             }
+            if(type == 16){
+              this.zEngineeringInfoBo = this.params.zEngineeringNodeBo.zEngineeringInfoBo
+            }
         },
         reset(){
             this.$refs['nodeForm'].resetFields()

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

@@ -0,0 +1,913 @@
+
+ <!-- 
+ *@description: 民用工程
+ *@author: yh Fu
+ *@date: 2024-01-04 13:08:59
+ *@version: V1.0.5 
+-->
+
+    <template>
+        <div class="app-container">
+          <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="110px">
+            <el-form-item label="小区" prop="areaId">
+              <el-select v-model="queryParams.areaId" placeholder="请选择小区" filterable @change="getBuildings">
+                <el-option
+                  v-for="obj in areas"
+                  :key="obj.id"
+                  :label="obj.name"
+                  :value="obj.id"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="楼栋" prop="buildingId">
+              <el-select v-model="queryParams.buildingId" placeholder="请选择楼栋" filterable @change="getUnits">
+                <el-option
+                  v-for="obj in builds"
+                  :key="obj.id"
+                  :label="obj.name"
+                  :value="obj.id"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="单元" prop="unitId">
+              <el-select v-model="queryParams.unitId" placeholder="请选择单元" filterable @change="getHouses">
+                <el-option
+                  v-for="obj in units"
+                  :key="obj.id"
+                  :label="obj.name"
+                  :value="obj.id"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="房间号" prop="houseId">
+              <el-select v-model="queryParams.houseId" placeholder="请选择房间号" filterable>
+                <el-option
+                  v-for="obj in houses"
+                  :key="obj.id"
+                  :label="obj.name"
+                  :value="obj.id"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+              <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+            </el-form-item>
+          </el-form>
+      
+          <el-row :gutter="10" class="mb8">
+            <el-col :span="1.5">
+              <el-button
+                type="primary"
+                plain
+                icon="el-icon-plus"
+                size="mini"
+                @click="handleAdd"
+                v-hasPermi="['zdsz:openbolt:add']"
+              >新增</el-button>
+            </el-col>
+            <el-col :span="1.5">
+              <el-button
+                type="success"
+                plain
+                icon="el-icon-edit"
+                size="mini"
+                :disabled="single"
+                @click="handleUpdate"
+                v-hasPermi="['zdsz:openbolt:edit']"
+              >修改</el-button>
+            </el-col>
+            <el-col :span="1.5">
+              <el-button
+                type="danger"
+                plain
+                icon="el-icon-delete"
+                size="mini"
+                :disabled="multiple"
+                @click="handleDelete"
+                v-hasPermi="['zdsz:openbolt:remove']"
+              >删除</el-button>
+            </el-col>
+            <!--      <el-col :span="1.5">-->
+            <!--        <el-button-->
+            <!--          type="warning"-->
+            <!--          plain-->
+            <!--          icon="el-icon-download"-->
+            <!--          size="mini"-->
+            <!--          @click="handleExport"-->
+            <!--          v-hasPermi="['zdsz:openbolt:export']"-->
+            <!--        >导出</el-button>-->
+            <!--      </el-col>-->
+            <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+          </el-row>
+      
+          <el-table v-loading="loading" :data="comprehensiveList" @selection-change="handleSelectionChange">
+            <el-table-column type="selection" width="55" align="center" />
+            <!--      <el-table-column label="" align="center" prop="id" v-if="true"/>-->
+            <el-table-column label="小区" align="center" prop="areaName" />
+            <el-table-column label="楼栋" align="center" prop="buildingName" />
+            <el-table-column label="单元" align="center" prop="unitName" />
+            <el-table-column label="房间" align="center" prop="houseName" />
+            <el-table-column label="安检是否合格" align="center" prop="isQualified">
+              <template slot-scope="scope">
+                <dict-tag :options="dict.type.pass_check" :value="scope.row.isQualified"/>
+              </template>
+            </el-table-column>
+            <el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip/>
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+              <template slot-scope="scope">
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-edit"
+                  @click="handleUpdate(scope.row)"
+                  v-hasPermi="['zdsz:comprehensive:edit']"
+                >修改</el-button>
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-delete"
+                  @click="handleDelete(scope.row)"
+                  v-hasPermi="['zdsz:comprehensive:remove']"
+                >删除</el-button>
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-edit"
+                  @click="addNewPipe(scope.row)"
+                >新增顶管工程</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+      
+          <pagination
+            v-show="total>0"
+            :total="total"
+            :page.sync="queryParams.pageNum"
+            :limit.sync="queryParams.pageSize"
+            @pagination="getList"
+          />
+          <!-- 顶管工程新增 -->
+          <EngineePipe ref="enginPipe"/>
+          <!-- 添加或修改开栓|安检|维修对话框 -->
+          <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="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="e in buildingOptions"
+                    :key="e.id"
+                    :label="e.name"
+                    :value="e.id"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+              <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="enginClassification" 
+                    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="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="toNodeDetail">填写节点信息</el-button>
+              <el-button @click="cancel">取 消</el-button>
+            </div>
+          </el-dialog>
+          <!-- 节点信息dialog -->
+          <enginee-node 
+            ref="childNode"
+            @closeToSucceed="closeToSucceed"
+            />
+        </div>
+      </template>
+      
+      <script>
+      import { listComprehensive, getComprehensive, delComprehensive, addComprehensive, updateComprehensive } from "@/api/zdsz/comprehensive";
+      import {getBuildings} from "@/api/zdsz/building";
+      import {getUnits} from "@/api/zdsz/unit";
+      import {getAreas} from "@/api/zdsz/area";
+      import {getHouses, listHouse} from "@/api/zdsz/house";
+      import EngineeNode from '@/components/EngineeNode/index'
+      import { 
+        getEngineeringCivil,                            // 查询工程列表
+        addEnginee,                                // 新增工程
+        getAreaList,                               // 获取当前小区集合
+        getBuildingList,                           // 获取当前楼栋集合
+        getUnitList,                               // 获取当前单元集合
+        getHousesList,                             // 获取当前房间集合
+        putEngineeringCivil,                       // 民用工程修改
+        viewEngineeringCivil,                      // 民用工程查看详情
+        deleteEngineeringCivil,                    // 删除民用工程
+      } from "@/api/zdsz/enginee"
+      import EngineePipe from "@/components/EngineePipe"
+      
+      export default {
+        name: "openrepair",
+        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"
+            ],
+        components:{
+          EngineePipe,
+          EngineeNode
+        },
+        data() {
+            var validatePass = (rule, value, callback) => {
+                console.log('校验值', value)
+                if (value === '') {
+                    callback(new Error('请输入密码'));
+                } else {
+                if (this.ruleForm.checkPass !== '') {
+                    this.$refs.ruleForm.validateField('checkPass');
+                }
+                    callback();
+                }
+            };
+          return {
+            // 按钮loading
+            buttonLoading: false,
+            // 遮罩层
+            loading: true,
+            // 选中数组
+            ids: [],
+            // 非单个禁用
+            single: true,
+            // 非多个禁用
+            multiple: true,
+            // 显示搜索条件
+            showSearch: true,
+            // 总条数
+            total: 0,
+            // 开栓|安检|维修表格数据
+            comprehensiveList: [],
+            // 弹出层标题
+            title: "",
+            // 是否显示弹出层
+            open: false,
+            enginTypeOption:[
+              {
+                value:'old_renovation',
+                label:'旧改'
+              },
+              {
+                value:'new_built',
+                label:'新建'
+              }
+            ],
+            nodeType:'1',               // 节点类型
+            enginClassification:'',
+            // 查询参数
+            queryParams: {
+              district:null,           // 行政区
+              areaId:'',               // 小区
+              enginType:'',             // 工程类型
+              buildingId:null,
+              unitId:null,
+              houseId:null,
+              type:'01',                // 类型  01工业工程 02市政工程
+              district:'',             // 工程类型  民用工程 0 ,市政工程 1,工业工程 2 ,顶管工程 3,危险作业工程 4,基建工程 5
+              enginClassification:null,           // 工程分类
+              zEngineeringNodeBo:{
+                type:'',
+                zEngineeringInfoBo:{},    //节点信息
+              }
+            },
+            zEngineeringInfoBo:{
+              constructAddre:'',        // 施工地址
+              constructPhone:'',        // 施工人电话
+              constructUser:'',         // 施工人
+              headName:'',              // 负责人
+              headPhone:'',             // 负责人电话
+              constructAccordingDrawings:'', // 是否按图纸施工
+              segmentedCompressionQualified:'', // 分段打压是否合格
+              selfClosingValveType:'',          // 自闭阀类型
+              visitType:'',                     // 上门类型
+              backfillTime:'',                  // 回填时间
+              constructTime:'',                  // 施工时间
+              zEngiineeringPhotoBoList:[],              // 图片列表
+              zEngineeringMaterialBo:[],// 用料对象
+
+            },                          // 节点信息
+            constructAccordingDrawingsOption:[
+              {
+                value:'1',
+                label:'是'
+              },
+              {
+                value:'0',
+                label:'否'
+              }
+            ],                          
+            segmentedCompressionQualifiedOption:[
+              {
+                value:'1',
+                label:'是'
+              },
+              {
+                value:'0',
+                label:'否'
+              }
+            ],                          
+            nodeDetailVisible:false,
+            // 表单参数
+            form: {},
+            areas: [],
+            builds: [],
+            units: [],
+            rooms: [],
+            houses: [],
+            // 表单校验
+            rules: {
+              areaId: [
+                { required: true, message: "小区不能为空", trigger: "change" }
+              ],
+              district: [
+                { required: true, message: "现场负责人不能为空" ,trigger: 'blur'}
+              ],
+              supervisionUnit: [
+                { required: true, message: "监理单位不能为空" ,trigger: 'blur'}
+              ],
+              district: [
+                { required: true, message: "现场负责人不能为空" ,trigger: 'blur'}
+              ],
+              supervisionPhone: [
+                { required: true, message: "建立联系电话不能为空" ,trigger: 'blur'}
+              ],
+              constructUnit: [
+                { required: true, message: "建筑单位不能为空" ,trigger: 'blur'}
+              ],
+              areaId: [
+                { required: true, message: "设计负责人不能为空" ,trigger: 'blur'}
+              ],
+              enginCycle: [
+                { required: true, message: "设计单位不能为空" ,trigger: 'blur'}
+              ],
+              designPhone: [
+                { required: true, message: "联系方式不能为空" ,trigger: 'blur'}
+              ],
+              supervisionHead: [
+                { required: true, message: "监理负责人不能为空" ,trigger: 'blur'}
+              ],
+              buildingId: [
+                { required: true, message: "楼栋不能为空", trigger: "change" }
+              ],
+              unitId: [
+                { required: true, message: "单元不能为空", trigger: "change" }
+              ],
+              houseId: [
+                { required: true, message: "房间不能为空", trigger: "change" }
+              ],
+              type: [
+                { required: false, message: "类型不能为空", trigger: "change" }
+              ],
+              isQualified: [
+                { required: true, message: "安检是否合格不能为空", trigger: "blur" }
+              ],
+            //  remark: [
+            //     { required: false, message: "备注不能为空", trigger: "blur" }
+            //   ], 
+            },
+            // 节点规则校验
+            nodeRules:{
+              type: [
+                { required: true, message: "施工地址不能为空" ,trigger: 'blur'}
+              ],
+              constructAddre: [
+                { required: true, message: "施工地址不能为空" ,trigger: 'blur'}
+              ],
+              constructPhone: [
+                { required: true, message: "施工人电话不能为空" ,trigger: 'blur'}
+              ],
+              constructUser: [
+                { required: true, message: "施工人不能为空" ,trigger: 'blur'}
+              ],
+              headName: [
+                { required: true, message: "负责人不能为空" ,trigger: 'blur'}
+              ],
+              headPhone: [
+                { required: true, message: "负责人电话不能为空" ,trigger: 'blur'}
+              ],
+
+            },
+            currentDistrict:null,       // 当前行政区
+            currentCommunity:null,      // 当前小区
+            currentBuilding:null,       // 当前楼宇
+            currentUnit:null,           // 当前单元
+            communityOptions:[
+            ],
+            buildingOptions:[],         // 楼栋集合
+            unitOptions:[],             // 单元集合
+            houseOptions:[],            // 房间集合
+            enginClassification_list:[],// 室内节点
+            new_built_list:[
+                {
+                    label:'旧改',
+                    value:'old'
+                },
+                {
+                    label:'新建',
+                    value:'new'
+                },
+            ],
+            currentEnginType:[],
+            enginTypeOptions:[
+                {
+                    value:'old_renovation',
+                    label:'旧改',
+                    children:[
+                        {
+                            value:'inside',
+                            lable:'室内',
+                        },
+                        {
+                            value:'yard',
+                            lable:'庭院',
+                        },
+                        {
+                            value:'float',
+                            lable:'架空',
+                        },
+                    ]
+                },
+                {
+                    value:'new_built',
+                    label:'新建',
+                    children:[
+                        {
+                            value:'inside',
+                            lable:'室内',
+                        },
+                        {
+                            value:'yard',
+                            lable:'庭院',
+                        },
+                        {
+                            value:'float',
+                            lable:'架空',
+                        },
+                    ]
+                },
+            ],
+            value: [],
+        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: '架空',
+                }
+            ]
+        }, 
+        ],
+        enginClassificationOption:[],          // 工程节点集合
+        currentType:null,
+          };
+        },
+        created() {
+          this.getList();
+          // this.getAreas();
+        },
+        methods: {
+        closeToSucceed(){
+          this.open = false;
+        },
+        currentEnginTypeChange(val){
+            const enginDict = val[1]
+            const enginType = val[0]    
+            this.queryParams.enginType = enginType
+            this.enginClassificationOption = this.dict.type[enginDict]
+        },
+        // 当前所选行政区发生改变 查询当前小区集合
+        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){
+            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'){
+
+            }
+        },
+          // 新增顶管工程
+          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('_');
+            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
+              }
+            })
+            
+          },
+          getUrl(url) {
+            this.zEngineeringInfoBo.zEngiineeringPhotoBoList = this.$refs.obsImageUpload.fileList?this.$refs.obsImageUpload.fileList.map(e=>e.url):[];
+          },
+          getBuildings(id) {
+            this.units = []
+            this.houses = []
+            this.queryParams.buildingId = undefined
+            this.queryParams.unitId = undefined
+            this.queryParams.houseId = undefined
+            getBuildings(id).then(res => {
+              this.builds = res.data
+            })
+          },
+          getUnits(id) {
+            this.houses = []
+            this.queryParams.unitId = undefined
+            this.queryParams.houseId = undefined
+            getUnits(this.queryParams.areaId,id).then(res => {
+              this.units = res.data
+            })
+          },
+          getAreas() {
+            this.builds = []
+            this.units = []
+            this.houses = []
+            this.queryParams.buildingId = undefined
+            this.queryParams.unitId = undefined
+            this.queryParams.houseId = undefined
+            this.form.buildingId = undefined
+            this.form.unitId = undefined
+            this.form.houseId = undefined
+            getAreas().then(res => {
+              this.areas = res.data;
+            });
+          },
+          getHouses() {
+            this.houses = []
+            this.queryParams.houseId = undefined
+            getHouses(this.queryParams.unitId).then(res => {
+              this.houses = res.data;
+            });
+          },
+          getBuildings1(id) {
+            this.units = []
+            this.houses = []
+            this.form.buildingId = undefined
+            this.form.unitId = undefined
+            this.form.houseId = undefined
+            getBuildings(id).then(res => {
+              this.builds = res.data
+            })
+          },
+          getUnits1(id) {
+            this.houses = []
+            this.form.unitId = undefined
+            this.form.houseId = undefined
+            getUnits(this.form.areaId,id).then(res => {
+              this.units = res.data
+            })
+          },
+          getHouses1() {
+            this.houses = []
+            this.form.houseId = undefined
+            getHouses(this.form.unitId).then(res => {
+              this.houses = res.data;
+            });
+          },
+          /** 查询民用工程列表 */
+          getList() {
+            this.loading = true;
+            getEngineeringCivil().then(res => {
+              console.log(res)
+              this.comprehensiveList = res.rows;
+              this.total = res.total;
+              this.loading = false;
+            });
+          },
+          // 取消按钮
+          cancel() {
+            this.open = false;
+            this.reset();
+            this.houses = []
+            this.units = []
+            this.builds = []
+          },
+          // 表单重置
+          reset() {
+            this.$nextTick(() => {
+              this.$refs['form'].resetFields()
+              this.$refs['nodeForm'].resetFields()
+            })
+            this.resetForm("form");
+            this.resetForm("nodeForm");
+          },
+          /** 搜索按钮操作 */
+          handleQuery() {
+            this.queryParams.pageNum = 1;
+            this.getList();
+          },
+          /** 重置按钮操作 */
+          resetQuery() {
+            this.resetForm("queryForm");
+            this.handleQuery();
+          },
+          // 多选框选中数据
+          handleSelectionChange(selection) {
+            this.ids = selection.map(item => item.id)
+            this.single = selection.length!==1
+            this.multiple = !selection.length
+          },
+          /** 新增按钮操作 */
+          handleAdd() {
+            this.reset();
+            this.open = true;
+            this.title = "新增工程";
+          },
+          /** 修改按钮操作 */
+          handleUpdate(row) {
+            viewEngineeringCivil(row.id).then(res => {
+              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
+              }
+              newData.zEngineeringNodeBo = zEngineeringNodeBo
+              this.currentType = 'put'
+              this.queryParams = newData
+              console.log(this.queryParams)
+              this.zEngineeringInfoBo = newData.zEngineeringNodeBo.zEngineeringInfoBo
+              this.open = true
+            })
+          },
+          /** 提交按钮 */
+          submitForm() {
+            // this.$refs["nodeForm"].validate(valid => {
+              // if (valid) {
+                this.queryParams.zEngineeringNodeBo.zEngineeringInfoBo = this.zEngineeringInfoBo
+                console.log(this.queryParams)
+                addEnginee(this.queryParams).then(res => {
+                  console.log(res)
+                })
+              // }
+            // });
+          },
+          /** 删除按钮操作 */
+          handleDelete(row) {
+            deleteEngineeringCivil(row.id).then(res => {
+              if(res.code == 200){
+                this.$modal.msgSuccess("删除成功");
+                this.getList()
+              }
+            })
+          },
+          /** 导出按钮操作 */
+          handleExport() {
+            this.download('zdsz/openbolt/export', {
+              ...this.queryParams
+            }, `comprehensive_${new Date().getTime()}.xlsx`)
+          }
+        }
+      };
+      </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>
+      

+ 21 - 23
src/views/zdsz/engineeringDangerous/index.vue

@@ -203,13 +203,13 @@
                 <el-input v-model="queryParams.linePatrolConfirmationForm" placeholder="请填写巡线确认单"/>
               </el-form-item>
               <el-form-item label="作业坑(长)" prop="hazardousWorkPitsLong">
-                <el-input v-model="queryParams.hazardousWorkPitsLong" placeholder="请填写危险作业坑大小(长)"/>
+                <el-input v-model="queryParams.hazardousWorkPitsLong" placeholder="请填写危险作业坑大小(长)" type="number"/>
               </el-form-item>
               <el-form-item label="作业坑(宽)" prop="hazardousWorkPitsWide">
-                <el-input v-model="queryParams.hazardousWorkPitsWide" placeholder="请填写危险作业坑大小(宽)"/>
+                <el-input v-model="queryParams.hazardousWorkPitsWide" placeholder="请填写危险作业坑大小(宽)" type="number"/>
               </el-form-item>
               <el-form-item label="作业坑(深)" prop="hazardousWorkPitsDeep">
-                <el-input v-model="queryParams.hazardousWorkPitsDeep" placeholder="请填写危险作业坑大小(深)"/>
+                <el-input v-model="queryParams.hazardousWorkPitsDeep" placeholder="请填写危险作业坑大小(深)" type="number"/>
               </el-form-item>
               <el-form-item label="需要支护" prop="casingPresent">
                 <el-select v-model="queryParams.needSupport" placeholder="请选择是否需要支护">
@@ -293,7 +293,8 @@
       import { 
         getEngineeList,                            // 查询工程列表
         addEnginee,                                // 新增工程
-        getEnginDangerousList,                                // 查询危险工程列表
+        getEnginDangerousList,                     // 查询危险工程列表
+        viewEngineeringDangerous
       } from "@/api/zdsz/enginee"
       
       export default {
@@ -663,26 +664,23 @@
           },
           /** 修改按钮操作 */
           handleUpdate(row) {
-            getBuildings(row.areaId).then(res => {
-              this.builds = res.data
-            });
-            getUnits(row.areaId,row.buildingId).then(res => {
-              this.units = res.data
+            viewEngineeringDangerous(row.id).then(res => {
+              console.log(res)
+              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
+              }
+              newData.zEngineeringNodeBo = zEngineeringNodeBo
+              this.currentType = 'put'
+              this.queryParams = newData
+              console.log(this.queryParams)
+              this.zEngineeringInfoBo = newData.zEngineeringNodeBo.zEngineeringInfoBo
+              this.open = true
+              // this.$refs.enginPipe.putEnginPipe(res.data,'put')
             })
-            getHouses(row.unitId).then(res => {
-              this.houses = res.data;
-            });
-            this.loading = true;
-            this.reset();
-            const id = row.id || this.ids
-            getComprehensive(id).then(response => {
-              this.loading = false;
-              this.form = response.data;
-              this.form.picIds = response.data.mapList;
-      
-              this.open = true;
-              this.title = "修改维修";
-            });
           },
           /** 提交按钮 */
           submitForm() {

+ 2 - 4
src/views/zdsz/engineeringIndustry/index.vue

@@ -264,7 +264,7 @@
                   ></el-option>
                 </el-select>
               </el-form-item>
-              <el-form-item label="自闭阀类型" prop="selfClosingValveType">
+              <!-- <el-form-item label="自闭阀类型" prop="selfClosingValveType">
                 <el-select v-model="zEngineeringInfoBo.selfClosingValveType">
                   <el-option
                     v-for="e in dict.type.self_closing_valve_type"
@@ -283,7 +283,7 @@
                     :value="e.value"
                   ></el-option>
                 </el-select>
-              </el-form-item>
+              </el-form-item> -->
               <el-form-item label="照片" prop="zEngiineeringPhotoBoList" style="width: 100%;">
                 <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="zEngineeringInfoBo.zEngiineeringPhotoBoList"
                                 @input="getUrl"></ObsImageUpload>
@@ -400,8 +400,6 @@
               headPhone:'',             // 负责人电话
               constructAccordingDrawings:'', // 是否按图纸施工
               segmentedCompressionQualified:'', // 分段打压是否合格
-              selfClosingValveType:'',          // 自闭阀类型
-              visitType:'',                     // 上门类型
               backfillTime:'',                  // 回填时间
               constructTime:'',                  // 施工时间
               zEngiineeringPhotoBoList:[],              // 图片列表