From 48009ac677243ce3ce974feb173c85a752623874 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期一, 18 十二月 2023 17:08:28 +0800
Subject: [PATCH] 修改

---
 web/src/views/modules/baselineRelease/BaselineRelease-AddOrUpdate.vue                                              |  233 +++++++++++++
 modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/model/BaselineReleaseRemark.java                |   45 ++
 modules/mainPart/src/main/java/com/zt/life/modules/contractReview/service/ContractReviewService.java               |    1 
 modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/dao/BaselineReleaseRemarkDao.java               |   23 +
 modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/dao/BaselineReleaseDao.java                     |   23 +
 modules/mainPart/src/main/resources/mapper/baselineRelease/BaselineReleaseDao.xml                                  |   20 +
 web/src/views/modules/contractReview/ContractReview-AddOrUpdate.vue                                                |   11 
 web/src/views/modules/baselineRelease/BaselineRelease.vue                                                          |   87 +++++
 modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/model/BaselineRelease.java                      |   73 ++++
 modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/service/BaselineReleaseRemarkService.java       |   48 ++
 web/src/views/modules/contractReview/ContractReview.vue                                                            |    1 
 web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue                                                |    3 
 modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/controller/BaselineReleaseController.java       |  115 ++++++
 modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/dto/BaselineDto.java                            |   29 +
 modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/service/BaselineReleaseService.java             |  195 +++++++++++
 modules/mainPart/src/main/resources/mapper/baselineRelease/BaselineReleaseRemarkDao.xml                            |   15 
 modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/controller/BaselineReleaseRemarkController.java |   96 +++++
 17 files changed, 1,012 insertions(+), 6 deletions(-)

diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/controller/BaselineReleaseController.java b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/controller/BaselineReleaseController.java
new file mode 100644
index 0000000..bf75f90
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/controller/BaselineReleaseController.java
@@ -0,0 +1,115 @@
+package com.zt.life.modules.baselineRelease.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.baselineRelease.dto.BaselineDto;
+import com.zt.life.modules.baselineRelease.model.BaselineRelease;
+import com.zt.life.modules.baselineRelease.service.BaselineReleaseService;
+import com.zt.life.modules.configItemWarehouse.model.WarehouseConfigItem;
+import com.zt.life.modules.configItemWarehouse.service.WarehouseConfigItemService;
+import com.zt.life.modules.testCheckOrder.dto.CheckOrderDto;
+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.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+
+/**
+ * baseline_release
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-18
+ */
+@RestController
+@RequestMapping("/baselineRelease/BaselineRelease/")
+@Api(tags="baseline_release")
+public class BaselineReleaseController {
+    @Autowired
+    private BaselineReleaseService baselineReleaseService;
+
+    @Autowired
+    private WarehouseConfigItemService configItemService;
+
+    @GetMapping("page")
+    @ApiOperation("鍒嗛〉")
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT),
+        @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT),
+        @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 = "code", value = "鍩虹嚎鍙戝竷缂栧彿", dataType = Constant.QT.STRING, format = "code^LK"),
+        @ApiImplicitParam(name = "baselineType", value = "鍩虹嚎绫诲瀷", dataType = Constant.QT.STRING, format = "baseline_type^EQ"),
+        @ApiImplicitParam(name = "baselineName", value = "鍩虹嚎鍚嶇О", dataType = Constant.QT.STRING, format = "baseline_name^LK")    })
+    public PageResult<BaselineRelease> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+        return PageResult.ok(baselineReleaseService.page(queryFilter));
+    }
+
+    @GetMapping("getDto")
+    @ApiOperation("淇℃伅")
+    public Result<BaselineDto> getDto(Long baselineId, Long projectId, String pageCode) {
+        BaselineDto data = baselineReleaseService.getDto(baselineId, projectId, pageCode);
+        return Result.ok(data);
+    }
+
+    @PostMapping
+    @ApiOperation("鏂板")
+    @LogOperation("鏂板")
+    public Result<Long> insert(@RequestBody BaselineDto baselineDto) {
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(baselineDto, AddGroup.class, DefaultGroup.class);
+        Long result = baselineReleaseService.save(baselineDto);
+        return Result.ok(result);
+    }
+
+    @PutMapping
+    @ApiOperation("淇敼")
+    @LogOperation("淇敼")
+    public Result<Long> update(@RequestBody BaselineDto baselineDto) {
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(baselineDto, UpdateGroup.class, DefaultGroup.class);
+        Long result = baselineReleaseService.save(baselineDto);
+
+        return Result.ok(result);
+    }
+
+    @DeleteMapping("deleteBaseline")
+    @ApiOperation("鍒犻櫎")
+    @LogOperation("鍒犻櫎")
+    public Result delete(@RequestBody Long[] ids){
+        //鏁堥獙鏁版嵁
+        AssertUtils.isArrayEmpty(ids, "id");
+        baselineReleaseService.delete(ids);
+
+        return Result.ok();
+    }
+   /* @GetMapping("exportBaseline")
+    @ApiOperation("鎵撳嵃鍩虹嚎鍙戝竷涔�")
+    @LogOperation("鎵撳嵃鍩虹嚎鍙戝竷涔�")
+    public void exportBaseline(Long id, String pageCode, HttpServletRequest request, HttpServletResponse response) {
+        baselineReleaseService.exportBaseline(id,pageCode, request, response);
+    }*/
+
+    @GetMapping("getItemList")
+    @ApiOperation("鑾峰彇鍏ュ簱閰嶇疆椤瑰垪琛�")
+    public PageResult<WarehouseConfigItem> getItemList(Long projectId, String ids) {
+        List<WarehouseConfigItem> resultList = configItemService.warehouseConfigList(projectId,ids);
+        return PageResult.ok(resultList);
+    }
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/controller/BaselineReleaseRemarkController.java b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/controller/BaselineReleaseRemarkController.java
new file mode 100644
index 0000000..b2e8cee
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/controller/BaselineReleaseRemarkController.java
@@ -0,0 +1,96 @@
+package com.zt.life.modules.baselineRelease.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.baselineRelease.model.BaselineReleaseRemark;
+import com.zt.life.modules.baselineRelease.service.BaselineReleaseRemarkService;
+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;
+
+
+/**
+ * baseline_release_remark
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-18
+ */
+@RestController
+@RequestMapping("/baselineRelease/BaselineReleaseRemark/")
+@Api(tags="baseline_release_remark")
+public class BaselineReleaseRemarkController {
+    @Autowired
+    private BaselineReleaseRemarkService baselineReleaseRemarkService;
+
+    @GetMapping("page")
+    @ApiOperation("鍒嗛〉")
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT),
+        @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT),
+        @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),
+    })
+    public PageResult<BaselineReleaseRemark> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+
+        return PageResult.ok(baselineReleaseRemarkService.page(queryFilter));
+    }
+
+    @GetMapping("{id}")
+    @ApiOperation("淇℃伅")
+    public Result<BaselineReleaseRemark> get(@PathVariable("id") Long id){
+        BaselineReleaseRemark data = baselineReleaseRemarkService.get(id);
+
+        return Result.ok(data);
+    }
+
+    @PostMapping
+    @ApiOperation("鏂板")
+    @LogOperation("鏂板")
+    public Result insert(@RequestBody BaselineReleaseRemark baselineReleaseRemark){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(baselineReleaseRemark, AddGroup.class, DefaultGroup.class);
+        baselineReleaseRemarkService.insert(baselineReleaseRemark);
+
+        return Result.ok();
+    }
+
+    @PutMapping
+    @ApiOperation("淇敼")
+    @LogOperation("淇敼")
+    public Result update(@RequestBody BaselineReleaseRemark baselineReleaseRemark){
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(baselineReleaseRemark, UpdateGroup.class, DefaultGroup.class);
+        baselineReleaseRemarkService.update(baselineReleaseRemark);
+
+        return Result.ok();
+    }
+
+    @DeleteMapping
+    @ApiOperation("鍒犻櫎")
+    @LogOperation("鍒犻櫎")
+    public Result delete(@RequestBody Long[] ids){
+        //鏁堥獙鏁版嵁
+        AssertUtils.isArrayEmpty(ids, "id");
+        baselineReleaseRemarkService.delete(ids);
+
+        return Result.ok();
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/dao/BaselineReleaseDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/dao/BaselineReleaseDao.java
new file mode 100644
index 0000000..4f499e1
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/dao/BaselineReleaseDao.java
@@ -0,0 +1,23 @@
+package com.zt.life.modules.baselineRelease.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.baselineRelease.model.BaselineRelease;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * baseline_release
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-18
+ */
+@Mapper
+public interface BaselineReleaseDao extends BaseDao<BaselineRelease> {
+
+    List<BaselineRelease> getList(Map<String, Object> params);
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/dao/BaselineReleaseRemarkDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/dao/BaselineReleaseRemarkDao.java
new file mode 100644
index 0000000..6427181
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/dao/BaselineReleaseRemarkDao.java
@@ -0,0 +1,23 @@
+package com.zt.life.modules.baselineRelease.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.baselineRelease.model.BaselineReleaseRemark;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * baseline_release_remark
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-18
+ */
+@Mapper
+public interface BaselineReleaseRemarkDao extends BaseDao<BaselineReleaseRemark> {
+
+    List<BaselineReleaseRemark> getList(Map<String, Object> params);
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/dto/BaselineDto.java b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/dto/BaselineDto.java
new file mode 100644
index 0000000..73649e5
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/dto/BaselineDto.java
@@ -0,0 +1,29 @@
+package com.zt.life.modules.baselineRelease.dto;
+
+import com.zt.life.modules.baselineRelease.model.BaselineRelease;
+import com.zt.life.modules.baselineRelease.model.BaselineReleaseRemark;
+import com.zt.life.modules.project.model.Project;
+import com.zt.modules.workflow.dto.FlowInfoDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class BaselineDto {
+    private Long id;//ID
+    private Long projectId;//椤圭洰ID
+    private String pageCode;//閰嶇疆椤圭被鍨�
+
+    private FlowInfoDto flowInfoDto;
+    
+    @ApiModelProperty(value = "鍩虹嚎鍙戝竷涔�")
+    private BaselineRelease baseline;
+    @ApiModelProperty(value = "娴嬭瘯椤圭洰鍩烘湰淇℃伅")
+    private Project project;
+
+
+    @ApiModelProperty(value = "妫�鏌ュ崟鍒楄〃")
+    private List<BaselineReleaseRemark> remarkList = new ArrayList<>();
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/model/BaselineRelease.java b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/model/BaselineRelease.java
new file mode 100644
index 0000000..d4c2d15
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/model/BaselineRelease.java
@@ -0,0 +1,73 @@
+package com.zt.life.modules.baselineRelease.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * baseline_release
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-18
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("baseline_release")
+public class BaselineRelease extends BusiEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "椤圭洰ID")
+	private Long projectId;
+
+	@ApiModelProperty(value = "鍩虹嚎鍙戝竷缂栧彿")
+	private String code;
+
+	@ApiModelProperty(value = "椤甸潰鏍囪瘑")
+	private String pageCode;
+
+	@ApiModelProperty(value = "鍩虹嚎绫诲瀷")
+	private String baselineType;
+
+	@ApiModelProperty(value = "鍩虹嚎鍚嶇О")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date baselineName;
+
+	@ApiModelProperty(value = "鍩虹嚎鐗堟湰")
+	private String baselineVersion;
+
+	@ApiModelProperty(value = "澶囨敞")
+	private String remark;
+
+	@ApiModelProperty(value = "鍙戝竷浜�")
+	private String publisher;
+
+	@ApiModelProperty(value = "鍙戝竷浜篒D")
+	private Long publisherId;
+
+	@ApiModelProperty(value = "鍙戝竷鏃堕棿")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date publishDate;
+
+	@ApiModelProperty(value = "閮ㄩ棬鎰忚")
+	private String departOpinion;
+
+	@ApiModelProperty(value = "閮ㄩ棬绛惧瓧")
+	private String departSign;
+
+	@ApiModelProperty(value = "绛惧瓧ID")
+	private Long signId;
+
+	@ApiModelProperty(value = "绛惧瓧鏃ユ湡")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date signDate;
+
+	@ApiModelProperty(value = "骞翠唤")
+	private String year;
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/model/BaselineReleaseRemark.java b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/model/BaselineReleaseRemark.java
new file mode 100644
index 0000000..cceb9fd
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/model/BaselineReleaseRemark.java
@@ -0,0 +1,45 @@
+package com.zt.life.modules.baselineRelease.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;
+
+/**
+ * baseline_release_remark
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-18
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("baseline_release_remark")
+public class BaselineReleaseRemark extends BusiEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "椤圭洰ID")
+	private Long projectId;
+
+	@ApiModelProperty(value = "鍏ュ簱ID")
+	private Long warehouseId;
+
+	@ApiModelProperty(value = "鍩虹嚎ID")
+	private Long baselineId;
+
+	@ApiModelProperty(value = "鏄庣粏鍒嗙被")
+	private String pageCode;
+
+	@ApiModelProperty(value = "搴忓彿")
+	private Integer no;
+
+	@ApiModelProperty(value = "閰嶇疆椤瑰悕绉�")
+	private String itemName;
+
+	@ApiModelProperty(value = "閫夋嫨鐨勬暟鎹甀D")
+	private Long selectId;
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/service/BaselineReleaseRemarkService.java b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/service/BaselineReleaseRemarkService.java
new file mode 100644
index 0000000..8bfcefe
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/service/BaselineReleaseRemarkService.java
@@ -0,0 +1,48 @@
+package com.zt.life.modules.baselineRelease.service;
+
+import com.zt.common.service.BaseService;
+import com.zt.life.modules.baselineRelease.dao.BaselineReleaseRemarkDao;
+import com.zt.life.modules.baselineRelease.model.BaselineReleaseRemark;
+import com.zt.life.modules.testCheckOrder.model.TestCheckOrderList;
+import org.springframework.stereotype.Service;
+import com.zt.common.db.query.QueryFilter;
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * baseline_release_remark
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-18
+ */
+@Service
+public class BaselineReleaseRemarkService  extends BaseService<BaselineReleaseRemarkDao, BaselineReleaseRemark> {
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param queryFilter
+     * @return
+     */
+    public List<BaselineReleaseRemark> page(QueryFilter queryFilter) {
+        return baseDao.getList(queryFilter.getQueryParams());
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param ids
+     */
+    public void delete(Long[] ids) {
+        super.deleteLogic(ids);
+    }
+    public List<BaselineReleaseRemark> getList(Long baselineId) {
+        Map<String, Object> params = new HashMap<>();
+        params.put("baselineId",baselineId);
+        return baseDao.getList(params);
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/service/BaselineReleaseService.java b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/service/BaselineReleaseService.java
new file mode 100644
index 0000000..b659b6b
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/baselineRelease/service/BaselineReleaseService.java
@@ -0,0 +1,195 @@
+package com.zt.life.modules.baselineRelease.service;
+
+import cn.hutool.core.convert.Convert;
+import com.zt.common.service.BaseService;
+import com.zt.life.export.dto.WordFile;
+import com.zt.life.export.service.WordFileService;
+import com.zt.life.modules.baselineRelease.dao.BaselineReleaseDao;
+import com.zt.life.modules.baselineRelease.dto.BaselineDto;
+import com.zt.life.modules.baselineRelease.model.BaselineRelease;
+import com.zt.life.modules.baselineRelease.model.BaselineReleaseRemark;
+import com.zt.life.modules.mainPart.utils.GetFilesPath;
+import com.zt.life.modules.mainPart.utils.GetShowDictList;
+import com.zt.life.modules.project.service.ProjectService;
+import com.zt.life.modules.testCheckOrder.dto.CheckOrderDto;
+import com.zt.life.modules.testCheckOrder.model.TestCheckOrder;
+import com.zt.life.modules.testCheckOrder.model.TestCheckOrderList;
+import com.zt.modules.coderule.service.SysCodeRuleService;
+import com.zt.modules.workflow.dto.FlowInfoDto;
+import com.zt.modules.workflow.service.WorkflowService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.zt.common.db.query.QueryFilter;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.FileNotFoundException;
+import java.io.UnsupportedEncodingException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * baseline_release
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-18
+ */
+@Service
+public class BaselineReleaseService  extends BaseService<BaselineReleaseDao, BaselineRelease> {
+    @Autowired
+    private ProjectService projectService;
+
+    @Autowired
+    private GetShowDictList getShowDictList;
+
+    @Autowired
+    private SysCodeRuleService sysCodeRuleService;
+
+    @Autowired
+    private WorkflowService workflowService;
+
+    @Autowired
+    private GetFilesPath getFilesPath;
+
+    @Autowired
+    private WordFileService wordFileService;
+
+    @Autowired
+    private BaselineReleaseRemarkService remarkService;
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param queryFilter
+     * @return
+     */
+    public List<BaselineRelease> page(QueryFilter queryFilter) {
+        List<BaselineRelease> list = baseDao.getList(queryFilter.getQueryParams());
+        if (list.size() > 0) {
+            workflowService.getRunFlow(list, "jxfb");
+        }
+        return baseDao.getList(queryFilter.getQueryParams());
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param ids
+     */
+    public void delete(Long[] ids) {
+        super.deleteLogic(ids);
+    }
+
+    public BaselineDto getDto(Long baselineId, Long projectId, String pageCode) {
+        BaselineDto data = new BaselineDto();
+        data.setPageCode(pageCode);
+        if (baselineId != null) {
+            data.setId(baselineId);
+            BaselineRelease baseline = this.get(baselineId);
+            data.setBaseline(baseline);
+            if (projectId == null) {
+                projectId = baseline.getProjectId();
+            }
+            List<BaselineReleaseRemark> remarkList = remarkService.getList(baselineId);
+            data.setRemarkList(remarkList);
+
+        } else {
+            BaselineRelease baseline = new BaselineRelease();
+            baseline.setPageCode(pageCode);
+            data.setBaseline(baseline);
+        }
+        if (projectId != null) {
+            data.setProjectId(projectId);
+            data.setProject(projectService.get(projectId));
+        }
+        return data;
+    }
+
+
+    public Long save(BaselineDto baselineDto) {
+        Long baselineId = baselineDto.getBaseline().getId();
+        if (baselineId != null)
+            baseDao.updateById(baselineDto.getBaseline());
+        else {
+            Map<String, String> map = new HashMap<>();
+            String pagecode = baselineDto.getPageCode();
+            map.put("funCode", "baseline_release_" + pagecode);
+            map.put("projectId", baselineDto.getProjectId().toString());
+            baselineDto.getBaseline().setProjectId(baselineDto.getProjectId());
+            baselineDto.getBaseline().setCode(sysCodeRuleService.getNewCode(map));
+            baseDao.insert(baselineDto.getBaseline());
+            baselineId = baselineDto.getBaseline().getId();
+        }
+
+        for (BaselineReleaseRemark remark : baselineDto.getRemarkList()) {
+            remark.setBaselineId(baselineId);
+            if (remark.getId() != null) {
+                remarkService.update(remark);
+            } else {
+                remark.setBaselineId(baselineId);
+                remarkService.insert(remark);
+            }
+        }
+
+        Long bizId = baselineDto.getBaseline().getId();
+        FlowInfoDto flowInfoDto = baselineDto.getFlowInfoDto();
+
+        if (flowInfoDto != null && flowInfoDto.getSubmitType() != null && "tj,bl".contains(flowInfoDto.getSubmitType())) {
+            if ("tj".equals(flowInfoDto.getSubmitType())) {
+                workflowService.startFlow(flowInfoDto.getFlowCode(), bizId);
+            }
+            workflowService.approvePass(flowInfoDto.getFlowCode(), bizId, flowInfoDto.getStepIdMark());
+        }
+        return baselineId;
+    }
+
+   /* public void exportCheckOrder(Long id, String pageCode, HttpServletRequest request, HttpServletResponse response) {
+        try {
+            CheckOrderDto dataObj = this.getDto(id, null, pageCode);
+
+            String processorPath = "鏂囦欢鍥剧墖:" + getFilesPath.getSignPath(Convert.toLong(dataObj.getCheckOrder().getProcessorId()));
+            dataObj.getCheckOrder().setProcessor(processorPath);
+            String verifierPath = "鏂囦欢鍥剧墖:" + getFilesPath.getSignPath(Convert.toLong(dataObj.getCheckOrder().getVerifierId()));
+            dataObj.getCheckOrder().setVerifier(verifierPath);
+            //閫氱敤瀛楀吀鍒楄〃瀛楃涓茬敓鎴�
+            for (TestCheckOrderList checkOrderList : dataObj.getCheckOrderList()) {
+                String value = checkOrderList.getCheckResult();
+                String checkResultStr="";
+                if ("plan".equals(pageCode) || "report".equals(pageCode) || "record".equals(pageCode) || "explain".equals(pageCode)) {
+                    checkResultStr = getShowDictList.getShowDictList(value, "tristate1", false);
+                }else{
+                    checkResultStr = getShowDictList.getShowDictList(value, "tristate2", false);
+                }
+                checkOrderList.setCheckResult(checkResultStr);
+            }
+
+            Map<String, String> map = new HashMap<>();
+            map.put("plan", "璁″垝");
+            map.put("report", "鎶ュ憡");
+            map.put("record", "璁板綍");
+            map.put("explain", "璇存槑");
+            map.put("contract", "鍚堝悓璇勫");
+            map.put("require", "娴嬭瘯闇�姹傚垎鏋愪笌绛栧垝");
+            map.put("execute", "娴嬭瘯璁捐銆佸疄鐜颁笌鎵ц");
+            map.put("summary", "娴嬭瘯鎬荤粨");
+            String type = map.get(pageCode);
+            dataObj.setPageCode(type);
+            WordFile wordFile = new WordFile();
+
+            if ("plan".equals(pageCode) || "report".equals(pageCode) || "record".equals(pageCode) || "explain".equals(pageCode)) {
+                wordFile.setModulePath("杞欢娴嬭瘯妫�鏌ュ崟.docx");
+                wordFile.setWordName(dataObj.getProject().getSoftwareName() + "_杞欢娴嬭瘯" + type + "妫�鏌ュ崟.docx");
+            } else {
+                wordFile.setModulePath("璐ㄩ噺淇濊瘉妫�鏌ュ崟.docx");
+                wordFile.setWordName(dataObj.getProject().getSoftwareName() + "_璐ㄩ噺淇濊瘉妫�鏌ュ崟(" + type + ").docx");
+            }
+            wordFileService.exportWordFile(request, dataObj, wordFile, response);
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        }
+    }*/
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/contractReview/service/ContractReviewService.java b/modules/mainPart/src/main/java/com/zt/life/modules/contractReview/service/ContractReviewService.java
index d5d38cc..e98c842 100644
--- a/modules/mainPart/src/main/java/com/zt/life/modules/contractReview/service/ContractReviewService.java
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/contractReview/service/ContractReviewService.java
@@ -124,6 +124,7 @@
         } else {
             testAgencyInfoService.update(reviewDto.getTestAgencyInfo());
         }
+        sysOssConfigService.updateOss(reviewDto.getId(), reviewDto.getFiles());// 淇濆瓨闄勪欢
         return true;
     }
 
diff --git a/modules/mainPart/src/main/resources/mapper/baselineRelease/BaselineReleaseDao.xml b/modules/mainPart/src/main/resources/mapper/baselineRelease/BaselineReleaseDao.xml
new file mode 100644
index 0000000..87bb09f
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/baselineRelease/BaselineReleaseDao.xml
@@ -0,0 +1,20 @@
+<?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.baselineRelease.dao.BaselineReleaseDao">
+
+    <select id="getList" resultType="com.zt.life.modules.baselineRelease.model.BaselineRelease">
+        select a.*
+        from baseline_release a
+        <where>
+            a.is_delete = 0
+            <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/baselineRelease/BaselineReleaseRemarkDao.xml b/modules/mainPart/src/main/resources/mapper/baselineRelease/BaselineReleaseRemarkDao.xml
new file mode 100644
index 0000000..1086c00
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/baselineRelease/BaselineReleaseRemarkDao.xml
@@ -0,0 +1,15 @@
+<?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.baselineRelease.dao.BaselineReleaseRemarkDao">
+
+    <select id="getList" resultType="com.zt.life.modules.baselineRelease.model.BaselineReleaseRemark">
+        select *
+        from baseline_release_remark
+        where baseline_id =  ${baselineId}
+          and is_delete = 0
+        ORDER BY no
+
+    </select>
+
+</mapper>
diff --git a/web/src/views/modules/baselineRelease/BaselineRelease-AddOrUpdate.vue b/web/src/views/modules/baselineRelease/BaselineRelease-AddOrUpdate.vue
new file mode 100644
index 0000000..56a3d61
--- /dev/null
+++ b/web/src/views/modules/baselineRelease/BaselineRelease-AddOrUpdate.vue
@@ -0,0 +1,233 @@
+<template>
+  <zt-dialog ref="dialog" column="2" @confirm="formSubmit" :stepMarker="stepMarker" :append-to-body="true">
+    <el-form :model="dataForm" :inline="true" ref="dataForm" style="padding-top: 0" :disabled="dataForm.disabled"
+             label-width="120px" class="testCheckFormAuto">
+      <div>
+        <el-form-item label-width="60px" label="缂栧彿:" style="width:100%;margin-bottom: -5px">
+          <span>{{ dataForm.baseline.code || '缂栧彿鑷姩鐢熸垚' }}</span>
+        </el-form-item>
+      </div>
+      <div style="border: 1px solid rgba(0,0,0,.2);width: 99%">
+        <div style="border-bottom: 1px solid rgba(0,0,0,.2);" class="testCheckContentWidth">
+          <el-form-item class="marginTopAndMarginBottom" label="椤圭洰鏍囪瘑" style="width: 49%">
+            <el-input v-model="dataForm.project.softwareIdentity" placeholder="椤圭洰鏍囪瘑"></el-input>
+          </el-form-item>
+          <el-form-item class="marginTopAndMarginBottom" label="椤圭洰鍚嶇О" style="width: 49%">
+            <el-input v-model="dataForm.project.softwareName" placeholder="椤圭洰鍚嶇О"></el-input>
+          </el-form-item>
+        </div>
+        <div style="border-bottom: 1px solid rgba(0,0,0,.2);">
+          <div style="padding-left:5px;padding-right:5px;">
+            <div style="width: 112px;text-align: center;font-weight: 600">鍩虹嚎鍙戝竷鎻忚堪</div>
+            <div class="table-container">
+              <el-form-item class="marginTopAndMarginBottom" label="鍩虹嚎绫诲瀷" style="width: 49%">
+                <zt-dict  v-model="dataForm.baseline.baselineType" placeholder="鍩虹嚎绫诲瀷" dict="baseline_type"
+                          :radio="true"></zt-dict>
+              </el-form-item>
+              <el-form-item class="marginTopAndMarginBottom" label="鍩虹嚎鍚嶇О" style="width: 49%">
+                <el-input v-model="dataForm.baseline.baselineName" placeholder="鍩虹嚎鍚嶇О"></el-input>
+              </el-form-item>
+              <el-form-item class="marginTopAndMarginBottom" label="鍩虹嚎鐗堟湰" style="width: 49%">
+                <el-input v-model="dataForm.baseline.baselineVersion" placeholder="鍩虹嚎鐗堟湰"></el-input>
+              </el-form-item>
+            </div>
+          </div>
+        </div>
+        <div class="el-flexCirculationDialog el-border-bottom">
+          <div style="width: 112px;text-align: center;font-weight: 600">
+            澶囨敞
+          </div>
+          <div class="el-border-left acceptDate" style="height: 80px;width: 80%;">
+            <div class="table-container">
+              <el-table ref="tableCirculatOrderList" class="el-software el-margin-top-bot" border
+                        :data="dataForm.remarkList"
+                        stripe>
+                <el-table-column prop="no" align="center" width="60" label="搴忓彿">
+                  <template slot-scope="scope">
+                    <span v-html="indexFormat(scope.$index)"></span>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="itemName" min-width="180" label="閰嶇疆椤瑰悕绉�">
+                </el-table-column>
+              </el-table>
+              <div v-if="!dataForm.disabled"  class="icon-container" @click="handleCommand">
+                <!-- 鏀剧疆鍥哄畾鐨勫浘鏍� -->
+                <i class="el-icon-plus"></i>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="el-flexCirculationDialog">
+          <div style="width: 112px;text-align: center;font-weight: 600">
+            鍙戝竷浜�
+          </div>
+          <div class="el-border-left-right acceptDate1" style="width: 40%;height: 40px;">
+            <el-form-item style="width: 100%;padding-left:20px;margin:0;">
+              <span>{{ dataForm.baseline.publisher}}</span>
+            </el-form-item>
+          </div>
+          <div style="width: 112px;text-align: center;font-weight: 600">
+            鍙戝竷鏃堕棿
+          </div>
+          <div class="el-border-left-right acceptDate1" style="width: 40%;height: 40px;">
+            <el-form-item style="width: 100%;padding-left:20px;margin:0;">
+              <span>{{ dataForm.baseline.publishDate}}</span>
+            </el-form-item>
+          </div>
+          <div style="width: 84px;text-align: center;font-weight: 600">
+           鍩虹嚎鎵瑰噯
+          </div>
+          <div class="el-configChangeDialog el-border-bottom">
+            <div class="DFormWidth DAlign DHold">
+              閮ㄩ棬鎰忚
+            </div>
+            <div style="width: calc(100% - 120px)" class="el-border-left">
+              <el-form-item class="el-wt-form-item-margin" label-width="20px" style="width: 85%">
+                <el-input :disabled="stepMarker!=='pzxbg_bmsh'" v-model="dataForm.baseline.departOpinion"></el-input>
+              </el-form-item>
+              <el-form-item label-width="80%" label="绛惧瓧锛�" style="width: 65%">
+                <span>{{dataForm.baseline.departSign}}</span>
+              </el-form-item>
+              <el-form-item label="鏃ユ湡锛�" style="width: 20%">
+                <span>{{dataForm.baseline.signDate}}</span>
+              </el-form-item>
+            </div>
+          </div>
+        </div>
+      </div>
+    </el-form>
+    <ConfigItemList ref="configItemList" @getChangeItemList="getChangeItemList"></ConfigItemList>
+    <template v-slot:footer>
+      <el-button v-if="dataForm.disabled" type="primary" @click="print()">鎵撳嵃</el-button>
+    </template>
+  </zt-dialog>
+
+
+</template>
+
+<script>
+  import qs from "qs";
+  import Cookies from "js-cookie";
+  import ConfigItemList from '../configItemChange/configItemList.vue'
+  import AddOrUpdateCheck from "../testCheckOrder/TestCheckOrder-AddOrUpdate";
+
+  export default {
+    data() {
+      return {
+        dataForm: {
+          id: '',
+          pageCode: '',
+          stepMarker: '',
+          pageName: {
+            demand: '闇�姹傚熀绾�', product:'浜у搧鍩虹嚎'
+          },
+          baseline: {
+            code: '',
+            baselineType: '',
+            baselineName: '',
+            baselineVersion: '',
+            remark: '',
+            publisher: '',
+            publishDate: '',
+            departOpinion: '',
+            departSign: '',
+            signDate: '',
+          },
+          project: {
+            softwareIdentity: '',
+            softwareName: ''
+          },
+          remarkList: []
+        }
+      }
+    },
+    components: {
+      ConfigItemList
+    },
+    methods: {
+      init(id, row) {
+         if (id) {
+          this.dataForm.id = id
+        } else {
+          this.dataForm.id = row.id
+        }
+        this.pageCode = row.pageCode
+        if (row.projectId) {
+          this.dataForm.projectId = row.projectId
+        }
+    /*    if (this.configDetailRow) {
+          if (!row.stepMarker) {
+            this.stepMarker = 'csjcd_first'
+            this.title = '鍙戣捣娴嬭瘯妫�鏌ュ崟'
+          } else {
+            this.title = row.stepName
+            this.stepMarker = row.stepMarker
+          }
+        }*/
+        //this.dataForm.disabled
+        this.getInfo()
+
+        //console.log(this.dataForm.id, this.dataForm.projectId, this.stepMarker, 'this.dataForm.id, this.dataForm.projectId,this.stepMarker')
+      },
+      indexFormat(index) {
+        return index += 1
+      },
+      handleCommand() {
+        this.$nextTick(()=>{
+          console.log(this.dataForm.projectId,'this.dataForm.projectId')
+          this.ids = this.dataForm.configChangeList.map(item=>item.selectId).join(',')
+          this.$refs.configItemList.$refs.dialog.init(this.dataForm.projectId,this.ids)
+        })
+      },
+      // 鑾峰彇淇℃伅
+      async getInfo() {
+        let params = {
+          baselineId: this.dataForm.id,
+          projectId: this.dataForm.projectId,
+          pageCode: this.pageCode
+        }
+        console.log(this.pageCode, "getInfo pageCode")
+        let res = await this.$http.get(`/baselineRelease/BaselineRelease/getDto`, {params: params})
+        this.dataForm = {
+          ...this.dataForm,
+          ...res.data
+        }
+        console.log(this.dataForm, 'this.dataForm this.dataForm')
+      },
+      getChangeItemList(data){
+        console.log(data.configChangeList,'getChangeItemList(data)')
+        if(data.configChangeList){
+          this.dataForm.configChangeList=this.dataForm.configChangeList.concat(data.configChangeList)
+        }
+        console.log(this.dataForm.configChangeList,ids,'this.dataForm.configChangeList')
+      },
+      async print() {
+        var params = qs.stringify({
+          token: Cookies.get('token'),
+          id: this.dataForm.id,
+          pageCode: this.pageCode
+        })
+        let apiURL = `/baselineRelease/BaselineRelease/exportbaseline`
+        window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${params}`
+      },
+      // 琛ㄥ崟鎻愪氦
+      async formSubmit(submitType) {
+        if (submitType == 'tj' || submitType == 'bl' ) {
+          let flowInfo = {
+            flowCode: 'jxfb',
+            stepIdMark: this.stepMarker,
+            submitType: submitType
+          }
+          this.dataForm.flowInfoDto = flowInfo;
+        }
+        console.log(this.dataForm, "this.dataForm formSubmit(submitType)")
+        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/baselineRelease/BaselineRelease/', this.dataForm)
+        if (res.success) {
+          await this.$tip.success()
+          this.$refs.dialog.close()
+          this.$emit('refreshDataList')
+        }
+      }
+    }
+  }
+</script>
diff --git a/web/src/views/modules/baselineRelease/BaselineRelease.vue b/web/src/views/modules/baselineRelease/BaselineRelease.vue
new file mode 100644
index 0000000..ebaf647
--- /dev/null
+++ b/web/src/views/modules/baselineRelease/BaselineRelease.vue
@@ -0,0 +1,87 @@
+<template>
+  <el-card shadow="never" class="aui-card--fill">
+    <div class="mod-baselineRelease-baselineRelease}">
+      <zt-table-wraper query-url="/baselineRelease/BaselineRelease/page" delete-url="/baselineRelease/BaselineRelease" v-slot="{ table }">
+        <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
+          <el-form-item>
+            <el-input v-model="dataForm.code" placeholder="璇疯緭鍏ュ熀绾垮彂甯冪紪鍙�" clearable></el-input>
+          </el-form-item>
+          <el-form-item>
+            <zt-dict v-model="dataForm.baselineType" dict="baseline_type" clearable></zt-dict>
+          </el-form-item>
+          <el-form-item>
+            <el-input v-model="dataForm.baselineName" placeholder="璇疯緭鍏ュ熀绾垮悕绉�" clearable></el-input>
+          </el-form-item>
+          <el-form-item>
+            <zt-button type="query" @click="table.query()"/>
+            <zt-button type="add"  @click="add()"/>
+            <zt-button type="delete" perm="baselineRelease: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 @selection-change="table.selectionChangeHandle">
+          <el-table-column type="selection" width="40"/>
+            <el-table-column prop="code" label="鍩虹嚎鍙戝竷缂栧彿"/>
+                <zt-table-column-dict prop="baselineType" label="鍩虹嚎绫诲瀷" dict="baseline_type"/>
+                <el-table-column prop="baselineName" label="鍩虹嚎鍚嶇О"/>
+                <el-table-column prop="baselineVersion" label="鍩虹嚎鐗堟湰"/>
+          <template v-slot="{row}">
+            <zt-table-button type="primary"  @click="openEditWin(row)">淇敼</zt-table-button>
+          </template>
+        </el-table>
+        <!-- 寮圭獥, 鏂板 / 淇敼 -->
+        <add-or-update ref="addOrUpdate" @recall="table.query"/>
+        <ProjectSelect :pageCode="pageCode" ref="projectSelect"
+                       @refreshDataList="table.query"
+                       @setProjectInfo="openAddWin">
+        </ProjectSelect>
+        <Preview ref="view"></Preview>
+      </zt-table-wraper>
+    </div>
+  </el-card>
+</template>
+
+<script>
+  import AddOrUpdate from './BaselineRelease-AddOrUpdate'
+  import ProjectSelect from "../project/Project-select"
+  import Preview from '@/views/pages/view'
+  export default {
+    data() {
+      return {
+        pageCode: '',
+        dataForm: {
+          code: '',
+          baselineType: '',
+          baselineName: '',
+          pageCode:this.$route.query.pageCode
+        }
+      }
+    },
+    mounted() {
+      this.pageCode = this.$route.query.pageCode
+      this.dataForm.pageCode = this.$route.query.pageCode
+      console.log(this.pageCode,'this.pageCode this.pageCode')
+    },
+    components: {
+      AddOrUpdate,
+      ProjectSelect,
+      Preview
+    },
+    methods: {
+      add() {
+        console.log(this.pageCode, 'this.pageCode')
+        this.$refs.projectSelect.$refs.dialog.init("test_check_order", {pageCode: this.pageCode})
+      },
+      openAddWin(projectRow) {
+        console.log(projectRow, 'openAddWin(projectRow) projectRow')
+        this.$refs.addOrUpdate.$refs.dialog.init(null, {id: null, projectId: projectRow.id, pageCode: this.pageCode})
+      },
+      openEditWin(checkOrderRow){
+        console.log(checkOrderRow,'openEditWin(checkOrderRow)')
+        this.$refs.addOrUpdate.$refs.dialog.init(checkOrderRow.id, {id: checkOrderRow.id, projectId: checkOrderRow.projectId, pageCode: this.pageCode})
+      },
+      preview(row) {
+        this.$refs.view.openAccessoryFormatSingle(row)
+      }
+    }
+  }
+</script>
diff --git a/web/src/views/modules/contractReview/ContractReview-AddOrUpdate.vue b/web/src/views/modules/contractReview/ContractReview-AddOrUpdate.vue
index 1a169de..1d384e1 100644
--- a/web/src/views/modules/contractReview/ContractReview-AddOrUpdate.vue
+++ b/web/src/views/modules/contractReview/ContractReview-AddOrUpdate.vue
@@ -90,14 +90,19 @@
           </div>
           <div style="width: calc(100% - 120px)" class="el-border-left">
             <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
-              <el-input type="textarea" :rows="2" placeholder="璇疯緭鍏ュ唴瀹�"
+              <el-input type="textarea" :rows="2" placeholder="璇疯緭鍏ヨ瘎瀹$粨璁�"
                         v-model="dataForm.contractReview.reviewConclusion"></el-input>
             </el-form-item>
             <el-form-item label="鎶�鏈礋璐d汉锛�" style="width: 48%">
-              <span>{{ dataForm.contractReview.technicalDirector }}</span>
+              <el-input type="textarea" :rows="1" placeholder="璇疯緭鍏ユ妧鏈礋璐d汉"
+                        v-model="dataForm.contractReview.technicalDirector"></el-input>
             </el-form-item>
             <el-form-item label="鏃ユ湡锛�" style="width: 48%">
-            {{ dataForm.contractReview.reviewDate | filterTime('YYYY骞碝M鏈圖D鏃�') }}
+              <el-date-picker
+                v-model="dataForm.contractReview.reviewDate"
+                type="date"
+                placeholder="璇烽�夋嫨鏃ユ湡">
+              </el-date-picker>
             </el-form-item>
           </div>
         </div>
diff --git a/web/src/views/modules/contractReview/ContractReview.vue b/web/src/views/modules/contractReview/ContractReview.vue
index 0d18622..acac3cd 100644
--- a/web/src/views/modules/contractReview/ContractReview.vue
+++ b/web/src/views/modules/contractReview/ContractReview.vue
@@ -41,6 +41,7 @@
       return {
         dataForm: {
           reviewType: '',
+          orderCode:''
         }
       }
     },
diff --git a/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue b/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue
index 8a13444..497e643 100644
--- a/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue
+++ b/web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue
@@ -121,9 +121,6 @@
     <template v-slot:footer>
       <el-button v-if="dataForm.disabled" type="primary" @click="print()">鎵撳嵃</el-button>
     </template>
-    <template v-slot:footer>
-      <el-button v-if="dataForm.disabled" type="primary" @click="print()">鎵撳嵃</el-button>
-    </template>
   </zt-dialog>
 </template>
 

--
Gitblit v1.9.1