Browse Source

PSSR:
-添加检修项目创建流程

jiangbiao 8 tháng trước cách đây
mục cha
commit
27a9f3cc38
51 tập tin đã thay đổi với 471 bổ sung223 xóa
  1. 14 12
      master/src/main/java/com/ruoyi/project/ehs/controller/TApproveDangerController.java
  2. 8 7
      master/src/main/java/com/ruoyi/project/pssr/controller/TPssrApproveController.java
  3. 61 29
      master/src/main/java/com/ruoyi/project/pssr/controller/TPssrOverhaulExchangerController.java
  4. 10 0
      master/src/main/java/com/ruoyi/project/pssr/domain/TPssrOverhaulExchanger.java
  5. 1 1
      master/src/main/java/com/ruoyi/project/pssr/mapper/TPssrOverhaulExchangerMapper.java
  6. 1 1
      master/src/main/java/com/ruoyi/project/pssr/service/ITPssrOverhaulExchangerService.java
  7. 2 2
      master/src/main/java/com/ruoyi/project/pssr/service/impl/TPssrOverhaulExchangerServiceImpl.java
  8. 13 7
      master/src/main/resources/mybatis/pssr/TPssrOverhaulExchangerMapper.xml
  9. 14 1
      master/src/main/resources/processes/pssr/pssr1confirm.bpmn
  10. 11 11
      ui/src/views/approve/approveDetail/pssrApprove-detail.vue
  11. 1 2
      ui/src/views/approve/myapprove/index.vue
  12. 7 3
      ui/src/views/pssr/airtight/index.vue
  13. 7 3
      ui/src/views/pssr/alarm/index.vue
  14. 7 3
      ui/src/views/pssr/analyzer/index.vue
  15. 7 3
      ui/src/views/pssr/blind/index.vue
  16. 7 3
      ui/src/views/pssr/circuit/index.vue
  17. 7 3
      ui/src/views/pssr/cleaning/index.vue
  18. 7 3
      ui/src/views/pssr/frame/index.vue
  19. 7 3
      ui/src/views/pssr/franklinism/index.vue
  20. 7 3
      ui/src/views/pssr/gasdetector/index.vue
  21. 7 3
      ui/src/views/pssr/hygiene/index.vue
  22. 7 3
      ui/src/views/pssr/instrumentCalibration/index.vue
  23. 7 3
      ui/src/views/pssr/instrumentTest/index.vue
  24. 7 3
      ui/src/views/pssr/lighting/index.vue
  25. 7 3
      ui/src/views/pssr/lock/index.vue
  26. 7 3
      ui/src/views/pssr/material/index.vue
  27. 7 3
      ui/src/views/pssr/motor/index.vue
  28. 7 3
      ui/src/views/pssr/nitrogen/index.vue
  29. 5 2
      ui/src/views/pssr/overhaulExchanger/index.vue
  30. 5 1
      ui/src/views/pssr/overhaulFilter/index.vue
  31. 26 4
      ui/src/views/pssr/overhaulPipe/index.vue
  32. 5 1
      ui/src/views/pssr/overhaulPump/index.vue
  33. 5 1
      ui/src/views/pssr/overhaulTower/index.vue
  34. 5 1
      ui/src/views/pssr/overhaulValve/index.vue
  35. 7 3
      ui/src/views/pssr/patrol/index.vue
  36. 7 3
      ui/src/views/pssr/pipe/index.vue
  37. 7 3
      ui/src/views/pssr/programme/index.vue
  38. 7 3
      ui/src/views/pssr/protection/index.vue
  39. 7 3
      ui/src/views/pssr/pssrModel/index.vue
  40. 7 3
      ui/src/views/pssr/public/index.vue
  41. 7 3
      ui/src/views/pssr/pumpCleaning/index.vue
  42. 7 3
      ui/src/views/pssr/pumpFill/index.vue
  43. 7 3
      ui/src/views/pssr/pumpOverhaul/index.vue
  44. 7 3
      ui/src/views/pssr/safetyBleed/index.vue
  45. 7 3
      ui/src/views/pssr/safetyBreath/index.vue
  46. 7 3
      ui/src/views/pssr/safetyBrust/index.vue
  47. 7 3
      ui/src/views/pssr/safetyFlamearrester/index.vue
  48. 7 3
      ui/src/views/pssr/safetyValve/index.vue
  49. 7 3
      ui/src/views/pssr/subcontent/index.vue
  50. 53 41
      ui/src/views/pssr/subitem/index.vue
  51. 7 3
      ui/src/views/pssr/torchvoc/index.vue

+ 14 - 12
master/src/main/java/com/ruoyi/project/ehs/controller/TApproveDangerController.java

@@ -743,18 +743,20 @@ public class TApproveDangerController extends BaseController {
         }
         //当前任务
         try {
-            Task task = taskService.createTaskQuery().processInstanceId(pid).active().singleResult();
-            if (task != null) {
-                task.getName();
-                task.getCreateTime();
-                DevTask devTask = new DevTask();
-                devTask.setTaskName(task.getName());
-                devTask.setTaskCreateTime(task.getCreateTime());
-                if (task.getAssignee() != null) {
-                    SysUser user = sysUserService.selectUserById(Long.parseLong(task.getAssignee()));
-                    devTask.setUserName(user.getNickName());
-                }
-                devTaskList.add(devTask);
+            List<Task> tasks = taskService.createTaskQuery().processInstanceId(pid).active().list();
+            if (CollectionUtils.isNotEmpty(tasks)) {
+                tasks.forEach(task -> {
+                    task.getName();
+                    task.getCreateTime();
+                    DevTask devTask = new DevTask();
+                    devTask.setTaskName(task.getName());
+                    devTask.setTaskCreateTime(task.getCreateTime());
+                    if (task.getAssignee() != null) {
+                        SysUser user = sysUserService.selectUserById(Long.parseLong(task.getAssignee()));
+                        devTask.setUserName(user.getNickName());
+                    }
+                    devTaskList.add(devTask);
+                });
             }
         } catch (Exception e) {
             logger.error(e.toString());

+ 8 - 7
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrApproveController.java

@@ -20,10 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * pssr审批管理Controller
@@ -206,14 +203,16 @@ public class TPssrApproveController extends BaseController {
         TPssrApprove approve = new TPssrApprove();
         approve.setSubId(sub.getId());
         approve.setApNo(DateUtils.dateTimeNow() + userId);
-        approve.setApproveStatus("0");
+        approve.setApproveStatus("1");
         approve.setSubCharge(sub.getConfirm());
         approve.setCreaterCode(userId);
         approve.setCreatedate(new Date());
         tPssrApproveService.insertTPssrApprove(approve);
 
         //查询所有确认人
-        TPssrOverhaulExchanger tPssrOverhaulExchanger = tPssrOverhaulExchangerService.selectAllConfirmedPersonBySubId(sub.getId());
+        TPssrOverhaulExchanger exchanger = new TPssrOverhaulExchanger();
+        exchanger.setSubId(sub.getId());
+        TPssrOverhaulExchanger tPssrOverhaulExchanger = tPssrOverhaulExchangerService.selectAllConfirmedPersonBySubId(exchanger);
         String confirmers = tPssrOverhaulExchanger.getConfirmedPerson();
         // 开始申请流程
         long businessKey = approve.getApproveId();
@@ -221,11 +220,13 @@ public class TPssrApproveController extends BaseController {
         Authentication.setAuthenticatedUserId(userId);//设置当前申请人
         Map<String, Object> variables = new HashMap<>();
         variables.put("applyUser", userId);
-        variables.put("confirmUsers", confirmers);
+        variables.put("confirmUsers", Arrays.asList(confirmers.split(",")));
         variables.put("chargePerson", sub.getConfirm());
         //采用key来启动流程定义并设置流程变量,返回流程实例
         ProcessInstance pi = runtimeService.startProcessInstanceByKey("pssr1confirm", String.valueOf(businessKey), variables);
         approve.setProcessId(pi.getProcessInstanceId());
         tPssrApproveService.updateTPssrApprove(approve);
     }
+
+
 }

+ 61 - 29
master/src/main/java/com/ruoyi/project/pssr/controller/TPssrOverhaulExchangerController.java

@@ -1,24 +1,19 @@
 package com.ruoyi.project.pssr.controller;
 
-import java.util.List;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
-import com.ruoyi.project.pssr.domain.TPssrOverhaulExchanger;
-import com.ruoyi.project.pssr.service.ITPssrOverhaulExchangerService;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
-import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.page.TableDataInfo;
+import com.ruoyi.project.pssr.domain.TPssrOverhaulExchanger;
+import com.ruoyi.project.pssr.service.ITPssrOverhaulExchangerService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.List;
 
 /**
  * 检修项目-换热器Controller
@@ -28,8 +23,7 @@ import com.ruoyi.framework.web.page.TableDataInfo;
  */
 @RestController
 @RequestMapping("/pssr/overhaulExchanger")
-public class TPssrOverhaulExchangerController extends BaseController
-{
+public class TPssrOverhaulExchangerController extends BaseController {
     @Autowired
     private ITPssrOverhaulExchangerService tPssrOverhaulExchangerService;
 
@@ -38,8 +32,7 @@ public class TPssrOverhaulExchangerController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('pssr:overhaulExchanger:list')")
     @GetMapping("/list")
-    public TableDataInfo list(TPssrOverhaulExchanger tPssrOverhaulExchanger)
-    {
+    public TableDataInfo list(TPssrOverhaulExchanger tPssrOverhaulExchanger) {
         startPage();
         List<TPssrOverhaulExchanger> list = tPssrOverhaulExchangerService.selectTPssrOverhaulExchangerList(tPssrOverhaulExchanger);
         return getDataTable(list);
@@ -51,8 +44,7 @@ public class TPssrOverhaulExchangerController extends BaseController
     @PreAuthorize("@ss.hasPermi('pssr:overhaulExchanger:export')")
     @Log(title = "检修项目-换热器", businessType = BusinessType.EXPORT)
     @GetMapping("/export")
-    public AjaxResult export(TPssrOverhaulExchanger tPssrOverhaulExchanger)
-    {
+    public AjaxResult export(TPssrOverhaulExchanger tPssrOverhaulExchanger) {
         List<TPssrOverhaulExchanger> list = tPssrOverhaulExchangerService.selectTPssrOverhaulExchangerList(tPssrOverhaulExchanger);
         ExcelUtil<TPssrOverhaulExchanger> util = new ExcelUtil<TPssrOverhaulExchanger>(TPssrOverhaulExchanger.class);
         return util.exportExcel(list, "overhaulExchanger");
@@ -63,8 +55,7 @@ public class TPssrOverhaulExchangerController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('pssr:overhaulExchanger:query')")
     @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
         return AjaxResult.success(tPssrOverhaulExchangerService.selectTPssrOverhaulExchangerById(id));
     }
 
@@ -74,8 +65,7 @@ public class TPssrOverhaulExchangerController extends BaseController
     @PreAuthorize("@ss.hasPermi('pssr:overhaulExchanger:add')")
     @Log(title = "检修项目-换热器", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody TPssrOverhaulExchanger tPssrOverhaulExchanger)
-    {
+    public AjaxResult add(@RequestBody TPssrOverhaulExchanger tPssrOverhaulExchanger) {
         return toAjax(tPssrOverhaulExchangerService.insertTPssrOverhaulExchanger(tPssrOverhaulExchanger));
     }
 
@@ -85,8 +75,7 @@ public class TPssrOverhaulExchangerController extends BaseController
     @PreAuthorize("@ss.hasPermi('pssr:overhaulExchanger:edit')")
     @Log(title = "检修项目-换热器", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody TPssrOverhaulExchanger tPssrOverhaulExchanger)
-    {
+    public AjaxResult edit(@RequestBody TPssrOverhaulExchanger tPssrOverhaulExchanger) {
         return toAjax(tPssrOverhaulExchangerService.updateTPssrOverhaulExchanger(tPssrOverhaulExchanger));
     }
 
@@ -95,9 +84,52 @@ public class TPssrOverhaulExchangerController extends BaseController
      */
     @PreAuthorize("@ss.hasPermi('pssr:overhaulExchanger:remove')")
     @Log(title = "检修项目-换热器", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(tPssrOverhaulExchangerService.deleteTPssrOverhaulExchangerByIds(ids));
     }
+
+    /**
+     * 确认检修项目-换热器
+     */
+    @PreAuthorize("@ss.hasPermi('pssr:overhaulExchanger:edit')")
+    @Log(title = "检修项目-换热器", businessType = BusinessType.UPDATE)
+    @PutMapping("/confirmExchanger")
+    public AjaxResult confirmExchanger(@RequestBody TPssrOverhaulExchanger tPssrOverhaulExchanger) {
+        if (tPssrOverhaulExchanger.getIds() != null && tPssrOverhaulExchanger.getIds().length > 0) {
+            for (Long id : tPssrOverhaulExchanger.getIds()) {
+                TPssrOverhaulExchanger exchanger = tPssrOverhaulExchangerService.selectTPssrOverhaulExchangerById(id);
+                exchanger.setApproveStatus(2L);
+                exchanger.setUpdatedate(new Date());
+                exchanger.setUpdaterCode(String.valueOf(getUserId()));
+                tPssrOverhaulExchangerService.updateTPssrOverhaulExchanger(exchanger);
+            }
+        } else {
+            TPssrOverhaulExchanger exchanger = new TPssrOverhaulExchanger();
+            exchanger.setSubId(tPssrOverhaulExchanger.getSubId());
+            exchanger.setConfirmedPerson(getUserId().toString());
+            exchanger.setApproveStatus(1L);
+            for (TPssrOverhaulExchanger overhaulExchanger : tPssrOverhaulExchangerService.selectTPssrOverhaulExchangerList(exchanger)) {
+                overhaulExchanger.setApproveStatus(2L);
+                overhaulExchanger.setUpdatedate(new Date());
+                overhaulExchanger.setUpdaterCode(String.valueOf(getUserId()));
+                tPssrOverhaulExchangerService.updateTPssrOverhaulExchanger(overhaulExchanger);
+            }
+        }
+        TPssrOverhaulExchanger entity = new TPssrOverhaulExchanger();
+        entity.setSubId(tPssrOverhaulExchanger.getSubId());
+        entity.setApproveStatus(1L);
+        TPssrOverhaulExchanger exchanger = tPssrOverhaulExchangerService.selectAllConfirmedPersonBySubId(entity);
+        String confirmedPerson = exchanger.getConfirmedPerson();
+        if (confirmedPerson.contains(getUserId().toString())) {
+            return AjaxResult.success();
+        }
+        handleApprove();
+        return AjaxResult.success();
+    }
+
+    public void handleApprove(){
+
+    }
+
 }

+ 10 - 0
master/src/main/java/com/ruoyi/project/pssr/domain/TPssrOverhaulExchanger.java

@@ -86,6 +86,16 @@ public class TPssrOverhaulExchanger extends BaseEntity
     @Excel(name = "审批状态")
     private Long approveStatus;
 
+    private Long ids[];
+
+    public Long[] getIds() {
+        return ids;
+    }
+
+    public void setIds(Long[] ids) {
+        this.ids = ids;
+    }
+
     public void setId(Long id)
     {
         this.id = id;

+ 1 - 1
master/src/main/java/com/ruoyi/project/pssr/mapper/TPssrOverhaulExchangerMapper.java

@@ -29,7 +29,7 @@ public interface TPssrOverhaulExchangerMapper
     @DataScope(deptAlias = "d")
     public List<TPssrOverhaulExchanger> selectTPssrOverhaulExchangerList(TPssrOverhaulExchanger tPssrOverhaulExchanger);
 
-    public TPssrOverhaulExchanger selectAllConfirmedPersonBySubId(Long subId);
+    public TPssrOverhaulExchanger selectAllConfirmedPersonBySubId(TPssrOverhaulExchanger tPssrOverhaulExchanger);
 
     /**
      * 新增检修项目-换热器

+ 1 - 1
master/src/main/java/com/ruoyi/project/pssr/service/ITPssrOverhaulExchangerService.java

@@ -27,7 +27,7 @@ public interface ITPssrOverhaulExchangerService
      */
     public List<TPssrOverhaulExchanger> selectTPssrOverhaulExchangerList(TPssrOverhaulExchanger tPssrOverhaulExchanger);
 
-    public TPssrOverhaulExchanger selectAllConfirmedPersonBySubId(Long subId);
+    public TPssrOverhaulExchanger selectAllConfirmedPersonBySubId(TPssrOverhaulExchanger tPssrOverhaulExchanger);
 
     /**
      * 新增检修项目-换热器

+ 2 - 2
master/src/main/java/com/ruoyi/project/pssr/service/impl/TPssrOverhaulExchangerServiceImpl.java

@@ -44,9 +44,9 @@ public class TPssrOverhaulExchangerServiceImpl implements ITPssrOverhaulExchange
     }
 
     @Override
-    public TPssrOverhaulExchanger selectAllConfirmedPersonBySubId(Long subId)
+    public TPssrOverhaulExchanger selectAllConfirmedPersonBySubId(TPssrOverhaulExchanger tPssrOverhaulExchanger)
     {
-        return tPssrOverhaulExchangerMapper.selectAllConfirmedPersonBySubId(subId);
+        return tPssrOverhaulExchangerMapper.selectAllConfirmedPersonBySubId(tPssrOverhaulExchanger);
     }
 
     /**

+ 13 - 7
master/src/main/resources/mybatis/pssr/TPssrOverhaulExchangerMapper.xml

@@ -59,15 +59,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where id = #{id}
     </select>
 
-    <select id="selectAllConfirmedPersonBySubId" parameterType="Long" resultMap="TPssrOverhaulExchangerResult">
+    <select id="selectAllConfirmedPersonBySubId" parameterType="TPssrOverhaulExchanger" resultMap="TPssrOverhaulExchangerResult">
         SELECT LISTAGG(CONFIRMED_PERSON ,  ',') WITHIN GROUP (ORDER BY CONFIRMED_PERSON)AS CONFIRMED_PERSON
         FROM (
-                 select CONFIRMED_PERSON from T_PSSR_OVERHAUL_EXCHANGER where sub_id= #{subId} union
-                 select RESP_PERSON  from T_PSSR_OVERHAUL_FILTER  where sub_id= #{subId} union
-                 select CONFIRMER from T_PSSR_OVERHAUL_PIPE  where sub_id= #{subId} union
-                 select CONFIRMED_PERSON from T_PSSR_OVERHAUL_PUMP  where sub_id= #{subId} union
-                 select CONFIRMED_PERSON from  T_PSSR_OVERHAUL_TOWER  where sub_id= #{subId} union
-                 select IDENTIFYING_PERSON  from T_PSSR_OVERHAUL_VALVE where sub_id= #{subId})
+                 select CONFIRMED_PERSON from T_PSSR_OVERHAUL_EXCHANGER where sub_id= #{subId}
+        <if test="approveStatus != null "> and approve_status = #{approveStatus}</if>union
+                 select RESP_PERSON  from T_PSSR_OVERHAUL_FILTER  where sub_id= #{subId}
+        <if test="approveStatus != null "> and approve_status = #{approveStatus}</if>union
+                 select CONFIRMER from T_PSSR_OVERHAUL_PIPE  where sub_id= #{subId}
+        <if test="approveStatus != null "> and approve_status = #{approveStatus}</if>union
+                 select CONFIRMED_PERSON from T_PSSR_OVERHAUL_PUMP  where sub_id= #{subId}
+        <if test="approveStatus != null "> and approve_status = #{approveStatus}</if>union
+                 select CONFIRMED_PERSON from  T_PSSR_OVERHAUL_TOWER  where sub_id= #{subId}
+        <if test="approveStatus != null "> and approve_status = #{approveStatus}</if>union
+                 select IDENTIFYING_PERSON  from T_PSSR_OVERHAUL_VALVE where sub_id= #{subId}
+        <if test="approveStatus != null "> and approve_status = #{approveStatus}</if>)
     </select>
 
     <insert id="insertTPssrOverhaulExchanger" parameterType="TPssrOverhaulExchanger">

+ 14 - 1
master/src/main/resources/processes/pssr/pssr1confirm.bpmn

@@ -2,10 +2,23 @@
 <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
   <process id="pssr1confirm" name="PSSR单确认人确认流程" isExecutable="true">
     <startEvent id="applyUser" name="Start" activiti:initiator="${applyUser}"></startEvent>
-    <userTask id="confirmUser" name="确认人" activiti:candidateUsers="#{confirmUsers}"></userTask>
     <sequenceFlow id="flow1" sourceRef="applyUser" targetRef="confirmUser">
     </sequenceFlow>
     <userTask id="chargePerson" name="检查内容负责人" activiti:assignee="#{chargePerson}"></userTask>
+
+    <userTask id="confirmUser" name="确认人">
+        <extensionElements>
+            <!-- 定义多实例任务,使用集合变量 confirmUsers 动态生成 -->
+            <activiti:multiInstanceLoopCharacteristics isSequential="false" activiti:collection="confirmUsers" activiti:elementVariable="confirmUser">
+                <completionCondition>${nrOfCompletedInstances == nrOfInstances}</completionCondition>
+            </activiti:multiInstanceLoopCharacteristics>
+
+            <!-- 动态将任务分配给 confirmUser -->
+            <activiti:assignee>${confirmUser}</activiti:assignee>
+        </extensionElements>
+    </userTask>
+
+
     <sequenceFlow id="flow2" sourceRef="confirmUser" targetRef="chargePerson">
     </sequenceFlow>
     <sequenceFlow id="flow3" sourceRef="chargePerson" targetRef="confirmUser">

+ 11 - 11
ui/src/views/approve/approveDetail/pssrApprove-detail.vue

@@ -4,9 +4,7 @@
              :visible.sync="visible"
              :append-to-body="true"
              width="60%">
-    <el-descriptions :column="2" border size="small">
-
-    </el-descriptions>
+    <Subitem :sub-id="Number(subId)" :serial-number="sn" :is-approve="Number((taskForm.taskId == '')?2:1)" />
     <span slot="footer" class="dialog-footer">
       <el-button v-if="!this.taskForm.taskId == ''" type="primary"
                  @click="dataFormSubmit(1)" :disabled="submitDisabled">通过</el-button>
@@ -33,28 +31,27 @@
 
 <script>
 import {getHistorylist} from "@/api/ehs/approvedanger";
-import {genAppraisalFormWord, handleScore} from "@/api/training/bccnew/tsnew";
-import {getApprove} from "@/api/training/bccnew/tsApprove";
+import Subitem from "@/views/pssr/subitem/index.vue";
+import {getSubcontent} from "@/api/pssr/subcontent";
 
 export default {
   name: "pssrApprove-detail",
+  components: {Subitem},
   data() {
     return {
       //label样式
       labelStyle: {'width': '200px'},
-      unitOptions: [],
       //流转列表
       historyList: [],
       historyLoading: true,
       submitDisabled: false,
       taskName: '',
       visible: false,
+      subId: null,
+      sn: null,
       taskForm: {
         comment: '',
         taskId: '',
-        files: '',
-        govDate: '',
-        govFileList: [],
         businessKey: '',
         tPssrApprove: {}
       },
@@ -67,14 +64,17 @@ export default {
   },
   methods: {
     init(id, taskId, processId, taskName) {
-      console.log(222)
+      this.subId = id;
+      getSubcontent(id).then(res => {
+        this.sn = res.data.serialNumber
+      })
       this.visible = true;
       getHistorylist({processId: processId}).then(response => {
         this.historyList = response.rows;
         this.historyLoading = false
       });
     },
-    dataFormSubmit(val){
+    dataFormSubmit(val) {
 
     }
   }

+ 1 - 2
ui/src/views/approve/myapprove/index.vue

@@ -277,10 +277,9 @@
             this.$refs.dsdtNopassDetail.init(row.approveObject.id, row.taskId, row.processId, row.taskName)
           })
         } else if (row.processName == "PSSR单确认人确认流程") {
-          console.log(111)
           this.pssrApproveDetailVisible = true
           this.$nextTick(() => {
-            this.$refs.pssrApproveDetail.init(row.approveObject.id, row.taskId, row.processId, row.taskName)
+            this.$refs.pssrApproveDetail.init(row.approveObject.subId, row.taskId, row.processId, row.taskName)
           })
         }else {
           this.approveInfo = row;

+ 7 - 3
ui/src/views/pssr/airtight/index.vue

@@ -405,11 +405,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "Airtight",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/alarm/index.vue

@@ -293,11 +293,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "Alarm",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/analyzer/index.vue

@@ -366,11 +366,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "Analyzer",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/blind/index.vue

@@ -593,11 +593,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "Blind",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/circuit/index.vue

@@ -438,11 +438,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "Circuit",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/cleaning/index.vue

@@ -372,11 +372,15 @@ export default {
   name: "Cleaning",
   components: { Treeselect },
   // components: { Editor },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/frame/index.vue

@@ -429,11 +429,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "Frame",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/franklinism/index.vue

@@ -346,11 +346,15 @@ export default {
   name: "Franklinism",
   components: { Treeselect },
   // components: { Editor },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/gasdetector/index.vue

@@ -366,11 +366,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "Gasdetector",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/hygiene/index.vue

@@ -320,11 +320,15 @@ export default {
   name: "Hygiene",
   components: { Treeselect },
   // components: { Editor },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/instrumentCalibration/index.vue

@@ -379,11 +379,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "InstrumentCalibration",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/instrumentTest/index.vue

@@ -293,11 +293,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "InstrumentTest",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/lighting/index.vue

@@ -346,11 +346,15 @@ export default {
   name: "Lighting",
   components: { Treeselect },
   // components: { Editor },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/lock/index.vue

@@ -484,11 +484,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "Lock",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/material/index.vue

@@ -353,11 +353,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "Material",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/motor/index.vue

@@ -366,11 +366,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "Motor",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/nitrogen/index.vue

@@ -379,11 +379,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "Nitrogen",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 5 - 2
ui/src/views/pssr/overhaulExchanger/index.vue

@@ -109,7 +109,6 @@
           type="danger"
           icon="el-icon-s-promotion"
           size="mini"
-          :disabled="subStatus!=0"
           @click="handleApprove"
           v-hasPermi="['pssr:overhaulExchanger:edit']"
         >确认内容
@@ -266,7 +265,11 @@ export default {
     subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 5 - 1
ui/src/views/pssr/overhaulFilter/index.vue

@@ -274,7 +274,11 @@ export default {
     subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 26 - 4
ui/src/views/pssr/overhaulPipe/index.vue

@@ -32,6 +32,7 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
+          v-if="isApprove==0"
           v-hasPermi="['pssr:overhaulPipe:add']"
         >新增
         </el-button>
@@ -43,6 +44,7 @@
           size="mini"
           :disabled="single"
           @click="handleUpdate"
+          v-if="isApprove==0"
           v-hasPermi="['pssr:overhaulPipe:edit']"
         >修改
         </el-button>
@@ -53,6 +55,7 @@
           icon="el-icon-delete"
           size="mini"
           :disabled="multiple"
+          v-if="isApprove==0"
           @click="handleDelete"
           v-hasPermi="['pssr:overhaulPipe:remove']"
         >删除
@@ -64,6 +67,7 @@
           icon="el-icon-upload2"
           size="mini"
           @click="handleImport"
+          v-if="isApprove==0"
           v-hasPermi="['pssr:overhaulPipe:edit']"
         >导入
         </el-button>
@@ -74,6 +78,7 @@
           icon="el-icon-download"
           size="mini"
           @click="handleExport"
+          v-if="isApprove==0"
           v-hasPermi="['pssr:overhaulPipe:export']"
         >导出
         </el-button>
@@ -84,9 +89,21 @@
           icon="el-icon-s-promotion"
           size="mini"
           :disabled="subStatus!=0"
+          v-if="isApprove==0"
           @click="handleApprove"
           v-hasPermi="['pssr:overhaulPipe:edit']"
-        >确认内容
+        >发起申请
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-check"
+          size="mini"
+          v-if="isApprove==1"
+          @click=""
+          v-hasPermi="['pssr:overhaulPipe:edit']"
+        >确认
         </el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -107,7 +124,8 @@
         </template>
       </el-table-column>
       <el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip="true"/>
-      <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" v-if="isApprove==0" fixed="right" width="120"
+                       class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -236,7 +254,11 @@ export default {
     subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {
@@ -484,7 +506,7 @@ export default {
 
     /** 确认按钮操作*/
     handleApprove() {
-      doApprove(this.subId).then(res=>{
+      doApprove(this.subId).then(res => {
         this.msgSuccess("已发起确认流程");
       })
     },

+ 5 - 1
ui/src/views/pssr/overhaulPump/index.vue

@@ -249,7 +249,11 @@ export default {
     subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 5 - 1
ui/src/views/pssr/overhaulTower/index.vue

@@ -251,7 +251,11 @@ export default {
     subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 5 - 1
ui/src/views/pssr/overhaulValve/index.vue

@@ -303,7 +303,11 @@ export default {
     subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/patrol/index.vue

@@ -336,11 +336,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "Patrol",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/pipe/index.vue

@@ -392,11 +392,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "Pipe",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/programme/index.vue

@@ -306,11 +306,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "Programme",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/protection/index.vue

@@ -333,11 +333,15 @@ export default {
   name: "Protection",
   components: { Treeselect },
   // components: { Editor },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/pssrModel/index.vue

@@ -208,11 +208,15 @@ export default {
   name: "PssrModel",
   components: {Treeselect},
   // components: { Editor },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/public/index.vue

@@ -320,11 +320,15 @@ export default {
   name: "Public",
   components: { Treeselect },
   // components: { Editor },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/pumpCleaning/index.vue

@@ -392,11 +392,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "PumpCleaning",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/pumpFill/index.vue

@@ -392,11 +392,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "PumpFill",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/pumpOverhaul/index.vue

@@ -366,11 +366,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "PumpOverhaul",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/safetyBleed/index.vue

@@ -423,11 +423,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "SafetyBleed",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/safetyBreath/index.vue

@@ -423,11 +423,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "SafetyBreath",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/safetyBrust/index.vue

@@ -423,11 +423,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "SafetyBrust",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/safetyFlamearrester/index.vue

@@ -371,11 +371,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "SafetyFlamearrester",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/safetyValve/index.vue

@@ -436,11 +436,15 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "SafetyValve",
   components: { Treeselect },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 7 - 3
ui/src/views/pssr/subcontent/index.vue

@@ -220,11 +220,15 @@ export default {
   name: "Subcontent",
   components: {Treeselect},
   // components: { Editor },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {

+ 53 - 41
ui/src/views/pssr/subitem/index.vue

@@ -3,131 +3,131 @@
     <div v-if="serialNumber=='01'">
       <el-tabs v-model="activeName" @tab-click="handleClick">
         <el-tab-pane label="管道" name="first">
-          <overhaul-pipe :sub-id="Number(subId)"/>
+          <overhaul-pipe :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
         </el-tab-pane>
         <el-tab-pane label="泵" name="second">
-          <overhaul-pump :sub-id="Number(subId)"/>
+          <overhaul-pump :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
         </el-tab-pane>
         <el-tab-pane label="换热器" name="third">
-          <overhaul-exchanger :sub-id="Number(subId)"/>
+          <overhaul-exchanger :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
         </el-tab-pane>
         <el-tab-pane label="塔罐" name="fourth">
-          <overhaul-tower :sub-id="Number(subId)"/>
+          <overhaul-tower :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
         </el-tab-pane>
         <el-tab-pane label="阀门" name="fifth">
-          <overhaul-valve :sub-id="Number(subId)"/>
+          <overhaul-valve :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
         </el-tab-pane>
         <el-tab-pane label="过滤器" name="sixth">
-          <overhaul-filter :sub-id="Number(subId)"/>
+          <overhaul-filter :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
         </el-tab-pane>
       </el-tabs>
     </div>
     <div v-if="serialNumber=='02'">
-      <programme :sub-id="Number(subId)"/>
+      <programme :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='03'">
-      <blind :sub-id="Number(subId)"/>
+      <blind :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='04'">
-      <airtight :sub-id="Number(subId)"/>
+      <airtight :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='05'">
-      <protection :sub-id="Number(subId)"/>
+      <protection :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='06'">
       <el-tabs v-model="activeName" @tab-click="handleClick">
         <el-tab-pane label="安全阀" name="first">
-          <safety-valve :sub-id="Number(subId)"/>
+          <safety-valve :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
         </el-tab-pane>
         <el-tab-pane label="爆破片" name="second">
-          <safety-brust :sub-id="Number(subId)"/>
+          <safety-brust :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
         </el-tab-pane>
         <el-tab-pane label="呼吸阀" name="third">
-          <safety-breath :sub-id="Number(subId)"/>
+          <safety-breath :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
         </el-tab-pane>
         <el-tab-pane label="泄放阀" name="fourth">
-          <safety-bleed :sub-id="Number(subId)"/>
+          <safety-bleed :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
         </el-tab-pane>
         <el-tab-pane label="阻火器" name="fifth">
-          <safety-flamearrester :sub-id="Number(subId)"/>
+          <safety-flamearrester :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
         </el-tab-pane>
       </el-tabs>
     </div>
     <div v-if="serialNumber=='07'">
-      <public :sub-id="Number(subId)"/>
+      <public :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='08'">
-      <material :sub-id="Number(subId)"/>
+      <material :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='09'">
-      <hygiene :sub-id="Number(subId)"/>
+      <hygiene :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='10'">
-      <cleaning :sub-id="Number(subId)"/>
+      <cleaning :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='11'">
-      <circuit :sub-id="Number(subId)"/>
+      <circuit :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='12'">
-      <patrol :sub-id="Number(subId)"/>
+      <patrol :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='13'">
-      <patrol :sub-id="Number(subId)"/>
+      <patrol :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='14'">
-      <torchvoc :sub-id="Number(subId)"/>
+      <torchvoc :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='15'">
-      <patrol :sub-id="Number(subId)"/>
+      <patrol :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='16'">
-      <nitrogen :sub-id="Number(subId)"/>
+      <nitrogen :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='17'">
-      <lock :sub-id="Number(subId)"/>
+      <lock :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='18'">
       <el-tabs v-model="activeName" @tab-click="handleClick">
         <el-tab-pane label="机泵过滤器清理工作清单" name="first">
-          <pump-cleaning :sub-id="Number(subId)"/>
+          <pump-cleaning :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
         </el-tab-pane>
         <el-tab-pane label="机泵检修完成确认清单" name="second">
-          <pump-overhaul :sub-id="Number(subId)"/>
+          <pump-overhaul :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
         </el-tab-pane>
         <el-tab-pane label="机泵润滑油加注确认清单" name="third">
-          <pump-fill :sub-id="Number(subId)"/>
+          <pump-fill :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
         </el-tab-pane>
       </el-tabs>
     </div>
     <div v-if="serialNumber=='19'">
-      <frame :sub-id="Number(subId)"/>
+      <frame :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='20'">
-      <pipe :sub-id="Number(subId)"/>
+      <pipe :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='21'">
-      <instrument-calibration :sub-id="Number(subId)"/>
+      <instrument-calibration :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='22'">
-      <instrument-test :sub-id="Number(subId)"/>
+      <instrument-test :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='23'">
-      <alarm :sub-id="Number(subId)"/>
+      <alarm :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='24'">
-      <gasdetector :sub-id="Number(subId)"/>
+      <gasdetector :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='25'">
-      <lighting :sub-id="Number(subId)"/>
+      <lighting :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='26'">
-      <motor :sub-id="Number(subId)"/>
+      <motor :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='27'">
-      <franklinism :sub-id="Number(subId)"/>
+      <franklinism :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
     <div v-if="serialNumber=='28'">
-      <analyzer :sub-id="Number(subId)"/>
+      <analyzer :sub-id="Number(subId)" :is-approve="Number(isApprove)"/>
     </div>
   </div>
 </template>
@@ -205,12 +205,24 @@ export default {
     Blind,
     Programme, OverhaulFilter, OverhaulValve, OverhaulTower, OverhaulExchanger, OverhaulPump, OverhaulPipe
   },
+  props: {
+    subId: {
+      type: Number,
+      default: 0
+    },
+    serialNumber: {
+      type: String,
+      default: null
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    }
+  },
   data() {
     return {
       // 默认第一个Tab
       activeName: 'first',
-      subId: null,
-      serialNumber: null
     }
   },
   created() {

+ 7 - 3
ui/src/views/pssr/torchvoc/index.vue

@@ -329,11 +329,15 @@ export default {
   name: "Torchvoc",
   components: { Treeselect },
   // components: { Editor },
-  props:{
-    subId:{
+  props: {
+    subId: {
       type: Number,
       default: 0
-    }
+    },
+    isApprove: {
+      type: Number,
+      default: 0
+    },
   },
   data() {
     return {