| | |
| | | <el-form :model="entity" ref="entity" size="small" :inline="true"> |
| | | <el-form-item label="委托编号" prop="entrustCode"> |
| | | <el-input v-model="entity.entrustCode" clearable placeholder="请输入" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="样品名称" prop="sampleName"> |
| | | <el-input v-model="entity.sampleName" clearable placeholder="请输入" size="small" |
| | | @keyup.enter.native="refreshTable"></el-input> |
| | | @keyup.enter.native="refreshTable"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="样品型号" prop="sampleModel"> |
| | | <el-input v-model="entity.sampleModel" clearable placeholder="请输入" size="small" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="下单时间" prop="createTime" v-if="more"> |
| | | <el-date-picker v-model="entity.createTime" clearable format="yyyy-MM-dd" placeholder="选择日期" size="small" |
| | | @change="refreshTable" |
| | | style="width:100%" type="date" value-format="yyyy-MM-dd HH:mm:ss"> |
| | | style="width:100%" type="date" value-format="yyyy-MM-dd HH:mm:ss"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="委托人" prop="prepareUser" v-if="more"> |
| | | <el-input v-model="entity.prepareUser" clearable placeholder="请输入" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="委托单位" prop="company" v-if="more"> |
| | | <el-input v-model="entity.company" clearable placeholder="请输入" size="small" |
| | | @keyup.enter.native="refreshTable"> |
| | | @keyup.enter.native="refreshTable"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text" |
| | | @click="more = !more">{{ !more ? '更多' : '收起' }}</el-button> |
| | | @click="more = !more">{{ !more ? '更多' : '收起' }} |
| | | </el-button> |
| | | <el-button size="mini" type="primary" @click="refreshTable()">查询</el-button> |
| | | <el-button size="mini" @click="refresh()">重置</el-button> |
| | | </el-form-item> |
| | |
| | | <div class="table-tab"> |
| | | <div> |
| | | <ul class="tab"> |
| | | <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:insOrder:reviewed'])" @click="handleTab(0)">待审核</li> |
| | | <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:insOrder:checkout'])" @click="handleTab(1)">检验中</li> |
| | | <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:insOrder:customerOrdered'])" @click="handleTab(2)">委托已检</li> |
| | | <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:insOrder:spotCheck'])" @click="handleTab(3)">抽样已检</li> |
| | | <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:insOrder:sendBack'])" @click="handleTab(4)">退回</li> |
| | | <li :class="{ active: tabIndex === 5 }" v-if="checkPermi(['get:insOrder:revocation'])" @click="handleTab(5)">撤销</li> |
| | | <li :class="{ active: tabIndex === 6 }" v-if="checkPermi(['get:insOrder:all'])" @click="handleTab(6)">全部</li> |
| | | <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:insOrder:reviewed'])" @click="handleTab(0)"> |
| | | 待审核 |
| | | </li> |
| | | <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:insOrder:checkout'])" @click="handleTab(1)"> |
| | | 检验中 |
| | | </li> |
| | | <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:insOrder:customerOrdered'])" |
| | | @click="handleTab(2)">委托已检 |
| | | </li> |
| | | <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:insOrder:spotCheck'])" @click="handleTab(3)"> |
| | | 抽样已检 |
| | | </li> |
| | | <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:insOrder:sendBack'])" @click="handleTab(4)"> |
| | | 退回 |
| | | </li> |
| | | <li :class="{ active: tabIndex === 5 }" v-if="checkPermi(['get:insOrder:revocation'])" |
| | | @click="handleTab(5)">撤销 |
| | | </li> |
| | | <li :class="{ active: tabIndex === 6 }" v-if="checkPermi(['get:insOrder:all'])" @click="handleTab(6)">全部 |
| | | </li> |
| | | </ul> |
| | | </div> |
| | | <div> |
| | | <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 6" size="small" |
| | | @click="downLoad">导出</el-button> |
| | | @click="downLoad">导出 |
| | | </el-button> |
| | | <el-button v-if="tabIndex === 1" size="small" type="primary" @click="openAddIns">添加检验项</el-button> |
| | | <el-button size="small" type="primary" @click="openPrint">标签打印</el-button> |
| | | <el-button v-if="checkPermi(['add:insOrder'])" size="small" type="primary" @click="playOrder(1)">下单</el-button> |
| | | <el-button v-if="checkPermi(['add:insOrder'])" size="small" type="primary" @click="playOrder(1)">下单 |
| | | </el-button> |
| | | </div> |
| | | </div> |
| | | <div class="table"> |
| | |
| | | <!-- 审核 --> |
| | | <el-dialog :before-close="handleClose" :visible.sync="verifyDialogVisible" title="下单审核" width="30%"> |
| | | <p v-if="!isPass" style="font-size:16px;color:#333333">委托编号<span |
| | | style="color:#34BD66">ZTMS2023071001</span>的信息是否通过</p> |
| | | style="color:#34BD66">ZTMS2023071001</span>的信息是否通过</p> |
| | | <el-form v-else ref="ruleForm" :label-position="labelPosition" :model="formData" label-width="150px"> |
| | | <el-form-item label="请输入样品库位号:"> |
| | | <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input> |
| | |
| | | <!-- 撤销 --> |
| | | <el-dialog :before-close="handleClose" :visible.sync="quashDialogVisible" title="下单撤销" width="30%"> |
| | | <p v-if="!isQuash" style="font-size:16px;color:#333333">委托编号<span |
| | | style="color:#34BD66">{{ this.insOrderRow.entrustCode }}</span>的信息是否撤销</p> |
| | | style="color:#34BD66">{{ this.insOrderRow.entrustCode }}</span>的信息是否撤销</p> |
| | | <el-form v-else ref="ruleForm" :label-position="labelPosition" :model="formData" label-width="150px"> |
| | | <el-form-item label="请输入撤销原因:"> |
| | | <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input> |
| | |
| | | <el-col class="search_thing" style="width: 95%;"> |
| | | <div class="search_label"><span class="required-span">* </span>约定时间:</div> |
| | | <div class="search_input"> |
| | | <el-date-picker v-model="distributeData.appointed" format="yyyy-MM-dd" placeholder="选择日期" size="small" |
| | | style="width: 100%;" type="date" value-format="yyyy-MM-dd"> |
| | | <el-date-picker v-model="distributeData.appointed" format="yyyy-MM-dd" placeholder="选择日期" |
| | | size="small" |
| | | style="width: 100%;" type="date" value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </div> |
| | | </el-col> |
| | |
| | | <div class="search_label"><span class="required-span">* </span>指派人员:</div> |
| | | <div class="search_input"> |
| | | <el-select v-model="distributeData.userId" clearable filterable placeholder="请选择" size="small" |
| | | style="width: 100%;" @change="changeUser"> |
| | | style="width: 100%;" @change="changeUser"> |
| | | <el-option v-for="(item, i) in personList" :key="i + 'gbnm.'" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | |
| | | <div class="search_label"><span class="required-span">* </span>试验室:</div> |
| | | <div class="search_input"> |
| | | <el-select v-model="distributeData.sonLaboratory" clearable filterable placeholder="请选择" size="small" |
| | | style="width: 100%;"> |
| | | style="width: 100%;"> |
| | | <el-option v-for="(item, i) in sonLaboratoryList" :key="i + 'oooo'" :label="item.label" |
| | | :value="item.value"> |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | |
| | | <el-dialog :visible.sync="dataDialogVisible" title="数据查看" width="80%" @close="closeDia"> |
| | | <div v-if="dataDialogVisible"> |
| | | <lims-table :tableData="tableDataLook" :column="tableDataLookColumn" @pagination="tableDataLookPagination" |
| | | height="500px" key="tableDataLook" :page="tableDataLookPage" |
| | | :tableLoading="tableDataLookTableLoading"></lims-table> |
| | | :height="100" key="tableDataLook" :page="tableDataLookPage" |
| | | :tableLoading="tableDataLookTableLoading"></lims-table> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="filesDialogVisible" title="附件查看" width="80%"> |
| | | <div v-if="filesDialogVisible"> |
| | | <lims-table :tableData="tableDataFile" :column="columnFile" @pagination="paginationFile" height="500px" |
| | | key="tableDataFile" :page="pageFile" :tableLoading="tableLoadingFile"></lims-table> |
| | | <lims-table :tableData="tableDataFile" :column="columnFile" @pagination="paginationFile" :height="100" |
| | | key="tableDataFile" :page="pageFile" :tableLoading="tableLoadingFile"></lims-table> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- 撤销&撤销审核--> |
| | | <el-dialog :title="deleteTilte" :visible.sync="deleteDialogVisible" width="80%"> |
| | | <div v-if="deleteDialogVisible" style="height: 70vh;overflow-y: auto;"> |
| | | <lims-table :tableData="componentDataDelete" :column="columnDelete" :isSelection="true" |
| | | :handleSelectionChange="selectDelete" @pagination="paginationDelete" height="500px" |
| | | key="componentDataDelete" :page="pageDelete" :tableLoading="tableLoadingDelete"></lims-table> |
| | | </div> |
| | | <lims-table |
| | | v-if="deleteDialogVisible" |
| | | :tableData="componentDataDelete" |
| | | :column="columnDelete" |
| | | :isSelection="deleteTilte==='撤销'" |
| | | :handleSelectionChange="selectDelete" |
| | | @pagination="paginationDelete" |
| | | :height="150" |
| | | key="componentDataDelete" |
| | | :page="pageDelete" |
| | | :tableLoading="tableLoadingDelete"> |
| | | </lims-table> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row> |
| | | <el-button @click="handleNo">{{ deleteTilte == '撤销' ? '取 消' : '不通过' }}</el-button> |
| | | <el-button :loading="printLoading" type="primary" @click="submitDelete">{{ deleteTilte == '撤销' ? '确 定' : '通过'}}</el-button> |
| | | <el-button :loading="printLoading" type="primary" |
| | | @click="submitDelete">{{ deleteTilte == '撤销' ? '确 定' : '通过' }}</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | |
| | | <div v-loading="loadPint" style="width:100%;height: 400px;overflow-y: auto;"> |
| | | <div class="dia_body"> |
| | | <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" style="margin: 10px 5px;" |
| | | @change="handleCheckAllChange">全选</el-checkbox> |
| | | @change="handleCheckAllChange">全选 |
| | | </el-checkbox> |
| | | <el-checkbox-group v-model="checkIndexList" @change="changePrintCode()"> |
| | | <el-card v-for="(item, i) in qrData" :key="i + 'wwwww'" class="box-card" |
| | | style="margin-bottom: 15px; font-size: 16px !important;"> |
| | | style="margin-bottom: 15px; font-size: 16px !important;"> |
| | | <el-checkbox :key="i" :label="i" style="position: relative;top:-20px;left:5px"><br></el-checkbox> |
| | | <div> |
| | | <el-row style="font-size: 14px;padding-left: 20px;"> |
| | |
| | | </div> |
| | | <div style="margin-left: 50px;width: 100%;"> |
| | | <el-row> |
| | | <el-col style="font-weight: bold;font-size: 14px;"><span>样品编号: </span>{{ item.sampleCode |
| | | }}</el-col> |
| | | <el-col style="font-weight: bold;font-size: 14px;"><span>样品编号: </span>{{ |
| | | item.sampleCode |
| | | }} |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 1px;font-size: 14px;"> |
| | | <el-col style="font-weight: bold;"><span>委托单号: </span>{{ item.code }}</el-col> |
| | |
| | | <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 v-model="item.isLeave" :label="1" disabled |
| | | style="font-weight: bold;margin-top: 7px;">留样</el-radio></el-col> |
| | | </el-radio-group> |
| | | <el-radio v-model="item.isLeave" :label="1" disabled |
| | | style="font-weight: bold;margin-top: 7px;">留样 |
| | | </el-radio> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </div> |
| | |
| | | </span> |
| | | </el-dialog> |
| | | <div class="el-dialog__body" |
| | | style="overflow-y: auto;margin-top: 0;position: fixed;top: 999px;z-index: 99999;display: none;"> |
| | | style="overflow-y: auto;margin-top: 0;position: fixed;top: 999px;z-index: 99999;display: none;"> |
| | | <div id="printMOrder" ref="printMOrder" class="printMOrder"> |
| | | <el-card v-for="(item, i) in checkDataList" :key="i + 'uuuuu'" class="box-card" |
| | | style="font-size: 0.20cm !important;page-break-after: always;color: #000;box-shadow: none;margin: 0 !important;padding: 0 !important;"> |
| | | style="font-size: 0.20cm !important;page-break-after: always;color: #000;box-shadow: none;margin: 0 !important;padding: 0 !important;"> |
| | | <div style="display: flex;"> |
| | | <div> |
| | | <el-col :offset="2" :span="10"> |
| | |
| | | <div style="margin-left: 0.32cm;line-height: 0.22cm;"> |
| | | <el-row> |
| | | <el-col class="single-line-ellipsis" style="font-size: 0.20cm;width: 4cm;"><span>样品编号: </span>{{ |
| | | item.sampleCode }}</el-col> |
| | | item.sampleCode |
| | | }} |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="font-size: 0.20cm;"> |
| | | <el-col><span>委托单号: </span>{{ item.code }}</el-col> |
| | |
| | | <el-row style="margin-top: 0.01cm;font-size: 0.20cm;"> |
| | | <el-col style="display: flex;align-items: center;"><span>样品状态: |
| | | </span> |
| | | <span style="white-space: nowrap;"><span v-if="item.insState == 0">√</span><span v-if="item.insState != 0" |
| | | class="scor"></span>待检 |
| | | <span style="white-space: nowrap;"><span v-if="item.insState == 0">√</span><span |
| | | v-if="item.insState != 0" |
| | | class="scor"></span>待检 |
| | | <span v-if="item.insState == 1">√</span><span v-if="item.insState != 1" class="scor"></span>在检 |
| | | <span v-if="item.insState == 2">√</span><span v-if="item.insState != 2" class="scor"></span>已检 |
| | | <span v-if="item.isLeave == 1">√</span><span v-if="item.isLeave != 1" class="scor"></span>留样</span> |
| | | <span v-if="item.isLeave == 1">√</span><span v-if="item.isLeave != 1" |
| | | class="scor"></span>留样</span> |
| | | <!-- <el-radio-group :value="item.insState" style="margin-top: 3px;margin-left: 1px;" disabled> |
| | | <el-radio :label="0" style="margin-right: 3px;font-size: 6px;">待检</el-radio> |
| | | <el-radio :label="1" style="margin-right: 3px;font-size: 6px;">在检</el-radio> |
| | |
| | | </el-dialog> |
| | | <!--标签打印弹框--> |
| | | <print-dialog v-if="printDialog" ref="printDialog" :printDialog="printDialog" |
| | | @closePrintDialog="closePrintDialog"></print-dialog> |
| | | @closePrintDialog="closePrintDialog"></print-dialog> |
| | | <!--添加遗漏检验项弹框--> |
| | | <add-inspection-dia v-if="addInspectionDia" ref="addInspectionDia"></add-inspection-dia> |
| | | <!--修改样品型号弹框--> |
| | |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" |
| | | max-height="400px" tooltip-effect="dark"> |
| | | <el-table-column align="center" label="序号" type="index" width="65"></el-table-column> |
| | | <el-table-column align="center" label="样品名称" min-width="100" prop="sample"> </el-table-column> |
| | | <el-table-column align="center" label="样品名称" min-width="100" prop="sample"></el-table-column> |
| | | <el-table-column align="center" label="样品编号" min-width="100" prop="sampleCode"></el-table-column> |
| | | <el-table-column align="center" label="样品型号" min-width="60" prop="model"> |
| | | <template slot-scope="scope"> |
| | |
| | | updateInspected, |
| | | updateOrderEntrustCode, updateSampleModel, updateStatus, upInsOrder, upPlanUser2 |
| | | } from "@/api/business/productOrder"; |
| | | import { selectUserCondition } from "@/api/performance/class"; |
| | | import { downFile, getFileList, selectSampleAndProductByOrderId } from "@/api/business/rawMaterialOrder"; |
| | | import {selectUserCondition} from "@/api/performance/class"; |
| | | import {downFile, getFileList, selectSampleAndProductByOrderId} from "@/api/business/rawMaterialOrder"; |
| | | import {mapGetters} from "vuex"; |
| | | |
| | | export default { |
| | | name: 'ProductOrder', |
| | | components: { |
| | |
| | | dataType: "link", |
| | | linkMethod: "changeEntrustCode", |
| | | }, |
| | | { label: '委托单位', prop: 'company' }, |
| | | {label: '委托单位', prop: 'company'}, |
| | | { |
| | | label: "样品名称", |
| | | prop: "sampleName", |
| | |
| | | dataType: "link", |
| | | linkMethod: "editSampleModel", |
| | | }, |
| | | { label: '样品数量', prop: 'sampleNum' }, |
| | | { label: '检验人', prop: 'testingName' }, |
| | | {label: '样品数量', prop: 'sampleNum'}, |
| | | {label: '检验人', prop: 'testingName'}, |
| | | { |
| | | dataType: 'tag', |
| | | label: '紧急程度', |
| | |
| | | } |
| | | } |
| | | }, |
| | | { label: '备注', prop: 'remark' }, |
| | | { label: '检验进度%', prop: 'insProgress' }, |
| | | { label: '约定时间', prop: 'appointed' }, |
| | | {label: '备注', prop: 'remark'}, |
| | | {label: '检验进度%', prop: 'insProgress'}, |
| | | {label: '约定时间', prop: 'appointed'}, |
| | | { |
| | | dataType: 'tag', |
| | | label: '检验结果', |
| | |
| | | } |
| | | } |
| | | }, |
| | | { label: '下单时间', prop: 'createTime' }, |
| | | { label: '下发时间', prop: 'sendTime' }, |
| | | { label: '退回理由', prop: 'tell' }, |
| | | { label: '委托人', prop: 'prepareUser' }, |
| | | {label: '下单时间', prop: 'createTime'}, |
| | | {label: '下发时间', prop: 'sendTime'}, |
| | | {label: '退回理由', prop: 'tell'}, |
| | | {label: '委托人', prop: 'prepareUser'}, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | |
| | | this.handlEquash(row); |
| | | }, |
| | | disabled: (row, index) => { |
| | | return row.state != 1 && row.state != 0 |
| | | return (row.state !== 1 && row.state !== 0) || row.isRevocation !== 0 |
| | | }, |
| | | showHide: (row) => { |
| | | return this.tabIndex === 0 || this.tabIndex === 1 |
| | | return (this.tabIndex === 0 || this.tabIndex === 1) |
| | | } |
| | | }, |
| | | { |
| | |
| | | this.handlEquashCheck(row); |
| | | }, |
| | | disabled: (row, index) => { |
| | | return (row.state != 1 && row.state != 0) || (this.tabIndex != 1) || row.isRevocation != 1 |
| | | return (row.state !== 1 && row.state !== 0) || (this.tabIndex !== 1) || row.isRevocation !== 1 |
| | | }, |
| | | showHide: (row) => { |
| | | return this.tabIndex === 1 |
| | |
| | | current: 1 |
| | | }, |
| | | tableDataLookColumn: [ |
| | | { label: '样品编号', prop: 'sampleCode', width: '160px' }, |
| | | { label: '样品名称', prop: 'sample' }, |
| | | { label: '检验项分类', prop: 'inspectionItemClass' }, |
| | | { label: '检验项', prop: 'inspectionItem' }, |
| | | { label: '检验子项', prop: 'inspectionItemSubclass' }, |
| | | { label: '单位', prop: 'unit' }, |
| | | { label: '样品型号', prop: 'model' }, |
| | | { label: '条件', prop: 'radius' }, |
| | | { label: '电缆标识', prop: 'cableTag' }, |
| | | { label: '试验要求', prop: 'tell' }, |
| | | { label: '检验结果', prop: 'lastValue' }, |
| | | {label: '样品编号', prop: 'sampleCode', width: '160px'}, |
| | | {label: '样品名称', prop: 'sample'}, |
| | | {label: '检验项分类', prop: 'inspectionItemClass'}, |
| | | {label: '检验项', prop: 'inspectionItem'}, |
| | | {label: '检验子项', prop: 'inspectionItemSubclass'}, |
| | | {label: '单位', prop: 'unit'}, |
| | | {label: '样品型号', prop: 'model'}, |
| | | {label: '条件', prop: 'radius'}, |
| | | {label: '电缆标识', prop: 'cableTag'}, |
| | | {label: '试验要求', prop: 'tell'}, |
| | | {label: '检验结果', prop: 'lastValue'}, |
| | | { |
| | | dataType: 'tag', |
| | | label: '结果判定', |
| | |
| | | } |
| | | } |
| | | }, |
| | | { label: '附件名称', prop: 'fileName' }, |
| | | { label: '上传人', prop: 'name' }, |
| | | { label: '上传时间', prop: 'createTime' }, |
| | | {label: '附件名称', prop: 'fileName'}, |
| | | {label: '上传人', prop: 'name'}, |
| | | {label: '上传时间', prop: 'createTime'}, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | |
| | | componentDataDelete: [], |
| | | tableLoadingDelete: false, |
| | | columnDelete: [ |
| | | { label: '样品编号', prop: 'sampleCode', width: '160px' }, |
| | | { label: '检验项分类', prop: 'inspectionItemClass' }, |
| | | { label: '检验项', prop: 'inspectionItem' }, |
| | | { label: '检验项子类', prop: 'inspectionItemSubclass' }, |
| | | { label: '样品分类', prop: 'sampleType' }, |
| | | { label: '样品', prop: 'sample' }, |
| | | { label: '型号', prop: 'model' }, |
| | | { label: '线芯', prop: 'cableTag' }, |
| | | { label: '试验室', prop: 'sonLaboratory' }, |
| | | { label: '要求值', prop: 'ask' }, |
| | | { label: '要求描述', prop: 'tell' }, |
| | | {label: '样品编号', prop: 'sampleCode', width: '160px'}, |
| | | {label: '检验项分类', prop: 'inspectionItemClass'}, |
| | | {label: '检验项', prop: 'inspectionItem'}, |
| | | {label: '检验项子类', prop: 'inspectionItemSubclass'}, |
| | | {label: '样品分类', prop: 'sampleType'}, |
| | | {label: '样品', prop: 'sample'}, |
| | | {label: '型号', prop: 'model'}, |
| | | {label: '线芯', prop: 'cableTag'}, |
| | | {label: '试验室', prop: 'sonLaboratory'}, |
| | | {label: '要求值', prop: 'ask'}, |
| | | {label: '要求描述', prop: 'tell'}, |
| | | ], |
| | | pageDelete: { |
| | | total: 0, |
| | |
| | | this.entity.orderType = '抽检' |
| | | } |
| | | } |
| | | const params = { ...this.entity, state: this.tabList[this.tabIndex].value } |
| | | const params = {...this.entity, state: this.tabList[this.tabIndex].value} |
| | | this.isLoading = true; // 开始加载 |
| | | selectInsOrderParameter({...this.page,...params}).then(res => { |
| | | selectInsOrderParameter({...this.page, ...params}).then(res => { |
| | | this.isLoading = false; // 结束加载 |
| | | this.upIndex++ |
| | | this.tableLoading = false |
| | |
| | | return |
| | | } |
| | | this.entrustCodeVisible = true |
| | | this.entrustCodeInfo = { ...row } |
| | | this.entrustCodeInfo = {...row} |
| | | }, |
| | | // 提交修改委托编号 |
| | | submitCode() { |
| | |
| | | if (this.multipleSelection.length > 0) { |
| | | params.ids = this.multipleSelection.map(item => item.id).join(','); |
| | | } else { |
| | | params = { ...this.entity, state: this.tabList[this.tabIndex].value } |
| | | params = {...this.entity, state: this.tabList[this.tabIndex].value} |
| | | } |
| | | rawAllInsOrderExport({ ...params }).then(res => { |
| | | const blob = new Blob([res], { type: 'application/octet-stream' }); |
| | | rawAllInsOrderExport({...params}).then(res => { |
| | | const blob = new Blob([res], {type: 'application/octet-stream'}); |
| | | this.$download.saveAs(blob, '委托检测信息导出.xlsx'); |
| | | }).catch(err => { |
| | | console.log('err---', err); |
| | |
| | | }, |
| | | // 获取指派人员下拉列表 |
| | | getAuthorizedPerson() { |
| | | selectUserCondition({ type: 1 }).then(res => { |
| | | selectUserCondition({type: 1}).then(res => { |
| | | let data = [] |
| | | res.data.forEach(a => { |
| | | data.push({ |
| | |
| | | |
| | | }, |
| | | // 修改样品型号 |
| | | editSampleModel (row) { |
| | | editSampleModel(row) { |
| | | if (this.tabIndex !== 1) { |
| | | return |
| | | } |
| | |
| | | }) |
| | | }, |
| | | // 提交样品型号修改 |
| | | submitList () { |
| | | submitList() { |
| | | this.submitListLoad = true |
| | | updateSampleModel(this.sampleList).then(res => { |
| | | this.submitListLoad = false |
| | |
| | | // 查询数据查看列表数据 |
| | | getDataTableList(row) { |
| | | this.tableDataLookTableLoading = true |
| | | selectSampleAndProductByOrderId({ id: row.id, ...this.tableDataLookPage }).then(res => { |
| | | selectSampleAndProductByOrderId({id: row.id, ...this.tableDataLookPage}).then(res => { |
| | | this.tableDataLookTableLoading = false |
| | | if (res.code === 200) { |
| | | this.tableDataLook = res.data.records |
| | |
| | | this.tableDataLookPage.size = page.limit |
| | | this.getDataTableList(this.currentRow) |
| | | }, |
| | | closeDia () { |
| | | closeDia() { |
| | | this.tableDataLookPage = { |
| | | total: 0, |
| | | size: 20, |
| | |
| | | }, |
| | | getFileList(row) { |
| | | this.tableLoadingFile = true |
| | | getFileList({ insOrderId: row.id }).then(res => { |
| | | getFileList({insOrderId: row.id}).then(res => { |
| | | this.tableLoadingFile = false |
| | | if (res.code === 200) { |
| | | this.tableDataFile = res.data.records |
| | |
| | | // 下载报告 |
| | | download(row) { |
| | | let url = row.urlS ? row.urlS : row.url; |
| | | if(url){ |
| | | url = url.split('.')[0]+'.pdf' |
| | | if (url) { |
| | | url = url.split('.')[0] + '.pdf' |
| | | const link = document.createElement('a'); |
| | | link.href = this.javaApi + url; |
| | | link.target = '_blank'; |
| | |
| | | }, |
| | | // 撤销 |
| | | handlEquash(row) { |
| | | if (this.tabIndex != 1) { |
| | | if (this.tabIndex !== 1) { |
| | | this.quashDialogVisible = true; |
| | | this.insOrderRow = row |
| | | } else { |
| | |
| | | }, |
| | | getDeleteList() { |
| | | this.tableLoadingDelete = true |
| | | selectNoProducts({ orderId: this.orderId, revocationInsProductIds: this.revocationInsProductIds, ...this.pageDelete }).then(res => { |
| | | selectNoProducts({ |
| | | orderId: this.orderId, |
| | | revocationInsProductIds: this.revocationInsProductIds, |
| | | ...this.pageDelete |
| | | }).then(res => { |
| | | this.tableLoadingDelete = false |
| | | this.componentDataDelete = res.data.records |
| | | this.pageDelete.total = res.data.total |
| | |
| | | this.deleteList = arr; |
| | | }, |
| | | submitDelete() { |
| | | if (this.deleteTilte == '撤销') { |
| | | if (this.deleteList.length == 0) { |
| | | this.$message.error('请选择要撤销的项') |
| | | if (this.deleteTilte === '撤销') { |
| | | if (this.deleteList.length === 0) { |
| | | this.$message.error('请选择要撤销的检验项') |
| | | return |
| | | } |
| | | let ids = this.deleteList.map(m => m.id).join(',') |
| | | let ids = this.deleteList.map(m => m.id) |
| | | this.printLoading = true; |
| | | updateInspected({ ids: ids, orderId: this.orderId }).then(res => { |
| | | updateInspected({ids: ids, orderId: this.orderId}).then(res => { |
| | | if (res.code === 200) { |
| | | this.printLoading = false |
| | | this.deleteDialogVisible = false |
| | |
| | | } |
| | | }) |
| | | } else { |
| | | checkUpdate({ orderId: this.orderId, state: 1 }).then(res => { |
| | | checkUpdate({orderId: this.orderId, state: 1}).then(res => { |
| | | if (res.code === 200) { |
| | | this.printLoading = false |
| | | this.deleteDialogVisible = false |
| | |
| | | this.orderId = row.id |
| | | this.revocationInsProductIds = row.revocationInsProductIds |
| | | this.deleteTilte = '撤销审核' |
| | | this.deleteDialogVisible = true; |
| | | this.getDeleteList() |
| | | this.$nextTick(() => { |
| | | this.deleteDialogVisible = true; |
| | | }) |
| | | }, |
| | | handleNo() { |
| | | if (this.deleteTilte == '撤销') { |
| | | this.deleteDialogVisible = false |
| | | } else { |
| | | checkUpdate({ orderId: this.orderId, state: 0 }).then(res => { |
| | | checkUpdate({orderId: this.orderId, state: 0}).then(res => { |
| | | if (res.code === 200) { |
| | | this.printLoading = false |
| | | this.deleteDialogVisible = false |
| | |
| | | submitForm() { |
| | | this.upLoad = true; |
| | | if (this.tabIndex == 1) { |
| | | updateInspected({ id: this.insOrderRow.id }).then(res => { |
| | | updateInspected({id: this.insOrderRow.id}).then(res => { |
| | | if (res.code === 200) { |
| | | this.upLoad = false |
| | | this.quashDialogVisible = false |
| | |
| | | } |
| | | }) |
| | | } else { |
| | | updateStatus({ id: this.insOrderRow.id }).then(res => { |
| | | updateStatus({id: this.insOrderRow.id}).then(res => { |
| | | if (res.code === 200) { |
| | | this.upLoad = false |
| | | this.quashDialogVisible = false |
| | |
| | | }, |
| | | // 下单 |
| | | playOrder(num) { |
| | | this.$router.push({ path: "/productOrder/addOrder", query: { examine: 0, active: num, tabIndex: this.tabIndex } }); |
| | | this.$router.push({path: "/productOrder/addOrder", query: {examine: 0, active: num, tabIndex: this.tabIndex}}); |
| | | }, |
| | | // 审核 |
| | | handleVerify(row) { |
| | | this.$router.push({ path: "/productOrder/addView", query: { examine: 1, active: 3, currentId: row.id } }); |
| | | this.$router.push({path: "/productOrder/addView", query: {examine: 1, active: 3, currentId: row.id}}); |
| | | }, |
| | | handleTab(i) { |
| | | this.tabIndex = i; |
| | |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }).then(() => { |
| | | delInsOrder({ insOrderId: row.id }).then(res => { |
| | | delInsOrder({insOrderId: row.id}).then(res => { |
| | | this.$message.success('删除成功') |
| | | this.refreshTable() |
| | | }).catch(e => { |
| | | this.$message.error('删除失败') |
| | | }) |
| | | }).catch(() => { }) |
| | | }).catch(() => { |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | color: #3A7BFA; |
| | | } |
| | | |
| | | .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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | | } |
| | | |