Kaynağa Gözat

可视化统计

wangtong 1 yıl önce
ebeveyn
işleme
e933e5de08

+ 110 - 3
src/components/ConstructionDetails/index.vue

@@ -93,7 +93,20 @@
                           ></el-option>
                       </el-select>
                     </el-form-item>
+                  <el-form-item
+                    v-if="currentDicts.some(item=>item.label==='底腿开挖前')||currentDicts.some(item=>item.label==='底腿下沟')||currentDicts.some(item=>item.label==='底腿回填')"
+                    :prop="i.number + ''"
+                    :class="enginType != '基建工程' && enginType != '民用工程' ? 'labelWidth' : '' "
+                    label="管径"
+                    v-show="i.number != null"
+                    label-width="95px"
+                  >
+                    <div class="block" style="display: inline-block; margin-right: 20px;">
+                      <el-input v-model="i.number" placeholder="请输入管径" style="width: 100%" type="number" oninput="value = value.replace(/[^\d]/g, '');if(value.length>9); value=value.slice(0,9)" max="999999999" :disabled="status == 'read-only'"></el-input>
+                    </div>
+                  </el-form-item>
                     <el-form-item
+                      v-else
                       :prop="i.number + ''"
                       :class="enginType != '基建工程' && enginType != '民用工程' ? 'labelWidth' : '' "
                       label="数量"
@@ -104,6 +117,8 @@
                         <el-input v-model="i.number" placeholder="请输入数量" style="width: 100%" type="number" oninput="value = value.replace(/[^\d]/g, '');if(value.length>9); value=value.slice(0,9)" max="999999999" :disabled="status == 'read-only'"></el-input>
                       </div>
                     </el-form-item>
+
+
                     <el-form-item
                       :prop="i.remark + ''"
                       :class="enginType != '基建工程' && enginType != '民用工程' ? 'labelWidth' : '' "
@@ -201,7 +216,7 @@
                 </el-input> -->
             </div>
             <!-- <el-form-item label="照片" prop="zEngiineeringPhotoBoList" class="obsImage"> -->
-              <div style="display: flex;width: 100%;height: 100%;">
+              <div style="display: flex;width: 100%;height: 100%;" v-if="!node==='下沟'">
                 <h3 style="width: 95px;font-weight: 600;text-align: center;text-indent: 41px;">图片</h3>
                 <ObsImageUpload
                   :class=" status == 'read-only' ? 'obsImageUploads' : '' "
@@ -213,6 +228,78 @@
                   :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: 41px;">管上皮深度测量照片</h3>
+              <ObsImageUpload
+                :class=" status == 'read-only' ? 'obsImageUploads' : '' "
+                ref="obsImageUpload"
+                :limit="11"
+                :fileType="['png', 'jpg', 'jpeg']"
+                @input="getductalEpitheliumUrl(arguments,idx)"
+                :value="e.ductalEpithelium"
+                :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: 41px;">管沟远景照片</h3>
+              <ObsImageUpload
+                :class=" status == 'read-only' ? 'obsImageUploads' : '' "
+                ref="obsImageUpload"
+                :limit="11"
+                :fileType="['png', 'jpg', 'jpeg']"
+                @input="gettrenchProspectUrl(arguments,idx)"
+                :value="e.trenchProspect"
+                :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: 41px;">视频</h3>
+              <ObsImageUpload
+                :class=" status == 'read-only' ? 'obsImageUploads' : '' "
+                ref="obsImageUpload"
+                :limit="11"
+                :fileType="['png', 'jpg', 'jpeg']"
+                @input="getVideoUrl(arguments,idx)"
+                :value="e.Video"
+                :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: 41px;">石粉回填照片</h3>
+              <ObsImageUpload
+                :class=" status == 'read-only' ? 'obsImageUploads' : '' "
+                ref="obsImageUpload"
+                :limit="11"
+                :fileType="['png', 'jpg', 'jpeg']"
+                @input="getstonePowderUrl(arguments,idx)"
+                :value="e.stonePowder"
+                :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: 41px;">警示带铺设</h3>
+              <ObsImageUpload
+                :class=" status == 'read-only' ? 'obsImageUploads' : '' "
+                ref="obsImageUpload"
+                :limit="11"
+                :fileType="['png', 'jpg', 'jpeg']"
+                @input="getwarningtTapeUrl(arguments,idx)"
+                :value="e.warningtTape"
+                :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: 41px;">回填后照片</h3>
+              <ObsImageUpload
+                :class=" status == 'read-only' ? 'obsImageUploads' : '' "
+                ref="obsImageUpload"
+                :limit="11"
+                :fileType="['png', 'jpg', 'jpeg']"
+                @input="getphotosAfterUrl(arguments,idx)"
+                :value="e.photosAfter"
+                :disabled="status == 'read-only' "
+              ></ObsImageUpload>
+            </div>
 
             <!-- </el-form-item> -->
             <hr>
@@ -333,7 +420,7 @@ export default {
         reviewContent: [
           {required: true, message: "审核内容不能为空", trigger: "change"}
         ],
-      }
+      },node:null
     }
   },
   created(){
@@ -447,6 +534,7 @@ export default {
     // 查看单节点历史
     viewSource(e) {
       console.log('节点',e)
+      this.node=e.name
       this.$parent.viewNodeSource(e.name)
     },
     // 单项审核
@@ -491,7 +579,8 @@ export default {
         }
         this.currentDicts = dicts
       }
-
+      this.currentDicts = dicts
+      console.log("this.currentDicts",this.currentDicts)
       this.dialogVisible = true
       this.$forceUpdate()
     },
@@ -507,6 +596,24 @@ export default {
     getUrl(_,idx) {
       this.currentCollapses[idx].zEngiineeringPhotoBoList = [...arguments][0][0].map(e=>e.url) || [];
     },
+    getductalEpitheliumUrl(_,idx) {
+      this.currentCollapses[idx].ductalEpithelium = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getrenchProspectUrl(_,idx) {
+      this.currentCollapses[idx].trenchProspect = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getstonePowderUrl(_,idx) {
+      this.currentCollapses[idx].stonePowder = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getwarningtTapeUrl(_,idx) {
+      this.currentCollapses[idx].warningtTape = [...arguments][0][0].map(e=>e.url) || [];
+    },
+    getphotosAfterUrl(_,idx) {
+      this.currentCollapses[idx].photosAfter = [...arguments][0][0].map(e=>e.url) || [];
+    },
+  getVideoUrl(_,idx) {
+    this.currentCollapses[idx].Video = [...arguments][0][0].map(e=>e.url) || [];
+  }
   }
 }
 </script>

+ 63 - 3
src/components/EnginNodeInfo/index.vue

@@ -53,6 +53,30 @@
         <ObsImageUpload ref="obsImageUpload" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.zEngiineeringPhotoBoList"
                         @input="getUrl"></ObsImageUpload>
       </el-form-item>
+      <el-form-item label="管上皮深度测量照片" prop="ductalEpithelium" v-if="currentContain.includes('ductalEpithelium')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
+        <ObsImageUpload ref="ductalEpithelium" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.ductalEpithelium"
+                        @input="getductalEpitheliumUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="管沟远景照片" prop="trenchProspect" v-if="currentContain.includes('trenchProspect')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
+        <ObsImageUpload ref="trenchProspect" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.trenchProspect"
+                        @input="gettrenchProspectUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="石粉回填照片" prop="stonePowder" v-if="currentContain.includes('stonePowder')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
+        <ObsImageUpload ref="stonePowder" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.stonePowder"
+                        @input="getstonePowderUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="管沟远景照片" prop="warningtTape" v-if="currentContain.includes('warningtTape')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
+        <ObsImageUpload ref="warningtTape" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.warningtTape"
+                        @input="getwarningtTapeUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="回填后照片" prop="photosAfter" v-if="currentContain.includes('photosAfter')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
+        <ObsImageUpload ref="photosAfter" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.photosAfter"
+                        @input="getphotosAfterUrl"></ObsImageUpload>
+      </el-form-item>
+      <el-form-item label="视频" prop="Video" v-if="currentContain.includes('Video')" class="obsImage" :class=" enginType == '顶管工程' ? 'obsActiveImage' : enginType == '基建工程' ? 'obsActiveImageStructure' : '' ">
+        <ObsImageUpload ref="Video" :limit="9999" :fileType="['png', 'jpg', 'jpeg']" :value="nodeInfo.Video"
+                        @input="getVideoUrl"></ObsImageUpload>
+      </el-form-item>
       <el-form-item label="备注" prop="remark" v-if="currentContain.includes('remark')">
         <el-input
           v-model="nodeInfo.remark"
@@ -151,7 +175,7 @@
           </el-form-item>
         </el-col>
         <!-- end -->
-        <el-col :span="7" v-show="materialComponList.includes('number')">
+        <el-col :span="7" v-if="materialComponList.includes('number')">
           <el-form-item
             :prop="'zEngineeringMaterialBo.' + index + '.number'"
             label-width="50px"
@@ -159,7 +183,20 @@
           >
             <!--                  :rules="[{required: true, message: '请输入数量', trigger: 'change'},{validator: [checkPositiveInteger], trigger: 'blur'}]"-->
             <div class="block" style="display: inline-block; margin-right: 20px;">
-              <el-input-number v-model="item.number" placeholder="请输入数量" style="width: 100%" max="999999" precision="1" :controls="false" :disabled="status == 'read-only'"></el-input-number>
+              <el-input v-model="item.number" placeholder="请输入数量" style="width: 100%" type="number" oninput="value = value.replace(/[^\d]/g, '');if(value.length>9); value=value.slice(0,9)" :disabled="status == 'read-only'"></el-input>
+            </div>
+          </el-form-item>
+        </el-col>
+        <el-col :span="7" v-if="materialComponList.includes('caliber')">
+          <el-form-item
+            :prop="'zEngineeringMaterialBo.' + index + '.number'"
+            label-width="50px"
+            label="管径"
+          >
+            <!--                  :rules="[{required: true, message: '请输入数量', trigger: 'change'},{validator: [checkPositiveInteger], trigger: 'blur'}]"-->
+            <div class="block" style="display: inline-block; margin-right: 20px;">
+<!--              <el-input-number v-model="item.number" placeholder="请输入管径" style="width: 100%" type="number" oninput="value = value.replace(/[^\d]/g, '');if(value.length>9); value=value.slice(0,9)" :disabled="status == 'read-only'"></el-input-number>-->
+              <el-input-number v-model="item.number" placeholder="请输入管径" style="width: 100%" max="999999" precision="1" :controls="false" :disabled="status == 'read-only'"></el-input-number>
             </div>
           </el-form-item>
         </el-col>
@@ -340,9 +377,10 @@ export default {
     console.log('update',this.updateOption)
   },
   mounted(){
+
     console.log('当前节点name',this.name)
     console.log('update',this.updateOption)
-    console.log('当前节点currentContain',this.currentContain)
+    console.log('当前节点currentContain',this.types)
     this.materialComponList = this.currentContain.find(e => {
       if( e instanceof Array){
         return e
@@ -386,6 +424,7 @@ export default {
     // 收集节点信息
     infoCollection(){
       let result = null
+      console.log(this.$refs.fangxianForm)
       this.$refs.fangxianForm.validate(valid => {
         if(valid){
           // 收集主节点信息
@@ -399,6 +438,12 @@ export default {
           this.nodeInfoBo.type = this.name
           // 接口数据格式修改 图片和用料放到nodeInfoBo节点详情对象中
           this.nodeInfoBo.zEngineeringInfoBo.zEngiineeringPhotoBoList = this.nodeInfo.zEngiineeringPhotoBoList
+          this.nodeInfoBo.zEngineeringInfoBo.ductalEpithelium=this.nodeInfo.ductalEpithelium
+          this.nodeInfoBo.zEngineeringInfoBo.trenchProspect=this.nodeInfo.trenchProspect
+          this.nodeInfoBo.zEngineeringInfoBo.stonePowder=this.nodeInfo.stonePowder
+          this.nodeInfoBo.zEngineeringInfoBo.warningtTape=this.nodeInfo.warningtTape
+          this.nodeInfoBo.zEngineeringInfoBo.photosAfter=this.nodeInfo.photosAfter
+          this.nodeInfoBo.zEngineeringInfoBo.Video=this.nodeInfo.Video
           this.nodeInfoBo.zEngineeringInfoBo.zEngineeringMaterialBo = this.zEngineeringMaterialBo
           delete this.nodeInfo.zEngiineeringPhotoBoList
           console.log('即将返回的节点Info',this.nodeInfoBo)
@@ -439,6 +484,21 @@ export default {
     getUrl(url) {
       this.nodeInfo.zEngiineeringPhotoBoList = this.$refs.obsImageUpload.fileList ? this.$refs.obsImageUpload.fileList.map(e=>e.url):[];
     },
+    getductalEpitheliumUrl(url) {
+      this.nodeInfo.ductalEpithelium = this.$refs.ductalEpithelium.fileList ? this.$refs.ductalEpithelium.fileList.map(e=>e.url):[];
+    },
+    getstonePowderUrl(url) {
+      this.nodeInfo.stonePowder = this.$refs.stonePowder.fileList ? this.$refs.stonePowder.fileList.map(e=>e.url):[];
+    },
+    getwarningtTapeUrl(url) {
+      this.nodeInfo.warningtTape = this.$refs.warningtTape.fileList ? this.$refs.warningtTape.fileList.map(e=>e.url):[];
+    },
+    getphotosAfterUrl(url) {
+      this.nodeInfo.photosAfter = this.$refs.photosAfter.fileList ? this.$refs.photosAfter.fileList.map(e=>e.url):[];
+    },
+    getVideoUrl(url) {
+      this.nodeInfo.Video = this.$refs.Video.fileList ? this.$refs.Video.fileList.map(e=>e.url):[];
+    },
     // 获取材质规格
     getEnginSpecificationsList(e,idx){
       this.zEngineeringMaterialBo[idx].specifications = null;

+ 79 - 10
src/views/zdsz/engineeringCivil/index.vue

@@ -65,6 +65,7 @@
       </el-form-item>
       <el-form-item label="工程分类" prop="enginClassification">
         <el-select v-model="queryParams1.enginClassification" placeholder="请选择工程分类" clearable
+                   @change="nodeTypeHasChangeds"
                    @clear="">
           <el-option
             v-for="dict in currentEnginTypeChangeOptions1"
@@ -74,6 +75,17 @@
           />
         </el-select>
       </el-form-item>
+      <el-form-item label="工程步骤" prop="type">
+        <el-select v-model="queryParams1.type" placeholder="请选择工程步骤" clearable
+                   @clear="">
+          <el-option
+            v-for="dict in currentEnginTypeChangeOptions2"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
       <!--      <el-form-item label="工程周期" prop="enginCycle">-->
       <!--        <el-select v-model="queryParams1.enginCycle" placeholder="请选择工程周期" clearable-->
       <!--                   @clear="">-->
@@ -405,6 +417,7 @@
                   :disabled=enginNodeStatusExecuted(item)
                   :label="item.dictValue"
                   v-for="item in checkList"
+
                   :key="item"
                 ></el-checkbox>
               </el-checkbox-group>
@@ -706,12 +719,15 @@ export default {
           name: '下沟',
           components: [
             [
-              'materialQuality',                       // 材质
-              'specifications',                        // 规格
-              'number',                                // 数量
+              // 'ductalEpithelium',                       // 材质
+              // 'trenchProspect',              // 规格
+              // 'number',                                // 数量
             ],
-            'constructTime',                           // 施工时间
-            'zEngiineeringPhotoBoList',                // 照片
+            'ductalEpithelium',                       // 材质
+            'trenchProspect',
+            'constructTime',
+            'Video'// 施工时间
+            // 'zEngiineeringPhotoBoList',                // 照片
             // 'remark',                                  // 施工内容
           ]
         },
@@ -723,9 +739,12 @@ export default {
               // 'specifications',                        // 规格
               // 'number',                                // 数量
             ],
-            'backfillTime',                            // 回填时间
+            'stonePowder',
+            'warningtTape',
+            'photosAfter',
+            // 'backfillTime',                            // 回填时间
             'constructTime',                           // 施工时间
-            'zEngiineeringPhotoBoList',                // 照片
+            // 'zEngiineeringPhotoBoList',                // 照片
             // 'remark',                                  // 施工内容
           ]
         },
@@ -737,7 +756,7 @@ export default {
               // 'specifications',                        // 规格
               // 'number',                                // 数量
             ],
-            'segmentedCompressionQualified',           // 分段打压
+            // 'segmentedCompressionQualified',           // 分段打压
             'constructTime',                           // 施工时间
             'zEngiineeringPhotoBoList',                // 照片
             // 'remark',                                  // 施工内容
@@ -843,6 +862,43 @@ export default {
             'zEngiineeringPhotoBoList',                // 照片
           ]
         },
+        {
+          name: '底腿开挖前',
+          components: [
+            [
+              'caliber'                              // 管径
+            ],
+            'constructTime',
+            'zEngiineeringPhotoBoList',                // 照片
+          ]
+        },{
+          name: '底腿下沟',
+          components: [
+            [
+              'caliber'                              // 管径
+            ],
+            'constructTime',
+            'zEngiineeringPhotoBoList',                // 照片
+          ]
+        },{
+          name: '底腿回填',
+          components: [
+            [
+              'caliber'                              // 管径
+            ],
+            'constructTime',
+            'zEngiineeringPhotoBoList',                // 照片
+          ]
+        },
+        {
+          name: '管道施工记录',
+          components: [
+            [
+            ],
+            'constructTime',
+            'zEngiineeringPhotoBoList',                // 照片
+          ]
+        }
       ],
       currentCheckList: [],
       enginClassificationinfo: '',
@@ -859,6 +915,7 @@ export default {
       ],
       currentEnginTypeChangeOptions: [],
       currentEnginTypeChangeOptions1: [],
+      currentEnginTypeChangeOptions2:[],
 
       // 按钮loading
       buttonLoading: false,
@@ -924,6 +981,7 @@ export default {
         enginCycle: 0,
         completionStatus: undefined,
         imgUrl: undefined,
+        type:undefined
       },
       zEngineeringInfoBo: {
         constructAddre: '',        // 施工地址
@@ -1114,6 +1172,7 @@ export default {
       })
     },
     addNodeInfo(e) {
+      console.log('e',11111)
       this.nodeDetailType = '修改'
       this.enginId = e.id
       this.status = 'put'
@@ -1134,7 +1193,7 @@ export default {
       if (e) {
         this.currentEnginName = e
       }
-      console.log(this.currentEnginName)
+      console.log('viewNodeSource',this.currentEnginName)
       viewEngineeringCivilSource({
         id: this.enginId,
         type: e || this.currentEnginName
@@ -1148,7 +1207,7 @@ export default {
         } catch (error) {
           this.currentCollapses = [];
         }
-        console.log('折叠面板info', this.currentCollapses)
+        console.log('折叠面板info', this.currentEnginName)
       })
       this.$forceUpdate()
     },
@@ -1304,6 +1363,16 @@ export default {
         this.currentEnginTypeChangeOptions1 = res.data
       })
     },
+    nodeTypeHasChangeds(enginType = null,enginClassification = null) {
+      if ((this.queryParams1.enginType == undefined || this.queryParams1.enginType == null || this.queryParams1.enginType == '')&&(this.queryParams1.enginClassification == undefined || this.queryParams1.enginClassification == null || this.queryParams1.enginClassification == ''))
+        return
+      this.currentCheckList = []
+      this.queryParams1.type = ''
+      this.currentEnginTypeChangeOptions2 = []
+      getDicts(enginType&&enginClassification || this.queryParams1.enginType+'_'+this.queryParams1.enginClassification).then(res => {
+        this.currentEnginTypeChangeOptions2 = res.data
+      })
+    },
     enginTypeHasChanged(enginType = null) {
       this.currentCheckList = []
       this.queryParams.enginClassification = ''