From 652ec7d6dfdee121704961847fae3a3a5be3f5b6 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期一, 01 四月 2024 15:26:15 +0800
Subject: [PATCH] 修改

---
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/OperatCondit.java                     |   36 ++
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sysPictureBase/service/SysPictureBaseService.java           |   10 
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/OperatConditController.java      |   95 +++++
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sysPictureBase/dao/SysPictureBaseDao.java                   |    4 
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/TaskPhaseModelController.java    |   28 -
 web/src/views/modules/taskReliability/OperatCondit.vue                                                                  |   89 ++++
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/OperatConditModelController.java |   96 +++++
 web/src/views/modules/taskReliability/OperatConditModel.vue                                                             |   63 +++
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/OperatConditModelDao.java               |   23 +
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/OperatConditModelService.java       |   42 ++
 modules/mainPart/src/main/resources/mapper/taskReliability/ModelRbdDao.xml                                              |   15 
 web/src/views/modules/taskReliability/TaskPhaseModel.vue                                                                |  119 ++++-
 modules/mainPart/src/main/resources/mapper/taskReliability/TaskPhaseModelDao.xml                                        |   39 -
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/OperatConditDao.java                    |   23 +
 web/src/views/modules/basicInfo/XhProductModel-AddOrUpdate.vue                                                          |   16 
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sysPictureBase/controller/SysPictureBaseController.java     |   15 
 web/src/views/modules/basicInfo/TyProductModel-AddOrUpdate.vue                                                          |   21 
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/OperatConditService.java            |   40 ++
 web/src/views/modules/basicInfo/SelectPicture.vue                                                                       |    6 
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/TaskPhase.java                        |    4 
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/OperatConditModel.java                |   56 +++
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/ModelRbd.java                         |    4 
 web/src/views/modules/taskReliability/TaskPhase-AddOrUpdate.vue                                                         |   17 
 web/src/views/modules/taskReliability/TaskPhase.vue                                                                     |   26 +
 modules/mainPart/src/main/resources/mapper/taskReliability/OperatConditModelDao.xml                                     |   36 ++
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/TaskPhaseModel.java                   |   31 
 web/src/views/modules/taskReliability/SelectModelRbd.vue                                                                |   19 
 modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/TaskPhaseModelService.java          |    2 
 modules/mainPart/src/main/resources/mapper/sysPictureBase/SysPictureBaseDao.xml                                         |   11 
 web/src/views/modules/sysPictureBase/SysPictureBase-AddOrUpdate.vue                                                     |    4 
 web/src/views/modules/taskReliability/ModelRbd.vue                                                                      |    2 
 web/src/views/modules/taskReliability/OperatCondit-AddOrUpdate.vue                                                      |   50 ++
 modules/mainPart/src/main/resources/mapper/taskReliability/OperatConditDao.xml                                          |   21 +
 33 files changed, 925 insertions(+), 138 deletions(-)

diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sysPictureBase/controller/SysPictureBaseController.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sysPictureBase/controller/SysPictureBaseController.java
index 36df92b..2288545 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sysPictureBase/controller/SysPictureBaseController.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sysPictureBase/controller/SysPictureBaseController.java
@@ -50,7 +50,8 @@
     @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 = "productType", value = "妫�绱㈠叧閿瓧", dataType = Constant.QT.STRING, format = "CONTENT_TYPE^LK"), @ApiImplicitParam(name = "systemMark", value = "绯荤粺鏍囪瘑", dataType = Constant.QT.STRING, format = "SYSTEM_MARK^LK")})
+            @ApiImplicitParam(name = "productType", value = "妫�绱㈠叧閿瓧", dataType = Constant.QT.STRING, format = "PRODUCT_TYPE^EQ"),
+            @ApiImplicitParam(name = "systemMark", value = "绯荤粺鏍囪瘑", dataType = Constant.QT.STRING, format = "SYSTEM_MARK^LK")})
     public Result<List<SysPictureBase>> page(@ApiIgnore @QueryParam QueryFilter queryFilter) {
 
         return Result.ok(sysPictureBaseService.page(queryFilter));
@@ -69,6 +70,7 @@
     public Result save(@RequestBody MultipartFile file, Long id, Integer isDefault,
                        String name, String contentType, Integer productType,  String remark) {
         SysPictureBase sysPictureBase;
+        SysPictureBase pictureBase = sysPictureBaseService.getDefaultImg(productType);
         if (id != 0) {
             sysPictureBase = sysPictureBaseService.get(id);
             sysPictureBase.setIsDefault(isDefault);
@@ -87,8 +89,10 @@
             sysPictureBaseService.insert(sysPictureBase);
         }
         if (sysPictureBase.getIsDefault()==1){
-            sysPictureBaseService.updateByDefault(sysPictureBase.getId(),sysPictureBase.getProductType());
-            sysPictureBaseService.updateProdeuctImg(sysPictureBase.getId(),sysPictureBase.getProductType());
+            if (!sysPictureBase.getId().equals(pictureBase.getId())){
+                sysPictureBaseService.updateByDefault(sysPictureBase.getId(),sysPictureBase.getProductType());
+                sysPictureBaseService.updateProdeuctImg(sysPictureBase.getId(),sysPictureBase.getProductType(),pictureBase.getId());
+            }
         }
         if (file != null) {
             BufferedImage bufferedImage = null;
@@ -148,6 +152,11 @@
         }
     }
 
+    @GetMapping("/getDefaultImg")
+    public Result<SysPictureBase> getDefaultImg(Integer productType) {
+        SysPictureBase data = sysPictureBaseService.getDefaultImg(productType);
+        return Result.ok(data);
+    }
     @DeleteMapping
     @ApiOperation("鍒犻櫎")
     @LogOperation("鍒犻櫎")
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sysPictureBase/dao/SysPictureBaseDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sysPictureBase/dao/SysPictureBaseDao.java
index 804675e..fa98648 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sysPictureBase/dao/SysPictureBaseDao.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sysPictureBase/dao/SysPictureBaseDao.java
@@ -22,5 +22,7 @@
 
     void updateByDefault(Long id, Integer productType);
 
-    void updateProdeuctImg(Long id, Integer productType);
+    void updateProdeuctImg(Long id, Integer productType, Long pictureBaseId);
+
+    SysPictureBase getDefaultImg(Integer productType);
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sysPictureBase/service/SysPictureBaseService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sysPictureBase/service/SysPictureBaseService.java
index 7a8eeb4..4d1a738 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sysPictureBase/service/SysPictureBaseService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/sysPictureBase/service/SysPictureBaseService.java
@@ -8,6 +8,8 @@
 import org.springframework.stereotype.Service;
 import com.zt.common.db.query.QueryFilter;
 
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Null;
 import java.util.List;
 
 
@@ -46,7 +48,11 @@
         baseDao.updateByDefault(id,productType);
     }
 
-    public void updateProdeuctImg(Long id, Integer productType) {
-        baseDao.updateProdeuctImg(id,productType);
+    public void updateProdeuctImg(Long id, Integer productType,Long pictureBaseId) {
+        baseDao.updateProdeuctImg(id,productType,pictureBaseId);
+    }
+
+    public SysPictureBase getDefaultImg(Integer productType) {
+        return baseDao.getDefaultImg(productType);
     }
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/OperatConditController.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/OperatConditController.java
new file mode 100644
index 0000000..88b5139
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/OperatConditController.java
@@ -0,0 +1,95 @@
+package com.zt.life.modules.mainPart.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.mainPart.taskReliability.model.OperatCondit;
+import com.zt.life.modules.mainPart.taskReliability.service.OperatConditService;
+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;
+
+
+/**
+ * operat_condit
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-29
+ */
+@RestController
+@RequestMapping("/taskReliability/OperatCondit/")
+@Api(tags="operat_condit")
+public class OperatConditController {
+    @Autowired
+    private OperatConditService operatConditService;
+
+    @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),
+    })
+    public Result<List<OperatCondit>> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+
+        return Result.ok(operatConditService.page(queryFilter));
+    }
+
+    @GetMapping("{id}")
+    @ApiOperation("淇℃伅")
+    public Result<OperatCondit> get(@PathVariable("id") Long id){
+        OperatCondit data = operatConditService.get(id);
+
+        return Result.ok(data);
+    }
+
+    @PostMapping
+    @ApiOperation("鏂板")
+    @LogOperation("鏂板")
+    public Result insert(@RequestBody OperatCondit operatCondit){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(operatCondit, AddGroup.class, DefaultGroup.class);
+        operatConditService.insert(operatCondit);
+
+        return Result.ok();
+    }
+
+    @PutMapping
+    @ApiOperation("淇敼")
+    @LogOperation("淇敼")
+    public Result update(@RequestBody OperatCondit operatCondit){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(operatCondit, UpdateGroup.class, DefaultGroup.class);
+        operatConditService.update(operatCondit);
+
+        return Result.ok();
+    }
+
+    @DeleteMapping
+    @ApiOperation("鍒犻櫎")
+    @LogOperation("鍒犻櫎")
+    public Result delete(@RequestBody Long[] ids){
+        //鏁堥獙鏁版嵁
+        AssertUtils.isArrayEmpty(ids, "id");
+        operatConditService.delete(ids);
+
+        return Result.ok();
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/OperatConditModelController.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/OperatConditModelController.java
new file mode 100644
index 0000000..8db79eb
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/OperatConditModelController.java
@@ -0,0 +1,96 @@
+package com.zt.life.modules.mainPart.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.mainPart.taskReliability.model.OperatConditModel;
+import com.zt.life.modules.mainPart.taskReliability.service.OperatConditModelService;
+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;
+
+
+/**
+ * operat_condit_model
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-29
+ */
+@RestController
+@RequestMapping("/taskReliability/OperatConditModel/")
+@Api(tags="operat_condit_model")
+public class OperatConditModelController {
+    @Autowired
+    private OperatConditModelService operatConditModelService;
+
+    @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 = "operatConditId", value = "闃舵Id", dataType = Constant.QT.STRING),
+    })
+    public Result<List<OperatConditModel>> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+
+        return Result.ok(operatConditModelService.page(queryFilter));
+    }
+
+    @GetMapping("{id}")
+    @ApiOperation("淇℃伅")
+    public Result<OperatConditModel> get(@PathVariable("id") Long id){
+        OperatConditModel data = operatConditModelService.get(id);
+
+        return Result.ok(data);
+    }
+
+    @PostMapping
+    @ApiOperation("鏂板")
+    @LogOperation("鏂板")
+    public Result insert(@RequestBody OperatConditModel operatConditModel){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(operatConditModel, AddGroup.class, DefaultGroup.class);
+        operatConditModelService.insert(operatConditModel);
+
+        return Result.ok();
+    }
+
+    @PutMapping
+    @ApiOperation("淇敼")
+    @LogOperation("淇敼")
+    public Result update(@RequestBody OperatConditModel operatConditModel){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(operatConditModel, UpdateGroup.class, DefaultGroup.class);
+        operatConditModelService.update(operatConditModel);
+
+        return Result.ok();
+    }
+
+    @DeleteMapping
+    @ApiOperation("鍒犻櫎")
+    @LogOperation("鍒犻櫎")
+    public Result delete(@RequestBody Long[] ids){
+        //鏁堥獙鏁版嵁
+        AssertUtils.isArrayEmpty(ids, "id");
+        operatConditModelService.delete(ids);
+
+        return Result.ok();
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/TaskPhaseModelController.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/TaskPhaseModelController.java
index f6959f7..b3999c3 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/TaskPhaseModelController.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/controller/TaskPhaseModelController.java
@@ -11,6 +11,7 @@
 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.mainPart.basicInfo.model.ParamData;
 import com.zt.life.modules.mainPart.taskReliability.model.TaskPhaseModel;
 import com.zt.life.modules.mainPart.taskReliability.service.TaskPhaseModelService;
 import io.swagger.annotations.Api;
@@ -58,25 +59,16 @@
         return Result.ok(data);
     }
 
-    @PostMapping
-    @ApiOperation("鏂板")
-    @LogOperation("鏂板")
-    public Result insert(@RequestBody TaskPhaseModel taskPhaseModel){
+    @PostMapping("save")
+    public Result save(@RequestBody TaskPhaseModel model) {
         //鏁堥獙鏁版嵁
-        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);
-
+        for (TaskPhaseModel taskPhaseModel : model.getDataThreeList()) {
+            if (taskPhaseModel.getId()!=null){
+                taskPhaseModelService.update(taskPhaseModel);
+            }else{
+                taskPhaseModelService.insert(taskPhaseModel);
+            }
+        }
         return Result.ok();
     }
 
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/OperatConditDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/OperatConditDao.java
new file mode 100644
index 0000000..4dfde6d
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/OperatConditDao.java
@@ -0,0 +1,23 @@
+package com.zt.life.modules.mainPart.taskReliability.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.mainPart.taskReliability.model.OperatCondit;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * operat_condit
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-29
+ */
+@Mapper
+public interface OperatConditDao extends BaseDao<OperatCondit> {
+
+    List<OperatCondit> getList(Map<String, Object> params);
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/OperatConditModelDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/OperatConditModelDao.java
new file mode 100644
index 0000000..b335a79
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/dao/OperatConditModelDao.java
@@ -0,0 +1,23 @@
+package com.zt.life.modules.mainPart.taskReliability.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.mainPart.taskReliability.model.OperatConditModel;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * operat_condit_model
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-29
+ */
+@Mapper
+public interface OperatConditModelDao extends BaseDao<OperatConditModel> {
+
+    List<OperatConditModel> getList(Map<String, Object> params);
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/ModelRbd.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/ModelRbd.java
index bbcc973..65c489d 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/ModelRbd.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/ModelRbd.java
@@ -51,6 +51,10 @@
 	private String modelState;
 
 	@TableField(exist = false)
+	@ApiModelProperty(value = "琚紩鐢ㄦ暟閲�")
+	private Integer quoteNum ;
+
+	@TableField(exist = false)
 	@ApiModelProperty(value = "璁块棶鍚庣缃戠珯鍓嶇紑")
 	private String urlPref;
 
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/OperatCondit.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/OperatCondit.java
new file mode 100644
index 0000000..421c7d7
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/OperatCondit.java
@@ -0,0 +1,36 @@
+package com.zt.life.modules.mainPart.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;
+
+/**
+ * operat_condit
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-29
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("operat_condit")
+public class OperatCondit extends BusiEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "浜у搧鑺傜偣ID(鎬讳綋)")
+	private Long productId;
+
+	@ApiModelProperty(value = "宸ュ喌鍚嶇О")
+	private String name;
+
+	@ApiModelProperty(value = "澶囨敞")
+	private String remark;
+
+	@ApiModelProperty(value = "")
+	private Integer status;
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/OperatConditModel.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/OperatConditModel.java
new file mode 100644
index 0000000..9cf3d4e
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/OperatConditModel.java
@@ -0,0 +1,56 @@
+package com.zt.life.modules.mainPart.taskReliability.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zt.common.entity.BusiEntity;
+import com.zt.common.entity.TreeNode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * operat_condit_model
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-29
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("operat_condit_model")
+public class OperatConditModel extends BusiEntity implements TreeNode<OperatConditModel> {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "宸ュ喌ID")
+	private Long operatConditId;
+
+	@ApiModelProperty(value = "浜у搧鑺傜偣ID")
+	private Long productId;
+
+	@ApiModelProperty(value = "妯″瀷ID")
+	private Long modelId;
+
+	@ApiModelProperty(value = "澶囨敞")
+	private String remark;
+
+	@TableField(exist = false)
+	private String product;
+
+	@TableField(exist = false)
+	private String modelName;
+
+	@TableField(exist = false)
+	private Long operatConditModelId;
+
+	@ApiModelProperty(value = "瀛愯妭鐐�")
+	@TableField(exist = false)
+	private List<OperatConditModel> children = new ArrayList<>();
+
+	@TableField(exist = false)
+	private Long pid;
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/TaskPhase.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/TaskPhase.java
index c4407fe..8524d50 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/TaskPhase.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/TaskPhase.java
@@ -25,8 +25,8 @@
 	@ApiModelProperty(value = "浠诲姟闃舵鍚嶇О")
 	private String phaseName;
 
-	@ApiModelProperty(value = "闃舵鏃堕暱")
-	private Double phaseDuration;
+	@ApiModelProperty(value = "闃舵鏃堕暱姣�")
+	private Double phaseDurationRate;
 
 	@ApiModelProperty(value = "闃舵鏃堕��")
 	private Double phaseSpeed;
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/TaskPhaseModel.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/TaskPhaseModel.java
index 05ca44e..cb6afb6 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/TaskPhaseModel.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/model/TaskPhaseModel.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.zt.common.entity.BusiEntity;
 import com.zt.common.entity.TreeNode;
+import com.zt.life.modules.mainPart.basicInfo.model.ParamData;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -20,34 +21,30 @@
 @Data
 @EqualsAndHashCode(callSuper=false)
 @TableName("task_phase_model")
-public class TaskPhaseModel extends BusiEntity implements TreeNode<TaskPhaseModel> {
+public class TaskPhaseModel extends BusiEntity {
 	private static final long serialVersionUID = 1L;
 
 	@ApiModelProperty(value = "闃舵ID")
 	private Long phaseId;
 
-	@ApiModelProperty(value = "浜у搧鑺傜偣ID")
+	@TableField(exist = false)
 	private Long productId;
 
-	@ApiModelProperty(value = "妯″瀷ID")
-	private Long modelId;
+	@ApiModelProperty(value = "宸ュ喌ID")
+	private Long operatConditId;
+
+	@ApiModelProperty(value = "宸ュ喌鍚嶇О")
+	private String operatConditName;
+
+	@ApiModelProperty(value = "宸ュ喌杩愯姣�")
+	private Double operatConditDurationRate;
 
 	@ApiModelProperty(value = "澶囨敞")
 	private String remark;
 
-	@ApiModelProperty(value = "")
-	private Integer status;
+	@TableField(exist = false)
+	private List<TaskPhaseModel> dataThreeList;
 
 	@TableField(exist = false)
-	private String system;
-
-	@TableField(exist = false)
-	private String modelName;
-
-	@ApiModelProperty(value = "瀛愯妭鐐�")
-	@TableField(exist = false)
-	private List<TaskPhaseModel> children = new ArrayList<>();
-
-	@TableField(exist = false)
-	private Long pid;
+	private String isCheck;
 }
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/OperatConditModelService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/OperatConditModelService.java
new file mode 100644
index 0000000..4c96615
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/OperatConditModelService.java
@@ -0,0 +1,42 @@
+package com.zt.life.modules.mainPart.taskReliability.service;
+
+import com.zt.common.service.BaseService;
+import com.zt.common.utils.TreeUtils;
+import com.zt.life.modules.mainPart.taskReliability.dao.OperatConditModelDao;
+import com.zt.life.modules.mainPart.taskReliability.model.OperatConditModel;
+import org.springframework.stereotype.Service;
+import com.zt.common.db.query.QueryFilter;
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+ * operat_condit_model
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-29
+ */
+@Service
+public class OperatConditModelService  extends BaseService<OperatConditModelDao, OperatConditModel> {
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param queryFilter
+     * @return
+     */
+    public List<OperatConditModel> page(QueryFilter queryFilter) {
+        List<OperatConditModel> list = baseDao.getList(queryFilter.getQueryParams());
+        return TreeUtils.build(list);
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param ids
+     */
+    public void delete(Long[] ids) {
+        super.deleteLogic(ids);
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/OperatConditService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/OperatConditService.java
new file mode 100644
index 0000000..f537c28
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/OperatConditService.java
@@ -0,0 +1,40 @@
+package com.zt.life.modules.mainPart.taskReliability.service;
+
+import com.zt.common.service.BaseService;
+import com.zt.life.modules.mainPart.taskReliability.dao.OperatConditDao;
+import com.zt.life.modules.mainPart.taskReliability.model.OperatCondit;
+import org.springframework.stereotype.Service;
+import com.zt.common.db.query.QueryFilter;
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+ * operat_condit
+ *
+ * @author zt generator 
+ * @since 1.0.0 2024-03-29
+ */
+@Service
+public class OperatConditService  extends BaseService<OperatConditDao, OperatCondit> {
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param queryFilter
+     * @return
+     */
+    public List<OperatCondit> 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/mainPart/taskReliability/service/TaskPhaseModelService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/TaskPhaseModelService.java
index 2fa730d..2f998f8 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/TaskPhaseModelService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/taskReliability/service/TaskPhaseModelService.java
@@ -27,7 +27,7 @@
      */
     public List<TaskPhaseModel> page(QueryFilter queryFilter) {
         List<TaskPhaseModel> list = baseDao.getList(queryFilter.getQueryParams());
-        return TreeUtils.build(list);
+        return list;
     }
 
     /**
diff --git a/modules/mainPart/src/main/resources/mapper/sysPictureBase/SysPictureBaseDao.xml b/modules/mainPart/src/main/resources/mapper/sysPictureBase/SysPictureBaseDao.xml
index bf36c33..34b47dc 100644
--- a/modules/mainPart/src/main/resources/mapper/sysPictureBase/SysPictureBaseDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/sysPictureBase/SysPictureBaseDao.xml
@@ -11,12 +11,14 @@
     </update>
     <update id="updateProdeuctImg">
         UPDATE product_model_common
-        set  operat_img = ${id}
+        set operat_img = ${id}
         where node_type = ${productType}
+          and operat_img =${pictureBaseId}
           and is_delete = 0;
         update product_model
         set operat_img=${id}
         where product_type = ${productType}
+          and operat_img =${pictureBaseId}
           and is_delete = 0
     </update>
 
@@ -33,4 +35,11 @@
             ORDER BY ${orderBySql}
         </if>
     </select>
+    <select id="getDefaultImg" resultType="com.zt.life.modules.mainPart.sysPictureBase.model.SysPictureBase">
+        select a.name, a.id
+        from sys_picture_base a
+        where a.is_delete = 0
+          and a.is_default = 1
+          and a.product_type = ${productType}
+    </select>
 </mapper>
diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/ModelRbdDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/ModelRbdDao.xml
index a3212db..b8917aa 100644
--- a/modules/mainPart/src/main/resources/mapper/taskReliability/ModelRbdDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/ModelRbdDao.xml
@@ -6,12 +6,17 @@
     <select id="getList" resultType="com.zt.life.modules.mainPart.taskReliability.model.ModelRbd">
         select a.*,
         CASE
-        WHEN b.end =1  THEN '宸插畬鎴�'
-        WHEN c.num >0  THEN '姝e湪缂栬緫'
-        ELSE '鏈紪杈�' END AS modelState
+        WHEN b.end =1 THEN '宸插畬鎴�'
+        WHEN c.num >0 THEN '姝e湪缂栬緫'
+        ELSE '鏈紪杈�' END AS modelState,
+        d.num as quoteNum
         from model_rbd a
-        left join (select model_id,1 as end from algorithm where model_type = 'end' ) b on b.model_id = a.id
-        left join (select model_id, count(1) as num from algorithm group by model_id ) c on c.model_id = a.id
+        left join (select model_id,1 as end from algorithm where model_type = 'end' and is_delete=0 ) b on b.model_id =
+        a.id
+        left join (select model_id, count(1) as num from algorithm where is_delete=0 group by model_id ) c on c.model_id
+        = a.id
+        left join (select model_id,count(1) as num from operat_condit_model where is_delete=0 group by model_id ) d on
+        d.model_id = a.id
         <where>
             a.is_delete = 0
             <if test="productId!=null and productId!=''">
diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/OperatConditDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/OperatConditDao.xml
new file mode 100644
index 0000000..81f7554
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/OperatConditDao.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.mainPart.taskReliability.dao.OperatConditDao">
+
+    <select id="getList" resultType="com.zt.life.modules.mainPart.taskReliability.model.OperatCondit">
+        select a.*
+        from operat_condit 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/OperatConditModelDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/OperatConditModelDao.xml
new file mode 100644
index 0000000..670531e
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/OperatConditModelDao.xml
@@ -0,0 +1,36 @@
+<?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.mainPart.taskReliability.dao.OperatConditModelDao">
+
+    <select id="getList" resultType="com.zt.life.modules.mainPart.taskReliability.model.OperatConditModel">
+        SELECT a.id ,
+               a.pid ,
+               a.`NAME` as product,
+               c.model_name,
+               b.model_id,
+               b.id as operatConditModelId
+        FROM product_model a
+                 LEFT JOIN operat_condit_model b
+                           ON b.product_id = a.id
+                               AND b.operat_condit_id = ${operatConditId}
+                 LEFT JOIN model_rbd c ON c.id = b.model_id
+        WHERE a.id in (
+            SELECT DATA.id
+            FROM (
+                     SELECT @ids as ids,
+                            (SELECT @ids := GROUP_CONCAT(id)
+                             FROM product_model
+                             WHERE FIND_IN_SET(pid, @ids)
+                            )    as cids
+                     FROM product_model
+                     WHERE @ids IS NOT NULL AND @ids := ${productId}
+                 ) id,
+                 product_model DATA
+            WHERE FIND_IN_SET(DATA.id, ID.ids)
+        )
+          and a.product_type in (4, 3, 2, 10)
+          AND a.is_delete = 0
+    </select>
+
+</mapper>
diff --git a/modules/mainPart/src/main/resources/mapper/taskReliability/TaskPhaseModelDao.xml b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskPhaseModelDao.xml
index 942607c..ebf1303 100644
--- a/modules/mainPart/src/main/resources/mapper/taskReliability/TaskPhaseModelDao.xml
+++ b/modules/mainPart/src/main/resources/mapper/taskReliability/TaskPhaseModelDao.xml
@@ -4,33 +4,18 @@
 <mapper namespace="com.zt.life.modules.mainPart.taskReliability.dao.TaskPhaseModelDao">
 
     <select id="getList" resultType="com.zt.life.modules.mainPart.taskReliability.model.TaskPhaseModel">
-        SELECT a.id AS id,
-               a.pid ,
-               a.`NAME` as `system`,
-               c.model_name,
-               b.model_id,
-               b.id as productId
-        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.id in (
-            SELECT DATA.id
-            FROM (
-                     SELECT @ids as ids,
-                            (SELECT @ids := GROUP_CONCAT(id)
-                             FROM product_model
-                             WHERE FIND_IN_SET(pid, @ids)
-                            )    as cids
-                     FROM product_model
-                     WHERE @ids IS NOT NULL AND @ids := ${productId}
-                 ) id,
-                 product_model DATA
-            WHERE FIND_IN_SET(DATA.id, ID.ids)
-        )
-          and a.product_type in (4, 3, 2, 10)
-          AND a.is_delete = 0
+        SELECT b.id
+             , b.operat_condit_duration_rate
+             , a.NAME         as operatConditName
+             , a.id           as operatConditId
+             , case
+                   when b.id is null then 0
+                   else 1 end as isCheck
+        FROM operat_condit a
+                 left join task_phase_model b
+                           on a.id = b.operat_condit_id and b.is_delete = 0 and b.phase_id = ${phaseId}
+        WHERE a.IS_DELETE = 0
+          and a.product_id = ${productId}
     </select>
 
 </mapper>
diff --git a/web/src/views/modules/basicInfo/SelectPicture.vue b/web/src/views/modules/basicInfo/SelectPicture.vue
index 2b66296..d471c31 100644
--- a/web/src/views/modules/basicInfo/SelectPicture.vue
+++ b/web/src/views/modules/basicInfo/SelectPicture.vue
@@ -5,6 +5,8 @@
         <zt-table-wraper query-url="/sysPictureBase/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:70}"
                     border
                     @row-dblclick="selectedPicture"
@@ -35,6 +37,7 @@
           id:'',
           contentType: '',
           systemMark: '',
+          productType:'',
           sortNo: ''
         },
       }
@@ -42,7 +45,8 @@
     components: {},
     methods: {
       init(type) {
-        this.type = type
+        this.dataForm.productType = type
+        console.log(this.dataForm.productType)
       },
       async selectedPicture(row) {
         await this.$tip.success()
diff --git a/web/src/views/modules/basicInfo/TyProductModel-AddOrUpdate.vue b/web/src/views/modules/basicInfo/TyProductModel-AddOrUpdate.vue
index 94e5a95..6636836 100644
--- a/web/src/views/modules/basicInfo/TyProductModel-AddOrUpdate.vue
+++ b/web/src/views/modules/basicInfo/TyProductModel-AddOrUpdate.vue
@@ -8,7 +8,7 @@
         <el-input v-model="dataForm.name"></el-input>
       </zt-form-item>
       <zt-form-item label="鑺傜偣绫诲瀷" prop="nodeType" rules="required">
-        <zt-dict v-model="dataForm.nodeType" dict="product"></zt-dict>
+        <zt-dict v-model="dataForm.nodeType" dict="product" @input="getDefaultImg"></zt-dict>
       </zt-form-item>
       <zt-form-item label="鍩烘湰璁$畻" prop="baseCompute">
         <zt-dict v-model="dataForm.baseCompute" dict="is_or_not" placeholder="鍩烘湰璁$畻"></zt-dict>
@@ -24,6 +24,7 @@
       </zt-form-item>
       <zt-form-item label="杩愯鍥剧墖" prop="operatImg">
         <el-input v-model="dataForm.operatImgName" @focus="selectPicture()" :readonly="readonly"></el-input>
+        <el-image v-if="dataForm.operatImg" :src="url+dataForm.operatImg" style="height: 50px;width: 50px"></el-image>
       </zt-form-item>
       <zt-form-item label="鎺掑簭" prop="sort">
         <el-input v-model="dataForm.sort" :readonly="readonly"></el-input>
@@ -36,11 +37,13 @@
 
 <script>
   import PictureSelect from "@/views/modules/basicInfo/SelectPicture";
+  import Cookies from "js-cookie";
 
   export default {
-    name:'TyProductModel',
+    name: 'TyProductModel',
     data() {
       return {
+        url: `${window.SITE_CONFIG['apiURL']}/sysPictureBase/getProductImg?token=${Cookies.get('token')}&id=`,
         fileId: '',
         productList: [],
         dataForm: {
@@ -53,7 +56,7 @@
           reliabDistrib: '',
           repairDistrib: '',
           operatImg: '',
-          operatImgName:'',
+          operatImgName: '',
           sort: '',
         }
       }
@@ -64,7 +67,6 @@
     methods: {
       init() {
         this.getProductList()
-
       },
       // 鑾峰彇绯荤粺鍒楄〃
       async getProductList() {
@@ -73,13 +75,22 @@
         console.log(this.productList, 'getProductList')
       },
       selectPicture() {
-        this.$refs.pictureSelect.$refs.dialog.init()
+        this.$refs.pictureSelect.$refs.dialog.init(this.dataForm.nodeType)
       },
       openAddWin(row) {
         this.dataForm.operatImgName = row.name
         this.dataForm.operatImg = row.id
         console.log(row, 'openAddWin(row)')
       },
+      async getDefaultImg(selected) {
+        console.log(selected, 'async getDefaultImg')
+        let params = {
+          productType: selected
+        }
+        let res = await this.$http.get(`/sysPictureBase/getDefaultImg`, {params:params})
+        this.dataForm.operatImgName = res.data.name
+        this.dataForm.operatImg = res.data.id
+      },
       // 鑾峰彇淇℃伅
       async getInfo() {
         let res = await this.$http.get(`/basicInfo/TyProductModel/${this.dataForm.id}`)
diff --git a/web/src/views/modules/basicInfo/XhProductModel-AddOrUpdate.vue b/web/src/views/modules/basicInfo/XhProductModel-AddOrUpdate.vue
index aaf1886..65addad 100644
--- a/web/src/views/modules/basicInfo/XhProductModel-AddOrUpdate.vue
+++ b/web/src/views/modules/basicInfo/XhProductModel-AddOrUpdate.vue
@@ -8,11 +8,12 @@
         <el-input v-model="dataForm.name"></el-input>
       </zt-form-item>
       <zt-form-item label="鑺傜偣绫诲瀷" prop="productType" rules="required">
-        <zt-dict v-model="dataForm.productType" dict="product"></zt-dict>
+        <zt-dict v-model="dataForm.productType" dict="product" @input="getDefaultImg"></zt-dict>
       </zt-form-item>
       <zt-form-item label="杩愯鐘舵�佸浘" prop="operatImg" v-if="isShow">
         <el-input v-model="dataForm.operatImgName" @focus="selectPicture()"
                   :readonly="readonly"></el-input>
+        <el-image v-if="dataForm.operatImg" :src="url+dataForm.operatImg" style="height: 50px;width: 50px"></el-image>
       </zt-form-item>
       <zt-form-item label="鎺掑簭" prop="sort">
         <el-input v-model="dataForm.sort" :readonly="readonly"></el-input>
@@ -25,10 +26,12 @@
 
 <script>
   import PictureSelect from "@/views/modules/basicInfo/SelectPicture";
+  import Cookies from "js-cookie";
 
   export default {
     data() {
       return {
+        url: `${window.SITE_CONFIG['apiURL']}/sysPictureBase/getProductImg?token=${Cookies.get('token')}&id=`,
         isTree: false,
         isShow: true,
         fileId: '',
@@ -65,8 +68,17 @@
         this.productList = res.data
         console.log(this.productList, 'getProductList')
       },
+      async getDefaultImg(selected) {
+        console.log(selected, 'async getDefaultImg')
+        let params = {
+          productType: selected
+        }
+        let res = await this.$http.get(`/sysPictureBase/getDefaultImg`, {params:params})
+        this.dataForm.operatImgName = res.data.name
+        this.dataForm.operatImg = res.data.id
+      },
       selectPicture() {
-        this.$refs.pictureSelect.$refs.dialog.init()
+        this.$refs.pictureSelect.$refs.dialog.init(this.dataForm.productType)
       },
       openAddWin(row) {
         this.dataForm.operatImgName = row.name
diff --git a/web/src/views/modules/sysPictureBase/SysPictureBase-AddOrUpdate.vue b/web/src/views/modules/sysPictureBase/SysPictureBase-AddOrUpdate.vue
index 6ae2af8..e19b826 100644
--- a/web/src/views/modules/sysPictureBase/SysPictureBase-AddOrUpdate.vue
+++ b/web/src/views/modules/sysPictureBase/SysPictureBase-AddOrUpdate.vue
@@ -64,6 +64,10 @@
           this.$message.error("鏈�澶т笂浼�5M")
           return false
         }
+        if (fileSize = 0) {
+          this.$message.error("鏈笂浼犲浘鐗�")
+          return false
+        }
       },
       // 鏂囦欢鏁伴噺杩囧鏃舵彁閱�
       handleExceed() {
diff --git a/web/src/views/modules/taskReliability/ModelRbd.vue b/web/src/views/modules/taskReliability/ModelRbd.vue
index cc9b8ab..9025ad3 100644
--- a/web/src/views/modules/taskReliability/ModelRbd.vue
+++ b/web/src/views/modules/taskReliability/ModelRbd.vue
@@ -30,7 +30,7 @@
               <el-table-column type="selection" width="40" align="center"/>
               <el-table-column prop="modelName" label="妯″瀷鍚嶇О"/>
               <el-table-column prop="modelTag" label="妯″瀷鏍囪瘑"/>
-              <el-table-column prop="citedNum" label="琚紩鐢ㄦ暟"/>
+              <el-table-column prop="quoteNum" label="琚紩鐢ㄦ暟"/>
               <el-table-column prop="modelState" label="妯″瀷鐘舵��" align="center"/>
               <el-table-column prop="modelDataState" label="妯″瀷鏁版嵁鐘舵��" align="center"/>
               <el-table-column prop="remark" label="澶囨敞"/>
diff --git a/web/src/views/modules/taskReliability/OperatCondit-AddOrUpdate.vue b/web/src/views/modules/taskReliability/OperatCondit-AddOrUpdate.vue
new file mode 100644
index 0000000..66d6522
--- /dev/null
+++ b/web/src/views/modules/taskReliability/OperatCondit-AddOrUpdate.vue
@@ -0,0 +1,50 @@
+<template>
+  <zt-dialog ref="dialog" @confirm="formSubmit">
+    <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
+      <zt-form-item label="宸ュ喌鍚嶇О" prop="name" rules="required">
+        <el-input v-model="dataForm.name"></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: '',
+          productId: '',
+          name: '',
+          remark: '',
+          status: ''
+        }
+      }
+    },
+    methods: {
+      init(id,param){
+        this.dataForm.productId =param.productId
+      },
+      // 鑾峰彇淇℃伅
+      async getInfo() {
+        let res = await this.$http.get(`/taskReliability/OperatCondit/${this.dataForm.id}`)
+        this.dataForm = {
+          ...this.dataForm,
+          ...res.data
+        }
+      },
+      // 琛ㄥ崟鎻愪氦
+      async formSubmit() {
+        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/taskReliability/OperatCondit/', 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/OperatCondit.vue b/web/src/views/modules/taskReliability/OperatCondit.vue
new file mode 100644
index 0000000..e776ece
--- /dev/null
+++ b/web/src/views/modules/taskReliability/OperatCondit.vue
@@ -0,0 +1,89 @@
+<template>
+  <div>
+    <el-row :gutter="16">
+      <el-col :span="14">
+        <div class="mod-taskReliability-operatCondit}">
+          <div class="fa-card-a">
+            <div>
+              浜у搧鑺傜偣锛�
+              <zt-select v-model="dataForm.productId" :datas="productList" @change="onProductSelected"/>
+            </div>
+            <zt-table-wraper ref="tableObj" query-url="/taskReliability/OperatCondit/page" defaultNotQuery="true"  delete-url="/taskReliability/OperatCondit"
+                             v-slot="{ table }" :paging='false'>
+              <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
+                <el-form-item>
+                  <zt-button type="query" @click="table.query()"/>
+                  <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="selectOperatCondit" @selection-change="table.selectionChangeHandle">
+                <el-table-column type="selection" width="40" align="center"/>
+                <el-table-column prop="name" label="宸ュ喌鍚嶇О"/>
+                <el-table-column prop="remark" 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>
+        </div>
+      </el-col>
+      <el-col :span="10">
+        <div class="fa-card-a">
+          <opera-condit-model ref="model"/>
+        </div>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+  import AddOrUpdate from './OperatCondit-AddOrUpdate'
+  import OperaConditModel from "./OperatConditModel";
+
+  export default {
+    data() {
+      return {
+        productList: [],
+        dataForm: {
+          productId: '',
+        }
+      }
+    },
+    mounted() {
+      this.getTaskProductList()
+    },
+    components: {
+      OperaConditModel,
+      AddOrUpdate
+    },
+
+    methods: {
+      add() {
+        this.$refs.AddOrUpdate.$refs.dialog.init(null,{productId: this.dataForm.productId})
+      },
+      onProductSelected(data) {
+        console.log(data, ' onProductSelected(data)')
+        this.dataForm.productId = data.id
+        this.$refs.tableObj.query()
+      },
+      async getTaskProductList() {
+        let res = await this.$http.get('/basicInfo/XhProductModel/getTaskProductList')
+        this.productList = res.data
+        console.log(this.productList, ' async getTaskProductList()')
+      },
+      selectOperatCondit(row) {
+        this.$emit('selectOperatCondit', row)
+        let param = {
+          row: row,
+          productId: this.dataForm.productId
+        }
+        this.$refs.model.init(param)
+      },
+    }
+  }
+</script>
diff --git a/web/src/views/modules/taskReliability/OperatConditModel.vue b/web/src/views/modules/taskReliability/OperatConditModel.vue
new file mode 100644
index 0000000..d7bce69
--- /dev/null
+++ b/web/src/views/modules/taskReliability/OperatConditModel.vue
@@ -0,0 +1,63 @@
+<template>
+    <div class="mod-taskReliability-operatConditModel}">
+      <zt-table-wraper ref="tableObj" :paging='false' defaultNotQuery="true" query-url="/taskReliability/OperatConditModel/page" delete-url="/taskReliability/OperatConditModel/" 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"
+                  row-key="id"
+                  :cell-style="cellStyle"
+                  :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
+                  :default-expand-all="true">
+          <el-table-column prop="product" label="浜у搧鑺傜偣" width="160"/>
+          <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="openSelectModel(row)">閫夋嫨妯″瀷</zt-table-button>
+            </template>
+          </zt-table-column-handle>
+        </el-table>
+        <select-model-rbd ref="SelectModelRbd" ></select-model-rbd>
+      </zt-table-wraper>
+    </div>
+</template>
+
+<script>
+  import SelectModelRbd from "./SelectModelRbd";
+  export default {
+    name: 'OperaConditModel',
+    data() {
+      return {
+        dataForm: {
+          operatConditId:'',
+          productId:'',
+        }
+      }
+    },
+    components: {
+      SelectModelRbd
+    },
+    methods:{
+      init(param) {
+        console.log(param, '')
+        this.dataForm.operatConditId = param.row.id
+        this.dataForm.productId = param.productId
+        this.$refs.tableObj.query()
+      },
+      cellStyle({column}) {
+        if (column.label === '绯荤粺') {
+          return 'text-align: left !important;'
+        }
+      },
+      openSelectModel(row) {
+        console.log(row, 'selectModel');
+        if (!row.operatConditId)
+          row.operatConditId = this.dataForm.operatConditId
+        this.$refs.SelectModelRbd.$refs.dialog.init(row)
+      }
+    }
+  }
+</script>
diff --git a/web/src/views/modules/taskReliability/SelectModelRbd.vue b/web/src/views/modules/taskReliability/SelectModelRbd.vue
index 8392647..2f17b08 100644
--- a/web/src/views/modules/taskReliability/SelectModelRbd.vue
+++ b/web/src/views/modules/taskReliability/SelectModelRbd.vue
@@ -20,12 +20,13 @@
     name: 'SelectModelRbd',
     data() {
       return {
+        param: null,
         dataForm: {
           id: '',
           modelName: '',
           modelState: '',
           productId: '',
-          phaseId: '',
+          operatConditId: '',
           modelId: '',
         }
       }
@@ -37,19 +38,19 @@
     methods: {
       init(param) {
         console.log(param)
-        this.dataForm.productId = param.row.id
-        this.dataForm.phaseId = param.phaseId
-        this.dataForm.id = param.row.productId
+        this.param = param
+        this.dataForm.productId = param.id
+        this.dataForm.operatConditId = param.operatConditId
+        this.dataForm.id = param.operatConditModelId
       },
-      async selectModel(row) {
+      async selectModel(selectRow) {
         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)
+        this.dataForm.modelId = selectRow.id
+        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/taskReliability/OperatConditModel/', this.dataForm)
         if (res.success) {
           await this.$tip.success()
           this.$refs.dialog.close()
-          this.$emit('setModel')
+          this.param.modelName = selectRow.modelName
         }
       }
     }
diff --git a/web/src/views/modules/taskReliability/TaskPhase-AddOrUpdate.vue b/web/src/views/modules/taskReliability/TaskPhase-AddOrUpdate.vue
index 295acdd..aa4e95c 100644
--- a/web/src/views/modules/taskReliability/TaskPhase-AddOrUpdate.vue
+++ b/web/src/views/modules/taskReliability/TaskPhase-AddOrUpdate.vue
@@ -4,8 +4,8 @@
       <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 label="闃舵鏃堕暱姣�" prop="phaseDuration">
+        <el-input v-model="dataForm.phaseDurationRate"></el-input>
       </zt-form-item>
       <zt-form-item label="闃舵鏃堕��" prop="phaseSpeed">
         <el-input v-model="dataForm.phaseSpeed"></el-input>
@@ -28,18 +28,20 @@
           id: '',
           taskId: '',
           phaseName: '',
-          phaseDuration: '',
+          phaseDurationRate: '',
           phaseSpeed: '',
           phaseSort: '',
           remark: '',
           productId: ''
-        }
+        },
+        time: null
       }
     },
     methods: {
-      init(id,param){
+      init(id, param) {
         this.dataForm.taskId = param.taskId
         this.dataForm.productId = param.productId
+        this.time = param.time
       },
       // 鑾峰彇淇℃伅
       async getInfo() {
@@ -51,6 +53,11 @@
       },
       // 琛ㄥ崟鎻愪氦
       async formSubmit() {
+        console.log(this.time,'dataLoaded')
+        if (this.time + Number(this.dataForm.phaseDurationRate > 1)) {
+          this.$alert("褰撳墠杩愯鏃堕暱姣斿凡瓒呭嚭锛岃閲嶆柊璁剧疆")
+          return
+        }
         let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/taskReliability/TaskPhase/', this.dataForm)
         if (res.success) {
           await this.$tip.success()
diff --git a/web/src/views/modules/taskReliability/TaskPhase.vue b/web/src/views/modules/taskReliability/TaskPhase.vue
index 272b6e0..38904fd 100644
--- a/web/src/views/modules/taskReliability/TaskPhase.vue
+++ b/web/src/views/modules/taskReliability/TaskPhase.vue
@@ -10,6 +10,7 @@
         <div class="mod-taskReliability-taskPhase fa-card-a" style="margin-left: 5px;margin-right: 5px;">
           <zt-table-wraper ref="tableObj" defaultNotQuery="true" query-url="/taskReliability/TaskPhase/page"
                            delete-url="/taskReliability/TaskPhase/"
+                           @dataLoaded="dataLoaded"
                            :paging='false' v-slot="{ table }">
             <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
               <el-form-item>
@@ -18,10 +19,11 @@
               </el-form-item>
             </el-form>
             <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:30}"
-                       @row-click="selectPhase" @selection-change="table.selectionChangeHandle">
+
+                      @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="phaseDurationRate" label="闃舵鏃堕暱姣�"/>
               <el-table-column prop="phaseSpeed" label="闃舵鏃堕��"/>
               <el-table-column prop="phaseSort" label="闃舵椤哄簭"/>
               <zt-table-column-handle :table="table"
@@ -33,7 +35,7 @@
         </div>
       </el-col>
       <el-col :span="7">
-          <task-phase-model ref="model"/>
+        <task-phase-model ref="model"/>
       </el-col>
     </el-row>
   </div>
@@ -50,7 +52,9 @@
         dataForm: {
           taskId: '',
           productId: ''
-        }
+        },
+        dataList: [],
+        time: null
       }
     },
     components: {
@@ -59,10 +63,22 @@
       AddOrUpdate
     },
     methods: {
+      dataLoaded(data) {
+        this.time = null
+        this.dataList = data
+        for (let i = 0; i < this.dataList.length; i++) {
+          this.time = this.time + Number(this.dataList[i].phaseDurationRate)
+        }
+        console.log( this.time,'dataLoaded')
+        if (this.time>1){
+          this.$alert("褰撳墠杩愯鏃堕暱姣斿凡瓒呭嚭锛岃閲嶆柊璁剧疆")
+        }
+      },
       add() {
         this.$refs.AddOrUpdate.$refs.dialog.init(null, {
           taskId: this.dataForm.taskId,
-          productId: this.dataForm.productId
+          productId: this.dataForm.productId,
+          time: this.time
         })
       },
       onTaskSelected(row) {
diff --git a/web/src/views/modules/taskReliability/TaskPhaseModel.vue b/web/src/views/modules/taskReliability/TaskPhaseModel.vue
index d556748..00c182c 100644
--- a/web/src/views/modules/taskReliability/TaskPhaseModel.vue
+++ b/web/src/views/modules/taskReliability/TaskPhaseModel.vue
@@ -2,49 +2,61 @@
   <div class="mod-taskReliability-taskPhaseModel fa-card-a" style="margin-left: 5px;">
     <zt-table-wraper ref="tableObj" defaultNotQuery="true" query-url="/taskReliability/TaskPhaseModel/page"
                      :paging='false'
+                     @dataLoaded="dataLoaded"
                      delete-url="/taskReliability/TaskPhaseModel/" v-slot="{ table }">
       <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
         <el-form-item>
+          <zt-button type="warning" @click="handleSaveRows">淇濆瓨</zt-button>
         </el-form-item>
       </el-form>
       <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px"
-                v-adaptive="{bottomOffset:30}" border @selection-change="table.selectionChangeHandle"
-                row-key="id"
-                :cell-style="cellStyle"
-                :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
-                :default-expand-all="true">
-        <el-table-column prop="system" label="绯荤粺" width="160"/>
-        <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>
+                v-adaptive="{bottomOffset:30}" border
+                @cell-click="handleCellClick"
+                @selection-change="table.selectionChangeHandle">
+        <el-table-column prop="operatConditName" label="宸ュ喌鍚嶇О" width="160"/>
+        <el-table-column prop="operatConditDurationRate" label="宸ュ喌鏃堕暱姣�">
+          <template slot-scope="scope">
+                    <span
+                      v-if="editingCell && editingCell.row === scope.row && editingCell.column.property === scope.column.property">
+                       <el-input ref="editInput"
+                                 autosize v-model="scope.row.operatConditDurationRate"
+                                 placeholder="宸ュ喌鏃堕暱姣�"></el-input>
+                    </span>
+            <span v-else>{{scope.row.operatConditDurationRate}}</span>
           </template>
-        </zt-table-column-handle>
+        </el-table-column>
+        <el-table-column align="center" label="閫夌敤">
+          <template v-slot="{ row }">
+            <el-checkbox true-label="1" false-label="0" v-model="row.isCheck"></el-checkbox>
+          </template>
+        </el-table-column>
       </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: '',
-        }
+          phaseId: '',
+          operatConditName: '',
+          operatConditId: '',
+          operatConditDurationRate: '',
+          dataList: [],
+          isCheck: ''
+        },
+        editingCell: null,
+        dataList: [],
+        originalTableData: [],
+        originalData: null,
       }
     },
-    components: {
-      SelectModelRbd
-    },
+    components: {},
     methods: {
       init(param) {
         console.log(param, '')
@@ -52,23 +64,64 @@
         this.dataForm.productId = param.productId
         this.$refs.tableObj.query()
       },
-      cellStyle({column}) {
-        if (column.label === '绯荤粺') {
-          return 'text-align: left !important;'
+      //鎵归噺淇濆瓨
+      async handleSaveRows() {
+        let time = null
+        let flag = true
+        let list = []
+        this.dataForm.dataThreeList = this.$refs.tableObj.dataList
+        for (let i = 0; i < this.dataForm.dataThreeList.length; i++) {
+          time = time + Number(this.dataForm.dataThreeList[i].operatConditDurationRate)
+          if (this.dataForm.dataThreeList[i].isCheck === '0' && this.dataForm.dataThreeList[i].operatConditDurationRate != null) {
+            this.$alert("鏈夋湭鍕鹃�夌殑宸ュ喌")
+            flag = false
+          } else if (this.dataForm.dataThreeList[i].isCheck === '1' && this.dataForm.dataThreeList[i].operatConditDurationRate == null) {
+            this.$alert("鏈夋湭濉啓鐨勫伐鍐垫椂闀�")
+            flag = false
+          }
+
+          if (this.dataForm.dataThreeList[i].isCheck==='1'){
+            list.push(this.dataForm.dataThreeList[i])
+          }
+        }
+        this.dataForm.dataThreeList = list
+        console.log(time, 'async handleSaveRows')
+        if (time > 1) {
+          this.$alert("鏃堕暱姣斿拰宸茶秴杩囷紝璇烽噸鏂拌缃�")
+          return
+        }
+        if (!flag) {
+          return
+        }
+        let res = await this.$http.post('/taskReliability/TaskPhaseModel/save', this.dataForm)
+        if (res.success) {
+          console.log(res.data)
+          await this.$tip.success()
+          this.originalData = null
+          this.dataForm.dataThreeList = null
+          this.$refs.tableObj.query()
+          this.originalTableData = JSON.parse(JSON.stringify(this.dataList)); // 鏇存柊鍒濆鏁版嵁涓哄綋鍓嶆暟鎹�
+          console.log(this.originalTableData, 'this.originalTableData 褰撳墠琛ㄦ牸json鏁版嵁')
         }
       },
-      selectModel(row) {
-        console.log(row, 'selectModel');
-        let param = {
-          row: row,
-          phaseId: this.dataForm.phaseId
+      dataLoaded(data) {
+        this.dataList = data
+        for (let i = 0; i < this.dataList.length; i++) {
+          this.dataList[i].productId = this.dataForm.productId
+          this.dataList[i].phaseId = this.dataForm.phaseId
         }
-        this.$refs.SelectModelRbd.$refs.dialog.init(param)
       },
-      selectModelRbd(row) {
-        console.log(row, 'selectModelRbd')
-        this.$refs.tableObj.query()
+      handleCellClick(row, column) {
+        this.editingCell = {row, column}
+        this.$nextTick(() => {
+          if (this.$refs.editInput) {
+            this.$refs.editInput.focus()
+          }
+        })
+        console.log(this.editingCell, 'this.editingCell')
       }
+      ,
+
     }
   }
 </script>

--
Gitblit v1.9.1