jinlin
2024-02-01 2df883fcbed176f83d8d144fd007e7f72fcb54d6
web/src/views/modules/qaAuditReport/QaAuditReport-AddOrUpdate.vue
@@ -1,5 +1,5 @@
<template>
  <zt-dialog ref="dialog" column="3" :title="title" :stepMarker="stepMarker" @confirm="formSubmit">
  <zt-dialog ref="dialog" column="2" :title="title" :stepMarker="stepMarker" @confirm="formSubmit">
    <el-form ref="dataForm" style="padding-top: 0" :inline="true" :disabled="dataForm.disabled" :model="dataForm"
             label-width="120px" class="contractFormAuto">
      <div>
@@ -8,117 +8,127 @@
        </el-form-item>
      </div>
      <div style="border: 1px solid rgba(0,0,0,.2);width: 99%">
        <div style="border-bottom: 1px solid rgba(0,0,0,.2);" class="contractContentWidth">
          <el-form-item class="marginTopAndMarginBottom" label="客户名称" style="width: 49%">
            <el-input v-model="dataForm.testAgencyInfo.agencyName" placeholder="请输入客户名称"></el-input>
        <div style="border-bottom: 1px solid rgba(0,0,0,.2);" class="QaAuditContentWidth">
          <el-form-item class="marginTopAndMarginBottom" label="项目名称" style="width: 49%">
            <el-input v-model="dataForm.project.softwareName" placeholder="请输入项目名称"></el-input>
          </el-form-item>
          <el-form-item class="marginTopAndMarginBottom" label="联系电话" style="width: 49%">
            <el-input v-model="dataForm.testAgencyInfo.labContactNum" placeholder="请输入联系电话"></el-input>
          </el-form-item>
          <el-form-item class="marginTopAndMarginBottom reviewLeft" style="width: 49%">
            <zt-dict v-model="dataForm.contractReview.reviewType" :radio="true" dict="review_type"></zt-dict>
          </el-form-item>
          <el-form-item label-width="160px" class="lastChild" label="原委托单编号:" style="width: 49%">
            <span>{{ dataForm.contractReview.orderCode }}</span>
          <el-form-item class="marginTopAndMarginBottom" label="项目标识" style="width: 49%">
            <el-input v-model="dataForm.project.softwareIdentity" placeholder="请输入项目标识"></el-input>
          </el-form-item>
        </div>
        <div class="el-flexContractDialog el-border-bottom">
          <div class="DFormWidth DAlign DHold">
            评审项目
        <div class="el-flexQaAuditDialog el-border-bottom">
          <div class="QaFormWidth DAlign DHold">
            项目成员
          </div>
          <div class="el-border-left" style="width: calc(100% - 120px)">
          <div class="el-border-left" style="width: calc(100% - 120px);min-height: 40px">
            <el-form-item style="width: 50%;padding: 0 5px">
              <span>项目负责人:{{dataForm.project.projectLeader || '项目负责人'}} </span>
            </el-form-item>
            <el-form-item style="width: 40%;padding: 0 5px">
              <span>测试人员:{{dataForm.project.projectTesters || '测试人员'}} </span>
            </el-form-item>
            <el-form-item style="width: 40%;padding: 0 5px">
              <span>配置人员:{{dataForm.project.projectConfiger || '配置人员'}} </span>
            </el-form-item>
          </div>
        </div>
        <div class="el-flexQaAuditDialog el-border-bottom">
          <div class="QaFormWidth DAlign DHold">
            已完成的检查
          </div>
          <div class="el-border-left" style="width: calc(100% - 120px);min-height: 40px">
            <el-form-item class="el-QaTextarea" label-width="20px" style="width: 100%;padding: 5px">
              <el-input type="textarea" :rows="2" placeholder="请输入内容"
                        v-model="dataForm.auditReport.completedCheck"></el-input>
            </el-form-item>
          </div>
        </div>
        <div class=" el-border-bottom">
          <div style="height: 40px;line-height: 40px;text-align:center;font-weight: 600">
            不符合项列表
          </div>
          <div>
            <div class="table-container">
              <el-table ref="tableConfigItemList" class="el-software el-margin-top-bot"
                        style="width: 99%;margin-left: 5px" border :data="dataForm.reviewItemList"
                        style="width: 99%;margin-left: 5px" border :data="dataForm.incongruentList"
                        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="item" min-width="400" label="评审项">
                <el-table-column prop="oddNum" min-width="350" label="不符合项单号">
                  <template v-slot="{ row }">
                    <el-input v-model="row.item" placeholder="评审项"></el-input>
                    <el-input v-model="row.oddNum" placeholder="不符合项单号"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="result" width="220" align="center" label="评审结果">
                <el-table-column prop="notTrueDescribe" width="220" align="center" label="不符合项描述">
                  <template v-slot="{ row }">
                    <zt-dict v-model="row.result" placeholder="评审结果" dict="tristate1" :radio="true"
                             clearable></zt-dict>
                    <el-input v-model="row.notTrueDescribe" placeholder="不符合项描述"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="workProcess" width="100" align="center" label="所属工作产品/过程">
                  <template v-slot="{ row }">
                    <el-input v-model="row.workProcess" placeholder="所属工作产品/过程"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="discoveryPhase" width="80" align="center" label="发现阶段">
                  <template v-slot="{ row }">
                    <el-input v-model="row.discoveryPhase" placeholder="发现阶段"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="chargePerson" width="80" align="center" label="责任人">
                  <template v-slot="{ row }">
                    <el-input v-model="row.chargePerson" placeholder="责任人"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="status" width="80" align="center" label="状态">
                  <template v-slot="{ row }">
                    <el-input v-model="row.status" placeholder="状态"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="remark" width="100" align="center" label="备注">
                  <template v-slot="{ row }">
                    <el-input v-model="row.remark" placeholder="备注"></el-input>
                  </template>
                </el-table-column>
              </el-table>
            </div>
          </div>
        </div>
        <div class="el-flexContractDialog el-border-bottom">
          <div class="DFormWidth DAlign DHold">
            评审记录
        <div class="el-border-bottom">
          <div style="height: 40px;line-height: 40px;text-align:center;font-weight: 600">
            QA总结
          </div>
          <div style="width: calc(100% - 120px)" class="el-border-left">
            <el-form-item class="el-CMTextarea" label-width="20px" style="width: 100%;padding: 5px">
              <el-input type="textarea" :rows="2" placeholder="请输入内容"
                        v-model="dataForm.contractReview.reviewRecord"></el-input>
          <div class="el-border-bottom">
            <el-form-item class="el-QaTextarea" label-width="20px" style="width: 100%;padding: 5px">
              <el-input v-if="stepMarker=='qashbg_first'" type="textarea" :rows="2" placeholder="请输入内容"
                        v-model="dataForm.auditReport.qaSummary"></el-input>
              <span v-else>{{ dataForm.auditReport.qaSummary}}</span>
            </el-form-item>
            <el-form-item label="检查人(签字):" label-width="160px" style="width: 48%;padding: 5px;">
              {{ dataForm.auditReport.checker }}
            </el-form-item>
            <el-form-item style="width: 48%;padding: 5px;">
              {{ dataForm.auditReport.checkDate | filterTime('YYYY年MM月DD日') }}
            </el-form-item>
          </div>
        </div>
        <div class="el-flexContractDialog el-border-bottom">
          <div class="DFormWidth DAlign DHold">
            客户的特殊要求
          </div>
          <div style="width: calc(100% - 120px)" class="el-border-left">
            <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
              <el-input type="textarea" :rows="2" placeholder="请输入内容"
                        v-model="dataForm.contractReview.specialRequire"></el-input>
          <div>
            <el-form-item label="质量监督员意见:" class="el-QaTextarea1" label-width="160px" style="width: 100%;padding: 5px">
              <el-input v-if="stepMarker=='qashbg_zljd'" type="textarea" :rows="2" placeholder="请输入内容"
                        v-model="dataForm.auditReport.supervisorOpinion"></el-input>
              <span v-else>{{ dataForm.auditReport.supervisorOpinion}}</span>
            </el-form-item>
          </div>
        </div>
        <div class="el-flexContractDialog el-border-bottom">
          <div class="DFormWidth DAlign DHold">
            分包
          </div>
          <div style="width: calc(100% - 120px)" class="el-border-left">
            <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
              <el-input type="textarea" :rows="2" placeholder="请输入内容"
                        v-model="dataForm.contractReview.subcontract"></el-input>
            <el-form-item label="质量监督员(签字):" label-width="160px" style="width: 48%;padding: 5px;">
              {{ dataForm.auditReport.supervisorSign }}
            </el-form-item>
          </div>
        </div>
        <div class="el-flexContractDialog el-border-bottom">
          <div class="DFormWidth DAlign DHold">
            评审结论
          </div>
          <div style="width: calc(100% - 120px)" class="el-border-left">
            <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
              <el-input type="textarea" :rows="2" placeholder="请输入评审结论"
                        v-model="dataForm.contractReview.reviewConclusion"></el-input>
            </el-form-item>
            <el-form-item label="技术负责人:" style="width: 48%">
              <el-input type="textarea" :rows="1" placeholder="请输入技术负责人"
                        v-model="dataForm.contractReview.technicalDirector"></el-input>
            </el-form-item>
            <el-form-item label="日期:" style="width: 48%">
              <el-date-picker
                v-model="dataForm.contractReview.reviewDate"
                type="date"
                placeholder="请选择日期">
              </el-date-picker>
            </el-form-item>
          </div>
        </div>
        <div class="el-flexContractDialog">
          <div class="DFormWidth DAlign DHold">
            评审组成员
          </div>
          <div style="width: calc(100% - 120px)" class="el-border-left">
            <el-form-item class="el-CMTextarea" style="width: 100%;padding: 5px">
              <el-input type="textarea" :rows="2" placeholder="请输入内容"
                        v-model="dataForm.contractReview.reviewPanelMember"></el-input>
            <el-form-item style="width: 48%;padding: 5px;">
              {{ dataForm.auditReport.superviseDate | filterTime('YYYY年MM月DD日') }}
            </el-form-item>
          </div>
        </div>
      </div>
      <div class="el-flex review-sc" style="height: 60px">
      <div class="el-flex qa-sc" style="height: 60px">
        <el-form-item class="marginTopAndMarginBottom" style="width: 100%">
          <config-uploader :lineHeight="true" busi-type="qa_audit_report" model-name="dataForm" :dataForm="dataForm"
                           v-model="dataForm.files"/>
@@ -151,18 +161,18 @@
            superviseDate: '',
          },
          id: '',
          project:{
          project: {
            softwareIdentity: '',
            softwarName: '',
            softwareName: '',
            projectLeader: '',
            projectTesters: '',
            projectConfiger: ''
          },
          incongruentList:[]
          incongruentList: []
        }
      }
    },
    methods: {
      indexFormat(index) {
        return index += 1
      },
      init(id, row) {
        if (id) {
          this.dataForm.id = id
@@ -172,7 +182,6 @@
        if (row.projectId) {
          this.dataForm.projectId = row.projectId
        }
        // this.dataForm.disabled
        this.getInfo()
        if (!this.dataForm.disabled) {
@@ -185,6 +194,22 @@
          }
        }
        console.log(this.dataForm.id, this.dataForm.projectId, this.stepMarker, 'this.dataForm.id, this.dataForm.projectId,this.stepMarker')
      },
      indexFormat(index) {
        return index += 1
      },
      async getNameById() {
        let params = {
          projectLeaderId: this.dataForm.project.projectLeader,
          projectTestersId: this.dataForm.project.projectTesters,
          projectConfigerId: this.dataForm.project.projectConfiger
        }
        let res = await this.$http.get(`/qaAuditReport/QaAuditReport/getNameById`, {params: params})
        if (res.success) {
          this.dataForm.project.projectLeader = res.data.projectLeaderName
          this.dataForm.project.projectTesters = res.data.projectTestersName
          this.dataForm.project.projectConfiger = res.data.projectConfigerName
        }
      },
      addCirculatRow() {
        this.dataForm.technicalList.push({})
@@ -204,6 +229,7 @@
          ...this.dataForm,
          ...res.data
        }
        this.getNameById()
        if (this.dataForm.project === null) {
          this.dataForm.project = {}
        }
@@ -241,3 +267,30 @@
    }
  }
</script>
<style>
  .el-flexQaAuditDialog {
    display: flex;
    align-items: center;
  }
  .QaFormWidth {
    width: 120px;
  }
  .QaAuditContentWidth > .el-form-item > .el-form-item__content {
    width: calc(100% - 120px);
  }
  .el-form-item.el-QaTextarea > .el-form-item__content {
    width: 100%;
  }
  .el-form-item.el-QaTextarea1 > .el-form-item__content {
    width: calc(100% - 160px);
  }
</style>
<style>
  .qa-sc > .el-form-item > .el-form-item__content {
    width: 100%;
  }
</style>