1
This commit is contained in:
@@ -446,7 +446,7 @@
|
||||
</el-button-group>
|
||||
</div>
|
||||
<el-button type="success" size="medium" @click="setWorkOrderStartTime">同步开始时间</el-button>
|
||||
<el-button type="primary" size="medium" @click="workOrderCompleted">本工单完成</el-button>
|
||||
<el-button type="primary" size="medium" @click="workOrderCompleted">首检完成</el-button>
|
||||
<table>
|
||||
<tr>
|
||||
<td>产品描述</td>
|
||||
@@ -497,6 +497,86 @@
|
||||
</el-card>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 额外数据区域 -->
|
||||
<div style="width: 66%;margin-top: 10px;">
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span class="title">工单数据看板</span>
|
||||
<el-button style="float: right;" icon="el-icon-refresh" @click="handlerSyncDataBoard(CurrentWorkorder.clientWorkorder)">刷新</el-button>
|
||||
</div>
|
||||
<el-descriptions style="font-size: 18px;" :column="6" border>
|
||||
<el-descriptions-item content-class-name="my-content1">
|
||||
<template slot="label">
|
||||
<i class="el-icon-tickets"></i>
|
||||
工单号
|
||||
</template>
|
||||
<span v-if="workOrderBoardData">{{workOrderBoardData.workOrderId}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item content-class-name="my-content1">
|
||||
<template slot="label">
|
||||
工单位置
|
||||
</template>
|
||||
<span v-if="workOrderBoardData">{{` ${workOrderBoardData.workOrderIndex} / ${workOrderBoardData.workOrderDayListCount} `}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item content-class-name="my-content1">
|
||||
<template slot="label">
|
||||
<i class="el-icon-finished"></i>
|
||||
已完成
|
||||
</template>
|
||||
<span v-if="workOrderBoardData">{{workOrderBoardData.workOrderFinishNum}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item content-class-name="my-content1">
|
||||
<template slot="label">
|
||||
<i class="el-icon-close"></i>
|
||||
未完成
|
||||
</template>
|
||||
<span v-if="workOrderBoardData">{{workOrderBoardData.workOrderNotFinishNum}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item content-class-name="my-content1">
|
||||
<template slot="label">
|
||||
<i class="el-icon-printer"></i>
|
||||
待打标签
|
||||
</template>
|
||||
<span v-if="workOrderBoardData">{{` ${workOrderBoardData.workOrderFinishPackageNum} / ${workOrderBoardData.workOrderPackageCount} `}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item content-class-name="my-content1">
|
||||
<template slot="label">
|
||||
<i class="el-icon-printer"></i>
|
||||
未打标签
|
||||
</template>
|
||||
<span v-if="workOrderBoardData">{{workOrderBoardData.workOrderNotFinishPackageNum}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item content-class-name="my-content2">
|
||||
<template slot="label">
|
||||
<i class="el-icon-tickets"></i>
|
||||
上一个工单
|
||||
</template>
|
||||
<span v-if="workOrderBoardData.lastWorkOrderId">{{workOrderBoardData.lastWorkOrderId}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item>
|
||||
<template slot="label">
|
||||
<i class="el-icon-printer"></i>
|
||||
待打标签
|
||||
</template>
|
||||
<span v-if="workOrderBoardData.lastWorkOrderId">{{` ${workOrderBoardData.lastWorkOrderFinishPackageNum} / ${workOrderBoardData.lastWorkOrderPackageCount} `}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item content-class-name="my-content2">
|
||||
<template slot="label">
|
||||
<i class="el-icon-printer"></i>
|
||||
未打标签
|
||||
</template>
|
||||
<span v-if="workOrderBoardData.lastWorkOrderId">{{workOrderBoardData.lastWorkOrderNotFinishPackageNum}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item content-class-name="my-content3">
|
||||
<template slot="label">
|
||||
<i class="el-icon-time"></i>
|
||||
数据更新时间
|
||||
</template>
|
||||
<span>{{workOrderBoardData.updatedTime}}</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-card>
|
||||
</div>
|
||||
|
||||
<el-dialog title="修改" :visible.sync="DMLdialog.visiable" width="600px" append-to-body>
|
||||
<el-input-number v-model="toUpdateNum" label="修改"></el-input-number>
|
||||
@@ -519,6 +599,10 @@
|
||||
writeProcessFlow_first,
|
||||
GetQcQualityStatisticsFirstStartTime,
|
||||
} from '@/api/qualityManagement/firstFQC.js'
|
||||
import {
|
||||
CheckWorkOrderInDayListNum,
|
||||
GetWorkOrderBoardData
|
||||
} from '@/api/qualityManagement/commonFQC.js';
|
||||
import { mapState, mapGetters, mapMutations, mapActions } from 'vuex'
|
||||
export default {
|
||||
name: 'firstFQC',
|
||||
@@ -549,6 +633,8 @@
|
||||
},
|
||||
// 工单开始时间
|
||||
workOrderStartTime: "",
|
||||
workOrderChart: [0, 0, 0, 0],
|
||||
workOrderBoardData: {},
|
||||
toUpdateNum: 0, //弹窗更新值
|
||||
toname: '',
|
||||
toindex: 0, //索引
|
||||
@@ -560,21 +646,13 @@
|
||||
created() {
|
||||
this.initMqtt();
|
||||
this.getcurrentWorkorder()
|
||||
this.startTimer();
|
||||
},
|
||||
watch: {
|
||||
'CurrentWorkorder.clientWorkorder'(newValue, oldValue) {
|
||||
if (newValue == null) {
|
||||
this.workOrderStartTime = "";
|
||||
return;
|
||||
}
|
||||
const data = {
|
||||
workOrderId: newValue
|
||||
}
|
||||
GetQcQualityStatisticsFirstStartTime(data).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.workOrderStartTime = res.data;
|
||||
}
|
||||
})
|
||||
this.getWorkOrderStartTime(newValue);
|
||||
// this.getWorkOrderInDayListNum(newValue);
|
||||
this.handlerSyncDataBoard(newValue);
|
||||
}
|
||||
},
|
||||
mounted() {},
|
||||
@@ -999,8 +1077,8 @@
|
||||
startTimer() {
|
||||
this.timer = setInterval(() => {
|
||||
//this.getcurrentWorkorder()
|
||||
|
||||
}, 4000)
|
||||
this.handlerSyncDataBoard(this.CurrentWorkorder.clientWorkorder);
|
||||
}, 5000)
|
||||
},
|
||||
stopTimer() {
|
||||
clearInterval(this.timer)
|
||||
@@ -1143,6 +1221,58 @@
|
||||
}
|
||||
this.mqttClient.publish(topic.NowOrderRetain, emqxUtil.stringJSON(message), options, () => {});
|
||||
}
|
||||
},
|
||||
// 获取开始时间
|
||||
getWorkOrderStartTime(workOrderId) {
|
||||
if (workOrderId == null) {
|
||||
this.workOrderStartTime = "";
|
||||
return;
|
||||
}
|
||||
const data = {
|
||||
workOrderId: workOrderId
|
||||
}
|
||||
GetQcQualityStatisticsFirstStartTime(data).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.workOrderStartTime = res.data;
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取工单状态
|
||||
getWorkOrderInDayListNum(workOrderId) {
|
||||
if (workOrderId == null) {
|
||||
this.workOrderChart = [0, 0, 0, 0];
|
||||
return;
|
||||
}
|
||||
const queryData = {
|
||||
workOrderId: workOrderId
|
||||
}
|
||||
CheckWorkOrderInDayListNum(queryData).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.workOrderChart = res.data;
|
||||
}
|
||||
})
|
||||
},
|
||||
// 数据看板同步
|
||||
handlerSyncDataBoard(workOrderId) {
|
||||
let queryData = {
|
||||
workOrderId: workOrderId
|
||||
}
|
||||
if (workOrderId === null || workOrderId === undefined ) {
|
||||
queryData.workOrderId = this.CurrentWorkorder.clientWorkorder
|
||||
}
|
||||
if (queryData.workOrderId === null || workOrderId === undefined) {
|
||||
this.workOrderBoardData = {};
|
||||
return;
|
||||
}
|
||||
GetWorkOrderBoardData(queryData).then(res => {
|
||||
if (res.code === 200) {
|
||||
if (res.data === null) {
|
||||
this.workOrderBoardData = {};
|
||||
return;
|
||||
}
|
||||
this.workOrderBoardData = res.data;
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
// 退出页面
|
||||
@@ -1152,8 +1282,19 @@
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.my_content{
|
||||
background: #ffff00;
|
||||
}
|
||||
.my-content1{
|
||||
background: #f0f9eb;
|
||||
}
|
||||
.my-content2{
|
||||
background: #f4f4f5;
|
||||
}
|
||||
.my-content3{
|
||||
background: #d9ecff;
|
||||
}
|
||||
.dataStatistics {
|
||||
.title {
|
||||
font-size: 1.2rem;
|
||||
|
||||
@@ -449,7 +449,15 @@
|
||||
<div>
|
||||
<el-card class="box-card dataStatistics">
|
||||
<div slot="header" class="clearfix">
|
||||
<span class="title">工单号:{{ CurrentWorkorder.clientWorkorder }}</span>
|
||||
<span class="title">
|
||||
工单号:{{ CurrentWorkorder.clientWorkorder }}
|
||||
</span>
|
||||
<span style="margin-left: 10px;">
|
||||
<el-tag v-if="workOrderInListStatus === 0" type="primary" effect="dark">前边无未完成工单</el-tag>
|
||||
<el-tag v-if="workOrderInListStatus === 1" type="danger" effect="dark">前边有未完成工单</el-tag>
|
||||
<el-tag v-if="workOrderInListStatus === 2" type="warning" effect="dark">首个工单</el-tag>
|
||||
<el-tag v-if="workOrderInListStatus === 3" type="success" effect="dark">最后一个工单</el-tag>
|
||||
</span>
|
||||
<el-button-group style="float: right">
|
||||
<el-button type="primary" size="mini" @click="getNext_current_workorder">下一个工单<i class="el-icon-arrow-right el-icon--right"></i></el-button>
|
||||
<el-button type="primary" icon="el-icon-arrow-left" size="mini" @click="getPrevious_current_workorder">上一个工单</el-button>
|
||||
@@ -506,7 +514,86 @@
|
||||
</el-card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 额外数据区域 -->
|
||||
<div style="width: 50%;margin-top: 10px;">
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span class="title">工单数据看板</span>
|
||||
<el-button style="float: right;" icon="el-icon-refresh" @click="handlerSyncDataBoard(CurrentWorkorder.clientWorkorder)">刷新</el-button>
|
||||
</div>
|
||||
<el-descriptions style="font-size: 18px;" :column="6" border>
|
||||
<el-descriptions-item content-class-name="my-content1">
|
||||
<template slot="label">
|
||||
<i class="el-icon-tickets"></i>
|
||||
工单号
|
||||
</template>
|
||||
<span v-if="workOrderBoardData" >{{workOrderBoardData.workOrderId}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item content-class-name="my-content1">
|
||||
<template slot="label">
|
||||
工单位置
|
||||
</template>
|
||||
<span v-if="workOrderBoardData">{{` ${workOrderBoardData.workOrderIndex} / ${workOrderBoardData.workOrderDayListCount} `}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item content-class-name="my-content1">
|
||||
<template slot="label">
|
||||
<i class="el-icon-finished"></i>
|
||||
已完成
|
||||
</template>
|
||||
<span v-if="workOrderBoardData">{{workOrderBoardData.workOrderFinishNum}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item content-class-name="my-content1">
|
||||
<template slot="label">
|
||||
<i class="el-icon-close"></i>
|
||||
未完成
|
||||
</template>
|
||||
<span v-if="workOrderBoardData">{{workOrderBoardData.workOrderNotFinishNum}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item content-class-name="my-content1">
|
||||
<template slot="label">
|
||||
<i class="el-icon-printer"></i>
|
||||
待打
|
||||
</template>
|
||||
<span v-if="workOrderBoardData">{{` ${workOrderBoardData.workOrderFinishPackageNum} / ${workOrderBoardData.workOrderPackageCount} `}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item content-class-name="my-content1">
|
||||
<template slot="label">
|
||||
<i class="el-icon-printer"></i>
|
||||
未打
|
||||
</template>
|
||||
<span v-if="workOrderBoardData">{{workOrderBoardData.workOrderNotFinishPackageNum}}</span>
|
||||
</el-descriptions-item >
|
||||
<el-descriptions-item content-class-name="my-content2">
|
||||
<template slot="label">
|
||||
<i class="el-icon-tickets"></i>
|
||||
上个工单
|
||||
</template>
|
||||
<span v-if="workOrderBoardData.lastWorkOrderId">{{workOrderBoardData.lastWorkOrderId}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item content-class-name="my-content2">
|
||||
<template slot="label">
|
||||
<i class="el-icon-printer"></i>
|
||||
待打
|
||||
</template>
|
||||
<span v-if="workOrderBoardData.lastWorkOrderId">{{` ${workOrderBoardData.lastWorkOrderFinishPackageNum} / ${workOrderBoardData.lastWorkOrderPackageCount} `}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item content-class-name="my-content2">
|
||||
<template slot="label">
|
||||
<i class="el-icon-printer"></i>
|
||||
未打
|
||||
</template>
|
||||
<span v-if="workOrderBoardData.lastWorkOrderId">{{workOrderBoardData.lastWorkOrderNotFinishPackageNum}}</span>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item content-class-name="my-content3">
|
||||
<template slot="label">
|
||||
<i class="el-icon-time"></i>
|
||||
更新时间
|
||||
</template>
|
||||
<span>{{workOrderBoardData.updatedTime}}</span>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-card>
|
||||
</div>
|
||||
<el-dialog title="修改" :visible.sync="DMLdialog.visiable" width="600px" append-to-body>
|
||||
<el-input-number v-model="toUpdateNum" label="修改"></el-input-number>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
@@ -531,6 +618,11 @@
|
||||
generateQualityStatisticsTable,
|
||||
|
||||
} from '@/api/qualityManagement/thirtyFQC.js';
|
||||
import {
|
||||
CheckPackageWorkOrderStatus,
|
||||
CheckPackageWorkOrderInListStatus,
|
||||
GetWorkOrderBoardData
|
||||
} from '@/api/qualityManagement/commonFQC.js';
|
||||
import {
|
||||
GetQcQualityStatisticsFirstStartTime,
|
||||
} from '@/api/qualityManagement/firstFQC.js'
|
||||
@@ -565,6 +657,9 @@
|
||||
},
|
||||
// 工单开始时间
|
||||
workOrderStartTime: "",
|
||||
workOrderStatus: -1,
|
||||
workOrderInListStatus: -1,
|
||||
workOrderBoardData: {},
|
||||
toUpdateNum: 0, //弹窗更新值
|
||||
toname: '',
|
||||
toindex: 0, //索引
|
||||
@@ -576,26 +671,16 @@
|
||||
created() {
|
||||
this.initMqtt();
|
||||
this.getcurrentWorkorder()
|
||||
|
||||
// this.startTimer()
|
||||
this.startTimer()
|
||||
},
|
||||
mounted() {},
|
||||
watch: {
|
||||
// 工单变动
|
||||
'CurrentWorkorder.clientWorkorder'(newValue, oldValue) {
|
||||
this.showBigImageView();
|
||||
if (newValue == null) {
|
||||
this.workOrderStartTime = "";
|
||||
return;
|
||||
}
|
||||
const data = {
|
||||
workOrderId: newValue
|
||||
}
|
||||
GetQcQualityStatisticsFirstStartTime(data).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.workOrderStartTime = res.data;
|
||||
}
|
||||
})
|
||||
this.getWorkOrderStartTime(newValue);
|
||||
this.getWorkOrderList(newValue);
|
||||
this.handlerSyncDataBoard(newValue);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1008,9 +1093,9 @@
|
||||
this.CurrentWorkorder.previousNumber = res.data
|
||||
}
|
||||
})
|
||||
|
||||
this.handlerSyncDataBoard(this.CurrentWorkorder.clientWorkorder);
|
||||
//this.getcurrentWorkorder()
|
||||
}, 4000)
|
||||
}, 5000)
|
||||
},
|
||||
stopTimer() {
|
||||
clearInterval(this.timer)
|
||||
@@ -1144,6 +1229,58 @@
|
||||
})
|
||||
|
||||
},
|
||||
// 获取开始时间
|
||||
getWorkOrderStartTime(workOrderId) {
|
||||
if (workOrderId == null) {
|
||||
this.workOrderStartTime = "";
|
||||
return;
|
||||
}
|
||||
const data = {
|
||||
workOrderId: workOrderId
|
||||
}
|
||||
GetQcQualityStatisticsFirstStartTime(data).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.workOrderStartTime = res.data;
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取工单在工单列表中的状态
|
||||
getWorkOrderList(workOrderId) {
|
||||
if (workOrderId == null) {
|
||||
this.workOrderInListStatus = -1;
|
||||
return;
|
||||
}
|
||||
const queryData = {
|
||||
workOrderId: workOrderId
|
||||
}
|
||||
CheckPackageWorkOrderInListStatus(queryData).then(res => {
|
||||
if (res.code === 200) {
|
||||
this.workOrderInListStatus = res.data;
|
||||
}
|
||||
})
|
||||
},
|
||||
// 数据看板同步
|
||||
handlerSyncDataBoard(workOrderId) {
|
||||
let queryData = {
|
||||
workOrderId: workOrderId
|
||||
}
|
||||
if (workOrderId === null || workOrderId === undefined) {
|
||||
queryData.workOrderId = this.CurrentWorkorder.clientWorkorder
|
||||
}
|
||||
if (queryData.workOrderId === null || workOrderId === undefined) {
|
||||
this.workOrderBoardData = {};
|
||||
return;
|
||||
}
|
||||
GetWorkOrderBoardData(queryData).then(res => {
|
||||
if (res.code === 200) {
|
||||
if (res.data === null) {
|
||||
this.workOrderBoardData = {};
|
||||
return;
|
||||
}
|
||||
this.workOrderBoardData = res.data;
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
// 退出后关闭计时器
|
||||
beforeDestroy() {
|
||||
@@ -1156,6 +1293,15 @@
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.my-content1{
|
||||
background: #f0f9eb;
|
||||
}
|
||||
.my-content2{
|
||||
background: #f4f4f5;
|
||||
}
|
||||
.my-content3{
|
||||
background: #d9ecff;
|
||||
}
|
||||
.dataStatistics {
|
||||
.title {
|
||||
font-size: 1.2rem;
|
||||
|
||||
Reference in New Issue
Block a user