wente
2023-12-29 e2cef6c358e57c2bc63e67a05c88c52585bb96db
web/src/views/modules/configAuditReport/ConfigAuditReport-AddOrUpdate.vue
@@ -1,55 +1,229 @@
<template>
  <zt-dialog ref="dialog"  @confirm="formSubmit">
    <el-form :model="dataForm" ref="dataForm" :disabled="dataForm.disabled" label-width="120px">
      <zt-form-item label="项目ID" prop="projectId" rules="required">
                        <el-input v-model="dataForm.projectId"></el-input>
                </zt-form-item>
      <zt-form-item label="编号" prop="code" rules="required">
                        <el-input v-model="dataForm.code"></el-input>
                </zt-form-item>
      <zt-form-item label="审核人" prop="auditor" rules="required">
                        <el-input v-model="dataForm.auditor"></el-input>
                </zt-form-item>
      <zt-form-item label="审核人ID" prop="auditorId" rules="required">
                        <el-input v-model="dataForm.auditorId"></el-input>
                </zt-form-item>
      <zt-form-item label="审核时间" prop="auditorDate" rules="required">
                        <el-input v-model="dataForm.auditorDate"></el-input>
                </zt-form-item>
      <zt-form-item label="年份" prop="year" rules="required">
                        <el-input v-model="dataForm.year"></el-input>
                </zt-form-item>
    <el-form :model="dataForm" :inline="true" ref="dataForm" style="padding-top: 0" :disabled="dataForm.disabled"
             label-width="120px" class="configAuditFormAuto">
      <div>
        <el-form-item label-width="60px" label="编号:" style="width:100%;margin-bottom: -5px">
          <span>{{dataForm.circulatOrder.code || '编号自动生成'}}</span>
        </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="configAuditContentWidth">
          <el-form-item class="marginTopAndMarginBottom" label="项目名称" style="width: 48%">
            <el-input v-model="dataForm.testAgencyInfo.agencyName" placeholder="项目名称"></el-input>
          </el-form-item>
          <el-form-item class="marginTopAndMarginBottom" label="项目标识" style="width: 48%">
            <el-input v-model="dataForm.project.softwareIdentity" placeholder="项目标识"></el-input>
          </el-form-item>
        </div>
        <div style="border-bottom: 1px solid rgba(0,0,0,.2);">
          <div>
            <div style="text-align: center;font-weight: 600;border-bottom:1px solid rgba(0,0,0,.2);height: 40px;line-height: 40px;font-size: 18px">审核内容</div>
            <el-form-item label="状态标记" label-width="150px" style="width:100%;padding-left:20px;margin-bottom:0">
              <zt-dict v-model="dataForm.circulatOrder.itemRequire" :radio="true"
                       dict="is_or_not"></zt-dict>
            </el-form-item>
            <div class="table-container">
              <el-table ref="tableConfigAuditList" class="el-software el-margin-top-bot" border
                        :data="dataForm.technicalList"
                        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="技术资料名称">
                  <template v-slot="{ row }">
                    <el-input v-model="row.name" placeholder="技术资料名称"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="identify" align="center" width="150" label="标识">
                  <template v-slot="{ row }">
                    <el-input v-model="row.version" placeholder="标识"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="remark" label="备注" width="100" align="center">
                  <template v-slot="{ row }">
                    <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 }">
                    <table-uploader busi-type="circulat_order" model-name="row" :dataForm="row"
                                    v-model="row.files"/>
                  </template>
                </el-table-column>
              </el-table>
            </div>
          </div>
          <div>
            <div style="text-align: center;font-weight: 600;height: 40px;line-height: 40px;font-size: 18px">发现的问题</div>
            <div class="table-container">
              <el-table ref="tableConfigAuditList" class="el-software el-margin-top-bot" border
                        :data="dataForm.technicalList"
                        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="技术资料名称">
                  <template v-slot="{ row }">
                    <el-input v-model="row.name" placeholder="技术资料名称"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="identify" align="center" width="150" label="标识">
                  <template v-slot="{ row }">
                    <el-input v-model="row.version" placeholder="标识"></el-input>
                  </template>
                </el-table-column>
                <el-table-column prop="remark" label="备注" width="100" align="center">
                  <template v-slot="{ row }">
                    <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 }">
                    <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="addConfigAuditRow()">
                <!-- 放置固定的图标 -->
                <i class="el-icon-plus"></i>
              </div>
            </div>
          </div>
        </div>
        <div class="el-flexConfigAuditDialog">
          <div style="width: 112px;text-align: center;font-weight: 600">
            审核人员:
          </div>
          <div class="el-border-left-right" style="width: 20%;height: 40px;">
            <el-form-item style="width: 100%;padding-left:20px;margin:0;">
              {{dataForm.circulatOrder.calibratDetector}}
            </el-form-item>
          </div>
          <div style="width: 52px;text-align: center;font-weight: 600">
            日 期
          </div>
          <div class="el-border-left" style="width: 20%;height: 40px;">
            <el-form-item style="width: 100%;padding-left:20px;margin:0;">
              <!--              {{dataForm.circulatOrder.detectDate}}-->
              {{ dataForm.circulatOrder.detectDate | filterTime('YYYY年MM月DD日') }}
            </el-form-item>
          </div>
        </div>
      </div>
    </el-form>
    <template v-slot:footer>
      <el-button v-if="dataForm.disabled" type="primary" @click="print()">打印</el-button>
    </template>
  </zt-dialog>
</template>
<script>
  import qs from "qs";
  import Cookies from "js-cookie";
  export default {
    data() {
      return {
        // dataForm: {
        //   id: '',
        //   configAuditReport:{
        //     code: '',
        //     auditor: '',
        //     auditorDate: '',
        //   },
        //   project: {
        //     softwareIdentity: '',
        //     softwareName: ''
        //   },
        //   problemList:[],
        //   contentList:[]
        // },
        dataForm: {
          id: '',
          configAuditReport:{
            code: '',
            auditor: '',
            auditorId: '',
            auditorDate: '',
          circulatOrder: {
            code: '1',
            itemAccept: '',
            itemRequire: '',
            itemOther: '',
            acceptSituation: '',
            acceptDate: '',
            calibratDetector: '',
            detectDate: '',
            detectSituation: '',
            warehouse: '',
            warehouseDate: '',
            warehouseSituation: '',
            itemIssuer: '',
            issueDate: '',
            issueSituation: '',
            remark: '',
            virusLibraryVersion:'',
            itemAcceptor:''
          },
          project: {
            softwareIdentity: '',
            softwareName: ''
          }
            softwareName: '',
          },
          testAgencyInfo: {
            agencyName: '',
          },
          technicalList: [],
          flowInfoDto: {}
        }
      }
    },
    methods: {
      indexFormat(index) {
        return index += 1
      },
      init(id, row) {
        if (id) {
          this.dataForm.id = id
        } else {
          this.dataForm.id = row.id
        }
        if (row.projectId) {
          this.dataForm.projectId = row.projectId
        }
        this.getInfo()
        console.log(this.dataForm.id, this.dataForm.projectId, 'params params')
      },
      // 获取信息
      async getInfo() {
        let res = await this.$http.get(`/configAuditReport/ConfigAuditReport/${this.dataForm.id}`)
        let params = {
          reportId: this.dataForm.id,
          projectId: this.dataForm.projectId
        }
        let res = await this.$http.get(`/configAuditReport/ConfigAuditReport/getDto`, {params: params})
        this.dataForm = {
          ...this.dataForm,
          ...res.data
        }
        if(this.dataForm.configAuditReport === null){
          this.dataForm.contractReview={}
        }
        console.log(this.dataForm, "getInfo this.dataForm")
      },
      addConfigAuditRow() {
        this.dataForm.technicalList.push({})
        this.$nextTick(() => {
          const tableBody = this.$refs.tableConfigAuditList.$el.querySelector('.el-table__body-wrapper')
          tableBody.scrollTop = tableBody.scrollHeight;
        })
      },
      async print(){
        var params = qs.stringify({
          token: Cookies.get('token'),
          id:this.dataForm.id
        })
        let apiURL = `/configAuditReport/ConfigAuditReport/exportReport`
        window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${params}`
      },
      // 表单提交
      async formSubmit() {
@@ -63,3 +237,34 @@
    }
  }
</script>
<style>
.el-flexConfigAuditDialog{
  display: flex;
  align-items: center
}
.configAuditContentWidth > .el-form-item > .el-form-item__content {
  width: calc(100% - 120px);
}
.configAuditFormAuto .marginTopAndMarginBottom {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.configAuditFormAuto .marginTopAndMarginBottom2 {
  margin-top: -10px !important;
  margin-bottom: 10px !important;
}
.configAuditFormAuto .marginTopAndMarginBottom3 {
  margin-top: 0 !important;
  margin-bottom: 10px !important;
}
.acceptDate > .el-form-item > .el-form-item__content {
  line-height: 80px;
}
.configAuditFormAuto .el-radio {
  margin-right: 10px;
}
</style>