Procházet zdrojové kódy

重构安全检查登记 、详情

jiawuxian před 1 rokem
rodič
revize
20ed45a8da

+ 17 - 26
src/router/index.js

@@ -116,17 +116,8 @@ export const constantRoutes = [
         meta: { title: '个人中心', icon: 'user' }
       }
     ]
-  },{
-    path: '/safetycheck/register',
-    component: Layout,    
-    hidden: true,
-    children:[{
-      path:'add',
-      name:'addRegister',
-      component: () => import('@/views/safetycheck/taskManager/components/register.vue'),
-      meta:{title:'检查登记'}
-    }]
-  },{
+  }
+  ,{
     path: '/safetycheck/tempregister',
     component: Layout,    
     hidden: true,
@@ -134,22 +125,10 @@ export const constantRoutes = [
     children:[{
       path:'add',
       name:'tempRegister',
-      component: () => import('@/views/safetycheck/taskManager/components/checkRegister.vue'),
+      component: () => import('@/views/safetycheck/task/components/checkRegister.vue'),
       meta:{title:'临时登记'}
     }]
-  },
-  {
-    path: '/board',
-    component: Layout,    
-    hidden: true,
-    permissions: ['core:cockpit'],
-    children:[{
-      path:'',
-      name:'board',
-      component: () => import('@/views/board/index.vue'),
-      meta:{title:'驾驶舱'}
-    }]
-  },
+  }
 ]
 
 // 动态路由,基于用户权限动态去加载
@@ -246,12 +225,24 @@ export const dynamicRoutes = [
     children: [
       {
         path: 'register/:taskId(\\d+)',
-        component: () => import('@/views/safetycheck/taskManager/components/register.vue'),
+        component: () => import('@/views/safetycheck/task/components/register.vue'),
         name: 'safetyCheckRegister',
         meta: { title: '检查任务', activeMenu: '/safetycheck/taskmanager' }
       }
     ]
   },
+  ,{
+    path: '/core/safetycheck',
+    component: Layout,    
+    hidden: true,
+    permissions: ['core:task:query'],
+    children:[{
+      path:'detail/:taskId(\\d+)',
+      name:'safetyTaskDetail',
+      component: () => import('@/views/safetycheck/task/components/detail.vue'),
+      meta:{title:'检查任务详情'}
+    }]
+  },
   {
     path: '/core/safetycheck/rule',
     component: Layout,

+ 473 - 0
src/views/safetycheck/task/components/checkRegister.vue

@@ -0,0 +1,473 @@
+<!--事后的检查登记-->
+<template>
+  <div class="app-container">
+    <el-form
+      ref="point_baseInfo"
+      :model="info"
+      :rules="baseInfoRules"
+      label-width="120px"
+    >
+      <el-row>
+        <el-col :span="6">
+          <el-form-item label="任务名称" prop="taskName">
+            <el-input
+              v-model="info.taskName"
+              placeholder="请输入任务名称"
+              maxlength="50"
+            ></el-input> </el-form-item
+        ></el-col>
+        <el-col :span="6"
+          ><el-form-item label="检查主体" prop="checkOrgId">
+            <orgDropDown
+              v-model="info.checkOrgId"
+              placeholder="选择检查主体"
+              @select="onCheckOrgSelect"
+              orgTreeType="org"
+            /> </el-form-item
+        ></el-col>
+        <el-col :span="6">
+          <el-form-item label="检查人员" prop="checkRoleId">
+            <el-select
+              v-model="info.checkRoleId"
+              placeholder="请选择检查人员"
+              style="width: 100%"
+              clearable
+            >
+              <el-option
+                v-for="role in roleOptions"
+                :key="role.id"
+                :label="role.name"
+                :value="role.id"
+              ></el-option>
+            </el-select> </el-form-item
+        ></el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="6">
+          <el-form-item label="受检机构" prop="beCheckedOrgId">
+            <orgDropDown
+              v-model="info.beCheckedOrgId"
+              placeholder="选择受检机构"
+              @select="onBecheckOrgSelect"
+              orgTreeType="org"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item label="检查组成员" prop="checkTeam">
+            <el-input
+              style="width: 100%"
+              placeHolder="请输入检查组成员"
+              v-model="info.checkTeam"
+              maxlength="100"
+              clearable
+            ></el-input> </el-form-item
+        ></el-col>
+        <el-col :span="6">
+          <el-form-item label="检查日期" prop="planStartTime">
+            <el-date-picker
+              style="width: 100%"
+              v-model="info.planStartTime"
+              type="date"
+              placeholder="选择检查日期"
+              clearable
+            >
+            </el-date-picker>
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <div style="margin-left: 42px">
+      <span style="margin-right: 20px">检查区域</span>
+      <el-button type="primary" size="mini" @click="onAddPoint()"
+        >选择检查内容</el-button
+      >
+    </div>
+    <div class="content">
+      <div class="area_content" v-for="area in info.checkList">
+        <div>
+          {{ area.areaName }}
+        </div>
+        <div>
+          <div class="safetycheck_item" v-for="(item, index) in area.itemList">
+            <span>{{ index + 1 }}、{{ item.itemName }}</span>
+            <div class="safetycheck_point" v-for="point in item.pointList">
+              <div>
+                <div class="pointName">
+                  <i class="circle" />
+                  <pre>{{ point.pointName }}</pre>
+                </div>
+                <el-radio-group v-model="point.status" style="margin-top: 5px">
+                  <el-radio :label="0">正常</el-radio>
+                  <el-radio :label="1">异常</el-radio>
+                </el-radio-group>
+                <div>
+                  <el-button
+                    type="danger"
+                    size="mini"
+                    v-if="point.isAdd"
+                    style="margin-left: 50px"
+                    @click="onDeletePoint(area, item, point)"
+                    >删除</el-button
+                  >
+                </div>
+              </div>
+              <div v-if="point.status == 1">
+                <el-form
+                  :ref="'point_' + point.pointId"
+                  :model="point"
+                  :rules="exceptionRules"
+                  label-width="100px"
+                >
+                  <el-form-item label="情况描述" prop="remark">
+                    <el-input
+                      v-model="point.remark"
+                      style="width: 250px"
+                      placeholder="请输入情况描述"
+                      maxlength="255"
+                    ></el-input>
+                  </el-form-item>
+                  <el-form-item label="整改期限" prop="rectificationDeadline">
+                    <el-select
+                      v-model="point.rectificationDeadline"
+                      placeholder="请选择整改期限"
+                    >
+                      <el-option
+                        v-for="item in dict.type.rectification_deadline"
+                        :key="item.value"
+                        :value="item.value"
+                        :label="item.label"
+                      ></el-option>
+                    </el-select>
+                  </el-form-item>
+                  <el-form-item label="异常图片" prop="image">
+                    <imgUpload
+                      type="more"
+                      :value="
+                        point.imgData
+                          ? point.imgData.map((d) => d.imgPath).join(',')
+                          : ''
+                      "
+                      @input="onImageChanged(point, $event)"
+                    ></imgUpload>
+                  </el-form-item>                  
+                </el-form>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <div class="dialog-footer">
+      <el-button @click="onClose">取消</el-button>
+      <!-- <el-button @click="onSave" v-if="showSaveBtn">保存</el-button> -->
+      <el-button
+        type="primary"
+        @click="onSubmit()"
+        v-hasPermi="['core:safetycheck:tempregister']"
+        >提交</el-button
+      >
+    </div>
+    <SelectPoint
+      ref="SelectPoint"
+      :orgType="[info.beCheckOrgType]"
+      @select="onSelectPoint"
+    ></SelectPoint>
+  </div>
+</template>
+<script>
+import { mapGetters } from "vuex";
+import * as api from "@/api/safetycheck/checkRegister.js";
+import dayjs from "dayjs";
+import SelectPoint from "../../ruleManager/dialog.select.point.vue";
+import imgUpload from "@/components/ImageUpload/index.vue";
+import { getLabel } from "@/views/commonOption.js";
+import { getNamesByOrgId } from "@/api/system/role.js";
+import orgDropDown from "@/components/orgTree/orgDropDown.vue";
+export default {
+  name: "safetyCheckRegister",
+  data() {
+    return {
+      info: {
+        taskName: null,
+        checkOrgId: null,
+        checkRoleId: null,
+        beCheckedOrgId: null,
+        beCheckOrgType: null,
+        planStartTime: new Date(),
+        checkTeam: null,
+        checkList: [],
+      },
+      roleOptions: [],
+      prevCheckOrgType: null, //上一个选中检查机构的类型
+      prevBecheckedOrgType: null, //上一个受检机构的类型
+      exceptionRules: {
+        remark: [{ required: true, message: "请输入情况描述" }],
+        rectificationDeadline: [{ required: true, message: "请选择整改期限" }],
+      },
+      baseInfoRules: {
+        taskName: [{ required: true, message: "请输入任务名称" }],
+        checkOrgId: [{ required: true, message: "请选择检查主体" }],
+        checkRoleId: [{ required: true, message: "请选择检查人员" }],
+        beCheckedOrgId: [{ required: true, message: "请选择受检机构" }],
+        planStartTime: [{ required: true, message: "请选择检查日期" }],
+      },
+      pointIdsWhenAdd: [],
+      mode: null,
+    };
+  },
+  dicts: ["rectification_deadline", "sys_user_is_lock"],
+  components: { SelectPoint, imgUpload, orgDropDown },
+  computed: {
+    ...mapGetters(["orgId", "roleList", "userId"]),
+  },
+  mounted() {
+    this.info.checkOrgId = this.orgId;
+    this.info.checkRoleId = this.roleList[0].roleId;
+  },
+  methods: {
+    dayjs,
+    getLabel,
+    onCheckOrgSelect(node) {
+      if (node == null) {
+        this.prevCheckOrgType = null;
+        this.roleOptions = [];
+        this.checkRoleId = null;
+        return;
+      }
+      if (node.type == this.prevCheckOrgType) {
+        return;
+      }
+
+      getNamesByOrgId(node.id).then((r) => {
+        this.roleOptions = r.data;
+        this.prevCheckOrgType = node.type;
+        if (!this.roleOptions.find((op) => op.id == this.info.checkRoleId)) {
+          this.info.checkRoleId = null;
+        }
+      });
+    },
+    onBecheckOrgSelect(node) {
+      if (node == null) {
+        this.prevBecheckedOrgType = null;
+        this.info.checkList = [];
+        return;
+      }
+
+      if (node.type == this.prevBecheckedOrgType) {
+        return;
+      }
+
+      this.info.checkList = [];
+      this.prevBecheckedOrgType = node.type;
+      this.info.beCheckOrgType = node.type;
+    },
+    onAddPoint() {
+      if (!this.info.beCheckedOrgId) {
+        this.$message.info("请先选择受检机构");
+        return;
+      }
+      if (!this.info.beCheckOrgType) {
+        this.$message.warning("受检机构的机构类型未知");
+        return;
+      }
+      this.pointIdsWhenAdd = [];
+      this.info.checkList.forEach((a) => {
+        a.itemList.forEach((i) => {
+          i.pointList.forEach((p) => {
+            this.pointIdsWhenAdd.push(p.pointId);
+          });
+        });
+      });
+      this.$refs.SelectPoint.show(this.pointIdsWhenAdd);
+    },
+    onSelectPoint(selectedList) {
+      let hasNew = false;
+      for (let index in selectedList) {
+        let p = selectedList[index];
+        if (this.pointIdsWhenAdd.indexOf(p.id) >= 0) {
+          continue;
+        }
+        let info = this.info;
+        let area = info.checkList.find((a) => a.areaId === p.areaId);
+        if (!area) {
+          area = { areaId: p.areaId, areaName: p.areaName, itemList: [] };
+          info.checkList.push(area);
+        }
+
+        let item = area.itemList.find((i) => i.itemId == p.itemId);
+        if (!item) {
+          item = { itemId: p.itemId, itemName: p.itemName, pointList: [] };
+          area.itemList.push(item);
+        }
+
+        let point = item.pointList.find((i) => i.pointId == p.id);
+        if (!point) {
+          point = {
+            pointId: p.id,
+            pointName: p.pointName,
+            mustCheck: 1,
+            isAdd: 1,
+            status: 0,
+            remark: null,
+            imgData: null,
+            rectificationDeadline: null,
+            submitBy: null,
+            submitTime: null,
+          };
+
+          item.pointList.push(point);
+          hasNew = true;
+        }
+      }
+
+      if (!hasNew) {
+        this.$message.info("没有可新增的检查内容");
+      }
+    },
+
+    onDeletePoint(area, item, point) {
+      if (point.isAdd === 0) {
+        this.$message.warning("不可删除计划的检查内容");
+        return;
+      }
+
+      let index = item.pointList.indexOf(point);
+      if (index >= 0) {
+        item.pointList.splice(index, 1);
+      }
+
+      if (item.pointList.length === 0) {
+        index = area.itemList.indexOf(item);
+        area.itemList.splice(index, 1);
+      }
+
+      if (area.itemList.length === 0) {
+        index = this.info.checkList.indexOf(area);
+        this.info.checkList.splice(index, 1);
+      }
+    },
+    onImageChanged(point, value) {
+      point.imgData = value
+        .split(",")
+        .map((img) => ({ id: null, imgPath: img }));
+    },
+    onClose() {
+      this.$tab.closePageAndPushPrev();
+    },
+    onSave() {
+      this.info.isSubmit = 0;
+      api.tempSubmit(this.info).then((r) => {
+        this.$message.info("保存成功");
+      });
+    },
+    async onSubmit() {
+      let isOk = true;
+      let rs = this.$refs;
+      for (let p in this.$refs) {
+        if (p.startsWith("point")) {
+          try {
+            let form = this.$refs[p];
+            if (form.length) {
+              isOk &= await this.$refs[p][0].validate();
+            } else {
+              isOk &= await this.$refs[p].validate();
+            }
+          } catch (e) {
+            isOk &= false;
+            console.error(e);
+          }
+        }
+      }
+      if (isOk) {
+        this.info.isSubmit = 1;
+        let data = { ...this.info };
+        data.checkRoles = [{ id: this.info.checkRoleId }];
+        api.tempSubmit(data).then((r) => {
+          this.$message.info("提交成功");
+          this.$tab.closePageAndPushPrev();
+        });
+      }
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.content {
+  max-height: calc(100% - 300px);
+  overflow-y: auto;
+  margin-bottom: 20px;
+  margin-top: 20px;
+}
+.area_content {
+  border: #b8bdc0 1px solid;
+  display: flex;
+  flex-direction: row;
+}
+
+.content > .area_content:first-child {
+  border-bottom: none;
+}
+
+.content > .area_content:last-child {
+  border-bottom: #b8bdc0 1px solid;
+}
+
+.area_content > div:nth-child(1) {
+  background-color: #e6e6e6;
+  border-right: #b8bdc0 1px solid;
+  padding-top: auto;
+  width: 15%;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  text-align: center;
+}
+
+.area_content > div:nth-child(2) {
+  width: 80%;
+  padding-left: 10px;
+}
+
+.safetycheck_item {
+  margin: 10px;
+  margin-bottom: 20px;
+}
+
+.safetycheck_point {
+  padding-top: 10px;
+  padding-left: 30px;
+
+  & > div {
+    display: flex;
+    flex-direction: row;
+  }
+}
+
+.pointName {
+  width: 200px;
+  display: flex;
+  flex-direction: row;
+}
+.dialog-footer {
+  width: 100%;
+  text-align: right;
+  border-top: #b8bdc0 1px solid;
+  padding-top: 10px;
+  padding-right: 30px;
+  position: absolute;
+  bottom: 30px;
+  right: 0px;
+}
+.circle {
+  display: inline-block;
+  width: 5px;
+  height: 5px;
+  border-radius: 5px;
+  background-color: #000;
+  border: none;
+  margin-top: 10px;
+  margin-right: 10px;
+}
+</style>

+ 174 - 0
src/views/safetycheck/task/components/detail.vue

@@ -0,0 +1,174 @@
+<template>
+  <div class="app-container">
+    <el-descriptions title="检查任务" border>
+      <el-descriptions-item label="任务名称">{{
+        taskInfo.taskName
+      }}</el-descriptions-item>
+      <el-descriptions-item label="任务进度"
+        >{{ getLabel(dict.type.safety_check_status, taskInfo.status) }}
+      </el-descriptions-item>
+      <el-descriptions-item label="任务时间"
+        >{{ dayjs(taskInfo.planStartTime).format("YYYY-MM-DD") }}
+      </el-descriptions-item>
+      <el-descriptions-item label="截止日期"
+        >{{ dayjs(taskInfo.planEndTime).format("YYYY-MM-DD") }}
+      </el-descriptions-item>
+
+      <el-descriptions-item label="检查主体">{{
+        taskInfo.checkOrgName
+      }}</el-descriptions-item>
+      <el-descriptions-item label="受检机构">{{
+        taskInfo.beCheckedOrgName
+      }}</el-descriptions-item>
+      <el-descriptions-item label="检查人员"
+        >{{
+          taskInfo.checkRoles
+            ? taskInfo.checkRoles.map((r) => r.name).join(",")
+            : ""
+        }}
+      </el-descriptions-item>
+      <el-descriptions-item label="检查组成员"
+        >{{ taskInfo.checkTeam }}
+      </el-descriptions-item>
+      <el-descriptions-item label="登记人"
+        >{{ taskInfo.submitBy }}
+      </el-descriptions-item>
+      <el-descriptions-item label="隐患问题数" 
+        >{{ taskInfo.exceptionCount }}
+      </el-descriptions-item>
+      <el-descriptions-item label="检查时间" 
+        >{{
+          taskInfo.submitTime
+            ? dayjs(taskInfo.submitTime).format("YYYY-MM-DD")
+            : ""
+        }}
+      </el-descriptions-item>
+    </el-descriptions>
+
+    <div class="itemDetail">
+      <el-collapse v-model="itemIds">
+        <el-collapse-item
+          v-for="item in taskInfo.checkList"
+          :title="item.itemName"
+          :value="item.itemId"
+          :name="item.itemId"
+        >
+          <el-table :data="item.pointList" size="small">
+            <el-table-column
+              header-align="center"
+              prop="pointName"
+              label="检查内容"
+            >
+            </el-table-column>
+            <el-table-column align="center" prop="areaName" label="检查区域">
+            </el-table-column>
+            <el-table-column align="center" prop="status" label="检查结果">
+              <template slot-scope="r">
+                {{
+                  r.row.status == null
+                    ? "-"
+                    : r.row.status == 0
+                    ? "正常"
+                    : "异常"
+                }}
+              </template>
+            </el-table-column>
+            <el-table-column align="center" prop="remark" label="问题描述">
+              <template slot-scope="r">
+                {{ r.row.remark ? r.row.remark : "-" }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              header-align="center"
+              prop="imgData"
+              label="异常图片"
+            >
+              <template slot-scope="r">
+                <div v-if="r.row.imgData && r.row.imgData.length > 0">
+                  <el-image
+                    style="width: 30px; height: 30px; margin: 0 10px"
+                    v-for="img in r.row.imgData"
+                    :src="img.imgPath"
+                    :preview-src-list="
+                      r.row.imgData ? r.row.imgData.map((r) => r.imgPath) : []
+                    "
+                  ></el-image>
+                </div>
+                <span v-else>-</span>
+              </template>
+            </el-table-column>
+          </el-table>
+        </el-collapse-item>
+      </el-collapse>
+    </div>
+    <div class="dialog-footer">
+      <el-button @click="onClose">关闭</el-button>
+    </div>
+  </div>
+</template>
+<script>
+import { mapGetters } from "vuex";
+import * as api from "@/api/safetycheck/register.js";
+import dayjs from "dayjs";
+
+import { getLabel } from "@/views/commonOption.js";
+import { checkPermi } from "@/utils/permission.js";
+export default {
+  name: "safetyCheckRegister",
+  data() {
+    return {
+      taskInfo: {},
+      itemIds:[]
+    };
+  },
+  dicts: ["safety_check_status"],
+  components: {},
+  computed: {},
+  mounted() {
+    let id = this.$route.params.taskId;
+    let mode = this.$route.query.mode;
+    let request = api.appinfo;
+
+    request(id).then((r) => {
+      this.taskInfo = r.data;
+      this.itemIds=r.data.checkList.map(c=>c.itemId);
+    });
+  },
+  methods: {
+    dayjs,
+    getLabel,
+
+    onClose() {
+      this.$tab.closePageAndPushPrev();
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.el-row-button {
+  margin-top: 20px;
+}
+
+.itemDetail {
+  max-height: calc(100% - 300px);
+  overflow-y: auto;
+  margin-top: 20px;
+}
+
+.dialog-footer {
+  width: 100%;
+  text-align: right;
+  border-top: #b8bdc0 1px solid;
+  padding-top: 10px;
+  padding-right: 30px;
+  position: absolute;
+  bottom: 30px;
+  right: 0px;
+}
+
+.el-descriptions {
+  ::v-deep .el-descriptions__body {
+    background-color: transparent !important;
+  }
+}
+</style>

+ 7 - 136
src/views/safetycheck/taskManager/components/register.vue → src/views/safetycheck/task/components/register.vue

@@ -33,25 +33,10 @@
           placeHolder="请输入检查组成员"
           v-model="taskInfo.checkTeam"
           maxlength="100"
-          v-if="isRegister"
         ></el-input>
-        <span v-else>{{ taskInfo.checkTeam }}</span>
-      </el-descriptions-item>
-      <el-descriptions-item label="登记人" v-if="!isRegister"
-        >{{ taskInfo.submitBy }}
-      </el-descriptions-item>
-      <el-descriptions-item label="隐患问题数" v-if="!isRegister"
-        >{{ taskInfo.exceptionCount }}
-      </el-descriptions-item>
-      <el-descriptions-item label="检查时间" v-if="!isRegister"
-        >{{
-          taskInfo.submitTime
-            ? dayjs(taskInfo.submitTime).format("YYYY-MM-DD")
-            : ""
-        }}
       </el-descriptions-item>
     </el-descriptions>
-    <el-row class="el-row-button" v-if="isRegister">
+    <el-row class="el-row-button">
       <el-col>
         <span style="margin-right: 20px">检查区域</span>
         <el-button type="primary" size="mini" @click="onAddPoint()"
@@ -60,7 +45,7 @@
       </el-col>
     </el-row>
 
-    <div class="content" v-if="isRegister">
+    <div class="content">
       <div class="area_content" v-for="area in taskInfo.checkList">
         <div>
           {{ area.areaName }}
@@ -76,23 +61,14 @@
                     <pre>{{ point.pointName }}</pre>
                   </div>
                 </div>
-                <el-radio-group v-model="point.status" v-if="isRegister">
+                <el-radio-group v-model="point.status">
                   <el-radio :label="0">正常</el-radio>
                   <el-radio :label="1">异常</el-radio>
                 </el-radio-group>
-                <span v-else>
-                  <span v-if="point.status === 0">
-                    <i class="circle" style="background-color: #1890ff" />
-                    <label style="color: #1890ff"> 正常</label> </span
-                  ><span v-else>
-                    <i class="circle" style="background-color: #f5222d" />
-                    <label style="color: #f5222d"> 异常</label>
-                  </span>
-                </span>
                 <el-button
                   type="danger"
                   size="mini"
-                  v-if="point.isAdd && isRegister"
+                  v-if="point.isAdd"
                   style="margin-left: 50px"
                   @click="onDeletePoint(area, item, point)"
                   >删除</el-button
@@ -104,7 +80,6 @@
                   :model="point"
                   :rules="exceptionRules"
                   label-width="100px"
-                  v-if="isRegister"
                 >
                   <el-form-item label="情况描述" prop="remark">
                     <el-input
@@ -139,92 +114,12 @@
                     ></imgUpload>
                   </el-form-item>
                 </el-form>
-                <!-- <el-descriptions v-else :column="1">
-                  <el-descriptions-item label="情况描述">{{
-                    point.remark
-                  }}</el-descriptions-item>
-                  <el-descriptions-item label="整改期限">{{
-                    getLabel(
-                      dict.type.rectification_deadline,
-                      point.rectificationDeadline
-                    )
-                  }}</el-descriptions-item>
-                  <el-descriptions-item label="异常图片">
-                    <div class="imageList">
-                      <el-image
-                        style="width: 100px; height: 100px; margin: 10px"
-                        v-if="point.imgData"
-                        v-for="url in point.imgData"
-                        :src="url.imgPath"
-                        :preview-src-list="point.imgData.map((d) => d.imgPath)"
-                      >
-                      </el-image></div
-                  ></el-descriptions-item>
-                </el-descriptions> -->
               </div>
             </div>
           </div>
         </div>
       </div>
     </div>
-    <div v-else class="itemDetail">
-      <el-collapse>
-        <el-collapse-item
-          v-for="item in taskInfo.checkList"
-          :title="item.itemName"
-          :value="item.itemId"
-        >
-          <el-table :data="item.pointList" size="small">
-            <el-table-column
-              header-align="center"
-              prop="pointName"
-              label="检查内容"
-            >
-            </el-table-column>
-            <el-table-column align="center" prop="areaName" label="检查区域">
-            </el-table-column>
-            <el-table-column align="center" prop="status" label="检查结果">
-              <template slot-scope="r">
-                {{
-                  r.row.status == null
-                    ? "-"
-                    : r.row.status == 0
-                    ? "正常"
-                    : "异常"
-                }}
-              </template>
-            </el-table-column>
-            <el-table-column
-              align="center"
-              prop="remark"
-              label="问题描述"
-            >
-              <template slot-scope="r">
-                {{ r.row.remark ? r.row.remark : "-" }}
-              </template>
-            </el-table-column>
-            <el-table-column
-              header-align="center"
-              prop="imgData"
-              label="异常图片"
-            >
-              <template slot-scope="r">
-                <div  v-if="r.row.imgData && r.row.imgData.length > 0">
-                  <el-image                 
-                  style="width: 30px; height: 30px; margin: 0 10px"
-                  v-for="img in r.row.imgData"
-                  :src="img.imgPath"
-                  :preview-src-list="
-                    r.row.imgData ? r.row.imgData.map((r) => r.imgPath) : []
-                  "
-                ></el-image></div>                
-                <span v-else>-</span>
-              </template>
-            </el-table-column>
-          </el-table>
-        </el-collapse-item>
-      </el-collapse>
-    </div>
     <div class="dialog-footer">
       <el-button type="primary" @click="onSubmit()" v-if="showSaveBtn"
         >提交</el-button
@@ -266,21 +161,15 @@ export default {
         rectificationDeadline: [{ required: true, message: "请选择整改期限" }],
       },
       pointIdsWhenAdd: [],
-      mode: null,
     };
   },
   dicts: ["rectification_deadline", "sys_user_is_lock", "safety_check_status"],
   components: { SelectPoint, imgUpload, UserSelector },
   computed: {
     ...mapGetters(["orgId", "roleList", "userId"]),
-    isRegister() {
-      let r = this.mode === "register";
-      return r;
-    },
 
     showSaveBtn() {
       return (
-        this.isRegister &&
         this.taskInfo.status != 3 &&
         (checkPermi(["core:safetycheck:register"]) ||
           this.taskInfo.grantUserId == this.userId)
@@ -292,7 +181,6 @@ export default {
         ? this.taskInfo.checkRoles.map((r) => r.id)
         : [];
       return (
-        this.isRegister &&
         this.taskInfo.status != 3 &&
         this.taskInfo.planType == 3 &&
         this.taskInfo.checkOrgId == this.orgId &&
@@ -302,27 +190,10 @@ export default {
   },
   mounted() {
     let id = this.$route.params.taskId;
-    let mode = this.$route.query.mode;
-    let request = api.info;
-    if (!mode) {
-      mode = "info";
-    }
-
-    if (mode == "info") {
-      request = api.appinfo;
-    }
-
+    let request = api.info;    
     request(id).then((r) => {
-      this.mode = mode;
-      if (mode != "register") {
-        this.taskInfo = r.data;
-        return;
-      }
-
       if (r.data.status == 3) {
-        this.mode = "info";
-        this.taskInfo = r.data;
-        this.$message.info("任务已完成,将显示详情");
+        this.onClose();
         return;
       }
 
@@ -337,7 +208,7 @@ export default {
         this.taskInfo = r.data;
       } else {
         this.$message.warning("用户不能执行该任务");
-        this.mode = "info";
+        this.onClose();
       }
     });
   },

+ 2 - 2
src/views/safetycheck/task/index.vue

@@ -502,7 +502,7 @@ export default {
     },
     getLabel,
     showDetail(row) {
-      let path = "/core/safetycheck/register/" + row.id;
+      let path = "/core/safetycheck/detail/" + row.id;
       console.log(path,"path")
       this.$router.push(path);
     },
@@ -534,7 +534,7 @@ export default {
         return;
       }
 
-      let path = "/core/safetycheck/register/" + row.id + "?mode=register";
+      let path = "/core/safetycheck/register/" + row.id;
       this.$router.push(path);
     },
     getDefaultKey(key) {