jinlin
2023-11-08 b4ba324df408dc5f64b6f767b71ea9cfc870e5f0
Changes
2个文件已修改
15个文件已添加
1175 ■■■■■ 已修改文件
modules/mainPart/src/main/java/com/zt/life/modules/project/controller/SoftwareTestOrderController.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/dao/SoftwareTestOrderDao.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/dto/ProjectDto.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java 325 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/sysBaseInfo/controller/TestAgencyInfoController.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/sysBaseInfo/dao/TestAgencyInfoDao.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/sysBaseInfo/model/TestAgencyInfo.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/sysBaseInfo/service/TestAgencyInfoService.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/newplan/TaskCenterDao.xml 100 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/project/SoftwareTestOrderDao.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/sysBaseInfo/TestAgencyInfoDao.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/project/Project.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/project/SoftwareTestOrder.vue 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/sysBaseInfo/TestAgencyInfo-AddOrUpdate.vue 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/sysBaseInfo/TestAgencyInfo.vue 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/controller/SoftwareTestOrderController.java
New file
@@ -0,0 +1,98 @@
package com.zt.life.modules.project.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.project.model.SoftwareTestOrder;
import com.zt.life.modules.project.service.SoftwareTestOrderService;
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;
/**
 * software_test_order
 *
 * @author zt generator
 * @since 1.0.0 2023-11-08
 */
@RestController
@RequestMapping("/project/SoftwareTestOrder/")
@Api(tags="software_test_order")
public class SoftwareTestOrderController {
    @Autowired
    private SoftwareTestOrderService softwareTestOrderService;
    @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 = "testBasis", value = "测试依据", dataType = Constant.QT.STRING, format = "test_basis^EQ"),
        @ApiImplicitParam(name = "testType", value = "测试类型", dataType = Constant.QT.STRING, format = "test_type^EQ"),
        @ApiImplicitParam(name = "testStandard", value = "测试标准", dataType = Constant.QT.STRING, format = "test_standard^EQ"),
        @ApiImplicitParam(name = "articleNature", value = "物品性质", dataType = Constant.QT.STRING, format = "article_nature^EQ")})
    public PageResult<SoftwareTestOrder> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
        return PageResult.ok(softwareTestOrderService.page(queryFilter));
    }
    @GetMapping("{id}")
    @ApiOperation("信息")
    public Result<SoftwareTestOrder> get(@PathVariable("id") Long id){
        SoftwareTestOrder data = softwareTestOrderService.get(id);
        return Result.ok(data);
    }
    @PostMapping
    @ApiOperation("新增")
    @LogOperation("新增")
    public Result insert(@RequestBody SoftwareTestOrder softwareTestOrder){
        //效验数据
        ValidatorUtils.validateEntity(softwareTestOrder, AddGroup.class, DefaultGroup.class);
        softwareTestOrderService.insert(softwareTestOrder);
        return Result.ok();
    }
    @PutMapping
    @ApiOperation("修改")
    @LogOperation("修改")
    public Result update(@RequestBody SoftwareTestOrder softwareTestOrder){
        //效验数据
        ValidatorUtils.validateEntity(softwareTestOrder, UpdateGroup.class, DefaultGroup.class);
        softwareTestOrderService.update(softwareTestOrder);
        return Result.ok();
    }
    @DeleteMapping
    @ApiOperation("删除")
    @LogOperation("删除")
    public Result delete(@RequestBody Long[] ids){
        //效验数据
        AssertUtils.isArrayEmpty(ids, "id");
        softwareTestOrderService.delete(ids);
        return Result.ok();
    }
}
modules/mainPart/src/main/java/com/zt/life/modules/project/dao/SoftwareTestOrderDao.java
New file
@@ -0,0 +1,23 @@
package com.zt.life.modules.project.dao;
import com.zt.common.dao.BaseDao;
import com.zt.life.modules.project.model.SoftwareTestOrder;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
 * software_test_order
 *
 * @author zt generator
 * @since 1.0.0 2023-11-08
 */
@Mapper
public interface SoftwareTestOrderDao extends BaseDao<SoftwareTestOrder> {
    List<SoftwareTestOrder> getList(Map<String, Object> params);
}
modules/mainPart/src/main/java/com/zt/life/modules/project/dto/ProjectDto.java
New file
@@ -0,0 +1,27 @@
package com.zt.life.modules.project.dto;
import com.zt.life.modules.project.model.Project;
import com.zt.life.modules.project.model.SoftwareTestOrder;
import com.zt.life.modules.project.model.SoftwareTestOrderDeliverable;
import com.zt.life.modules.project.model.SoftwareTestOrderMeasured;
import com.zt.life.modules.sysBaseInfo.model.TestAgencyInfo;
import com.zt.life.sys.dto.OssDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class ProjectDto extends Project {
    private SoftwareTestOrder softwareTestOrder;
    private Project project;
    private TestAgencyInfo TestAgencyInfo;
    @ApiModelProperty(value = "被测件")
    private List<SoftwareTestOrderMeasured> childrenTable1 = new ArrayList<>();
    @ApiModelProperty(value = "交付件")
    private List<SoftwareTestOrderDeliverable> childrenTable2 = new ArrayList<>();
}
modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java
New file
@@ -0,0 +1,325 @@
package com.zt.life.modules.project.model;
import com.baomidou.mybatisplus.annotation.TableField;
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;
/**
 * software_test_order
 *
 * @author zt generator
 * @since 1.0.0 2023-11-08
 */
@Data
@EqualsAndHashCode(callSuper=false)
public class SoftwareTestOrder extends BusiEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "项目ID")
    private Long projectId;
    @ApiModelProperty(value = "运行环境")
    private String optEnviron;
    @ApiModelProperty(value = "编程语言")
    private String programLang;
    @ApiModelProperty(value = "测试依据")
    private String testBasis;
    @ApiModelProperty(value = "测试类型")
    private String testType;
    @ApiModelProperty(value = "测试标准")
    private String testStandard;
    @ApiModelProperty(value = "开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startDate;
    @ApiModelProperty(value = "结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;
    @ApiModelProperty(value = "测试场地")
    private String testVenue;
    @ApiModelProperty(value = "其他要求")
    private String otherRequire;
    @ApiModelProperty(value = "测试日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date testDate;
    @ApiModelProperty(value = "交付日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date deliveryDate;
    @ApiModelProperty(value = "检测费用")
    private Integer testCost;
    @ApiModelProperty(value = "物品性质")
    private String articleNature;
    @ApiModelProperty(value = "样品状态")
    private String sampleStatus;
    @ApiModelProperty(value = "测评机构名称")
    private String agencyName;
    @ApiModelProperty(value = "地址")
    private String site;
    @ApiModelProperty(value = "业务联系")
    private String businContact;
    @ApiModelProperty(value = "业务投诉")
    private String businComplaint;
    @ApiModelProperty(value = "实验室联系人")
    private String laborContact;
    @ApiModelProperty(value = "实验室联系电话")
    private String labContactNum;
    @ApiModelProperty(value = "邮政编码")
    private String postalCode;
    @ApiModelProperty(value = "传真")
    private String fax;
    @TableField(exist = false)
    @ApiModelProperty(value = "委托单位名称")
    private String entrustUnitName;
    @TableField(exist = false)
    @ApiModelProperty(value = "委托单位地址")
    private String entrustUnitAddress;
    @TableField(exist = false)
    @ApiModelProperty(value = "委托单位联系人")
    private String entrustUnitContact;
    @TableField(exist = false)
    @ApiModelProperty(value = "委托单位联系方式")
    private String entrustUnitContWay;
    @TableField(exist = false)
    @ApiModelProperty(value = "开发单位名称")
    private String developUnitName;
    @TableField(exist = false)
    @ApiModelProperty(value = "开发单位地址")
    private String developUnitAddress;
    @TableField(exist = false)
    @ApiModelProperty(value = "开发单位联系人")
    private String developUnitContact;
    @TableField(exist = false)
    @ApiModelProperty(value = "开发单位联系方式")
    private String developUnitContWay;
    @TableField(exist = false)
    @ApiModelProperty(value = "软件名称")
    private String softwareName;
    @TableField(exist = false)
    @ApiModelProperty(value = "项目编号")
    private String code;
    @TableField(exist = false)
    @ApiModelProperty(value = "项目标识")
    private String identity;
    @TableField(exist = false)
    @ApiModelProperty(value = "密级")
    private Integer secretClass;
    @TableField(exist = false)
    @ApiModelProperty(value = "关键等级")
    private Integer criticalLevel;
    @TableField(exist = false)
    @ApiModelProperty(value = "测试级别")
    private Integer testLevel;
    @TableField(exist = false)
    @ApiModelProperty(value = "软件类型")
    private String softwareType;
    @TableField(exist = false)
    @ApiModelProperty(value = "项目负责人")
    private String projectLeader;
    @TableField(exist = false)
    @ApiModelProperty(value = "项目测试人员")
    private String projectTesters;
    @TableField(exist = false)
    @ApiModelProperty(value = "项目审核人员")
    private String projectReviewer;
    @TableField(exist = false)
    @ApiModelProperty(value = "是否签署合同")
    private Integer isContract;
    public String getEntrustUnitName() {
        return entrustUnitName;
    }
    public void setEntrustUnitName(String entrustUnitName) {
        this.entrustUnitName = entrustUnitName;
    }
    public String getEntrustUnitAddress() {
        return entrustUnitAddress;
    }
    public void setEntrustUnitAddress(String entrustUnitAddress) {
        this.entrustUnitAddress = entrustUnitAddress;
    }
    public String getEntrustUnitContact() {
        return entrustUnitContact;
    }
    public void setEntrustUnitContact(String entrustUnitContact) {
        this.entrustUnitContact = entrustUnitContact;
    }
    public String getEntrustUnitContWay() {
        return entrustUnitContWay;
    }
    public void setEntrustUnitContWay(String entrustUnitContWay) {
        this.entrustUnitContWay = entrustUnitContWay;
    }
    public String getDevelopUnitName() {
        return developUnitName;
    }
    public void setDevelopUnitName(String developUnitName) {
        this.developUnitName = developUnitName;
    }
    public String getDevelopUnitAddress() {
        return developUnitAddress;
    }
    public void setDevelopUnitAddress(String developUnitAddress) {
        this.developUnitAddress = developUnitAddress;
    }
    public String getDevelopUnitContact() {
        return developUnitContact;
    }
    public void setDevelopUnitContact(String developUnitContact) {
        this.developUnitContact = developUnitContact;
    }
    public String getDevelopUnitContWay() {
        return developUnitContWay;
    }
    public void setDevelopUnitContWay(String developUnitContWay) {
        this.developUnitContWay = developUnitContWay;
    }
    public String getSoftwareName() {
        return softwareName;
    }
    public void setSoftwareName(String softwareName) {
        this.softwareName = softwareName;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getIdentity() {
        return identity;
    }
    public void setIdentity(String identity) {
        this.identity = identity;
    }
    public Integer getSecretClass() {
        return secretClass;
    }
    public void setSecretClass(Integer secretClass) {
        this.secretClass = secretClass;
    }
    public Integer getCriticalLevel() {
        return criticalLevel;
    }
    public void setCriticalLevel(Integer criticalLevel) {
        this.criticalLevel = criticalLevel;
    }
    public Integer getTestLevel() {
        return testLevel;
    }
    public void setTestLevel(Integer testLevel) {
        this.testLevel = testLevel;
    }
    public String getSoftwareType() {
        return softwareType;
    }
    public void setSoftwareType(String softwareType) {
        this.softwareType = softwareType;
    }
    public String getProjectLeader() {
        return projectLeader;
    }
    public void setProjectLeader(String projectLeader) {
        this.projectLeader = projectLeader;
    }
    public String getProjectTesters() {
        return projectTesters;
    }
    public void setProjectTesters(String projectTesters) {
        this.projectTesters = projectTesters;
    }
    public String getProjectReviewer() {
        return projectReviewer;
    }
    public void setProjectReviewer(String projectReviewer) {
        this.projectReviewer = projectReviewer;
    }
    public Integer getIsContract() {
        return isContract;
    }
    public void setIsContract(Integer isContract) {
        this.isContract = isContract;
    }
}
modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
New file
@@ -0,0 +1,40 @@
package com.zt.life.modules.project.service;
import com.zt.common.service.BaseService;
import com.zt.life.modules.project.dao.SoftwareTestOrderDao;
import com.zt.life.modules.project.model.SoftwareTestOrder;
import org.springframework.stereotype.Service;
import com.zt.common.db.query.QueryFilter;
import javax.annotation.Resource;
import java.util.List;
/**
 * software_test_order
 *
 * @author zt generator
 * @since 1.0.0 2023-11-08
 */
@Service
public class SoftwareTestOrderService  extends BaseService<SoftwareTestOrderDao, SoftwareTestOrder> {
    /**
     * 分页查询
     *
     * @param queryFilter
     * @return
     */
    public List<SoftwareTestOrder> page(QueryFilter queryFilter) {
        return baseDao.getList(queryFilter.getQueryParams());
    }
    /**
     * 删除
     *
     * @param ids
     */
    public void delete(Long[] ids) {
        super.deleteLogic(ids);
    }
}
modules/mainPart/src/main/java/com/zt/life/modules/sysBaseInfo/controller/TestAgencyInfoController.java
New file
@@ -0,0 +1,96 @@
package com.zt.life.modules.sysBaseInfo.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.sysBaseInfo.model.TestAgencyInfo;
import com.zt.life.modules.sysBaseInfo.service.TestAgencyInfoService;
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;
/**
 * test_agency_info
 *
 * @author zt generator
 * @since 1.0.0 2023-11-08
 */
@RestController
@RequestMapping("/sysBaseInfo/TestAgencyInfo/")
@Api(tags="test_agency_info")
public class TestAgencyInfoController {
    @Autowired
    private TestAgencyInfoService testAgencyInfoService;
    @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 = "agencyName", value = "测评机构名称", dataType = Constant.QT.STRING, format = "agency_name^LK")    })
    public PageResult<TestAgencyInfo> page(@ApiIgnore @QueryParam QueryFilter queryFilter){
        return PageResult.ok(testAgencyInfoService.page(queryFilter));
    }
    @GetMapping("{id}")
    @ApiOperation("信息")
    public Result<TestAgencyInfo> get(@PathVariable("id") Long id){
        TestAgencyInfo data = testAgencyInfoService.get(id);
        return Result.ok(data);
    }
    @PostMapping
    @ApiOperation("新增")
    @LogOperation("新增")
    public Result insert(@RequestBody TestAgencyInfo testAgencyInfo){
        //效验数据
        ValidatorUtils.validateEntity(testAgencyInfo, AddGroup.class, DefaultGroup.class);
        testAgencyInfoService.insert(testAgencyInfo);
        return Result.ok();
    }
    @PutMapping
    @ApiOperation("修改")
    @LogOperation("修改")
    public Result update(@RequestBody TestAgencyInfo testAgencyInfo){
        //效验数据
        ValidatorUtils.validateEntity(testAgencyInfo, UpdateGroup.class, DefaultGroup.class);
        testAgencyInfoService.update(testAgencyInfo);
        return Result.ok();
    }
    @DeleteMapping
    @ApiOperation("删除")
    @LogOperation("删除")
    public Result delete(@RequestBody Long[] ids){
        //效验数据
        AssertUtils.isArrayEmpty(ids, "id");
        testAgencyInfoService.delete(ids);
        return Result.ok();
    }
}
modules/mainPart/src/main/java/com/zt/life/modules/sysBaseInfo/dao/TestAgencyInfoDao.java
New file
@@ -0,0 +1,23 @@
package com.zt.life.modules.sysBaseInfo.dao;
import com.zt.common.dao.BaseDao;
import com.zt.life.modules.sysBaseInfo.model.TestAgencyInfo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
 * test_agency_info
 *
 * @author zt generator
 * @since 1.0.0 2023-11-08
 */
@Mapper
public interface TestAgencyInfoDao extends BaseDao<TestAgencyInfo> {
    List<TestAgencyInfo> getList(Map<String, Object> params);
}
modules/mainPart/src/main/java/com/zt/life/modules/sysBaseInfo/model/TestAgencyInfo.java
New file
@@ -0,0 +1,48 @@
package com.zt.life.modules.sysBaseInfo.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;
/**
 * test_agency_info
 *
 * @author zt generator
 * @since 1.0.0 2023-11-08
 */
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("test_agency_info")
public class TestAgencyInfo extends BusiEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "测评机构名称")
    private String agencyName;
    @ApiModelProperty(value = "地址")
    private String site;
    @ApiModelProperty(value = "业务联系")
    private String businContact;
    @ApiModelProperty(value = "业务投诉")
    private String businComplaint;
    @ApiModelProperty(value = "实验室联系人")
    private String laborContact;
    @ApiModelProperty(value = "实验室联系电话")
    private String labContactNum;
    @ApiModelProperty(value = "邮政编码")
    private String postalCode;
    @ApiModelProperty(value = "传真")
    private String fax;
}
modules/mainPart/src/main/java/com/zt/life/modules/sysBaseInfo/service/TestAgencyInfoService.java
New file
@@ -0,0 +1,40 @@
package com.zt.life.modules.sysBaseInfo.service;
import com.zt.common.service.BaseService;
import com.zt.life.modules.sysBaseInfo.dao.TestAgencyInfoDao;
import com.zt.life.modules.sysBaseInfo.model.TestAgencyInfo;
import org.springframework.stereotype.Service;
import com.zt.common.db.query.QueryFilter;
import javax.annotation.Resource;
import java.util.List;
/**
 * test_agency_info
 *
 * @author zt generator
 * @since 1.0.0 2023-11-08
 */
@Service
public class TestAgencyInfoService  extends BaseService<TestAgencyInfoDao, TestAgencyInfo> {
    /**
     * 分页查询
     *
     * @param queryFilter
     * @return
     */
    public List<TestAgencyInfo> page(QueryFilter queryFilter) {
        return baseDao.getList(queryFilter.getQueryParams());
    }
    /**
     * 删除
     *
     * @param ids
     */
    public void delete(Long[] ids) {
        super.deleteLogic(ids);
    }
}
modules/mainPart/src/main/resources/mapper/newplan/TaskCenterDao.xml
@@ -65,15 +65,15 @@
        a.title  as summary,
        b.STEP_ROUTER,
        b.STEP_ROUTER_ID
        FROM DJ_WF_RUN_TASK a
        left join DJ_WF_DEF_STEP b on a.step_id = b.id
        FROM WF_RUN_TASK a
        left join WF_DEF_STEP b on a.step_id = b.id
        WHERE a.is_delete =0 and a.status in (0,1)
        AND a.RECEIVE_ID = #{userId}
        <if test="projectId != null and projectId != ''">
            and a.biz_group_id = #{projectId}
         </if>
        <if test="djxlSystem != null and djxlSystem != ''">
            and a.FLOW_ID in (select id from dj_wf_def where system_type = #{djxlSystem})
            and a.FLOW_ID in (select id from wf_def where system_type = #{djxlSystem})
        </if>
        ORDER BY a.receive_time DESC
    </select>
@@ -97,13 +97,13 @@
                              a1.receive_time,
                              a1.finish_time as finish_time,
                              a1.status
                          FROM DJ_WF_RUN_TASK a1
                          FROM WF_RUN_TASK a1
                          WHERE a1.is_delete = 0
                                and (a1.receive_id=#{userId}
                                    or EXISTS(SELECT 1 FROM dj_sys_role s1,dj_sys_role_user s2 WHERE s1.ID = s2.role_id AND s2.USER_id = #{userId} AND
                                    or EXISTS(SELECT 1 FROM sys_role s1,sys_role_user s2 WHERE s1.ID = s2.role_id AND s2.USER_id = #{userId} AND
                                    s2.is_delete=0 and s1.CODE in ('all','xtglybm')))
                                <if test="djxlSystem != null and djxlSystem != ''">
                                    and a1.FLOW_ID in (select id from dj_wf_def where system_type = #{djxlSystem})
                                    and a1.FLOW_ID in (select id from wf_def where system_type = #{djxlSystem})
                                </if>
                      ) a2
@@ -125,7 +125,7 @@
                 b1.receive_time,
                 b1.status
             from ${pageDone_temp1} a1,
                  DJ_WF_RUN_TASK b1
                  WF_RUN_TASK b1
             WHERE b1.is_delete = 0
               and b1.status in(0,1,100)
@@ -161,8 +161,8 @@
        a.sender_name as finishUserName
        FROM ${pageDone_temp1} a
        join ${pageDone_temp2} b on a.biz_id = b.biz_id and a.flow_code = b.flow_code
        left join DJ_WF_DEF_STEP c on a.step_id = c.id
        left join DJ_WF_DEF_STEP d on b.step_id = d.id
        left join WF_DEF_STEP c on a.step_id = c.id
        left join WF_DEF_STEP d on b.step_id = d.id
        group by a.biz_id,a.flow_code,a.step_id
        ORDER BY a.receive_time DESC
    </select>
@@ -184,20 +184,20 @@
            a.create_date AS RECEIVE_TIME,
            DateDiff(CURRENT_DATE,a.create_date) as idleDays
        FROM
            DJ_ZHGL_ANNUAL_PLAN a
            ZHGL_ANNUAL_PLAN a
                LEFT JOIN view_zt_boat_tree p on concat(a.product_id) = p.product_id
                LEFT JOIN DJ_SYS_DICT_DATA c ON a.maintain_level = c.Dict_Value
                AND dict_type_id IN(SELECT id FROM DJ_SYS_DICT_TYPE WHERE DICT_TYPE = 'question_level_type')
                LEFT JOIN SYS_DICT_DATA c ON a.maintain_level = c.Dict_Value
                AND dict_type_id IN(SELECT id FROM SYS_DICT_TYPE WHERE DICT_TYPE = 'question_level_type')
                LEFT JOIN SYS_USER u ON u.user_id = a.CREATOR
        WHERE a.is_delete = 0
          and (
                (CURRENT_STATE = 1
                    and EXISTS(SELECT 1 FROM dj_sys_role s1,dj_sys_role_user s2
                    and EXISTS(SELECT 1 FROM sys_role s1,sys_role_user s2
                        WHERE s1.ID = s2.role_id AND s2.USER_id = #{userId} AND
                            s2.is_delete=0 and s1.CODE = 'zlbm')
                    ) or (
                        CURRENT_STATE = '5'
                        and EXISTS(SELECT 1 FROM dj_sys_role s1,dj_sys_role_user s2
                        and EXISTS(SELECT 1 FROM sys_role s1,sys_role_user s2
                            WHERE s1.ID = s2.role_id AND s2.USER_id = #{userId} AND
                                s2.is_delete=0 and s1.CODE = 'czbm')
                    )
@@ -241,17 +241,17 @@
                            when a.CURRENT_STATE = 5 then '处长'
                            else '' end                                     AS receiveName,
                        DateDiff(CURRENT_DATE, a.create_date)               as idleDays
                 FROM DJ_ZHGL_ANNUAL_PLAN a
                 FROM ZHGL_ANNUAL_PLAN a
                          LEFT JOIN view_zt_boat_tree p on concat(a.product_id) = p.product_id
                          LEFT JOIN DJ_SYS_DICT_DATA c ON a.maintain_level = c.Dict_Value
                     AND dict_type_id IN (SELECT id FROM DJ_SYS_DICT_TYPE WHERE DICT_TYPE = 'question_level_type')
                          LEFT JOIN SYS_DICT_DATA c ON a.maintain_level = c.Dict_Value
                     AND dict_type_id IN (SELECT id FROM SYS_DICT_TYPE WHERE DICT_TYPE = 'question_level_type')
                          LEFT JOIN SYS_USER u ON u.user_id = a.UPDATER
                 WHERE a.is_delete = 0
                   and (
                         (CURRENT_STATE in (1, 10)
                             and EXISTS(SELECT 1
                                        FROM dj_sys_role s1,
                                             dj_sys_role_user s2
                                        FROM sys_role s1,
                                             sys_role_user s2
                                        WHERE s2.IS_DELETE = 0
                                          and s1.ID = s2.role_id
                                          AND s2.USER_id = #{userId}
@@ -260,8 +260,8 @@
                         or (
                                 CURRENT_STATE in (5, 10)
                                 and EXISTS(SELECT 1
                                            FROM dj_sys_role s1,
                                                 dj_sys_role_user s2
                                            FROM sys_role s1,
                                                 sys_role_user s2
                                            WHERE s2.IS_DELETE = 0
                                              and s1.ID = s2.role_id
                                              AND s2.USER_id = #{userId}
@@ -269,8 +269,8 @@
                             )
                         or ( CURRENT_STATE in (1, 5, 10)
                            and EXISTS(SELECT 1
                                    FROM dj_sys_role s1,
                                         dj_sys_role_user s2
                                    FROM sys_role s1,
                                         sys_role_user s2
                                    WHERE s1.ID = s2.role_id
                                      AND s2.USER_id = #{userId}
                                      AND s2.is_delete = 0
@@ -303,7 +303,7 @@
                SELECT
                    *,'rjh_hz' as STEP_MARKER,'总厂汇总' as STEP_Name,'1648318473140449281' as stepRouterId
                FROM
                    dj_wx_daily_plan
                    wx_daily_plan
                WHERE
                    IS_DELETE =0
                  and FLOW_Status = 'rjh_hz'
@@ -311,8 +311,8 @@
                        SELECT
                            1
                        FROM
                            dj_sys_role s1,
                            dj_sys_role_user s2
                            sys_role s1,
                            sys_role_user s2
                        WHERE
                            s1.ID = s2.role_id
                          AND s2.USER_id = #{userId}
@@ -322,7 +322,7 @@
                SELECT
                    *,'rjh_sh' as STEP_MARKER,'部门长审核' as STEP_Name,'1648318806923161601' as stepRouterId
                FROM
                    dj_wx_daily_plan
                    wx_daily_plan
                WHERE
                    IS_DELETE =0
                  and FLOW_Status = 'rjh_sh'
@@ -330,8 +330,8 @@
                        SELECT
                            1
                        FROM
                            dj_sys_role s1,
                            dj_sys_role_user s2
                            sys_role s1,
                            sys_role_user s2
                        WHERE
                            s1.ID = s2.role_id
                          AND s2.USER_id = #{userId}
@@ -341,7 +341,7 @@
                SELECT
                    *,'rjh_cjfk' as STEP_MARKER,'厂家反馈情况' as STEP_MARKER,'1648319132719919106' as stepRouterId
                FROM
                    dj_wx_daily_plan
                    wx_daily_plan
                WHERE
                    IS_DELETE =0
                  and FLOW_Status = 'rjh_fk'
@@ -351,8 +351,8 @@
                        SELECT
                            1
                        FROM
                            dj_sys_role s1,
                            dj_sys_role_user s2
                            sys_role s1,
                            sys_role_user s2
                        WHERE
                            s1.ID = s2.role_id
                          AND s2.USER_id = #{userId}
@@ -362,7 +362,7 @@
                SELECT
                    *,'rjh_tyfk' as STEP_MARKER,'艇员反馈助修情况' as STEP_Name,'1648318988234534914' as stepRouterId
                FROM
                    dj_wx_daily_plan
                    wx_daily_plan
                WHERE
                    IS_DELETE =0
                  and FLOW_Status = 'rjh_fk'
@@ -372,8 +372,8 @@
                        SELECT
                            1
                        FROM
                            dj_sys_role s1,
                            dj_sys_role_user s2
                            sys_role s1,
                            sys_role_user s2
                        WHERE
                            s1.ID = s2.role_id
                          AND s2.USER_id = #{userId}
@@ -383,7 +383,7 @@
                    project_id,
                    plan_date
            ) a
                left join dj_wx_project b on a.project_id = b.id
                left join wx_project b on a.project_id = b.id
                left join sys_user c on a.SUBMIT_PERSONNEL = c.user_id
    </select>
-->
@@ -413,7 +413,7 @@
                    'monthPlanFlow' as FLOW_CODE,
                    'yjh_hz' as STEP_MARKER,'总厂汇总' as STEP_Name,'1660911405324423170' as stepRouterId
                FROM
                    dj_wx_weekly_month_plan
                    wx_weekly_month_plan
                WHERE
                    IS_DELETE = 0
                  and PLAN_TYPE = 1
@@ -422,8 +422,8 @@
                        SELECT
                            1
                        FROM
                            dj_sys_role s1,
                            dj_sys_role_user s2
                            sys_role s1,
                            sys_role_user s2
                        WHERE
                            s1.ID = s2.role_id
                          AND s1.IS_DELETE=0
@@ -441,7 +441,7 @@
                    'weekPlanFlow' as FLOW_CODE,
                    'zjh_hz' as STEP_MARKER,'总厂汇总' as STEP_Name,'1660904721482895361' as stepRouterId
                FROM
                    dj_wx_weekly_month_plan
                    wx_weekly_month_plan
                WHERE
                    IS_DELETE = 0
                  and PLAN_TYPE = 0
@@ -450,8 +450,8 @@
                        SELECT
                            1
                        FROM
                            dj_sys_role s1,
                            dj_sys_role_user s2
                            sys_role s1,
                            sys_role_user s2
                        WHERE
                            s1.ID = s2.role_id
                          AND s1.IS_DELETE=0
@@ -469,7 +469,7 @@
                    'rjhFlow' as FLOW_CODE,
                    'rjh_hz' as STEP_MARKER,'总厂汇总' as STEP_Name,'1648318473140449281' as stepRouterId
                FROM
                    dj_wx_daily_plan
                    wx_daily_plan
                WHERE
                    IS_DELETE = 0
                  and FLOW_Status = 'rjh_hz'
@@ -477,8 +477,8 @@
                        SELECT
                            1
                        FROM
                            dj_sys_role s1,
                            dj_sys_role_user s2
                            sys_role s1,
                            sys_role_user s2
                        WHERE
                            s1.ID = s2.role_id
                          AND s1.IS_DELETE=0
@@ -489,7 +489,7 @@
                GROUP BY
                    project_id, plan_date
            ) a
                left join dj_wx_project b on a.project_id = b.id
                left join wx_project b on a.project_id = b.id
                left join sys_user c on a.SUBMIT_PERSONNEL = c.user_id
    </select>
@@ -551,16 +551,16 @@
            a.title  as summary,
            b.STEP_ROUTER,
            b.STEP_ROUTER_ID
        FROM DJ_WF_RUN_TASK a
                 left join DJ_WF_DEF_STEP b on a.step_id = b.id
        FROM WF_RUN_TASK a
                 left join WF_DEF_STEP b on a.step_id = b.id
        WHERE a.is_delete =0 and a.status in (0,1)
          and a.topic=(select model_name from dj_wx_project where id=#{projectId})
          and a.topic=(select model_name from wx_project where id=#{projectId})
          and a.step_marker='jsfa_sc'
        ORDER BY a.receive_time DESC limit 1
    </select>
    <update id="oneKeyDoneCy">
        update dj_wf_run_task
        update wf_run_task
        set status=20, UPDATER=#{userId}, UPDATE_DATE=CURRENT_TIMESTAMP
        where STEP_MARKER in('rjh_cy','zjh_cy','yjh_cy') and status=0 and RECEIVE_ID=#{userId}
    </update>
modules/mainPart/src/main/resources/mapper/project/SoftwareTestOrderDao.xml
New file
@@ -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.project.dao.SoftwareTestOrderDao">
    <select id="getList" resultType="com.zt.life.modules.project.model.SoftwareTestOrder">
        SELECT a.*, p.*
        FROM project p
        INNER JOIN software_test_order a 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>
modules/mainPart/src/main/resources/mapper/sysBaseInfo/TestAgencyInfoDao.xml
New file
@@ -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.sysBaseInfo.dao.TestAgencyInfoDao">
    <select id="getList" resultType="com.zt.life.modules.sysBaseInfo.model.TestAgencyInfo">
        select a.*
        from test_agency_info a
        <where>
            a.is_delete = 0
            <if test="whereSql!=null">
                and ${whereSql}
            </if>
        </where>
        <if test="orderBySql!=null">
            ORDER BY ${orderBySql}
        </if>
    </select>
</mapper>
web/src/views/modules/project/Project.vue
@@ -5,27 +5,21 @@
        <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
          <el-form-item>
                                <el-input v-model="dataForm.softwareName" placeholder="请输入软件名称" clearable></el-input>
          </el-form-item>
          <el-form-item>
                                <zt-dict v-model="dataForm.secretClass" dict="secret_class" clearable></zt-dict>
            <zt-dict v-model="dataForm.secretClass" dict="secret_class" placeholder="请选择密级" clearable></zt-dict>
          </el-form-item>
          <el-form-item>
                                <zt-dict v-model="dataForm.criticalLevel" dict="critical_level" clearable></zt-dict>
            <zt-dict v-model="dataForm.criticalLevel" dict="critical_level" placeholder="请选择关键等级" clearable></zt-dict>
          </el-form-item>
          <el-form-item>
                                <zt-dict v-model="dataForm.testLevel" dict="test_level" clearable></zt-dict>
            <zt-dict v-model="dataForm.testLevel" dict="test_level" placeholder="请选择测试级别" clearable></zt-dict>
          </el-form-item>
          <el-form-item>
                                <zt-dict v-model="dataForm.softwareType" dict="software_type" clearable></zt-dict>
            <zt-dict v-model="dataForm.softwareType" dict="software_type" placeholder="请选择软件类型" clearable></zt-dict>
          </el-form-item>
          <el-form-item>
                                <zt-dict v-model="dataForm.isContract" dict="is_or_not" clearable></zt-dict>
            <zt-dict v-model="dataForm.isContract" dict="is_or_not" placeholder="请选择是否签署合同" clearable></zt-dict>
          </el-form-item>
          <el-form-item>
            <zt-button type="query" @click="table.query()"/>
web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue
New file
@@ -0,0 +1,127 @@
<template>
  <zt-dialog ref="dialog" column="2" @confirm="formSubmit">
    <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
      <zt-form-item label="运行环境" prop="optEnviron" rules="required">
                        <el-input v-model="dataForm.optEnviron"></el-input>
                </zt-form-item>
      <zt-form-item label="编程语言" prop="programLang" rules="required">
                        <el-input v-model="dataForm.programLang"></el-input>
                </zt-form-item>
      <zt-form-item label="测试依据" prop="testBasis" rules="required">
                        <zt-dict v-model="dataForm.testBasis" dict="test_basis"></zt-dict>
                </zt-form-item>
      <zt-form-item label="测试类型" prop="testType" rules="required">
                        <zt-dict v-model="dataForm.testType" dict="test_type1"></zt-dict>
                </zt-form-item>
      <zt-form-item label="测试标准" prop="testStandard" rules="required">
                        <zt-dict v-model="dataForm.testStandard" dict="test_standard"></zt-dict>
                </zt-form-item>
      <zt-form-item label="开始日期" prop="startDate" rules="required">
                        <el-input v-model="dataForm.startDate"></el-input>
                </zt-form-item>
      <zt-form-item label="结束日期" prop="endDate" rules="required">
                        <el-input v-model="dataForm.endDate"></el-input>
                </zt-form-item>
      <zt-form-item label="测试场地" prop="testVenue" rules="required">
                        <el-input v-model="dataForm.testVenue"></el-input>
                </zt-form-item>
      <zt-form-item label="其他要求" prop="otherRequire" rules="required">
                        <el-input v-model="dataForm.otherRequire"></el-input>
                </zt-form-item>
      <zt-form-item label="测试日期" prop="testDate" rules="required">
                        <el-input v-model="dataForm.testDate"></el-input>
                </zt-form-item>
      <zt-form-item label="交付日期" prop="deliveryDate" rules="required">
                        <el-input v-model="dataForm.deliveryDate"></el-input>
                </zt-form-item>
      <zt-form-item label="检测费用" prop="testCost" rules="required">
                        <el-input v-model="dataForm.testCost"></el-input>
                </zt-form-item>
      <zt-form-item label="物品性质" prop="articleNature" rules="required">
                        <zt-dict v-model="dataForm.articleNature" dict="article_nature"></zt-dict>
                </zt-form-item>
      <zt-form-item label="样品状态" prop="sampleStatus" rules="required">
                        <el-input v-model="dataForm.sampleStatus"></el-input>
                </zt-form-item>
      <zt-form-item label="测评机构名称" prop="agencyName" rules="required">
                        <el-input v-model="dataForm.agencyName"></el-input>
                </zt-form-item>
      <zt-form-item label="地址" prop="site" rules="required">
                        <el-input v-model="dataForm.site"></el-input>
                </zt-form-item>
      <zt-form-item label="业务联系" prop="businContact" rules="required">
                        <el-input v-model="dataForm.businContact"></el-input>
                </zt-form-item>
      <zt-form-item label="业务投诉" prop="businComplaint" rules="required">
                        <el-input v-model="dataForm.businComplaint"></el-input>
                </zt-form-item>
      <zt-form-item label="实验室联系人" prop="laborContact" rules="required">
                        <el-input v-model="dataForm.laborContact"></el-input>
                </zt-form-item>
      <zt-form-item label="实验室联系电话" prop="labContactNum" rules="required">
                        <el-input v-model="dataForm.labContactNum"></el-input>
                </zt-form-item>
      <zt-form-item label="邮政编码" prop="postalCode" rules="required">
                        <el-input v-model="dataForm.postalCode"></el-input>
                </zt-form-item>
      <zt-form-item label="传真" prop="fax" rules="required">
                        <el-input v-model="dataForm.fax"></el-input>
                </zt-form-item>
    </el-form>
  </zt-dialog>
</template>
<script>
  export default {
    data() {
      return {
        dataForm: {
          id: '',
          projectId: '',
          optEnviron: '',
          programLang: '',
          testBasis: '',
          testType: '',
          testStandard: '',
          startDate: '',
          endDate: '',
          testVenue: '',
          otherRequire: '',
          testDate: '',
          deliveryDate: '',
          testCost: '',
          articleNature: '',
          sampleStatus: '',
          agencyName: '',
          site: '',
          businContact: '',
          businComplaint: '',
          laborContact: '',
          labContactNum: '',
          postalCode: '',
          fax: ''
        }
      }
    },
    methods: {
      // 获取信息
      async getInfo() {
        let res = await this.$http.get(`/project/SoftwareTestOrder/${this.dataForm.id}`)
        this.dataForm = {
          ...this.dataForm,
          ...res.data
        }
        console.log(this.dataForm,"this.dataForm")
      },
      // 表单提交
      async formSubmit() {
        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/project/SoftwareTestOrder/', this.dataForm)
        if (res.success) {
          await this.$tip.success()
          this.$refs.dialog.close()
          this.$emit('refreshDataList')
        }
      }
    }
  }
</script>
web/src/views/modules/project/SoftwareTestOrder.vue
New file
@@ -0,0 +1,58 @@
<template>
  <el-card shadow="never" class="aui-card--fill">
    <div class="mod-project-softwareTestOrder}">
      <zt-table-wraper query-url="/project/SoftwareTestOrder/page" delete-url="/project/SoftwareTestOrder" v-slot="{ table }">
        <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
          <el-form-item>
            <el-input v-model="dataForm.softwareName" placeholder="请输入软件名称" clearable></el-input>
          </el-form-item>
          <el-form-item>
            <zt-dict v-model="dataForm.testBasis" dict="test_basis" placeholder="请选择测试依据" clearable></zt-dict>
          </el-form-item>
          <el-form-item>
            <zt-dict v-model="dataForm.testStandard" dict="test_standard" placeholder="请选择测试标准" clearable></zt-dict>
          </el-form-item>
          <el-form-item>
            <zt-dict v-model="dataForm.articleNature" dict="article_nature" placeholder="请选择物品性质" clearable></zt-dict>
          </el-form-item>
          <el-form-item>
            <zt-button type="query" @click="table.query()"/>
            <zt-button type="add" perm="project:add" @click="table.editHandle()"/>
            <zt-button type="delete" perm="project: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="softwareName" label="软件名称"/>
          <el-table-column prop="code" label="项目编号"/>
          <el-table-column prop="identity" label="项目标识"/>
            <zt-table-column-dict prop="testBasis" label="测试依据" dict="test_basis"/>
            <zt-table-column-dict prop="testStandard" label="测试标准" dict="test_standard"/>
            <zt-table-column-dict prop="articleNature" label="物品性质" dict="article_nature"/>
              <zt-table-column-handle :table="table" edit-perm="project:update" delete-perm="project::delete"/>
        </el-table>
        <!-- 弹窗, 新增 / 修改 -->
        <add-or-update @refreshDataList="table.query"/>
      </zt-table-wraper>
    </div>
  </el-card>
</template>
<script>
  import AddOrUpdate from './SoftwareTestOrder-AddOrUpdate'
  export default {
    data() {
      return {
        dataForm: {
          testBasis: '',
          testType: '',
          testStandard: '',
          articleNature: '',
        }
      }
    },
    components: {
      AddOrUpdate
    }
  }
</script>
web/src/views/modules/sysBaseInfo/TestAgencyInfo-AddOrUpdate.vue
New file
@@ -0,0 +1,69 @@
<template>
  <zt-dialog ref="dialog"  @confirm="formSubmit">
    <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
      <zt-form-item label="测评机构名称" prop="agencyName" rules="required">
                        <el-input v-model="dataForm.agencyName"></el-input>
                </zt-form-item>
      <zt-form-item label="地址" prop="site" rules="required">
                        <el-input v-model="dataForm.site"></el-input>
                </zt-form-item>
      <zt-form-item label="业务联系" prop="businContact" rules="required">
                        <el-input v-model="dataForm.businContact"></el-input>
                </zt-form-item>
      <zt-form-item label="业务投诉" prop="businComplaint" rules="required">
                        <el-input v-model="dataForm.businComplaint"></el-input>
                </zt-form-item>
      <zt-form-item label="实验室联系人" prop="laborContact" rules="required">
                        <el-input v-model="dataForm.laborContact"></el-input>
                </zt-form-item>
      <zt-form-item label="实验室联系电话" prop="labContactNum" rules="required">
                        <el-input v-model="dataForm.labContactNum"></el-input>
                </zt-form-item>
      <zt-form-item label="邮政编码" prop="postalCode" rules="required">
                        <el-input v-model="dataForm.postalCode"></el-input>
                </zt-form-item>
      <zt-form-item label="传真" prop="fax" rules="required">
                        <el-input v-model="dataForm.fax"></el-input>
                </zt-form-item>
    </el-form>
  </zt-dialog>
</template>
<script>
  export default {
    data() {
      return {
        dataForm: {
          id: '',
          agencyName: '',
          site: '',
          businContact: '',
          businComplaint: '',
          laborContact: '',
          labContactNum: '',
          postalCode: '',
          fax: ''
        }
      }
    },
    methods: {
      // 获取信息
      async getInfo() {
        let res = await this.$http.get(`/sysBaseInfo/TestAgencyInfo/${this.dataForm.id}`)
        this.dataForm = {
          ...this.dataForm,
          ...res.data
        }
      },
      // 表单提交
      async formSubmit() {
        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/sysBaseInfo/TestAgencyInfo/', this.dataForm)
        if (res.success) {
          await this.$tip.success()
          this.$refs.dialog.close()
          this.$emit('refreshDataList')
        }
      }
    }
  }
</script>
web/src/views/modules/sysBaseInfo/TestAgencyInfo.vue
New file
@@ -0,0 +1,44 @@
<template>
  <el-card shadow="never" class="aui-card--fill">
    <div class="mod-sysBaseInfo-testAgencyInfo}">
      <zt-table-wraper query-url="/sysBaseInfo/TestAgencyInfo/page" delete-url="/sysBaseInfo/TestAgencyInfo" v-slot="{ table }">
        <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
          <el-form-item>
                                <el-input v-model="dataForm.agencyName" placeholder="请输入测评机构名称" clearable></el-input>
          </el-form-item>
          <el-form-item>
            <zt-button type="query" @click="table.query()"/>
            <zt-button type="add" perm="sysBaseInfo:add" @click="table.editHandle()"/>
            <zt-button type="delete" perm="sysBaseInfo: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="agencyName" label="测评机构名称"/>
                <el-table-column prop="businContact" label="业务联系"/>
                <el-table-column prop="laborContact" label="实验室联系人"/>
              <zt-table-column-handle :table="table" edit-perm="sysBaseInfo:update" delete-perm="sysBaseInfo::delete"/>
        </el-table>
        <!-- 弹窗, 新增 / 修改 -->
        <add-or-update @refreshDataList="table.query"/>
      </zt-table-wraper>
    </div>
  </el-card>
</template>
<script>
  import AddOrUpdate from './TestAgencyInfo-AddOrUpdate'
  export default {
    data() {
      return {
        dataForm: {
          agencyName: '',
        }
      }
    },
    components: {
      AddOrUpdate
    }
  }
</script>