wenhongquan 3 年之前
父节点
当前提交
4efbe385f2

+ 1 - 1
src/components/Breadcrumb/index.vue

@@ -18,7 +18,7 @@ const levelList = ref([])
 function getBreadcrumb() {
   // only show routes with meta.title
   let matched = route.matched.filter(item => item.meta && item.meta.title);
-  console.log(matched)
+  // console.log(matched)
   const first = matched[0]
   // 判断是否为首页
   if (!isDashboard(first)) {

+ 300 - 240
src/components/Task/Add/index.vue

@@ -1,269 +1,329 @@
 <template>
-    <div class="taskadd">
-        <el-form :model="taskinfo" label-width="120px">
-            <el-row>
-                <el-col :span="12">
-                    <el-form-item label="事件来源:">
-
-                        <el-select v-model="taskinfo.taskType" class="m-1" placeholder="请选择">
-                            <el-option v-for="item in task_type" :label="item.label" :value="item.value"></el-option>
-                        </el-select>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="班组区域:">
-                        <el-tree-select v-model="taskinfo.taskDeptRange" multiple :data="treedept" check-strictly=true />
-
-                        <!-- <el-select v-model="taskinfo.taskDeptRange" class="m-1" placeholder="请选择">
+  <div class="taskadd">
+    <el-form :model="taskinfo" label-width="120px">
+      <el-row>
+        <el-col :span="12">
+          <el-form-item label="事件来源:">
+            <el-select
+              v-model="taskinfo.taskType"
+              class="m-1"
+              placeholder="请选择"
+            >
+              <el-option
+                v-for="item in task_type"
+                :label="item.label"
+                :value="item.value"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="班组区域:">
+            <el-tree-select
+              v-model="taskinfo.taskDeptRange"
+              multiple
+              :data="treedept"
+              check-strictly="true"
+            />
+
+            <!-- <el-select v-model="taskinfo.taskDeptRange" class="m-1" placeholder="请选择">
                                 <el-option v-for="item in alldept" :label="item.deptName" :value="item.deptId"></el-option>
                             </el-select> -->
-                    </el-form-item>
-                </el-col>
-
-                <el-col :span="12">
-                    <el-form-item label="来件时间:">
-
-                        <el-date-picker v-model="taskinfo.taskTime" type="datetime" placeholder="请选择" />
-                    </el-form-item>
-                </el-col>
-
-                <el-col :span="12">
-                    <el-form-item label="要求完成时间:">
-
-                        <el-date-picker v-model="taskinfo.taskReqCompleteTime" type="datetime" placeholder="请选择" />
-                    </el-form-item>
-                </el-col>
-
-                <el-col :span="12">
-                    <el-form-item label="事件分类:">
-                        <el-select v-model="taskinfo.taskEventCategory" class="m-1" placeholder="请选择">
-                            <el-option v-for="item in task_event_category" :label="item.label" :value="item.value"></el-option>
-                        </el-select>
-                    </el-form-item>
-                </el-col>
-
-                <el-col :span="12">
-                    <el-form-item label="事件类型:">
-
-                        <el-select v-model="taskinfo.taskEventType" class="m-1" placeholder="请选择">
-                            <el-option v-for="item in task_event_type" :label="item.label" :value="item.value"></el-option>
-                        </el-select>
-                    </el-form-item>
-                </el-col>
-
-                <el-col :span="12">
-                    <el-form-item label="任务内容:">
-                        <el-input v-model="taskinfo.taskContent" />
-                    </el-form-item>
-                </el-col>
-
-                <el-col :span="12">
-                    <el-form-item label="设施编号:">
-                        <el-input v-model="taskinfo.taskFacilitieCode" />
-                    </el-form-item>
-                </el-col>
-
-                <el-col :span="12">
-                    <el-form-item label="来件备注:">
-                        <el-input v-model="taskinfo.taskFromRemark" />
-                    </el-form-item>
-                </el-col>
-
-                <el-col :span="12">
-                    <el-form-item label="投诉人电话">
-                        <el-input v-model="taskinfo.taskComplainConnect" />
-                    </el-form-item>
-                </el-col>
-
-                <el-col :span="12">
-                    <el-form-item label="道路名">
-                        <el-input v-model="taskinfo.taskAddrRoad" />
-                    </el-form-item>
-                </el-col>
-
-                <el-col :span="12">
-                    <el-form-item label="其他工单号">
-                        <el-input v-model="taskinfo.taskOtherId" />
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="行政区属:">
-
-                        <el-select v-model="taskinfo.taskArea" class="m-1" placeholder="请选择">
-                            <el-option v-for="item in sys_area" :label="item.label" :value="item.value"></el-option>
-                        </el-select>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="24">
-                    <el-form-item label="备注">
-                        <el-input type="textarea" v-model="taskinfo.remark" />
-                    </el-form-item>
-                </el-col>
-
-                <el-col :span="12">
-                    <el-form-item label="事件地址">
-                        <div style="position:relative;width:100%">
-                            <div style="width:80%">
-                                <el-input v-model="taskinfo.taskAddr" />
-                            </div>
-                            <el-button type="primary" style="position:absolute;right:0;top:0" @click="searchaddr">查询</el-button>
-                        </div>
-
-
-
-                    </el-form-item>
-                </el-col>
-
-                <el-col :span="12">
-                    <el-form-item label="照片附件">
-
-                    </el-form-item>
-                </el-col>
-
-                <el-col :span="12">
-                    <div style="padding-left:30px">
-                        <MapSelect ref="mapSelect" v-model:formv="formlocation"></MapSelect>
-                    </div>
-
-                </el-col>
-
-                <el-col :span="12">
-                    <div style="padding-left:120px">
-                        <ImageUpload v-model="fileList"></ImageUpload>
-                    </div>
-
-                </el-col>
-            </el-row>
-
-
-
-
-        </el-form>
-
-
-
-    </div>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="来件时间:">
+            <el-date-picker
+              v-model="taskinfo.taskTime"
+              type="datetime"
+              placeholder="请选择"
+            />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="要求完成时间:">
+            <el-date-picker
+              v-model="taskinfo.taskReqCompleteTime"
+              type="datetime"
+              placeholder="请选择"
+            />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="事件分类:">
+            <el-select
+              v-model="taskinfo.taskEventCategory"
+              class="m-1"
+              placeholder="请选择"
+            >
+              <el-option
+                v-for="item in task_event_category"
+                :label="item.label"
+                :value="item.value"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="事件类型:">
+            <el-select
+              v-model="taskinfo.taskEventType"
+              class="m-1"
+              placeholder="请选择"
+            >
+              <el-option
+                v-for="item in task_event_type"
+                :label="item.label"
+                :value="item.value"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="任务内容:">
+            <el-input v-model="taskinfo.taskContent" />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="设施编号:">
+            <el-input v-model="taskinfo.taskFacilitieCode" />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="来件备注:">
+            <el-input v-model="taskinfo.taskFromRemark" />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="投诉人电话">
+            <el-input v-model="taskinfo.taskComplainConnect" />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="道路名">
+            <el-input v-model="taskinfo.taskAddrRoad" />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="其他工单号">
+            <el-input v-model="taskinfo.taskOtherId" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="行政区属:">
+            <el-select
+              v-model="taskinfo.taskArea"
+              class="m-1"
+              placeholder="请选择"
+            >
+              <el-option
+                v-for="item in sys_area"
+                :label="item.label"
+                :value="item.value"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item label="备注">
+            <el-input type="textarea" v-model="taskinfo.remark" />
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="事件地址">
+            <div style="position: relative; width: 100%">
+              <div style="width: 80%">
+                <el-input v-model="taskinfo.taskAddr" />
+              </div>
+              <el-button
+                type="primary"
+                style="position: absolute; right: 0; top: 0"
+                @click="searchaddr"
+                >查询</el-button
+              >
+            </div>
+          </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <el-form-item label="照片附件"> </el-form-item>
+        </el-col>
+
+        <el-col :span="12">
+          <div style="padding-left: 30px">
+            <MapSelect ref="mapSelect" v-model:formv="formlocation"></MapSelect>
+          </div>
+        </el-col>
+
+        <el-col :span="12">
+          <div style="padding-left: 120px">
+            <ImageUpload v-model="fileList"></ImageUpload>
+          </div>
+        </el-col>
+      </el-row>
+    </el-form>
+  </div>
 </template>
 
-<script lang="ts">
-import { ref, watch, defineComponent,onMounted } from 'vue'
-import { useDict } from '@/utils/dict';
-import { cloneDeep } from 'lodash';
+<script>
+import { ref, watch, defineComponent, onMounted } from "vue";
+import { useDict } from "@/utils/dict";
+import { cloneDeep } from "lodash";
 import { listDept, getDept } from "@/api/system/dept";
-import MapSelect from '@/components/MapSelect';
-import { Plus } from '@element-plus/icons-vue'
+import MapSelect from "@/components/MapSelect";
+import { Plus } from "@element-plus/icons-vue";
 // 文件上传组件
-import ImageUpload from "@/components/ImageUpload"
+import ImageUpload from "@/components/ImageUpload";
 import { treeselect as deptTreeselect } from "@/api/system/dept";
-
-
-
+import { isArray } from "@vue/shared";
 
 export default defineComponent({
-    name: 'taskadd',
-    components:{MapSelect},
-    props:{
-      taskinfo:Object
-    },
-    setup(props,context) {
-        const mapSelect = ref(null);
-        const formlocation = ref({ addr: '', locations: '' });
-        const { task_status, task_type, task_event_type, task_event_category,sys_area } = useDict("task_status", "task_type", "task_event_type", "task_event_category","sys_area");
-
-        watch(
-            () => formlocation.value.addr,
-            () => {
-                taskinfo.value.taskAddr = formlocation.value.addr;
-            },
-        );
-        watch(
-            () => formlocation.value.locations,
-            () => {
-                taskinfo.value.taskLocation = formlocation.value.locations;
-            },
-        );
-
-        const searchaddr = () => {
-
-            if (taskinfo.value.taskAddr) {
-                mapSelect.value.searchaddr(taskinfo.value.taskAddr);
-            } else {
-                ElMessage.warning('请输入地址');
-            }
-
-        };
-        const alldept = ref([]);
-        listDept().then(response => {
-            alldept.value = cloneDeep(response.data);
+  name: "taskadd",
+  components: { MapSelect },
+  props: {
+    taskinfo: Object,
+  },
+  setup(props, context) {
+    const mapSelect = ref(null);
+    const formlocation = ref({ addr: "", locations: "" });
+    const {
+      task_status,
+      task_type,
+      task_event_type,
+      task_event_category,
+      sys_area,
+    } = useDict(
+      "task_status",
+      "task_type",
+      "task_event_type",
+      "task_event_category",
+      "sys_area"
+    );
+
+    watch(
+      () => formlocation.value.addr,
+      () => {
+        taskinfo.value.taskAddr = formlocation.value.addr;
+      }
+    );
+    watch(
+      () => formlocation.value.locations,
+      () => {
+        taskinfo.value.taskLocation = formlocation.value.locations;
+      }
+    );
+
+    const searchaddr = () => {
+      if (taskinfo.value.taskAddr) {
+        mapSelect.value.searchaddr(taskinfo.value.taskAddr);
+      } else {
+        ElMessage.warning("请输入地址");
+      }
+    };
+    const alldept = ref([]);
+    listDept().then((response) => {
+      alldept.value = cloneDeep(response.data);
+    });
+
+    const doinit = () => {
+      taskinfo.value = props.taskinfo;
+      fileList.value = "";
+      formlocation.value = { addr: "", locations: "" };
+    };
+    onMounted(() => {
+      //  doinit();
+    });
+
+    const fileList = ref([]);
+    watch(
+      () => fileList.value,
+      () => {
+        taskinfo.value.taskPics = fileList.value;
+        context.emit("update:taskinfo", taskinfo.value);
+      }
+    );
+
+    function setdatakey(dept) {
+      if (dept.children) {
+        dept.children = dept.children.map((i) => {
+          return setdatakey(i);
         });
+      }
+      dept["value"] = dept.id;
+      return dept;
+    }
 
-        const doinit=()=>{
-           taskinfo.value = props.taskinfo;
-          fileList.value =[];
-          formlocation.value = { addr: '', locations: '' };
-
-        }
-        onMounted(()=>{
-        //  doinit();
-        })
-
-
-        const fileList = ref([]);
-
-        function setdatakey(dept) {
-            if (dept.children) {
-                dept.children = dept.children.map(i => { return setdatakey(i) });
-            }
-            dept["value"] = dept.id;
-            return dept;
-        }
-
-        const treedept = ref([{
-            value: "1",
-            label: 'ss'
-        }, {
-            value: "2",
-            label: 'ss1'
-        }]);
-        deptTreeselect().then(res => {
-            treedept.value = [setdatakey(res.data[0])];
-
-        })
-
-
-
-
-        const taskinfo = ref({
-        })
-          watch(()=>taskinfo,()=>{
-            context.emit("update:taskinfo",taskinfo.value)
-        },{deep:true})
-        return {mapSelect,MapSelect,formlocation,taskinfo,searchaddr,alldept,treedept,task_status, task_type, task_event_type, task_event_category,sys_area,fileList,doinit};
-    },
-})
+    const treedept = ref([
+      {
+        value: "1",
+        label: "ss",
+      },
+      {
+        value: "2",
+        label: "ss1",
+      },
+    ]);
+    deptTreeselect().then((res) => {
+      treedept.value = [setdatakey(res.data[0])];
+    });
+
+    const taskinfo = ref({});
+    watch(
+      () => taskinfo,
+      () => {
+        context.emit("update:taskinfo", taskinfo.value);
+      },
+      { deep: true }
+    );
+    return {
+      mapSelect,
+      MapSelect,
+      formlocation,
+      taskinfo,
+      searchaddr,
+      alldept,
+      treedept,
+      task_status,
+      task_type,
+      task_event_type,
+      task_event_category,
+      sys_area,
+      fileList,
+      doinit,
+    };
+  },
+});
 </script>
 
-
-
-
 <style lang="scss" scoped>
 .taskadd {
-    .el-select {
-        width: 100% !important;
-    }
+  .el-select {
+    width: 100% !important;
+  }
 }
 </style>
 
 <style>
 .el-date-editor {
-    width: 100% !important;
+  width: 100% !important;
 }
 
 .el-upload--picture-card {
-    --el-upload-picture-card-size: 100px !important;
+  --el-upload-picture-card-size: 100px !important;
 }
 
 .el-upload-list--picture-card {
-    --el-upload-list-picture-card-size: 100px;
+  --el-upload-list-picture-card-size: 100px;
 }
 </style>

+ 1 - 1
src/components/VideoPreview/index.vue

@@ -5,7 +5,7 @@
     <el-dialog
       v-model="dialogVisible"
       title="预览"
-      width="800px"
+      width="80%"
       append-to-body
       @close="closevideo"
     >

+ 775 - 0
src/views/mb/detection/detail/index.vue

@@ -0,0 +1,775 @@
+<template>
+  <div>
+    <van-nav-bar
+      title="计划详情"
+      left-text="返回"
+      left-arrow
+      @click-left="onClickLeft"
+    />
+    <div class="body">
+      <div class="listcontent" :style="`height:${bodyheight}px`">
+        <van-collapse v-model="activeNames">
+          <van-collapse-item class="citem" :title="`${  facilitieinfo.name }检测计划【${detection_status.filter((i) => i.value.toString() === detectioninfo.status.toString())[0]?.label ?? '-' }】`" name="1">
+             <van-row>
+            <van-col :span="12"
+              >检测类型:{{
+                detection_type.filter(
+                  (i) => i.value === detectioninfo.detectionType + ""
+                )[0]?.label ?? "-"
+              }}</van-col
+            >
+
+            <van-col :span="12">年计划:{{ detectioninfo.detectionYear }}</van-col>
+            <van-col :span="12"
+              >月计划:{{ detectioninfo.detectionMonth }}</van-col
+            >
+            <van-col :span="12">周计划:{{ detectioninfo.detectionWeek }}</van-col>
+            <van-col :span="24"
+              >计划作业班组:{{}}{{ alldept
+                  .filter(
+                    (i) =>
+                      (
+                       detectioninfo.detectionDept
+                      ).indexOf(i.deptId) != -1
+                  )
+                  .map((i) => i.deptName)
+                  .join(",")}}</van-col
+            >
+            <van-col :span="24"
+              >计划备注:{{ detectioninfo.detectionDes }}</van-col
+            >
+            <van-col :span="24"
+              >备注:{{ detectioninfo.detectionRemark }}</van-col
+            >
+          </van-row>
+          </van-collapse-item>
+          <van-collapse-item class="citem" title="设施信息" name="5">
+             <van-row>
+            <van-col :span="12">台账序号:{{ facilitieinfo.exId }}</van-col>
+            <van-col :span="12">所在道路:{{ facilitieinfo.roadName }}</van-col>
+            <van-col :span="12">性质:{{ facilitieinfo.nature }}</van-col>
+            <van-col :span="12">运维长度:{{ facilitieinfo.fLength }}</van-col>
+            <van-col :span="12">设施名称:{{ facilitieinfo.name }}</van-col>
+            <van-col :span="24"
+              >设施起止点:{{ facilitieinfo.addrFrom }}-{{
+                facilitieinfo.addrEnd
+              }}</van-col
+            >
+          </van-row>
+
+           </van-collapse-item>
+
+          <van-collapse-item class="citem" title="派发信息" name="2" v-if="detectioninfo.status > 1">
+             <van-row>
+            <van-col :span="12"
+              >负责人:{{
+                allusers.filter(
+                  (i) =>
+                    i.userId.toString() ===
+                    JSON.parse(
+                      detectioninfo.detectionLogs.filter(
+                        (ii) => ii.detectionStatus === 2
+                      )[0].logDes
+                    ).fzr.toString()
+                )[0]?.nickName ?? "-"
+              }}</van-col
+            >
+            <van-col :span="12"
+              >联系方式:{{
+                allusers.filter(
+                  (i) =>
+                    i.userId.toString() ===
+                    JSON.parse(
+                      detectioninfo.detectionLogs.filter(
+                        (ii) => ii.detectionStatus === 2
+                      )[0].logDes
+                    ).fzr.toString()
+                )[0]?.phonenumber ?? "-"
+              }}</van-col
+            >
+            <van-col :span="24"
+              >处置班组:{{
+                alldept
+                  .filter(
+                    (i) =>
+                      (
+                        JSON.parse(
+                          detectioninfo.detectionLogs.filter(
+                            (ii) => ii.detectionStatus === 2
+                          )[0].logDes
+                        ).fzbz ?? []
+                      ).indexOf(i.deptId) != -1
+                  )
+                  .map((i) => i.deptName)
+                  .join(",")
+              }}</van-col
+            >
+            <van-col :span="24"
+              >派发时间:{{
+                detectioninfo.detectionLogs.filter(
+                  (ii) => ii.detectionStatus === 2
+                )[0].createTime
+              }}</van-col
+            >
+          </van-row>
+          </van-collapse-item>
+          <van-collapse-item class="citem" title="执行反馈" name="3" v-if="detectioninfo.status > 2">
+<div class="titleheader" :style="`${'margin-top:0px'}`">
+            {{ "作业组" }}
+          </div>
+          <div>
+            <van-row>
+              <van-col :span="24">
+                负责人:{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.fzr
+                }}
+              </van-col>
+              <van-col :span="24">
+                组员:
+                {{
+                  allusers
+                    .filter(
+                      (i) =>
+                        (
+                          JSON.parse(
+                            detectioninfo.detectionLogs.filter(
+                              (ii) => ii.detectionStatus === 3
+                            )[0].logDes
+                          ).gzz.zy ?? []
+                        ).indexOf(i.userId) != -1
+                    )
+                    .map((i) => i.nickName)
+                    .join(",")
+                }}
+              </van-col>
+              <van-col :span="12">
+                人数:
+                {{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.rs
+                }}
+              </van-col>
+              <van-col :span="12">
+                开始时间:{{
+                  moment(JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.starttime).format("YYYY-MM-DD")}}
+
+              </van-col>
+              <van-col :span="12">
+                管线起点:{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.addrstart
+                }}
+              </van-col>
+              <van-col :span="12">
+                管线终点:{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.addrend
+                }}
+              </van-col>
+              <van-col :span="12">
+                城区:
+                {{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.cq
+                }}
+              </van-col>
+
+              <van-col :span="12">
+                结束时间:{{
+                  moment(JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.endtime).format("YYYY-MM-DD")
+                }}
+              </van-col>
+              <van-col :span="12">
+                作业地址:
+                {{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.addr
+                }}
+              </van-col>
+              <van-col :span="12">
+                检测设备:{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.jcsb
+                }}
+              </van-col>
+              <van-col :span="12">
+                车辆:{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.cars
+                }}
+              </van-col>
+              <van-col :span="12">
+                车牌:{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.carnumber
+                }}
+              </van-col>
+              <van-col :span="24"> 作业照片: </van-col>
+
+              <van-col :span="24">
+                <ImagePreview
+                  v-model:src="
+                    JSON.parse(
+                      detectioninfo.detectionLogs.filter(
+                        (ii) => ii.detectionStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).gzz.zyimages
+                  "
+                  :height="'120px'"
+                  :width="'120px'"
+                ></ImagePreview>
+              </van-col>
+              <van-col :span="24"> 工作照片: </van-col>
+              <van-col :span="24">
+                <ImagePreview
+                  v-model:src="
+                    JSON.parse(
+                      detectioninfo.detectionLogs.filter(
+                        (ii) => ii.detectionStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).gzz.gzimages
+                  "
+                  :height="'120px'"
+                  :width="'120px'"
+                ></ImagePreview>
+              </van-col>
+            </van-row>
+          </div>
+          <div class="titleheader" :style="`${'margin-top:0px'}`">
+            {{ "工作量" }}
+          </div>
+          <div>
+            <van-row>
+              <van-col :span="12"
+                >检查井(座):{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzl.jcj
+                }}</van-col
+              >
+              <van-col :span="12"
+                >雨水口(座):{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzl.ysk
+                }}</van-col
+              >
+              <van-col :span="12"
+                >箅子(个):{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzl.bz
+                }}</van-col
+              >
+              <van-col :span="12"
+                >主管(m):{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzl.zg
+                }}</van-col
+              >
+              <van-col :span="12"
+                >接户管(m):{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzl.jhg
+                }}</van-col
+              >
+              <van-col :span="12"
+                >雨水口支管(m):{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzl.yskzg
+                }}</van-col
+              >
+              <van-col :span="12"
+                >总设施长度(m):{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzl.zsscd
+                }}</van-col
+              >
+              <van-col :span="12"
+                >管径范围(mm):{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzl.gjfw
+                }}</van-col
+              >
+              <van-col :span="24"
+                >备注:{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzl.remark
+                }}</van-col
+              >
+              <van-col :span="24"
+                >未能作业原因:{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzl.wnzyyy
+                }}</van-col
+              >
+              <van-col :span="24"
+                >备注:{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzl.remark1
+                }}</van-col
+              >
+              <van-col :span="24">现场照片:</van-col>
+              <van-col :span="24"
+                ><ImagePreview
+                  v-model:src="
+                    JSON.parse(
+                      detectioninfo.detectionLogs.filter(
+                        (ii) => ii.detectionStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).gzl.images
+                  "
+                  :height="'120px'"
+                  :width="'120px'"
+                ></ImagePreview
+              ></van-col>
+            </van-row>
+          </div>
+          </van-collapse-item>
+          <van-collapse-item class="citem" title="检测成果" name="4" v-if="detectioninfo.status > 3">
+            <div class="titleheader" :style="`${'margin-top:0px'}`">
+            {{ "报告信息" }}
+          </div>
+          <div>
+            <van-row>
+              <van-col :span="12">
+                报告编号:{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 4
+                    )[0].logDes ?? "{}"
+                  ).bgxx.bgbh
+                }}
+              </van-col>
+              <van-col :span="12">
+                城区:{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 4
+                    )[0].logDes ?? "{}"
+                  ).bgxx.cq
+                }}
+              </van-col>
+              <van-col :span="12">
+                完成月份:
+                {{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 4
+                    )[0].logDes ?? "{}"
+                  ).bgxx.wcyf
+                }}
+              </van-col>
+              <van-col :span="24">
+                备注:{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 4
+                    )[0].logDes ?? "{}"
+                  ).bgxx.bz
+                }}
+              </van-col>
+
+              <van-col :span="24"> 作业图纸: </van-col>
+
+              <van-col :span="24">
+                <div style="position: relative">
+                  <div
+                    style="position: absolute; top: 0; left: 60px; width: 100%"
+                  >
+                    <div
+                      style="
+                        margin-bottom: 10px;
+                        color: #4f9eee;
+                        display: inline-block;
+                        margin-left: 10px;
+                      "
+                      v-for="i in JSON.parse(
+                        detectioninfo.detectionLogs.filter(
+                          (ii) => ii.detectionStatus === 4
+                        )[0].logDes ?? '{}'
+                      ).bgxx.tz?.split(',') ?? []"
+                    >
+                      <a target="_blank" :href="`${STATICURL + i}`">
+                        {{ i.split("/")[i.split("/").length - 1] }}
+                      </a>
+                    </div>
+                  </div>
+                </div>
+              </van-col>
+               <van-col :span="24"> 收单方: </van-col>
+              <van-col :span="24">
+                <div style="position: relative">
+                  <div
+                    style="position: absolute; top: 0; left: 60px; width: 100%"
+                  >
+                    <div
+                      style="
+                        margin-bottom: 10px;
+                        color: #4f9eee;
+                        display: inline-block;
+                        margin-left: 10px;
+                      "
+                      v-for="i in JSON.parse(
+                        detectioninfo.detectionLogs.filter(
+                          (ii) => ii.detectionStatus === 4
+                        )[0].logDes ?? '{}'
+                      ).bgxx.sfd?.split(',') ?? []"
+                    >
+                      <a target="_blank" :href="`${STATICURL + i}`">
+                        {{ i.split("/")[i.split("/").length - 1] }}
+                      </a>
+                    </div>
+                  </div>
+                </div>
+              </van-col>
+              <van-col :span="24"> 作业照片: </van-col>
+
+              <van-col :span="24">
+                <ImagePreview
+                  v-model:src="
+                    JSON.parse(
+                      detectioninfo.detectionLogs.filter(
+                        (ii) => ii.detectionStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).bgxx.zyzp
+                  "
+                  :height="'120px'"
+                  :width="'120px'"
+                ></ImagePreview>
+              </van-col>
+               <van-col :span="24"> 作业视频: </van-col>
+              <van-col :span="24">
+                <VideoPreview
+                  v-model:src="
+                    JSON.parse(
+                      detectioninfo.detectionLogs.filter(
+                        (ii) => ii.detectionStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).bgxx.zysp
+                  "
+                  :height="'120px'"
+                  :width="'120px'"
+                ></VideoPreview>
+              </van-col>
+            </van-row>
+          </div>
+          <div class="titleheader" :style="`${'margin-top:0px'}`">
+            {{ "养护信息" }}
+          </div>
+          <div>
+            <van-row>
+              <van-col :span="24"
+                >主管建议养护:
+                {{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 4
+                    )[0].logDes ?? "{}"
+                  ).yhxx.zgjyyh
+                }}
+              </van-col>
+              <van-col :span="12"
+                >涉及检查井座:
+                {{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 4
+                    )[0].logDes ?? "{}"
+                  ).yhxx.sjjcjz
+                }}
+              </van-col>
+              <van-col :span="12"
+                >养护长度(m):{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 4
+                    )[0].logDes ?? "{}"
+                  ).yhxx.yhcd
+                }}</van-col
+              >
+              <van-col :span="12"
+                >管径范围:{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 4
+                    )[0].logDes ?? "{}"
+                  ).yhxx.gjfw
+                }}</van-col>
+              <van-col :span="24">主管缺陷分布图:</van-col>
+              <van-col :span="24">
+                 <ImagePreview
+                  v-model:src="
+                  JSON.parse(
+                      detectioninfo.detectionLogs.filter(
+                        (ii) => ii.detectionStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).yhxx.zgqxfbt
+                  "
+                  :height="'120px'"
+                  :width="'120px'"
+                ></ImagePreview>
+              </van-col>
+
+              <van-col :span="12"
+                >支管建议养护:
+                {{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 4
+                    )[0].logDes ?? "{}"
+                  ).yhxx.zgjyyh1
+                }}
+              </van-col>
+              <van-col :span="12"
+                >支管三四级缺陷个数:
+                {{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 4
+                    )[0].logDes ?? "{}"
+                  ).yhxx.zgqxssjs
+                }}
+              </van-col>
+              <van-col :span="24"
+                >养护备注:{{
+                  JSON.parse(
+                    detectioninfo.detectionLogs.filter(
+                      (ii) => ii.detectionStatus === 4
+                    )[0].logDes ?? "{}"
+                  ).yhxx.remark
+                }}</van-col
+              >
+
+              <van-col :span="24">支管缺陷分布图:</van-col>
+              <van-col :span="24">
+                 <ImagePreview
+                  v-model:src="
+                  JSON.parse(
+                      detectioninfo.detectionLogs.filter(
+                        (ii) => ii.detectionStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).yhxx.zgqxfbt1
+                  "
+                  :height="'120px'"
+                  :width="'120px'"
+                ></ImagePreview>
+              </van-col>
+
+            </van-row>
+          </div>
+          </van-collapse-item>
+
+        </van-collapse>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup>
+import { defineComponent, ref, onMounted, watch } from "vue";
+import { cloneDeep } from "lodash";
+import { listDept, getDept } from "@/api/system/dept";
+import ImagePreview from "@/components/ImagePreview";
+import VideoPreview from "@/components/VideoPreview";
+import { useDict } from "@/utils/dict";
+import { useRoute } from "vue-router";
+import moment from "moment";
+import { listFacilities, getFacilities } from "@/api/system/facilities";
+import {
+  listDetection,
+  getDetection,
+  delDetection,
+  addDetection,
+  updateDetection,
+} from "@/api/system/detection";
+import {
+  changeUserStatus,
+  listUser,
+  resetUserPwd,
+  delUser,
+  getUser,
+  updateUser,
+  addUser,
+} from "@/api/system/user";
+import { treeselect as deptTreeselect } from "@/api/system/dept";
+import router from "../../../../router";
+
+const STATICURL = import.meta.env.VITE_APP_BASE_API;
+const {
+  detection_status,
+  detection_type,
+
+} = useDict(
+  "detection_status",
+  "detection_type",
+);
+
+const route = useRoute();
+const bodyheight = ref(0);
+bodyheight.value = document.body.clientHeight - 46;
+
+const activeNames = ref(["1"]);
+
+const alldept = ref([]);
+listDept().then((response) => {
+  alldept.value = cloneDeep(response.data);
+});
+const allusers = ref([]);
+listUser({ pageSize: 1000 }).then((res) => {
+  allusers.value = res.rows;
+});
+const detectioninfo = ref({
+   createBy: "",
+  createTime: null,
+  detectionDept: "204,205",
+  detectionDes: "sdfsd",
+  detectionLogs: [],
+  detectionMonth: "03",
+  detectionRemark: "sdfsd",
+  detectionType: 1,
+  detectionWeek: "11",
+  detectionYear: "2020",
+  ext1: "",
+  ext2: "",
+  facilitiesId: 1,
+  id: 3,
+  params: {},
+  remark: null,
+  searchValue: null,
+  status: 1,
+  updateBy: "",
+  updateTime: null,
+});
+const facilitieinfo = ref({
+  addrEnd: "",
+  addrFrom: "",
+  areaAdDes: "",
+  areaDes: "",
+  createBy: null,
+  createTime: null,
+  exId: 1,
+  exId1: "",
+  ext1: null,
+  fLength: "0",
+  id: null,
+  name: "",
+  nature: "",
+  params: {},
+  remark: null,
+  roadName: "",
+  searchValue: null,
+  updateBy: null,
+  updateTime: null,
+});
+onMounted(() => {
+  getDetection(Number(route.params.id)).then((res) => {
+    detectioninfo.value = res.data;
+  });
+    getFacilities(detectioninfo.value.facilitiesId).then((rep) => {
+      facilitieinfo.value = rep.data;
+    });
+});
+const onClickLeft = () => {
+  router.back();
+};
+</script>
+
+<style lang="scss">
+body {
+  position: fixed;
+  width: 100%;
+  top: -1px;
+}
+.listcontent {
+  overflow-y: auto;
+  padding: 10px;
+  .van-col{
+    margin-bottom: 10px;
+  }
+  .citem {
+    margin-top: 10px;
+    border-radius: 5px;
+    border: 1px solid rgba(209, 217, 221, 0.4);
+    overflow: hidden;
+    .content {
+      font-size: 10px;
+
+    }
+    .titleheader{
+        color:#3d6dc5;
+        margin-bottom: 5px;
+      }
+  }
+  .van-cell__title {
+    color: #3d6dc5;
+    font-weight: bold;
+  }
+}
+</style>

+ 4 - 1
src/views/mb/detection/index.vue

@@ -22,7 +22,7 @@
           >
             <div
               style="padding: 10px 10px; padding-bottom: 0"
-              v-for="item in detectionlist"
+              v-for="item in detectionlist" @click="gotodetail(item)"
             >
               <div class="item">
                 <div>
@@ -161,6 +161,9 @@ const onRefresh = () => {
 const onClickLeft = () => {
   router.back();
 };
+const gotodetail = (item) => {
+  router.push(`/mb/detection/detail/${item.id}`);
+}
 </script>
 
 <style lang="scss">

+ 684 - 0
src/views/mb/maintain/detail/index.vue

@@ -0,0 +1,684 @@
+<template>
+  <div>
+    <van-nav-bar
+      title="计划详情"
+      left-text="返回"
+      left-arrow
+      @click-left="onClickLeft"
+    />
+    <div class="body">
+      <div class="listcontent" :style="`height:${bodyheight}px`">
+        <van-collapse v-model="activeNames">
+          <van-collapse-item class="citem" :title="`${ facilitieinfo.name }养护计划信息【${maintain_status.filter((i) => i.value.toString() === maintaininfo.status.toString())[0]?.label ?? '-' }】`" name="1">
+            <van-row>
+            <van-col :span="24"
+              >养护类型:{{
+                maintain_type.filter(
+                  (i) => i.value === maintaininfo.maintainType + ""
+                )[0]?.label ?? "-"
+              }}</van-col
+            >
+
+            <van-col :span="12"
+              >养护数量:{{ maintaininfo.maintainCount }}</van-col
+            >
+            <van-col :span="12"
+              >报南排:{{
+                maintaininfo.maintainReportNp == 1 ? "是" : "否"
+              }}</van-col
+            >
+            <van-col :span="24">养护单位:{{ maintaininfo.maintainUnit }}</van-col>
+
+            <van-col :span="12">年计划:{{ maintaininfo.maintainYear }}</van-col>
+            <van-col :span="12">月计划:{{ maintaininfo.maintainMonth }}</van-col>
+            <van-col :span="24">计划备注:{{ maintaininfo.maintainDes }}</van-col>
+            <van-col :span="24">备注:{{ maintaininfo.maintainRemark }}</van-col>
+          </van-row>
+          </van-collapse-item>
+           <van-collapse-item class="citem" title="设施信息" name="5">
+             <van-row>
+            <van-col :span="12">台账序号:{{ facilitieinfo.exId }}</van-col>
+            <van-col :span="12">所在道路:{{ facilitieinfo.roadName }}</van-col>
+            <van-col :span="12">性质:{{ facilitieinfo.nature }}</van-col>
+            <van-col :span="12">运维长度:{{ facilitieinfo.fLength }}</van-col>
+            <van-col :span="12">设施名称:{{ facilitieinfo.name }}</van-col>
+            <van-col :span="24"
+              >设施起止点:{{ facilitieinfo.addrFrom }}-{{
+                facilitieinfo.addrEnd
+              }}</van-col
+            >
+          </van-row>
+
+           </van-collapse-item>
+          <van-collapse-item class="citem" title="派发信息" name="2" v-if="maintaininfo.status > 1">
+            <van-row>
+            <van-col :span="12"
+              >负责人:{{
+                allusers.filter(
+                  (i) =>
+                    i.userId.toString() ===
+                    JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 2
+                      )[0].logDes
+                    ).fzr.toString()
+                )[0]?.nickName ?? "-"
+              }}</van-col
+            >
+            <van-col :span="12"
+              >联系方式:{{
+                allusers.filter(
+                  (i) =>
+                    i.userId.toString() ===
+                    JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 2
+                      )[0].logDes
+                    ).fzr.toString()
+                )[0]?.phonenumber ?? "-"
+              }}</van-col
+            >
+            <van-col :span="24"
+              >处置班组:{{
+                alldept
+                  .filter(
+                    (i) =>
+                      (
+                        JSON.parse(
+                          maintaininfo.maintainLogs.filter(
+                            (ii) => ii.maintainStatus === 2
+                          )[0].logDes
+                        ).fzbz ?? []
+                      ).indexOf(i.deptId) != -1
+                  )
+                  .map((i) => i.deptName)
+                  .join(",")
+              }}</van-col
+            >
+            <van-col :span="24"
+              >派发时间:{{
+                maintaininfo.maintainLogs.filter(
+                  (ii) => ii.maintainStatus === 2
+                )[0].createTime
+              }}</van-col
+            >
+          </van-row>
+
+          </van-collapse-item>
+          <van-collapse-item class="citem" title="执行反馈" name="3" v-if="maintaininfo.status >2">
+             <div class="titleheader" :style="`${'margin-top:0px'}`">
+            {{ "作业组" }}
+          </div>
+          <div>
+            <van-row>
+                <van-col :span="12">
+                  负责人:{{JSON.parse(
+                    maintaininfo.maintainLogs.filter(
+                      (ii) => ii.maintainStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.fzr}}
+                </van-col>
+                <van-col :span="24">
+                  组员:
+                  {{
+                  allusers
+                    .filter(
+                      (i) =>
+                        (
+                          JSON.parse(
+                            maintaininfo.maintainLogs.filter(
+                              (ii) => ii.maintainStatus === 3
+                            )[0].logDes
+                          ).gzz.zy ?? []
+                        ).indexOf(i.userId) != -1
+                    )
+                    .map((i) => i.nickName)
+                    .join(",")
+                }}
+
+                </van-col>
+                <van-col :span="12">
+                  人数: {{JSON.parse(
+                    maintaininfo.maintainLogs.filter(
+                      (ii) => ii.maintainStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.rs}}
+                </van-col>
+                <van-col :span="12">
+                  开始时间:{{ moment(JSON.parse(
+                    maintaininfo.maintainLogs.filter(
+                      (ii) => ii.maintainStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.starttime).format("YYYY-MM-DD")}}
+                </van-col>
+                <van-col :span="12">
+                  管线起点:{{JSON.parse(
+                    maintaininfo.maintainLogs.filter(
+                      (ii) => ii.maintainStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.addrstart}}
+                </van-col>
+                <van-col :span="12">
+                  管线终点:{{JSON.parse(
+                    maintaininfo.maintainLogs.filter(
+                      (ii) => ii.maintainStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.addrend}}
+                </van-col>
+                <van-col :span="12">
+                  城区: {{JSON.parse(
+                    maintaininfo.maintainLogs.filter(
+                      (ii) => ii.maintainStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.cq}}
+                </van-col>
+
+                <van-col :span="12">
+                  结束时间:{{
+                    moment(JSON.parse(
+                    maintaininfo.maintainLogs.filter(
+                      (ii) => ii.maintainStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.endtime).format("YYYY-MM-DD")}}
+                </van-col>
+                <van-col :span="12">
+                  作业地址: {{JSON.parse(
+                    maintaininfo.maintainLogs.filter(
+                      (ii) => ii.maintainStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.addr}}
+                </van-col>
+                 <van-col :span="12">
+                  作业方式:{{JSON.parse(
+                    maintaininfo.maintainLogs.filter(
+                      (ii) => ii.maintainStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.jcsb}}
+                </van-col>
+                 <van-col :span="12">
+                  车辆:{{JSON.parse(
+                    maintaininfo.maintainLogs.filter(
+                      (ii) => ii.maintainStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.cars}}
+                </van-col>
+                 <van-col :span="12">
+                  车牌:{{JSON.parse(
+                    maintaininfo.maintainLogs.filter(
+                      (ii) => ii.maintainStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).gzz.carnumber}}
+                </van-col>
+                <van-col :span="24">
+                  作业照片:
+                </van-col>
+
+                <van-col :span="24">
+                  <ImagePreview
+                  v-model:src="
+                  JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).gzz.zyimages
+                  "
+                  :height="'120px'"
+                  :width="'120px'"
+                ></ImagePreview>
+                </van-col>
+                 <van-col :span="24">
+                  工作照片:
+                </van-col>
+                <van-col :span="24">
+                  <ImagePreview
+                  v-model:src="
+                  JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).gzz.gzimages
+                  "
+                  :height="'120px'"
+                  :width="'120px'"
+                ></ImagePreview>
+                </van-col>
+            </van-row>
+          </div>
+           <div class="titleheader" :style="`${'margin-top:0px'}`">
+            {{ "工作量" }}
+          </div>
+          <div>
+            <van-row>
+              <van-col :span="12">管径(mm):
+                {{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).gzl.gj}}
+              </van-col>
+              <van-col :span="12">对应长度(m):{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).gzl.dycd}}</van-col>
+              <van-col :span="12">泥量(方):{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).gzl.nl}}</van-col>
+              <van-col :span="12">检查井(座):{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).gzl.jcj}}</van-col>
+              <van-col :span="12">雨水口(座):{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).gzl.ysk}}</van-col>
+              <van-col :span="12">箅子(个):{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).gzl.bz}}</van-col>
+              <van-col :span="12">雨水口支管(m):{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).gzl.yskzg}}</van-col>
+              <van-col :span="24">备注:{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).gzl.remark}}</van-col>
+              <van-col :span="24">未能作业原因:{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).gzl.wnzyyy}}</van-col>
+              <van-col :span="24">备注:{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).gzl.remark1}}</van-col>
+              <van-col :span="24">现场照片:</van-col>
+              <van-col :span="24"><ImagePreview
+                  v-model:src="
+                  JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).gzl.images
+                  "
+                  :height="'120px'"
+                  :width="'120px'"
+                ></ImagePreview></van-col>
+            </van-row>
+          </div>
+
+          </van-collapse-item>
+          <van-collapse-item class="citem" title="养护成果" name="4" v-if="maintaininfo.status >3">
+             <div class="titleheader" :style="`${'margin-top:0px'}`">
+            {{ "收单方" }}
+          </div>
+          <div>
+            <van-row>
+                <van-col :span="12">
+                  收单编号:{{JSON.parse(
+                    maintaininfo.maintainLogs.filter(
+                      (ii) => ii.maintainStatus === 4
+                    )[0].logDes ?? "{}"
+                  ).sdf.sdfbh}}
+                </van-col>
+                <van-col :span="12">
+                  城区:{{JSON.parse(
+                    maintaininfo.maintainLogs.filter(
+                      (ii) => ii.maintainStatus === 4
+                    )[0].logDes ?? "{}"
+                  ).sdf.cq}}
+                </van-col>
+                <van-col :span="12">
+                  完成月份: {{JSON.parse(
+                    maintaininfo.maintainLogs.filter(
+                      (ii) => ii.maintainStatus === 4
+                    )[0].logDes ?? "{}"
+                  ).sdf.wcyf}}
+                </van-col>
+                <van-col :span="24">
+                  备注:{{JSON.parse(
+                    maintaininfo.maintainLogs.filter(
+                      (ii) => ii.maintainStatus === 4
+                    )[0].logDes ?? "{}"
+                  ).sdf.bz}}
+                </van-col>
+
+                <van-col :span="24">
+                  作业图纸:
+                </van-col>
+
+                <van-col :span="24">
+                 <div style="position:relative">
+                  <div
+                  style="position: absolute; top: 0; left: 60px; width: 100%"
+                >
+                  <div
+                    style="
+                      margin-bottom: 10px;
+                      color: #4f9eee;
+                      display: inline-block;
+                      margin-left: 10px;
+                    "
+                    v-for="i in JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).sdf.tz?.split(',') ?? []"
+                  >
+                    <a target="_blank" :href="`${STATICURL + i}`">
+                      {{ i.split("/")[i.split("/").length - 1] }}
+                    </a>
+                  </div>  </div>
+                </div>
+                </van-col>
+                 <van-col :span="24">
+                  收单方:
+                </van-col>
+                <van-col :span="24">
+                  <div style="position:relative">
+                  <div
+                  style="position: absolute; top: 0; left: 60px; width: 100%"
+                >
+                  <div
+                    style="
+                      margin-bottom: 10px;
+                      color: #4f9eee;
+                      display: inline-block;
+                      margin-left: 10px;
+                    "
+                    v-for="i in JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).sdf.sfd?.split(',') ?? []"
+                  >
+                    <a target="_blank" :href="`${STATICURL + i}`">
+                      {{ i.split("/")[i.split("/").length - 1] }}
+                    </a>
+                  </div>  </div>
+                </div>
+                </van-col>
+                <van-col :span="24">
+                  作业照片:
+                </van-col>
+
+                <van-col :span="24">
+                   <ImagePreview
+                  v-model:src="
+                  JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).sdf.zyzp
+                  "
+                  :height="'120px'"
+                  :width="'120px'"
+                ></ImagePreview>
+                </van-col>
+                <van-col :span="24">
+                  作业视频:
+                </van-col>
+                <van-col :span="24">
+                    <VideoPreview
+                  v-model:src="
+                  JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).sdf.zysp
+                  "
+                  :height="'120px'"
+                  :width="'120px'"
+                ></VideoPreview>
+                </van-col>
+            </van-row>
+          </div>
+           <div class="titleheader" :style="`${'margin-top:0px'}`">
+            {{ "班组验收信息" }}
+          </div>
+          <div>
+            <van-row>
+              <van-col :span="24">实际养护路段范围:
+                {{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).bzys.sjfw}}
+              </van-col>
+              <van-col :span="12">管径(mm):
+                {{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).bzys.zgkj}}
+              </van-col>
+              <van-col :span="12">对应长度(m):{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).bzys.dycd}}</van-col>
+              <van-col :span="12">泥量(方):{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).bzys.nl}}</van-col>
+              <van-col :span="12">检查井(座):{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).bzys.jcj}}</van-col>
+              <van-col :span="12">雨水口(座):{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).bzys.ysk}}</van-col>
+              <van-col :span="12">箅子(个):{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).bzys.bz}}</van-col>
+              <van-col :span="12">雨水口支管(m):{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).bzys.yskzg}}</van-col>
+
+              <van-col :span="24">验收情况:{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).bzys.ysqk}}</van-col>
+              <van-col :span="24">验收备注:{{JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).bzys.remark}}</van-col>
+              <van-col :span="24">验收图纸:</van-col>
+              <van-col :span="24">
+                 <div style="position:relative">
+                  <div
+                  style="position: absolute; top: 0; left: 60px; width: 100%"
+                >
+                  <div
+                    style="
+                      margin-bottom: 10px;
+                      color: #4f9eee;
+                      display: inline-block;
+                      margin-left: 10px;
+                    "
+                    v-for="i in JSON.parse(
+                      maintaininfo.maintainLogs.filter(
+                        (ii) => ii.maintainStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).bzys.ystz?.split(',') ?? []"
+                  >
+                    <a target="_blank" :href="`${STATICURL + i}`">
+                      {{ i.split("/")[i.split("/").length - 1] }}
+                    </a>
+                  </div>  </div>
+                </div>
+              </van-col>
+            </van-row>
+          </div>
+
+
+
+          </van-collapse-item>
+
+        </van-collapse>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup>
+import { defineComponent, ref, onMounted, watch } from "vue";
+import { cloneDeep } from "lodash";
+import { listDept, getDept } from "@/api/system/dept";
+import ImagePreview from "@/components/ImagePreview";
+import VideoPreview from "@/components/VideoPreview";
+import { useDict } from "@/utils/dict";
+import { useRoute } from "vue-router";
+import moment from "moment";
+import { listFacilities, getFacilities } from "@/api/system/facilities";
+import {
+  listMaintain,
+  getMaintain,
+  delMaintain,
+  addMaintain,
+  updateMaintain,
+} from "@/api/system/maintain";
+import {
+  changeUserStatus,
+  listUser,
+  resetUserPwd,
+  delUser,
+  getUser,
+  updateUser,
+  addUser,
+} from "@/api/system/user";
+import { treeselect as deptTreeselect } from "@/api/system/dept";
+import router from "../../../../router";
+
+const STATICURL = import.meta.env.VITE_APP_BASE_API;
+const {
+  maintain_status,
+  maintain_type,
+
+} = useDict(
+  "maintain_status",
+  "maintain_type",
+);
+
+const route = useRoute();
+const bodyheight = ref(0);
+bodyheight.value = document.body.clientHeight - 46;
+
+const activeNames = ref(["1"]);
+
+const alldept = ref([]);
+listDept().then((response) => {
+  alldept.value = cloneDeep(response.data);
+});
+const allusers = ref([]);
+listUser({ pageSize: 1000 }).then((res) => {
+  allusers.value = res.rows;
+});
+const maintaininfo = ref({
+ createBy: null,
+  createTime: null,
+  ext1: "多少v啥的",
+  ext2: null,
+  facilitiesId: 1,
+  id: 1,
+  maintainCount: 2,
+  maintainDes: "是东方闪电",
+  maintainLogs: [],
+  maintainMonth: "06",
+  maintainRemark: "是东方闪电",
+  maintainReportNp: 1,
+  maintainType: 1,
+  maintainUnit: "南宁公交集团",
+  maintainYear: "2022",
+  params: {},
+  remark: null,
+  searchValue: null,
+  status: 1,
+  updateBy: null,
+  updateTime: null,
+});
+const facilitieinfo = ref({
+  addrEnd: "",
+  addrFrom: "",
+  areaAdDes: "",
+  areaDes: "",
+  createBy: null,
+  createTime: null,
+  exId: 1,
+  exId1: "",
+  ext1: null,
+  fLength: "0",
+  id: null,
+  name: "",
+  nature: "",
+  params: {},
+  remark: null,
+  roadName: "",
+  searchValue: null,
+  updateBy: null,
+  updateTime: null,
+});
+onMounted(() => {
+  getMaintain(Number(route.params.id)).then((res) => {
+    maintaininfo.value = res.data;
+  });
+    getFacilities(maintaininfo.value.facilitiesId).then((rep) => {
+      facilitieinfo.value = rep.data;
+    });
+});
+const onClickLeft = () => {
+  router.back();
+};
+</script>
+
+<style lang="scss">
+body {
+  position: fixed;
+  width: 100%;
+  top: -1px;
+}
+.listcontent {
+  overflow-y: auto;
+  padding: 10px;
+  .van-col{
+    margin-bottom: 10px;
+  }
+  .citem {
+    margin-top: 10px;
+    border-radius: 5px;
+    border: 1px solid rgba(209, 217, 221, 0.4);
+    overflow: hidden;
+    .content {
+      font-size: 10px;
+
+    }
+    .titleheader{
+        color:#3d6dc5;
+        margin-bottom: 5px;
+      }
+  }
+  .van-cell__title {
+    color: #3d6dc5;
+    font-weight: bold;
+  }
+}
+</style>

+ 4 - 1
src/views/mb/maintain/index.vue

@@ -22,7 +22,7 @@
           >
             <div
               style="padding: 10px 10px; padding-bottom: 0"
-              v-for="item in maintainlist"
+              v-for="item in maintainlist" @click="gotodetail(item)"
             >
               <div class="item">
                 <div>
@@ -134,6 +134,9 @@ const onRefresh = () => {
 const onClickLeft = () => {
   router.back();
 };
+const gotodetail = (item) => {
+  router.push(`/mb/maintain/detail/${item.id}`);
+}
 </script>
 
 <style lang="scss">

+ 342 - 44
src/views/mb/task/detail/index.vue

@@ -9,70 +9,351 @@
     <div class="body">
       <div class="listcontent" :style="`height:${bodyheight}px`">
         <van-collapse v-model="activeNames">
-          <van-collapse-item class="citem" title="工单信息" name="1">
+          <van-collapse-item class="citem" :title="`${taskinfo.taskCode}工单信息【${task_status.filter((i) => i.value.toString() === taskinfo.status.toString())[0]?.label ?? '-' }】`" name="1">
             <div class="content">
               <van-row>
-                <van-col span="12">工单编号:{{ taskinfo.taskCode }}</van-col>
-                <van-col span="12"
-                  >事件来源:{{
-                    task_type.filter(
-                      (i) => i.value.toString() === taskinfo.taskType.toString()
-                    )[0]?.label ?? "-"
-                  }}</van-col
-                >
-                <van-col span="12">来件时间:{{ taskinfo.taskTime }}</van-col>
-                <van-col span="12"
-                  >事件分类:{{
-                    task_event_type.filter(
-                      (i) =>
-                        i.value.toString() === taskinfo.taskEventType.toString()
-                    )[0]?.label ?? "-"
-                  }}</van-col
-                >
-                <van-col span="12"
-                  >事件类型:{{
-                task_event_category.filter(
+            <van-col :span="12"
+              >事件来源:{{
+                task_type.filter(
+                  (i) => i.value.toString() === (taskinfo.taskType??"").toString()
+                )[0]?.label ?? "-"
+              }}</van-col
+            >
+            <van-col :span="12"
+              >班组区域:{{
+                (taskinfo.taskDeptRange ?? "")
+                  .split(",")
+                  .map((i) => {
+                    return (
+                      alldept.find((p) => {
+                        return p.deptId + "" === i + "";
+                      })?.deptName ?? "-"
+                    );
+                  })
+                  .join(",")
+              }}</van-col
+            >
+            <van-col :span="12">来件时间:{{ taskinfo.taskTime }} </van-col>
+            <van-col :span="12"
+              >设施编号:{{ taskinfo.taskFacilitieCode }}</van-col
+            >
+          </van-row>
+          <van-row>
+            <van-col :span="12"
+              >事件分类:{{
+                task_event_type.filter(
                   (i) =>
-                    i.value.toString() === taskinfo.taskEventCategory.toString()
+                    i.value.toString() === (taskinfo.taskEventType??"").toString()
                 )[0]?.label ?? "-"
               }}</van-col
-                >
-                <van-col span="12"
-                  >事件来源:{{
-                task_type.filter(
-                  (i) => i.value.toString() === taskinfo.taskType.toString()
+            >
+            <van-col :span="12">其他工单号:{{ taskinfo.taskOtherId }}</van-col>
+            <van-col :span="12"
+              >要求完成时间:{{ taskinfo.taskReqCompleteTime }}</van-col
+            >
+            <van-col :span="12"
+              >事件类型:{{
+                task_event_category.filter(
+                  (i) =>
+                    i.value.toString() === (taskinfo.taskEventCategory??"").toString()
                 )[0]?.label ?? "-"
               }}</van-col
-                >
+            >
+          </van-row>
+          <van-row>
+            <van-col :span="12">来件备注:{{ taskinfo.taskFromRemark }}</van-col>
+            <van-col :span="12"
+              >投诉人电话:{{ taskinfo.taskComplainConnect }}</van-col
+            >
+            <van-col :span="12">上报人:{{ taskinfo.taskReporter }}</van-col>
+          </van-row>
+          <van-row>
+            <van-col :span="24">详细地址:{{ taskinfo.taskAddr }}</van-col>
+            <van-col :span="24">备注信息:{{ taskinfo.remark }}</van-col>
+          </van-row>
+          <van-row>
 
-                <van-col span="24"
-                  >详细地址:{{
-                taskinfo.taskAddr
-              }}</van-col
-                >
+            <van-col :span="24">任务内容:{{ taskinfo.taskContent }}</van-col>
+            <van-col :span="24">现场照片:</van-col>
+          </van-row>
 
-                <van-col span="24"
-                  >详细地址:{{
-                taskinfo.taskAddr
-              }}</van-col
-                >
-              </van-row>
+          <van-row>
+            <van-col :span="24">
+              <ImagePreview
+                v-model:src="taskinfo.taskPics"
+                :height="'120px'"
+                :width="'120px'"
+              ></ImagePreview>
+            </van-col>
+            <van-col
+              :span="24"
+              v-if="taskinfo.taskPics === null || taskinfo.taskPics === ''"
+            >
+              <div style="margin-left: 20px">暂无图片</div>
+            </van-col>
+          </van-row>
             </div>
           </van-collapse-item>
           <van-collapse-item class="citem" title="派发信息" name="2" v-if="taskinfo.status > 1">
-            技术无非就是那些开发它的人的共同灵魂。
+            <van-row>
+            <van-col :span="12"
+              >负责人:{{
+                allusers.filter(
+                  (i) =>
+                    i.userId.toString() ===
+                    JSON.parse(
+                      taskinfo.tblTaskLogList.filter(
+                        (ii) => ii.taskStatus === 2
+                      )[0].logDes
+                    ).fzr.toString()
+                )[0]?.nickName ?? "-"
+              }}</van-col
+            >
+            <van-col :span="12"
+              >联系方式:{{
+                allusers.filter(
+                  (i) =>
+                    i.userId.toString() ===
+                    JSON.parse(
+                      taskinfo.tblTaskLogList.filter(
+                        (ii) => ii.taskStatus === 2
+                      )[0].logDes
+                    ).fzr.toString()
+                )[0]?.phonenumber ?? "-"
+              }}</van-col
+            >
+            <van-col :span="12"
+              >处置班组:{{
+                alldept
+                  .filter(
+                    (i) =>
+                      (
+                        JSON.parse(
+                          taskinfo.tblTaskLogList.filter(
+                            (ii) => ii.taskStatus === 2
+                          )[0].logDes
+                        ).fzbz ?? []
+                      ).indexOf(i.deptId) != -1
+                  )
+                  .map((i) => i.deptName)
+                  .join(",")
+              }}</van-col
+            >
+            <van-col :span="24"
+              >派发时间:{{
+                taskinfo.tblTaskLogList.filter((ii) => ii.taskStatus === 2)[0]
+                  .createTime
+              }}</van-col
+            >
+          </van-row>
           </van-collapse-item>
           <van-collapse-item class="citem" title="跟踪信息" name="3" v-if="taskinfo.status >= 5">
-            在代码阅读过程中人们说脏话的频率是衡量代码质量的唯一标准。
+            <van-row>
+            <van-col :span="24"
+              >是否及时完成:{{
+                JSON.parse(
+                    taskinfo.tblTaskLogList.filter(
+                      (ii) => ii.taskStatus === 5
+                    )[0].logDes ?? "{}"
+                  ).isfinsh
+              }}</van-col
+            >
+            <van-col :span="24"
+              >回访情况:{{
+                JSON.parse(
+                    taskinfo.tblTaskLogList.filter(
+                      (ii) => ii.taskStatus === 5
+                    )[0].logDes ?? "{}"
+                  ).hfdes
+              }}</van-col
+            >
+            <van-col :span="24">处置完成日期:{{
+                JSON.parse(
+                    taskinfo.tblTaskLogList.filter(
+                      (ii) => ii.taskStatus === 5
+                    )[0].logDes ?? "{}"
+                  ).czcompletetime }}</van-col>
+            <van-col :span="24">记录人:{{ JSON.parse(
+                    taskinfo.tblTaskLogList.filter(
+                      (ii) => ii.taskStatus === 5
+                    )[0].logDes ?? "{}"
+                  ).jlr }}</van-col>
+          </van-row>
           </van-collapse-item>
           <van-collapse-item class="citem" title="处置信息" name="4" v-if="taskinfo.status > 2 && taskinfo.status != 4">
-            在代码阅读过程中人们说脏话的频率是衡量代码质量的唯一标准。
+             <div class="titleheader" :style="`${'margin-top:0px'}`">
+            {{ "权属确认" }}
+          </div>
+          <div>
+            <van-row>
+              <van-col :span="24"
+                >{{
+                  "现场勘查" +
+                  ":" +
+                  JSON.parse(
+                    taskinfo.tblTaskLogList.filter(
+                      (ii) => ii.taskStatus === 3
+                    )[0].logDes ?? "{}"
+                  ).qsdes
+                }}
+              </van-col>
+            </van-row>
+          </div>
+
+          <div class="titleheader">
+            {{ "工作量" }}
+          </div>
+          <div>
+            <van-row>
+              <van-col
+                :span="12"
+                v-for="(item, index1) in JSON.parse(
+                  taskinfo.tblTaskLogList.filter((ii) => ii.taskStatus === 3)[0]
+                    .logDes ?? '{}'
+                ).gzldata"
+                >{{ item.label + ":" + item.value }}
+              </van-col>
+            </van-row>
+          </div>
+
+          <div class="titleheader" :style="`${'margin-top:0px'}`">
+            {{ "车辆设备" }}
+          </div>
+          <div>
+            <van-row>
+              <van-col
+                :span="12"
+                v-for="(item, index1) in JSON.parse(
+                  taskinfo.tblTaskLogList.filter((ii) => ii.taskStatus === 3)[0]
+                    .logDes ?? '{}'
+                ).clsbdata"
+                >{{ item.label + ":" + item.value }}
+              </van-col>
+            </van-row>
+          </div>
+
+          <div class="titleheader" :style="`${'margin-top:0px'}`">
+            {{ "耗材" }}
+          </div>
+          <div>
+            <van-row>
+              <van-col
+                :span="12"
+                v-for="(item, index1) in JSON.parse(
+                  taskinfo.tblTaskLogList.filter((ii) => ii.taskStatus === 3)[0]
+                    .logDes ?? '{}'
+                ).hcdata"
+                >{{ item.label + ":" + item.value }}
+              </van-col>
+            </van-row>
+          </div>
+
+          <div>
+            <div class="titleheader">现场图片</div>
+            <van-row>
+              <van-col :span="24">
+                <ImagePreview
+                  v-model:src="
+                    JSON.parse(
+                      taskinfo.tblTaskLogList.filter(
+                        (ii) => ii.taskStatus === 3
+                      )[0].logDes ?? '{}'
+                    ).images
+                  "
+                  :height="'120px'"
+                  :width="'120px'"
+                ></ImagePreview>
+              </van-col>
+            </van-row>
+          </div>
           </van-collapse-item>
           <van-collapse-item class="citem" title="核查信息" name="5" v-if="taskinfo.status > 5">
-            在代码阅读过程中人们说脏话的频率是衡量代码质量的唯一标准。
+            <van-row>
+            <van-col :span="24"
+              >核查人员:{{
+                JSON.parse(
+                    taskinfo.tblTaskLogList.filter(
+                      (ii) => ii.taskStatus === 6
+                    )[0].logDes ?? "{}"
+                  ).hcry
+              }}</van-col
+            >
+
+            <van-col :span="24">核查时间:{{ JSON.parse(
+                    taskinfo.tblTaskLogList.filter(
+                      (ii) => ii.taskStatus === 6
+                    )[0].logDes ?? "{}"
+                  ).hctime }}</van-col>
+            <van-col :span="24"
+              >核查备注:{{ JSON.parse(
+                    taskinfo.tblTaskLogList.filter(
+                      (ii) => ii.taskStatus === 6
+                    )[0].logDes ?? "{}"
+                  ).hcdes }}</van-col
+            >
+          </van-row>
           </van-collapse-item>
           <van-collapse-item class="citem" title="驳回信息" name="6" v-if="taskinfo.status == 4">
-            在代码阅读过程中人们说脏话的频率是衡量代码质量的唯一标准。
+             <van-row>
+            <van-col :span="24"
+              >原因备注:{{
+                JSON.parse(
+                  taskinfo.tblTaskLogList.filter((ii) => ii.taskStatus === 4)[0]
+                    .logDes ?? "{}"
+                ).resonRemark
+              }}</van-col
+            >
+
+            <van-col :span="24"
+              >驳回时间:{{
+                taskinfo.tblTaskLogList.filter((ii) => ii.taskStatus === 4)[0]
+                  .createTime
+              }}</van-col
+            >
+
+            <van-col :span="24">
+              <div style="position: relative">
+                说明报告:
+                <div
+                  style="position: absolute; top: 0; left: 60px; width: 100%"
+                >
+                  <div
+                    style="
+                      margin-bottom: 10px;
+                      color: #4f9eee;
+                      display: inline-block;
+                      margin-left: 10px;
+                    "
+                    v-for="i in JSON.parse(
+                      taskinfo.tblTaskLogList.filter(
+                        (ii) => ii.taskStatus === 4
+                      )[0].logDes ?? '{}'
+                    ).files?.split(',') ?? []"
+                  >
+                    <a target="_blank" :href="`${STATICURL + i}`">
+                      {{ i.split("/")[i.split("/").length - 1] }}
+                    </a>
+                  </div>
+                </div>
+              </div>
+            </van-col>
+            <van-col :span="24">照片:</van-col>
+          </van-row>
+          <van-row>
+            <van-col :span="24">
+              <ImagePreview
+                v-model:src="
+                  JSON.parse(
+                    taskinfo.tblTaskLogList.filter(
+                      (ii) => ii.taskStatus === 4
+                    )[0].logDes ?? '{}'
+                  ).images
+                "
+                :height="'120px'"
+                :width="'120px'"
+              ></ImagePreview>
+            </van-col>
+          </van-row>
           </van-collapse-item>
         </van-collapse>
       </div>
@@ -84,6 +365,7 @@
 import { defineComponent, ref, onMounted, watch } from "vue";
 import { cloneDeep } from "lodash";
 import { listDept, getDept } from "@/api/system/dept";
+import ImagePreview from "@/components/ImagePreview";
 import { useDict } from "@/utils/dict";
 import { useRoute } from "vue-router";
 import moment from "moment";
@@ -136,6 +418,14 @@ bodyheight.value = document.body.clientHeight - 46;
 
 const activeNames = ref(["1"]);
 
+const alldept = ref([]);
+listDept().then((response) => {
+  alldept.value = cloneDeep(response.data);
+});
+const allusers = ref([]);
+listUser({ pageSize: 1000 }).then((res) => {
+  allusers.value = res.rows;
+});
 const taskinfo = ref({
   taskName: "",
   taskContent: "",
@@ -181,6 +471,9 @@ body {
 .listcontent {
   overflow-y: auto;
   padding: 10px;
+  .van-col{
+    margin-bottom: 10px;
+  }
   .citem {
     margin-top: 10px;
     border-radius: 5px;
@@ -188,7 +481,12 @@ body {
     overflow: hidden;
     .content {
       font-size: 10px;
+
     }
+    .titleheader{
+        color:#3d6dc5;
+        margin-bottom: 5px;
+      }
   }
   .van-cell__title {
     color: #3d6dc5;

+ 1 - 1
src/views/mb/task/index.vue

@@ -42,7 +42,7 @@
                             task_event_type.filter(
                               (i) =>
                                 i.value.toString() ===
-                                item.taskEventType.toString()
+                                (item.taskEventType??"").toString()
                             )[0]?.label ?? "-"
                           }}
                         </div></van-col

+ 1 - 1
src/views/task/list/index.vue

@@ -225,7 +225,7 @@ const ontaskadd = async ()=>{
   var taskobj = cloneDeep(taskinfo.value);
   taskobj.status = 1;
   taskobj.taskDeptRange = (taskobj.taskDeptRange instanceof Array) ? taskobj.taskDeptRange.join(","):'';
-  // console.log(taskobj);
+  console.log(taskobj);
   loading.value = true;
 
   await addTask(taskobj);