| | |
| | | <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: null, |
| | | projectId: 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 |
| | | } |
| | | let res = await this.$http.get(`/project/SoftwareTestOrder/getDto`, {params: params}) |
| | | this.dataForm = { |
| | | ...this.dataForm, |
| | | ...res.data |
| | | } |
| | | 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 (id != null) { |
| | | if (await this.$tip.confirm(this.$t('prompt.info', {'handle': this.$t('delete')}))) { |
| | | 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 (id != null) { |
| | | if (await this.$tip.confirm(this.$t('prompt.info', {'handle': this.$t('delete')}))) { |
| | | 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> |