<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%">
|
<div class="search">
|
<div class="search_thing">
|
<div class="search_label">委托编号:</div>
|
<div class="search_input">
|
<el-input v-model="queryParams.entrustCode" clearable placeholder="请输入" size="small"
|
@keyup.enter.native="refreshTable()"></el-input>
|
</div>
|
</div>
|
<div class="search_thing">
|
<div class="search_label">检验状态:</div>
|
<div class="search_input">
|
<el-select v-model="queryParams.insState" size="small" style="width: 100%" @change="refreshTable()">
|
<el-option v-for="(a, i) in dict.type.inspection_task_state" :key="i" :label="a.label"
|
:value="a.value"></el-option>
|
</el-select>
|
</div>
|
</div>
|
<div class="search_thing" style="padding-left: 30px">
|
<el-button size="small" @click="refresh()">重 置</el-button>
|
<el-button size="small" type="primary" @click="refreshTable()">查 询</el-button>
|
</div>
|
</div>
|
<div class="center">
|
<div class="center-options">
|
<el-row>
|
<el-col :span="21">
|
<div style="display: flex; align-items: center">
|
<span style="font-size: 14px">试验室种类:</span>
|
<ul class="tab">
|
<li v-for="(m, i) in tabList" :key="i" :class="{ active: i == tabIndex }" @click="handleTab(m, i)">
|
{{ m.label.replace("试验室", "") }}
|
</li>
|
</ul>
|
<div>
|
<el-checkbox v-model="alone" class="view-self-checkbox"
|
@change="changeCheckBox"><span>我的任务</span></el-checkbox>
|
</div>
|
</div>
|
</el-col>
|
<el-col :span="3">
|
<div class="center-title">
|
<span>总计任务数量:</span>
|
<span>{{ page.total }}</span>
|
</div>
|
</el-col>
|
</el-row>
|
</div>
|
<lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
|
:rowClassName="rowClassName" :height="'calc(100vh - 300px)'" @pagination="pagination"
|
key="tableData0"></lims-table>
|
</div>
|
</div>
|
<el-dialog :visible.sync="claimVisible" title="提示" width="400px">
|
是否认领委托编号<span style="color: #33c130">{{
|
sampleUserForm.entrustCode
|
}}</span>的任务
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="claimVisible = false">取 消</el-button>
|
<el-button :loading="loading" type="primary" @click="confirmClaim">确 定</el-button>
|
</span>
|
</el-dialog>
|
<el-dialog :visible.sync="connectVisible" title="检验交接" width="400px">
|
<div class="search_thing">
|
<div class="search_label" style="width: 90px">
|
<span class="required-span">* </span>交接人员:
|
</div>
|
<div class="search_input">
|
<el-select v-model="connect.connectPerson" filterable placeholder="请选择" style="width: 100%">
|
<el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value">
|
</el-option>
|
</el-select>
|
</div>
|
</div>
|
<div class="search_thing">
|
<div class="search_label" style="width: 90px">
|
<span class="required-span">* </span>试验室:
|
</div>
|
<div class="search_input">
|
<el-select v-model="connect.sonLaboratory" filterable placeholder="请选择" style="width: 100%">
|
<el-option v-for="item in sonLaboratoryList" :key="item.value" :label="item.label" :value="item.value">
|
</el-option>
|
</el-select>
|
</div>
|
</div>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="connectVisible = false">取 消</el-button>
|
<el-button :loading="loading" type="primary" @click="confirmConnect">确 定</el-button>
|
</span>
|
</el-dialog>
|
<el-dialog :visible.sync="dataDialogVisible" title="数据查看" width="80%">
|
<div v-if="dataDialogVisible" style="height: 70vh; overflow-y: auto">
|
<lims-table :tableData="lookTableData" :column="lookColumn" :page="lookPage" :tableLoading="lookTableLoading"
|
:height="'60vh'" @pagination="lookPagination" key="tableData1"></lims-table>
|
</div>
|
</el-dialog>
|
<el-dialog :visible.sync="bindDialogVisible" title="检验项绑定" width="600px">
|
<div slot="title" style="
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
">
|
<span>检验项绑定</span>
|
<el-button style="float: right; margin-left: 360px" size="small" @click="openBindAdd" type="primary">
|
新增
|
</el-button>
|
</div>
|
<el-table :data="bindTableData" style="width: 100%" height="70vh" v-loading="bindTableDataLoading">
|
<el-table-column prop="inspectionItemClass" label="检验项分类" width="150">
|
</el-table-column>
|
<el-table-column prop="inspectionItem" label="检验项" width="150">
|
</el-table-column>
|
<el-table-column prop="inspectionItemSubclass" label="检验子项">
|
</el-table-column>
|
<el-table-column label="操作">
|
<template slot-scope="scope">
|
<el-button size="mini" type="text" @click="handleDelete(scope.row)">删除</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-dialog>
|
<el-dialog :visible.sync="bindAddDialogVisible" title="选择绑定" width="600px">
|
<el-table :data="bindAddTableData" style="width: 100%" height="60vh"
|
@selection-change="handleBindAddSelectionChange">
|
<el-table-column type="selection" width="55"> </el-table-column>
|
<el-table-column prop="inspectionItemClass" label="检验项分类" width="150">
|
</el-table-column>
|
<el-table-column prop="inspectionItem" label="检验项" width="150">
|
</el-table-column>
|
<el-table-column prop="inspectionItemSubclass" label="检验子项">
|
</el-table-column>
|
</el-table>
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="bindAddDialogVisible = false">取 消</el-button>
|
<el-button :loading="loading" type="primary" @click="bindAdd">绑 定</el-button>
|
</span>
|
</el-dialog>
|
<!--产业链信息查看-->
|
<!-- <ShowInfo
|
v-if="showInfoDialog"
|
ref="showInfoDialog"
|
:showInfoDialog="showInfoDialog"
|
></ShowInfo> -->
|
<!--修改检验值弹框-->
|
<edit-inspection-item ref="editInspectionItem"></edit-inspection-item>
|
<!--查看工时弹框-->
|
<viewManHourDia ref="viewManHourDia"></viewManHourDia>
|
</div>
|
</template>
|
|
<script>
|
import { getYearAndMonthAndDays } from "@/utils/date";
|
import EditInspectionItem from "./components/EditInspectionItem.vue";
|
import limsTable from "@/components/Table/lims-table.vue";
|
import viewManHourDia from "./components/viewManHourDia.vue"
|
import {
|
claimInsOrderPlan,
|
upPlanUser2,
|
upPlanUser,
|
selectUserCondition,
|
getBindingProductByProductId,
|
getProductTreeByProductId,
|
bindingProductTreeByProductId,
|
delProductTreeByProductId,
|
selectInsOrderPlanList,
|
selectSampleAndProductByOrderId,
|
} from "@/api/business/inspectionTask.js";
|
import { mapGetters } from "vuex";
|
export default {
|
name: 'InspectionTask',
|
components: {
|
EditInspectionItem,
|
limsTable,
|
viewManHourDia
|
},
|
dicts: ["urgency_level", "inspection_task_state"],
|
computed: {
|
...mapGetters(["nickName", "userId"]),
|
},
|
data() {
|
return {
|
InspectionKey: 1,
|
bindDialogVisible: false,
|
bindAddDialogVisible: false,
|
bindTableDataLoading: false,
|
bindTableData: [],
|
bindAddTableData: [],
|
chooseBindAddList: [],
|
examine: null,
|
inspectorList: [], //检验人员列表
|
alone: true,
|
sampleUserForm: {
|
entrustCode: null,
|
insSampleId: null,
|
userId: null,
|
},
|
claimVisible: false,
|
tabList: [
|
{ label: "委托", value: 0 },
|
{ label: "原材料", value: 1 },
|
],
|
active: 1,
|
tabIndex: 0,
|
dataDialogVisible: false,
|
planTotal: 0,
|
insStateList: [],
|
state: 0, // 0:台账页,1:检验页面,2检验页面(复核),默认为0,3数据查看
|
typeSource: null, // 0:成品下单,1:原材料下单
|
sonLaboratory: null, // 0:委托,1:原材料
|
activeFace: 0, // 1:下单,2:查看,3:审核,默认为0
|
currentId: null,
|
entityCopy: {},
|
orderId: 0,
|
personList: [],
|
connectVisible: false,
|
connect: {
|
connectPerson: "",
|
sonLaboratory: "",
|
},
|
loading: false,
|
currentTime: null,
|
sonLaboratoryList: [],
|
typeSourceList: [
|
{ label: "成品下单", value: 0 },
|
{ label: "原材料下单", value: 1 },
|
],
|
customsInspection: {},
|
showInfoDialog: false, // 产业链信息查看
|
isReport: 0,
|
retestInfo: [],
|
isCopper: null,
|
bindCurrentInfo: {},
|
lookInfo: {},
|
orderTypeList: [
|
{
|
value: "Customer-ordered test",
|
label: "委托试验",
|
type: "success",
|
effect: "plain",
|
},
|
{
|
value: "抽检",
|
label: "抽检",
|
type: "",
|
effect: "plain",
|
},
|
{
|
value: "进厂检验",
|
label: "进厂检验",
|
type: "info",
|
effect: "plain",
|
},
|
{
|
value: "Quarterly inspection",
|
label: "季度检验",
|
type: "warning",
|
effect: "plain",
|
},
|
],
|
urgencyLevel: [],
|
inspectionTaskState: [],
|
tableData: [],
|
column: [
|
{
|
label: "委托编号",
|
prop: "entrustCode",
|
width: "160px",
|
dataType: "link",
|
linkMethod: "selectAllByOne",
|
},
|
{ label: "样品名称", prop: "sample", width: "160px" },
|
{
|
label: "下单类别",
|
prop: "typeSource",
|
width: "100px",
|
dataType: "tag",
|
formatData: (params) => {
|
if (params == 0) {
|
return "成品下单";
|
} else {
|
return "原材料下单";
|
}
|
},
|
},
|
{ label: "样品型号", prop: "sampleModel", width: "120px" },
|
{
|
label: "紧急程度",
|
prop: "type",
|
dataType: "tag",
|
formatData: (params) => {
|
return this.urgencyLevel.find((m) => m.value == params).label;
|
},
|
formatType: (params) => {
|
return this.urgencyLevel.find((m) => m.value == params).type;
|
},
|
},
|
{
|
label: "检验类型",
|
prop: "orderType",
|
width: "100px",
|
dataType: "tag",
|
formatData: (params) => {
|
return this.orderTypeList.find((m) => m.value == params).label;
|
},
|
formatType: (params) => {
|
return this.orderTypeList.find((m) => m.value == params).type;
|
},
|
},
|
{
|
label: "状态",
|
prop: "insState",
|
dataType: "tag",
|
formatData: (params) => {
|
return this.inspectionTaskState.find((m) => m.value == params).label;
|
},
|
formatType: (params) => {
|
return this.inspectionTaskState.find((m) => m.value == params).type;
|
},
|
},
|
{ label: "检验人", prop: "userName" },
|
{ label: "复核人", prop: "checkName" },
|
{ label: "约定时间", prop: "appointed" },
|
{ label: "下发时间", prop: "sendTime", width: "140px" },
|
{ label: "检验开始时间", prop: "insTime", width: "140px" },
|
{ label: "理由", prop: "verifyTell", width: "140px" },
|
{
|
dataType: "action",
|
fixed: "right",
|
label: "操作",
|
operation: [
|
{
|
name: "数据查看",
|
type: "text",
|
clickFun: (row) => {
|
this.handleDataLook(row);
|
},
|
},
|
{
|
name: "修改检验值",
|
type: "text",
|
clickFun: (row) => {
|
this.editInspection(row);
|
},
|
disabled: (row) => {
|
return (row.userName == null || row.insState == 3 || row.insState == 5) && this.checkPermi(['update:product:onPlan'])
|
},
|
},
|
{
|
name: "查看工时",
|
type: "text",
|
clickFun: (row) => {
|
this.viewManHour(row);
|
},
|
showHide: (row) => {
|
return this.checkPermi(['get:working:hours:byOrder'])
|
},
|
},
|
{
|
name: "检验",
|
type: "text",
|
clickFun: (row) => {
|
this.handleInspection(row);
|
},
|
disabled: (row) => {
|
return (
|
row.userName == null ||
|
row.insState == 3 ||
|
row.insState == 5 ||
|
(row.userName && !row.userName.includes(this.nickName))
|
);
|
},
|
},
|
{
|
name: "交接",
|
type: "text",
|
clickFun: (row) => {
|
this.handleConnect(row);
|
},
|
disabled: (row) => {
|
return (
|
row.userName == null ||
|
row.insState == 5 ||
|
row.insState == 3 ||
|
(row.userName && !row.userName.includes(this.nickName))
|
);
|
},
|
},
|
{
|
name: "原始记录",
|
type: "text",
|
clickFun: (row) => {
|
this.viewInspectInfo(row);
|
},
|
},
|
],
|
},
|
],
|
page: {
|
total: 0,
|
size: 10,
|
current: 0,
|
},
|
tableLoading: false,
|
queryParams: {},
|
insResultList: [
|
{
|
value: 1,
|
label: "合格",
|
type: "success",
|
},
|
{
|
value: 0,
|
label: "不合格",
|
type: "danger",
|
},
|
{
|
value: 3,
|
label: "不判定",
|
type: "",
|
},
|
],
|
// 数据查看相关字段---开始
|
lookTableData: [],
|
lookColumn: [
|
{
|
label: "样品编号",
|
prop: "sampleCode",
|
width: "140px",
|
mergeCol: true, //合并列
|
},
|
{ label: "样品名称", prop: "sample", width: "140px", mergeCol: true },
|
{ label: "检验项分类", prop: "inspectionItemClass" },
|
{ label: "检验项", prop: "inspectionItem", width: "140px" },
|
{ label: "检验子项", prop: "inspectionItemSubclass" },
|
{ label: "单位", prop: "unit" },
|
{ label: "样品型号", prop: "model", mergeCol: true },
|
{ label: "条件", prop: "radius" },
|
{ label: "电缆标识", prop: "cableTag" },
|
{ label: "试验要求", prop: "tell" },
|
{ label: "检验结果", prop: "lastValue" },
|
{
|
label: "结果判定",
|
prop: "insResult",
|
dataType: "tag",
|
formatData: (params) => {
|
let obj = this.insResultList.find((m) => m.value == params)
|
if (obj) {
|
return this.insResultList.find((m) => m.value == params).label;
|
} else {
|
return null
|
}
|
},
|
formatType: (params) => {
|
let obj = this.insResultList.find((m) => m.value == params)
|
if (obj) {
|
return this.insResultList.find((m) => m.value == params).type;
|
} else {
|
return null
|
}
|
},
|
},
|
{
|
dataType: "action",
|
fixed: "right",
|
label: "操作",
|
operation: [
|
{
|
name: "检验项绑定",
|
type: "text",
|
clickFun: (row) => {
|
this.getBinding(row);
|
},
|
disabled: (row) => {
|
return (
|
this.lookInfo.userName == null ||
|
this.lookInfo.insState == 3 ||
|
this.lookInfo.insState == 5
|
);
|
},
|
},
|
],
|
},
|
],
|
lookPage: {
|
total: 0,
|
size: 10,
|
current: 0,
|
},
|
lookTableLoading: false,
|
// 数据查看相关字段---结束
|
};
|
},
|
mounted() {
|
this.getAuthorizedPerson();
|
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();
|
this.queryParams.userId = this.userId;
|
},
|
activated() {
|
this.refreshTable();
|
},
|
methods: {
|
getList() {
|
this.tableLoading = true;
|
let param = { ...this.queryParams, ...this.page };
|
delete param.total;
|
selectInsOrderPlanList({ ...param })
|
.then((res) => {
|
this.tableLoading = false;
|
if (res.code === 200) {
|
this.tableData = res.data.records;
|
this.page.total = res.data.total;
|
}
|
})
|
.catch((err) => {
|
this.tableLoading = false;
|
});
|
},
|
pagination({ page, limit }) {
|
this.page.current = page;
|
this.page.size = limit;
|
this.getList();
|
},
|
getLookList() {
|
this.lookTableLoading = true;
|
let param = { id: this.lookInfo.id, ...this.lookPage };
|
delete param.total;
|
selectSampleAndProductByOrderId({ ...param })
|
.then((res) => {
|
this.lookTableLoading = false;
|
if (res.code === 200) {
|
this.lookTableData = res.data.records;
|
this.lookPage.total = res.data.total;
|
this.dataDialogVisible = true;
|
}
|
})
|
.catch((err) => {
|
this.lookTableLoading = false;
|
});
|
},
|
lookPagination({ page, limit }) {
|
this.lookPage.current = page;
|
this.lookPage.size = limit;
|
this.getLookList();
|
},
|
// 修改检验值
|
editInspection(row) {
|
this.$refs.editInspectionItem.showDialog(row.id);
|
},
|
// 查看工时
|
viewManHour(row) {
|
this.$refs.viewManHourDia.showDialog(row.id, row.insState);
|
},
|
// 数据查看
|
handleDataLook(row) {
|
this.lookInfo = row;
|
this.getLookList();
|
},
|
changeCheckBox(val) {
|
this.queryParams.userId = val ? 0 : null;
|
this.refreshTable();
|
},
|
refresh() {
|
this.queryParams = {};
|
this.queryParams.userId = this.userId;
|
this.alone = true;
|
this.refreshTable();
|
},
|
refreshTable(e) {
|
this.page.current = 1;
|
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;
|
this.$nextTick(() => {
|
this.$refs.showInfoDialog.getInfo(row.ifsInventoryId);
|
});
|
},
|
confirmClaim() {
|
this.loading = true;
|
claimInsOrderPlan(this.sampleUserForm)
|
.then((res) => {
|
if (res.code === 200 && res.data) {
|
this.loading = false;
|
this.$message.success("认领成功");
|
this.claimVisible = false;
|
this.refreshTable("page");
|
}
|
})
|
.catch((error) => {
|
console.error(error);
|
this.loading = false;
|
});
|
},
|
rowClassName({ row, rowIndex }) {
|
if (this.currentTime == row.appointed) {
|
return "highlight-warning-row-border";
|
} else if (this.currentTime > row.appointed) {
|
return "highlight-danger-row-border";
|
}
|
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;
|
this.activeFace = 2;
|
this.examine = 1;
|
this.isReport = 0;
|
this.currentId = parseInt(row.id);
|
switch (row.isCopper) {
|
case 0:
|
// 原材料
|
this.$router.push({
|
path: "/materialOrder/customsInspection", query: {
|
customsInspection: row,
|
active: this.activeFace,
|
currentId: this.currentId,
|
isReport: this.isReport
|
}
|
});
|
break;
|
case null:
|
// 成品
|
this.$router.push({
|
path: "/productOrder/add", query: {
|
examine: this.examine,
|
active: this.activeFace,
|
currentId: this.currentId
|
}
|
});
|
break;
|
case 1:
|
// 铜材
|
this.$router.push({
|
path: "/materialOrder/copperOrder", query: {
|
active: this.activeFace,
|
currentId: this.currentId
|
}
|
});
|
break;
|
}
|
|
},
|
playOrder(num) {
|
this.activeFace = num;
|
},
|
goback() {
|
this.state = 0;
|
this.refreshTable("page");
|
},
|
// 进行检验任务
|
handleInspection(row) {
|
//当前检验任务的检验人列表
|
let inspectorList = [];
|
if (row.userName) {
|
inspectorList = row.userName.split(",");
|
}
|
if (this.nickName) {
|
inspectorList.push(this.nickName);
|
}
|
this.inspectorList = inspectorList;
|
this.sonLaboratory = row.sonLaboratory;
|
this.state = 1;
|
this.typeSource = row.typeSource;
|
this.orderId = row.id;
|
this.$router.push({
|
path: "/inspectionTask/inspection",
|
query: {
|
inspectorList: this.inspectorList,
|
sonLaboratory: this.sonLaboratory,
|
state: this.state,
|
typeSource: this.typeSource,
|
orderId: this.orderId,
|
},
|
});
|
},
|
// 查看检验数据
|
viewInspectInfo(row) {
|
//当前检验任务的检验人列表
|
let inspectorList = [];
|
if (row.userName) {
|
inspectorList = row.userName.split(",");
|
}
|
if (this.nickName) {
|
inspectorList.push(this.nickName);
|
}
|
this.inspectorList = inspectorList;
|
this.sonLaboratory = row.sonLaboratory;
|
this.state = 3;
|
this.typeSource = row.typeSource;
|
this.orderId = row.id;
|
this.$router.push({
|
path: "/inspectionTask/inspection",
|
query: {
|
inspectorList: this.inspectorList,
|
sonLaboratory: this.sonLaboratory,
|
state: this.state,
|
typeSource: this.typeSource,
|
orderId: this.orderId,
|
},
|
});
|
},
|
handleConnect(row) {
|
this.orderId = row.id;
|
this.connect = {};
|
this.connectVisible = true;
|
upPlanUser2({ orderId: this.orderId }).then((res) => {
|
if (res.code === 200 && res.data.length > 0) {
|
this.sonLaboratoryList = [];
|
res.data.forEach((m) => {
|
this.sonLaboratoryList.push({
|
value: m,
|
label: m,
|
});
|
});
|
this.connect.sonLaboratory = this.sonLaboratoryList[0].value;
|
}
|
});
|
},
|
confirmConnect() {
|
if (
|
this.connect.connectPerson == null ||
|
this.connect.connectPerson == "" ||
|
this.connect.connectPerson == undefined
|
) {
|
this.$message.error("未选择交接人员");
|
return;
|
}
|
if (
|
this.connect.sonLaboratory == null ||
|
this.connect.sonLaboratory == "" ||
|
this.connect.sonLaboratory == undefined
|
) {
|
this.$message.error("未选择试验室");
|
return;
|
}
|
this.loading = true;
|
upPlanUser({
|
orderId: this.orderId,
|
userId: this.connect.connectPerson,
|
sonLaboratory: this.connect.sonLaboratory,
|
})
|
.then((res) => {
|
if (res.code === 200) {
|
this.loading = false;
|
this.$message.success("操作成功");
|
this.refreshTable("page");
|
}
|
this.connectVisible = false;
|
})
|
.catch((error) => {
|
console.error(error);
|
this.loading = false;
|
});
|
},
|
handleReview(row) {
|
this.state = 2;
|
this.orderId = row.id;
|
},
|
getAuthorizedPerson() {
|
selectUserCondition({ type: 1 }).then((res) => {
|
let data = [];
|
res.data.forEach((a) => {
|
data.push({
|
label: a.name,
|
value: a.id,
|
});
|
});
|
this.personList = data;
|
});
|
},
|
// 绑定检验项绑定
|
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;
|
})
|
.catch((error) => {
|
console.error(error);
|
});
|
},
|
openBindAdd() {
|
getProductTreeByProductId({
|
productId: this.bindCurrentInfo.insProductId,
|
})
|
.then((res) => {
|
if (res.coe == 201) {
|
// this.$message.error('未绑定检验项')
|
return;
|
}
|
// console.log(res)
|
this.bindAddTableData = res.data;
|
this.bindAddDialogVisible = true;
|
})
|
.catch((error) => {
|
console.error(error);
|
});
|
},
|
handleBindAddSelectionChange(list) {
|
this.chooseBindAddList = list;
|
},
|
bindAdd() {
|
if (this.chooseBindAddList.length == 0) {
|
this.$message.error("请选择检验项");
|
return;
|
}
|
this.chooseBindAddList.forEach((item) => {
|
delete item.template;
|
});
|
this.loading = true;
|
bindingProductTreeByProductId({
|
insProductId: this.bindCurrentInfo.insProductId,
|
insProductBindingList: this.chooseBindAddList,
|
})
|
.then((res) => {
|
this.loading = false;
|
this.$message.success("绑定成功");
|
this.bindAddDialogVisible = false;
|
this.getBinding(this.bindCurrentInfo);
|
})
|
.catch((error) => {
|
console.error(error);
|
});
|
},
|
handleDelete(row) {
|
this.$confirm("确认删除此检验项, 是否继续?", "提示", {
|
confirmButtonText: "确定",
|
cancelButtonText: "取消",
|
type: "warning",
|
}).then(async () => {
|
this.bindTableDataLoading = true
|
delProductTreeByProductId({ productId: row.id }).then((res) => {
|
this.bindTableDataLoading = false
|
this.getBinding(this.bindCurrentInfo);
|
}).catch((error) => {
|
this.bindTableDataLoading = false
|
console.error(error);
|
});
|
});
|
},
|
},
|
};
|
</script>
|