From 954ad75b793d1c74cd2912ed8eef923bc588674a Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期四, 28 十二月 2023 16:21:50 +0800
Subject: [PATCH] 新增

---
 modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/dto/ReviewCommentDto.java                   |   26 ++
 web/src/views/modules/testReviewComment/TestReviewComment-AddOrUpdate.vue                                        |  101 +++++++++++
 modules/mainPart/src/main/resources/mapper/testReviewComment/TestReviewCommentDao.xml                            |   21 ++
 web/src/views/modules/testReviewComment/TestReviewComment.vue                                                    |   86 +++++++++
 modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/dao/TestReviewCommentDao.java               |   23 ++
 modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/model/TestReviewComment.java                |   41 ++++
 modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/service/TestReviewCommentService.java       |  128 ++++++++++++++
 modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/controller/TestReviewCommentController.java |  103 +++++++++++
 8 files changed, 529 insertions(+), 0 deletions(-)

diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/controller/TestReviewCommentController.java b/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/controller/TestReviewCommentController.java
new file mode 100644
index 0000000..afd33b0
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/controller/TestReviewCommentController.java
@@ -0,0 +1,103 @@
+package com.zt.life.modules.testReviewComment.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.testReviewComment.dto.ReviewCommentDto;
+import com.zt.life.modules.testReviewComment.model.TestReviewComment;
+import com.zt.life.modules.testReviewComment.service.TestReviewCommentService;
+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;
+
+
+/**
+ * test_review_comment
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-28
+ */
+@RestController
+@RequestMapping("/testReviewComment/TestReviewComment/")
+@Api(tags="test_review_comment")
+public class TestReviewCommentController {
+    @Autowired
+    private TestReviewCommentService testReviewCommentService;
+
+    @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 = "a.code^LK"),
+        @ApiImplicitParam(name = "softwareName", value = "椤圭洰鍚嶇О", dataType = Constant.QT.STRING, format = "p.software_name^LK"),
+        @ApiImplicitParam(name = "pageCode", value = "閰嶇疆椤规爣璇�", dataType = Constant.QT.STRING, format = "a.page_code^LK")
+})
+    public PageResult<TestReviewComment> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
+        return PageResult.ok(testReviewCommentService.page(queryFilter));
+    }
+
+    @GetMapping("getDto")
+    @ApiOperation("淇℃伅")
+    public Result<ReviewCommentDto> getDto(Long commentId, Long projectId, String pageCode) {
+        ReviewCommentDto data = testReviewCommentService.getDto(commentId, projectId, pageCode);
+        return Result.ok(data);
+    }
+
+    @PostMapping
+    @ApiOperation("鏂板")
+    @LogOperation("鏂板")
+    public Result<Long> insert(@RequestBody ReviewCommentDto reviewCommentDto) {
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(reviewCommentDto, AddGroup.class, DefaultGroup.class);
+        Long result = testReviewCommentService.save(reviewCommentDto);
+        return Result.ok(result);
+    }
+
+    @PutMapping
+    @ApiOperation("淇敼")
+    @LogOperation("淇敼")
+    public Result<Long> update(@RequestBody ReviewCommentDto reviewCommentDto) {
+        //鏁堥獙鏁版嵁
+        ValidatorUtils.validateEntity(reviewCommentDto, UpdateGroup.class, DefaultGroup.class);
+        Long result = testReviewCommentService.save(reviewCommentDto);
+        return Result.ok(result);
+    }
+
+    @DeleteMapping("deleteReviewComment")
+    @ApiOperation("鍒犻櫎")
+    @LogOperation("鍒犻櫎")
+    public Result delete(@RequestBody Long[] ids){
+        //鏁堥獙鏁版嵁
+        AssertUtils.isArrayEmpty(ids, "id");
+        testReviewCommentService.delete(ids);
+        return Result.ok();
+    }
+    @GetMapping("exportReviewComment")
+    @ApiOperation("鎵撳嵃鍩虹嚎鍙戝竷涔�")
+    @LogOperation("鎵撳嵃鍩虹嚎鍙戝竷涔�")
+    public void exportBaseline(Long id, String pageCode, HttpServletRequest request, HttpServletResponse response) {
+        testReviewCommentService.exportReviewComment(id,pageCode, request, response);
+    }
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/dao/TestReviewCommentDao.java b/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/dao/TestReviewCommentDao.java
new file mode 100644
index 0000000..9e0d552
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/dao/TestReviewCommentDao.java
@@ -0,0 +1,23 @@
+package com.zt.life.modules.testReviewComment.dao;
+
+import com.zt.common.dao.BaseDao;
+import com.zt.life.modules.testReviewComment.model.TestReviewComment;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * test_review_comment
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-28
+ */
+@Mapper
+public interface TestReviewCommentDao extends BaseDao<TestReviewComment> {
+
+    List<TestReviewComment> getList(Map<String, Object> params);
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/dto/ReviewCommentDto.java b/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/dto/ReviewCommentDto.java
new file mode 100644
index 0000000..c372876
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/dto/ReviewCommentDto.java
@@ -0,0 +1,26 @@
+package com.zt.life.modules.testReviewComment.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.life.modules.testReviewComment.model.TestReviewComment;
+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 ReviewCommentDto {
+    private Long id;//ID
+    private Long projectId;//椤圭洰ID
+    private String pageCode;//閰嶇疆椤圭被鍨�
+
+    
+    @ApiModelProperty(value = "娴嬭瘯璇勫鎰忚")
+    private TestReviewComment reviewComment;
+    @ApiModelProperty(value = "娴嬭瘯椤圭洰鍩烘湰淇℃伅")
+    private Project project;
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/model/TestReviewComment.java b/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/model/TestReviewComment.java
new file mode 100644
index 0000000..7ad0133
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/model/TestReviewComment.java
@@ -0,0 +1,41 @@
+package com.zt.life.modules.testReviewComment.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;
+
+/**
+ * test_review_comment
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-28
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("test_review_comment")
+public class TestReviewComment extends BusiEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "椤圭洰ID")
+	private Long projectId;
+
+	@ApiModelProperty(value = "椤甸潰鏍囪瘑")
+	private String pageCode;
+
+	@ApiModelProperty(value = "娴嬭瘯璇勫缂栧彿")
+	private String code;
+
+	@ApiModelProperty(value = "璇勫鏃ユ湡")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	private Date reviewDate;
+
+	@ApiModelProperty(value = "璇勫浜烘暟")
+	private Integer reviewerNum;
+
+}
diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/service/TestReviewCommentService.java b/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/service/TestReviewCommentService.java
new file mode 100644
index 0000000..ffc7698
--- /dev/null
+++ b/modules/mainPart/src/main/java/com/zt/life/modules/testReviewComment/service/TestReviewCommentService.java
@@ -0,0 +1,128 @@
+package com.zt.life.modules.testReviewComment.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.dto.BaselineDto;
+import com.zt.life.modules.baselineRelease.model.BaselineRelease;
+import com.zt.life.modules.baselineRelease.model.BaselineReleaseRemark;
+import com.zt.life.modules.baselineRelease.service.BaselineReleaseRemarkService;
+import com.zt.life.modules.project.service.ProjectService;
+import com.zt.life.modules.testReviewComment.dao.TestReviewCommentDao;
+import com.zt.life.modules.testReviewComment.dto.ReviewCommentDto;
+import com.zt.life.modules.testReviewComment.model.TestReviewComment;
+import com.zt.life.sys.dto.OssDto;
+import com.zt.modules.coderule.service.SysCodeRuleService;
+import com.zt.modules.oss.service.SysOssService;
+import com.zt.modules.workflow.dto.FlowInfoDto;
+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;
+
+
+/**
+ * test_review_comment
+ *
+ * @author zt generator 
+ * @since 1.0.0 2023-12-28
+ */
+@Service
+public class TestReviewCommentService  extends BaseService<TestReviewCommentDao, TestReviewComment> {
+
+    @Autowired
+    private SysOssService sysOssService;
+
+    @Autowired
+    private ProjectService projectService;
+
+    @Autowired
+    private SysCodeRuleService sysCodeRuleService;
+
+    @Autowired
+    private WordFileService wordFileService;
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param queryFilter
+     * @return
+     */
+    public List<TestReviewComment> page(QueryFilter queryFilter) {
+        List<TestReviewComment> list = baseDao.getList(queryFilter.getQueryParams());
+        if (list.size() > 0) {
+            sysOssService.setListOsses(list, "test_review_comment");
+        }
+        return list;
+    }
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param ids
+     */
+    public void delete(Long[] ids) {
+        super.deleteLogic(ids);
+    }
+
+
+    public ReviewCommentDto getDto(Long commentId, Long projectId, String pageCode) {
+        ReviewCommentDto data = new ReviewCommentDto();
+        data.setPageCode(pageCode);
+        if (commentId != null) {
+            data.setId(commentId);
+            TestReviewComment reviewComment = this.get(commentId);
+            data.setReviewComment(reviewComment);
+            if (reviewComment != null && projectId == null) {
+                projectId = reviewComment.getProjectId();
+            }
+        } else {
+            TestReviewComment reviewComment = new TestReviewComment();
+            reviewComment.setPageCode(pageCode);
+            data.setReviewComment(reviewComment);
+        }
+        if (projectId != null) {
+            data.setProjectId(projectId);
+            data.setProject(projectService.get(projectId));
+        }
+        return data;
+    }
+    public Long save(ReviewCommentDto reviewCommentDto) {
+        Long commentId = reviewCommentDto.getReviewComment().getId();
+        if (commentId != null)
+            baseDao.updateById(reviewCommentDto.getReviewComment());
+        else {
+            Map<String, String> map = new HashMap<>();
+            String pagecode = reviewCommentDto.getPageCode();
+            map.put("funCode", "test_review_comment_" + pagecode);
+            map.put("projectId", reviewCommentDto.getProjectId().toString());
+            reviewCommentDto.getReviewComment().setProjectId(reviewCommentDto.getProjectId());
+            reviewCommentDto.getReviewComment().setCode(sysCodeRuleService.getNewCode(map));
+            baseDao.insert(reviewCommentDto.getReviewComment());
+            commentId = reviewCommentDto.getReviewComment().getId();
+        }
+        return commentId;
+    }
+
+    public void exportReviewComment(Long id, String pageCode, HttpServletRequest request, HttpServletResponse response) {
+        try {
+            ReviewCommentDto dataObj = this.getDto(id, null, pageCode);
+            WordFile wordFile = new WordFile();
+            wordFile.setModulePath("鍩虹嚎鍙戝竷涔�.docx");
+            wordFile.setWordName(dataObj.getProject().getSoftwareName() + "_鍩虹嚎鍙戝竷涔�.docx");
+            wordFileService.exportWordFile(request, dataObj, wordFile, response);
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/modules/mainPart/src/main/resources/mapper/testReviewComment/TestReviewCommentDao.xml b/modules/mainPart/src/main/resources/mapper/testReviewComment/TestReviewCommentDao.xml
new file mode 100644
index 0000000..4ac09fd
--- /dev/null
+++ b/modules/mainPart/src/main/resources/mapper/testReviewComment/TestReviewCommentDao.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.testReviewComment.dao.TestReviewCommentDao">
+
+    <select id="getList" resultType="com.zt.life.modules.testReviewComment.model.TestReviewComment">
+        select a.*,p.software_name
+        from test_review_comment a
+        INNER JOIN  project p ON p.id = a.project_id
+        <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/web/src/views/modules/testReviewComment/TestReviewComment-AddOrUpdate.vue b/web/src/views/modules/testReviewComment/TestReviewComment-AddOrUpdate.vue
new file mode 100644
index 0000000..129261a
--- /dev/null
+++ b/web/src/views/modules/testReviewComment/TestReviewComment-AddOrUpdate.vue
@@ -0,0 +1,101 @@
+<template>
+  <zt-dialog ref="dialog"  @confirm="formSubmit">
+    <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
+      <zt-form-item label="椤圭洰ID" prop="projectId" rules="required">
+                        <el-input v-model="dataForm.projectId"></el-input>
+                </zt-form-item>
+      <zt-form-item label="椤甸潰鏍囪瘑" prop="pageCode" rules="required">
+                        <el-input v-model="dataForm.pageCode"></el-input>
+                </zt-form-item>
+      <zt-form-item label="娴嬭瘯璇勫缂栧彿" prop="code" rules="required">
+                        <el-input v-model="dataForm.code"></el-input>
+                </zt-form-item>
+      <zt-form-item label="璇勫鏃ユ湡" prop="reviewDate" rules="required">
+                        <el-input v-model="dataForm.reviewDate"></el-input>
+                </zt-form-item>
+      <zt-form-item label="璇勫浜烘暟" prop="reviewerNum" rules="required">
+                        <el-input v-model="dataForm.reviewerNum"></el-input>
+                </zt-form-item>
+    </el-form>
+    <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";
+
+  export default {
+    data() {
+      return {
+        pageCode: '',
+        subtitle: '',
+        pageName: {
+          plan: '娴嬭瘯璁″垝', explain: '娴嬭瘯灏辩华', record: '娴嬭瘯鎬荤粨'
+        },
+        dataForm: {
+          id: '',
+          project: {
+            softwareName: '',
+          },
+          reviewComment: {
+            code: '',
+            reviewDate: '',
+            reviewerNum: ''
+          },
+          projectId: '',
+        }
+      }
+    },
+    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
+        }
+        this.getInfo()
+        //console.log(this.dataForm.id, this.dataForm.projectId, this.stepMarker, 'this.dataForm.id, this.dataForm.projectId,this.stepMarker')
+      },
+      // 鑾峰彇淇℃伅
+      async getInfo() {
+        let params = {
+          commentId: this.dataForm.id,
+          projectId: this.dataForm.projectId,
+          pageCode: this.pageCode
+        }
+        console.log(this.pageCode, "getInfo pageCode")
+        let res = await this.$http.get(`/testReviewComment/TestReviewComment/getDto`, {params: params})
+        this.dataForm = {
+          ...this.dataForm,
+          ...res.data
+        }
+        console.log(this.dataForm, 'this.dataForm this.dataForm')
+      },
+      async print() {
+        var params = qs.stringify({
+          token: Cookies.get('token'),
+          id: this.dataForm.id,
+          pageCode: this.pageCode
+        })
+        let apiURL = `/testReviewComment/TestReviewComment/exportComment`
+        window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${params}`
+      },
+      // 琛ㄥ崟鎻愪氦
+      async formSubmit() {
+        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/testReviewComment/TestReviewComment/', this.dataForm)
+        if (res.success) {
+          await this.$tip.success()
+          this.$refs.dialog.close()
+          this.$emit('refreshDataList')
+        }
+      }
+    }
+  }
+</script>
diff --git a/web/src/views/modules/testReviewComment/TestReviewComment.vue b/web/src/views/modules/testReviewComment/TestReviewComment.vue
new file mode 100644
index 0000000..8debf6b
--- /dev/null
+++ b/web/src/views/modules/testReviewComment/TestReviewComment.vue
@@ -0,0 +1,86 @@
+<template>
+  <el-card shadow="never" class="aui-card--fill">
+    <div class="mod-testReviewComment-testReviewComment}">
+      <zt-table-wraper query-url="/testReviewComment/TestReviewComment/page" delete-url="/testReviewComment/TestReviewComment" 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>
+            <el-input v-model="dataForm.softwareName" placeholder="璇疯緭鍏ラ」鐩悕绉�" clearable></el-input>
+          </el-form-item>
+          <el-form-item>
+            <zt-button type="query" @click="table.query()"/>
+            <zt-button type="primary" class="el-icon-edit"  @click="add()">鏂板</zt-button>
+            <zt-button type="delete" perm="testReviewComment: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="娴嬭瘯璇勫缂栧彿"/>
+            <el-table-column prop="reviewDate" label="璇勫鏃ユ湡"/>
+          <el-table-column prop="softwareName" label="椤圭洰鍚嶇О"/>
+          <zt-table-column-handle :table="table"  :hasEdit='false' edit-perm="testReviewComment:update"
+                                  delete-perm="testCheckOrder::delete">
+            <template v-slot="{row}">
+              <zt-table-button type="primary"  @click="openEditWin(row)">淇敼</zt-table-button>
+            </template>
+
+          </zt-table-column-handle>
+        </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 './TestReviewComment-AddOrUpdate'
+  import ProjectSelect from "../project/Project-select.vue"
+  import Preview from '@/views/pages/view'
+  export default {
+    data() {
+      return {
+        pageCode: '',
+        dataForm: {
+          code: '',
+          softwareName: '',
+          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_review_comment", {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(row){
+        console.log(row,'openEditWin(checkOrderRow)')
+        this.$refs.addOrUpdate.$refs.dialog.init(row.id, {id: row.id, projectId: row.projectId, pageCode: this.pageCode})
+      },
+      preview(row) {
+        this.$refs.view.openAccessoryFormatSingle(row)
+      }
+    }
+  }
+</script>

--
Gitblit v1.9.1