From 812d77e3db062d63bc35304ac527f14efd1a454d Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期一, 18 三月 2024 11:12:18 +0800
Subject: [PATCH] 修改

---
 web/src/views/modules/taskReliability/Task-AddOrUpdate.vue                                                     |   52 ++
 modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/dao/TaskPhaseDao.java                       |   23 +
 modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/controller/TaskPhaseController.java         |   95 +++++
 web/src/views/modules/basicInfo/ParamData.vue                                                                  |    6 
 web/src/views/modules/taskReliability/Task.vue                                                                 |   71 +++
 modules/mainPart/src/main/resources/mapper/taskReliability/TaskPhaseDao.xml                                    |   21 +
 modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/Task.java                             |   42 ++
 web/src/views/modules/taskReliability/TaskPhaseModel.vue                                                       |   65 +++
 modules/mainPart/src/main/resources/mapper/taskReliability/TaskPhaseModelDao.xml                               |   21 +
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/controller/XhProductModelController.java |    6 
 modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/controller/TaskPhaseModelController.java    |   96 +++++
 modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/TaskPhaseService.java               |   40 ++
 modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/TaskPhaseModelService.java          |   40 ++
 modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/TaskPhase.java                        |   48 ++
 modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/controller/TaskController.java              |   95 +++++
 web/src/views/modules/taskReliability/TaskPhase-AddOrUpdate.vue                                                |   63 +++
 web/src/views/modules/taskReliability/TaskPhase.vue                                                            |   85 ++++
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/XhProductModelDao.java               |    2 
 modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/dao/TaskPhaseModelDao.java                  |   23 +
 modules/mainPart/src/main/resources/mapper/taskReliability/TaskDao.xml                                         |   21 +
 web/src/views/modules/taskReliability/SelectModelRbd.vue                                                       |   61 +++
 modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/TaskService.java                    |   40 ++
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java       |    4 
 modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/TaskPhaseModel.java                   |   45 ++
 web/src/views/modules/basicInfo/SelectTyModel.vue                                                              |    1 
 modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml                                     |    6 
 modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/dao/TaskDao.java                            |   23 +
 27 files changed, 1,091 insertions(+), 4 deletions(-)

diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/controller/XhProductModelController.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/controller/XhProductModelController.java
index 2d7d32b..c9941ec 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/controller/XhProductModelController.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/controller/XhProductModelController.java
@@ -95,6 +95,12 @@
         return Result.ok(list);
     }
 
+    @GetMapping("getTaskProductList")
+    public Result<List<XhProductModel>> getTaskProductList() {
+        List<XhProductModel> list = xhProductModelService.getTaskProductList();
+        return Result.ok(list);
+    }
+
     @PostMapping
     @ApiOperation("鏂板")
     @LogOperation("鏂板")
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/XhProductModelDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/XhProductModelDao.java
index 44c3490..c1bf358 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/XhProductModelDao.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/dao/XhProductModelDao.java
@@ -28,4 +28,6 @@
     List<XhProductModel> getProductList();
 
     List<ProductImg> getProduct(Long productId);
+
+    List<XhProductModel> getTaskProductList();
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java
index 45e9f6e..a5c1c22 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java
@@ -67,4 +67,8 @@
     public List<ProductImg> getProduct(Long productId) {
         return baseDao.getProduct(productId);
     }
+
+    public List<XhProductModel> getTaskProductList() {
+        return baseDao.getTaskProductList();
+    }
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/controller/TaskController.java b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/controller/TaskController.java
new file mode 100644
index 0000000..c4ab96a
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/controller/TaskController.java
@@ -0,0 +1,95 @@
+package com.zt.life.modules.taskReliability.controller;
+
+
+import com.zt.common.annotation.LogOperation;
+import com.zt.common.constant.Constant;
+import com.zt.common.annotation.QueryParam;
+import com.zt.common.db.query.QueryFilter;
+import com.zt.common.servlet.Result;
+import com.zt.common.servlet.PageResult;
+import com.zt.common.validator.AssertUtils;
+import com.zt.common.validator.ValidatorUtils;
+import com.zt.common.validator.group.AddGroup;
+import com.zt.common.validator.group.DefaultGroup;
+import com.zt.common.validator.group.UpdateGroup;
+import com.zt.life.modules.taskReliability.model.Task;
+import com.zt.life.modules.taskReliability.service.TaskService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+
+/**
+ * task
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-15
+ */
+@RestController
+@RequestMapping("/taskReliability/Task/")
+@Api(tags="task")
+public class TaskController {
+    @Autowired
+    private TaskService taskService;
+
+    @GetMapping("page")
+    @ApiOperation("鍒嗛〉")
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING),
+        @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING),
+        @ApiImplicitParam(name = "productId", value = "浜у搧鑺傜偣", dataType = Constant.QT.STRING),
+    })
+    public Result<List<Task>> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+
+        return Result.ok(taskService.page(queryFilter));
+    }
+
+    @GetMapping("{id}")
+    @ApiOperation("淇℃伅")
+    public Result<Task> get(@PathVariable("id") Long id){
+        Task data = taskService.get(id);
+
+        return Result.ok(data);
+    }
+
+    @PostMapping
+    @ApiOperation("鏂板")
+    @LogOperation("鏂板")
+    public Result insert(@RequestBody Task task){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(task, AddGroup.class, DefaultGroup.class);
+        taskService.insert(task);
+
+        return Result.ok();
+    }
+
+    @PutMapping
+    @ApiOperation("淇敼")
+    @LogOperation("淇敼")
+    public Result update(@RequestBody Task task){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(task, UpdateGroup.class, DefaultGroup.class);
+        taskService.update(task);
+
+        return Result.ok();
+    }
+
+    @DeleteMapping
+    @ApiOperation("鍒犻櫎")
+    @LogOperation("鍒犻櫎")
+    public Result delete(@RequestBody Long[] ids){
+        //鏁堥獙鏁版嵁
+        AssertUtils.isArrayEmpty(ids, "id");
+        taskService.delete(ids);
+
+        return Result.ok();
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/controller/TaskPhaseController.java b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/controller/TaskPhaseController.java
new file mode 100644
index 0000000..d60510f
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/controller/TaskPhaseController.java
@@ -0,0 +1,95 @@
+package com.zt.life.modules.taskReliability.controller;
+
+
+import com.zt.common.annotation.LogOperation;
+import com.zt.common.constant.Constant;
+import com.zt.common.annotation.QueryParam;
+import com.zt.common.db.query.QueryFilter;
+import com.zt.common.servlet.Result;
+import com.zt.common.servlet.PageResult;
+import com.zt.common.validator.AssertUtils;
+import com.zt.common.validator.ValidatorUtils;
+import com.zt.common.validator.group.AddGroup;
+import com.zt.common.validator.group.DefaultGroup;
+import com.zt.common.validator.group.UpdateGroup;
+import com.zt.life.modules.taskReliability.model.TaskPhase;
+import com.zt.life.modules.taskReliability.service.TaskPhaseService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+
+/**
+ * task_phase
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-15
+ */
+@RestController
+@RequestMapping("/taskReliability/TaskPhase/")
+@Api(tags="task_phase")
+public class TaskPhaseController {
+    @Autowired
+    private TaskPhaseService taskPhaseService;
+
+    @GetMapping("page")
+    @ApiOperation("鍒嗛〉")
+    @ApiImplicitParams({
+       @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING),
+        @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING),
+        @ApiImplicitParam(name = "taskId", value = "浠诲姟ID", dataType = Constant.QT.STRING),
+    })
+    public Result<List<TaskPhase>> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+
+        return Result.ok(taskPhaseService.page(queryFilter));
+    }
+
+    @GetMapping("{id}")
+    @ApiOperation("淇℃伅")
+    public Result<TaskPhase> get(@PathVariable("id") Long id){
+        TaskPhase data = taskPhaseService.get(id);
+
+        return Result.ok(data);
+    }
+
+    @PostMapping
+    @ApiOperation("鏂板")
+    @LogOperation("鏂板")
+    public Result insert(@RequestBody TaskPhase taskPhase){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(taskPhase, AddGroup.class, DefaultGroup.class);
+        taskPhaseService.insert(taskPhase);
+
+        return Result.ok();
+    }
+
+    @PutMapping
+    @ApiOperation("淇敼")
+    @LogOperation("淇敼")
+    public Result update(@RequestBody TaskPhase taskPhase){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(taskPhase, UpdateGroup.class, DefaultGroup.class);
+        taskPhaseService.update(taskPhase);
+
+        return Result.ok();
+    }
+
+    @DeleteMapping
+    @ApiOperation("鍒犻櫎")
+    @LogOperation("鍒犻櫎")
+    public Result delete(@RequestBody Long[] ids){
+        //鏁堥獙鏁版嵁
+        AssertUtils.isArrayEmpty(ids, "id");
+        taskPhaseService.delete(ids);
+
+        return Result.ok();
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/controller/TaskPhaseModelController.java b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/controller/TaskPhaseModelController.java
new file mode 100644
index 0000000..2588615
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/controller/TaskPhaseModelController.java
@@ -0,0 +1,96 @@
+package com.zt.life.modules.taskReliability.controller;
+
+
+import com.zt.common.annotation.LogOperation;
+import com.zt.common.constant.Constant;
+import com.zt.common.annotation.QueryParam;
+import com.zt.common.db.query.QueryFilter;
+import com.zt.common.servlet.Result;
+import com.zt.common.servlet.PageResult;
+import com.zt.common.validator.AssertUtils;
+import com.zt.common.validator.ValidatorUtils;
+import com.zt.common.validator.group.AddGroup;
+import com.zt.common.validator.group.DefaultGroup;
+import com.zt.common.validator.group.UpdateGroup;
+import com.zt.life.modules.taskReliability.model.TaskPhaseModel;
+import com.zt.life.modules.taskReliability.service.TaskPhaseModelService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+
+/**
+ * task_phase_model
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-15
+ */
+@RestController
+@RequestMapping("/taskReliability/TaskPhaseModel/")
+@Api(tags="task_phase_model")
+public class TaskPhaseModelController {
+    @Autowired
+    private TaskPhaseModelService taskPhaseModelService;
+
+    @GetMapping("page")
+    @ApiOperation("鍒嗛〉")
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING),
+        @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING),
+        @ApiImplicitParam(name = "productId", value = "浜у搧鑺傜偣Id", dataType = Constant.QT.STRING),
+        @ApiImplicitParam(name = "phaseId", value = "闃舵Id", dataType = Constant.QT.STRING),
+    })
+    public Result<List<TaskPhaseModel>> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+
+        return Result.ok(taskPhaseModelService.page(queryFilter));
+    }
+
+    @GetMapping("{id}")
+    @ApiOperation("淇℃伅")
+    public Result<TaskPhaseModel> get(@PathVariable("id") Long id){
+        TaskPhaseModel data = taskPhaseModelService.get(id);
+
+        return Result.ok(data);
+    }
+
+    @PostMapping
+    @ApiOperation("鏂板")
+    @LogOperation("鏂板")
+    public Result insert(@RequestBody TaskPhaseModel taskPhaseModel){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(taskPhaseModel, AddGroup.class, DefaultGroup.class);
+        taskPhaseModelService.insert(taskPhaseModel);
+
+        return Result.ok();
+    }
+
+    @PutMapping
+    @ApiOperation("淇敼")
+    @LogOperation("淇敼")
+    public Result update(@RequestBody TaskPhaseModel taskPhaseModel){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(taskPhaseModel, UpdateGroup.class, DefaultGroup.class);
+        taskPhaseModelService.update(taskPhaseModel);
+
+        return Result.ok();
+    }
+
+    @DeleteMapping
+    @ApiOperation("鍒犻櫎")
+    @LogOperation("鍒犻櫎")
+    public Result delete(@RequestBody Long[] ids){
+        //鏁堥獙鏁版嵁
+        AssertUtils.isArrayEmpty(ids, "id");
+        taskPhaseModelService.delete(ids);
+
+        return Result.ok();
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/dao/TaskDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/dao/TaskDao.java
new file mode 100644
index 0000000..ba4daf9
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/dao/TaskDao.java
@@ -0,0 +1,23 @@
+package com.zt.life.modules.taskReliability.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.taskReliability.model.Task;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * task
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-15
+ */
+@Mapper
+public interface TaskDao extends BaseDao<Task> {
+
+    List<Task> getList(Map<String, Object> params);
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/dao/TaskPhaseDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/dao/TaskPhaseDao.java
new file mode 100644
index 0000000..4cf7e50
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/dao/TaskPhaseDao.java
@@ -0,0 +1,23 @@
+package com.zt.life.modules.taskReliability.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.taskReliability.model.TaskPhase;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * task_phase
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-15
+ */
+@Mapper
+public interface TaskPhaseDao extends BaseDao<TaskPhase> {
+
+    List<TaskPhase> getList(Map<String, Object> params);
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/dao/TaskPhaseModelDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/dao/TaskPhaseModelDao.java
new file mode 100644
index 0000000..8499209
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/dao/TaskPhaseModelDao.java
@@ -0,0 +1,23 @@
+package com.zt.life.modules.taskReliability.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.taskReliability.model.TaskPhaseModel;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * task_phase_model
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-15
+ */
+@Mapper
+public interface TaskPhaseModelDao extends BaseDao<TaskPhaseModel> {
+
+    List<TaskPhaseModel> getList(Map<String, Object> params);
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/Task.java b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/Task.java
new file mode 100644
index 0000000..2f76607
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/Task.java
@@ -0,0 +1,42 @@
+package com.zt.life.modules.taskReliability.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.common.entity.BusiEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * task
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("task")
+public class Task extends BusiEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "浜у搧鑺傜偣ID")
+	private Long productId;
+
+	@ApiModelProperty(value = "浜у搧鐖惰妭鐐硅妭鐐笽D")
+	private Long productPid;
+
+	@ApiModelProperty(value = "浠诲姟鍚嶇О")
+	private String taskName;
+
+	@ApiModelProperty(value = "浠诲姟椤哄簭")
+	private Integer taskSort;
+
+	@ApiModelProperty(value = "澶囨敞")
+	private String remark;
+
+	@ApiModelProperty(value = "")
+	private Integer status;
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/TaskPhase.java b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/TaskPhase.java
new file mode 100644
index 0000000..7f310a4
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/TaskPhase.java
@@ -0,0 +1,48 @@
+package com.zt.life.modules.taskReliability.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.common.entity.BusiEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * task_phase
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("task_phase")
+public class TaskPhase extends BusiEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "浠诲姟ID")
+	private Long taskId;
+
+	@ApiModelProperty(value = "浠诲姟闃舵鍚嶇О")
+	private String phaseName;
+
+	@ApiModelProperty(value = "闃舵鏃堕暱")
+	private Double phaseDuration;
+
+	@ApiModelProperty(value = "闃舵鏃堕��")
+	private Double phaseSpeed;
+
+	@ApiModelProperty(value = "闃舵椤哄簭")
+	private Integer phaseSort;
+
+	@ApiModelProperty(value = "澶囨敞")
+	private String remark;
+
+	@ApiModelProperty(value = "")
+	private Integer status;
+
+	@TableField(exist = false)
+	private Long productId;
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/TaskPhaseModel.java b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/TaskPhaseModel.java
new file mode 100644
index 0000000..ccdb590
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/model/TaskPhaseModel.java
@@ -0,0 +1,45 @@
+package com.zt.life.modules.taskReliability.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.common.entity.BusiEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * task_phase_model
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-15
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("task_phase_model")
+public class TaskPhaseModel extends BusiEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "闃舵ID")
+	private Long phaseId;
+
+	@ApiModelProperty(value = "浜у搧鑺傜偣ID")
+	private Long productId;
+
+	@ApiModelProperty(value = "妯″瀷ID")
+	private Long modelId;
+
+	@ApiModelProperty(value = "澶囨敞")
+	private String remark;
+
+	@ApiModelProperty(value = "")
+	private Integer status;
+
+	@TableField(exist = false)
+	private String system;
+
+	@TableField(exist = false)
+	private String modelName;
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/TaskPhaseModelService.java b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/TaskPhaseModelService.java
new file mode 100644
index 0000000..abeca7a
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/TaskPhaseModelService.java
@@ -0,0 +1,40 @@
+package com.zt.life.modules.taskReliability.service;
+
+import com.zt.common.service.BaseService;
+import com.zt.life.modules.taskReliability.dao.TaskPhaseModelDao;
+import com.zt.life.modules.taskReliability.model.TaskPhaseModel;
+import org.springframework.stereotype.Service;
+import com.zt.common.db.query.QueryFilter;
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+ * task_phase_model
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-15
+ */
+@Service
+public class TaskPhaseModelService  extends BaseService<TaskPhaseModelDao, TaskPhaseModel> {
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param queryFilter
+     * @return
+     */
+    public List<TaskPhaseModel> page(QueryFilter queryFilter) {
+        return baseDao.getList(queryFilter.getQueryParams());
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param ids
+     */
+    public void delete(Long[] ids) {
+        super.deleteLogic(ids);
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/TaskPhaseService.java b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/TaskPhaseService.java
new file mode 100644
index 0000000..96622d2
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/TaskPhaseService.java
@@ -0,0 +1,40 @@
+package com.zt.life.modules.taskReliability.service;
+
+import com.zt.common.service.BaseService;
+import com.zt.life.modules.taskReliability.dao.TaskPhaseDao;
+import com.zt.life.modules.taskReliability.model.TaskPhase;
+import org.springframework.stereotype.Service;
+import com.zt.common.db.query.QueryFilter;
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+ * task_phase
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-15
+ */
+@Service
+public class TaskPhaseService  extends BaseService<TaskPhaseDao, TaskPhase> {
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param queryFilter
+     * @return
+     */
+    public List<TaskPhase> page(QueryFilter queryFilter) {
+        return baseDao.getList(queryFilter.getQueryParams());
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param ids
+     */
+    public void delete(Long[] ids) {
+        super.deleteLogic(ids);
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/TaskService.java b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/TaskService.java
new file mode 100644
index 0000000..9279f67
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/taskReliability/service/TaskService.java
@@ -0,0 +1,40 @@
+package com.zt.life.modules.taskReliability.service;
+
+import com.zt.common.service.BaseService;
+import com.zt.life.modules.taskReliability.dao.TaskDao;
+import com.zt.life.modules.taskReliability.model.Task;
+import org.springframework.stereotype.Service;
+import com.zt.common.db.query.QueryFilter;
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+ * task
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-15
+ */
+@Service
+public class TaskService  extends BaseService<TaskDao, Task> {
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param queryFilter
+     * @return
+     */
+    public List<Task> page(QueryFilter queryFilter) {
+        return baseDao.getList(queryFilter.getQueryParams());
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param ids
+     */
+    public void delete(Long[] ids) {
+        super.deleteLogic(ids);
+    }
+
+}
diff --git a/modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml b/modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml
index 12a7b7d..40c203e 100644
--- a/modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/basicInfo/XhProductModelDao.xml
@@ -67,4 +67,10 @@
           AND a.PID = ${productId}
 
     </select>
+    <select id="getTaskProductList" resultType="com.zt.life.modules.mainPart.basicInfo.model.XhProductModel">
+        select a.name, a.id
+        from product_model a
+        where a.is_delete = 0
+          and a.product_type = 4
+    </select>
 </mapper>
diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/TaskDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskDao.xml
new file mode 100644
index 0000000..801eec2
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskDao.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.zt.life.modules.taskReliability.dao.TaskDao">
+
+    <select id="getList" resultType="com.zt.life.modules.taskReliability.model.Task">
+        select a.*
+        from task a
+        <where>
+            a.is_delete = 0
+            and a.product_id=${productId}
+            <if test="whereSql!=null">
+                and ${whereSql}
+            </if>
+        </where>
+        <if test="orderBySql!=null">
+            ORDER BY ${orderBySql}
+        </if>
+    </select>
+
+</mapper>
diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/TaskPhaseDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskPhaseDao.xml
new file mode 100644
index 0000000..0c9712c
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskPhaseDao.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.zt.life.modules.taskReliability.dao.TaskPhaseDao">
+
+    <select id="getList" resultType="com.zt.life.modules.taskReliability.model.TaskPhase">
+        select a.*
+        from task_phase a
+        <where>
+            a.is_delete = 0
+            and a.task_id=${taskId}
+            <if test="whereSql!=null">
+                and ${whereSql}
+            </if>
+        </where>
+        <if test="orderBySql!=null">
+            ORDER BY ${orderBySql}
+        </if>
+    </select>
+
+</mapper>
diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/TaskPhaseModelDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskPhaseModelDao.xml
new file mode 100644
index 0000000..f5176da
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskPhaseModelDao.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.zt.life.modules.taskReliability.dao.TaskPhaseModelDao">
+
+    <select id="getList" resultType="com.zt.life.modules.taskReliability.model.TaskPhaseModel">
+        SELECT a.id     as productId,
+               a.`NAME` as `system`,
+               c.model_name,
+               b.model_id,
+               b.id
+        FROM product_model a
+                 LEFT JOIN task_phase_model b
+                           ON b.product_id = a.id
+                               AND b.phase_id = ${phaseId}
+                 LEFT JOIN model_rbd c ON c.id = b.model_id
+        WHERE a.pid = ${productId}
+          AND a.is_delete = 0
+    </select>
+
+</mapper>
diff --git a/web/src/views/modules/basicInfo/ParamData.vue b/web/src/views/modules/basicInfo/ParamData.vue
index 2d28874..56d6f3a 100644
--- a/web/src/views/modules/basicInfo/ParamData.vue
+++ b/web/src/views/modules/basicInfo/ParamData.vue
@@ -8,8 +8,8 @@
       </el-col>
       <el-col :span="19">
         <div class="mod-basicInfo-paramData}">
-          <zt-table-wraper ref="tableObj" defaultNotQuery="true" :query-url=queryUrl
-                           :delete-url=deleteUrl
+          <zt-table-wraper ref="tableObj" defaultNotQuery="true" query-url="/basicInfo/ParamData/page"
+                           delete-url="/basicInfo/ParamData"
                            @dataLoaded="dataLoaded"
                            v-slot="{ table }"
                            :paging='false'>
@@ -252,8 +252,6 @@
   export default {
     data() {
       return {
-        queryUrl: '/basicInfo/ParamData/page',
-        deleteUrl: '/basicInfo/ParamData',
         pageCode: '',
         key: '',
         typeS: '',
diff --git a/web/src/views/modules/basicInfo/SelectTyModel.vue b/web/src/views/modules/basicInfo/SelectTyModel.vue
index 894e6ae..2b5c2d8 100644
--- a/web/src/views/modules/basicInfo/SelectTyModel.vue
+++ b/web/src/views/modules/basicInfo/SelectTyModel.vue
@@ -13,6 +13,7 @@
                     @selection-change="changeRow">
             <el-table-column type="selection" width="40" align="center"/>
             <el-table-column prop="name" label="鍚嶇О"/>
+            <zt-table-column-dict prop="nodeType" label="鑺傜偣绫诲瀷" dict="product"/>
           </el-table>
         </zt-table-wraper>
       </div>
diff --git a/web/src/views/modules/taskReliability/SelectModelRbd.vue b/web/src/views/modules/taskReliability/SelectModelRbd.vue
new file mode 100644
index 0000000..ba1c9cb
--- /dev/null
+++ b/web/src/views/modules/taskReliability/SelectModelRbd.vue
@@ -0,0 +1,61 @@
+<template>
+  <zt-dialog ref="dialog" column="2" title="閫夋嫨绯荤粺妯″瀷" append-to-body :editAble="false" :hasConfirm="false">
+    <el-card shadow="never" class="aui-card--fill">
+      <div class="mod-taskReliability-modelRbd}">
+        <zt-table-wraper ref="tableObj" query-url="/taskReliability/ModelRbd/page"
+                         :paging='false'
+                         v-slot="{ table }">
+          <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
+          </el-form>
+          <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:30}"
+                    border @row-dblclick="selectModel"
+                    @selection-change="table.selectionChangeHandle">
+            <el-table-column prop="modelName" label="妯″瀷鍚嶇О"/>
+          </el-table>
+          <!-- 寮圭獥, 鏂板 / 淇敼 -->
+        </zt-table-wraper>
+      </div>
+    </el-card>
+  </zt-dialog>
+</template>
+
+<script>
+
+  export default {
+    name: 'SelectModelRbd',
+    data() {
+      return {
+        dataForm: {
+          id: '',
+          modelName: '',
+          modelState: '',
+          productId: '',
+          phaseId: '',
+          modelId: '',
+        }
+      }
+    },
+    mounted() {
+
+    },
+    components: {},
+    methods: {
+      init(param) {
+        this.dataForm.productId = param.row.productId
+        this.dataForm.phaseId = param.phaseId
+        this.dataForm.id = param.row.id
+      },
+      async selectModel(row) {
+        console.log(this.dataForm)
+        this.dataForm.modelId = row.id
+        this.dataForm.productId = row.productId
+        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/taskReliability/TaskPhaseModel/', this.dataForm)
+        if (res.success) {
+          await this.$tip.success()
+          this.$refs.dialog.close()
+          this.$emit('setModel')
+        }
+      }
+    }
+  }
+</script>
diff --git a/web/src/views/modules/taskReliability/Task-AddOrUpdate.vue b/web/src/views/modules/taskReliability/Task-AddOrUpdate.vue
new file mode 100644
index 0000000..c0b04d5
--- /dev/null
+++ b/web/src/views/modules/taskReliability/Task-AddOrUpdate.vue
@@ -0,0 +1,52 @@
+<template>
+  <zt-dialog ref="dialog" @confirm="formSubmit">
+    <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
+      <zt-form-item label="浠诲姟鍚嶇О" prop="taskName" rules="required">
+        <el-input v-model="dataForm.taskName"></el-input>
+      </zt-form-item>
+      <zt-form-item label="浠诲姟椤哄簭" prop="taskSort" rules="required">
+        <el-input v-model="dataForm.taskSort"></el-input>
+      </zt-form-item>
+    </el-form>
+  </zt-dialog>
+</template>
+
+<script>
+  export default {
+    data() {
+      return {
+        dataForm: {
+          id: '',
+          productId: '',
+          productPid: '',
+          taskName: '',
+          taskSort: '',
+          remark: '',
+          status: ''
+        }
+      }
+    },
+    methods: {
+      init(id,param){
+        this.dataForm.productId =param.productId
+      },
+      // 鑾峰彇淇℃伅
+      async getInfo() {
+        let res = await this.$http.get(`/taskReliability/Task/${this.dataForm.id}`)
+        this.dataForm = {
+          ...this.dataForm,
+          ...res.data
+        }
+      },
+      // 琛ㄥ崟鎻愪氦
+      async formSubmit() {
+        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/taskReliability/Task/', this.dataForm)
+        if (res.success) {
+          await this.$tip.success()
+          this.$refs.dialog.close()
+          this.$emit('refreshDataList')
+        }
+      }
+    }
+  }
+</script>
diff --git a/web/src/views/modules/taskReliability/Task.vue b/web/src/views/modules/taskReliability/Task.vue
new file mode 100644
index 0000000..53dc7af
--- /dev/null
+++ b/web/src/views/modules/taskReliability/Task.vue
@@ -0,0 +1,71 @@
+<template>
+  <div class="mod-taskReliability-task}">
+    <div>
+      浜у搧鑺傜偣锛�
+      <zt-select v-model="dataForm.productId" :datas="productList" @change="onProductSelected"/>
+    </div>
+    <zt-table-wraper ref="tableObj" query-url="/taskReliability/Task/page" defaultNotQuery="true"  :paging='false' delete-url="/taskReliability/Task/"
+                     v-slot="{ table }">
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
+        <el-form-item>
+          <zt-button type="add" @click="add()" />
+          <zt-button type="delete" @click="table.deleteHandle()"/>
+        </el-form-item>
+      </el-form>
+      <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}"
+                @row-click="selectTask"
+                border @selection-change="table.selectionChangeHandle">
+        <el-table-column type="selection" width="40" align="center"/>
+        <el-table-column prop="taskName" label="浠诲姟鍚嶇О"/>
+        <el-table-column prop="taskSort" label="浠诲姟椤哄簭"/>
+        <zt-table-column-handle :table="table"
+                                delete-perm="taskReliability::delete"/>
+      </el-table>
+      <!-- 寮圭獥, 鏂板 / 淇敼 -->
+      <add-or-update @refreshDataList="table.query" ref="AddOrUpdate"/>
+    </zt-table-wraper>
+  </div>
+</template>
+
+<script>
+  import AddOrUpdate from './Task-AddOrUpdate'
+
+  export default {
+    name: 'Task',
+    data() {
+      return {
+        productList: [],
+        dataForm: {
+          productId: ''
+        }
+      }
+    },
+    components: {
+      AddOrUpdate
+    },
+    mounted() {
+      this.getTaskProductList()
+    },
+    methods: {
+      init() {
+
+      },
+      add() {
+        this.$refs.AddOrUpdate.$refs.dialog.init(null,{productId: this.dataForm.productId})
+      },
+      selectTask(row){
+        this.$emit('onTaskSelected',row)
+      },
+      async getTaskProductList() {
+        let res = await this.$http.get('/basicInfo/XhProductModel/getTaskProductList')
+        this.productList = res.data
+        console.log(this.productList, ' async getTaskProductList()')
+      },
+      onProductSelected(data){
+        console.log(data, ' onProductSelected(data)')
+        this.dataForm.productId = data.id
+        this.$refs.tableObj.query()
+      }
+    }
+  }
+</script>
diff --git a/web/src/views/modules/taskReliability/TaskPhase-AddOrUpdate.vue b/web/src/views/modules/taskReliability/TaskPhase-AddOrUpdate.vue
new file mode 100644
index 0000000..295acdd
--- /dev/null
+++ b/web/src/views/modules/taskReliability/TaskPhase-AddOrUpdate.vue
@@ -0,0 +1,63 @@
+<template>
+  <zt-dialog ref="dialog" @confirm="formSubmit">
+    <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
+      <zt-form-item label="浠诲姟闃舵鍚嶇О" prop="phaseName" rules="required">
+        <el-input v-model="dataForm.phaseName"></el-input>
+      </zt-form-item>
+      <zt-form-item label="闃舵鏃堕暱" prop="phaseDuration">
+        <el-input v-model="dataForm.phaseDuration"></el-input>
+      </zt-form-item>
+      <zt-form-item label="闃舵鏃堕��" prop="phaseSpeed">
+        <el-input v-model="dataForm.phaseSpeed"></el-input>
+      </zt-form-item>
+      <zt-form-item label="闃舵椤哄簭" prop="phaseSort">
+        <el-input v-model="dataForm.phaseSort"></el-input>
+      </zt-form-item>
+      <zt-form-item label="澶囨敞" prop="remark">
+        <el-input v-model="dataForm.remark"></el-input>
+      </zt-form-item>
+    </el-form>
+  </zt-dialog>
+</template>
+
+<script>
+  export default {
+    data() {
+      return {
+        dataForm: {
+          id: '',
+          taskId: '',
+          phaseName: '',
+          phaseDuration: '',
+          phaseSpeed: '',
+          phaseSort: '',
+          remark: '',
+          productId: ''
+        }
+      }
+    },
+    methods: {
+      init(id,param){
+        this.dataForm.taskId = param.taskId
+        this.dataForm.productId = param.productId
+      },
+      // 鑾峰彇淇℃伅
+      async getInfo() {
+        let res = await this.$http.get(`/taskReliability/TaskPhase/${this.dataForm.id}`)
+        this.dataForm = {
+          ...this.dataForm,
+          ...res.data
+        }
+      },
+      // 琛ㄥ崟鎻愪氦
+      async formSubmit() {
+        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/taskReliability/TaskPhase/', this.dataForm)
+        if (res.success) {
+          await this.$tip.success()
+          this.$refs.dialog.close()
+          this.$emit('refreshDataList')
+        }
+      }
+    }
+  }
+</script>
diff --git a/web/src/views/modules/taskReliability/TaskPhase.vue b/web/src/views/modules/taskReliability/TaskPhase.vue
new file mode 100644
index 0000000..f1f2dd8
--- /dev/null
+++ b/web/src/views/modules/taskReliability/TaskPhase.vue
@@ -0,0 +1,85 @@
+<template>
+  <div>
+    <el-row :gutter="10">
+      <el-col :span="6">
+        <div class="fa-card-a">
+          <task @onTaskSelected="onTaskSelected"/>
+        </div>
+      </el-col>
+      <el-col :span="12">
+        <div class="mod-taskReliability-taskPhase}">
+          <zt-table-wraper ref="tableObj" defaultNotQuery="true" query-url="/taskReliability/TaskPhase/page"
+                           delete-url="/taskReliability/TaskPhase/"
+                           :paging='false' v-slot="{ table }">
+            <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
+              <el-form-item>
+                <zt-button type="add" @click="add()"/>
+                <zt-button type="delete" @click="table.deleteHandle()"/>
+              </el-form-item>
+            </el-form>
+            <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:70}"
+                      border @row-click="selectPhase" @selection-change="table.selectionChangeHandle">
+              <el-table-column type="selection" width="40" align="center"/>
+              <el-table-column prop="phaseName" label="浠诲姟闃舵鍚嶇О"/>
+              <el-table-column prop="phaseDuration" label="闃舵鏃堕暱"/>
+              <el-table-column prop="phaseSpeed" label="闃舵鏃堕��"/>
+              <el-table-column prop="phaseSort" label="闃舵椤哄簭"/>
+              <zt-table-column-handle :table="table"
+                                      delete-perm="taskReliability::delete"/>
+            </el-table>
+            <!-- 寮圭獥, 鏂板 / 淇敼 -->
+            <add-or-update @refreshDataList="table.query" ref="AddOrUpdate"/>
+          </zt-table-wraper>
+        </div>
+      </el-col>
+      <el-col :span="6">
+        <div class="fa-card-a">
+          <task-phase-model ref="model"/>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+  import AddOrUpdate from './TaskPhase-AddOrUpdate'
+  import Task from "./Task";
+  import TaskPhaseModel from "./TaskPhaseModel";
+
+  export default {
+    data() {
+      return {
+        dataForm: {
+          taskId: '',
+          productId: ''
+        }
+      }
+    },
+    components: {
+      TaskPhaseModel,
+      Task,
+      AddOrUpdate
+    },
+    methods: {
+      add() {
+        this.$refs.AddOrUpdate.$refs.dialog.init(null, {
+          taskId: this.dataForm.taskId,
+          productId: this.dataForm.productId
+        })
+      },
+      onTaskSelected(row) {
+        this.dataForm.taskId = row.id
+        this.dataForm.productId = row.productId
+        this.$refs.tableObj.query()
+      },
+      selectPhase(row) {
+        this.$emit('selectPhase', row)
+        let param = {
+          row: row,
+          productId: this.dataForm.productId
+        }
+        this.$refs.model.init(param)
+      },
+    }
+  }
+</script>
diff --git a/web/src/views/modules/taskReliability/TaskPhaseModel.vue b/web/src/views/modules/taskReliability/TaskPhaseModel.vue
new file mode 100644
index 0000000..8240e77
--- /dev/null
+++ b/web/src/views/modules/taskReliability/TaskPhaseModel.vue
@@ -0,0 +1,65 @@
+<template>
+  <div class="mod-taskReliability-taskPhaseModel}">
+    <zt-table-wraper ref="tableObj" defaultNotQuery="true" query-url="/taskReliability/TaskPhaseModel/page"
+                     :paging='false'
+                     delete-url="/taskReliability/TaskPhaseModel/" v-slot="{ table }">
+      <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
+        <el-form-item>
+        </el-form-item>
+      </el-form>
+      <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px"
+                v-adaptive="{bottomOffset:70}" border @selection-change="table.selectionChangeHandle">
+        <el-table-column prop="system" label="绯荤粺"/>
+        <el-table-column prop="modelName" label="绯荤粺妯″瀷"/>
+        <zt-table-column-handle :table="table" edit-perm="taskReliability:update"
+                                delete-perm="taskReliability::delete" :has-view="false">
+          <template v-slot="{ row }">
+            <zt-table-button @click="selectModel(row)">閫夋嫨妯″瀷</zt-table-button>
+          </template>
+        </zt-table-column-handle>
+      </el-table>
+      <select-model-rbd ref="SelectModelRbd" @setModel="selectModelRbd"></select-model-rbd>
+    </zt-table-wraper>
+  </div>
+</template>
+
+<script>
+  import SelectModelRbd from "./SelectModelRbd";
+
+  export default {
+    name: 'TaskPhaseModel',
+    data() {
+      return {
+        dataForm: {
+          phaseId: '',
+          modelName: '',
+          productId: '',
+          modelId: '',
+        }
+      }
+    },
+    components: {
+      SelectModelRbd
+    },
+    methods: {
+      init(param) {
+        console.log(param, '')
+        this.dataForm.phaseId = param.row.id
+        this.dataForm.productId = param.productId
+        this.$refs.tableObj.query()
+      },
+      selectModel(row) {
+        console.log(row, 'selectModel');
+        let param = {
+          row: row,
+          phaseId: this.dataForm.phaseId
+        }
+        this.$refs.SelectModelRbd.$refs.dialog.init(param)
+      },
+      selectModelRbd(row) {
+        console.log(row, 'selectModelRbd')
+        this.$refs.tableObj.query()
+      }
+    }
+  }
+</script>

--
Gitblit v1.9.1