| | |
| | | <template> |
| | | <div> |
| | | <div class="bg-1"> |
| | | <div style="margin: 5px 15px"> |
| | | <el-row class="title"> |
| | | <el-col :span="12" style="text-align: left">检验下单</el-col> |
| | | <el-col :span="12" style="text-align: right"> |
| | | <el-button |
| | | size="medium" |
| | | type="primary" |
| | | @click="dialogVisible1 = true" |
| | | :loading="exportCheckedLoading" |
| | | >导出检验结果</el-button |
| | | > |
| | | <el-button size="medium" type="primary" @click="print" |
| | | >标签打印</el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="primary" |
| | | @click="playOrder(1)" |
| | | v-hasPermi="['business:order:add']" |
| | | >下单</el-button |
| | | > |
| | | <el-button size="medium" type="primary" @click="dialogVisible1 = true" |
| | | :loading="exportCheckedLoading">导出检验结果</el-button> |
| | | <el-button size="medium" type="primary" @click="print">标签打印</el-button> |
| | | <el-button size="medium" type="primary" @click="playOrder(1)" |
| | | v-hasPermi="['business:order:add']">下单</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | |
| | | <div class="search_thing" style="width: 20%"> |
| | | <div class="search_label">委托编号:</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="queryParams.entrustCode" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.entrustCode" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%"> |
| | |
| | | 外部委托编号: |
| | | </div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="queryParams.outEntrustCode" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.outEntrustCode" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%"> |
| | | <div class="search_label">样品名称:</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="queryParams.sampleName" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.sampleName" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%"> |
| | | <div class="search_label">样品型号:</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="queryParams.sampleModel" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.sampleModel" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%"> |
| | | <div class="search_label">样品编号:</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="queryParams.sampleCode" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.sampleCode" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 40%" v-if="more"> |
| | | <div class="search_label">下单时间:</div> |
| | | <div class="search_input"> |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | v-model="queryParams.startAndEndTime" |
| | | type="daterange" |
| | | size="small" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | value-format="yyyy-MM-dd" |
| | | clearable |
| | | placeholder="选择日期" |
| | | > |
| | | <el-date-picker style="width: 100%" v-model="queryParams.startAndEndTime" type="daterange" size="small" |
| | | range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" |
| | | clearable placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%" v-if="more"> |
| | | <div class="search_label">下单人:</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="queryParams.name" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.name" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%" v-if="more"> |
| | | <div class="search_label">工程名称:</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="queryParams.engineering" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.engineering" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%" v-if="more"> |
| | | <div class="search_label">生产单位:</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请输入" |
| | | clearable |
| | | v-model="queryParams.production" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.production" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="4"> |
| | | <div class="search_thing"> |
| | | <el-button |
| | | type="text" |
| | | :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" |
| | | style="color: #3a7bfa" |
| | | @click="more = !more" |
| | | >{{ !more ? "更多" : "收起" }}</el-button |
| | | > |
| | | <el-button type="text" :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3a7bfa" |
| | | @click="more = !more">{{ !more ? "更多" : "收起" }}</el-button> |
| | | <el-button size="small" @click="refresh()">重 置</el-button> |
| | | <el-button size="small" type="primary" @click="refreshTable()" |
| | | >查 询</el-button |
| | | > |
| | | <el-button size="small" type="primary" @click="refreshTable()">查 询</el-button> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <div v-show="active == 0"> |
| | | <div class="table"> |
| | | <ul class="tab"> |
| | | <li |
| | | v-for="(m, i) in tabList" |
| | | :key="i + 'afgh'" |
| | | :class="{ active: i == tabIndex }" |
| | | @click="handleTab(m, i)" |
| | | > |
| | | <li v-for="(m, i) in tabList" :key="i + 'afgh'" :class="{ active: i == tabIndex }" @click="handleTab(m, i)"> |
| | | {{ m.label }} |
| | | </li> |
| | | </ul> |
| | | <lims-table |
| | | :tableData="tableData" |
| | | :height="tableHeight + ''" |
| | | @pagination="pagination" |
| | | :column="column" |
| | | :page="page" |
| | | :tableLoading="tableLoading" |
| | | ></lims-table> |
| | | <lims-table :tableData="tableData" :height="tableHeight + ''" @pagination="pagination" :column="column" |
| | | :page="page" :tableLoading="tableLoading"></lims-table> |
| | | </div> |
| | | <!-- 审核 --> |
| | | <el-dialog |
| | | title="下单审核" |
| | | :visible.sync="verifyDialogVisible" |
| | | width="30%" |
| | | :before-close="handleClose" |
| | | > |
| | | <el-dialog title="下单审核" :visible.sync="verifyDialogVisible" width="30%" :before-close="handleClose"> |
| | | <p style="font-size: 16px; color: #333333" v-if="!isPass"> |
| | | 委托编号<span style="color: #34bd66">ZTMS2023071001</span |
| | | >的信息是否通过 |
| | | 委托编号<span style="color: #34bd66">ZTMS2023071001</span>的信息是否通过 |
| | | </p> |
| | | <el-form |
| | | :label-position="labelPosition" |
| | | :model="formData" |
| | | label-width="150px" |
| | | ref="ruleForm" |
| | | v-else |
| | | > |
| | | <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else> |
| | | <el-form-item label="请输入样品库位号:"> |
| | | <el-input |
| | | v-model="formData.specificationModel" |
| | | size="small" |
| | | style="width: 60%" |
| | | ></el-input> |
| | | <el-input v-model="formData.specificationModel" size="small" style="width: 60%"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row v-if="!isPass"> |
| | | <el-button @click="handleClose">退 回</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad" |
| | | >通 过</el-button |
| | | > |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad">通 过</el-button> |
| | | </el-row> |
| | | <el-row v-else> |
| | | <el-button @click="handleClose">返 回</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad" |
| | | >确 定</el-button |
| | | > |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- 撤销 --> |
| | | <el-dialog |
| | | title="下单撤销" |
| | | :visible.sync="quashDialogVisible" |
| | | width="30%" |
| | | :before-close="handleClose" |
| | | > |
| | | <el-dialog title="下单撤销" :visible.sync="quashDialogVisible" width="30%" :before-close="handleClose"> |
| | | <p style="font-size: 16px; color: #333333" v-if="!isQuash"> |
| | | 委托编号<span style="color: #34bd66">{{ |
| | | this.insOrderRow.entrustCode |
| | | }}</span |
| | | >的信息是否撤销 |
| | | }}</span>的信息是否撤销 |
| | | </p> |
| | | <el-form |
| | | :label-position="labelPosition" |
| | | :model="formData" |
| | | label-width="150px" |
| | | ref="ruleForm" |
| | | v-else |
| | | > |
| | | <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else> |
| | | <el-form-item label="请输入撤销原因:"> |
| | | <el-input |
| | | v-model="formData.specificationModel" |
| | | size="small" |
| | | style="width: 60%" |
| | | ></el-input> |
| | | <el-input v-model="formData.specificationModel" size="small" style="width: 60%"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row v-if="!isQuash"> |
| | | <el-button @click="handleClose">取 消</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad" |
| | | >确 定</el-button |
| | | > |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button> |
| | | </el-row> |
| | | <el-row v-else> |
| | | <el-button @click="handleClose">返 回</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad" |
| | | >确 定</el-button |
| | | > |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- 下发 --> |
| | | <el-dialog |
| | | title="检验分配" |
| | | :visible.sync="issuedDialogVisible" |
| | | width="400px" |
| | | :before-close="handleClose" |
| | | > |
| | | <el-dialog title="检验分配" :visible.sync="issuedDialogVisible" width="400px" :before-close="handleClose"> |
| | | <div class="body" style="max-height: 60vh"> |
| | | <el-row> |
| | | <el-col class="search_thing" style="width: 95%"> |
| | |
| | | <span class="required-span">* </span>约定时间: |
| | | </div> |
| | | <div class="search_input"> |
| | | <el-date-picker |
| | | size="small" |
| | | v-model="distributeData.appointed" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | value-format="yyyy-MM-dd" |
| | | style="width: 100%" |
| | | format="yyyy-MM-dd" |
| | | > |
| | | <el-date-picker size="small" v-model="distributeData.appointed" type="date" placeholder="选择日期" |
| | | value-format="yyyy-MM-dd" style="width: 100%" format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" style="width: 95%"> |
| | | <div class="search_label"> |
| | | <span class="required-span" v-show="distributeData.type == 2" |
| | | >* </span |
| | | >指派人员: |
| | | <span class="required-span" v-show="distributeData.type == 2">* </span>指派人员: |
| | | </div> |
| | | <div class="search_input"> |
| | | <el-select |
| | | v-model="distributeData.userId" |
| | | placeholder="请选择" |
| | | size="small" |
| | | style="width: 100%" |
| | | clearable |
| | | filterable |
| | | @change="changeUser" |
| | | > |
| | | <el-option-group |
| | | v-for="(item, index) in Object.keys(personList)" |
| | | :key="index" |
| | | :label="item" |
| | | > |
| | | <el-option |
| | | v-for="op in personList[item]" |
| | | :key="op.id" |
| | | :label="op.name" |
| | | :value="op.id" |
| | | > |
| | | <el-select v-model="distributeData.userId" placeholder="请选择" size="small" style="width: 100%" |
| | | clearable filterable @change="changeUser"> |
| | | <el-option-group v-for="(item, index) in Object.keys(personList)" :key="index" :label="item"> |
| | | <el-option v-for="op in personList[item]" :key="op.id" :label="op.name" :value="op.id"> |
| | | </el-option> |
| | | </el-option-group> |
| | | </el-select> |
| | | </div> |
| | | </el-col> |
| | | <el-col |
| | | class="search_thing" |
| | | style="width: 95%" |
| | | v-if="distributeData.userId" |
| | | > |
| | | <el-col class="search_thing" style="width: 95%" v-if="distributeData.userId"> |
| | | <div class="search_label"> |
| | | <span class="required-span">* </span>试验室: |
| | | </div> |
| | | <div class="search_input"> |
| | | <el-select |
| | | v-model="distributeData.sonLaboratory" |
| | | placeholder="请选择11" |
| | | size="small" |
| | | style="width: 100%" |
| | | clearable |
| | | filterable |
| | | > |
| | | <el-option |
| | | v-for="(item, i) in sonLaboratoryList" |
| | | :key="i + 'oooo'" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | <el-select v-model="distributeData.sonLaboratory" placeholder="请选择11" size="small" style="width: 100%" |
| | | clearable filterable> |
| | | <el-option v-for="(item, i) in sonLaboratoryList" :key="i + 'oooo'" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row> |
| | | <el-button @click="handleClose2">取 消</el-button> |
| | | <el-button type="primary" @click="submitForm2" :loading="upLoad" |
| | | >确 定</el-button |
| | | > |
| | | <el-button type="primary" @click="submitForm2" :loading="upLoad">确 定</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="数据查看" |
| | | :visible.sync="dataDialogVisible" |
| | | width="100%" |
| | | fullscreen |
| | | > |
| | | <el-dialog title="数据查看" :visible.sync="dataDialogVisible" width="100%" fullscreen> |
| | | <div style="height: 80vh; overflow-y: auto" v-if="dataDialogVisible"> |
| | | <ValueTable |
| | | ref="ValueTableDataLook" |
| | | :rowKey="'insProductId'" |
| | | :url="$api.insOrder.selectSampleAndProductByOrderId" |
| | | :componentData="componentDataDataLook" |
| | | /> |
| | | <ValueTable ref="ValueTableDataLook" :rowKey="'insProductId'" |
| | | :url="$api.insOrder.selectSampleAndProductByOrderId" :componentData="componentDataDataLook" /> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog |
| | | top="5vh" |
| | | :title="deleteTilte" |
| | | :visible.sync="deleteDialogVisible" |
| | | :before-close="handleCloseDelete" |
| | | width="80%" |
| | | > |
| | | <el-dialog top="5vh" :title="deleteTilte" :visible.sync="deleteDialogVisible" :before-close="handleCloseDelete" |
| | | width="80%"> |
| | | <div class="table-container" v-if="deleteDialogVisible"> |
| | | <!-- <ValueTable |
| | | ref="ValueTableDataDelete" |
| | |
| | | :componentData="componentDataDelete" |
| | | :isColumnWidth="true" |
| | | /> --> |
| | | <el-table |
| | | height="500px" |
| | | ref="revokeTable" |
| | | @select="handleSelectionChange" |
| | | @select-all="handleSelectionAll" |
| | | :data="treeTableData" |
| | | style="width: 100%" |
| | | row-key="id" |
| | | border |
| | | lazy |
| | | :load="load" |
| | | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" |
| | | > |
| | | <el-table-column |
| | | v-if="deleteTilte == '撤销'" |
| | | type="selection" |
| | | width="55" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="sampleCode" |
| | | label="样品编号" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table height="500px" ref="revokeTable" @select="handleSelectionChange" @select-all="handleSelectionAll" |
| | | :data="treeTableData" style="width: 100%" row-key="id" border lazy :load="load" |
| | | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> |
| | | <el-table-column v-if="deleteTilte == '撤销'" type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="sampleCode" label="样品编号" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItem" |
| | | label="检验项" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="inspectionItem" label="检验项" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItemSubclass" |
| | | label="检验子项" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="inspectionItemSubclass" label="检验子项" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="sampleType" |
| | | label="样品分类" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="sampleType" label="样品分类" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="sample" label="样品" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="model" label="型号" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="sonLaboratory" |
| | | label="试验室" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="sonLaboratory" label="试验室" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="tell" label="要求值" show-overflow-tooltip> |
| | | </el-table-column> |
| | |
| | | <el-button @click="handleNo">{{ |
| | | deleteTilte == "撤销" ? "取 消" : "不通过" |
| | | }}</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="submitDelete" |
| | | :loading="printLoading" |
| | | >{{ deleteTilte == "撤销" ? "确 定" : "通 过" }}</el-button |
| | | > |
| | | <el-button type="primary" @click="submitDelete" :loading="printLoading">{{ deleteTilte == "撤销" ? "确 定" : |
| | | "通 过" }}</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- 数据查看详情 --> |
| | | <el-dialog |
| | | title="查看详情" |
| | | :visible.sync="dialogVisible" |
| | | width="70%" |
| | | :before-close="handleClose3" |
| | | > |
| | | <el-table |
| | | v-if="type == '单根垂直燃烧' || type == '松套管'" |
| | | :data="viewDetailsList" |
| | | height="400px" |
| | | border |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | type="index" |
| | | label="序号" |
| | | width="80px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="entrustCode" |
| | | label="委托单号" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="sampleCode" |
| | | label="样品编号" |
| | | ></el-table-column> |
| | | <el-dialog title="查看详情" :visible.sync="dialogVisible" width="70%" :before-close="handleClose3"> |
| | | <el-table v-if="type == '单根垂直燃烧' || type == '松套管'" :data="viewDetailsList" height="400px" border |
| | | style="width: 100%"> |
| | | <el-table-column type="index" label="序号" width="80px"></el-table-column> |
| | | <el-table-column prop="entrustCode" label="委托单号"></el-table-column> |
| | | <el-table-column prop="sampleCode" label="样品编号"></el-table-column> |
| | | <el-table-column prop="color" label="套管"></el-table-column> |
| | | <!-- <el-table-column prop="inspectionItem" label="检验项"></el-table-column> --> |
| | | <el-table-column prop="insValue" label="检验结果"></el-table-column> |
| | | </el-table> |
| | | |
| | | <el-table |
| | | v-if="type == '抗拉强度'" |
| | | :data="viewDetailsList" |
| | | height="400px" |
| | | border |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | type="index" |
| | | label="序号" |
| | | width="80px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItem" |
| | | label="检验项" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItemSubclass" |
| | | label="检验子项" |
| | | ></el-table-column> |
| | | <el-table v-if="type == '抗拉强度'" :data="viewDetailsList" height="400px" border style="width: 100%"> |
| | | <el-table-column type="index" label="序号" width="80px"></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="检验项"></el-table-column> |
| | | <el-table-column prop="inspectionItemSubclass" label="检验子项"></el-table-column> |
| | | <el-table-column prop="width" label="宽度"></el-table-column> |
| | | <el-table-column prop="thickness" label="厚度"></el-table-column> |
| | | <el-table-column prop="testValue" label="检验值"></el-table-column> |
| | | </el-table> |
| | | |
| | | <el-table |
| | | v-if="type == '断裂伸长率'" |
| | | :data="viewDetailsList" |
| | | height="400px" |
| | | border |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | type="index" |
| | | label="序号" |
| | | width="80px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItem" |
| | | label="检验项" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItemSubclass" |
| | | label="检验子项" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | v-for="(v, i) in tableHeader" |
| | | :key="i" |
| | | :prop="`testValue${i}`" |
| | | :label="`检验值${i + 1}`" |
| | | ></el-table-column> |
| | | <el-table v-if="type == '断裂伸长率'" :data="viewDetailsList" height="400px" border style="width: 100%"> |
| | | <el-table-column type="index" label="序号" width="80px"></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="检验项"></el-table-column> |
| | | <el-table-column prop="inspectionItemSubclass" label="检验子项"></el-table-column> |
| | | <el-table-column v-for="(v, i) in tableHeader" :key="i" :prop="`testValue${i}`" |
| | | :label="`检验值${i + 1}`"></el-table-column> |
| | | </el-table> |
| | | </el-dialog> |
| | | |
| | | <!-- 导出已检数据 --> |
| | | <el-dialog |
| | | title="选择日期" |
| | | :visible.sync="dialogVisible1" |
| | | width="30%" |
| | | :before-close="handleClose4" |
| | | > |
| | | <el-dialog title="选择日期" :visible.sync="dialogVisible1" width="30%" :before-close="handleClose4"> |
| | | <span>下单日期: </span> |
| | | <el-date-picker |
| | | v-model="exportCheckedDate" |
| | | type="daterange" |
| | | size="small" |
| | | value-format="yyyy-MM-dd" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | > |
| | | <el-date-picker v-model="exportCheckedDate" type="daterange" size="small" value-format="yyyy-MM-dd" |
| | | range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="handleClose4">取 消</el-button> |
| | |
| | | </el-dialog> |
| | | </div> |
| | | <div style="width: 100%; height: 100%" v-if="active > 0"> |
| | | <Add |
| | | :active="active" |
| | | :currentId="currentId" |
| | | v-if="active < 4" |
| | | :examine="examine" |
| | | /> |
| | | <Add :active="active" :currentId="currentId" v-if="active < 4" :examine="examine" /> |
| | | </div> |
| | | <el-dialog |
| | | title="标签打印" |
| | | :visible.sync="printDialogVisible" |
| | | width="40%" |
| | | top="5vh" |
| | | > |
| | | <div |
| | | style="width: 100%; height: 400px; overflow-y: auto" |
| | | v-loading="loadPint" |
| | | > |
| | | <el-dialog title="标签打印" :visible.sync="printDialogVisible" width="40%" top="5vh"> |
| | | <div style="width: 100%; height: 400px; overflow-y: auto" v-loading="loadPint"> |
| | | <div class="dia_body"> |
| | | <el-checkbox |
| | | style="margin: 10px 5px" |
| | | :indeterminate="isIndeterminate" |
| | | v-model="checkAll" |
| | | @change="handleCheckAllChange" |
| | | >全选</el-checkbox |
| | | > |
| | | <el-checkbox-group |
| | | @change="changePrintCode()" |
| | | v-model="checkIndexList" |
| | | > |
| | | <el-card |
| | | class="box-card" |
| | | v-for="(item, i) in qrData" |
| | | :key="i + 'wwwww'" |
| | | style="margin-bottom: 15px; font-size: 16px !important" |
| | | > |
| | | <el-checkbox |
| | | :label="i" |
| | | :key="i" |
| | | style="position: relative; top: -20px; left: 5px" |
| | | ><br |
| | | /></el-checkbox> |
| | | <el-checkbox style="margin: 10px 5px" :indeterminate="isIndeterminate" v-model="checkAll" |
| | | @change="handleCheckAllChange">全选</el-checkbox> |
| | | <el-checkbox-group @change="changePrintCode()" v-model="checkIndexList"> |
| | | <el-card class="box-card" v-for="(item, i) in qrData" :key="i + 'wwwww'" |
| | | style="margin-bottom: 15px; font-size: 16px !important"> |
| | | <el-checkbox :label="i" :key="i" style="position: relative; top: -20px; left: 5px"><br /></el-checkbox> |
| | | <div> |
| | | <el-row style="font-size: 14px; padding-left: 20px"> |
| | | <el-col style="font-weight: bold">{{ item.pName }}</el-col> |
| | |
| | | <div style="display: flex"> |
| | | <div> |
| | | <el-col :span="8" :offset="4"> |
| | | <vueQr |
| | | :text=" |
| | | 'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' + |
| | | item.id + |
| | | '&type=sample' |
| | | " |
| | | :size="140" |
| | | :margin="2" |
| | | ></vueQr> |
| | | <vueQr :text="'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' + |
| | | item.id + |
| | | '&type=sample' |
| | | " :size="140" :margin="2"></vueQr> |
| | | </el-col> |
| | | </div> |
| | | <div style="margin-left: 50px; width: 100%"> |
| | | <el-row> |
| | | <el-col |
| | | style=" |
| | | <el-col style=" |
| | | font-weight: bold; |
| | | text-align: left; |
| | | font-size: 14px; |
| | | " |
| | | ><span>样品编号: </span |
| | | >{{ item.sampleCode }}</el-col |
| | | > |
| | | "><span>样品编号: </span>{{ item.sampleCode }}</el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 1px; font-size: 14px"> |
| | | <el-col style="font-weight: bold; text-align: left" |
| | | ><span>委托单号: </span>{{ item.code }}</el-col |
| | | > |
| | | <el-col style="font-weight: bold; text-align: left"><span>委托单号: </span>{{ item.code |
| | | }}</el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 1px; font-size: 14px"> |
| | | <el-col style="font-weight: bold; text-align: left" |
| | | ><span>规格型号: </span>{{ item.model }}</el-col |
| | | > |
| | | <el-col style="font-weight: bold; text-align: left"><span>规格型号: </span>{{ item.model |
| | | }}</el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 1px; font-size: 14px"> |
| | | <el-col style="font-weight: bold; text-align: left" |
| | | ><span>样品名称: </span |
| | | >{{ item.sample }}</el-col |
| | | > |
| | | <el-col style="font-weight: bold; text-align: left"><span>样品名称: </span>{{ item.sample |
| | | }}</el-col> |
| | | </el-row> |
| | | <el-row |
| | | style="margin-top: 1px; font-size: 14px" |
| | | class="ellipsis-multiline" |
| | | > |
| | | <el-col style="font-weight: bold; text-align: left" |
| | | ><span>检测项目: </span>{{ item.item }}</el-col |
| | | > |
| | | <el-row style="margin-top: 1px; font-size: 14px" class="ellipsis-multiline"> |
| | | <el-col style="font-weight: bold; text-align: left"><span>检测项目: </span>{{ item.item |
| | | }}</el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 2px; font-size: 14px"> |
| | | <el-col |
| | | style=" |
| | | <el-col style=" |
| | | font-weight: bold; |
| | | display: flex; |
| | | align-items: center; |
| | | " |
| | | ><span>样品状态: </span |
| | | ><el-radio-group |
| | | :value="item.insState" |
| | | style="margin-top: 7px; margin-left: 4px" |
| | | disabled |
| | | > |
| | | <el-radio |
| | | :label="0" |
| | | style="font-weight: bold; margin-right: 7px" |
| | | >待检</el-radio |
| | | > |
| | | <el-radio |
| | | :label="1" |
| | | style="font-weight: bold; margin-right: 7px" |
| | | >在检</el-radio |
| | | > |
| | | <el-radio |
| | | :label="2" |
| | | style="font-weight: bold; margin-right: 7px" |
| | | >已检</el-radio |
| | | > </el-radio-group |
| | | ><el-radio |
| | | :label="1" |
| | | style="font-weight: bold; margin-top: 7px" |
| | | v-model="item.isLeave" |
| | | disabled |
| | | >留样</el-radio |
| | | ></el-col |
| | | > |
| | | "><span>样品状态: </span><el-radio-group :value="item.insState" |
| | | style="margin-top: 7px; margin-left: 4px" disabled> |
| | | <el-radio :label="0" style="font-weight: bold; margin-right: 7px">待检</el-radio> |
| | | <el-radio :label="1" style="font-weight: bold; margin-right: 7px">在检</el-radio> |
| | | <el-radio :label="2" style="font-weight: bold; margin-right: 7px">已检</el-radio> |
| | | </el-radio-group><el-radio :label="1" style="font-weight: bold; margin-top: 7px" |
| | | v-model="item.isLeave" disabled>留样</el-radio></el-col> |
| | | </el-row> |
| | | </div> |
| | | </div> |
| | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row> |
| | | <el-button @click="printDialogVisible = false">取 消</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="submitPrint" |
| | | :loading="printLoading" |
| | | >打 印</el-button |
| | | > |
| | | <el-button type="primary" @click="submitPrint" :loading="printLoading">打 印</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <div |
| | | class="el-dialog__body" |
| | | style=" |
| | | <div class="el-dialog__body" style=" |
| | | overflow-y: auto; |
| | | margin-top: 0; |
| | | position: fixed; |
| | | top: 999px; |
| | | z-index: 99999; |
| | | display: none; |
| | | " |
| | | > |
| | | "> |
| | | <div id="printMOrder" class="printMOrder" ref="printMOrder"> |
| | | <el-card |
| | | class="box-card" |
| | | v-for="(item, i) in checkDataList" |
| | | :key="i + 'uuuuu'" |
| | | style=" |
| | | <el-card class="box-card" v-for="(item, i) in checkDataList" :key="i + 'uuuuu'" style=" |
| | | font-size: 0.2cm !important; |
| | | page-break-after: always; |
| | | color: #000; |
| | | box-shadow: none; |
| | | margin: 0 !important; |
| | | padding: 0 !important; |
| | | " |
| | | > |
| | | "> |
| | | <div style="display: flex"> |
| | | <div> |
| | | <el-col :span="10" :offset="2"> |
| | | <vueQr |
| | | :text=" |
| | | 'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' + |
| | | item.id + |
| | | '&type=sample' |
| | | " |
| | | :size="60" |
| | | :margin="2" |
| | | ></vueQr> |
| | | <vueQr :text="'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' + |
| | | item.id + |
| | | '&type=sample' |
| | | " :size="60" :margin="2"></vueQr> |
| | | </el-col> |
| | | </div> |
| | | <div style="margin-left: 0.32cm; line-height: 0.22cm"> |
| | | <el-row> |
| | | <el-col |
| | | style="font-size: 0.2cm; width: 4cm" |
| | | class="single-line-ellipsis" |
| | | ><span>样品编号: </span>{{ item.sampleCode }}</el-col |
| | | > |
| | | <el-col style="font-size: 0.2cm; width: 4cm" class="single-line-ellipsis"><span>样品编号: </span>{{ |
| | | item.sampleCode }}</el-col> |
| | | </el-row> |
| | | <el-row style="font-size: 0.2cm"> |
| | | <el-col><span>委托单号: </span>{{ item.code }}</el-col> |
| | |
| | | <el-col><span>规格型号: </span>{{ item.model }}</el-col> |
| | | </el-row> |
| | | <el-row style="font-size: 0.2cm"> |
| | | <el-col |
| | | ><span>样品名称: </span>{{ item.sample }}</el-col |
| | | > |
| | | <el-col><span>样品名称: </span>{{ item.sample }}</el-col> |
| | | </el-row> |
| | | <el-row style="font-size: 0.2cm; width: 4cm"> |
| | | <el-col class="ellipsis-multiline" |
| | | ><span>检测项目: </span>{{ item.item }}</el-col |
| | | > |
| | | <el-col class="ellipsis-multiline"><span>检测项目: </span>{{ item.item }}</el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 0.01cm; font-size: 0.2cm"> |
| | | <el-col style="display: flex; align-items: center" |
| | | ><span>样品状态: </span> |
| | | <span style="white-space: nowrap" |
| | | ><span v-if="item.insState == 0">√</span |
| | | ><span class="scor" v-if="item.insState != 0"></span>待检 |
| | | <span v-if="item.insState == 1">√</span |
| | | ><span class="scor" v-if="item.insState != 1"></span>在检 |
| | | <span v-if="item.insState == 2">√</span |
| | | ><span class="scor" v-if="item.insState != 2"></span>已检 |
| | | <span v-if="item.isLeave == 1">√</span |
| | | ><span class="scor" v-if="item.isLeave != 1"></span |
| | | >留样</span |
| | | > |
| | | <el-col style="display: flex; align-items: center"><span>样品状态: </span> |
| | | <span style="white-space: nowrap"><span v-if="item.insState == 0">√</span><span class="scor" |
| | | v-if="item.insState != 0"></span>待检 |
| | | <span v-if="item.insState == 1">√</span><span class="scor" v-if="item.insState != 1"></span>在检 |
| | | <span v-if="item.insState == 2">√</span><span class="scor" v-if="item.insState != 2"></span>已检 |
| | | <span v-if="item.isLeave == 1">√</span><span class="scor" |
| | | v-if="item.isLeave != 1"></span>留样</span> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | |
| | | { |
| | | name: "数据查看", |
| | | type: "text", |
| | | clickFun: (row) => {}, |
| | | clickFun: (row) => { }, |
| | | }, |
| | | { |
| | | name: "报告下载", |
| | | type: "text", |
| | | clickFun: (row) => {}, |
| | | clickFun: (row) => { }, |
| | | }, |
| | | { |
| | | name: "审核", |
| | | type: "text", |
| | | clickFun: (row) => {}, |
| | | clickFun: (row) => { }, |
| | | }, |
| | | { |
| | | name: "撤销", |
| | | type: "text", |
| | | clickFun: (row) => {}, |
| | | clickFun: (row) => { }, |
| | | }, |
| | | { |
| | | name: "撤销审核", |
| | | type: "text", |
| | | clickFun: (row) => {}, |
| | | clickFun: (row) => { }, |
| | | }, |
| | | { |
| | | name: "分配", |
| | | type: "text", |
| | | clickFun: (row) => {}, |
| | | clickFun: (row) => { }, |
| | | }, |
| | | ], |
| | | }, |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.selectTemperatureByProductId + |
| | | "?productId=" + |
| | | tree.id |
| | | "?productId=" + |
| | | tree.id |
| | | ) |
| | | .then((res) => { |
| | | this.loadRecursion(this.treeTableData, tree.id, res.data); |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.selectTemperatureNumberByProductId + |
| | | "?parentId=" + |
| | | tree.parentId + |
| | | "&inspectionItem=" + |
| | | tree.inspectionItemTwo |
| | | "?parentId=" + |
| | | tree.parentId + |
| | | "&inspectionItem=" + |
| | | tree.inspectionItemTwo |
| | | ) |
| | | .then((res) => { |
| | | this.loadRecursion(this.treeTableData, tree.id, res.data); |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.selectProductsBySampleId + |
| | | "?sampleId=" + |
| | | tree.id + |
| | | "&orderId=" + |
| | | this.orderId |
| | | "?sampleId=" + |
| | | tree.id + |
| | | "&orderId=" + |
| | | this.orderId |
| | | ) |
| | | .then((res) => { |
| | | this.treeTableData.forEach((m, index) => { |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.revokeReviewTemperatureByProductId + |
| | | "?productId=" + |
| | | tree.id |
| | | "?productId=" + |
| | | tree.id |
| | | ) |
| | | .then((res) => { |
| | | resolve(res.data); |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.revokeReviewConsistentByProductId + |
| | | "?parentId=" + |
| | | tree.parentId + |
| | | "&inspectionItem=" + |
| | | tree.inspectionItemTwo |
| | | "?parentId=" + |
| | | tree.parentId + |
| | | "&inspectionItem=" + |
| | | tree.inspectionItemTwo |
| | | ) |
| | | .then((res) => { |
| | | resolve(res.data); |
| | |
| | | this.$axios |
| | | .get( |
| | | this.$api.insOrder.revokeReviewProduct + |
| | | "?sampleId=" + |
| | | tree.id + |
| | | "&orderId=" + |
| | | this.orderId |
| | | "?sampleId=" + |
| | | tree.id + |
| | | "&orderId=" + |
| | | this.orderId |
| | | ) |
| | | .then((res) => { |
| | | resolve(res.data); |
| | |
| | | .el-form-item { |
| | | margin-bottom: 16px; |
| | | } |
| | | .box-card >>> .el-radio__inner { |
| | | |
| | | .box-card>>>.el-radio__inner { |
| | | border-radius: 2px !important; |
| | | } |
| | | .box-card >>> .el-radio__input.is-checked .el-radio__inner::after { |
| | | |
| | | .box-card>>>.el-radio__input.is-checked .el-radio__inner::after { |
| | | content: ""; |
| | | width: 8px; |
| | | height: 3px; |
| | |
| | | border-radius: 0px; |
| | | background: none; |
| | | } |
| | | >>> .el-radio__label { |
| | | |
| | | >>>.el-radio__label { |
| | | color: #000 !important; |
| | | } |
| | | .el-dialog__body >>> .el-radio__label { |
| | | |
| | | .el-dialog__body>>>.el-radio__label { |
| | | font-size: 8px; |
| | | } |
| | | .el-dialog__body >>> .el-radio__input.is-checked .el-radio__inner::after { |
| | | |
| | | .el-dialog__body>>>.el-radio__input.is-checked .el-radio__inner::after { |
| | | content: ""; |
| | | width: 4px; |
| | | height: 3px; |
| | |
| | | border-radius: 0px; |
| | | background: none; |
| | | } |
| | | >>> .el-radio__input.is-disabled.is-checked .el-radio__inner { |
| | | |
| | | >>>.el-radio__input.is-disabled.is-checked .el-radio__inner { |
| | | background: #3a7bfa; |
| | | } |
| | | .el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner { |
| | | |
| | | .el-dialog__body>>>.el-radio__input.is-disabled.is-checked .el-radio__inner { |
| | | background: transparent; |
| | | } |
| | | .el-dialog__body >>> .el-radio__inner { |
| | | |
| | | .el-dialog__body>>>.el-radio__inner { |
| | | width: 8px !important; |
| | | height: 8px !important; |
| | | } |
| | | .el-dialog__body >>> .el-radio__label { |
| | | |
| | | .el-dialog__body>>>.el-radio__label { |
| | | padding-left: 2px !important; |
| | | } |
| | | .el-dialog__body >>> .el-card__body { |
| | | |
| | | .el-dialog__body>>>.el-card__body { |
| | | padding: 0 !important; |
| | | } |
| | | .el-dialog__body >>> .el-card { |
| | | |
| | | .el-dialog__body>>>.el-card { |
| | | border: none; |
| | | } |
| | | .el-dialog__body >>> .el-radio__input.is-disabled .el-radio__inner { |
| | | |
| | | .el-dialog__body>>>.el-radio__input.is-disabled .el-radio__inner { |
| | | border-color: #000 !important; |
| | | } |
| | | .el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner { |
| | | |
| | | .el-dialog__body>>>.el-radio__input.is-disabled.is-checked .el-radio__inner { |
| | | border: none !important; |
| | | } |
| | | |
| | | .scor { |
| | | width: 0.01cm; |
| | | height: 0.01cm; |
| | |
| | | border: 1px solid #000; |
| | | display: inline-block; |
| | | } |
| | | |
| | | .ellipsis-multiline { |
| | | display: -webkit-box; |
| | | -webkit-line-clamp: 2; |
| | |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | word-wrap: break-word; |
| | | max-height: 3em; /* 高度为字体大小的两倍 */ |
| | | line-height: 1.5em; /* 行高 */ |
| | | height: 3em; /* 高度为行高的两倍 */ |
| | | max-height: 3em; |
| | | /* 高度为字体大小的两倍 */ |
| | | line-height: 1.5em; |
| | | /* 行高 */ |
| | | height: 3em; |
| | | /* 高度为行高的两倍 */ |
| | | } |
| | | |
| | | .table-container { |
| | | height: 70vh; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .table-container.el-table { |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |