|  |  | 
 |  |  | <template> | 
 |  |  |   <zt-dialog ref="dialog" column="2" @confirm="formSubmit" > | 
 |  |  |   <zt-dialog ref="dialog" column="2" @confirm="formSubmit"> | 
 |  |  |     <el-form ref="form" :inline="true" :model="dataForm" :disabled="dataForm.disabled" label-width="93px" | 
 |  |  |              class="weiTuoDanAuto" style="padding-top: 0"> | 
 |  |  |       <div class="DManageForm"> | 
 |  |  | 
 |  |  |               </div> | 
 |  |  |             </div> | 
 |  |  |             <div class="el-flex el-border-bottom"> | 
 |  |  |               <div  class="DWidth-Unt DAlign DHold"> | 
 |  |  |               <div class="DWidth-Unt DAlign DHold"> | 
 |  |  |                 被测件信息 | 
 |  |  |               </div> | 
 |  |  |               <div class="DOldForm el-border-left"> | 
 |  |  | 
 |  |  |                   <div style="width:88px !important;" class="DWidth DAlign DHold"> | 
 |  |  |                     被测件及其他相关物品清单 | 
 |  |  |                   </div> | 
 |  |  |                   <div style="width: calc(100% - 120px);padding: 5px"> | 
 |  |  |                     <el-table class="el-software" height="230" border :data="dataForm.measuredList" | 
 |  |  |                   <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="序号"/> | 
 |  |  |                       <el-table-column prop="name" min-width="300" label="名称"/> | 
 |  |  |                       <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"> | 
 |  |  |                           <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> | 
 |  |  | 
 |  |  |                           <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 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> | 
 |  |  |                                clearable :inputName="dataForm.softwareTestOrder.otherBasis" origin="otherBasis" | 
 |  |  |                                @getChangeInputData="getChangeInputData"></zt-dict> | 
 |  |  |                     </el-form-item> | 
 |  |  |                   </div> | 
 |  |  |                 </div> | 
 |  |  | 
 |  |  |                     测试类型 | 
 |  |  |                   </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"> | 
 |  |  |                     <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"> | 
 |  |  |                     <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 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 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-border-left startDate" style="width: 45%;"> | 
 |  |  |                     <el-form-item  style="width: 100%;padding-left:20px;margin:0;"> | 
 |  |  |                     <el-form-item style="width: 100%;padding-left:20px;margin:0;"> | 
 |  |  |                       <el-date-picker | 
 |  |  |                         v-model="dataForm.softwareTestOrder.startDate" | 
 |  |  |                         type="date" | 
 |  |  | 
 |  |  |                     结束日期 | 
 |  |  |                   </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> | 
 |  |  |                     <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> | 
 |  |  |                   <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> | 
 |  |  |                     <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"> | 
 |  |  | 
 |  |  |                     <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> | 
 |  |  |                       <span>其他:<el-input class="requireOther" | 
 |  |  |                                          v-model="dataForm.softwareTestOrder.requireOther"></el-input></span> | 
 |  |  |                     </el-form-item> | 
 |  |  |                   </div> | 
 |  |  |                 </div> | 
 |  |  | 
 |  |  |                 <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="委托方人员"/>--> | 
 |  |  |                     <!--                    <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 | 
 |  |  | 
 |  |  |                       type="date" | 
 |  |  |                       placeholder="选择日期"> | 
 |  |  |                     </el-date-picker> | 
 |  |  | <!--                    {{ dataForm.softwareTestOrder.entrustSignDate | filterTime('YYYY年MM月DD日') }}--> | 
 |  |  |                     <!--                    {{ dataForm.softwareTestOrder.entrustSignDate | filterTime('YYYY年MM月DD日') }}--> | 
 |  |  |                   </div> | 
 |  |  |                 </div> | 
 |  |  |               </div> | 
 |  |  | 
 |  |  |                     测试日期 | 
 |  |  |                   </div> | 
 |  |  |                   <div class="el-border-left startDate" style="width: 45%;"> | 
 |  |  |                     <el-form-item  style="width: 100%;padding-left:20px;margin:0;"> | 
 |  |  |                     <el-form-item style="width: 100%;padding-left:20px;margin:0;"> | 
 |  |  |                       <el-date-picker | 
 |  |  |                         v-model="dataForm.softwareTestOrder.testDate" | 
 |  |  |                         type="date" | 
 |  |  | 
 |  |  |                     交付日期 | 
 |  |  |                   </div> | 
 |  |  |                   <div class="el-border-left endDate" style="width: 42%"> | 
 |  |  |                     <el-form-item  style="width: 100%;padding-left:20px;margin:0;"> | 
 |  |  |                     <el-form-item style="width: 100%;padding-left:20px;margin:0;"> | 
 |  |  |                       <el-date-picker | 
 |  |  |                         v-model="dataForm.softwareTestOrder.deliveryDate" | 
 |  |  |                         type="date" | 
 |  |  | 
 |  |  |                     检测费用 | 
 |  |  |                   </div> | 
 |  |  |                   <div class="el-border-left testCost" style="width: 98%"> | 
 |  |  |                     <el-form-item  style="width: 98%;padding-left:20px;margin:0;"> | 
 |  |  |                     <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-border-left" style="width: 98%"> | 
 |  |  |                     <el-form-item  style="width: 20%;padding-left:20px;margin:0;"> | 
 |  |  |                     <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> | 
 |  |  | 
 |  |  |                   <div style="width:88px !important;" class="DWidth DAlign DHold"> | 
 |  |  |                     交付物清单 | 
 |  |  |                   </div> | 
 |  |  |                   <div style="width: calc(100% - 120px);padding: 5px"> | 
 |  |  |                     <el-table class="el-software" height="100" border :data="dataForm.deliverableList" | 
 |  |  |                   <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="序号"/> | 
 |  |  |                       <el-table-column prop="name" min-width="300" label="名称"></el-table-column> | 
 |  |  |                       <el-table-column prop="identify" align="center" width="380" label="标识/版本"></el-table-column> | 
 |  |  |                       <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 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>--> | 
 |  |  |                     <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日') }}--> | 
 |  |  |                     <!--                    {{ dataForm.softwareTestOrder.contractSignDate | filterTime('YYYY年MM月DD日') }}--> | 
 |  |  |                     <el-date-picker | 
 |  |  |                       v-model="dataForm.softwareTestOrder.contractSignDate" | 
 |  |  |                       type="date" | 
 |  |  | 
 |  |  |           </div> | 
 |  |  |         </div> | 
 |  |  |         <div class="el-flex order-sc" style="height: 60px"> | 
 |  |  | <!--          <div class="DPadding3 DAlign DHold">--> | 
 |  |  | <!--            委托单上传--> | 
 |  |  | <!--          </div>--> | 
 |  |  |             <el-form-item class="marginTopAndMarginBottom" style="width: 100%"> | 
 |  |  |               <config-uploader busi-type="test_order" model-name="dataForm" :dataForm="dataForm" | 
 |  |  |                                v-model="dataForm.files"/> | 
 |  |  |             </el-form-item> | 
 |  |  |           <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> | 
 |  |  |  | 
 |  |  | 
 |  |  | <script> | 
 |  |  |   import Cookies from 'js-cookie' | 
 |  |  |   import qs from 'qs' | 
 |  |  | export default { | 
 |  |  |   data() { | 
 |  |  |     return { | 
 |  |  |       // inputName:'', | 
 |  |  |       eventIndex:'', | 
 |  |  |       editingCell:null, | 
 |  |  |       dataForm: { | 
 |  |  |         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 params = { | 
 |  |  |         orderId: this.dataForm.id, | 
 |  |  |         projectId: this.dataForm.projectId | 
 |  |  |       } | 
 |  |  |       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 | 
 |  |  |   export default { | 
 |  |  |     data() { | 
 |  |  |       return { | 
 |  |  |         // inputName:'', | 
 |  |  |         eventIndex: '', | 
 |  |  |         editingCell: null, | 
 |  |  |         dataForm: { | 
 |  |  |           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: [], | 
 |  |  |         } | 
 |  |  |         if(this.dataForm.softwareTestOrder){ | 
 |  |  |           if(this.dataForm.softwareTestOrder.testType1){ | 
 |  |  |             this.dataForm.softwareTestOrder.testType1=this.dataForm.softwareTestOrder.testType1.split(',') | 
 |  |  |             console.log(this.dataForm.softwareTestOrder.testType1) | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |     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() | 
 |  |  |           } | 
 |  |  |           if(this.dataForm.softwareTestOrder.testType2){ | 
 |  |  |             this.dataForm.softwareTestOrder.testType2=this.dataForm.softwareTestOrder.testType2.split(',') | 
 |  |  |             console.log(this.dataForm.softwareTestOrder.testType2) | 
 |  |  |         }) | 
 |  |  |         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 params = { | 
 |  |  |           orderId: this.dataForm.id, | 
 |  |  |           projectId: this.dataForm.projectId | 
 |  |  |         } | 
 |  |  |         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 = {} | 
 |  |  |           } | 
 |  |  |         } | 
 |  |  |         if(this.dataForm.project === null){ | 
 |  |  |           this.dataForm.project={} | 
 |  |  |         // 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) | 
 |  |  |         } | 
 |  |  |         if(this.dataForm.softwareTestOrder === null){ | 
 |  |  |           this.dataForm.softwareTestOrder={} | 
 |  |  |       }, | 
 |  |  |       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) | 
 |  |  |         } | 
 |  |  |         if(this.dataForm.testAgencyInfo === null){ | 
 |  |  |           this.dataForm.testAgencyInfo={} | 
 |  |  |       }, | 
 |  |  |       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(',') | 
 |  |  |         } | 
 |  |  |       } | 
 |  |  |       // console.log(this.dataForm, "this.dataForm") | 
 |  |  |       console.log(this.dataForm,"getInfo this.dataForm") | 
 |  |  |     }, | 
 |  |  |     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.join(',') | 
 |  |  |         } | 
 |  |  |         if(this.dataForm.softwareTestOrder.testType2){ | 
 |  |  |           this.dataForm.softwareTestOrder.testType2=this.dataForm.softwareTestOrder.testType2.split(',') | 
 |  |  |         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: 1px solid; margin: 0 auto; | 
 |  |  | } | 
 |  |  |   .weiTuoDanAuto { | 
 |  |  |     width: 70%; | 
 |  |  |     /*border: 1 px solid;*/ | 
 |  |  |     margin: 0 auto; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .weiTuoDanAuto .el-radio { | 
 |  |  |   padding: 5px; | 
 |  |  |   margin-right: 10px; | 
 |  |  | } | 
 |  |  |   .weiTuoDanAuto .el-radio { | 
 |  |  |     padding: 5px; | 
 |  |  |     margin-right: 10px; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .zt .weiTuoDanAuto .el-form-item.el-form-item--default { | 
 |  |  |   margin-right: 0; | 
 |  |  | } | 
 |  |  |   .zt .weiTuoDanAuto .el-form-item.el-form-item--default { | 
 |  |  |     margin-right: 0; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .el-flex { | 
 |  |  |   display: flex; | 
 |  |  |   align-items: center; | 
 |  |  | } | 
 |  |  |   .el-flex { | 
 |  |  |     display: flex; | 
 |  |  |     align-items: center; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .DWidth { | 
 |  |  |   width: 100px; | 
 |  |  | } | 
 |  |  |   .DWidth { | 
 |  |  |     width: 100px; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .DWidth-Unt { | 
 |  |  |   width: 100px; | 
 |  |  | } | 
 |  |  |   .DWidth-Unt { | 
 |  |  |     width: 100px; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .DPadding1 { | 
 |  |  |   padding: 6px; | 
 |  |  | } | 
 |  |  |   .DPadding1 { | 
 |  |  |     padding: 6px; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .DPadding2 { | 
 |  |  |   padding: 7px; | 
 |  |  | } | 
 |  |  |   .DPadding2 { | 
 |  |  |     padding: 7px; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .DPadding3 { | 
 |  |  |   padding: 4px; | 
 |  |  | } | 
 |  |  |   .DPadding3 { | 
 |  |  |     padding: 4px; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .DAlign { | 
 |  |  |   text-align: center; | 
 |  |  | } | 
 |  |  |   .DAlign { | 
 |  |  |     text-align: center; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .el-border-left { | 
 |  |  |   border-left: 1px solid rgba(0, 0, 0, .2); | 
 |  |  | } | 
 |  |  |   .el-border-left { | 
 |  |  |     border-left: 1px solid rgba(0, 0, 0, .2); | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .DOldForm { | 
 |  |  |   width: 100%; | 
 |  |  | } | 
 |  |  |   .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); | 
 |  |  | } | 
 |  |  |   .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); | 
 |  |  | } | 
 |  |  |   .DOldForm > .el-form-item > .el-form-item__content { | 
 |  |  |     width: calc(100% - 120px); | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .zt .el-table.el-software th { | 
 |  |  |   background: transparent; | 
 |  |  | } | 
 |  |  |   .startDate > .el-form-item > .el-form-item__content { | 
 |  |  |     width: 95%; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .zt .el-table.el-software th > .cell { | 
 |  |  |   font-weight: 500; | 
 |  |  | } | 
 |  |  |   .endDate > .el-form-item > .el-form-item__content { | 
 |  |  |     width: 95%; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .DHold { | 
 |  |  |   font-weight: 600; | 
 |  |  | } | 
 |  |  |   .testCost > .el-form-item > .el-form-item__content { | 
 |  |  |     width: 100%; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .zt .el-table.el-software { | 
 |  |  |   font-size: 14px; | 
 |  |  | } | 
 |  |  |   .testVenue > .el-form-item > .el-form-item__content { | 
 |  |  |     width: 100%; | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .weiTuoDanAuto .marginTopAndMarginBottom { | 
 |  |  |   margin-top: 10px !important; | 
 |  |  |   margin-bottom: 0 !important; | 
 |  |  | } | 
 |  |  |   .el-border-bottom { | 
 |  |  |     border-bottom: 1px solid rgba(0, 0, 0, .2); | 
 |  |  |   } | 
 |  |  |  | 
 |  |  | .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; | 
 |  |  | } | 
 |  |  |   .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> |