jinlin
2024-01-31 9025b9cf7ec8610003d445a31d93e35e7bd73c2e
web/src/views/modules/project/SoftwareTestOrder-AddOrUpdate.vue
@@ -1,127 +1,811 @@
<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 ref="form" :inline="true" :model="dataForm" :disabled="dataForm.disabled" label-width="93px"
             class="weiTuoDanAuto" style="padding-top: 0">
      <div class="DManageForm">
        <el-form-item readonly label-width="50px" label="编号:" style="width: 99% ;margin-bottom:-5px">
          <span>{{ dataForm.softwareTestOrder.code}}</span>
        </el-form-item>
      </div>
      <div style="border: 1px solid rgba(0,0,0,.2)">
        <div class="el-flex el-border-bottom">
          <div class="DPadding1 DAlign DHold">
            委托方
          </div>
          <div class="el-border-left">
            <div class="el-flex el-border-bottom">
              <div class="DWidth DAlign DHold">
                委托单位
              </div>
              <div class="DOldForm el-border-left">
                <el-form-item class="marginTopAndMarginBottom" label="单位名称" style="width: 49%">
                  <el-input readonly v-model="dataForm.project.entrustUnitName" placeholder="请输入单位名称"></el-input>
                </el-form-item>
                <el-form-item class="marginTopAndMarginBottom" label="联系人" style="width: 49%">
                  <el-input readonly v-model="dataForm.project.entrustUnitContact"
                            placeholder="请输入联系人"></el-input>
                </el-form-item>
                <el-form-item label="详细地址" style="width: 49%">
                  <el-input readonly v-model="dataForm.project.entrustUnitAddress"
                            placeholder="请输入详细地址"></el-input>
                </el-form-item>
                <el-form-item label="联系方式" style="width: 49%">
                  <el-input readonly v-model="dataForm.project.entrustUnitContWay"
                            placeholder="请输入联系方式"></el-input>
                </el-form-item>
              </div>
            </div>
            <div class="el-flex el-border-bottom">
              <div class="DWidth DAlign DHold">
                开发单位
              </div>
              <div class="DOldForm el-border-left">
                <el-form-item class="marginTopAndMarginBottom" label="单位名称" style="width: 49%">
                  <el-input readonly v-model="dataForm.project.developUnitName" placeholder="请输入单位名称"></el-input>
                </el-form-item>
                <el-form-item class="marginTopAndMarginBottom" label="联系人" style="width: 49%">
                  <el-input readonly v-model="dataForm.project.developUnitContact"
                            placeholder="请输入联系人"></el-input>
                </el-form-item>
                <el-form-item label="详细地址" style="width: 49%">
                  <el-input readonly v-model="dataForm.project.developUnitAddress"
                            placeholder="请输入详细地址"></el-input>
                </el-form-item>
                <el-form-item label="联系方式" style="width: 49%">
                  <el-input readonly v-model="dataForm.project.developUnitContWay"
                            placeholder="请输入联系方式"></el-input>
                </el-form-item>
              </div>
            </div>
            <div class="el-flex el-border-bottom">
              <div class="DWidth-Unt DAlign DHold">
                被测件信息
              </div>
              <div class="DOldForm el-border-left">
                <el-form-item class="marginTopAndMarginBottom" label="软件名称" style="width: 49%">
                  <el-input readonly v-model="dataForm.project.softwareName" placeholder="请输入软件名称"></el-input>
                </el-form-item>
                <el-form-item class="marginTopAndMarginBottom" label="软件标识" style="width: 49%">
                  <el-input readonly v-model="dataForm.project.softwareIdentity" placeholder="请输入软件标识"></el-input>
                </el-form-item>
                <el-form-item label="密级" style="width: 49%">
                  <zt-dict readonly v-model="dataForm.project.secretClass" placeholder="密级" dict="secret_class"
                           clearable></zt-dict>
                </el-form-item>
                <el-form-item label="关键等级" style="width: 49%">
                  <zt-dict readonly v-model="dataForm.project.criticalLevel" :radio="true" placeholder="关键等级"
                           clearable dict="critical_level"></zt-dict>
                </el-form-item>
                <el-form-item class="marginTopAndMarginBottom2" label="运行环境" style="width: 49%">
                  <el-input v-model="dataForm.softwareTestOrder.optEnviron" placeholder="请输入运行环境"></el-input>
                </el-form-item>
                <el-form-item class="marginTopAndMarginBottom2" label="编程语言" style="width: 49%">
                  <el-input v-model="dataForm.softwareTestOrder.programLang" placeholder="请输入编程语言"></el-input>
                </el-form-item>
                <div class="el-flex el-border-top-and-bottom">
                  <div style="width:88px !important;" class="DWidth DAlign DHold">
                    被测件及其他相关物品清单
                  </div>
                  <div class="table-container" style="width: calc(100% - 120px);padding: 5px">
                    <el-table ref="tableMeasuredList" class="el-software" border :data="dataForm.measuredList"
                              @cell-click="handleCellClick"
                              stripe>
                      <el-table-column prop="no" align="center" width="80" label="序号">
                        <template slot-scope="scope">
                          <span v-html="indexFormat(scope.$index)"></span>
                        </template>
                      </el-table-column>
                      <el-table-column prop="name" min-width="300" label="名称">
                        <template v-slot="{ row }">
                          <el-input v-model="row.name" placeholder="名称"></el-input>
                        </template>
                      </el-table-column>
                      <el-table-column align="center" prop="identify" width="180" label="标识/版本">
                        <template slot-scope="scope">
                          <span
                            v-if="editingCell && editingCell.row === scope.row && editingCell.column.property === scope.column.property">
                            <el-input ref="editInput" v-model="scope.row.identify" placeholder="标识/版本"></el-input>
                          </span>
                          <span v-else>{{ scope.row.identify }}</span>
                        </template>
                      </el-table-column>
                      <el-table-column label="是否被测件" width="180" align="center">
                        <template slot-scope="scope">
                          <zt-dict v-model="scope.row.isMeasured" dict="is_or_not" :radio="true"></zt-dict>
                        </template>
                      </el-table-column>
                      <el-table-column fixed="right" label="操作" align="center">
                        <template slot-scope="scope">
                          <zt-table-button @click="deleteMeasuredRow(scope.$index,scope.row.id)">删除</zt-table-button>
                        </template>
                      </el-table-column>
                    </el-table>
                    <div v-if="!dataForm.disabled" class="icon-container" @click="addMeasuredRow()">
                      <!-- 放置固定的图标 -->
                      <i class="el-icon-plus"></i>
                    </div>
                  </div>
                </div>
                <div class="el-flex" style="height: 40px;">
                  <div class="DWidth DAlign DHold">
                    软件类型
                  </div>
                  <div style="width: calc(100% - 120px)">
                    <zt-dict v-model="dataForm.project.softwareType" :radio="true" dict="software_type"></zt-dict>
                  </div>
                </div>
              </div>
            </div>
            <div class="el-flex el-border-bottom">
              <div class="DWidth DAlign DHold">
                测试要求
              </div>
              <div class="el-border-left" style="width: 100%;">
                <div class="el-flex el-border-bottom">
                  <div class="DWidth DAlign DHold">
                    测试依据
                  </div>
                  <div class="el-border-left" style="width: 98%">
                    <el-form-item style="width: 20%;padding-left:5%;margin-bottom: 0">
                      <zt-dict v-model="dataForm.softwareTestOrder.testBasis" :radio="true" dict="test_basis"
                               clearable :inputName="dataForm.softwareTestOrder.otherBasis" origin="otherBasis"
                               @getChangeInputData="getChangeInputData"></zt-dict>
                    </el-form-item>
                  </div>
                </div>
                <div class="el-flex el-border-bottom">
                  <div class="DWidth DAlign DHold">
                    测试类型
                  </div>
                  <div class="el-border-left test-type-line-height" style="width: 98%">
                    <el-form-item style="width: 40%;padding-left:5%;margin-bottom: 0">
                      <zt-dict-checkbox v-model="dataForm.softwareTestOrder.testType1" column="2" dict="test_type1"
                                        clearable></zt-dict-checkbox>
                    </el-form-item>
                    <el-form-item
                      style="width: 60%;padding-left: 15%;border-left: 1px solid rgba(0,0,0,.2);margin-bottom: 0">
                      <zt-dict-checkbox v-model="dataForm.softwareTestOrder.testType2" dict="test_type2"
                                        clearable></zt-dict-checkbox>
                    </el-form-item>
                  </div>
                </div>
                <div class="el-flex el-border-bottom">
                  <div class="DWidth DAlign DHold">
                    测试相关标准/要求
                  </div>
                  <div class="el-border-left" style="width: 98%">
                    <el-form-item style="width: 20%;padding-left:5%;margin-bottom: 0">
                      <zt-dict v-model="dataForm.softwareTestOrder.testStandard" :radio="true"
                               origin="otherStandard" @getChangeInputData="getChangeInputData"
                               dict="test_standard" :inputName="dataForm.softwareTestOrder.otherStandard">
                      </zt-dict>
                    </el-form-item>
                  </div>
                </div>
                <div class="el-flex el-border-bottom">
                  <div class="DWidth DAlign DHold">
                    测试级别
                  </div>
                  <div class="el-border-left" style="width: 98%">
                    <el-form-item style="padding-left:5%;margin-bottom:0">
                      <zt-dict v-model="dataForm.softwareTestOrder.testLevel" :radio="true" dict="test_level"></zt-dict>
                    </el-form-item>
                  </div>
                </div>
                <div class="el-flex el-border-bottom">
                  <div class="DWidth DAlign DHold">
                    开始日期
                  </div>
                  <div class="el-border-left startDate" style="width: 45%;">
                    <el-form-item style="width: 100%;padding-left:20px;margin:0;">
                      <el-date-picker
                        v-model="dataForm.softwareTestOrder.startDate"
                        type="date"
                        placeholder="选择日期">
                      </el-date-picker>
                    </el-form-item>
                  </div>
                  <div class="DWidth DAlign DHold">
                    结束日期
                  </div>
                  <div class="el-border-left endDate" style="width: 42%">
                    <el-form-item style="width: 100%;padding-left:20px;margin:0;">
                      <el-date-picker
                        v-model="dataForm.softwareTestOrder.endDate"
                        type="date"
                        placeholder="选择日期">
                      </el-date-picker>
                    </el-form-item>
                  </div>
                </div>
                <div class="el-flex el-border-bottom">
                  <div class="DWidth DAlign DHold">
                    测试场地
                  </div>
                  <div class="el-border-left testVenue" style="width: 98%">
                    <el-form-item style="width: 98%;padding-left:20px;margin:0;">
                      <el-input v-model="dataForm.softwareTestOrder.testVenue" placeholder="请输入测试场地"></el-input>
                    </el-form-item>
                  </div>
                </div>
                <div class="el-flex">
                  <div class="DWidth DAlign DHold">
                    其他要求
                  </div>
                  <div class="el-border-left" style="width: 98%;">
                    <el-form-item label="是否盖CNAS章" label-width="130px" style="padding-left:5%;margin-bottom:0">
                      <zt-dict v-model="dataForm.softwareTestOrder.otherRequire" :radio="true"
                               dict="is_or_not"></zt-dict>
                      <span>其他:<el-input class="requireOther"
                                         v-model="dataForm.softwareTestOrder.requireOther"></el-input></span>
                    </el-form-item>
                  </div>
                </div>
              </div>
            </div>
            <div class="el-flex">
              <div class="DWidth DAlign DHold">
                委托方签字:
              </div>
              <div class="" style="width: 100%;">
                <div class="el-flex " style="height: 40px">
                  <div style="width: 60%">
                    <span>{{ dataForm.softwareTestOrder.entrustSign }}</span>
                    <!--                    <zt-select v-model="dataForm.softwareTestOrder.entrustSign" url="/sys/userEx/getUsersList" :multiple="true" :clearable="true" placeholder="委托方人员"/>-->
                  </div>
                  <div class="el-flex" style="margin-left: 10%">
                    <el-date-picker
                      v-model="dataForm.softwareTestOrder.entrustSignDate"
                      type="date"
                      placeholder="选择日期">
                    </el-date-picker>
                    <!--                    {{ dataForm.softwareTestOrder.entrustSignDate | filterTime('YYYY年MM月DD日') }}-->
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
        <div class="el-flex el-border-bottom">
          <div class="DPadding2 DAlign DHold">
            承托方
          </div>
          <div class="el-border-left">
            <div class="el-flex el-border-bottom">
              <div class="DWidth-Unt DAlign DHold">
                测试信息
              </div>
              <div class="DOldForm el-border-left">
                <div class="el-flex el-border-bottom">
                  <div class="DWidth DAlign DHold">
                    测试日期
                  </div>
                  <div class="el-border-left startDate" style="width: 45%;">
                    <el-form-item style="width: 100%;padding-left:20px;margin:0;">
                      <el-date-picker
                        v-model="dataForm.softwareTestOrder.testDate"
                        type="date"
                        placeholder="选择测试日期">
                      </el-date-picker>
                    </el-form-item>
                  </div>
                  <div class="DWidth DAlign DHold">
                    交付日期
                  </div>
                  <div class="el-border-left endDate" style="width: 42%">
                    <el-form-item style="width: 100%;padding-left:20px;margin:0;">
                      <el-date-picker
                        v-model="dataForm.softwareTestOrder.deliveryDate"
                        type="date"
                        placeholder="选择交付日期">
                      </el-date-picker>
                    </el-form-item>
                  </div>
                </div>
                <div class="el-flex el-border-bottom">
                  <div class="DWidth DAlign DHold">
                    检测费用
                  </div>
                  <div class="el-border-left testCost" style="width: 98%">
                    <el-form-item style="width: 98%;padding-left:20px;margin:0;">
                      <el-input v-model="dataForm.softwareTestOrder.testCost" placeholder="请输入检测费用"></el-input>
                    </el-form-item>
                  </div>
                </div>
                <div class="el-flex el-border-bottom">
                  <div class="DWidth DAlign DHold">
                    物品性质
                  </div>
                  <div class="el-border-left" style="width: 98%">
                    <el-form-item style="width: 20%;padding-left:20px;margin:0;">
                      <zt-dict v-model="dataForm.softwareTestOrder.articleNature" :radio="true"
                               origin="otherNature" @getChangeInputData="getChangeInputData"
                               dict="article_nature" :inputName="dataForm.softwareTestOrder.otherNature"></zt-dict>
                    </el-form-item>
                  </div>
                </div>
                <div class="el-flex el-border-bottom">
                  <div class="DWidth DAlign DHold">
                    样品状态
                  </div>
                  <div class="el-border-left" style="width: 98%;">
                    <el-form-item label="是否满足测试要求:" label-width="160px" style="margin-bottom: 0">
                      <zt-dict v-model="dataForm.softwareTestOrder.sampleStatus" :radio="true"
                               dict="is_satisfy"></zt-dict>
                    </el-form-item>
                  </div>
                </div>
                <div class="el-flex el-border-top">
                  <div style="width:88px !important;" class="DWidth DAlign DHold">
                    交付物清单
                  </div>
                  <div class="table-container" style="width: calc(100% - 120px);padding: 5px">
                    <el-table ref="tableDeliverableList" class="el-software" border :data="dataForm.deliverableList"
                              stripe>
                      <el-table-column type="index" align="center" width="80" label="序号">
                        <template slot-scope="scope">
                          <span v-html="indexFormat(scope.$index)"></span>
                        </template>
                      </el-table-column>
                      <el-table-column prop="name" min-width="300" 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="380" label="标识/版本">
                        <template v-slot="{ row }">
                          <el-input v-model="row.identify" placeholder="标识/版本"></el-input>
                        </template>
                      </el-table-column>
                      <el-table-column fixed="right" label="操作" align="center">
                        <template slot-scope="scope">
                          <zt-table-button @click="deleteDeliverableRow(scope.$index,scope.row.id)">删除</zt-table-button>
                        </template>
                      </el-table-column>
                    </el-table>
                    <div v-if="!dataForm.disabled" class="icon-container" @click="addDeliverableRow()">
                      <!-- 放置固定的图标 -->
                      <i class="el-icon-plus"></i>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            <div class="el-flex el-border-bottom">
              <div class="DWidth DAlign DHold">
                测试机构信息
              </div>
              <div class="el-border-left csjgxx" style="width: 100%;">
                <el-form-item class="marginTopAndMarginBottom" label-width="130px" label="测评机构名称"
                              style="width: 98%">
                  <el-input v-model="dataForm.testAgencyInfo.agencyName" placeholder="请输入单位名称"></el-input>
                </el-form-item>
                <el-form-item class="marginTopAndMarginBottom3" label-width="130px" label="地址" style="width: 98%">
                  <el-input v-model="dataForm.testAgencyInfo.site" placeholder="请输入联系人"></el-input>
                </el-form-item>
                <el-form-item class="marginTopAndMarginBottom2" label-width="130px" label="业务联系" style="width: 49%">
                  <el-input v-model="dataForm.testAgencyInfo.businContact" placeholder="请输入详细地址"></el-input>
                </el-form-item>
                <el-form-item class="marginTopAndMarginBottom2" label-width="130px" label="业务投诉" style="width: 49%">
                  <el-input v-model="dataForm.testAgencyInfo.businComplaint" placeholder="请输入详细地址"></el-input>
                </el-form-item>
                <el-form-item class="marginTopAndMarginBottom2" label-width="130px" label="实验室联系人"
                              style="width: 49%">
                  <el-input v-model="dataForm.testAgencyInfo.laborContact" placeholder="请输入详细地址"></el-input>
                </el-form-item>
                <el-form-item class="marginTopAndMarginBottom2" label-width="130px" label="实验室联系电话"
                              style="width: 49%">
                  <el-input v-model="dataForm.testAgencyInfo.labContactNum" placeholder="请输入详细地址"></el-input>
                </el-form-item>
                <el-form-item class="marginTopAndMarginBottom2" label-width="130px" label="邮政编码" style="width: 49%">
                  <el-input v-model="dataForm.testAgencyInfo.postalCode" placeholder="请输入详细地址"></el-input>
                </el-form-item>
                <el-form-item class="marginTopAndMarginBottom2" label-width="130px" label="传真" style="width: 49%">
                  <el-input v-model="dataForm.testAgencyInfo.fax" placeholder="请输入详细地址"></el-input>
                </el-form-item>
                <el-form-item class="marginTopAndMarginBottom2" label-width="130px" label="地址" style="width: 98%">
                  <el-input v-model="dataForm.testAgencyInfo.site" placeholder="请输入详细地址"></el-input>
                </el-form-item>
                <el-form-item class="marginTopAndMarginBottom2" label-width="130px" label="业务投诉" style="width: 98%">
                  <el-input v-model="dataForm.testAgencyInfo.businComplaint" placeholder="请输入详细地址"></el-input>
                </el-form-item>
              </div>
            </div>
            <div class="el-flex">
              <div class="DWidth DAlign DHold">
                承托方签字:
              </div>
              <div class="" style="width: 100%;">
                <div class="el-flex" style="height: 40px">
                  <div style="width: 60%">
                    <zt-select v-model="dataForm.softwareTestOrder.contractSign" url="/sys/userEx/getUsersList"
                               placeholder="承托方人员"/>
                    <!--                    <span>{{ dataForm.contractSign }}</span>-->
                  </div>
                  <div class="el-flex" style="margin-left: 10%">
                    <!--                    {{ dataForm.softwareTestOrder.contractSignDate | filterTime('YYYY年MM月DD日') }}-->
                    <el-date-picker
                      v-model="dataForm.softwareTestOrder.contractSignDate"
                      type="date"
                      placeholder="选择日期">
                    </el-date-picker>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
        <div class="el-flex el-border-bottom">
          <div class="DPadding3 DAlign DHold">
            说明
          </div>
          <div class="el-border-left">
            <div>
              <span>
                1、若无特殊说明,视同客户确认本中心采用的技术方法、证书类型、履约时限和收费标准(客户若有特殊要求,请事先提出并经双方协商确认,并在委托单特殊要求栏中注明,或者附页说明),同时检测活动仅对来样负责。
              </span>
            </div>
            <div>
              <span>
                2、委托单作为双方协议和客户提取物品的凭证,请客户详细填写核对并妥善保存。
              </span>
            </div>
          </div>
        </div>
        <div class="el-flex order-sc" style="height: 60px">
          <el-form-item class="marginTopAndMarginBottom" style="width: 100%">
            <config-uploader :lineHeight="true" busi-type="test_order" model-name="dataForm" :dataForm="dataForm"
                             v-model="dataForm.files"/>
          </el-form-item>
        </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 Cookies from 'js-cookie'
  import qs from 'qs'
  export default {
    data() {
      return {
        // inputName:'',
        eventIndex: '',
        editingCell: null,
        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: ''
          id: null,
          projectId: null,
          softwareTestOrder: {
            code: '',
            optEnviron: '',
            programLang: '',
            testBasis: '',
            testType1: '',
            testType2: '',
            testStandard: '',
            startDate: '',
            endDate: '',
            testVenue: '',
            otherRequire: '',
            testDate: '',
            deliveryDate: '',
            testCost: '',
            articleNature: '',
            sampleStatus: '',
            entrustSign: '',
            entrustSignDate: '',
            contractSign: '',
            contractSignDate: '',
            otherBasis: 'otherBasis',
            otherStandard: 'otherStandard',
            requireOther: 'requireOther',
            otherNature: 'otherNature',
          },
          project: {
            code: '',
            creator: '',
            criticalLevel: '',
            developUnitAddress: '',
            developUnitContWay: '',
            developUnitContact: '',
            developUnitName: '',
            entrustUnitAddress: '',
            entrustUnitContWay: '',
            entrustUnitContact: '',
            entrustUnitName: '',
            softwareIdentity: '',
            isContract: '',
            projectLeader: '',
            projectReviewer: '',
            projectTesters: '',
            secretClass: '',
            softwareName: '',
            softwareType: '',
            tenantId: '',
            testLevel: '',
          },
          testAgencyInfo: {
            agencyName: '',
            site: '',
            businContact: '',
            businComplaint: '',
            laborContact: '',
            labContactNum: '',
            postalCode: '',
            fax: ''
          },
          deliverableList: [],
          measuredList: [],
        }
      }
    },
    methods: {
      // getDictLabel(event,name){
      //   if(name.indexOf("其他")!=-1){
      //     console.log(name,'字典名字q34567')
      //     this.eventIndex = event
      //     this.inputName='q14eeff'
      //   }
      // },
      getChangeInputData(data, ogn) {
        // console.log(ogn)
        this.$set(this.dataForm.softwareTestOrder, ogn, data);
        console.log(this.dataForm.softwareTestOrder[ogn]);
        // console.log(this.dataForm.softwareTestOrder[ogn])
      },
      handleCellClick(row, column) {
        this.editingCell = {row, column}
        this.$nextTick(() => {
          if (this.$refs.editInput) {
            this.$refs.editInput.focus()
          }
        })
        console.log(this.editingCell, 'this.editingCell')
      },
      init(id, row) {
        this.dataForm.id = row.id
        this.dataForm.projectId = row.projectId
        // this.dataForm.disabled
        this.getInfo()
        console.log(this.dataForm.id, this.dataForm.projectId, 'params params')
      },
      // 获取信息
      async getInfo() {
        let res = await this.$http.get(`/project/SoftwareTestOrder/${this.dataForm.id}`)
        this.dataForm = {
          ...this.dataForm,
          ...res.data
        let params = {
          orderId: this.dataForm.id,
          projectId: this.dataForm.projectId
        }
        console.log(this.dataForm,"this.dataForm")
        console.log(this.dataForm, "this.dataForm")
        let res = await this.$http.get(`/project/SoftwareTestOrder/getDto`, {params: params})
        if (res.data) {
          this.dataForm = {
            ...this.dataForm,
            ...res.data
          }
          if (this.dataForm.softwareTestOrder) {
            if (this.dataForm.softwareTestOrder.testType1) {
              this.dataForm.softwareTestOrder.testType1 = this.dataForm.softwareTestOrder.testType1.split(',')
              console.log(this.dataForm.softwareTestOrder.testType1)
            }
            if (this.dataForm.softwareTestOrder.testType2) {
              this.dataForm.softwareTestOrder.testType2 = this.dataForm.softwareTestOrder.testType2.split(',')
              console.log(this.dataForm.softwareTestOrder.testType2)
            }
          }
          if (this.dataForm.project === null) {
            this.dataForm.project = {}
          }
          if (this.dataForm.softwareTestOrder === null) {
            this.dataForm.softwareTestOrder = {}
          }
          if (this.dataForm.testAgencyInfo === null) {
            this.dataForm.testAgencyInfo = {}
          }
        }
        // console.log(this.dataForm, "this.dataForm")
        console.log(this.dataForm, "getInfo this.dataForm")
      },
      indexFormat(index) {
        return index += 1
      },
      addDeliverableRow() {
        this.dataForm.deliverableList.push({})
        this.$nextTick(() => {
          const tableBody = this.$refs.tableDeliverableList.$el.querySelector('.el-table__body-wrapper')
          tableBody.scrollTop = tableBody.scrollHeight
        })
      },
      async deleteDeliverableRow(index,id) {
          if (await this.$tip.confirm(this.$t('prompt.info', {'handle': this.$t('delete')}))) {
            if (id != null) {
            let res = await this.$http.delete('/project/SoftwareTestOrderDeliverable/', {data: [id]})
          }
          this.dataForm.deliverableList.splice(index, 1)
        }
      },
      addMeasuredRow() {
        this.dataForm.measuredList.push({})
        this.$nextTick(() => {
          const tableBody = this.$refs.tableMeasuredList.$el.querySelector('.el-table__body-wrapper')
          tableBody.scrollTop = tableBody.scrollHeight
        })
      },
      async deleteMeasuredRow(index, id) {
          if (await this.$tip.confirm(this.$t('prompt.info', {'handle': this.$t('delete')}))) {
            if (id != null) {
            let res = await this.$http.delete('/project/SoftwareTestOrderMeasured/', {data: [id]})
          }
            this.dataForm.measuredList.splice(index, 1)
        }
      },
      async print() {
        var params = qs.stringify({
          token: Cookies.get('token'),
          id: this.dataForm.id
        })
        let apiURL = `/project/SoftwareTestOrder/exportWord/`
        window.location.href = `${window.SITE_CONFIG['apiURL']}${apiURL}?${params}`
      },
      // 表单提交
      async formSubmit() {
        console.log(this.dataForm, 'formSubmit this.dataForm')
        if (this.dataForm.softwareTestOrder.testType1) {
          this.dataForm.softwareTestOrder.testType1 = this.dataForm.softwareTestOrder.testType1.join(',')
        }
        if (this.dataForm.softwareTestOrder.testType2) {
          this.dataForm.softwareTestOrder.testType2 = this.dataForm.softwareTestOrder.testType2.join(',')
        }
        console.log(this.dataForm.softwareTestOrder.testType1)
        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')
        } else {
          if (this.dataForm.softwareTestOrder.testType1) {
            this.dataForm.softwareTestOrder.testType1 = this.dataForm.softwareTestOrder.testType1.split(',')
          }
          if (this.dataForm.softwareTestOrder.testType2) {
            this.dataForm.softwareTestOrder.testType2 = this.dataForm.softwareTestOrder.testType2.split(',')
          }
        }
      }
    }
  }
</script>
<style>
  .weiTuoDanAuto {
    width: 70%;
    /*border: 1 px solid;*/
    margin: 0 auto;
  }
  .weiTuoDanAuto .el-radio {
    padding: 5px;
    margin-right: 10px;
  }
  .zt .weiTuoDanAuto .el-form-item.el-form-item--default {
    margin-right: 0;
  }
  .el-flex {
    display: flex;
    align-items: center;
  }
  .DWidth {
    width: 100px;
  }
  .DWidth-Unt {
    width: 100px;
  }
  .DPadding1 {
    padding: 6px;
  }
  .DPadding2 {
    padding: 7px;
  }
  .DPadding3 {
    padding: 4px;
  }
  .DAlign {
    text-align: center;
  }
  .el-border-left {
    border-left: 1px solid rgba(0, 0, 0, .2);
  }
  .DOldForm {
    width: 100%;
  }
  .el-border-top-and-bottom {
    border-top: 1px solid rgba(0, 0, 0, .2);
    border-bottom: 1px solid rgba(0, 0, 0, .2);
  }
  .DOldForm > .el-form-item > .el-form-item__content {
    width: calc(100% - 120px);
  }
  .startDate > .el-form-item > .el-form-item__content {
    width: 95%;
  }
  .endDate > .el-form-item > .el-form-item__content {
    width: 95%;
  }
  .testCost > .el-form-item > .el-form-item__content {
    width: 100%;
  }
  .testVenue > .el-form-item > .el-form-item__content {
    width: 100%;
  }
  .el-border-bottom {
    border-bottom: 1px solid rgba(0, 0, 0, .2);
  }
  .zt .el-table.el-software th {
    background: transparent;
  }
  .zt .el-table.el-software th > .cell {
    font-weight: 500;
  }
  .DHold {
    font-weight: 600;
  }
  .zt .el-table.el-software {
    font-size: 14px;
  }
  .weiTuoDanAuto .marginTopAndMarginBottom {
    margin-top: 10px !important;
    margin-bottom: 0 !important;
  }
  .weiTuoDanAuto .marginTopAndMarginBottom2 {
    margin-top: -10px !important;
    margin-bottom: 10px !important;
  }
  .weiTuoDanAuto .marginTopAndMarginBottom3 {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
  }
  .csjgxx > .el-form-item > .el-form-item__content {
    width: calc(100% - 130px);
  }
  .order-sc > .el-form-item > .el-form-item__content {
    width: 100%;
  }
  .test-type-line-height > .el-form-item > .el-form-item__content {
    line-height: 30px;
  }
  .requireOther.el-input {
    position: absolute;
  }
</style>