<style scoped>
|
.ins-order-plan-main .title {
|
font-size: 20px;
|
color: #3a7bfa;
|
}
|
|
.search {
|
background-color: #fff;
|
height: 80px;
|
display: flex;
|
align-items: center;
|
}
|
|
.search_thing {
|
display: flex;
|
align-items: center;
|
height: 50px;
|
}
|
|
.search_label {
|
width: 120px;
|
font-size: 14px;
|
text-align: right;
|
}
|
|
.search_input {
|
width: calc(100% - 120px);
|
}
|
|
.ins-order-plan-main .search {
|
width: 100%;
|
margin-bottom: 10px;
|
height: 80px;
|
background-color: #fff;
|
border-radius: 3px;
|
}
|
|
.search .form-inline {
|
height: 50px;
|
padding-top: 20px;
|
padding-left: 50px;
|
}
|
|
.ins-order-plan-main .center {
|
width: calc(100% - 40px);
|
height: calc(100% - 60px - 80px - 40px);
|
background-color: #fff;
|
border-radius: 3px;
|
padding: 20px;
|
}
|
|
.ins-order-plan-main .center .value-table {
|
width: 100%;
|
height: calc(100% - 68px);
|
}
|
|
.tab {
|
list-style-type: none;
|
display: flex;
|
}
|
|
.tab li {
|
line-height: 24px;
|
padding: 6px 14px;
|
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;
|
}
|
|
.ins-order-plan-main .el-table th.el-table__cell > .cell {
|
height: 46px;
|
line-height: 30px;
|
}
|
</style>
|
<template>
|
<div class="ins-order-plan-main">
|
<div v-show="activeFace == 0 && state == 0" style="height: 100%">
|
<p
|
style="
|
font-size: 16px;
|
padding-left: 20px;
|
text-align: left;
|
height: 60px;
|
line-height: 60px;
|
"
|
>
|
检验任务
|
</p>
|
<div class="search">
|
<div class="search_thing">
|
<div class="search_label">委托编号:</div>
|
<div class="search_input">
|
<el-input
|
v-model="componentData.entity.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="componentData.entity.insState"
|
size="small"
|
style="width: 100%"
|
@change="refreshTable()"
|
>
|
<el-option
|
v-for="(a, i) in insStateList"
|
:key="i"
|
:label="a.label"
|
:value="a.value"
|
></el-option>
|
</el-select>
|
</div>
|
</div>
|
<!-- <div class="search_thing">-->
|
<!-- <div class="search_label">下单类别:</div>-->
|
<!-- <div class="search_input">-->
|
<!-- <el-select v-model="componentData.entity.typeSource" clearable size="small" style="width: 100%;" @change="refreshTable()">-->
|
<!-- <el-option v-for="(a, i) in typeSourceList" :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; margin-bottom: 10px"
|
>
|
<span style="margin-right: 8px">试验室种类:</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 v-if="$refs.insOrderPlan != undefined">{{
|
$refs.insOrderPlan.total
|
}}</span>
|
</div>
|
</el-col>
|
</el-row>
|
</div>
|
<ValueTable
|
:key="upIndex"
|
ref="insOrderPlan"
|
:componentData="componentData"
|
:isColumnWidth="true"
|
:tableRowClassName="changeRowClass"
|
:upUrl="$api.user.updateUser"
|
:url="$api.insOrderPlan.selectInsOrderPlanList"
|
class="value-table"
|
@handleInspection="handleInspection"
|
/>
|
</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>
|
<div
|
v-if="activeFace > 0 && isCopper == null"
|
style="width: 100%; height: 100%"
|
>
|
<!-- <Add :active="activeFace" :currentId="currentId" :examine="examine" /> -->
|
</div>
|
<div
|
v-if="activeFace > 0 && isCopper == 0"
|
style="width: 100%; height: 100%"
|
>
|
<!-- <CustomsInspection
|
:active="activeFace"
|
:currentId="currentId"
|
:customsInspection="customsInspection"
|
:isReport="isReport"
|
/> -->
|
</div>
|
<div
|
v-if="activeFace > 0 && isCopper == 1"
|
style="width: 100%; height: 100%"
|
>
|
<!-- <CopperOrder :active="activeFace" :currentId="currentId"></CopperOrder> -->
|
</div>
|
<!--<Inspection
|
v-if="state > 0"
|
:key="InspectionKey"
|
:inspectorList="inspectorList"
|
:orderId="orderId"
|
:sonLaboratory="sonLaboratory"
|
:state="state"
|
:typeSource="typeSource"
|
@goback="goback"
|
@refreshView="refreshView"
|
/>-->
|
<el-dialog :visible.sync="dataDialogVisible" title="数据查看" width="80%">
|
<div v-if="dataDialogVisible" style="height: 70vh; overflow-y: auto">
|
<ValueTable
|
ref="ValueTableDataLook"
|
:componentData="componentDataDataLook"
|
:rowKey="'insProductId'"
|
:url="$api.insOrder.selectSampleAndProductByOrderId"
|
/>
|
</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">
|
<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>
|
<un-pass-retest-result
|
v-if="retestVisible"
|
:retestInfo="retestInfo"
|
:retestVisible="retestVisible"
|
@closeRetestLook="closeRetestLook"
|
></un-pass-retest-result>
|
<!--产业链信息查看-->
|
<!-- <ShowInfo
|
v-if="showInfoDialog"
|
ref="showInfoDialog"
|
:showInfoDialog="showInfoDialog"
|
></ShowInfo> -->
|
<edit-inspection-item ref="editInspectionItem"></edit-inspection-item>
|
</div>
|
</template>
|
|
<script>
|
import ValueTable from "@/components/Table/value-table.vue";
|
// import Inspection from "../do/b1-inspect-order-plan/Inspection.vue";
|
// import CustomsInspection from "../do/b1-material-ins-order/customs-inspection.vue";
|
import { getYearAndMonthAndDays } from "@/utils/date";
|
// import Add from "../do/b1-ins-order/add.vue";
|
// import ShowInfo from "../do/b1-material-ins-order/showInfo.vue";
|
// import CopperOrder from "../do/b1-material-ins-order/copper-order.vue";
|
import EditInspectionItem from "./components/EditInspectionItem.vue";
|
export default {
|
components: {
|
EditInspectionItem,
|
// CopperOrder,
|
// ShowInfo,
|
ValueTable,
|
// Inspection,
|
// Add,
|
// CustomsInspection,
|
},
|
data() {
|
return {
|
InspectionKey: 1,
|
bindDialogVisible: false,
|
bindAddDialogVisible: 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,
|
componentDataDataLook: {
|
entity: {
|
id: 0,
|
orderBy: {
|
field: "sampleCode",
|
order: "asc",
|
},
|
},
|
isIndex: false,
|
showSelect: false,
|
select: false,
|
do: [
|
{
|
id: "parent",
|
font: "不合格复测查看",
|
type: "text",
|
method: "getRetestResult",
|
disabFun: (row, index) => {
|
return row.insResult != 0;
|
},
|
},
|
{
|
id: "parent",
|
font: "检验项绑定",
|
type: "text",
|
method: "getBinding",
|
disabFun: (row, index) => {
|
return (
|
this.lookInfo.userName == null ||
|
this.lookInfo.insState == 3 ||
|
this.lookInfo.insState == 5
|
);
|
},
|
},
|
],
|
tagField: {
|
insState: {
|
select: [],
|
},
|
insResult: {
|
select: [
|
{
|
value: 1,
|
label: "合格",
|
type: "success",
|
},
|
{
|
value: 0,
|
label: "不合格",
|
type: "danger",
|
},
|
{
|
value: 3,
|
label: "不判定",
|
type: "",
|
},
|
],
|
},
|
},
|
selectField: {},
|
spanConfig: {
|
rows: [
|
{
|
name: "sampleCode",
|
index: 0,
|
},
|
{
|
name: "sample",
|
index: 1,
|
},
|
{
|
name: "model",
|
index: 6,
|
},
|
],
|
},
|
requiredAdd: [],
|
requiredUp: [],
|
},
|
dataDialogVisible: false,
|
componentData: {
|
entity: {
|
orderBy: {
|
field: "entrustCode",
|
order: "asc",
|
},
|
sonLaboratory: null,
|
insState: null,
|
userId: null,
|
typeSource: null,
|
},
|
isIndex: true,
|
showSelect: false,
|
select: false,
|
init: false,
|
needSort: ["createTime", "sendTime", "type", "appointed", "insState"],
|
do: [
|
{
|
id: "",
|
font: "数据查看",
|
type: "text",
|
method: "handleDataLook",
|
},
|
{
|
id: "",
|
font: "修改检验值",
|
type: "text",
|
method: "editInspection",
|
disabFun: (row, index) => {
|
return (
|
row.userName == null || row.insState == 3 || row.insState == 5
|
);
|
},
|
},
|
{
|
id: "",
|
font: "检验",
|
type: "text",
|
method: "handleInspection",
|
disabFun: (row, index) => {
|
return (
|
row.userName == null ||
|
row.insState == 3 ||
|
row.insState == 5 ||
|
(row.userName &&
|
!row.userName.includes(
|
JSON.parse(localStorage.getItem("user")).name
|
))
|
);
|
},
|
},
|
{
|
id: "",
|
font: "交接",
|
type: "text",
|
method: "handleConnect",
|
disabFun: (row, index) => {
|
return (
|
row.userName == null ||
|
row.insState == 5 ||
|
row.insState == 3 ||
|
(row.userName &&
|
!row.userName.includes(
|
JSON.parse(localStorage.getItem("user")).name
|
))
|
);
|
},
|
},
|
// {
|
// font: '产业链',
|
// type: 'text',
|
// method: 'openInfoDialog',
|
// disabFun: (row, index) => {
|
// return row.typeSource !== 1
|
// }
|
// },
|
// {
|
// id: '',
|
// font: '认领',
|
// type: 'text',
|
// method: 'claimFun',
|
// disabFun: (row, index) => {
|
// return row.userName != null || row.checkName!=null
|
// }
|
// },
|
{
|
id: "",
|
font: "原始记录",
|
type: "text",
|
method: "viewInspectInfo",
|
},
|
],
|
linkEvent: {
|
entrustCode: {
|
method: "selectAllByOne",
|
},
|
},
|
tagField: {
|
type: {
|
select: [],
|
},
|
insState: {
|
select: [],
|
},
|
insResult: {
|
select: [
|
{
|
value: 0,
|
label: "不合格",
|
type: "danger",
|
},
|
{
|
value: 1,
|
label: "合格",
|
type: "success",
|
},
|
{
|
value: "",
|
label: "未出结果",
|
type: "info",
|
},
|
],
|
},
|
typeSource: {
|
select: [
|
{
|
value: 0,
|
label: "成品下单",
|
type: "info",
|
},
|
{
|
value: 1,
|
label: "原材料下单",
|
type: "info",
|
},
|
{
|
value: 2,
|
label: "原材料下单",
|
type: "info",
|
},
|
],
|
},
|
orderType: {
|
select: [
|
{
|
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",
|
},
|
],
|
},
|
},
|
selectField: {},
|
requiredAdd: [],
|
requiredUp: [],
|
},
|
upIndex: 0,
|
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,
|
retestVisible: false,
|
retestInfo: [],
|
isCopper: null,
|
bindCurrentInfo: {},
|
lookInfo: {},
|
};
|
},
|
created() {
|
// this.getLaboratoryDicts()
|
this.getTypeDicts();
|
this.getInsStateDicts();
|
this.getAuthorizedPerson();
|
this.currentTime = getYearAndMonthAndDays();
|
},
|
mounted() {
|
this.entityCopy = this.HaveJson(this.componentData.entity);
|
let user = JSON.parse(localStorage.getItem("user"));
|
this.componentData.entity.userId = user.userId;
|
this.getPower();
|
this.refreshTable();
|
},
|
methods: {
|
// 修改检验值
|
editInspection(row) {
|
this.$refs.editInspectionItem.showDialog(row.id);
|
},
|
// 刷新页面
|
refreshView() {
|
this.InspectionKey++;
|
},
|
// 数据查看
|
handleDataLook(row) {
|
this.lookInfo = row;
|
this.componentDataDataLook.entity.id = row.id;
|
this.dataDialogVisible = true;
|
},
|
// 查看不合格复测结果
|
getRetestResult(row) {
|
this.$axios
|
.get(
|
this.$api.insOrder.getRetestResult +
|
"?insProductId=" +
|
row.insProductId
|
)
|
.then((res) => {
|
if (res.code == 201) return;
|
this.retestVisible = true;
|
this.retestInfo = res.data;
|
});
|
},
|
//
|
closeRetestLook() {
|
this.retestVisible = false;
|
},
|
// 权限分配
|
getPower(radio) {
|
let power = JSON.parse(sessionStorage.getItem("power"));
|
let inspection = false;
|
let connect = false;
|
let review = false;
|
let claim = false;
|
for (var i = 0; i < power.length; i++) {
|
if (power[i].menuMethod == "doInsOrder") {
|
inspection = true;
|
}
|
if (power[i].menuMethod == "upPlanUser") {
|
connect = true;
|
}
|
if (power[i].menuMethod == "verifyPlan") {
|
review = true;
|
}
|
if (power[i].menuMethod == "claimInsOrderPlan") {
|
claim = true;
|
}
|
}
|
if (!claim) {
|
this.componentData.do.splice(3, 1);
|
}
|
if (!review) {
|
this.componentData.do.splice(2, 1);
|
}
|
if (!connect) {
|
this.componentData.do.splice(1, 1);
|
}
|
if (!inspection) {
|
this.componentData.do.splice(0, 1);
|
}
|
},
|
changeCheckBox(val) {
|
this.componentData.entity.userId = val ? 0 : null;
|
this.refreshTable();
|
},
|
refresh() {
|
this.componentData.entity = this.HaveJson(this.entityCopy);
|
let user = JSON.parse(localStorage.getItem("user"));
|
this.componentData.entity.userId = user.userId;
|
this.alone = true;
|
this.refreshTable();
|
},
|
// 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;
|
this.$axios
|
.post(this.$api.insOrderPlan.claimInsOrderPlan, this.sampleUserForm, {
|
headers: {
|
"Content-Type": "application/json",
|
},
|
})
|
.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;
|
});
|
},
|
refreshTable(e) {
|
this.componentData.entity.typeSource = this.tabIndex;
|
this.$refs.insOrderPlan.selectList(e);
|
},
|
changeRowClass({ 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.componentData.entity.insState = null;
|
this.componentData.entity.sampleName = null;
|
this.refreshTable();
|
},
|
onSubmit() {
|
this.componentData.entity.insState = this.searchForm.state;
|
this.componentData.entity.sampleName = this.searchForm.sampleName;
|
this.$nextTick(() => {
|
this.refreshTable();
|
});
|
},
|
handleTab(m, i) {
|
this.tabIndex = i;
|
this.componentData.entity.sonLaboratory = "";
|
this.refreshTable();
|
},
|
getTypeDicts() {
|
this.$axios
|
.post(this.$api.enums.selectEnumByCategory, {
|
category: "紧急程度",
|
})
|
.then((res) => {
|
let data = res.data;
|
data.forEach((ele) => {
|
if (ele.value === "0") {
|
ele.type = "success";
|
} else if (ele.value === "1") {
|
ele.type = "warning";
|
} else if (ele.value === "2") {
|
ele.type = "danger";
|
}
|
});
|
this.componentData.tagField.type.select = data;
|
});
|
},
|
getInsStateDicts() {
|
this.$axios
|
.post(this.$api.enums.selectEnumByCategory, {
|
category: "检验任务状态",
|
})
|
.then((res) => {
|
let data = res.data;
|
this.insStateList = data;
|
data.forEach((ele) => {
|
//0:待检验 1:检验中 2:已检验 3:待复核 4:复核未通过 5:复核通过
|
if (["2", "5"].includes(ele.value)) {
|
ele.type = "success";
|
} else if (["1", "3"].includes(ele.value)) {
|
ele.type = "warning";
|
} else if (["0", "4"].includes(ele.value)) {
|
ele.type = "danger";
|
}
|
});
|
this.componentData.tagField.insState.select = data;
|
});
|
},
|
// 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);
|
},
|
playOrder(num) {
|
this.activeFace = num;
|
},
|
goback() {
|
this.state = 0;
|
this.refreshTable("page");
|
},
|
// 进行检验任务
|
handleInspection(row) {
|
//当前检验任务的检验人列表
|
let inspectorList = [];
|
if (row.userName) {
|
inspectorList = row.userName.split(",");
|
}
|
let user = JSON.parse(localStorage.getItem("user"));
|
if (user) {
|
inspectorList.push(user.name);
|
}
|
this.inspectorList = inspectorList;
|
this.sonLaboratory = row.sonLaboratory;
|
this.state = 1;
|
this.typeSource = row.typeSource;
|
this.orderId = row.id;
|
},
|
// 查看检验数据
|
viewInspectInfo(row) {
|
//当前检验任务的检验人列表
|
let inspectorList = [];
|
if (row.userName) {
|
inspectorList = row.userName.split(",");
|
}
|
let user = JSON.parse(localStorage.getItem("user"));
|
if (user) {
|
inspectorList.push(user.name);
|
}
|
this.inspectorList = inspectorList;
|
this.sonLaboratory = row.sonLaboratory;
|
this.state = 3;
|
this.typeSource = row.typeSource;
|
this.orderId = row.id;
|
},
|
handleConnect(row) {
|
this.orderId = row.id;
|
this.connect = {};
|
this.connectVisible = true;
|
this.$axios
|
.post(this.$api.insOrderPlan.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;
|
this.$axios
|
.post(this.$api.insOrderPlan.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() {
|
this.$axios.get(this.$api.user.getUserMenu).then((res) => {
|
let data = [];
|
res.data.forEach((a) => {
|
data.push({
|
label: a.name,
|
value: a.id,
|
});
|
});
|
this.personList = data;
|
});
|
},
|
// 绑定检验项绑定
|
getBinding(row) {
|
this.bindCurrentInfo = row;
|
this.$axios
|
.get(
|
this.$api.insOrderPlan.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() {
|
this.$axios
|
.get(
|
this.$api.insOrderPlan.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;
|
this.$axios
|
.post(
|
this.$api.insOrderPlan.bindingProductTreeByProductId,
|
{
|
insProductId: this.bindCurrentInfo.insProductId,
|
insProductBindingList: this.chooseBindAddList,
|
},
|
{
|
headers: {
|
"Content-Type": "application/json",
|
},
|
noQs: true,
|
}
|
)
|
.then((res) => {
|
this.loading = false;
|
if (res.code == 201) {
|
this.$message.error("绑定失败");
|
return;
|
}
|
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.$axios
|
.get(
|
this.$api.insOrderPlan.delProductTreeByProductId +
|
"?productId=" +
|
row.id
|
)
|
.then((res) => {
|
if (res.coe == 201) {
|
// this.$message.error('未绑定检验项')
|
return;
|
}
|
this.getBinding(this.bindCurrentInfo);
|
})
|
.catch((error) => {
|
console.error(error);
|
});
|
});
|
},
|
},
|
};
|
</script>
|