| | |
| | | <style scoped> |
| | | .search { |
| | | background-color: #fff; |
| | | height: 40px; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-top: 20px; |
| | | } |
| | | |
| | | .search_thing { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 50px; |
| | | } |
| | | |
| | | .search_label { |
| | | width: 100px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .search_input { |
| | | width: calc(100% - 120px); |
| | | } |
| | | |
| | | .ins-order-plan-main .search { |
| | | width: 100%; |
| | | height: 40px; |
| | | background-color: #fff; |
| | | border-radius: 3px; |
| | | } |
| | | |
| | | .ins-order-plan-main .center { |
| | | background-color: #fff; |
| | | border-radius: 3px; |
| | | padding: 20px; |
| | | padding-top: 0px; |
| | | } |
| | | |
| | | .tab { |
| | | list-style-type: none; |
| | | display: flex; |
| | | padding-left: 6px; |
| | | } |
| | | |
| | | .tab li { |
| | | line-height: 24px; |
| | | padding: 4px 10px; |
| | | font-size: 14px; |
| | | color: #333333; |
| | | border: 1px solid #eeeeee; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .tab li:nth-child(1) { |
| | | border-radius: 8px 0 0 8px; |
| | | } |
| | | |
| | | .tab li:nth-last-child(1) { |
| | | border-radius: 0 8px 8px 0; |
| | | } |
| | | |
| | | .tab li.active { |
| | | border-color: #3a7bfa; |
| | | color: #3a7bfa; |
| | | } |
| | | |
| | | .center .center-options .center-title { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: right; |
| | | } |
| | | |
| | | .center .center-options .center-title span:last-child { |
| | | color: #3a7bfa; |
| | | font-size: 23px; |
| | | font-weight: 400; |
| | | } |
| | | |
| | | .view-self-checkbox { |
| | | margin-left: 50px; |
| | | } |
| | | </style> |
| | | <style> |
| | | .ins-order-plan-main .el-form-item__label { |
| | | color: #000; |
| | | } |
| | | </style> |
| | | <template> |
| | | <div class="ins-order-plan-main"> |
| | | <div style="height: 100%"> |
| | |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="dataDialogVisible" title="数据查看" width="80%"> |
| | | <div v-if="dataDialogVisible" style="height: 70vh; overflow-y: auto"> |
| | | <div> |
| | | <el-form :model="entity" :inline="true"> |
| | | <el-form-item label="检验项" prop="outputWorkTime"> |
| | | <el-input v-model="entity.inspectionItem" clearable size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button size="small" type="primary" @click="getLookList">查询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <lims-table :tableData="lookTableData" :column="lookColumn" :page="lookPage" :tableLoading="lookTableLoading" |
| | | :height="'60vh'" @pagination="lookPagination" key="tableData1"></lims-table> |
| | | </div> |
| | |
| | | 新增 |
| | | </el-button> |
| | | </div> |
| | | <el-table :data="bindTableData" style="width: 100%" height="70vh" v-loading="bindTableDataLoading"> |
| | | <el-table :data="bindTableData" style="width: 100%" height="70vh" v-loading="bindTableDataLoading" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border> |
| | | <el-table-column prop="inspectionItemClass" label="检验项分类" width="150"> |
| | | </el-table-column> |
| | | <el-table-column prop="inspectionItem" label="检验项" width="150"> |
| | |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="bindAddDialogVisible" title="选择绑定" width="600px"> |
| | | <el-table :data="bindAddTableData" style="width: 100%" height="60vh" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border |
| | | @selection-change="handleBindAddSelectionChange"> |
| | | <el-table-column type="selection" width="55"> </el-table-column> |
| | | <el-table-column prop="inspectionItemClass" label="检验项分类" width="150"> |
| | |
| | | <edit-inspection-item ref="editInspectionItem"></edit-inspection-item> |
| | | <!--查看工时弹框--> |
| | | <viewManHourDia ref="viewManHourDia"></viewManHourDia> |
| | | <!--不合格复测查看弹框--> |
| | | <un-pass-retest-result v-if="retestVisible" :retestInfo="retestInfo" :retestVisible="retestVisible" @closeRetestLook="closeRetestLook"></un-pass-retest-result> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import EditInspectionItem from "./components/EditInspectionItem.vue"; |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import viewManHourDia from "./components/viewManHourDia.vue" |
| | | import UnPassRetestResult from "@/components/rawMaterialInspection/unPassRetestResult.vue" |
| | | import { |
| | | claimInsOrderPlan, |
| | | upPlanUser2, |
| | |
| | | selectSampleAndProductByOrderId, |
| | | } from "@/api/business/inspectionTask.js"; |
| | | import { mapGetters } from "vuex"; |
| | | import {getRetestResult} from "@/api/business/rawMaterialOrder"; |
| | | export default { |
| | | name: 'InspectionTask', |
| | | components: { |
| | | EditInspectionItem, |
| | | limsTable, |
| | | viewManHourDia |
| | | viewManHourDia, |
| | | UnPassRetestResult |
| | | }, |
| | | dicts: ["urgency_level", "inspection_task_state"], |
| | | computed: { |
| | |
| | | prop: "type", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | return this.urgencyLevel.find((m) => m.value == params).label; |
| | | if (params == 0) { |
| | | return '普通' |
| | | } else if (params == 1) { |
| | | return '优先' |
| | | } else { |
| | | return '紧急' |
| | | } |
| | | }, |
| | | formatType: (params) => { |
| | | return this.urgencyLevel.find((m) => m.value == params).type; |
| | | }, |
| | | if (params == 0) { |
| | | return 'success' |
| | | } else if (params == 1) { |
| | | return 'warning' |
| | | } else { |
| | | return 'danger' |
| | | } |
| | | } |
| | | }, |
| | | { |
| | | label: "检验类型", |
| | |
| | | prop: "insState", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | return this.inspectionTaskState.find((m) => m.value == params).label; |
| | | if (this.inspectionTaskState.find((m) => m.value == params)) { |
| | | return this.inspectionTaskState.find((m) => m.value == params).label; |
| | | } else { |
| | | return null |
| | | } |
| | | }, |
| | | formatType: (params) => { |
| | | return this.inspectionTaskState.find((m) => m.value == params).type; |
| | | if (this.inspectionTaskState.find((m) => m.value == params)) { |
| | | return this.inspectionTaskState.find((m) => m.value == params).type; |
| | | } else { |
| | | return null |
| | | } |
| | | }, |
| | | }, |
| | | { label: "检验人", prop: "userName" }, |
| | |
| | | }, |
| | | ], |
| | | // 数据查看相关字段---开始 |
| | | entity: { |
| | | inspectionItem: "", |
| | | }, |
| | | lookTableData: [], |
| | | lookColumn: [ |
| | | { |
| | |
| | | label: "操作", |
| | | operation: [ |
| | | { |
| | | name: "不合格复测查看", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.getRetestResultInfo(row); |
| | | }, |
| | | disabled: (row) => { |
| | | return row.insResult!=0 |
| | | }, |
| | | }, |
| | | { |
| | | name: "检验项绑定", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | |
| | | }, |
| | | lookTableLoading: false, |
| | | // 数据查看相关字段---结束 |
| | | retestVisible: false, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.getAuthorizedPerson(); |
| | | this.queryParams.userId = this.userId; |
| | | this.currentTime = getYearAndMonthAndDays(); |
| | | this.getDicts("urgency_level").then((response) => { |
| | | this.urgencyLevel = this.dictToValue(response.data); |
| | |
| | | this.inspectionTaskState = this.dictToValue(response.data); |
| | | }); |
| | | this.refreshTable(); |
| | | this.queryParams.userId = this.userId; |
| | | }, |
| | | activated() { |
| | | this.getAuthorizedPerson(); |
| | | this.queryParams.userId = this.userId; |
| | | this.currentTime = getYearAndMonthAndDays(); |
| | | this.getDicts("urgency_level").then((response) => { |
| | | this.urgencyLevel = this.dictToValue(response.data); |
| | | }); |
| | | this.getDicts("inspection_task_state").then((response) => { |
| | | this.inspectionTaskState = this.dictToValue(response.data); |
| | | }); |
| | | this.refreshTable(); |
| | | }, |
| | | methods: { |
| | |
| | | }, |
| | | getLookList() { |
| | | this.lookTableLoading = true; |
| | | let param = { id: this.lookInfo.id, ...this.lookPage }; |
| | | let param = { id: this.lookInfo.id, ...this.lookPage, inspectionItem: this.entity.inspectionItem }; |
| | | delete param.total; |
| | | selectSampleAndProductByOrderId({ ...param }) |
| | | .then((res) => { |
| | |
| | | this.queryParams.typeSource = this.tabIndex; |
| | | this.getList(); |
| | | }, |
| | | // claimFun(row) { |
| | | // if (row) { |
| | | // this.sampleUserForm = { |
| | | // entrustCode: row.entrustCode, |
| | | // insSampleId: row.id, |
| | | // sonLaboratory: row.sonLaboratory, |
| | | // } |
| | | // this.claimVisible = true |
| | | // } |
| | | // }, |
| | | // 查看产业链信息 |
| | | openInfoDialog(row) { |
| | | this.showInfoDialog = true; |
| | |
| | | } |
| | | return ""; |
| | | }, |
| | | onReset() { |
| | | this.searchForm = { |
| | | sampleName: null, |
| | | state: null, |
| | | }; |
| | | this.queryParams.insState = null; |
| | | this.queryParams.sampleName = null; |
| | | this.refreshTable(); |
| | | }, |
| | | onSubmit() { |
| | | this.queryParams.insState = this.searchForm.state; |
| | | this.queryParams.sampleName = this.searchForm.sampleName; |
| | | this.$nextTick(() => { |
| | | this.refreshTable(); |
| | | }); |
| | | }, |
| | | handleTab(m, i) { |
| | | this.tabIndex = i; |
| | | this.queryParams.sonLaboratory = ""; |
| | | this.refreshTable(); |
| | | }, |
| | | // getLaboratoryDicts() { |
| | | // this.$axios.post(this.$api.enums.selectEnumByCategory, { |
| | | // category: "子实验室" |
| | | // }).then(res => { |
| | | // this.tabList = res.data.map(ele => { |
| | | // return { |
| | | // label: ele.label, |
| | | // value: ele.value |
| | | // } |
| | | // }) |
| | | // if(this.tabList.length>0){ |
| | | // this.componentData.entity.sonLaboratory = this.tabList[0].value |
| | | // } |
| | | // this.refreshTable() |
| | | // }) |
| | | // }, |
| | | selectAllByOne(row) { |
| | | this.isCopper = row.isCopper; |
| | | this.customsInspection = row; |
| | |
| | | break; |
| | | } |
| | | |
| | | }, |
| | | playOrder(num) { |
| | | this.activeFace = num; |
| | | }, |
| | | goback() { |
| | | this.state = 0; |
| | |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | handleReview(row) { |
| | | this.state = 2; |
| | | this.orderId = row.id; |
| | | }, |
| | | getAuthorizedPerson() { |
| | | selectUserCondition({ type: 1 }).then((res) => { |
| | | let data = []; |
| | |
| | | this.personList = data; |
| | | }); |
| | | }, |
| | | // 查看不合格复测结果 |
| | | getRetestResultInfo (row) { |
| | | getRetestResult({insProductId: row.insProductId}).then(res => { |
| | | this.retestVisible = true |
| | | this.retestInfo = res.data |
| | | }) |
| | | }, |
| | | closeRetestLook () { |
| | | this.retestVisible = false |
| | | }, |
| | | // 绑定检验项绑定 |
| | | getBinding(row) { |
| | | this.bindCurrentInfo = row; |
| | | getBindingProductByProductId({ productId: row.insProductId }) |
| | | .then((res) => { |
| | | if (res.coe == 201) { |
| | | // this.$message.error('未绑定检验项') |
| | | return; |
| | | } |
| | | // console.log(res) |
| | | this.bindTableData = res.data; |
| | | this.bindDialogVisible = true; |
| | |
| | | productId: this.bindCurrentInfo.insProductId, |
| | | }) |
| | | .then((res) => { |
| | | if (res.coe == 201) { |
| | | // this.$message.error('未绑定检验项') |
| | | return; |
| | | } |
| | | // console.log(res) |
| | | this.bindAddTableData = res.data; |
| | | this.bindAddDialogVisible = true; |
| | |
| | | }, |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | .search { |
| | | background-color: #fff; |
| | | height: 40px; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-top: 20px; |
| | | } |
| | | |
| | | .search_thing { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 50px; |
| | | } |
| | | |
| | | .search_label { |
| | | width: 100px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .search_input { |
| | | width: calc(100% - 120px); |
| | | } |
| | | |
| | | .ins-order-plan-main .search { |
| | | width: 100%; |
| | | height: 40px; |
| | | background-color: #fff; |
| | | border-radius: 3px; |
| | | } |
| | | |
| | | .ins-order-plan-main .center { |
| | | background-color: #fff; |
| | | border-radius: 3px; |
| | | padding: 20px; |
| | | padding-top: 0px; |
| | | } |
| | | |
| | | .tab { |
| | | list-style-type: none; |
| | | display: flex; |
| | | padding-left: 6px; |
| | | } |
| | | |
| | | .tab li { |
| | | line-height: 24px; |
| | | padding: 4px 10px; |
| | | font-size: 14px; |
| | | color: #333333; |
| | | border: 1px solid #eeeeee; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .tab li:nth-child(1) { |
| | | border-radius: 8px 0 0 8px; |
| | | } |
| | | |
| | | .tab li:nth-last-child(1) { |
| | | border-radius: 0 8px 8px 0; |
| | | } |
| | | |
| | | .tab li.active { |
| | | border-color: #3a7bfa; |
| | | color: #3a7bfa; |
| | | } |
| | | |
| | | .center .center-options .center-title { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: right; |
| | | } |
| | | |
| | | .center .center-options .center-title span:last-child { |
| | | color: #3a7bfa; |
| | | font-size: 23px; |
| | | font-weight: 400; |
| | | } |
| | | |
| | | .view-self-checkbox { |
| | | margin-left: 50px; |
| | | } |
| | | </style> |
| | | <style> |
| | | .ins-order-plan-main .el-form-item__label { |
| | | color: #000; |
| | | } |
| | | </style> |