zzw
2023-11-20 2f7e7ad6c61ac3f239a4e9a87cde634a9c3fcf00
Merge remote-tracking branch 'origin/master'
14个文件已修改
235 ■■■■■ 已修改文件
modules/mainPart/src/main/java/com/zt/life/modules/project/controller/EnvironController.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/controller/SoftwareTestOrderController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/model/Environ.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/model/EnvironHardwareResources.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/model/EnvironSoftwareResources.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/project/EnvironDao.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/project/EnvironHardwareResourcesDao.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/resources/mapper/project/EnvironSoftwareResourcesDao.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/project/Environ-AddOrUpdate.vue 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/project/Environ.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
modules/mainPart/src/main/java/com/zt/life/modules/project/controller/EnvironController.java
@@ -27,6 +27,8 @@
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -67,7 +69,7 @@
    @GetMapping("getDto")
    @ApiOperation("信息")
    public Result<SoftwareTestOrderDto> getDto(Long projectId, Long environId) {
    public Result<SoftwareTestOrderDto> getDto(Long environId, Long  projectId) {
        SoftwareTestOrderDto data = environService.getDto(environId, projectId);
        if (projectId != null) {
            OssDto ossDto = sysOssConfigService.getOssByBusiType(projectId, "environ");
@@ -84,8 +86,12 @@
    public Result insert(@RequestBody SoftwareTestOrderDto softwareTestOrderDto) {
        //效验数据
        ValidatorUtils.validateEntity(softwareTestOrderDto, AddGroup.class, DefaultGroup.class);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
        String year = sdf.format(new Date());
        Map<String,String> map = new HashMap<>();
        map.put("funCode","environ");
        map.put("year",year);
        softwareTestOrderDto.getEnviron().setYear(year);
        softwareTestOrderDto.getEnviron().setCode(sysCodeRuleService.getNewCode(map));
        Boolean result = environService.save(softwareTestOrderDto);
@@ -96,15 +102,15 @@
    @PutMapping
    @ApiOperation("修改")
    @LogOperation("修改")
    public Result update(@RequestBody Environ environ) {
    public Result update(@RequestBody SoftwareTestOrderDto softwareTestOrderDto) {
        //效验数据
        ValidatorUtils.validateEntity(environ, UpdateGroup.class, DefaultGroup.class);
        environService.update(environ);
        ValidatorUtils.validateEntity(softwareTestOrderDto, UpdateGroup.class, DefaultGroup.class);
        Boolean result = environService.save(softwareTestOrderDto);
        return Result.ok();
    }
    @DeleteMapping
    @DeleteMapping("deleteEnviron")
    @ApiOperation("删除")
    @LogOperation("删除")
    public Result delete(@RequestBody Long[] ids) {
@@ -115,4 +121,14 @@
        return Result.ok();
    }
    @PostMapping("uploadDiagram")
    @ApiOperation("上传测试环境图片")
    @LogOperation("上传测试环境图片")
    public Result uploadDiagram(@RequestBody Long[] ids) {
        //效验数据
        AssertUtils.isArrayEmpty(ids, "id");
        environService.delete(ids);
        return Result.ok();
    }
}
modules/mainPart/src/main/java/com/zt/life/modules/project/controller/SoftwareTestOrderController.java
@@ -32,6 +32,8 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@@ -100,8 +102,12 @@
        //效验数据
        ValidatorUtils.validateEntity(softwareTestOrderDto.getSoftwareTestOrder(), AddGroup.class, DefaultGroup.class);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
        String year = sdf.format(new Date());
        Map<String,String> map = new HashMap<>();
        map.put("funCode","software_test_order");
        map.put("year",year);
        softwareTestOrderDto.getSoftwareTestOrder().setYear(year);
        softwareTestOrderDto.getSoftwareTestOrder().setCode(sysCodeRuleService.getNewCode(map));
        Boolean result = softwareTestOrderService.save(softwareTestOrderDto);
        return Result.ok();
modules/mainPart/src/main/java/com/zt/life/modules/project/model/Environ.java
@@ -64,6 +64,9 @@
    @ApiModelProperty(value = "病毒库版本")
    private String virusDatabaseVersion;
    @ApiModelProperty(value = "年份")
    private String year;
    @TableField(exist = false)
    @ApiModelProperty(value = "专业实验室名称")
    private String agencyName;
modules/mainPart/src/main/java/com/zt/life/modules/project/model/EnvironHardwareResources.java
@@ -31,7 +31,7 @@
    private String itemName;
    @ApiModelProperty(value = "用途")
    private String usage;
    private String purposes;
    @ApiModelProperty(value = "状态")
    private String state;
modules/mainPart/src/main/java/com/zt/life/modules/project/model/EnvironSoftwareResources.java
@@ -34,7 +34,7 @@
    private String version;
    @ApiModelProperty(value = "用途")
    private String usage;
    private String purposes;
    @ApiModelProperty(value = "提供单位")
    private String provideUnit;
modules/mainPart/src/main/java/com/zt/life/modules/project/model/SoftwareTestOrder.java
@@ -167,6 +167,9 @@
    @ApiModelProperty(value = "测试级别")
    private Integer testLevel;
    @ApiModelProperty(value = "年份")
    private String year;
    @TableField(exist = false)
    @ApiModelProperty(value = "软件类型")
    private String softwareType;
modules/mainPart/src/main/java/com/zt/life/modules/project/service/EnvironService.java
@@ -13,9 +13,8 @@
import com.zt.common.db.query.QueryFilter;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.text.SimpleDateFormat;
import java.util.*;
/**
@@ -52,15 +51,14 @@
    private TestAgencyInfoService testAgencyInfoService;
    public SoftwareTestOrderDto getDto(Long projectId, Long environId) {
    public SoftwareTestOrderDto getDto(Long environId, Long projectId) {
        SoftwareTestOrderDto data = new SoftwareTestOrderDto();
        if (environId != null) {
            data.setId(environId);
            Environ environ = this.get(environId);
            data.setEnviron(environ);
            data.setTestAgencyInfo(testAgencyInfoService.get(environId));
            projectId = environ.getProjectId();
            List<EnvironSoftwareResources> softwareResourcesList = environSoftwareResourcesService.getList(environId);
            data.setSoftwareResourcesList(softwareResourcesList);
@@ -70,17 +68,15 @@
            List<EnvironAnalysis> environAnalysesList = environAnalysisService.getList(environId);
            data.setEnvironAnalysisList(environAnalysesList);
        } else {
            Project project = projectService.get(projectId);
            data.getEnviron().setSoftwareName(project.getSoftwareName());
            data.getEnviron().setSoftwareIdentity(project.getSoftwareIdentity());
            Environ environ =new Environ();
            data.setEnviron(environ);
        }
        if (projectId != null) {
            data.setProjectId(projectId);
            data.setProject(projectService.get(projectId));
        }
        if (data.getTestAgencyInfo() == null)
           data.getEnviron().setAgencyName(testAgencyInfoService.get(10000L).getAgencyName());
           data.getEnviron().setSite(testAgencyInfoService.get(10000L).getSite());
        if (projectId != null) {
            data.setOrderId(projectId);
            data.setSoftwareTestOrder(softwareTestOrderService.get(projectId));
        }
            data.setTestAgencyInfo(testAgencyInfoService.get(10000L));
        return data;
    }
@@ -109,8 +105,12 @@
        if (environId != null)
            baseDao.updateById(softwareTestOrderDto.getEnviron());
        else {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
            String year = sdf.format(new Date());
            Map<String, String> map = new HashMap<>();
            map.put("funCode", "environ");
            map.put("year",year);
            softwareTestOrderDto.getEnviron().setYear(year);
            softwareTestOrderDto.getEnviron().setProjectId(softwareTestOrderDto.getProjectId());
            softwareTestOrderDto.getEnviron().setCode(sysCodeRuleService.getNewCode(map));
            baseDao.insert(softwareTestOrderDto.getEnviron());
@@ -146,7 +146,12 @@
                environAnalysisService.insert(environAnalysis);
            }
        }
        if (softwareTestOrderDto.getTestAgencyInfo().getId() == 10000) {
            softwareTestOrderDto.getTestAgencyInfo().setId(environId);
            testAgencyInfoService.insert(softwareTestOrderDto.getTestAgencyInfo());
        } else {
            testAgencyInfoService.update(softwareTestOrderDto.getTestAgencyInfo());
        }
        sysOssConfigService.updateOss(softwareTestOrderDto.getId(), softwareTestOrderDto.getFiles());// 保存附件
        return true;
    }
modules/mainPart/src/main/java/com/zt/life/modules/project/service/SoftwareTestOrderService.java
@@ -27,10 +27,8 @@
import javax.servlet.http.HttpServletResponse;
import java.io.FileNotFoundException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -96,8 +94,12 @@
        if (softwareTestOrderId != null)
            baseDao.updateById(softwareTestOrderDto.getSoftwareTestOrder());
        else {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
            String year = sdf.format(new Date());
            Map<String, String> map = new HashMap<>();
            map.put("funCode", "software_test_order");
            map.put("year",year);
            softwareTestOrderDto.getSoftwareTestOrder().setYear(year);
            softwareTestOrderDto.getSoftwareTestOrder().setProjectId(softwareTestOrderDto.getProjectId());
            softwareTestOrderDto.getSoftwareTestOrder().setCode(sysCodeRuleService.getNewCode(map));
            baseDao.insert(softwareTestOrderDto.getSoftwareTestOrder());
modules/mainPart/src/main/resources/mapper/project/EnvironDao.xml
@@ -5,7 +5,7 @@
    <select id="getList" resultType="com.zt.life.modules.project.model.Environ">
        SELECT a.*, p.*
        FROM software_test_order a
        FROM environ a
        INNER JOIN  project p ON p.id = a.project_id
        <where>
            a.is_delete = 0 and p.is_delete = 0
modules/mainPart/src/main/resources/mapper/project/EnvironHardwareResourcesDao.xml
@@ -8,8 +8,8 @@
        from environ_hardware_resources a
        <where>
            a.is_delete = 0
            <if test="whereSql!=null">
                and ${whereSql}
            <if test="environId!=null">
                and environ_id = ${environId}
            </if>
        </where>
        <if test="orderBySql!=null">
modules/mainPart/src/main/resources/mapper/project/EnvironSoftwareResourcesDao.xml
@@ -8,8 +8,8 @@
        from environ_software_resources a
        <where>
            a.is_delete = 0
            <if test="whereSql!=null">
                and ${whereSql}
            <if test="environId!=null">
                and environ_id = ${environId}
            </if>
        </where>
        <if test="orderBySql!=null">
web/src/views/modules/project/Environ-AddOrUpdate.vue
@@ -3,21 +3,21 @@
      <el-form :model="dataForm" style="padding: 0" :inline="true"  ref="dataForm" :disabled="dataForm.disabled" label-width="130px" class="confirmFormAuto">
        <div class="DConfirmForm">
          <el-form-item label-width="60px" label="编号:" style="width:100%;margin-bottom: 0">
            <span>{{dataForm.code}}</span>
            <span>{{dataForm.environ.code}}</span>
          </el-form-item>
        </div>
        <div style="border: 1px solid rgba(0,0,0,.2);width: 99%" class="confirmDAuto DConfirmForm">
          <el-form-item class="marginTopAndMarginBottom" label="专业实验室名称" style="width: 49%">
            <el-input v-model="dataForm.agencyName" placeholder="专业实验室名称"></el-input>
            <el-input v-model="dataForm.testAgencyInfo.agencyName" placeholder="专业实验室名称"></el-input>
          </el-form-item>
          <el-form-item class="marginTopAndMarginBottom" label="测试地点" style="width: 49%">
            <el-input v-model="dataForm.site" placeholder="测试地点"></el-input>
            <el-input v-model="dataForm.testAgencyInfo.site" placeholder="测试地点"></el-input>
          </el-form-item>
          <el-form-item  label="被测软件" style="width: 49%">
            <el-input v-model="dataForm.softwareName" placeholder="被测软件"></el-input>
            <el-input v-model="dataForm.project.softwareName" placeholder="被测软件"></el-input>
          </el-form-item>
          <el-form-item label="版本" style="width: 49%">
            <el-input v-model="dataForm.softwareIdentity" placeholder="版本"></el-input>
            <el-input v-model="dataForm.project.softwareIdentity" placeholder="版本"></el-input>
          </el-form-item>
          <div class="el-flexConfigDialog el-form-border">
            <div class="DFormWidth DAlign DHold">
@@ -28,7 +28,7 @@
              <div class="table-container">
              <el-table class="el-software el-margin-top-bot" height="150" border :data="dataForm.softwareResourcesList"
                        stripe>
                <el-table-column prop="code" align="center" width="80" label="序号">
                <el-table-column prop="no" align="center" width="80" label="序号">
                  <template slot-scope="scope">
                    <span v-html="indexFormat(scope.$index)"></span>
                  </template>
@@ -43,9 +43,9 @@
                    <el-input v-model="row.version" placeholder="版本"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="use" align="center" width="180" label="用途">
                <el-table-column prop="purposes" align="center" width="180" label="用途">
                  <template v-slot="{ row }">
                    <el-input v-model="row.usage" placeholder="用途"></el-input>
                    <el-input v-model="row.purposes" placeholder="用途"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="unit" label="提供单位" width="180"  align="center">
@@ -63,12 +63,32 @@
              <div class="table-container">
              <el-table class="el-software el-margin-top-bot" height="150" border :data="dataForm.hardwareResourcesList"
                        stripe>
                <el-table-column prop="code" align="center" width="80" label="序号"></el-table-column>
                <el-table-column prop="itemName" min-width="300" label="硬件和固件项目名称"></el-table-column>
                <el-table-column prop="usage" align="center" width="180" label="用途"></el-table-column>
                <el-table-column prop="number" align="center" width="80" label="数量"></el-table-column>
                <el-table-column prop="state" align="center" width="120" label="状态"></el-table-column>
                <el-table-column prop="provideUnit" align="center" width="180" label="提供单位"></el-table-column>
                <el-table-column prop="no" align="center" width="80" label="序号"></el-table-column>
                <el-table-column prop="itemName" min-width="300" label="硬件和固件项目名称">
                  <template v-slot="{ row }">
                    <el-input v-model="row.itemName" placeholder="硬件和固件项目名称"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="purposes" align="center" width="180" label="用途">
                  <template v-slot="{ row }">
                    <el-input v-model="row.purposes" placeholder="用途"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="number" align="center" width="80" label="数量">
                  <template v-slot="{ row }">
                    <el-input v-model="row.number" placeholder="数量"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="state" align="center" width="120" label="状态">
                  <template v-slot="{ row }">
                    <el-input v-model="row.state" placeholder="状态"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="provideUnit" align="center" width="180" label="提供单位">
                  <template v-slot="{ row }">
                    <el-input v-model="row.provideUnit" placeholder="提供单位"></el-input>
                  </template>
                </el-table-column>
              </el-table>
                <div class="icon-container" @click="addHardwareRow()">
                  <!-- 放置固定的图标 -->
@@ -83,7 +103,9 @@
            </div>
            <div style="width: calc(100% - 120px);">
              <div style="height:150px" class="el-wt-border-left">
                <span>{{dataForm.testEnvirontDiagram}}</span>
                <span>{{dataForm.environ.testEnvirontDiagram}}</span>
<!--                <config-uploader busi-type="test_order" model-name="dataForm" :dataForm="dataForm"-->
<!--                                 v-model="dataForm.files"/>-->
              </div>
            </div>
          </div>
@@ -95,12 +117,32 @@
              <div class="table-container">
              <el-table class="el-software el-margin-top-bot" height="150" border :data="dataForm.environAnalysisList"
                        stripe>
                <el-table-column prop="code" align="center" width="80" label="序号"></el-table-column>
                <el-table-column prop="realEnviron" min-width="300" label="真实环境"></el-table-column>
                <el-table-column prop="testEnviron" align="center" width="100" label="测试环境"></el-table-column>
                <el-table-column prop="environDifference" align="center" width="100" label="环境差异"></el-table-column>
                <el-table-column prop="resultImpact" align="center" width="160" label="对测试结果影响"></el-table-column>
                <el-table-column prop="measure" align="center" width="180" label="措施"></el-table-column>
                <el-table-column prop="no" align="center" width="80" label="序号"></el-table-column>
                <el-table-column prop="realEnviron" min-width="300" label="真实环境">
                  <template v-slot="{ row }">
                    <el-input v-model="row.realEnviron" placeholder="真实环境"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="testEnviron" align="center" width="100" label="测试环境">
                  <template v-slot="{ row }">
                    <el-input v-model="row.testEnviron" placeholder="测试环境"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="environDifference" align="center" width="100" label="环境差异">
                  <template v-slot="{ row }">
                    <el-input v-model="row.environDifference" placeholder="环境差异"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="resultImpact" align="center" width="160" label="对测试结果影响">
                  <template v-slot="{ row }">
                    <el-input v-model="row.resultImpact" placeholder="对测试结果影响"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="measure" align="center" width="180" label="措施">
                  <template v-slot="{ row }">
                    <el-input v-model="row.measure" placeholder="措施"></el-input>
                  </template>
                </el-table-column>
              </el-table>
                <div class="icon-container" @click="addDiscrepancyRow()">
                  <!-- 放置固定的图标 -->
@@ -115,20 +157,20 @@
            </div>
            <div style="width: calc(100% - 120px)"  class="DConfirmForm el-wt-border-left">
              <el-form-item class="marginTopAndMarginBottom" label="人员" style="width: 49%">
                <el-input v-model="dataForm.establishStaff" placeholder="人员"></el-input>
                <el-input v-model="dataForm.environ.establishStaff" placeholder="人员"></el-input>
              </el-form-item>
              <el-form-item class="marginTopAndMarginBottom" label="日期" style="width: 48%">
                <el-date-picker
                  v-model="dataForm.establishDate"
                  v-model="dataForm.environ.establishDate"
                  type="date"
                  placeholder="日期">
                </el-date-picker>
              </el-form-item>
              <el-form-item label-width="180px" class="isKill" label="是否进行环境病毒查杀" style="width: 49%">
                <zt-dict v-model="dataForm.isVirusScan" dict="is_or_not" :radio="true"></zt-dict>
                <zt-dict v-model="dataForm.environ.isVirusScan" dict="is_or_not" :radio="true"></zt-dict>
              </el-form-item>
              <el-form-item label="病毒库版本" style="width: 48%">
                <el-input v-model="dataForm.virusDatabaseVersion" placeholder="请输入病毒库版本"></el-input>
                <el-input v-model="dataForm.environ.virusDatabaseVersion" placeholder="请输入病毒库版本"></el-input>
              </el-form-item>
            </div>
          </div>
@@ -139,12 +181,12 @@
            <div style="width: calc(100% - 120px)" class="DConfirmForm el-wt-border-left">
              <!-- 单位名称 -->
              <el-form-item class="marginTopAndMarginBottom" label="人员" style="width: 49%">
                <el-input v-model="dataForm.confirmatStaff" placeholder="人员"></el-input>
                <el-input v-model="dataForm.environ.confirmatStaff" placeholder="人员"></el-input>
              </el-form-item>
              <!-- 联系人 -->
              <el-form-item class="marginTopAndMarginBottom" label="日期" style="width: 48%">
                <el-date-picker
                  v-model="dataForm.confirmatDate"
                  v-model="dataForm.environ.confirmatDate"
                  type="date"
                  placeholder="日期">
                </el-date-picker>
@@ -162,16 +204,10 @@
      return {
        dataForm: {
          id: '',
          code: '',
          agencyName:'',
          site:'',
          softwareName:'',
          softwareIdentity:'',
          environ:{
            code: '1',
          hardSoftwareRes: '',
          testEnvirontDiagram: '',
          softwareResourcesList:[],
          hardwareResourcesList:[],
          environAnalysisList:[],
          establishStaff:'',
          establishDate:'',
          environAnalysis: '',
@@ -181,7 +217,18 @@
          confirmatDate: '',
          isVirusScan: '',
          virusDatabaseVersion: '',
          softwareData:[]
          },
          project: {
            softwareIdentity: '',
            softwareName: '',
          },
          testAgencyInfo: {
            agencyName:'',
            site:'',
          },
          softwareResourcesList:[],
          hardwareResourcesList:[],
          environAnalysisList:[]
        }
      }
    },
@@ -196,7 +243,7 @@
      // 获取信息
      async getInfo() {
        let params = {
          orderId: this.dataForm.id,
          environId: this.dataForm.id,
          projectId: this.dataForm.projectId
        }
        let res = await this.$http.get(`/project/Environ/getDto`,{params: params})
@@ -210,10 +257,14 @@
        return index += 1
      },
      addSoftwareRow(){
        this.dataForm.softwareData.push({})
        this.dataForm.softwareResourcesList.push({})
      },
      addHardwareRow(){},
      addDiscrepancyRow(){},
      addHardwareRow(){
        this.dataForm.hardwareResourcesList.push({})
      },
      addDiscrepancyRow(){
        this.dataForm.environAnalysisList.push({})
      },
      // 表单提交
      async formSubmit() {
        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/project/Environ/', this.dataForm)
web/src/views/modules/project/Environ.vue
@@ -8,9 +8,9 @@
          </el-form-item>
          <el-form-item>
<!--            <zt-button type="query" @click="table.query()"/>-->
            <zt-button type="query" @click="table.query()"/>
            <zt-button type="primary" class="el-icon-edit" perm="project:add" @click="add()">新增</zt-button>
            <zt-button type="add" perm="project:add" @click="table.editHandle()"/>
            <!--<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>
web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue
@@ -442,7 +442,6 @@
          softwareType: '',
          tenantId: '',
          testLevel: '',
        },
        testAgencyInfo: {
          agencyName:'',