소스 검색

Merge remote-tracking branch 'origin/zdsz3.0' into zdsz3.0

# Conflicts:
#	src/views/zdsz/touchOperationEngineering/index.vue
wang_xy 11 달 전
부모
커밋
0a39cb8e13

+ 10 - 2
src/api/zdsz/engineeringGY.js

@@ -1,11 +1,19 @@
 import request from '@/utils/request'
 
+// 查询工业工程名称唯一性
+export function testEnginNameUnique(data) {
+  return request({
+    url: `/zdsz/engineeringGY/testEnginNameUnique`,
+    method: 'get',
+    params: data
+  })
+}
 
-export function getEngineeIndustryList(sata) {
+export function getEngineeIndustryList(data) {
   return request({
     url: `/zdsz/engineeringGY/list`,
     method: 'get',
-    params:sata
+    params:data
   })
 }
 

+ 96 - 20
src/components/ConstructionDetails/index.vue

@@ -145,7 +145,7 @@
                       :prop="i.materialQuality"
                       :class="enginType != '基建工程' && enginType != '民用工程' ? 'labelWidth' : '' "
                       :label="activeNames == '阀管' ? '灶具管厂家': '材质'"
-                      v-show="i.materialQuality != null || (enginClassification != null && !enginClassification.includes('pressure_regulating'))"
+                      v-show="i.materialQuality != null || (enginClassification != null && !enginClassification.includes('pressure_regulating')) && node !== '阀井'&& node !== '调压柜'&& node !== '管道施工记录'"
                       label-width="95px"
                       >
                       <el-select  v-model="i.materialQuality" placeholder="请选择材质" style="width: 100%" @change="getEnginSpecificationsList(i, index,idx)" :disabled="status == 'read-only' ">
@@ -161,7 +161,7 @@
                       :prop="i.specifications"
                       :class="enginType != '基建工程' && enginType != '民用工程' ? 'labelWidth' : '' "
                       label="规格"
-                      v-show="i.materialQuality != null || (enginClassification != null && !enginClassification.includes('pressure_regulating'))"
+                      v-show="i.materialQuality != null || (enginClassification != null && !enginClassification.includes('pressure_regulating')) && node !== '阀井'&& node !== '调压柜'&& node !== '管道施工记录'"
                       label-width="95px"
 
                       >
@@ -226,7 +226,7 @@
                   </el-form-item>
 
                     <el-form-item
-                      v-if="!currentDicts.some(item=>item.label==='底腿')"
+                      v-if="!currentDicts.some(item=>item.label==='底腿') && node !== '阀井' && node !== '管道施工记录'&& node !== '调压柜'"
                       :prop="i.number + ''"
                       :class="enginType != '基建工程' && enginType != '民用工程' ? 'labelWidth' : '' "
                       label="数量"
@@ -343,6 +343,8 @@
               !(node==='iron_air')&&
               !(node==='pe')&&
               !(node=='回填')&&
+              !(node=='阀井')&&
+              !(node=='调压柜')&&
               !(node=='trench_construction')&&
               !(node=='underditch_construction')
            "
@@ -646,6 +648,54 @@
                 :disabled="status == 'read-only' "
               ></ObsImageUpload>
             </div>
+            <div style="display: flex;width: 100%;height: 100%;" v-if="node==='阀井'">
+              <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">套管</h3>
+              <ObsImageUpload
+                :class=" status == 'read-only' ? 'obsImageUploads' : '' "
+                ref="obsImageUpload"
+                :limit="11"
+                :fileType="['png', 'jpg', 'jpeg']"
+                @input="getCannulaUrl(arguments,idx)"
+                :value="e.cannula"
+                :disabled="status == 'read-only' "
+              ></ObsImageUpload>
+            </div>
+            <div style="display: flex;width: 100%;height: 100%;" v-if="node==='阀井'">
+              <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">内壁抹灰</h3>
+              <ObsImageUpload
+                :class=" status == 'read-only' ? 'obsImageUploads' : '' "
+                ref="obsImageUpload"
+                :limit="11"
+                :fileType="['png', 'jpg', 'jpeg']"
+                @input="getWallPlasterUrl(arguments,idx)"
+                :value="e.wallPlaster"
+                :disabled="status == 'read-only' "
+              ></ObsImageUpload>
+            </div>
+            <div style="display: flex;width: 100%;height: 100%;" v-if="node==='阀井'">
+              <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">防护网</h3>
+              <ObsImageUpload
+                :class=" status == 'read-only' ? 'obsImageUploads' : '' "
+                ref="obsImageUpload"
+                :limit="11"
+                :fileType="['png', 'jpg', 'jpeg']"
+                @input="getProtectiveNetUrl(arguments,idx)"
+                :value="e.protectiveNet"
+                :disabled="status == 'read-only' "
+              ></ObsImageUpload>
+            </div>
+            <div style="display: flex;width: 100%;height: 100%;" v-if="node==='阀井'">
+              <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">八角</h3>
+              <ObsImageUpload
+                :class=" status == 'read-only' ? 'obsImageUploads' : '' "
+                ref="obsImageUpload"
+                :limit="11"
+                :fileType="['png', 'jpg', 'jpeg']"
+                @input="getStarAniseUrl(arguments,idx)"
+                :value="e.starAnise"
+                :disabled="status == 'read-only' "
+              ></ObsImageUpload>
+            </div>
             <div style="display: flex;width: 100%;height: 100%;" v-if="node==='下沟'">
               <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">管沟远景照片</h3>
               <ObsImageUpload
@@ -670,19 +720,19 @@
                 :disabled="status == 'read-only' "
               ></ObsVideoUpload>
             </div>
-            <div style="display: flex;width: 100%;height: 100%;" v-if="node==='下沟'">
-              <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">管道施工记录</h3>
-              <ObsImageUpload
-                :class=" status == 'read-only' ? 'obsImageUploads' : '' "
-                ref="obsImageUpload"
-                :limit="11"
-                :fileType="['png', 'jpg', 'jpeg']"
-                @input="getconstructionRecordsUrl(arguments,idx)"
-                :value="e.constructionRecords"
-                :disabled="status == 'read-only' "
-              ></ObsImageUpload>
-            </div>
-            <div style="display: flex;width: 100%;height: 100%;" v-if="node==='回填'||node==='调压柜安装'||(enginClassification != null && enginClassification.includes('调压柜'))">
+<!--            <div style="display: flex;width: 100%;height: 100%;" v-if="node==='下沟'">-->
+<!--              <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">管道施工记录</h3>-->
+<!--              <ObsImageUpload-->
+<!--                :class=" status == 'read-only' ? 'obsImageUploads' : '' "-->
+<!--                ref="obsImageUpload"-->
+<!--                :limit="11"-->
+<!--                :fileType="['png', 'jpg', 'jpeg']"-->
+<!--                @input="getconstructionRecordsUrl(arguments,idx)"-->
+<!--                :value="e.constructionRecords"-->
+<!--                :disabled="status == 'read-only' "-->
+<!--              ></ObsImageUpload>-->
+<!--            </div>-->
+            <div style="display: flex;width: 100%;height: 100%;" v-if="node==='回填'||node==='调压柜安装'||node==='调压柜'||(enginClassification != null && enginClassification.includes('调压柜'))">
               <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">石粉回填照片</h3>
               <ObsImageUpload
                 :class=" status == 'read-only' ? 'obsImageUploads' : '' "
@@ -766,7 +816,7 @@
                 :disabled="status == 'read-only' "
               ></ObsImageUpload>
             </div>
-            <div style="display: flex;width: 100%;height: 100%;" v-if="node==='调压柜安装'||(enginClassification != null && enginClassification.includes('调压柜'))">
+            <div style="display: flex;width: 100%;height: 100%;" v-if="node==='调压柜安装'||node==='调压柜'||(enginClassification != null && enginClassification.includes('调压柜'))">
               <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">调压柜铭牌</h3>
               <ObsImageUpload
                 :class=" status == 'read-only' ? 'obsImageUploads' : '' "
@@ -778,7 +828,7 @@
                 :disabled="status == 'read-only' "
               ></ObsImageUpload>
             </div>
-            <div style="display: flex;width: 100%;height: 100%;" v-if="node==='调压柜安装'||(enginClassification != null && enginClassification.includes('调压柜'))">
+            <div style="display: flex;width: 100%;height: 100%;" v-if="node==='调压柜安装'||node==='调压柜'||(enginClassification != null && enginClassification.includes('调压柜'))">
               <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">调压箱防雷接地</h3>
               <ObsImageUpload
                 :class=" status == 'read-only' ? 'obsImageUploads' : '' "
@@ -790,7 +840,7 @@
                 :disabled="status == 'read-only' "
               ></ObsImageUpload>
             </div>
-            <div style="display: flex;width: 100%;height: 100%;" v-if="node==='调压柜安装'||(enginClassification != null && enginClassification.includes('调压柜'))">
+            <div style="display: flex;width: 100%;height: 100%;" v-if="node==='调压柜安装'||node==='调压柜'||(enginClassification != null && enginClassification.includes('调压柜'))">
               <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">调压箱底腿连接</h3>
               <ObsImageUpload
                 :class=" status == 'read-only' ? 'obsImageUploads' : '' "
@@ -814,6 +864,18 @@
                 :disabled="status == 'read-only' "
               ></ObsImageUpload>
             </div>
+            <div style="display: flex;width: 100%;height: 100%;" v-if="node==='调压柜'||(enginClassification != null && enginClassification.includes('调压柜'))">
+              <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 25px;">地面硬化</h3>
+              <ObsImageUpload
+                :class=" status == 'read-only' ? 'obsImageUploads' : '' "
+                ref="obsImageUpload"
+                :limit="11"
+                :fileType="['png', 'jpg', 'jpeg']"
+                @input="getGroundHardeningUrl(arguments,idx)"
+                :value="e.groundHardening"
+                :disabled="status == 'read-only' "
+              ></ObsImageUpload>
+            </div>
             <!-- </el-form-item> -->
             <div style="display: flex;  justify-content: flex-end; width: 100%;height: 100%;">
             <el-button  plain type="danger" @click=" handleDelete(e)" v-hasPermi="['zdsz:engineeringCivilNode:remove']" style="width: 94px;">删除</el-button>
@@ -824,7 +886,7 @@
         </el-checkbox-group>
       </el-tab-pane>
       <el-button class="check" plain type="danger" @click="checkWorking" v-show="currentStatus == 'check'  && isChecking " style="width: 80px;" :disabled="currentCollapses.length == 0">审核</el-button>
-      <el-button class="check" plain type="danger" @click="updateNodeOption" style="width: 94px;cursor: pointer;" v-if="currentStatus != 'check' && status != 'read-only'  ">修改</el-button>
+      <el-button class="check" plain type="danger" @click="updateNodeOption" style="width: 94px;cursor: pointer;" v-if="currentStatus != 'check' && status != 'read-only' ">修改</el-button>
     </el-tabs>
     </el-dialog>
     <!-- 审核 -->
@@ -1112,6 +1174,7 @@ export default {
     viewSource(e) {
       console.log('节点123',e)
       console.log('节点',e)
+
       this.node=e.name
       // alert(this.node)
       this.nodesource=e
@@ -1304,6 +1367,19 @@ export default {
     gettrenchProspectUrl(_,idx) {
       this.currentCollapses[idx].trenchProspect = [...arguments][0][0].map(e=>e.url) || [];
     },
+    getCannulaUrl(_,idx) {
+      console.log("this.currentCollapses",this.currentCollapses)
+      this.currentCollapses[idx].cannula = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getWallPlasterUrl(_,idx) {
+      this.currentCollapses[idx].wallPlaster = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getProtectiveNetUrl(_,idx) {
+      this.currentCollapses[idx].protectiveNet = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getStarAniseUrl(_,idx) {
+      this.currentCollapses[idx].starAnise = [...arguments][0][0].map(e=>e.url) || [];
+    },
     getstonePowderUrl(_,idx) {
       this.currentCollapses[idx].stonePowder = [...arguments][0][0].map(e=>e.url) || [];
     },

+ 272 - 5
src/components/ConstructionDetails/indexGY.vue

@@ -76,6 +76,134 @@
                 </el-collapse-item>
               </el-collapse>
             </el-checkbox-group>
+            <el-checkbox-group v-if="enginClassification=='架空管线' || enginClassification=='每日施工日志'" v-model="checkList">
+              <el-collapse
+                class="rmOldPie"
+                v-for="(e,idx) in currentCollapses"
+                :key="idx"
+              >
+                <el-collapse-item :name="idx">
+                  <template slot="title">
+                    <div style="display: flex;width: 100%;height: 100%;">
+                      <el-checkbox :label="e.id" @change="handleCheckedCitiesChange">
+                        <h2 style="margin-left: 1%;font-weight: 700;">{{ e.updateTime }}</h2>
+                      </el-checkbox>
+                      <h2 :style="'margin-left: 20%;font-weight: 700;'+ (e.state == '1'? 'color: #1ab394':'') ">  {{e.state=='0'?"该施工信息审核未通过":e.state=='1'?"该施工信息审核通过":""}}</h2>
+                    </div>
+                  </template>
+                  <div class="personInfo">
+                    <span>施工人:{{ userNames[idx].nickName }}</span>
+                    <span>施工人电话:{{ userNames[idx].phonenumber }}</span>
+                  </div>
+                  <hr>
+                  <el-form :model="e">
+                    <el-form-item
+                      :prop="e.remark"
+                      :class="'labelWidth'"
+                      label="施工内容"
+                      label-width="95px"
+                    >
+                      <div class="block" style="display: inline-block; margin-right: 20px;">
+                        <el-input v-model="e.remark" placeholder="请输入施工内容" style="width: 100%" maxlength="100"
+                                  type="textarea" :readonly="['review','read-only'].includes(status)"></el-input>
+                      </div>
+                    </el-form-item>
+                  </el-form>
+                  <div style="display: flex;width: 100%;height: 100%;">
+                    <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">图片</h3>
+                    <ObsImageUpload
+                      :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
+                      ref="obsImageUpload"
+                      :limit="11"
+                      :fileType="['png', 'jpg', 'jpeg']"
+                      @input="getUrl(arguments,idx)"
+                      :value="e.zEngiineeringPhotoBoList"
+                      :disabled="['review','read-only'].includes(status)"
+                    ></ObsImageUpload>
+                  </div>
+                  <!--  用料明细 -->
+                  <div v-if="['除锈刷油','全貌照片'].includes(activeNames)"
+                       v-for="(i,index) in e.zEngineeringMaterialBo || [] "
+                       :key="index"
+                  >
+                    <el-form :model="nodeInfo" class="nodeForm materialForm">
+                      <el-form-item
+                        :prop="i.materialQuality"
+                        :class="'labelWidth'"
+                        :label="'材质'"
+                        label-width="95px"
+                      >
+                        <el-select v-model="i.materialQuality" placeholder="请选择材质" style="width: 100%"
+                                   @change="getEnginSpecificationsList(i, index,idx)" :disabled="['review','read-only'].includes(status)">
+                          <el-option
+                            v-for="e in materialQualityList"
+                            :key="e.id"
+                            :label="e.name"
+                            :value="e.id"
+                          ></el-option>
+                        </el-select>
+                      </el-form-item>
+                      <el-form-item
+                        :prop="i.specifications"
+                        :class="'labelWidth'"
+                        label="规格"
+                        label-width="95px"
+
+                      >
+                        <el-select v-model="i.specifications" placeholder="请选择规格" style="width: 100%"
+                                   :disabled="['review','read-only'].includes(status)" @change="$forceUpdate">
+                          <el-option
+                            v-for="e in corrosionLevelListAll.filter(o => o.materId == i.materialQuality)"
+                            :key="e.id"
+                            :label="e.name"
+                            :value="e.id"
+                          ></el-option>
+                        </el-select>
+                      </el-form-item>
+                      <!--                    <el-form-item-->
+                      <!--                      :prop="i.remark + ''"-->
+                      <!--                      :class="'labelWidth'"-->
+                      <!--                      label="施工内容"-->
+                      <!--                      label-width="95px"-->
+                      <!--                    >-->
+                      <!--                      <div class="block" style="display: inline-block; margin-right: 20px;">-->
+                      <!--                        <el-input v-model="i.remark" placeholder="请输入施工内容" style="width: 100%" maxlength="100"-->
+                      <!--                                  type="textarea" :disabled="status == 'read-only'"></el-input>-->
+                      <!--                      </div>-->
+                      <!--                    </el-form-item>-->
+
+                      <el-form-item
+                        :prop="i.number + ''"
+                        :class="'labelWidth'"
+                        label="米数"
+                        label-width="95px"
+                      >
+                        <div class="block" style="display: inline-block; margin-right: 20px;">
+                          <el-input v-model="i.number" placeholder="请输入米数" style="width: 100%"
+                                    oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                                    max="999999999" :disabled="['review','read-only'].includes(status)"></el-input>
+                        </div>
+                      </el-form-item>
+                      <!--                    <el-form-item-->
+                      <!--                      :prop="i.remark + ''"-->
+                      <!--                      label="描述"-->
+                      <!--                    >-->
+                      <!--                      <div class="block" style="display: inline-block; margin-right: 20px;">-->
+                      <!--                        <el-input v-model="i.remark" placeholder="请输入描述" style="width: 100%" maxlength="100"-->
+                      <!--                                  :disabled="status == 'read-only'"></el-input>-->
+                      <!--                      </div>-->
+                      <!--                    </el-form-item>-->
+                    </el-form>
+                  </div>
+                  <div style="display: flex;  justify-content: flex-end; width: 100%;height: 100%;"
+                       v-if="status == 'put'">
+                    <el-button plain type="danger" @click=" handleDelete(e)"
+                               v-hasPermi="['zdsz:engineeringCivilNode:remove']" style="width: 94px;">删除
+                    </el-button>
+                  </div>
+                </el-collapse-item>
+              </el-collapse>
+            </el-checkbox-group>
             <el-checkbox-group v-if="enginClassification=='室内管线'" v-model="checkList">
               <el-collapse
                 class="rmOldPie"
@@ -194,7 +322,7 @@
                 </el-collapse-item>
               </el-collapse>
             </el-checkbox-group>
-            <el-checkbox-group v-if="enginClassification=='室外管线'" v-model="checkList">
+            <el-checkbox-group v-if="enginClassification=='庭院'" v-model="checkList">
               <el-collapse
                 class="rmOldPie"
                 v-for="(e,idx) in currentCollapses"
@@ -219,7 +347,7 @@
                   <hr>
                   <el-form :model="e">
                     <el-form-item
-                      v-if="activeNames=='隐蔽工程'"
+                      v-if="activeNames=='隐蔽工程' || activeNames=='管道施工记录'|| activeNames=='阀井'"
                       :prop="e.remark"
                       :class="'labelWidth'"
                       label="施工内容"
@@ -232,7 +360,7 @@
                     </el-form-item>
                   </el-form>
                   <!--  用料明细 -->
-                  <div v-if="['焊接、防腐','架空管线','下管','沟下连头'].includes(activeNames)"
+                  <div v-if="['焊接、防腐','架空管线','下管','沟下连头','顶管材料米数'].includes(activeNames)"
                        v-for="(i,index) in e.zEngineeringMaterialBo || [] "
                        :key="index"
                   >
@@ -261,7 +389,7 @@
 
                       >
                         <el-select v-model="i.specifications" placeholder="请选择规格" style="width: 100%"
-                                   :disabled="['review','read-only'].includes(status)">
+                                   :disabled="['review','read-only'].includes(status)" @change="$forceUpdate">
                           <el-option
                             v-for="e in corrosionLevelListAll.filter(o => o.materId == i.materialQuality)"
                             :key="e.id"
@@ -305,7 +433,7 @@
                       <!--                    </el-form-item>-->
                     </el-form>
                   </div>
-                  <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames != '回填、撤场'">
+                  <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames != '回填、撤场' && activeNames != '顶管材料米数' && activeNames != '调压柜'&& activeNames != '阀井'">
                     <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">图片</h3>
                     <ObsImageUpload
                       :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
@@ -317,6 +445,114 @@
                       :disabled="['review','read-only'].includes(status)"
                     ></ObsImageUpload>
                   </div>
+                  <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '调压柜'">
+                    <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">铭牌</h3>
+                    <ObsImageUpload
+                      :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
+                      ref="obsImageUpload"
+                      :limit="11"
+                      :fileType="['png', 'jpg', 'jpeg']"
+                      @input="getboxBrandUrl(arguments,idx)"
+                      :value="e.boxBrand"
+                      :disabled="['review','read-only'].includes(status)"
+                    ></ObsImageUpload>
+                  </div>
+                  <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '调压柜'">
+                    <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">底腿连接</h3>
+                    <ObsImageUpload
+                      :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
+                      ref="obsImageUpload"
+                      :limit="11"
+                      :fileType="['png', 'jpg', 'jpeg']"
+                      @input="getBottomLegUrl(arguments,idx)"
+                      :value="e.bottomLeg"
+                      :disabled="['review','read-only'].includes(status)"
+                    ></ObsImageUpload>
+                  </div>
+                  <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '调压柜'">
+                    <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">石粉回填</h3>
+                    <ObsImageUpload
+                      :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
+                      ref="obsImageUpload"
+                      :limit="11"
+                      :fileType="['png', 'jpg', 'jpeg']"
+                      @input="getstonePowderUrl(arguments,idx)"
+                      :value="e.stonePowder"
+                      :disabled="['review','read-only'].includes(status)"
+                    ></ObsImageUpload>
+                  </div>
+                  <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '调压柜'">
+                    <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">防雷接地</h3>
+                    <ObsImageUpload
+                      :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
+                      ref="obsImageUpload"
+                      :limit="11"
+                      :fileType="['png', 'jpg', 'jpeg']"
+                      @input="getLightningUrl(arguments,idx)"
+                      :value="e.lightning"
+                      :disabled="['review','read-only'].includes(status)"
+                    ></ObsImageUpload>
+                  </div>
+                  <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '调压柜'">
+                    <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">地面硬化</h3>
+                    <ObsImageUpload
+                      :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
+                      ref="obsImageUpload"
+                      :limit="11"
+                      :fileType="['png', 'jpg', 'jpeg']"
+                      @input="getGroundHardeningUrl(arguments,idx)"
+                      :value="e.groundHardening"
+                      :disabled="['review','read-only'].includes(status)"
+                    ></ObsImageUpload>
+                  </div>
+                  <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '阀井'">
+                    <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">套管</h3>
+                    <ObsImageUpload
+                      :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
+                      ref="obsImageUpload"
+                      :limit="11"
+                      :fileType="['png', 'jpg', 'jpeg']"
+                      @input="getCannulaUrl(arguments,idx)"
+                      :value="e.cannula"
+                      :disabled="['review','read-only'].includes(status)"
+                    ></ObsImageUpload>
+                  </div>
+                  <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '阀井'">
+                    <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">内壁抹灰</h3>
+                    <ObsImageUpload
+                      :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
+                      ref="obsImageUpload"
+                      :limit="11"
+                      :fileType="['png', 'jpg', 'jpeg']"
+                      @input="getWallPlasterUrl(arguments,idx)"
+                      :value="e.wallPlaster"
+                      :disabled="['review','read-only'].includes(status)"
+                    ></ObsImageUpload>
+                  </div>
+                  <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '阀井'">
+                    <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">防护网</h3>
+                    <ObsImageUpload
+                      :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
+                      ref="obsImageUpload"
+                      :limit="11"
+                      :fileType="['png', 'jpg', 'jpeg']"
+                      @input="getProtectiveNetUrl(arguments,idx)"
+                      :value="e.protectiveNet"
+                      :disabled="['review','read-only'].includes(status)"
+                    ></ObsImageUpload>
+                  </div>
+                  <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '阀井'">
+                    <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">八角</h3>
+                    <ObsImageUpload
+                      :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
+                      ref="obsImageUpload"
+                      :limit="11"
+                      :fileType="['png', 'jpg', 'jpeg']"
+                      @input="getStarAniseUrl(arguments,idx)"
+                      :value="e.starAnise"
+                      :disabled="['review','read-only'].includes(status)"
+                    ></ObsImageUpload>
+                  </div>
                   <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '回填、撤场'">
                     <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">回填前</h3>
                     <ObsImageUpload
@@ -703,6 +939,37 @@ export default {
         this.specificationsList = res.data
       })
     },
+    getboxBrandUrl(_,idx) {
+      this.currentCollapses[idx].boxBrand = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getBottomLegUrl(_,idx) {
+      this.currentCollapses[idx].bottomLeg = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getbeforeBottomUrl(_,idx) {
+      this.currentCollapses[idx].beforeBottom = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getstonePowderUrl(_,idx) {
+      this.currentCollapses[idx].stonePowder = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getCannulaUrl(_,idx) {
+      console.log("this.currentCollapses",this.currentCollapses)
+      this.currentCollapses[idx].cannula = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getWallPlasterUrl(_,idx) {
+      this.currentCollapses[idx].wallPlaster = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getLightningUrl(_,idx) {
+      this.currentCollapses[idx].lightning = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getStarAniseUrl(_,idx) {
+      this.currentCollapses[idx].starAnise = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getProtectiveNetUrl(_,idx) {
+      this.currentCollapses[idx].protectiveNet = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getGroundHardeningUrl(_,idx) {
+      this.currentCollapses[idx].groundHardening = [...arguments][0][0].map(e=>e.url) || [];
+    },
     getUrl(_, idx) {
       this.currentCollapses[idx].zEngiineeringPhotoBoList = [...arguments][0][0].map(e => e.url) || [];
     },

+ 81 - 18
src/components/ConstructionDetails/indexSZ.vue

@@ -54,7 +54,7 @@
                   </el-form-item>
                 </el-form>
                 <!--  用料明细 -->
-                <div v-if="['焊接、防腐','架空管线','下管','沟下连头'].includes(activeNames)"
+                <div v-if="['焊接、防腐','架空管线','下管','沟下连头','顶管材料米数'].includes(activeNames)"
                      v-for="(i,index) in e.zEngineeringMaterialBo || [] "
                      :key="index"
                 >
@@ -127,23 +127,71 @@
                     <!--                    </el-form-item>-->
                   </el-form>
                 </div>
-                <div v-if="['阀井'].includes(activeNames)"
-                     v-for="(i,index) in e.zEngineeringMaterialBo || [] "
-                     :key="index"
-                >
-                  <el-form :model="nodeInfo" class="nodeForm materialForm">
-                    <el-form-item
-                      :prop="i.remark"
-                      :class="'labelWidth'"
-                      label="型号"
-                      label-width="95px"
-                    >
-                      <el-input v-model="i.remark" placeholder="请输入型号" style="width: 100%" maxlength="100"
-                                type="textarea" :disabled="['review','read-only'].includes(status)"></el-input>
-                    </el-form-item>
-                  </el-form>
+<!--                <div v-if="['阀井'].includes(activeNames)"-->
+<!--                     v-for="(i,index) in e.zEngineeringMaterialBo || [] "-->
+<!--                     :key="index"-->
+<!--                >-->
+<!--                  <el-form :model="nodeInfo" class="nodeForm materialForm">-->
+<!--                    <el-form-item-->
+<!--                      :prop="i.remark"-->
+<!--                      :class="'labelWidth'"-->
+<!--                      label="型号"-->
+<!--                      label-width="95px"-->
+<!--                    >-->
+<!--                      <el-input v-model="i.remark" placeholder="请输入型号" style="width: 100%" maxlength="100"-->
+<!--                                type="textarea" :disabled="['review','read-only'].includes(status)"></el-input>-->
+<!--                    </el-form-item>-->
+<!--                  </el-form>-->
+<!--                </div>-->
+                <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '阀井'">
+                  <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">套管</h3>
+                  <ObsImageUpload
+                    :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
+                    ref="obsImageUpload"
+                    :limit="11"
+                    :fileType="['png', 'jpg', 'jpeg']"
+                    @input="getCannulaUrl(arguments,idx)"
+                    :value="e.cannula"
+                    :disabled="['review','read-only'].includes(status)"
+                  ></ObsImageUpload>
                 </div>
-                <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames != '回填、撤场'">
+                <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '阀井'">
+                  <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">内壁抹灰</h3>
+                  <ObsImageUpload
+                    :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
+                    ref="obsImageUpload"
+                    :limit="11"
+                    :fileType="['png', 'jpg', 'jpeg']"
+                    @input="getWallPlasterUrl(arguments,idx)"
+                    :value="e.wallPlaster"
+                    :disabled="['review','read-only'].includes(status)"
+                  ></ObsImageUpload>
+                </div>
+                <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '阀井'">
+                  <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">防护网</h3>
+                  <ObsImageUpload
+                    :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
+                    ref="obsImageUpload"
+                    :limit="11"
+                    :fileType="['png', 'jpg', 'jpeg']"
+                    @input="getProtectiveNetUrl(arguments,idx)"
+                    :value="e.protectiveNet"
+                    :disabled="['review','read-only'].includes(status)"
+                  ></ObsImageUpload>
+                </div>
+                <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames == '阀井'">
+                  <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">八角</h3>
+                  <ObsImageUpload
+                    :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
+                    ref="obsImageUpload"
+                    :limit="11"
+                    :fileType="['png', 'jpg', 'jpeg']"
+                    @input="getStarAniseUrl(arguments,idx)"
+                    :value="e.starAnise"
+                    :disabled="['review','read-only'].includes(status)"
+                  ></ObsImageUpload>
+                </div>
+                <div style="display: flex;width: 100%;height: 100%;" v-if="activeNames != '回填、撤场' && activeNames != '顶管材料米数' && activeNames != '调压柜'&& activeNames != '阀井'"">
                   <h3 style="width: 95px;font-weight: 600;text-align: left;text-indent: 25px;">图片</h3>
                   <ObsImageUpload
                     :class=" (status == 'read-only' || status == 'review' )? 'obsImageUploads' : '' "
@@ -537,6 +585,21 @@ export default {
         console.log('规格', res.data)
         this.specificationsList = res.data
       })
+    },getCannulaUrl(_,idx) {
+      console.log("this.currentCollapses",this.currentCollapses)
+      this.currentCollapses[idx].cannula = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getWallPlasterUrl(_,idx) {
+      this.currentCollapses[idx].wallPlaster = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getLightningUrl(_,idx) {
+      this.currentCollapses[idx].lightning = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getStarAniseUrl(_,idx) {
+      this.currentCollapses[idx].starAnise = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getProtectiveNetUrl(_,idx) {
+      this.currentCollapses[idx].protectiveNet = [...arguments][0][0].map(e=>e.url) || [];
     },
     getUrl(_, idx) {
       this.currentCollapses[idx].zEngiineeringPhotoBoList = [...arguments][0][0].map(e => e.url) || [];
@@ -650,7 +713,7 @@ export default {
 
     .check {
       position: fixed;
-      right: 22.1%;
+      right: 21.1%;
       top: 13.1%;
       height: 4.6%;
       //background-color: #CC9900;

+ 50 - 14
src/components/EnginNodeInfo/index.vue

@@ -71,22 +71,22 @@
         <ObsImageUpload ref="photosAfter" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.photosAfter"
                         @input="getphotosAfterUrl"></ObsImageUpload>
       </el-form-item>
-
-      <el-form-item label="沟上部分" prop="constructionRecords" v-if="currentContain.includes('onTheDitch')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
-        <ObsImageUpload ref="onTheDitch" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.onTheDitch"
-                        @input="getonTheDitchUrl"></ObsImageUpload>
-      </el-form-item>
       <el-form-item label="开挖前" prop="beforeBottom" v-if="currentContain.includes('beforeBottom')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
         <ObsImageUpload ref="beforeBottom" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.beforeBottom"
                         @input="getbeforeBottomUrl"></ObsImageUpload>
       </el-form-item>
+      <el-form-item label="下沟" prop="legBackfilling" v-if="currentContain.includes('legBackfilling')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
+        <ObsImageUpload ref="legBackfilling" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.legBackfilling"
+                        @input="getlegBackfillingUrl"></ObsImageUpload>
+      </el-form-item>
       <el-form-item label="回填" prop="inferiorSulcus" v-if="currentContain.includes('inferiorSulcus')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
         <ObsImageUpload ref="inferiorSulcus" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.inferiorSulcus"
                         @input="getinferiorSulcusUrl"></ObsImageUpload>
       </el-form-item>
-      <el-form-item label="下沟" prop="legBackfilling" v-if="currentContain.includes('legBackfilling')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
-        <ObsImageUpload ref="legBackfilling" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.legBackfilling"
-                        @input="getlegBackfillingUrl"></ObsImageUpload>
+
+      <el-form-item label="安装完成" prop="constructionRecords" v-if="currentContain.includes('onTheDitch')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
+        <ObsImageUpload ref="onTheDitch" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.onTheDitch"
+                        @input="getonTheDitchUrl"></ObsImageUpload>
       </el-form-item>
 
       <el-form-item label="视频" prop="Video" v-if="currentContain.includes('Video')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
@@ -113,6 +113,26 @@
         <ObsImageUpload ref="GroundHardening" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.groundHardening"
                         @input="getGroundHardeningUrl"></ObsImageUpload>
       </el-form-item>
+      <el-form-item label="地面硬化" prop="GroundHardening" v-if="currentContain.includes('GroundHardeningA')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
+        <ObsImageUpload ref="GroundHardening" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.groundHardening"
+                        @input="getGroundHardeningUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="套管" prop="cannula" v-if="currentContain.includes('cannula')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
+        <ObsImageUpload ref="cannula" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.cannula"
+                        @input="getCannulaUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="内壁抹灰" prop="wallPlaster" v-if="currentContain.includes('wallPlaster')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
+        <ObsImageUpload ref="wallPlaster" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.wallPlaster"
+                        @input="getWallPlasterUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="防护网" prop="protectiveNet" v-if="currentContain.includes('protectiveNet')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
+        <ObsImageUpload ref="protectiveNet" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.protectiveNet"
+                        @input="getProtectiveNetUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="八角" prop="starAnise" v-if="currentContain.includes('starAnise')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
+        <ObsImageUpload ref="starAnise" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.starAnise"
+                        @input="getStarAniseUrl"></ObsImageUpload>
+      </el-form-item>
 
       <el-form-item label="备注" prop="remark" v-if="currentContain.includes('remark')">
         <el-input
@@ -433,12 +453,12 @@ export default {
         zEngiineeringPhotoBoList: [
           {required: true, message: "至少上传一张图片", trigger: "change"}
         ],
-        constructTime: [
-          {required: true, message: "请选择施工时间", trigger: "change"}
-        ],
-        brand:[
-          {required: true, message: "请选择品牌", trigger: "change"}
-        ]
+        // constructTime: [
+        //   {required: true, message: "请选择施工时间", trigger: "change"}
+        // ],
+        // brand:[
+        //   {required: true, message: "请选择品牌", trigger: "change"}
+        // ]
       }
     }
   },
@@ -545,6 +565,10 @@ export default {
           this.nodeInfoBo.zEngineeringInfoBo.lightning=this.nodeInfo.lightning
           this.nodeInfoBo.zEngineeringInfoBo.bottomLeg=this.nodeInfo.bottomLeg
           this.nodeInfoBo.zEngineeringInfoBo.groundHardening=this.nodeInfo.groundHardening
+          this.nodeInfoBo.zEngineeringInfoBo.cannula=this.nodeInfo.cannula
+          this.nodeInfoBo.zEngineeringInfoBo.wallPlaster=this.nodeInfo.wallPlaster
+          this.nodeInfoBo.zEngineeringInfoBo.protectiveNet=this.nodeInfo.protectiveNet
+          this.nodeInfoBo.zEngineeringInfoBo.starAnise=this.nodeInfo.starAnise
           this.nodeInfoBo.zEngineeringInfoBo.remark=this.nodeInfo.remark
           delete this.nodeInfo.zEngiineeringPhotoBoList
           console.log('即将返回的节点Info',this.nodeInfoBo)
@@ -620,6 +644,18 @@ export default {
     getGroundHardeningUrl(url) {
       this.nodeInfo.groundHardening = this.$refs.GroundHardening.fileList ? this.$refs.GroundHardening.fileList.map(e=>e.url):[];
     },
+    getCannulaUrl(url) {
+      this.nodeInfo.cannula = this.$refs.cannula.fileList ? this.$refs.cannula.fileList.map(e=>e.url):[];
+    },
+    getWallPlasterUrl(url) {
+      this.nodeInfo.wallPlaster = this.$refs.wallPlaster.fileList ? this.$refs.wallPlaster.fileList.map(e=>e.url):[];
+    },
+    getProtectiveNetUrl(url) {
+      this.nodeInfo.protectiveNet = this.$refs.protectiveNet.fileList ? this.$refs.protectiveNet.fileList.map(e=>e.url):[];
+    },
+    getStarAniseUrl(url) {
+      this.nodeInfo.starAnise = this.$refs.starAnise.fileList ? this.$refs.starAnise.fileList.map(e=>e.url):[];
+    },
     getBottomLegUrl(url) {
       this.nodeInfo.bottomLeg = this.$refs.BottomLeg.fileList ? this.$refs.BottomLeg.fileList.map(e=>e.url):[];
     },

+ 364 - 144
src/components/EnginNodeInfo/indexGY.vue

@@ -6,10 +6,11 @@
  -->
 <template>
   <div style="width: 100%; height: 100%;">
-    <!-- 节点表单 -->
+    <!-- 节点表单 庭院 -->
     <el-form ref="fangxianForm" v-if="flag=='gy_out'" :model="nodeInfo" :rules="nodeRules" label-width="200px">
       <h2 style="margin-left: 16%;font-weight: 800;">{{ name }}</h2>
-      <el-form-item label="施工时间" prop="constructTime" :style=" 'margin-left: -27px' ">
+      <el-form-item label="施工时间" prop="constructTime"
+                    v-if="'调压柜' != name && '阀井'!==name&& '顶管材料米数'!==name&& '管道施工记录'!==name">
         <el-date-picker
           :disabled="formType"
           v-model="nodeInfo.constructTime"
@@ -19,20 +20,70 @@
         </el-date-picker>
       </el-form-item>
       <br>
-      <el-form-item label="照片" prop="zEngiineeringPhotoBoList" class="obsImage" v-if="'回填、撤场' != name">
-        <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.zEngiineeringPhotoBoList"
+      <el-form-item label="照片" prop="zEngiineeringPhotoBoList" class="obsImage"
+                    v-if="'回填、撤场' != name && '调压柜' != name && '阀井'!==name&& '顶管材料米数'!==name">
+        <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.zEngiineeringPhotoBoList"
                         @input="getUrl"></ObsImageUpload>
       </el-form-item>
+      <el-form-item label="铭牌" prop="zEngiineeringPhotoBoList" class="obsImage tygImage" v-if="'调压柜' === name">
+        <ObsImageUpload ref="boxBrand" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.boxBrand"
+                        @input="getboxBrandUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="底腿连接" prop="zEngiineeringPhotoBoList" class="obsImage tygImage" v-if="'调压柜' === name">
+        <ObsImageUpload ref="bottomLeg" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.bottomLeg"
+                        @input="getBottomLegUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="石粉回填" prop="zEngiineeringPhotoBoList" class="obsImage tygImage" v-if="'调压柜' === name">
+        <ObsImageUpload ref="stonePowder" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.stonePowder"
+                        @input="getstonePowderUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="防雷接地" prop="zEngiineeringPhotoBoList" class="obsImage tygImage" v-if="'调压柜' === name">
+        <ObsImageUpload ref="lightning" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.lightning"
+                        @input="getLightningUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="地面硬化" prop="zEngiineeringPhotoBoList" class="obsImage tygImage" v-if="'调压柜' === name">
+        <ObsImageUpload ref="groundHardening" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.groundHardening"
+                        @input="getGroundHardeningUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="套管" prop="zEngiineeringPhotoBoList" class="obsImage tygImage" v-if="'阀井' === name">
+        <ObsImageUpload ref="cannula" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.cannula"
+                        @input="getCannulaUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="内壁抹灰" prop="zEngiineeringPhotoBoList" class="obsImage tygImage" v-if="'阀井' === name">
+        <ObsImageUpload ref="wallPlaster" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.wallPlaster"
+                        @input="getWallPlasterUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="防护网" prop="zEngiineeringPhotoBoList" class="obsImage tygImage" v-if="'阀井' === name">
+        <ObsImageUpload ref="protectiveNet" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.protectiveNet"
+                        @input="getProtectiveNetUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="八角" prop="zEngiineeringPhotoBoList" class="obsImage tygImage" v-if="'阀井' === name">
+        <ObsImageUpload ref="starAnise" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.starAnise"
+                        @input="getStarAniseUrl"></ObsImageUpload>
+      </el-form-item>
       <el-form-item label="回填前" prop="zEngiineeringPhotoBoListOne" class="obsImage" v-if="'回填、撤场' == name">
-        <ObsImageUpload ref="obsImageUpload1" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.zEngiineeringPhotoBoListOne"
+        <ObsImageUpload ref="obsImageUpload1" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.zEngiineeringPhotoBoListOne"
                         @input="getUrl1"></ObsImageUpload>
       </el-form-item>
       <el-form-item label="铺设警示带" prop="zEngiineeringPhotoBoListTwo" class="obsImage" v-if="'回填、撤场' == name">
-        <ObsImageUpload ref="obsImageUpload2" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.zEngiineeringPhotoBoListTwo"
+        <ObsImageUpload ref="obsImageUpload2" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.zEngiineeringPhotoBoListTwo"
                         @input="getUrl2"></ObsImageUpload>
       </el-form-item>
       <el-form-item label="回填后" prop="zEngiineeringPhotoBoListThree" class="obsImage" v-if="'回填、撤场' == name">
-        <ObsImageUpload ref="obsImageUpload3" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.zEngiineeringPhotoBoListThree"
+        <ObsImageUpload ref="obsImageUpload3" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.zEngiineeringPhotoBoListThree"
                         @input="getUrl3"></ObsImageUpload>
       </el-form-item>
       <el-form-item label="文字说明" prop="remark" v-if="'隐蔽工程'== name">
@@ -43,10 +94,22 @@
           maxlength="255"
         />
       </el-form-item>
-      <div style="width: 25%;position: relative;left: 10.5%;top: -8px;" v-if="['焊接、防腐','架空管线','下管','沟下连头'].includes(name)">
+      <el-form-item label="备注" prop="remark" v-if="'调压柜'== name || '阀井'===name|| '管道施工记录'===name">
+        <el-input
+          v-model="nodeInfo.remark"
+          type="textarea"
+          placeholder="请输入"
+          maxlength="255"
+        />
+      </el-form-item>
+      <div style="width: 25%;position: relative;left: 15.5%;top: -8px;"
+           v-if="['焊接、防腐','架空管线','下管','沟下连头','顶管材料米数'].includes(name)">
         <el-button @click="addMaterial()">新增用料信息</el-button>
       </div>
-      <el-row v-for="(item, index) in zEngineeringMaterialBo" v-if="['焊接、防腐','架空管线','下管','沟下连头'].includes(name)" :key="index" style="left: 10.5%;" :class="'rowStructure'">
+      <el-row v-for="(item, index) in zEngineeringMaterialBo"
+              v-if="['焊接、防腐','架空管线','下管','沟下连头','顶管材料米数'].includes(name)" :key="index"
+              style="left: 10.5%;"
+              :class="'rowStructure'">
         <el-col :span="7">
           <el-form-item
             :prop="'zEngineeringMaterialBo.' + index + '.materialQuality'"
@@ -54,7 +117,9 @@
             label="材质"
 
           >
-            <el-select v-model="item.materialQuality" placeholder="请选择材质" style="width: 100%" @change="getEnginSpecificationsList(item, index)" filterable @blur="selectBlur(arguments,index,'materialQuality')">
+            <el-select v-model="item.materialQuality" placeholder="请选择材质" style="width: 100%"
+                       @change="getEnginSpecificationsList(item, index)" filterable
+                       @blur="selectBlur(arguments,index,'materialQuality')">
               <el-option
                 v-for="e in materialQualityList"
                 :key="e.id"
@@ -71,7 +136,8 @@
             label="规格"
 
           >
-            <el-select v-model="item.specifications" placeholder="请选择规格" style="width: 100%" filterable @blur="selectBlur(arguments,index,'specifications')">
+            <el-select v-model="item.specifications" placeholder="请选择规格" style="width: 100%" filterable
+                       @blur="selectBlur(arguments,index,'specifications')">
               <el-option
                 v-for="e in specificationsList"
                 :key="e.id"
@@ -88,7 +154,11 @@
             label="米数"
           >
             <div class="block" style="display: inline-block; margin-right: 20px;">
-              <el-input v-model="item.number" placeholder="请输入米数" style="width: 100%" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''" :disabled="status == 'read-only'"><template slot="append">米</template></el-input>
+              <el-input v-model="item.number" placeholder="请输入米数" style="width: 100%"
+                        oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                        :disabled="status == 'read-only'">
+                <template slot="append">米</template>
+              </el-input>
             </div>
           </el-form-item>
         </el-col>
@@ -96,41 +166,46 @@
           <el-form-item
             :prop="'zEngineeringMaterialBo.' + index + '.number'"
             label-width="50px"
-          ><div class="block" style="display: inline-block; margin-right: 20px;"></div></el-form-item>
-        </el-col>
-
-        <el-button v-if="zEngineeringMaterialBo.length > 0" @click="removezEngineeringMaterialBo(index)">
-            删除
-        </el-button>
-      </el-row>
-      <el-row v-for="(item, index) in zEngineeringMaterialBo" v-if="['阀井'].includes(name)" :key="index" style="left: 10.5%;" :class="'rowStructure'">
-        <el-col :span="7">
-          <el-form-item
-            :prop="'zEngineeringMaterialBo.' + index + '.remark'"
-            label-width="50px"
-            label="型号"
           >
-            <div class="block" style="display: inline-block; margin-right: 20px;">
-              <el-input v-model="item.remark" placeholder="请输入型号" style="width: 100%" :disabled="status == 'read-only'"/>
-            </div>
+            <div class="block" style="display: inline-block; margin-right: 20px;"></div>
           </el-form-item>
         </el-col>
-        <el-col :span="7">
-          <el-form-item
-            :prop="'zEngineeringMaterialBo.' + index + '.number'"
-            label-width="50px"
-          ><div class="block" style="display: inline-block; margin-right: 20px;"></div></el-form-item>
-        </el-col>
-
         <el-button v-if="zEngineeringMaterialBo.length > 0" @click="removezEngineeringMaterialBo(index)">
-            删除
+          删除
         </el-button>
       </el-row>
+      <!--      <el-row v-for="(item, index) in zEngineeringMaterialBo" v-if="['阀井'].includes(name)" :key="index"-->
+      <!--              style="left: 10.5%;" :class="'rowStructure'">-->
+      <!--        <el-col :span="7">-->
+      <!--          <el-form-item-->
+      <!--            :prop="'zEngineeringMaterialBo.' + index + '.remark'"-->
+      <!--            label-width="50px"-->
+      <!--            label="型号"-->
+      <!--          >-->
+      <!--            <div class="block" style="display: inline-block; margin-right: 20px;">-->
+      <!--              <el-input v-model="item.remark" placeholder="请输入型号" style="width: 100%"-->
+      <!--                        :disabled="status == 'read-only'"/>-->
+      <!--            </div>-->
+      <!--          </el-form-item>-->
+      <!--        </el-col>-->
+      <!--        <el-col :span="7">-->
+      <!--          <el-form-item-->
+      <!--            :prop="'zEngineeringMaterialBo.' + index + '.number'"-->
+      <!--            label-width="50px"-->
+      <!--          >-->
+      <!--            <div class="block" style="display: inline-block; margin-right: 20px;"></div>-->
+      <!--          </el-form-item>-->
+      <!--        </el-col>-->
+
+      <!--        <el-button v-if="zEngineeringMaterialBo.length > 0" @click="removezEngineeringMaterialBo(index)">-->
+      <!--          删除-->
+      <!--        </el-button>-->
+      <!--      </el-row>-->
       <hr style="position: relative;left: 10%;">
     </el-form>
     <el-form ref="fangxianForm" v-if="flag=='gy_inner'" :model="nodeInfo" :rules="nodeRules" label-width="200px">
       <h2 style="margin-left: 16%;font-weight: 800;">{{ name }}</h2>
-      <el-form-item label="施工时间" prop="constructTime" :style=" 'margin-left: -27px' ">
+      <el-form-item label="施工时间" prop="constructTime">
         <el-date-picker
           :disabled="formType"
           v-model="nodeInfo.constructTime"
@@ -140,20 +215,24 @@
         </el-date-picker>
       </el-form-item>
       <el-form-item label="照片" prop="zEngiineeringPhotoBoList" class="obsImage">
-        <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.zEngiineeringPhotoBoList"
+        <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.zEngiineeringPhotoBoList"
                         @input="getUrl"></ObsImageUpload>
       </el-form-item>
       <div style="width: 25%;position: relative;left: 20.5%;top: -8px;" v-if="['焊接'].includes(name)">
         <el-button @click="addMaterial()">新增用料信息</el-button>
       </div>
-      <el-row v-for="(item, index) in zEngineeringMaterialBo" v-if="['焊接'].includes(name)" :key="index" style="left: 13.5%;" :class="'rowStructure'">
+      <el-row v-for="(item, index) in zEngineeringMaterialBo" v-if="['焊接'].includes(name)" :key="index"
+              style="left: 13.5%;" :class="'rowStructure'">
         <el-col :span="7">
           <el-form-item
             :prop="'zEngineeringMaterialBo.' + index + '.materialQuality'"
             label-width="50px"
             label="材质"
           >
-            <el-select v-model="item.materialQuality" placeholder="请选择材质" style="width: 100%" @change="getEnginSpecificationsList(item, index)" filterable @blur="selectBlur(arguments,index,'materialQuality')">
+            <el-select v-model="item.materialQuality" placeholder="请选择材质" style="width: 100%"
+                       @change="getEnginSpecificationsList(item, index)" filterable
+                       @blur="selectBlur(arguments,index,'materialQuality')">
               <el-option
                 v-for="e in materialQualityList"
                 :key="e.id"
@@ -169,7 +248,8 @@
             label-width="50px"
             label="规格"
           >
-            <el-select v-model="item.specifications" placeholder="请选择规格" style="width: 100%" filterable @blur="selectBlur(arguments,index,'specifications')">
+            <el-select v-model="item.specifications" placeholder="请选择规格" style="width: 100%" filterable
+                       @blur="selectBlur(arguments,index,'specifications')">
               <el-option
                 v-for="e in specificationsList"
                 :key="e.id"
@@ -186,7 +266,11 @@
             label="米数"
           >
             <div class="block" style="display: inline-block; margin-right: 20px;">
-              <el-input v-model="item.number" placeholder="请输入米数" style="width: 100%" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''" :disabled="status == 'read-only'"><template slot="append">米</template></el-input>
+              <el-input v-model="item.number" placeholder="请输入米数" style="width: 100%"
+                        oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                        :disabled="status == 'read-only'">
+                <template slot="append">米</template>
+              </el-input>
             </div>
           </el-form-item>
         </el-col>
@@ -194,11 +278,13 @@
           <el-form-item
             :prop="'zEngineeringMaterialBo.' + index + '.number'"
             label-width="50px"
-          ><div class="block" style="display: inline-block; margin-right: 20px;"></div></el-form-item>
+          >
+            <div class="block" style="display: inline-block; margin-right: 20px;"></div>
+          </el-form-item>
         </el-col>
 
         <el-button v-if="zEngineeringMaterialBo.length > 0" @click="removezEngineeringMaterialBo(index)">
-            删除
+          删除
         </el-button>
       </el-row>
       <hr style="position: relative;left: 10%;">
@@ -222,15 +308,108 @@
       >
         <div class="block" style="display: inline-block; margin-right: 20px;">
           <el-input v-model="nodeInfo.remark" placeholder="请输入施工内容" style="width: 100%" maxlength="100"
-                    type="textarea" ></el-input>
+                    type="textarea"></el-input>
         </div>
       </el-form-item>
       <el-form-item label="照片" prop="zEngiineeringPhotoBoList" class="obsImage">
-        <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.zEngiineeringPhotoBoList"
+        <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.zEngiineeringPhotoBoList"
                         @input="getUrl"></ObsImageUpload>
       </el-form-item>
       <hr style="position: relative;left: 10%;">
     </el-form>
+    <el-form ref="fangxianForm" v-if="flag=='gy_jkgx' || flag=='gy_log_every_day'" :model="nodeInfo" :rules="nodeRules"
+             label-width="200px">
+      <h2 style="margin-left: 16%;font-weight: 800;">{{ name }}</h2>
+      <el-form-item
+        :prop="nodeInfo.remark"
+        :class="'labelWidth'"
+        label="施工内容"
+        label-width="200px"
+      >
+        <div class="block" style="display: inline-block; margin-right: 20px;">
+          <el-input v-model="nodeInfo.remark" placeholder="请输入施工内容" style="width: 100%" maxlength="100"
+                    type="textarea"></el-input>
+        </div>
+      </el-form-item>
+      <el-form-item label="照片" prop="zEngiineeringPhotoBoList" class="obsImage">
+        <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.zEngiineeringPhotoBoList"
+                        @input="getUrl"></ObsImageUpload>
+      </el-form-item>
+      <div style="width: 25%;position: relative;left: 15.5%;top: -8px;"
+           v-if="['焊接、防腐','架空管线','下管','沟下连头','顶管材料米数'].includes(name)">
+        <el-button @click="addMaterial()">新增用料信息</el-button>
+      </div>
+      <el-row v-for="(item, index) in zEngineeringMaterialBo"
+              v-if="['除锈刷油','全貌照片'].includes(name)" :key="index" style="left: 10.5%;"
+              :class="'rowStructure'">
+        <el-col :span="7">
+          <el-form-item
+            :prop="'zEngineeringMaterialBo.' + index + '.materialQuality'"
+            label-width="50px"
+            label="材质"
+
+          >
+            <el-select v-model="item.materialQuality" placeholder="请选择材质" style="width: 100%"
+                       @change="getEnginSpecificationsList(item, index)" filterable
+                       @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">
+          <el-form-item
+            :prop="'zEngineeringMaterialBo.' + index + '.specifications'"
+            label-width="50px"
+            label="规格"
+
+          >
+            <el-select v-model="item.specifications" placeholder="请选择规格" style="width: 100%" filterable
+                       @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>
+        <el-col :span="7">
+          <el-form-item
+            :prop="'zEngineeringMaterialBo.' + index + '.number'"
+            label-width="50px"
+            label="米数"
+          >
+            <div class="block" style="display: inline-block; margin-right: 20px;">
+              <el-input v-model="item.number" placeholder="请输入米数" style="width: 100%"
+                        oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                        :disabled="status == 'read-only'">
+                <template slot="append">米</template>
+              </el-input>
+            </div>
+          </el-form-item>
+        </el-col>
+        <el-col :span="7">
+          <el-form-item
+            :prop="'zEngineeringMaterialBo.' + index + '.number'"
+            label-width="50px"
+          >
+            <div class="block" style="display: inline-block; margin-right: 20px;"></div>
+          </el-form-item>
+        </el-col>
+        <el-button v-if="zEngineeringMaterialBo.length > 0" @click="removezEngineeringMaterialBo(index)">
+          删除
+        </el-button>
+      </el-row>
+      <hr style="position: relative;left: 10%;">
+    </el-form>
   </div>
 </template>
 
@@ -242,61 +421,58 @@ import {
 
 } from '@/api/zdsz/enginee'
 import ObsVideoUpload from "@/components/ObsVideoUpload/index.vue";
+
 export default {
-  name:'EnginNodeInfoGY',
-  props:['types','enginType','enginSort','enginNode','name','currentContain','updateOption','status','flag'],
-  components:{ObsVideoUpload},
-  data(){
+  name: 'EnginNodeInfoGY',
+  props: ['types', 'enginType', 'enginSort', 'enginNode', 'name', 'currentContain', 'updateOption', 'status', 'flag'],
+  components: {ObsVideoUpload},
+  data() {
     return {
-      constructAccordingDrawingsOption:[
+      constructAccordingDrawingsOption: [
         {
-          value:'Y',
-          label:'是'
+          value: 'Y',
+          label: '是'
         },
         {
-          value:'N',
-          label:'否'
+          value: 'N',
+          label: '否'
         }
       ],
-      segmentedCompressionQualifiedOption:[
+      segmentedCompressionQualifiedOption: [
         {
-          value:'1',
-          label:'合格'
+          value: '1',
+          label: '合格'
         },
         {
-          value:'0',
-          label:'不合格'
+          value: '0',
+          label: '不合格'
         }
       ],
-      materialQualityList_zbf:[],                      // 自闭阀option
-      materialQualityList_zjg:[],                      // 灶具管option
-      materialQualityList:[],                     // 材质
-      specificationsList:[],                      // 规格
-      materialComponList:[],
-      nodeInfo:{
-        backfillTime:'',                        // 回填时间
-        constructTime:'',
-        constructAccordingDrawings:'',
-        segmentedCompressionQualified:'',
-        zEngiineeringPhotoBoList:[],            // 照片集合
-        zEngiineeringPhotoBoListOne:[],            // 照片集合
-        zEngiineeringPhotoBoListTwo:[],            // 照片集合
-        zEngiineeringPhotoBoListThree:[],            // 照片集合
-        zEngineeringMaterialBo:[],              // 用料集合
-        remark:'',
-        constructAddre:''
+      materialQualityList_zbf: [],                      // 自闭阀option
+      materialQualityList_zjg: [],                      // 灶具管option
+      materialQualityList: [],                     // 材质
+      specificationsList: [],                      // 规格
+      materialComponList: [],
+      nodeInfo: {
+        backfillTime: '',                        // 回填时间
+        constructTime: '',
+        constructAccordingDrawings: '',
+        segmentedCompressionQualified: '',
+        zEngiineeringPhotoBoList: [],            // 照片集合
+        zEngiineeringPhotoBoListOne: [],            // 照片集合
+        zEngiineeringPhotoBoListTwo: [],            // 照片集合
+        zEngiineeringPhotoBoListThree: [],            // 照片集合
+        zEngineeringMaterialBo: [],              // 用料集合
+        remark: '',
+        constructAddre: ''
       },
-      nodeInfoBo:{
-        zEngineeringInfoBo:{
-
-        }
+      nodeInfoBo: {
+        zEngineeringInfoBo: {}
       },                                         //  节点信息
-      zEngineeringMaterialBo:[
-
-      ],                                         //  用料信息
-      nodeRules:{
+      zEngineeringMaterialBo: [],                                         //  用料信息
+      nodeRules: {
         zEngiineeringPhotoBoList: [
-          {required: true, message: "至少上传一张图片", trigger: "change"}
+          {required: false, message: "至少上传一张图片", trigger: "change"}
         ],
         constructTime: [
           {required: true, message: "请选择施工时间", trigger: "change"}
@@ -304,28 +480,28 @@ export default {
       }
     }
   },
-  created(){
-      // 获取材质
-      let enginType = '工业工程'
-      getEnginMaterialQualityList({enginType:enginType}).then(res => {
-        this.materialQualityList = res.data
-      })
+  created() {
+    // 获取材质
+    let enginType = '工业工程'
+    getEnginMaterialQualityList({enginType: enginType}).then(res => {
+      this.materialQualityList = res.data
+    })
   },
-  mounted(){
-    console.log('当前节点name',this.name)
-    console.log('update',this.updateOption)
-    console.log('当前节点currentContain',this.types)
+  mounted() {
+    console.log('当前节点name', this.name)
+    console.log('update', this.updateOption)
+    console.log('当前节点currentContain', this.types)
     this.materialComponList = this.currentContain.find(e => {
-      if( e instanceof Array){
+      if (e instanceof Array) {
         return e
       }
 
     })
 
-    if(this.status == '修改'){
+    if (this.status == '修改') {
       this.currentContain.find(e => {
         console.log(this.updateOption)
-        if( e instanceof Array){
+        if (e instanceof Array) {
           this.zEngineeringMaterialBo = this.updateOption.zEngineeringInfoBoList[0].zEngineeringMaterialBo
         }
         this.nodeInfo[e] = this.updateOption[e]
@@ -338,49 +514,59 @@ export default {
     setTimeout(() => {
       // 至少存在一条物料
       this.addMaterial()
-    },1500)
-    console.log('用料组件',this.materialComponList)
-    console.log('用料信息',this.zEngineeringMaterialBo)
-    console.log('节点信息',this.nodeInfo)
+    }, 1500)
+    console.log('用料组件', this.materialComponList)
+    console.log('用料信息', this.zEngineeringMaterialBo)
+    console.log('节点信息', this.nodeInfo)
     // 添加用料对象
     // this.addMaterial()
   },
-  methods:{
-    selectBlur(_,index,name) {
+  methods: {
+    selectBlur(_, index, name) {
       this.zEngineeringMaterialBo[index][name] = [...arguments][0][0].target.value
     },
     // 收集节点信息
-    infoCollection(){
+    infoCollection() {
       let result = null
       console.log(this.$refs.fangxianForm)
       this.$refs.fangxianForm.validate(valid => {
-        if(valid){
+        if (valid) {
           // 收集主节点信息
           this.currentContain.forEach(e => {
-            if( e instanceof Array){
+            if (e instanceof Array) {
               // 包含用料 特殊处理
               return
             }
             this.nodeInfoBo[e] = this.nodeInfo[e]
           })
           this.nodeInfoBo.type = this.name
-          if (this.name!='回填、撤场'){
+          if (this.name != '回填、撤场') {
             this.nodeInfoBo.zEngineeringInfoBo.zEngiineeringPhotoBoList = []
             this.nodeInfoBo.zEngineeringInfoBo.zEngiineeringPhotoBoList = this.nodeInfo.zEngiineeringPhotoBoList
           }
-          if (this.name=='回填、撤场'){
+          if (this.name == '回填、撤场') {
             this.nodeInfoBo.zEngineeringInfoBo.zEngiineeringPhotoBoListOne = []
             this.nodeInfoBo.zEngineeringInfoBo.zEngiineeringPhotoBoListTwo = []
             this.nodeInfoBo.zEngineeringInfoBo.zEngiineeringPhotoBoListThree = []
             this.nodeInfoBo.zEngineeringInfoBo.zEngiineeringPhotoBoListOne = this.nodeInfo.zEngiineeringPhotoBoListOne
             this.nodeInfoBo.zEngineeringInfoBo.zEngiineeringPhotoBoListTwo = this.nodeInfo.zEngiineeringPhotoBoListTwo
             this.nodeInfoBo.zEngineeringInfoBo.zEngiineeringPhotoBoListThree = this.nodeInfo.zEngiineeringPhotoBoListThree
-          }          this.nodeInfoBo.zEngineeringInfoBo.zEngineeringMaterialBo = this.zEngineeringMaterialBo
-          this.nodeInfoBo.zEngineeringInfoBo.constructAddre=this.nodeInfo.constructAddre
-          this.nodeInfoBo.zEngineeringInfoBo.constructTime=this.nodeInfo.constructTime
-          this.nodeInfoBo.zEngineeringInfoBo.remark=this.nodeInfo.remark
+          }
+          this.nodeInfoBo.zEngineeringInfoBo.zEngineeringMaterialBo = this.zEngineeringMaterialBo
+          this.nodeInfoBo.zEngineeringInfoBo.constructAddre = this.nodeInfo.constructAddre
+          this.nodeInfoBo.zEngineeringInfoBo.constructTime = this.nodeInfo.constructTime
+          this.nodeInfoBo.zEngineeringInfoBo.boxBrand = this.nodeInfo.boxBrand
+          this.nodeInfoBo.zEngineeringInfoBo.lightning = this.nodeInfo.lightning
+          this.nodeInfoBo.zEngineeringInfoBo.bottomLeg = this.nodeInfo.bottomLeg
+          this.nodeInfoBo.zEngineeringInfoBo.stonePowder = this.nodeInfo.stonePowder
+          this.nodeInfoBo.zEngineeringInfoBo.groundHardening = this.nodeInfo.groundHardening
+          this.nodeInfoBo.zEngineeringInfoBo.cannula = this.nodeInfo.cannula
+          this.nodeInfoBo.zEngineeringInfoBo.wallPlaster = this.nodeInfo.wallPlaster
+          this.nodeInfoBo.zEngineeringInfoBo.protectiveNet = this.nodeInfo.protectiveNet
+          this.nodeInfoBo.zEngineeringInfoBo.starAnise = this.nodeInfo.starAnise
+          this.nodeInfoBo.zEngineeringInfoBo.remark = this.nodeInfo.remark
           // delete this.nodeInfo.zEngiineeringPhotoBoList
-          console.log('即将返回的节点Info',this.nodeInfoBo)
+          console.log('即将返回的节点Info', this.nodeInfoBo)
           result = this.nodeInfoBo
         } else {
           this.$message({
@@ -392,7 +578,7 @@ export default {
       })
       return result
     },
-    addMaterial(){
+    addMaterial() {
       let materialBo = {}
       // this.materialComponList.forEach(e => {
       //   materialBo[e] = null
@@ -401,7 +587,7 @@ export default {
       this.nodeInfo.zEngineeringMaterialBo.push(materialBo)
       // console.log('节点用料参数对象',this.zEngineeringMaterialBo)
     },
-    addzEngineeringMaterialBo(option,params){
+    addzEngineeringMaterialBo(option, params) {
       let material = {}
       params.forEach(e => {
         material[e] = ""
@@ -410,29 +596,56 @@ export default {
         material
       )
     },
-    removezEngineeringMaterialBo(index){
+    removezEngineeringMaterialBo(index) {
       this.zEngineeringMaterialBo.splice(index, 1);
     },
     // 填充已有数据
-    updateInfo(e){
-      console.log('填充',e)
+    updateInfo(e) {
+      console.log('填充', e)
     },
     getUrl(url) {
-      this.nodeInfo.zEngiineeringPhotoBoList = this.$refs.obsImageUpload.fileList ? this.$refs.obsImageUpload.fileList.map(e=>e.url):[];
+      this.nodeInfo.zEngiineeringPhotoBoList = this.$refs.obsImageUpload.fileList ? this.$refs.obsImageUpload.fileList.map(e => e.url) : [];
+    },
+    getProtectiveNetUrl(url) {
+      this.nodeInfo.protectiveNet = this.$refs.protectiveNet.fileList ? this.$refs.protectiveNet.fileList.map(e => e.url) : [];
+    },
+    getWallPlasterUrl(url) {
+      this.nodeInfo.wallPlaster = this.$refs.wallPlaster.fileList ? this.$refs.wallPlaster.fileList.map(e => e.url) : [];
+    },
+    getStarAniseUrl(url) {
+      this.nodeInfo.starAnise = this.$refs.starAnise.fileList ? this.$refs.starAnise.fileList.map(e => e.url) : [];
+    },
+    getCannulaUrl(url) {
+      this.nodeInfo.cannula = this.$refs.cannula.fileList ? this.$refs.cannula.fileList.map(e => e.url) : [];
+    },
+    getGroundHardeningUrl(url) {
+      this.nodeInfo.groundHardening = this.$refs.groundHardening.fileList ? this.$refs.groundHardening.fileList.map(e => e.url) : [];
+    },
+    getLightningUrl(url) {
+      this.nodeInfo.lightning = this.$refs.lightning.fileList ? this.$refs.lightning.fileList.map(e => e.url) : [];
+    },
+    getboxBrandUrl(url) {
+      this.nodeInfo.boxBrand = this.$refs.boxBrand.fileList ? this.$refs.boxBrand.fileList.map(e => e.url) : [];
+    },
+    getBottomLegUrl(url) {
+      this.nodeInfo.bottomLeg = this.$refs.bottomLeg.fileList ? this.$refs.bottomLeg.fileList.map(e => e.url) : [];
+    },
+    getstonePowderUrl(url) {
+      this.nodeInfo.stonePowder = this.$refs.stonePowder.fileList ? this.$refs.stonePowder.fileList.map(e => e.url) : [];
     },
     getUrl1(url) {
-      this.nodeInfo.zEngiineeringPhotoBoListOne = this.$refs.obsImageUpload1.fileList ? this.$refs.obsImageUpload1.fileList.map(e=>e.url):[];
+      this.nodeInfo.zEngiineeringPhotoBoListOne = this.$refs.obsImageUpload1.fileList ? this.$refs.obsImageUpload1.fileList.map(e => e.url) : [];
     },
     getUrl2(url) {
-      this.nodeInfo.zEngiineeringPhotoBoListTwo = this.$refs.obsImageUpload2.fileList ? this.$refs.obsImageUpload2.fileList.map(e=>e.url):[];
+      this.nodeInfo.zEngiineeringPhotoBoListTwo = this.$refs.obsImageUpload2.fileList ? this.$refs.obsImageUpload2.fileList.map(e => e.url) : [];
     },
     getUrl3(url) {
-      this.nodeInfo.zEngiineeringPhotoBoListThree = this.$refs.obsImageUpload3.fileList ? this.$refs.obsImageUpload3.fileList.map(e=>e.url):[];
+      this.nodeInfo.zEngiineeringPhotoBoListThree = this.$refs.obsImageUpload3.fileList ? this.$refs.obsImageUpload3.fileList.map(e => e.url) : [];
     },
     // 获取材质规格
-    getEnginSpecificationsList(e,idx){
+    getEnginSpecificationsList(e, idx) {
       this.zEngineeringMaterialBo[idx].specifications = null;
-      getEnginSpecificationsList({materId:e.materialQuality}).then(res => {
+      getEnginSpecificationsList({materId: e.materialQuality}).then(res => {
         this.specificationsList = res.data
       })
     },
@@ -442,49 +655,56 @@ export default {
 
 <style lang="scss" scoped>
 
-::v-deep .material_desc{
-  .el-form-item__content{
+::v-deep .material_desc {
+  .el-form-item__content {
     margin-left: 50px !important;
   }
 }
-::v-deep .el-form{
+
+::v-deep .el-form {
   position: relative;
   left: -10%;
-  .el-form-item{
+
+  .el-form-item {
     display: inline-block;
   }
-  .obsImage{
+
+  .obsImage {
     width: 100%;
     display: block;
     margin-left: 8%;
-    .el-form-item__label{
-      width: 113px !important;
+
+    .el-form-item__label {
+      width: 160px !important;
     }
-    .el-form-item__error{
+
+    .el-form-item__error {
       position: relative;
       left: -10%;
     }
   }
 
-  .obsActiveImage{
-    .el-form{
-        left:-14% !important
+  .obsActiveImage {
+    .el-form {
+      left: -14% !important
     }
-    .el-form-item__label{
+
+    .el-form-item__label {
       width: 97px !important;
     }
   }
 
-  .obsActiveImageStructure{
-    .el-form-item__label{
-      width:161px !important;
+  .obsActiveImageStructure {
+    .el-form-item__label {
+      width: 161px !important;
     }
   }
 
-  .rowStructure{
+  .rowStructure {
     padding-left: 3.6%;
-    .el-col .el-form-item{
-      width:73%
+
+    .el-col .el-form-item {
+      width: 73%
     }
   }
 }

+ 206 - 149
src/components/EnginNodeInfo/indexSZ.vue

@@ -9,44 +9,73 @@
     <!-- 节点表单 -->
     <el-form ref="fangxianForm" :model="nodeInfo" :rules="nodeRules" label-width="200px">
       <h2 style="margin-left: 16%;font-weight: 800;">{{ name }}</h2>
-        <el-form-item label="施工时间" prop="constructTime">
-          <el-date-picker
-            :disabled="formType"
-            v-model="nodeInfo.constructTime"
-            value-format="yyyy-MM-dd hh:mm:ss"
-            type="datetime"
-            placeholder="请选择施工时间">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="施工内容" prop="remark">
-          <el-input
-            v-model="nodeInfo.remark"
-            type="textarea"
-            placeholder="请输入施工内容"
-            maxlength="255"
-          />
-        </el-form-item>
-      <el-form-item label="照片" prop="zEngiineeringPhotoBoList" class="obsImage" v-if="'回填、撤场' != name">
-        <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.zEngiineeringPhotoBoList"
+      <el-form-item label="施工时间" prop="constructTime"
+                    v-if="'阀井'!==name&& '顶管材料米数'!==name&& '每日施工日志'!==name&& '管道施工记录'!==name">
+        <el-date-picker
+          :disabled="formType"
+          v-model="nodeInfo.constructTime"
+          value-format="yyyy-MM-dd hh:mm:ss"
+          type="datetime"
+          placeholder="请选择施工时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="施工内容" prop="remark">
+        <el-input
+          v-model="nodeInfo.remark"
+          type="textarea"
+          placeholder="请输入施工内容"
+          maxlength="255"
+        />
+      </el-form-item>
+      <el-form-item label="照片" prop="zEngiineeringPhotoBoList" class="obsImage"
+                    v-if="'回填、撤场' != name && '调压柜' != name && '阀井'!==name&& '顶管材料米数'!==name">
+        <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.zEngiineeringPhotoBoList"
                         @input="getUrl"></ObsImageUpload>
       </el-form-item>
+      <el-form-item label="套管" prop="zEngiineeringPhotoBoList" class="obsImage tygImage" v-if="'阀井' === name">
+        <ObsImageUpload ref="cannula" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.cannula"
+                        @input="getCannulaUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="内壁抹灰" prop="zEngiineeringPhotoBoList" class="obsImage tygImage" v-if="'阀井' === name">
+        <ObsImageUpload ref="wallPlaster" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.wallPlaster"
+                        @input="getWallPlasterUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="防护网" prop="zEngiineeringPhotoBoList" class="obsImage tygImage" v-if="'阀井' === name">
+        <ObsImageUpload ref="protectiveNet" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.protectiveNet"
+                        @input="getProtectiveNetUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="八角" prop="zEngiineeringPhotoBoList" class="obsImage tygImage" v-if="'阀井' === name">
+        <ObsImageUpload ref="starAnise" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.starAnise"
+                        @input="getStarAniseUrl"></ObsImageUpload>
+      </el-form-item>
       <el-form-item label="回填前" prop="zEngiineeringPhotoBoListOne" class="obsImage" v-if="'回填、撤场' == name">
-        <ObsImageUpload ref="obsImageUpload1" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.zEngiineeringPhotoBoListOne"
+        <ObsImageUpload ref="obsImageUpload1" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.zEngiineeringPhotoBoListOne"
                         @input="getUrl1"></ObsImageUpload>
       </el-form-item>
       <el-form-item label="铺设警示带" prop="zEngiineeringPhotoBoListTwo" class="obsImage" v-if="'回填、撤场' == name">
-        <ObsImageUpload ref="obsImageUpload2" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.zEngiineeringPhotoBoListTwo"
+        <ObsImageUpload ref="obsImageUpload2" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.zEngiineeringPhotoBoListTwo"
                         @input="getUrl2"></ObsImageUpload>
       </el-form-item>
       <el-form-item label="回填后" prop="zEngiineeringPhotoBoListThree" class="obsImage" v-if="'回填、撤场' == name">
-        <ObsImageUpload ref="obsImageUpload3" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.zEngiineeringPhotoBoListThree"
+        <ObsImageUpload ref="obsImageUpload3" :limit="9999" :fileType="['png', 'jpg', 'jpeg']"
+                        :value="nodeInfo.zEngiineeringPhotoBoListThree"
                         @input="getUrl3"></ObsImageUpload>
       </el-form-item>
 
-      <div style="width: 25%;position: relative;left: 20.5%;top: -8px;" v-if="['焊接、防腐','架空管线','下管','沟下连头'].includes(name)">
+      <div style="width: 25%;position: relative;left: 20.5%;top: -8px;"
+           v-if="['焊接、防腐','架空管线','下管','沟下连头','顶管材料米数'].includes(name)">
         <el-button @click="addMaterial()">新增用料信息</el-button>
       </div>
-      <el-row v-for="(item, index) in zEngineeringMaterialBo" v-if="['焊接、防腐','架空管线','下管','沟下连头'].includes(name)" :key="index" style="left: 10.5%;" :class="'rowStructure'">
+      <el-row v-for="(item, index) in zEngineeringMaterialBo"
+              v-if="['焊接、防腐','架空管线','下管','沟下连头','顶管材料米数'].includes(name)" :key="index"
+              style="left: 10.5%;" :class="'rowStructure'">
         <el-col :span="7">
           <el-form-item
             :prop="'zEngineeringMaterialBo.' + index + '.materialQuality'"
@@ -54,7 +83,9 @@
             label="材质"
 
           >
-            <el-select v-model="item.materialQuality" placeholder="请选择材质" style="width: 100%" @change="getEnginSpecificationsList(item, index)" filterable @blur="selectBlur(arguments,index,'materialQuality')">
+            <el-select v-model="item.materialQuality" placeholder="请选择材质" style="width: 100%"
+                       @change="getEnginSpecificationsList(item, index)" filterable
+                       @blur="selectBlur(arguments,index,'materialQuality')">
               <el-option
                 v-for="e in materialQualityList"
                 :key="e.id"
@@ -71,7 +102,8 @@
             label="规格"
 
           >
-            <el-select v-model="item.specifications" placeholder="请选择规格" style="width: 100%" filterable @blur="selectBlur(arguments,index,'specifications')">
+            <el-select v-model="item.specifications" placeholder="请选择规格" style="width: 100%" filterable
+                       @blur="selectBlur(arguments,index,'specifications')">
               <el-option
                 v-for="e in specificationsList"
                 :key="e.id"
@@ -88,7 +120,11 @@
             label="米数"
           >
             <div class="block" style="display: inline-block; margin-right: 20px;">
-              <el-input v-model="item.number" placeholder="请输入米数" style="width: 100%" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''" :disabled="status == 'read-only'"><template slot="append">米</template></el-input>
+              <el-input v-model="item.number" placeholder="请输入米数" style="width: 100%"
+                        oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                        :disabled="status == 'read-only'">
+                <template slot="append">米</template>
+              </el-input>
             </div>
           </el-form-item>
         </el-col>
@@ -96,36 +132,38 @@
           <el-form-item
             :prop="'zEngineeringMaterialBo.' + index + '.number'"
             label-width="50px"
-          ><div class="block" style="display: inline-block; margin-right: 20px;"></div></el-form-item>
-        </el-col>
-
-        <el-button v-if="zEngineeringMaterialBo.length > 0" @click="removezEngineeringMaterialBo(index)">
-            删除
-        </el-button>
-      </el-row>
-      <el-row v-for="(item, index) in zEngineeringMaterialBo" v-if="['阀井'].includes(name)" :key="index" style="left: 10.5%;" :class="'rowStructure'">
-        <el-col :span="7">
-          <el-form-item
-            :prop="'zEngineeringMaterialBo.' + index + '.remark'"
-            label-width="50px"
-            label="型号"
           >
-            <div class="block" style="display: inline-block; margin-right: 20px;">
-              <el-input v-model="item.remark" placeholder="请输入型号" style="width: 100%" :disabled="status == 'read-only'"/>
-            </div>
+            <div class="block" style="display: inline-block; margin-right: 20px;"></div>
           </el-form-item>
         </el-col>
-        <el-col :span="7">
-          <el-form-item
-            :prop="'zEngineeringMaterialBo.' + index + '.number'"
-            label-width="50px"
-          ><div class="block" style="display: inline-block; margin-right: 20px;"></div></el-form-item>
-        </el-col>
 
         <el-button v-if="zEngineeringMaterialBo.length > 0" @click="removezEngineeringMaterialBo(index)">
-            删除
+          删除
         </el-button>
       </el-row>
+      <!--      <el-row v-for="(item, index) in zEngineeringMaterialBo" v-if="['阀井'].includes(name)" :key="index" style="left: 10.5%;" :class="'rowStructure'">-->
+      <!--        <el-col :span="7">-->
+      <!--          <el-form-item-->
+      <!--            :prop="'zEngineeringMaterialBo.' + index + '.remark'"-->
+      <!--            label-width="50px"-->
+      <!--            label="型号"-->
+      <!--          >-->
+      <!--            <div class="block" style="display: inline-block; margin-right: 20px;">-->
+      <!--              <el-input v-model="item.remark" placeholder="请输入型号" style="width: 100%" :disabled="status == 'read-only'"/>-->
+      <!--            </div>-->
+      <!--          </el-form-item>-->
+      <!--        </el-col>-->
+      <!--        <el-col :span="7">-->
+      <!--          <el-form-item-->
+      <!--            :prop="'zEngineeringMaterialBo.' + index + '.number'"-->
+      <!--            label-width="50px"-->
+      <!--          ><div class="block" style="display: inline-block; margin-right: 20px;"></div></el-form-item>-->
+      <!--        </el-col>-->
+
+      <!--        <el-button v-if="zEngineeringMaterialBo.length > 0" @click="removezEngineeringMaterialBo(index)">-->
+      <!--            删除-->
+      <!--        </el-button>-->
+      <!--      </el-row>-->
       <hr style="position: relative;left: 10%;">
     </el-form>
 
@@ -140,96 +178,93 @@ import {
 
 } from '@/api/zdsz/enginee'
 import ObsVideoUpload from "@/components/ObsVideoUpload/index.vue";
+
 export default {
-  name:'EnginNodeInfo',
-  props:['types','enginType','enginSort','enginNode','name','currentContain','updateOption','status'],
-  dicts:[
+  name: 'EnginNodeInfo',
+  props: ['types', 'enginType', 'enginSort', 'enginNode', 'name', 'currentContain', 'updateOption', 'status'],
+  dicts: [
     'visit_type',
     'self_closing_valve_type',
     'brand',
     'construct_addre'
   ],
-  components:{ObsVideoUpload},
-  data(){
+  components: {ObsVideoUpload},
+  data() {
     return {
-      constructAccordingDrawingsOption:[
+      constructAccordingDrawingsOption: [
         {
-          value:'Y',
-          label:'是'
+          value: 'Y',
+          label: '是'
         },
         {
-          value:'N',
-          label:'否'
+          value: 'N',
+          label: '否'
         }
       ],
-      segmentedCompressionQualifiedOption:[
+      segmentedCompressionQualifiedOption: [
         {
-          value:'1',
-          label:'合格'
+          value: '1',
+          label: '合格'
         },
         {
-          value:'0',
-          label:'不合格'
+          value: '0',
+          label: '不合格'
         }
       ],
-      materialQualityList_zbf:[],                      // 自闭阀option
-      materialQualityList_zjg:[],                      // 灶具管option
-      materialQualityList:[],                     // 材质
-      specificationsList:[],                      // 规格
-      materialComponList:[],
-      nodeInfo:{
-        backfillTime:'',                        // 回填时间
-        constructTime:'',
-        constructAccordingDrawings:'',
-        segmentedCompressionQualified:'',
-        zEngiineeringPhotoBoList:[],            // 照片集合
-        zEngiineeringPhotoBoListOne:[],            // 照片集合
-        zEngiineeringPhotoBoListTwo:[],            // 照片集合
-        zEngiineeringPhotoBoListThree:[],            // 照片集合
-        zEngineeringMaterialBo:[],              // 用料集合
-        remark:'',
-        constructAddre:''
+      materialQualityList_zbf: [],                      // 自闭阀option
+      materialQualityList_zjg: [],                      // 灶具管option
+      materialQualityList: [],                     // 材质
+      specificationsList: [],                      // 规格
+      materialComponList: [],
+      nodeInfo: {
+        backfillTime: '',                        // 回填时间
+        constructTime: '',
+        constructAccordingDrawings: '',
+        segmentedCompressionQualified: '',
+        zEngiineeringPhotoBoList: [],            // 照片集合
+        zEngiineeringPhotoBoListOne: [],            // 照片集合
+        zEngiineeringPhotoBoListTwo: [],            // 照片集合
+        zEngiineeringPhotoBoListThree: [],            // 照片集合
+        zEngineeringMaterialBo: [],              // 用料集合
+        remark: '',
+        constructAddre: ''
       },
-      nodeInfoBo:{
-        zEngineeringInfoBo:{
-
-        }
+      nodeInfoBo: {
+        zEngineeringInfoBo: {}
       },                                         //  节点信息
-      zEngineeringMaterialBo:[
-
-      ],                                         //  用料信息
-      nodeRules:{
+      zEngineeringMaterialBo: [],                                         //  用料信息
+      nodeRules: {
         zEngiineeringPhotoBoList: [
-          {required: true, message: "至少上传一张图片", trigger: "change"}
+          {required: false, message: "至少上传一张图片", trigger: "change"}
         ],
         constructTime: [
-          {required: true, message: "请选择施工时间", trigger: "change"}
+          {required: false, message: "请选择施工时间", trigger: "change"}
         ]
       }
     }
   },
-  created(){
-      // 获取材质
-      let enginType = '市政工程'
-      getEnginMaterialQualityList({enginType:enginType}).then(res => {
-        this.materialQualityList = res.data
-      })
+  created() {
+    // 获取材质
+    let enginType = '市政工程'
+    getEnginMaterialQualityList({enginType: enginType}).then(res => {
+      this.materialQualityList = res.data
+    })
   },
-  mounted(){
-    console.log('当前节点name',this.name)
-    console.log('update',this.updateOption)
-    console.log('当前节点currentContain',this.types)
+  mounted() {
+    console.log('当前节点name', this.name)
+    console.log('update', this.updateOption)
+    console.log('当前节点currentContain', this.types)
     this.materialComponList = this.currentContain.find(e => {
-      if( e instanceof Array){
+      if (e instanceof Array) {
         return e
       }
 
     })
 
-    if(this.status == '修改'){
+    if (this.status == '修改') {
       this.currentContain.find(e => {
         console.log(this.updateOption)
-        if( e instanceof Array){
+        if (e instanceof Array) {
           this.zEngineeringMaterialBo = this.updateOption.zEngineeringInfoBoList[0].zEngineeringMaterialBo
         }
         this.nodeInfo[e] = this.updateOption[e]
@@ -242,26 +277,26 @@ export default {
     setTimeout(() => {
       // 至少存在一条物料
       this.addMaterial()
-    },1500)
-    console.log('用料组件',this.materialComponList)
-    console.log('用料信息',this.zEngineeringMaterialBo)
-    console.log('节点信息',this.nodeInfo)
+    }, 1500)
+    console.log('用料组件', this.materialComponList)
+    console.log('用料信息', this.zEngineeringMaterialBo)
+    console.log('节点信息', this.nodeInfo)
     // 添加用料对象
     // this.addMaterial()
   },
-  methods:{
-    selectBlur(_,index,name) {
+  methods: {
+    selectBlur(_, index, name) {
       this.zEngineeringMaterialBo[index][name] = [...arguments][0][0].target.value
     },
     // 收集节点信息
-    infoCollection(){
+    infoCollection() {
       let result = null
       console.log(this.$refs.fangxianForm)
       this.$refs.fangxianForm.validate(valid => {
-        if(valid){
+        if (valid) {
           // 收集主节点信息
           this.currentContain.forEach(e => {
-            if( e instanceof Array){
+            if (e instanceof Array) {
               // 包含用料 特殊处理
               return
             }
@@ -269,11 +304,11 @@ export default {
           })
           this.nodeInfoBo.type = this.name
           // 接口数据格式修改 图片和用料放到nodeInfoBo节点详情对象中
-          if (this.name!='回填、撤场'){
+          if (this.name != '回填、撤场') {
             this.nodeInfoBo.zEngineeringInfoBo.zEngiineeringPhotoBoList = []
             this.nodeInfoBo.zEngineeringInfoBo.zEngiineeringPhotoBoList = this.nodeInfo.zEngiineeringPhotoBoList
           }
-          if (this.name=='回填、撤场'){
+          if (this.name == '回填、撤场') {
             this.nodeInfoBo.zEngineeringInfoBo.zEngiineeringPhotoBoListOne = []
             this.nodeInfoBo.zEngineeringInfoBo.zEngiineeringPhotoBoListTwo = []
             this.nodeInfoBo.zEngineeringInfoBo.zEngiineeringPhotoBoListThree = []
@@ -282,11 +317,15 @@ export default {
             this.nodeInfoBo.zEngineeringInfoBo.zEngiineeringPhotoBoListThree = this.nodeInfo.zEngiineeringPhotoBoListThree
           }
           this.nodeInfoBo.zEngineeringInfoBo.zEngineeringMaterialBo = this.zEngineeringMaterialBo
-          this.nodeInfoBo.zEngineeringInfoBo.constructAddre=this.nodeInfo.constructAddre
-          this.nodeInfoBo.zEngineeringInfoBo.constructTime=this.nodeInfo.constructTime
-          this.nodeInfoBo.zEngineeringInfoBo.remark=this.nodeInfo.remark
+          this.nodeInfoBo.zEngineeringInfoBo.constructAddre = this.nodeInfo.constructAddre
+          this.nodeInfoBo.zEngineeringInfoBo.constructTime = this.nodeInfo.constructTime
+          this.nodeInfoBo.zEngineeringInfoBo.cannula = this.nodeInfo.cannula
+          this.nodeInfoBo.zEngineeringInfoBo.wallPlaster = this.nodeInfo.wallPlaster
+          this.nodeInfoBo.zEngineeringInfoBo.protectiveNet = this.nodeInfo.protectiveNet
+          this.nodeInfoBo.zEngineeringInfoBo.starAnise = this.nodeInfo.starAnise
+          this.nodeInfoBo.zEngineeringInfoBo.remark = this.nodeInfo.remark
           // delete this.nodeInfo.zEngiineeringPhotoBoList
-          console.log('即将返回的节点Info',this.nodeInfoBo)
+          console.log('即将返回的节点Info', this.nodeInfoBo)
           result = this.nodeInfoBo
         } else {
           this.$message({
@@ -298,7 +337,7 @@ export default {
       })
       return result
     },
-    addMaterial(){
+    addMaterial() {
       let materialBo = {}
       // this.materialComponList.forEach(e => {
       //   materialBo[e] = null
@@ -307,7 +346,7 @@ export default {
       this.nodeInfo.zEngineeringMaterialBo.push(materialBo)
       // console.log('节点用料参数对象',this.zEngineeringMaterialBo)
     },
-    addzEngineeringMaterialBo(option,params){
+    addzEngineeringMaterialBo(option, params) {
       let material = {}
       params.forEach(e => {
         material[e] = ""
@@ -316,31 +355,42 @@ export default {
         material
       )
     },
-    removezEngineeringMaterialBo(index){
+    removezEngineeringMaterialBo(index) {
       this.zEngineeringMaterialBo.splice(index, 1);
     },
     // 填充已有数据
-    updateInfo(e){
-      console.log('填充',e)
+    updateInfo(e) {
+      console.log('填充', e)
+    }, getProtectiveNetUrl(url) {
+      this.nodeInfo.protectiveNet = this.$refs.protectiveNet.fileList ? this.$refs.protectiveNet.fileList.map(e => e.url) : [];
+    },
+    getWallPlasterUrl(url) {
+      this.nodeInfo.wallPlaster = this.$refs.wallPlaster.fileList ? this.$refs.wallPlaster.fileList.map(e => e.url) : [];
+    },
+    getStarAniseUrl(url) {
+      this.nodeInfo.starAnise = this.$refs.starAnise.fileList ? this.$refs.starAnise.fileList.map(e => e.url) : [];
+    },
+    getCannulaUrl(url) {
+      this.nodeInfo.cannula = this.$refs.cannula.fileList ? this.$refs.cannula.fileList.map(e => e.url) : [];
     },
     getUrl(url) {
-      this.nodeInfo.zEngiineeringPhotoBoList = this.$refs.obsImageUpload.fileList ? this.$refs.obsImageUpload.fileList.map(e=>e.url):[];
+      this.nodeInfo.zEngiineeringPhotoBoList = this.$refs.obsImageUpload.fileList ? this.$refs.obsImageUpload.fileList.map(e => e.url) : [];
     },
     getUrl1(url) {
-      this.nodeInfo.zEngiineeringPhotoBoListOne = this.$refs.obsImageUpload1.fileList ? this.$refs.obsImageUpload1.fileList.map(e=>e.url):[];
+      this.nodeInfo.zEngiineeringPhotoBoListOne = this.$refs.obsImageUpload1.fileList ? this.$refs.obsImageUpload1.fileList.map(e => e.url) : [];
     },
     getUrl2(url) {
-      this.nodeInfo.zEngiineeringPhotoBoListTwo = this.$refs.obsImageUpload2.fileList ? this.$refs.obsImageUpload2.fileList.map(e=>e.url):[];
+      this.nodeInfo.zEngiineeringPhotoBoListTwo = this.$refs.obsImageUpload2.fileList ? this.$refs.obsImageUpload2.fileList.map(e => e.url) : [];
     },
     getUrl3(url) {
-      this.nodeInfo.zEngiineeringPhotoBoListThree = this.$refs.obsImageUpload3.fileList ? this.$refs.obsImageUpload3.fileList.map(e=>e.url):[];
+      this.nodeInfo.zEngiineeringPhotoBoListThree = this.$refs.obsImageUpload3.fileList ? this.$refs.obsImageUpload3.fileList.map(e => e.url) : [];
     },
 
     // 获取材质规格
-    getEnginSpecificationsList(e,idx){
+    getEnginSpecificationsList(e, idx) {
       this.zEngineeringMaterialBo[idx].specifications = null;
-      getEnginSpecificationsList({materId:e.materialQuality}).then(res => {
-        console.log('规格',res.data)
+      getEnginSpecificationsList({materId: e.materialQuality}).then(res => {
+        console.log('规格', res.data)
         this.specificationsList = res.data
       })
     },
@@ -350,49 +400,56 @@ export default {
 
 <style lang="scss" scoped>
 
-::v-deep .material_desc{
-  .el-form-item__content{
+::v-deep .material_desc {
+  .el-form-item__content {
     margin-left: 50px !important;
   }
 }
-::v-deep .el-form{
+
+::v-deep .el-form {
   position: relative;
   left: -10%;
-  .el-form-item{
+
+  .el-form-item {
     display: inline-block;
   }
-  .obsImage{
+
+  .obsImage {
     width: 100%;
     display: block;
     margin-left: 8%;
-    .el-form-item__label{
+
+    .el-form-item__label {
       width: 113px !important;
     }
-    .el-form-item__error{
+
+    .el-form-item__error {
       position: relative;
       left: -10%;
     }
   }
 
-  .obsActiveImage{
-    .el-form{
-        left:-14% !important
+  .obsActiveImage {
+    .el-form {
+      left: -14% !important
     }
-    .el-form-item__label{
+
+    .el-form-item__label {
       width: 97px !important;
     }
   }
 
-  .obsActiveImageStructure{
-    .el-form-item__label{
-      width:161px !important;
+  .obsActiveImageStructure {
+    .el-form-item__label {
+      width: 161px !important;
     }
   }
 
-  .rowStructure{
+  .rowStructure {
     padding-left: 3.6%;
-    .el-col .el-form-item{
-      width:73%
+
+    .el-col .el-form-item {
+      width: 73%
     }
   }
 }

+ 21 - 3
src/components/EngineePipe/index.vue

@@ -39,7 +39,7 @@
           <el-row :gutter="20">
             <el-col :span="12">
               <el-form-item label="工程名称" prop="enginName">
-                <el-input v-model="queryParams.enginName" placeholder="请填写工程名称" maxlength="60" :disabled="title == '添加用料' "></el-input>
+                <el-input v-model="queryParams.enginName" placeholder="请填写工程名称" maxlength="60" :disabled="title == '添加用料' || title == '修改顶管信息'"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="12">
@@ -90,6 +90,23 @@
                 <el-input v-model="queryParams.constructSchedule" placeholder="请填写施工进度" maxlength="50" :disabled="title == '添加用料' "/>
               </el-form-item>
             </el-col>
+            <el-col :span="12">
+              <el-form-item label="行政区" prop="district">
+                <el-select
+                    style="width: 100%"
+                    v-model="queryParams.district"
+                    placeholder="请选择行政区"
+                    filterable
+                >
+                  <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-col>
 <!--            <el-col :span="12">-->
 <!--              <el-form-item label="备注" prop="remark">-->
 <!--                <el-input-->
@@ -168,7 +185,7 @@ export default {
     EngineeNode,
     EnginNodeInfo
   },
-  dicts: ['pipe_jack'],
+  dicts: ['pipe_jack', 'district'],
   data() {
     return {
       // 按钮loading
@@ -367,13 +384,14 @@ export default {
         this.$refs.obsFileUpload.fileList=this.queryParams.files
       }
     },
-    async openDialog(data, type,sata) {
+    async openDialog(data, type ,sata) {
       await this.reset();
       this.currentCheckList=[]
       this.currentType = type
       if (this.currentType == 'add') {
         this.title = '新增顶管信息'
         this.queryParams.enginId = data.id
+        this.queryParams.district = data.district
       } else if (this.currentType == 'put') {
         this.title = '修改顶管信息'
       } else if (this.currentType == 'addMaterial') {

+ 3 - 3
src/views/zdsz/enginMaterialQuality/index.vue

@@ -213,7 +213,7 @@
         </el-form-item>
         <el-form-item label="工程类别" prop="enginType" v-if="form.enginType.includes('民用工程')">
           <el-select v-model="form.enginSort" placeholder="请选择工程类别" filterable clearable
-                     style="width: 100%" @change="form.enginNode = ''">
+                     style="width: 100%" @change="form.enginNode = form.enginStep = form.nameType = ''">
             <el-option
               v-for="dict in enginSortList"
               :key="dict.value"
@@ -222,7 +222,7 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="工程环节" prop="enginType" v-if="form.enginType.includes('民用工程')">
+        <el-form-item label="工程环节" prop="enginType" v-if="form.enginType.includes('民用工程') && form.enginSort == 'old_renovation'">
           <el-select v-model="form.enginNode" placeholder="请选择工程环节" filterable clearable
                      style="width: 100%">
             <el-option
@@ -233,7 +233,7 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="工程步骤" prop="enginStep" v-if="form.enginType.includes('民用工程')">
+        <el-form-item label="工程步骤" prop="enginStep" v-if="form.enginType.includes('民用工程') && form.enginSort == 'old_renovation'">
           <el-select v-model="form.enginStep" placeholder="请选择工程步骤" filterable clearable
                      style="width: 100%">
             <el-option

+ 50 - 2
src/views/zdsz/engineeringCivil/index.vue

@@ -1093,7 +1093,7 @@ export default {
               'number',                                // 数量
             ],
             'ductalEpithelium',
-            'constructionRecords',
+            // 'constructionRecords',
             'trenchProspect',
             'constructTime',
             'Video'// 施工时间
@@ -1132,6 +1132,40 @@ export default {
             // 'remark',                                  // 施工内容
           ]
         },
+        {
+          name: '管道施工记录',
+          components: [
+            [
+            ],
+            'zEngiineeringPhotoBoList',                // 照片
+            'remark',                                  // 施工内容
+          ]
+        },
+        {
+          name: '调压柜',
+          components: [
+            [
+            ],
+            'boxBrand',
+            'BottomLeg',
+            'stonePowder',
+            'Lightning',
+            'GroundHardeningA',
+            'remark',                                  // 施工内容
+          ]
+        },
+        {
+          name: '阀井',
+          components: [
+            [
+            ],
+            'cannula',
+            'wallPlaster',
+            'protectiveNet',
+            'starAnise',
+            'remark',                                  // 施工内容
+          ]
+        },
         ///////////////////////////////////////////////庭院工程//////////////////////////////////////////
         ///////////////////////////////////////////////架空工程//////////////////////////////////////////
         {
@@ -1148,6 +1182,19 @@ export default {
           ]
         },
         {
+          name: '焊接',
+          components: [
+            [
+              'materialQuality',                       // 材质
+              'specifications',                        // 规格
+              'number',                                // 数量
+            ],
+            'constructTime',                           // 施工时间
+            'zEngiineeringPhotoBoList',                // 照片
+            // 'remark',                                  // 施工内容
+          ]
+        },
+        {
           name: '打磨',
           components: [
             [
@@ -1595,7 +1642,6 @@ export default {
       })
     },
     addNodeInfo(e) {
-      console.log('e', 11111)
       this.nodeDetailType = '修改'
       this.enginId = e.id
       this.status = 'put'
@@ -1627,6 +1673,7 @@ export default {
         try {
           this.updateParams = res.data
           this.currentCollapses = res.data.zEngineeringNodeBo.zEngineeringInfoBoList
+          console.log("this.currentCollapses", this.currentCollapses)
           this.$refs.ConstructionDetails.setEngineId(res.data.zEngineeringNodeBo.id || null)
         } catch (error) {
           this.currentCollapses = [];
@@ -1660,6 +1707,7 @@ export default {
     addNewPipe(data) {
       this.$refs.enginPipe.openDialog({
         id: data.id,
+        district: data.district,
         type: '民用工程'
       }, 'add', data)
     },

+ 450 - 57
src/views/zdsz/engineeringGY/index.vue

@@ -9,6 +9,19 @@
   <div class="app-container">
     <el-form :model="searchParams" ref="searchParams" size="small" :inline="true" v-show="showSearch"
              label-width="110px">
+      <el-form-item label="行政区" prop="district">
+        <el-select v-model="searchParams.district" placeholder="请选择行政区" clearable>
+          <el-option
+              v-for="dict in dict.type.district"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="工程名称" prop="enginName">
+        <el-input v-model="searchParams.enginName" placeholder="请输入工程名称" maxlength="20"></el-input>
+      </el-form-item>
       <el-form-item label="工程分类" prop="enginType">
         <el-select v-model="searchParams.enginType" placeholder="请选择工程类型" clearable>
           <el-option
@@ -29,9 +42,6 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="工程名称" prop="enginName">
-        <el-input v-model="searchParams.enginName" placeholder="请输入工程名称" maxlength="20"></el-input>
-      </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>
@@ -74,8 +84,20 @@
         >删除
         </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:engineeringgy:export']"
+        >导出</el-button>
+      </el-col>
       <el-col :span="2.5" style="float: right;">
         <span
+          style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #807e7a;"></span>无数据
+        <span
           style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #e0c794;"></span>待审核
         <span
           style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #30B08F;"></span>通过
@@ -87,12 +109,20 @@
 
     <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="district">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.district" :value="scope.row.district"/>
+        </template>
+      </el-table-column>
       <el-table-column label="工程名称" align="center" prop="enginName"/>
       <el-table-column label="工程类型" align="center" prop="enginType"/>
       <el-table-column label="工程分类" align="center" prop="enginClassification"/>
       <el-table-column label="现场负责人" align="center" prop="sceneHead"/>
       <el-table-column label="设计负责人" align="center" prop="designHead"/>
       <el-table-column label="监理负责人" align="center" prop="supervisionHead"/>
+      <el-table-column label="建项时间" align="center" prop="createTime"/>
+      <el-table-column label="进场时间" align="center" prop="startTime"/>
+      <el-table-column label="竣工时间" align="center" prop="beCompletedTime"/>
       <el-table-column label="用料比" align="center" prop="enginClassification" width="300px">
         <template slot-scope="scope">
           <div>
@@ -109,7 +139,9 @@
               placement="top-start"
               trigger="hover"
               :content="item.Type">
-              <span slot="reference" v-if="item.state == '0' && item.content=='暂未审核'"
+              <span slot="reference" v-if="item.state == '-1' && item.content=='无数据'"
+                    style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #807e7a;"></span>
+              <span slot="reference" v-else-if="item.state == '0' && item.content=='暂未审核'"
                     style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #e0c794;"></span>
               <span slot="reference" v-else-if="item.state == '1' "
                     style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #30B08F;"></span>
@@ -172,7 +204,7 @@
             type="text"
             icon="el-icon-download"
             size="mini"
-            @click="download(scope.row.enginName)"
+            @click="downloadZip(scope.row.enginName)"
           >下载图片
           </el-button>
           <el-button
@@ -198,44 +230,120 @@
     <!-- 顶管工程新增 -->
     <EngineePipe ref="enginPipe"/>
 
-    <!-- 添加或修改工业工程|工业工程对话框 -->
+    <!-- 修改工业工程对话框 -->
     <el-dialog :title="title" :visible.sync="open" append-to-body customClass="appendElDialog">
       <el-form ref="form" :model="form" :rules="rules" label-width="110px">
+        <el-form-item label="行政区" prop="district">
+          <el-select
+              style="width: 100%"
+              :disabled="title == '添加用料'"
+              v-model="form.district"
+              placeholder="请选择行政区"
+              filterable
+          >
+            <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="enginName" v-hasPermi="['zdsz:engineeringgy:add']">
           <el-input v-model="form.enginName" placeholder="请填写工程名称" maxlength="60"
-                    :readonly="title == '添加用料' "></el-input>
+                    :readonly="title == '添加用料'"></el-input>
         </el-form-item>
         <el-form-item label="建筑单位" prop="constructUnit" v-hasPermi="['zdsz:engineeringgy:add']">
           <el-input v-model="form.constructUnit" placeholder="请填写建筑单位" maxlength="50"
                     :readonly="title == '添加用料' "></el-input>
         </el-form-item>
         <el-form-item label="项目负责人" prop="projectHead">
-          <el-input v-model="form.projectHead" placeholder="请填写项目负责人" maxlength="20"
-                    :readonly="title == '添加用料' "></el-input>
+          <el-select
+            v-model="form.projectHead"
+            placeholder="请选择项目负责人"
+            clearable
+            @change="getSceneHeadList"
+          >
+            <el-option
+              v-for="dict in dict.type.project_head"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value+','+dict.raw.remark"
+            />
+          </el-select>
         </el-form-item>
         <el-form-item label="现场负责人" prop="sceneHead">
-          <el-input v-model="form.sceneHead" placeholder="请填写现场负责人" maxlength="20"
-                    :readonly="title == '添加用料' "></el-input>
+          <el-select
+            v-model="form.sceneHead"
+            placeholder="请选择现场负责人"
+            clearable
+          >
+            <el-option
+              v-for="dict in sceneHead"
+              :label="dict"
+              :value="dict"
+            />
+          </el-select>
         </el-form-item>
         <el-form-item label="设计单位" prop="designUnit">
-          <el-input v-model="form.designUnit" placeholder="请填写设计单位" maxlength="50"
-                    :readonly="title == '添加用料' "></el-input>
+          <el-select
+            v-model="form.designUnit"
+            placeholder="请选择设计单位"
+            clearable
+            @change="getDesignUnitList"
+          >
+            <el-option
+              v-for="dict in dict.type.design_unit"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value+','+dict.raw.remark"
+            />
+          </el-select>
         </el-form-item>
         <el-form-item label="设计负责人" prop="designHead">
-          <el-input v-model="form.designHead" placeholder="请填写现场负责人" maxlength="20"
-                    :readonly="title == '添加用料' "></el-input>
+          <el-select
+            v-model="form.designHead"
+            placeholder="请选择设计负责人"
+            clearable
+          >
+            <el-option
+              v-for="dict in designHead"
+              :label="dict"
+              :value="dict"
+            />
+          </el-select>
         </el-form-item>
         <el-form-item label="设计联系方式" prop="designPhone">
           <el-input v-model="form.designPhone" placeholder="请填写设计联系方式" maxlength="13"
                     :readonly="title == '添加用料' "></el-input>
         </el-form-item>
         <el-form-item label="监理单位" prop="supervisionUnit">
-          <el-input v-model="form.supervisionUnit" placeholder="请填写监理单位" maxlength="50"
-                    :readonly="title == '添加用料' "/>
+          <el-select
+            v-model="form.supervisionUnit"
+            placeholder="请选择监理单位"
+            clearable
+            @change="getSupervisionUnitList"
+          >
+            <el-option
+              v-for="dict in dict.type.supervision_unit"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value+','+dict.raw.remark"
+            />
+          </el-select>
         </el-form-item>
         <el-form-item label="监理负责人" prop="supervisionHead">
-          <el-input v-model="form.supervisionHead" placeholder="请填写监理负责人" maxlength="20"
-                    :readonly="title == '添加用料' "></el-input>
+          <el-select
+            v-model="form.supervisionHead"
+            placeholder="请选择监理负责人"
+            clearable
+          >
+            <el-option
+              v-for="dict in supervisionHead"
+              :label="dict"
+              :value="dict"
+            />
+          </el-select>
         </el-form-item>
         <el-form-item label="监理联系电话" prop="supervisionPhone">
           <el-input v-model="form.supervisionPhone" placeholder="请填写监理联系电话" maxlength="13"
@@ -296,8 +404,8 @@
 
         <el-row v-if="title=='添加用料'">
           <el-col :span="24">
-            <el-form-item label="环节">
-              <el-checkbox-group v-model="currentCheckList" style="display: flex">
+            <el-form-item label="环节" class="hjclass">
+              <el-checkbox-group v-model="currentCheckList" style="display: flex;flex-wrap: wrap;">
                 <el-checkbox
                   :label="item.dictValue"
                   v-for="item in nodeList"
@@ -331,6 +439,192 @@
       </el-form>
     </el-dialog>
 
+    <!-- 添加工业工程对话框 -->
+    <el-dialog :title="title" :visible.sync="openadd" append-to-body customClass="appendElDialog">
+      <el-form ref="form" :model="form" :rules="rules" label-width="110px">
+        <el-form-item label="行政区" prop="district">
+          <el-select
+              style="width: 100%"
+              :disabled="title == '添加用料'"
+              v-model="form.district"
+              placeholder="请选择行政区"
+              filterable
+          >
+            <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="enginName">
+          <el-input v-model="form.enginName" placeholder="请填写工程名称" maxlength="60"
+                    :readonly="title == '添加用料' "></el-input>
+        </el-form-item>
+        <el-form-item label="建筑单位" prop="constructUnit">
+          <el-input v-model="form.constructUnit" placeholder="请填写建筑单位" maxlength="50"
+                    :readonly="title == '添加用料' "></el-input>
+        </el-form-item>
+        <el-form-item label="项目负责人" prop="projectHead">
+          <el-select
+            v-model="form.projectHead"
+            placeholder="请选择项目负责人"
+            clearable
+            @change="getSceneHeadList"
+          >
+            <el-option
+              v-for="dict in dict.type.project_head"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value+','+dict.raw.remark"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="现场负责人" prop="sceneHead">
+          <el-select
+            v-model="form.sceneHead"
+            placeholder="请选择现场负责人"
+            clearable
+          >
+            <el-option
+              v-for="dict in sceneHead"
+              :label="dict"
+              :value="dict"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="设计单位" prop="designUnit">
+          <el-select
+            v-model="form.designUnit"
+            placeholder="请选择设计单位"
+            clearable
+            @change="getDesignUnitList"
+          >
+            <el-option
+              v-for="dict in dict.type.design_unit"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value+','+dict.raw.remark"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="设计负责人" prop="designHead">
+          <el-select
+            v-model="form.designHead"
+            placeholder="请选择设计负责人"
+            clearable
+          >
+            <el-option
+              v-for="dict in designHead"
+              :label="dict"
+              :value="dict"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="设计联系方式" prop="designPhone">
+          <el-input v-model="form.designPhone" placeholder="请填写设计联系方式" maxlength="13"
+                    :readonly="title == '添加用料' "></el-input>
+        </el-form-item>
+        <el-form-item label="监理单位" prop="supervisionUnit">
+          <el-select
+            v-model="form.supervisionUnit"
+            placeholder="请选择监理单位"
+            clearable
+            @change="getSupervisionUnitList"
+          >
+            <el-option
+              v-for="dict in dict.type.supervision_unit"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value+','+dict.raw.remark"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="监理负责人" prop="supervisionHead">
+          <el-select
+            v-model="form.supervisionHead"
+            placeholder="请选择监理负责人"
+            clearable
+          >
+            <el-option
+              v-for="dict in supervisionHead"
+              :label="dict"
+              :value="dict"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="监理联系电话" prop="supervisionPhone">
+          <el-input v-model="form.supervisionPhone" placeholder="请填写监理联系电话" maxlength="13"
+                    :readonly="title == '添加用料' "></el-input>
+        </el-form-item>
+        <el-form-item label="工程分类" prop="enginType" >
+          <el-select v-model="form.enginType" placeholder="请选择工程分类" style="width: 100%"
+                     :disabled="title == '添加用料' ">
+            <el-option
+              v-for="e in EngineepipeType"
+              :key="e.dictValue"
+              :label="e.dictLabel"
+              :value="e.dictValue"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="工程类型" prop="enginClassification">
+          <el-select v-model="enginClassificationQuery" placeholder="请选择工程类型" style="width: 100%"  multiple @change="clickByType"
+                     :disabled="title == '添加用料' ">
+            <el-option
+              v-for="e in enginClassificationList"
+              :key="e.dictValue"
+              :label="e.dictLabel"
+              :value="e.dictValue"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="室内PE管材" prop="pePresetSn" v-if="enginClassificationQuery.includes('室内管线')">
+          <el-input v-model="form.pePresetSn" placeholder="请填写PE管材预设" maxlength="20" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                    :readonly="title == '添加用料' "></el-input>
+        </el-form-item>
+        <el-form-item label="室内钢材" prop="gcPresetSn" v-if="enginClassificationQuery.includes('室内管线')">
+          <el-input v-model="form.gcPresetSn" placeholder="请填写钢材预设" maxlength="13" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                    :readonly="title == '添加用料' "></el-input>
+        </el-form-item>
+        <el-form-item label="庭院PE管材" prop="pePresetTy" v-if="enginClassificationQuery.includes('庭院')">
+          <el-input v-model="form.pePresetTy" placeholder="请填写PE管材预设" maxlength="20" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                    :readonly="title == '添加用料' "></el-input>
+        </el-form-item>
+        <el-form-item label="庭院钢材" prop="gcPresetTy" v-if="enginClassificationQuery.includes('庭院')">
+          <el-input v-model="form.gcPresetTy" placeholder="请填写钢材预设" maxlength="13" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+                    :readonly="title == '添加用料' "></el-input>
+        </el-form-item>
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="附件" v-if="form.id" style="width: 100%">
+              <ObsFileUpload ref="obsFileUpload" :file-size="100"
+                             :file-type="['dwg','dwt','doc','docx','xls','xlsx','png', 'jpg', 'jpeg','mp4']"
+                             :limit="9999"
+                             :value="form.pics"
+                             :disabled="title == '添加用料' "
+                             @input="filesUpload"
+              ></ObsFileUpload>
+            </el-form-item>
+            <el-form-item label="附件" v-else style="width: 100%">
+              <ObsFileUpload ref="obsFileUpload" :file-size="100"
+                             :file-type="['dwg','dwt','doc','docx','xls','xlsx','png', 'jpg', 'jpeg','mp4']"
+                             :limit="9999"
+                             :disabled="title == '添加用料' "
+                             :value="form.files"
+                             @input="filesUpload"
+              ></ObsFileUpload>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <div style="width: 25%; float: right" >
+          <el-button :loading="buttonLoading" type="primary" @click="submitFormAdd">提交</el-button>
+          <el-button @click="cancel">取 消</el-button>
+        </div>
+      </el-form>
+    </el-dialog>
+
     <!-- 施工信息dialog -->
     <el-dialog :visible.sync="nodeDetailVisible" title="施工信息" append-to-body customClass="appendElNodeDialog"
                width="70% !important">
@@ -429,6 +723,7 @@
 </template>
 <script>
 import {
+  testEnginNameUnique,
   addEngineeEngineeIndustry,
   DelEngineeEngineeIndustry,
   EditEngineeEngineeIndustry,
@@ -448,7 +743,7 @@ import EnginNodeInfo from "@/components/EnginNodeInfo/indexGY.vue";
 
 export default {
   name: "工业",
-  dicts: [],
+  dicts: ['project_head', 'design_unit', 'supervision_unit', 'district'],
   components: {
     EnginNodeInfo,
     ConstructionDetails,
@@ -468,6 +763,10 @@ export default {
       })
     }
     return {
+      sceneHead:[],
+      designHead:[],
+      supervisionHead:[],
+
       // 审核时间
       createTime: null,
       // 按钮loading
@@ -477,6 +776,7 @@ export default {
       // 选中数组
       ids: [],
       enginClassificationList: [],
+      enginClassificationQuery: [],
       status: null,
       // 非单个禁用
       single: true,
@@ -498,6 +798,7 @@ export default {
       nodeList: [],
       // 是否显示弹出层
       open: false,
+      openadd:false,
       // 查询参数
       queryParams: {
         enginType: null,
@@ -525,6 +826,10 @@ export default {
         supervisionPhone: '', // 监理联系电话
         pePreset: 0, // PE管材预设量
         gcPreset: 0, // 钢材预设量
+        pePresetTy: 0, // PE管材预设量
+        gcPresetTy: 0, // 钢材预设量
+        pePresetSn: 0, // PE管材预设量
+        gcPresetSn: 0, // 钢材预设量
         zEngineeringNodeBo: { // 工程节点
           type: '', // 节点类型
           zEngineeringInfoBo: { // 施工信息
@@ -561,15 +866,46 @@ export default {
       specificationsList: [], // 用料规格List
       // 表单校验
       rules: {
+        district: [
+          {required: true, message: "行政区不能为空", trigger: "change"}
+        ],
         enginName: [
-          {required: true, message: "工程名称不能为空", trigger: 'blur'}
+          {required: true, message: "工程名称不能为空", trigger: "blur"},
+          // {required: true, validator:function(rule, value, callback) {
+          //   if(value == null || value == ''){
+          //     callback(new Error("工程名称不能为空"))
+          //   }else {
+          //     testEnginNameUnique({enginName: value, enginType: '工业工程'}).then(res => {
+          //       if(res.data){
+          //         // callback(new Error("工程名称可以使用"))
+          //       }else {
+          //         callback(new Error("工程名称不能重复"))
+          //       }
+          //     });
+          //   }
+          // }, trigger: 'blur'}
         ],
         enginType: [
           {required: true, message: "工程类型不能为空", trigger: 'blur'}
         ],
-        enginClassification: [
-          {required: true, message: "工程分类不能为空", trigger: 'blur'}
+        pePresetTy: [
+          {required: true, message: "庭院PE管材预设", trigger: 'blur'}
+        ],
+        gcPresetTy: [
+          {required: true, message: "庭院钢材预设", trigger: 'blur'}
         ],
+        pePresetSn: [
+          {required: true, message: "室内PE管材预设", trigger: 'blur'}
+        ],
+        gcPresetSn: [
+          {required: true, message: "室内钢材预设", trigger: 'blur'}
+        ],
+        // enginClassificationQuery: [
+        //   {required: true, message: "工程分类不能为空", trigger: 'blur'}
+        // ],
+        // enginClassification: [
+        //   {required: true, message: "工程分类不能为空", trigger: 'blur'}
+        // ],
         constructUnit: [
           {required: true, message: "建筑单位不能为空", trigger: 'blur'}
         ],
@@ -608,7 +944,37 @@ export default {
     });
   },
   methods: {
-    download(name) {
+    getDictChild(dict){
+      let str = '';
+      if (dict == '室内管线') {
+        str = 'gy_inner'
+      } else if (dict == '庭院') {
+        str = 'gy_out'
+      // } else if (dict == '调压柜') {
+      //   str = 'gy_tyg'
+      } else if (dict == '架空管线') {
+        str = 'gy_jkgx'
+      } else if (dict == '每日施工日志') {
+        str = 'gy_log_every_day'
+      }
+      return str;
+    },
+    getSceneHeadList(param){
+      this.form.projectHead = param.split(',')[0];
+      this.form.sceneHead = "";
+      this.sceneHead = param.split(',')[1].split('、');
+    },
+    getDesignUnitList(param){
+      this.form.designUnit = param.split(',')[0];
+      this.form.designHead = "";
+      this.designHead = param.split(',')[1].split('、');
+    },
+    getSupervisionUnitList(param){
+      this.form.supervisionUnit = param.split(',')[0];
+      this.form.supervisionHead = "";
+      this.supervisionHead = param.split(',')[1].split('、');
+    },
+    downloadZip(name) {
       this.$download.zip(`/zdsz/engineeringPipeJacking/downloadZip/${'工业工程'}/${name}`, name);
     },
     // 节点审核
@@ -641,7 +1007,7 @@ export default {
             message: '审核成功',
             type: 'success'
           });
-          this.$refs.ConstructionDetails.dialogVisible = false
+          // this.$refs.ConstructionDetails.dialogVisible = false
           this.getList()
         }
       })
@@ -777,14 +1143,8 @@ export default {
     clickByType(value) {
       this.flag = null;
       if (!value) return;
-      let str = '';
-      if (value == '室内管线') {
-        str = 'gy_inner'
-      } else if (value == '室外管线') {
-        str = 'gy_out'
-      } else if (value == '调压柜') {
-        str = 'gy_tyg'
-      } else {
+      let str = this.getDictChild(value);
+      if (str == '') {
         return;
       }
       this.flag = str;
@@ -803,6 +1163,7 @@ export default {
     addNewPipe(data) {
       this.$refs.enginPipe.openDialog({
         id: data.id,
+        district: data.district,
         type: this.form.type
       }, 'add', data)
     },
@@ -822,14 +1183,7 @@ export default {
       console.log('历史',e)
       this.currentId = e.id
       if (!e.enginClassification)return;
-      let str = '';
-      if (e.enginClassification == '室内管线') {
-        str = 'gy_inner'
-      } else if (e.enginClassification == '室外管线') {
-        str = 'gy_out'
-      } else if (e.enginClassification == '调压柜') {
-        str = 'gy_tyg'
-      }
+      let str = this.getDictChild(e.enginClassification);
       const r = await getDicts(str)
       let dict = []
       for (let i = 0; i < r.data.length; i++) {
@@ -848,14 +1202,7 @@ export default {
     async updateviewSource(e) {
       this.currentId = e.id
       if (!e.enginClassification)return;
-      let str = '';
-      if (e.enginClassification == '室内管线') {
-        str = 'gy_inner'
-      } else if (e.enginClassification == '室外管线') {
-        str = 'gy_out'
-      } else if (e.enginClassification == '调压柜') {
-        str = 'gy_tyg'
-      }
+      let str = this.getDictChild(e.enginClassification);
       const r = await getDicts(str)
       let dict = []
       for (let i = 0; i < r.data.length; i++) {
@@ -902,7 +1249,8 @@ export default {
     },
     // 取消按钮
     cancel() {
-      this.open = false;
+      this.open = false; // 修改
+      this.openadd = false; // 新增
       this.reset();
     },
     // 表单重置
@@ -912,6 +1260,7 @@ export default {
       }
       this.form.zEngineeringNodeBo = {}
       this.form.zEngineeringNodeBo.zEngineeringInfoBo = {}
+      this.enginClassificationQuery = [];
       this.zEngineeringMaterialBo = []
       this.zEngineeringMaterialBo.push({
         materialQuality: '', // 用料材质
@@ -942,7 +1291,8 @@ export default {
       this.gc = true
       this.title = "新增工业工程";
       this.currentType = 'add'
-      this.open = true;
+      // this.open = true;
+      this.openadd = true;
     },
     removeFile(val) {
       this.form.files = val
@@ -996,7 +1346,7 @@ export default {
         }
       })
     },
-    /** 提交按钮 */
+    /** 提交按钮 修改提交*/
     submitForm() {
       this.$refs["form"].validate(valid => {
         if (valid) {
@@ -1035,6 +1385,47 @@ export default {
         }
       });
     },
+    /** 提交按钮 新增提交 */
+    submitFormAdd() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          this.form.files = this.$refs.obsFileUpload.fileList;
+          if (this.form.files.length === 0) {
+            this.$message.warning('必须上传附件!')
+            return
+          }
+
+          this.form.zEngineeringNodeBo = null
+          if (this.zEngineeringNodeBo.type !== '') {
+            this.form.zEngineeringNodeBo = this.zEngineeringNodeBo
+            this.form.zEngineeringNodeBo.zEngineeringInfoBo.zEngineeringMaterialBo = this.zEngineeringMaterialBo
+          }
+          if (this.enginClassificationQuery && this.enginClassificationQuery != [] && this.enginClassificationQuery.length > 0) {
+            for(let i in this.enginClassificationQuery){
+              this.form.enginClassification = this.enginClassificationQuery[i];
+              if(this.enginClassificationQuery[i] == '室内管线'){
+                this.form.pePreset= this.form.pePresetSn;
+                this.form.gcPreset= this.form.gcPresetSn;
+              }else if (this.enginClassificationQuery[i] == '庭院'){
+                this.form.pePreset= this.form.pePresetTy;
+                this.form.gcPreset= this.form.gcPresetTy;
+              }else{
+                this.form.pePreset= 0;
+                this.form.gcPreset= 0;
+              }
+              addEngineeEngineeIndustry(this.form).then(res => {
+                this.$modal.msgSuccess("新增成功");
+                this.openadd = false;
+                this.nodeDetailVisible = false
+              })
+              this.getList();
+            }
+          }else{
+            this.$modal.alertWarning("请选择工程类型!");
+          }
+        }
+      });
+    },
     /** 删除按钮操作 */
     handleDelete(row) {
       const ids = row.id || this.ids;
@@ -1052,9 +1443,9 @@ export default {
     },
     /** 导出按钮操作 */
     handleExport() {
-      this.download('zdsz/engineeringIndustry/export', {
+      this.download('zdsz/engineeringGY/export', {
         ...this.queryParams
-      }, `comprehensive_${new Date().getTime()}.xlsx`)
+      }, `工业工程数据_${new Date().getTime()}.xlsx`)
     }
   }
 };
@@ -1062,7 +1453,9 @@ export default {
 
 
 <style lang="scss" scoped>
-
+.hjclass{
+  width: 100% !important;
+}
 
 ::v-deep .appendElDialog {
   width: 70%;

+ 99 - 42
src/views/zdsz/engineeringIndustry/index.vue

@@ -9,6 +9,19 @@
   <div class="app-container">
     <el-form :model="searchParams" ref="searchParams" size="small" :inline="true" v-show="showSearch"
              label-width="110px">
+      <el-form-item label="行政区" prop="district">
+        <el-select v-model="searchParams.district" placeholder="请选择行政区" clearable>
+          <el-option
+            v-for="dict in dict.type.district"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="工程名称" prop="enginName">
+        <el-input v-model="searchParams.enginName" placeholder="请输入工程名称" maxlength="20"></el-input>
+      </el-form-item>
       <el-form-item label="工程类型" prop="enginType">
         <el-select v-model="searchParams.enginType" placeholder="请选择工程类型" clearable>
           <el-option
@@ -19,9 +32,6 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="工程名称" prop="enginName">
-        <el-input v-model="searchParams.enginName" placeholder="请输入工程名称" maxlength="20"></el-input>
-      </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>
@@ -64,7 +74,20 @@
         >删除
         </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:engineeringIndustry:export']"
+        >导出
+        </el-button>
+      </el-col>
       <el-col :span="2.5" style="float: right;">
+         <span
+           style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #807e7a;"></span>无数据
         <span
           style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #e0c794;"></span>待审核
         <span
@@ -77,13 +100,18 @@
 
     <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="district">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.district" :value="scope.row.district"/>
+        </template>
+      </el-table-column>
       <el-table-column label="工程名称" align="center" prop="enginName"/>
       <el-table-column label="工程类型" align="center" prop="enginType"/>
-<!--      <el-table-column label="工程分类" align="center" prop="enginClassification">-->
-<!--        <template slot-scope="scope">-->
-<!--          <dict-tag :options="dict.type.engin_classification" :value="scope.row.enginClassification"/>-->
-<!--        </template>-->
-<!--      </el-table-column>-->
+      <!--      <el-table-column label="工程分类" align="center" prop="enginClassification">-->
+      <!--        <template slot-scope="scope">-->
+      <!--          <dict-tag :options="dict.type.engin_classification" :value="scope.row.enginClassification"/>-->
+      <!--        </template>-->
+      <!--      </el-table-column>-->
       <el-table-column label="现场负责人" align="center" prop="sceneHead"/>
       <el-table-column label="设计负责人" align="center" prop="designHead"/>
       <el-table-column label="监理负责人" align="center" prop="supervisionHead"/>
@@ -91,8 +119,8 @@
       <el-table-column label="用料比" align="center" prop="enginClassification" width="300px">
         <template slot-scope="scope">
           <div>
-            <span>PE{实际:{{scope.row.pesj}},预计:{{scope.row.pePreset}},占比:{{scope.row.pePreset == 0||scope.row.pePreset == null ? 100:(scope.row.pesj / scope.row.pePreset * 100).toFixed(1)}}%}</span><br>
-            <span>钢材{实际:{{scope.row.gsj}},预计:{{scope.row.gcPreset}},占比:{{scope.row.gcPreset == 0||scope.row.pePreset == null ? 100:(scope.row.gsj / scope.row.gcPreset * 100).toFixed(1)}}%}</span>
+            <span>PE{实际:{{ scope.row.pesj }},预计:{{ scope.row.pePreset }},占比:{{ scope.row.pePreset == 0 || scope.row.pePreset == null ? 100 : (scope.row.pesj / scope.row.pePreset * 100).toFixed(1) }}%}</span><br>
+            <span>钢材{实际:{{ scope.row.gsj }},预计:{{ scope.row.gcPreset }},占比:{{ scope.row.gcPreset == 0 || scope.row.pePreset == null ? 100 : (scope.row.gsj / scope.row.gcPreset * 100).toFixed(1) }}%}</span>
           </div>
         </template>
       </el-table-column>
@@ -105,7 +133,9 @@
               placement="top-start"
               trigger="hover"
               :content="item.Type">
-              <span slot="reference" v-if="item.state == '0' && item.content=='暂未审核'"
+              <span slot="reference" v-if="item.state == '-1' && item.content=='无数据'"
+                    style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #807e7a;"></span>
+              <span slot="reference" v-else-if="item.state == '0' && item.content=='暂未审核'"
                     style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #e0c794;"></span>
               <span slot="reference" v-else-if="item.state == '1' "
                     style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #30B08F;"></span>
@@ -168,7 +198,7 @@
             type="text"
             icon="el-icon-download"
             size="mini"
-            @click="download(scope.row.enginName)"
+            @click="downloadZip(scope.row.enginName)"
           >下载图片
           </el-button>
           <el-button
@@ -197,6 +227,22 @@
     <!-- 添加或修改市政工程|工业工程对话框 -->
     <el-dialog :title="title" :visible.sync="open" append-to-body customClass="appendElDialog">
       <el-form ref="form" :model="form" :rules="rules" label-width="110px">
+        <el-form-item label="行政区" prop="district">
+          <el-select
+            style="width: 100%"
+            :disabled="title == '添加用料'"
+            v-model="form.district"
+            placeholder="请选择行政区"
+            filterable
+          >
+            <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="enginName" v-hasPermi="['zdsz:engineeringIndustry:add']">
           <el-input v-model="form.enginName" placeholder="请填写工程名称" maxlength="60"
                     :readonly="title == '添加用料' "
@@ -204,7 +250,7 @@
         </el-form-item>
         <el-form-item label="建筑单位" prop="constructUnit" v-hasPermi="['zdsz:engineeringIndustry:add']">
           <el-input v-model="form.constructUnit" placeholder="请填写建筑单位" maxlength="50"
-                    :readonly="title == '添加用料' " ></el-input>
+                    :readonly="title == '添加用料' "></el-input>
         </el-form-item>
         <el-form-item label="项目负责人" prop="projectHead">
           <el-input v-model="form.projectHead" placeholder="请填写项目负责人" maxlength="20"
@@ -239,16 +285,18 @@
                     :readonly="title == '添加用料' "></el-input>
         </el-form-item>
         <el-form-item label="PE管材预设" prop="pePreset">
-          <el-input v-model="form.pePreset" placeholder="请填写PE管材预设" maxlength="20" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+          <el-input v-model="form.pePreset" placeholder="请填写PE管材预设" maxlength="20"
+                    oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
                     :readonly="title == '添加用料' "></el-input>
         </el-form-item>
         <el-form-item label="钢材预设" prop="gcPreset">
-          <el-input v-model="form.gcPreset" placeholder="请填写钢材预设" maxlength="13" oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
+          <el-input v-model="form.gcPreset" placeholder="请填写钢材预设" maxlength="13"
+                    oninput="value=value.match(/\d+(\.\d{0,1})?/) ? value.match(/\d+(\.\d{0,1})?/)[0] : ''"
                     :readonly="title == '添加用料' "></el-input>
         </el-form-item>
         <el-form-item label="工程类型" prop="enginType" v-hasPermi="['zdsz:engineeringIndustry:add']">
           <el-select v-model="form.enginType" placeholder="请选择工程类型" style="width: 100%"
-                     :disabled="title == '添加用料' " >
+                     :disabled="title == '添加用料' ">
             <el-option
               v-for="e in EngineepipeType"
               :key="e.dictValue"
@@ -257,16 +305,16 @@
             ></el-option>
           </el-select>
         </el-form-item>
-<!--        <el-form-item label="工程分类" prop="enginClassification">-->
-<!--          <el-select v-model="form.enginClassification" placeholder="请选择工程分类" style="width: 100%">-->
-<!--            <el-option-->
-<!--              v-for="e in dict.type.engin_classification"-->
-<!--              :key="e.value"-->
-<!--              :label="e.label"-->
-<!--              :value="e.value"-->
-<!--            ></el-option>-->
-<!--          </el-select>-->
-<!--        </el-form-item>-->
+        <!--        <el-form-item label="工程分类" prop="enginClassification">-->
+        <!--          <el-select v-model="form.enginClassification" placeholder="请选择工程分类" style="width: 100%">-->
+        <!--            <el-option-->
+        <!--              v-for="e in dict.type.engin_classification"-->
+        <!--              :key="e.value"-->
+        <!--              :label="e.label"-->
+        <!--              :value="e.value"-->
+        <!--            ></el-option>-->
+        <!--          </el-select>-->
+        <!--        </el-form-item>-->
         <el-row :gutter="20">
           <el-col :span="24">
             <el-form-item label="附件" v-if="form.id" style="width: 100%">
@@ -291,8 +339,9 @@
         </el-row>
 
         <el-row v-if="title=='添加用料'">
-            <el-form-item label="环节">
-              <el-checkbox-group v-model="currentCheckList" style="display: flex">
+          <el-col :span="24">
+            <el-form-item label="环节" class="hjclass">
+              <el-checkbox-group v-model="currentCheckList" style="display: flex;flex-wrap: wrap;">
                 <el-checkbox
                   :label="item.dictValue"
                   v-for="item in nodeList"
@@ -301,6 +350,7 @@
                 ></el-checkbox>
               </el-checkbox-group>
             </el-form-item>
+          </el-col>
         </el-row>
         <EnginNodeInfo
           v-if="title=='添加用料'"
@@ -441,7 +491,7 @@ import EnginNodeInfo from "@/components/EnginNodeInfo/indexSZ.vue";
 
 export default {
   name: "市政",
-  dicts: ['engin_classification'],
+  dicts: ['engin_classification', 'district'],
   components: {
     EnginNodeInfo,
     ConstructionDetails,
@@ -552,6 +602,9 @@ export default {
       specificationsList: [], // 用料规格List
       // 表单校验
       rules: {
+        district: [
+          {required: true, message: "行政区不能为空", trigger: "change"}
+        ],
         enginName: [
           {required: true, message: "工程名称不能为空", trigger: 'blur'}
         ],
@@ -595,27 +648,27 @@ export default {
     });
   },
   methods: {
-    download(name) {
+    downloadZip(name) {
       this.$download.zip(`/zdsz/engineeringPipeJacking/downloadZip/${'市政工程'}/${name}`, name);
     },
     // 节点审核
-    checkWorking(checkingInfo,flag) {
+    checkWorking(checkingInfo, flag) {
       let params = checkingInfo
       params.createTime = this.createTime
-      if (flag === 1){
-        params.infoIdList.forEach(item=>{
-          if (item.zEngiineeringPhotoBoListOne.length>0){
-            item.zEngiineeringPhotoBoListOne.forEach(o=>{
+      if (flag === 1) {
+        params.infoIdList.forEach(item => {
+          if (item.zEngiineeringPhotoBoListOne.length > 0) {
+            item.zEngiineeringPhotoBoListOne.forEach(o => {
               item.zEngiineeringPhotoBoList.push(o)
             })
           }
-          if (item.zEngiineeringPhotoBoListTwo.length>0){
-            item.zEngiineeringPhotoBoListTwo.forEach(o=>{
+          if (item.zEngiineeringPhotoBoListTwo.length > 0) {
+            item.zEngiineeringPhotoBoListTwo.forEach(o => {
               item.zEngiineeringPhotoBoList.push(o)
             })
           }
-          if (item.zEngiineeringPhotoBoListThree.length>0){
-            item.zEngiineeringPhotoBoListThree.forEach(o=>{
+          if (item.zEngiineeringPhotoBoListThree.length > 0) {
+            item.zEngiineeringPhotoBoListThree.forEach(o => {
               item.zEngiineeringPhotoBoList.push(o)
             })
           }
@@ -628,7 +681,7 @@ export default {
             message: '审核成功',
             type: 'success'
           });
-          this.$refs.ConstructionDetails.dialogVisible = false
+          // this.$refs.ConstructionDetails.dialogVisible = false
           this.getList()
         }
       })
@@ -763,7 +816,7 @@ export default {
     },
     enginNodeStatusExecuted(item) {
       try {
-         return this.form.nodeReViewStateList.find(o => o.Type == item.dictLabel).state == '1';
+        return this.form.nodeReViewStateList.find(o => o.Type == item.dictLabel).state == '1';
       } catch (error) {
         return false
       }
@@ -771,6 +824,7 @@ export default {
     addNewPipe(data) {
       this.$refs.enginPipe.openDialog({
         id: data.id,
+        district: data.district,
         type: this.form.type
       }, 'add', data)
     },
@@ -1000,7 +1054,7 @@ export default {
     handleExport() {
       this.download('zdsz/engineeringIndustry/export', {
         ...this.queryParams
-      }, `comprehensive_${new Date().getTime()}.xlsx`)
+      }, `市政工程数据_${new Date().getTime()}.xlsx`)
     }
   }
 };
@@ -1009,6 +1063,9 @@ export default {
 
 <style lang="scss" scoped>
 
+.hjclass {
+  width: 100% !important;
+}
 
 ::v-deep .appendElDialog {
   width: 70%;

+ 39 - 1
src/views/zdsz/engineeringInfrastructure/index.vue

@@ -9,6 +9,16 @@
 <template>
   <div class="app-container">
     <el-form :model="searchParams" ref="searchForm" size="small" :inline="true" label-width="110px">
+      <el-form-item label="行政区" prop="district">
+        <el-select v-model="searchParams.district" placeholder="请选择行政区" clearable>
+          <el-option
+              v-for="dict in dict.type.district"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
       <el-form-item label="工程名称" prop="enginName">
         <el-input v-model="searchParams.enginName" placeholder="请输入工程名称" ></el-input>
       </el-form-item>
@@ -54,6 +64,8 @@
       </el-col>
       <el-col :span="2.5" style="float: right;">
         <span
+          style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #807e7a;"></span>无数据
+        <span
           style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #e0c794;"></span>待审核
         <span
           style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #30B08F;"></span>通过
@@ -66,6 +78,11 @@
     <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="district">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.district" :value="scope.row.district"/>
+        </template>
+      </el-table-column>
       <el-table-column label="工程名称" align="center" prop="enginName" />
       <el-table-column label="工程地址" align="center" prop="enginAddre" />
       <el-table-column label="建设单位" align="center" prop="constructUnit" />
@@ -79,7 +96,9 @@
               placement="top-start"
               trigger="hover"
               :content="item.Type">
-              <span slot="reference" v-if="item.state == '0' && item.content=='暂未审核'"
+              <span slot="reference" v-if="item.state == '-1' && item.content=='无数据'"
+                    style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #807e7a;"></span>
+              <span slot="reference" v-else-if="item.state == '0' && item.content=='暂未审核'"
                     style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #e0c794;"></span>
               <span slot="reference" v-else-if="item.state == '1' "
                     style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #30B08F;"></span>
@@ -167,6 +186,22 @@
     <!-- 添加或修改开栓|安检|维修对话框 -->
     <el-dialog :title="title" ref="nodeForm" :visible.sync="open" append-to-body customClass="appendElDialog" @close="onClose">
       <el-form ref="form" :model="queryParams" :rules="rules" label-width="110px">
+        <el-form-item label="行政区" prop="district">
+          <el-select
+              style="width: 100%"
+              :disabled="title == '添加用料'"
+              v-model="queryParams.district"
+              placeholder="请选择行政区"
+              filterable
+          >
+            <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="enginName">
           <el-input v-model="queryParams.enginName" placeholder="请输入工程名称" maxlength="50" :disabled="title == '添加用料' "></el-input>
         </el-form-item>
@@ -565,6 +600,9 @@ export default {
       houses: [],
       // 表单校验
       rules: {
+        district: [
+          {required: true, message: "行政区不能为空", trigger: "change"}
+        ],
         enginAddre: [
           { required: true, message: "工程地址不能为空", trigger: "blur" }
         ],

+ 37 - 8
src/views/zdsz/engineeringPipeJacking/index.vue

@@ -9,6 +9,16 @@
   <div class="app-container">
     <el-form :model="queryParams1" ref="queryForm1" size="small" :inline="true" v-show="showSearch" label-width="110px"
              @submit.native.prevent>
+      <el-form-item label="行政区" prop="district">
+        <el-select v-model="queryParams1.district" placeholder="请选择行政区" clearable>
+          <el-option
+              v-for="dict in dict.type.district"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
       <el-form-item label="工程名称" prop="enginName">
         <el-input v-model="queryParams1.enginName" placeholder="请输入工程名称" clearable></el-input>
       </el-form-item>
@@ -43,7 +53,19 @@
         >删除
         </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:engineeringPipeJacking:export']"
+        >导出</el-button>
+      </el-col>
       <el-col :span="2.5" style="float: right;">
+         <span
+           style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #807e7a;"></span>无数据
         <span
               style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #e0c794;"></span>待审核
         <span
@@ -57,6 +79,11 @@
     <el-table v-loading="loading" :data="comprehensiveList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
       <!--            <el-table-column label="工程id" align="center" prop="enginId" />-->
+      <el-table-column label="行政区" align="center" prop="district">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.district" :value="scope.row.district"/>
+        </template>
+      </el-table-column>
       <el-table-column label="工程名称" align="center" prop="enginName"/>
       <el-table-column label="工程编码" align="center" prop="enginCode"/>
       <el-table-column label="施工单位" align="center" prop="constructUnit"/>
@@ -66,8 +93,8 @@
       <el-table-column label="用料比" align="center" prop="enginClassification" width="300px">
         <template slot-scope="scope">
           <div>
-            <span>PE{实际:{{scope.row.pesj}},预计:{{scope.row.pePreset}},占比:{{scope.row.pePreset == 0||scope.row.pePreset == null ? 100:(scope.row.pesj / scope.row.pePreset * 100).toFixed(1)}}%}</span><br>
-            <span>钢材{实际:{{scope.row.gsj}},预计:{{scope.row.gcPreset}},占比:{{scope.row.gcPreset == 0||scope.row.pePreset == null ? 100:(scope.row.gsj / scope.row.gcPreset * 100).toFixed(1)}}%}</span>
+            <span>PE{实际: {{scope.row.pesj}},预计: {{scope.row.pePreset}},占比: {{scope.row.pePreset == 0||scope.row.pePreset == null ? 100:(scope.row.pesj / scope.row.pePreset * 100).toFixed(1)}}%}</span><br>
+            <span>钢材{实际: {{scope.row.gsj}},预计: {{scope.row.gcPreset}},占比: {{scope.row.gcPreset == 0||scope.row.pePreset == null ? 100:(scope.row.gsj / scope.row.gcPreset * 100).toFixed(1)}}%}</span>
           </div>
         </template>
       </el-table-column>
@@ -79,7 +106,9 @@
               placement="top-start"
               trigger="hover"
               :content="item.Type">
-             <span slot="reference" v-if="item.state == '0' && item.content=='暂未审核'"
+              <span slot="reference" v-if="item.state == '-1' && item.content=='无数据'"
+                    style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #807e7a;"></span>
+             <span slot="reference" v-else-if="item.state == '0' && item.content=='暂未审核'"
                    style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #e0c794;"></span>
               <span slot="reference" v-else-if="item.state == '1' "
                     style="height: 20px;margin-right: 5px;width: 20px; border-radius: 50%; display: inline-block; background-color: #30B08F;"></span>
@@ -144,7 +173,7 @@
             type="text"
             icon="el-icon-download"
             size="mini"
-            @click="download(scope.row.enginName)"
+            @click="downloadZip(scope.row.enginName)"
           >下载图片</el-button>
         </template>
       </el-table-column>
@@ -340,7 +369,7 @@ export default {
     EngineePipe,
     ConstructionDetails
   },
-  dicts: ['sys_yes_no', 'is_repair', 'engin_type', 'self_closing_valve_type', 'visit_type', 'pipe_jack'],
+  dicts: ['sys_yes_no', 'is_repair', 'engin_type', 'self_closing_valve_type', 'visit_type', 'pipe_jack', 'district'],
   data() {
     return {
       currentCollapses: [],  // 当前节点历史数据
@@ -409,7 +438,7 @@ export default {
         remark: '',                // 备注
         zEngineeringNodeBo: {
           type: null,
-          zEngineeringInfoBo: {},    //节点信息
+          // zEngineeringInfoBo: {},    //节点信息
         }
       },
       zEngineeringInfoBo: {
@@ -533,7 +562,7 @@ export default {
     this.getList();
   },
   methods: {
-    download(name){
+    downloadZip(name){
       this.$download.zip(`/zdsz/engineeringPipeJacking/downloadZip/顶管工程/${name}`, name);
     },
     // 填写节点信息
@@ -777,7 +806,7 @@ export default {
     handleExport() {
       this.download('zdsz/engineeringPipeJacking/export', {
         ...this.queryParams
-      }, `comprehensive_${new Date().getTime()}.xlsx`)
+      }, `顶管工程数据_${new Date().getTime()}.xlsx`)
     }
   }
 };

+ 71 - 30
src/views/zdsz/touchOperationEngineering/index.vue

@@ -1,6 +1,16 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" 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>
+          <el-option
+              v-for="dict in dict.type.district"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
       <el-form-item label="作业方式" prop="modeOperation">
         <el-select v-model="queryParams.modeOperation" placeholder="请选择作业方式" clearable>
           <el-option
@@ -94,6 +104,11 @@
     <el-table v-loading="loading" :data="touchOperationEngineeringList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
       <el-table-column label="" align="center" prop="id" v-if="false"/>
+      <el-table-column label="行政区" align="center" prop="district">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.district" :value="scope.row.district"/>
+        </template>
+      </el-table-column>
       <el-table-column label="作业方式" align="center" prop="modeOperation">
         <template slot-scope="scope">
           <dict-tag :options="dict.type.tapping_operation" :value="scope.row.modeOperation"/>
@@ -166,7 +181,7 @@
             type="text"
             icon="el-icon-download"
             size="mini"
-            @click="download(scope.row.enginName)"
+            @click="downloadZip(scope.row.enginName)"
           >下载图片
           </el-button>
           <el-button
@@ -192,11 +207,30 @@
     <!-- 添加或修改碰口作业对话框 -->
     <el-dialog :title="title" :visible.sync="open" :width="title == '添加碰口作业用料信息'?'1500px':'800px'"
                append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px" >
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-row :gutter="24">
           <el-col :span="12">
+            <el-form-item label="行政区" prop="district">
+              <el-select
+                  style="width: 100%"
+                  :disabled="title == '添加用料'"
+                  v-model="form.district"
+                  placeholder="请选择行政区"
+                  filterable
+              >
+                <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-col>
+          <el-col :span="12">
             <el-form-item label="作业方式" prop="modeOperation">
-              <el-select v-model="form.modeOperation" placeholder="请选择作业方式" style="width: 100%" :disabled="title == '添加碰口作业用料信息'">
+              <el-select v-model="form.modeOperation" placeholder="请选择作业方式" style="width: 100%"
+                         :disabled="title == '添加碰口作业用料信息'">
                 <el-option
                   v-for="dict in dict.type.tapping_operation"
                   :key="dict.value"
@@ -208,17 +242,19 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="工程名称" prop="enginName">
-              <el-input v-model="form.enginName" placeholder="请输入工程名称" :disabled="title == '添加碰口作业用料信息'"/>
+              <el-input v-model="form.enginName" placeholder="请输入工程名称"
+                        :disabled="title == '添加碰口作业用料信息'"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-          <el-form-item label="工程地点" prop="locations">
-            <el-input v-model="form.locations" placeholder="请输入地点" :disabled="title == '添加碰口作业用料信息'"/>
-          </el-form-item>
+            <el-form-item label="工程地点" prop="locations">
+              <el-input v-model="form.locations" placeholder="请输入地点" :disabled="title == '添加碰口作业用料信息'"/>
+            </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="备注" prop="remark">
-              <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" :disabled="title == '添加碰口作业用料信息'" maxlength="200" rows="5"/>
+              <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"
+                        :disabled="title == '添加碰口作业用料信息'" maxlength="200" rows="5"/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -249,7 +285,9 @@
       </el-form>
 
       <div slot="footer" class="dialog-footer">
-        <el-button :loading="buttonLoading" type="primary" v-if="title == '添加碰口作业用料信息'" @click="addForm">添加用料</el-button>
+        <el-button :loading="buttonLoading" type="primary" v-if="title == '添加碰口作业用料信息'" @click="addForm">
+          添加用料
+        </el-button>
         <el-button :loading="buttonLoading" type="primary" v-else @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
@@ -283,7 +321,7 @@ import {insertReview} from "@/api/zdsz/enginee";
 export default {
   name: "TouchOperationEngineering",
   components: {ConstructionDetails, EnginNodeInfo},
-  dicts: ['tapping_operation', 'bury_the_wrench_hole', 'aerial_wrench_hole', 'shutdown_operation', 'pe_plugging', 'the_steel_pipe_sealed_with_gas'],
+  dicts: ['tapping_operation', 'bury_the_wrench_hole', 'aerial_wrench_hole', 'shutdown_operation', 'pe_plugging', 'the_steel_pipe_sealed_with_gas', 'district'],
   data() {
     return {
       // 按钮loading
@@ -323,6 +361,9 @@ export default {
       form: {},
       // 表单校验
       rules: {
+        district: [
+          {required: true, message: "行政区不能为空", trigger: "change"}
+        ],
         id: [
           {required: true, message: "不能为空", trigger: "blur"}
         ],
@@ -342,7 +383,7 @@ export default {
     this.getList();
   },
   methods: {
-    download(name) {
+    downloadZip(name) {
       this.$download.zip(`/zdsz/engineeringPipeJacking/downloadZip/${'碰口工程'}/${name}`, name);
     },
     // 节点审核
@@ -356,7 +397,7 @@ export default {
             message: '审核成功',
             type: 'success'
           });
-          this.$refs.ConstructionDetails.dialogVisible = false
+          // this.$refs.ConstructionDetails.dialogVisible = false
           this.getList()
         }
       })
@@ -419,21 +460,21 @@ export default {
       })
 
     },
-    handleHistory(e, type = null){
+    handleHistory(e, type = null) {
       this.currentId = e.id
       let dict = []
       let dists = e.modeOperation;
-      // if ("地埋扳孔"  == e.modeOperation){
-      //   dists="bury_the_wrench_hole";
-      // }else if ("架空扳孔"  == e.modeOperation){
-      //   dists="aerial_wrench_hole";
-      // }else if ("停气作业"  == e.modeOperation){
-      //   dists="shutdown_operation";
-      // }else if ("PE 封堵"  == e.modeOperation){
-      //   dists="pe_plugging";
-      // }else if ("钢管带气封堵"  == e.modeOperation){
-      //   dists="the_steel_pipe_sealed_with_gas";
-      // }
+      if ("地埋扳孔" == e.modeOperation) {
+        dists = "bury_the_wrench_hole";
+      } else if ("架空扳孔" == e.modeOperation) {
+        dists = "aerial_wrench_hole";
+      } else if ("停气作业" == e.modeOperation) {
+        dists = "shutdown_operation";
+      } else if ("PE 封堵" == e.modeOperation) {
+        dists = "pe_plugging";
+      } else if ("钢管带气封堵" == e.modeOperation) {
+        dists = "the_steel_pipe_sealed_with_gas";
+      }
       getDicts(dists).then(res => {
         this.nodeList = res.data
         for (let i = 0; i < this.nodeList.length; i++) {
@@ -450,11 +491,11 @@ export default {
         this.$refs.ConstructionDetails.open(dict, null, "历史施工信息", null, this.status)
       })
     },
-    addForm(){
+    addForm() {
       // 收集节点信息
       let nodeCollection = []
-      this.currentCheckList.forEach((e,idx) => {
-        let nodeItem = this.$refs['EnginNodeInfo'+ idx][0].infoCollection()
+      this.currentCheckList.forEach((e, idx) => {
+        let nodeItem = this.$refs['EnginNodeInfo' + idx][0].infoCollection()
         //  console.log(nodeItem)
         nodeCollection.push(nodeItem)
       })
@@ -484,8 +525,8 @@ export default {
     },
     // 表单重置
     reset() {
-      this.currentCheckList=[]
-      this.nodeList=[]
+      this.currentCheckList = []
+      this.nodeList = []
       this.form = {
         id: undefined,
         modeOperation: undefined,
@@ -605,7 +646,7 @@ export default {
     handleExport() {
       this.download('zdsz/touchOperationEngineering/export', {
         ...this.queryParams
-      }, `touchOperationEngineering_${new Date().getTime()}.xlsx`)
+      }, `碰口工程数据_${new Date().getTime()}.xlsx`)
     }
   }
 };