jinlin
2023-12-07 547d68b874dc4bb51d6ac39cc0fec2c227028ef0
web/src/views/modules/testCheckOrder/TestCheckOrder-AddOrUpdate.vue
@@ -1,5 +1,5 @@
<template>
  <zt-dialog ref="dialog" column="2" @confirm="formSubmit">
  <zt-dialog ref="dialog" column="2" @confirm="formSubmit" :stepMarker="stepMarker" :append-to-body="true">
    <el-form :model="dataForm" :inline="true" ref="dataForm" style="padding-top: 0" :disabled="dataForm.disabled"
             label-width="120px" class="testCheckFormAuto">
      <div>
@@ -10,38 +10,43 @@
      <div style="border: 1px solid rgba(0,0,0,.2);width: 99%">
        <div style="border-bottom: 1px solid rgba(0,0,0,.2);" class="testCheckContentWidth">
          <el-form-item class="marginTopAndMarginBottom" label="项目标识" style="width: 49%">
            <el-input v-model="dataForm.project.softwareName" placeholder="项目标识"></el-input>
            <el-input v-model="dataForm.project.softwareIdentity" placeholder="项目标识"></el-input>
          </el-form-item>
          <el-form-item class="marginTopAndMarginBottom" label="项目名称" style="width: 49%">
            <el-input v-model="dataForm.project.softwareIdentity" placeholder="项目名称"></el-input>
            <el-input v-model="dataForm.project.softwareName" placeholder="项目名称"></el-input>
          </el-form-item>
          <el-form-item class="marginTopAndMarginBottom3" label="检查人" style="width: 49%">
            <el-input v-model="dataForm.project.softwareIdentity" placeholder="检查人"></el-input>
            <el-input :disabled="stepMarker!=='csjcd_first'" v-model="dataForm.testCheckOrder.examiner" placeholder="检查人"></el-input>
          </el-form-item>
          <el-form-item class="marginTopAndMarginBottom3" label="检查时间" style="width: 49%">
            <el-input v-model="dataForm.project.isContract" placeholder="检查时间"></el-input>
            <el-date-picker
              :disabled="stepMarker!=='csjcd_first'"
              v-model="dataForm.testCheckOrder.examDate"
              type="date"
              placeholder="请选择检查时间">
            </el-date-picker>
          </el-form-item>
        </div>
        <div style="border-bottom: 1px solid rgba(0,0,0,.2);">
          <div style="padding-left:5px;padding-right:5px;">
            <div style="padding: 5px">测试计划:</div>
            <div style="padding: 5px">{{subtitle}}</div>
            <div class="table-container">
              <el-table ref="tableCirculatOrderList" class="el-software el-margin-top-bot" border
                        :data="dataForm.technicalList"
                        :data="dataForm.checkOrderList"
                        stripe>
                <el-table-column prop="no" align="center" width="60" label="序号">
                  <template slot-scope="scope">
                    <span v-html="indexFormat(scope.$index)"></span>
                  </template>
                </el-table-column>
                <el-table-column prop="infoName" min-width="180" label="主要检查内容">
                <el-table-column prop="checkContent" min-width="180" label="主要检查内容">
                  <template v-slot="{ row }">
                    <el-input v-model="row.name" placeholder="主要检查内容"></el-input>
                    <el-input v-model="row.checkContent" placeholder="主要检查内容"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="identify" align="center" width="150" label="检查结果">
                <el-table-column prop="checkResult" align="center" width="150" label="检查结果">
                  <template v-slot="{ row }">
                    <zt-dict v-model="row.identify" dict="is_or_not" :radio="true"></zt-dict>
                    <zt-dict v-model="row.checkResult" dict="tristate1" :radio="true"></zt-dict>
                  </template>
                </el-table-column>
                <el-table-column prop="remark" label="备注" width="100" align="center">
@@ -49,18 +54,18 @@
                    <el-input v-model="row.remark" placeholder="备注"></el-input>
                  </template>
                </el-table-column>
<!--                <el-table-column fixed="right" prop="files" label="上传附件" width="300" align="center">
                  <template v-slot="{ row }">
                    &lt;!&ndash;                    <zt-table-button @click="files(row.id)">上传附件</zt-table-button>&ndash;&gt;
                    <table-uploader busi-type="circulat_order" model-name="row" :dataForm="row"
                                    v-model="row.files"/>
                  </template>
                </el-table-column>-->
                <!--                <el-table-column fixed="right" prop="files" label="上传附件" width="300" align="center">
                                  <template v-slot="{ row }">
                                    &lt;!&ndash;                    <zt-table-button @click="files(row.id)">上传附件</zt-table-button>&ndash;&gt;
                                    <table-uploader busi-type="circulat_order" model-name="row" :dataForm="row"
                                                    v-model="row.files"/>
                                  </template>
                                </el-table-column>-->
              </el-table>
<!--              <div class="icon-container" @click="addCirculatRow()">-->
<!--                &lt;!&ndash; 放置固定的图标 &ndash;&gt;-->
<!--                <i class="el-icon-plus"></i>-->
<!--              </div>-->
              <!--              <div class="icon-container" @click="addCirculatRow()">-->
              <!--                &lt;!&ndash; 放置固定的图标 &ndash;&gt;-->
              <!--                <i class="el-icon-plus"></i>-->
              <!--              </div>-->
            </div>
          </div>
        </div>
@@ -71,7 +76,7 @@
          <div class="el-border-left acceptDate" style="height: 80px;width: 80%;">
            <el-form-item style="width: 100%;padding-left:20px;margin:0;">
              <el-input type="textarea"
                        :rows="3" v-model="dataForm.testCheckOrder.itemOther" placeholder="问题描述..."></el-input>
                        :rows="3" v-model="dataForm.testCheckOrder.problemDescription" placeholder="问题描述..."></el-input>
            </el-form-item>
          </div>
        </div>
@@ -82,7 +87,7 @@
          <div class="el-border-left acceptDate" style="height: 80px;width: 80%;">
            <el-form-item style="width: 100%;padding-left:20px;margin:0;">
              <el-input type="textarea"
                        :rows="3" v-model="dataForm.testCheckOrder.itemOther" placeholder="问题处理..."></el-input>
                        :rows="3" v-model="dataForm.testCheckOrder.problemProcess" placeholder="问题处理..."></el-input>
            </el-form-item>
          </div>
        </div>
@@ -92,15 +97,15 @@
          </div>
          <div class="el-border-left-right acceptDate1" style="width: 40%;height: 40px;">
            <el-form-item style="width: 100%;padding-left:20px;margin:0;">
              <el-input v-model="dataForm.testCheckOrder.itemOther" placeholder="处理人"></el-input>
              <span>{{dataForm.testCheckOrder.processor}}</span>
            </el-form-item>
          </div>
          <div style="width: 84px;text-align: center;font-weight: 600">
            验证人
          </div>
          <div class="el-border-left acceptDate1" style="width: 40%;height: 40px;">
            <el-form-item  label-width="150px" style="width: 100%;padding-left:20px;margin-bottom:0">
              <el-input v-model="dataForm.testCheckOrder.itemOther" placeholder="验证人"></el-input>
            <el-form-item label-width="150px" style="width: 100%;padding-left:20px;margin-bottom:0">
              <span>{{dataForm.testCheckOrder.verifier}}</span>
            </el-form-item>
          </div>
        </div>
@@ -114,113 +119,153 @@
<script>
  export default {
    props:{
      pageCode: {
        type: String,
        default: ''
      },
    },
    data() {
      return {
        stepMarker: '',
        configDetailRow: null,
        subtitle: '',
        pageName: {plan: '软件测试计划', explain: '软件测试说明', record: '软件测试记录', report: '软件测试报告'},
        dataForm: {
          id: '',
          projectId: '',
          project:{
            softwareIdentity:'',
            softwareName:'',
            softwareType:'',
            isContract:'',
          project: {
            softwareIdentity: '',
            softwareName: '',
          },
          testCheckOrder:{
          testCheckOrder: {
            code: '',
            examiner: '',
            examDate: '',
            problemDescription: '',
            problemProcess: '',
            processor: '',
            processorId: '',
            processDate: '',
            verifier: '',
            verifierId: '',
            verifyDate: '',
            year: ''
          },
          testAgencyInfo:{
            agencyName:''
          }
          checkOrderList: []
        }
      }
    },
    methods: {
      init(id, row) {
        console.log(id,row,'软件测试计划检查单')
        if (id) {
        this.configDetailRow = row
        if (row.checkId) {
          this.dataForm.id = row.checkId
        } else if (id) {
          this.dataForm.id = id
        } else {
          this.dataForm.id = row.id
        }
        if(row.projectId){
          this.dataForm.projectId =row.projectId
        }
        this.pageCode = row.pageCode
        this.subtitle = this.pageName[this.pageCode]
        // this.dataForm.disabled
        if (row.projectId) {
          this.dataForm.projectId = row.projectId
        }
        console.log(id, row, this.subtitle, '软件测试计划检查单')
        if (this.configDetailRow) {
          if (!row.stepMarker) {
            this.stepMarker = 'csjcd_first'
            this.title = '发起测试检查单'
          } else {
            this.title = row.stepName
            this.stepMarker = row.stepMarker
          }
        }
        //this.dataForm.disabled
        this.getInfo()
        console.log(this.dataForm.id, this.dataForm.projectId, this.stepMarker, 'this.dataForm.id, this.dataForm.projectId,this.stepMarker')
        //console.log(this.dataForm.id, this.dataForm.projectId, this.stepMarker, 'this.dataForm.id, this.dataForm.projectId,this.stepMarker')
      },
      indexFormat(index) {
        return index += 1
      },
      // 获取信息
      async getInfo() {
        let res = await this.$http.get(`/testCheckOrder/TestCheckOrder/${this.dataForm.id}`)
        let params = {
          checkId: this.dataForm.id,
          projectId: this.dataForm.projectId,
          pageCode: this.pageCode
        }
        console.log(this.pageCode, "getInfo pageCode")
        let res = await this.$http.get(`/testCheckOrder/TestCheckOrder/getDto`, {params: params})
        this.dataForm = {
          ...this.dataForm,
          ...res.data
        }
      },
      // 表单提交
      async formSubmit() {
      async formSubmit(submitType) {
        if (submitType == 'tj') {
          let isFlow = false
          for (let item of this.dataForm.checkOrderList) {
            if (!item.checkResult) {
              this.$alert("有未填写的数据")
              return
            } else if (item.checkResult == "2") {
              isFlow = true
            }
          }
          if (submitType == 'tj' && !isFlow) {
            submitType == ''
          }
        }
        if (submitType == 'tj' || submitType == 'bl' && isFlow) {
          let flowInfo = {
            flowCode: 'csjcd',
            stepIdMark: this.stepMarker,
            submitType: submitType
          }
          this.dataForm.flowInfoDto = flowInfo;
        }
        let res = await this.$http[!this.dataForm.id ? 'post' : 'put']('/testCheckOrder/TestCheckOrder/', this.dataForm)
        if (res.success) {
          await this.$tip.success()
          this.$refs.dialog.close()
          this.$emit('refreshDataList')
          this.$emit('recall', res.data, this.configDetailRow)
        }
      }
    }
  }
</script>
<style>
.el-flexCirculationDialog {
  display: flex;
  align-items: center
}
  .el-flexCirculationDialog {
    display: flex;
    align-items: center
  }
.testCheckFormAuto  .acceptDate > .el-form-item > .el-form-item__content {
  width: 100%;
}
.testCheckFormAuto  .acceptDate1 > .el-form-item > .el-form-item__content {
  width: 100%;
}
.testCheckFormAuto .marginTopAndMarginBottom {
  margin-top: 10px !important;
  margin-bottom: 0 !important;
}
  .testCheckFormAuto .acceptDate > .el-form-item > .el-form-item__content {
    width: 100%;
  }
.testCheckFormAuto .marginTopAndMarginBottom2 {
  margin-top: -10px !important;
  margin-bottom: 10px !important;
}
  .testCheckFormAuto .acceptDate1 > .el-form-item > .el-form-item__content {
    width: 100%;
  }
.testCheckFormAuto .marginTopAndMarginBottom3 {
  margin-top: 0 !important;
  margin-bottom: 10px !important;
}
  .testCheckFormAuto .marginTopAndMarginBottom {
    margin-top: 10px !important;
    margin-bottom: 0 !important;
  }
.testCheckFormAuto .acceptDate > .el-form-item > .el-form-item__content {
  line-height: 78px;
}
.testCheckContentWidth > .el-form-item > .el-form-item__content {
  width: calc(100% - 120px);
}
.testCheckFormAuto .el-radio {
  margin-right: 10px;
}
  .testCheckFormAuto .marginTopAndMarginBottom2 {
    margin-top: -10px !important;
    margin-bottom: 10px !important;
  }
  .testCheckFormAuto .marginTopAndMarginBottom3 {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
  }
  .testCheckFormAuto .acceptDate > .el-form-item > .el-form-item__content {
    line-height: 78px;
  }
  .testCheckContentWidth > .el-form-item > .el-form-item__content {
    width: calc(100% - 120px);
  }
  .testCheckFormAuto .el-radio {
    margin-right: 10px;
  }
</style>