This commit is contained in:
2025-04-11 15:36:21 +08:00
parent 00e329c9a2
commit cba1cf7121

View File

@@ -15,20 +15,14 @@
<v-tabs-window v-model="tab">
<v-tabs-window-item value="工序报工">
<el-card v-if="formData.workorder" class="mt-4">
<v-text-field type="number" :label="processId === 10 ? '报工数' : '完成数'"
v-model="formData.finishNum"></v-text-field>
<v-text-field type="number" label="不良数"
v-model="formData.badNum"></v-text-field>
<v-text-field v-if="processId === 10" label="炉号"
v-model="formData.stoveCode"></v-text-field>
<v-text-field v-if="processId === 10" label="进料单"
v-model="formData.feedOrder"></v-text-field>
<v-text-field v-if="processId === 90" label="客户定单"
v-model="formData.customerOrder"></v-text-field>
<v-text-field type="number" :label="processId === 10 ? '报工数' : '完成数'" v-model="formData.finishNum"></v-text-field>
<v-text-field type="number" label="不良数" v-model="formData.badNum"></v-text-field>
<v-text-field v-if="processId === 10" label="炉号" v-model="formData.stoveCode"></v-text-field>
<v-text-field v-if="processId === 10" label="进料单" v-model="formData.feedOrder"></v-text-field>
<v-text-field v-if="processId === 90" label="客户定单" v-model="formData.customerOrder"></v-text-field>
<v-text-field label="作业员" v-model="formData.worker"></v-text-field>
<div class="d-flex justify-end">
<v-btn class="bg-blue-darken-1" @click="submit">{{ getButtonName()
}}</v-btn>
<v-btn class="bg-blue-darken-1" @click="submit">{{ getButtonName() }}</v-btn>
</div>
</el-card>
<el-row v-if="processId === 70 && formData.workorder" :gutter="5">
@@ -39,13 +33,14 @@
</div>
<el-row>
<el-col :span="2" v-for="(item, index) in value" :key="index">
<div class="click-box" @mousedown="handleStart($event, item)"
<div
class="click-box"
@mousedown="handleStart($event, item)"
@mouseup="handleEnd(item)"
@touchstart="handleStart($event, item)"
@touchend="handleEnd(item)">
<span class="click-title">{{ item.name }}</span>
<span class="click-num">{{ getClickItemNum(item)
}}</span>
<span class="click-num">{{ getClickItemNum(item) }}</span>
</div>
</el-col>
</el-row>
@@ -55,28 +50,23 @@
</v-tabs-window-item>
<v-tabs-window-item value="此工单工序记录">
<el-card v-if="formData.workorder" class="mt-4">
<TheWorkOrderProcessRecord :workorder="formData.workorder"
:processId="processId">
</TheWorkOrderProcessRecord>
<TheWorkOrderProcessRecord :workorder="formData.workorder" :processId="processId"> </TheWorkOrderProcessRecord>
</el-card>
</v-tabs-window-item>
<v-tabs-window-item value="此工序今日记录">
<el-card class="mt-4">
<TheDayAllProcessRecord :workorder="formData.workorder" :processId="processId">
</TheDayAllProcessRecord>
<TheDayAllProcessRecord :workorder="formData.workorder" :processId="processId"> </TheDayAllProcessRecord>
</el-card>
</v-tabs-window-item>
<v-tabs-window-item value="员工报工记录">
<el-card class="mt-4">
<ThePersonReportRecord :workorder="formData.workorder" :processId="processId"
@openMessage="showDialog">
<ThePersonReportRecord :workorder="formData.workorder" :processId="processId" @openMessage="showDialog">
</ThePersonReportRecord>
</el-card>
</v-tabs-window-item>
<v-tabs-window-item value="工单查看">
<el-card class="mt-4">
<TheWorkOrderList :workorder="formData.workorder" :processId="processId"
@chouseWorkorder="getFormData">
<TheWorkOrderList :workorder="formData.workorder" :processId="processId" @chouseWorkorder="getFormData">
</TheWorkOrderList>
</el-card>
</v-tabs-window-item>
@@ -87,8 +77,7 @@
</v-col>
<v-col cols="4">
<v-card color="blue-darken-4" class="right-content">
<v-select variant="solo-filled" v-model="processId" label="工序选择" :items="processOptions">
</v-select>
<v-select variant="solo-filled" v-model="processId" label="工序选择" :items="processOptions"> </v-select>
<scanInput @scanInput="handleScanInput"></scanInput>
<v-fade-transition>
<el-card v-if="formData.workorder" class="mt-4">
@@ -137,16 +126,14 @@
</v-row>
<!-- 反馈框 -->
<v-dialog v-model="dialog.show" width="auto">
<v-card :class="dialog.class" min-width="400" :prepend-icon="dialog.icon" :text="dialog.text"
:title="dialog.title">
<v-card :class="dialog.class" min-width="400" :prepend-icon="dialog.icon" :text="dialog.text" :title="dialog.title">
<template v-slot:actions>
<v-btn class="ms-auto" text="确认" @click="dialog.show = false"></v-btn>
</template>
</v-card>
</v-dialog>
<!-- 修改缺陷项 -->
<el-dialog class="dialogBox" v-model.sync="updateDialogShow" title="缺陷项修改" width="400px" append-to-body
:close-on-click-modal="false">
<el-dialog class="dialogBox" v-model.sync="updateDialogShow" title="缺陷项修改" width="400px" append-to-body :close-on-click-modal="false">
<el-form label-width="auto">
<el-form-item label="工单号">
<el-text class="number-text">{{ formData.workorder }}</el-text>
@@ -161,7 +148,7 @@
<template #footer>
<div class="dialog-footer">
<el-button @click="updateDialogShow = false">取消</el-button>
<button class="button-box" type="primary" @click="updateDefectNum"> 确认修改 </button>
<button class="button-box" type="primary" @click="updateDefectNum">确认修改</button>
</div>
</template>
</el-dialog>
@@ -169,7 +156,6 @@
</template>
<script setup>
const { proxy } = getCurrentInstance()
import * as ReportApi from '@/api/reportFlow/index'
import * as FQCApi from '@/api/reportFlow/fqc'
@@ -182,31 +168,31 @@ import TheWorkOrderList from './components/TheWorkOrderList.vue'
const processOptions = [
{
value: 10,
title: '物料领用',
title: '物料领用'
},
{
value: 20,
title: '机械加工',
title: '机械加工'
},
{
value: 30,
title: '中间检查',
title: '中间检查'
},
{
value: 40,
title: '手工研磨',
title: '手工研磨'
},
{
value: 50,
title: '机研磨',
title: '机研磨'
},
{
value: 60,
title: '精研磨',
title: '精研磨'
},
{
value: 70,
title: '入库检查',
title: '入库检查'
},
// {
// value: 80,
@@ -214,8 +200,8 @@ const processOptions = [
// },
{
value: 90,
title: '出货',
},
title: '出货'
}
]
const tab = ref('报工')
const processId = ref(10)
@@ -233,7 +219,6 @@ function getButtonName() {
} else {
return '确认报工'
}
}
const dialog = reactive({
show: false,
@@ -249,7 +234,7 @@ const formData = ref({
instructionDate: '',
workorderDate: '',
planNum: 0,
finishNum: 0,
finishNum: 0
// productionName: '产品名称',
// productionCode: '产品编码',
// unit: '单位',
@@ -278,17 +263,17 @@ function handleScanInput(val) {
function getFormData(workorder) {
const params = { workorder, processId: processId.value }
ReportApi.GetWorkOrderDetail(params).then(res => {
ReportApi.GetWorkOrderDetail(params).then((res) => {
if (res.code == 200) {
if (res.data) {
formData.value = res.data
GetProcessReportWorkDetail(workorder)
ReportApi.GetWorkOrderReportWorkList(params).then(res => {
ReportApi.GetWorkOrderReportWorkList(params).then((res) => {
if (res.code == 200) {
reportWorkerOrderList.value = res.data
}
})
FQCApi.SearchDefectList({ WorkOrder: workorder }).then(res => {
FQCApi.SearchDefectList({ WorkOrder: workorder }).then((res) => {
if (res.code === 200) {
// 初始化数据
clearGroupOptions()
@@ -310,16 +295,15 @@ function getFormData(workorder) {
// 获取此工序报工详情信息
function GetProcessReportWorkDetail(workorder) {
const params = { workorder, processId: processId.value }
ReportApi.GetProcessReportWorkDetail(params).then(res => {
ReportApi.GetProcessReportWorkDetail(params).then((res) => {
if (!res.data) {
formData.value.finishNum = formData.value.planNum ?? 20;
formData.value.badNum = 0;
formData.value.worker = '';
}
else {
formData.value.finishNum = res.data.finishNum ?? 20;
formData.value.badNum = res.data.badNum ?? 0;
formData.value.worker = res.data.worker;
formData.value.finishNum = formData.value.planNum ?? 20
formData.value.badNum = 0
formData.value.worker = ''
} else {
formData.value.finishNum = res.data.finishNum ?? 20
formData.value.badNum = res.data.badNum ?? 0
formData.value.worker = res.data.worker
if (formData.value.finishNum > 0) {
dialog.show = true
dialog.class = 'bg-yellow'
@@ -337,78 +321,63 @@ function processChange() {
}
function submit() {
proxy.$confirm('确定提交数据吗?').then(() => {
let params = {
workorder: formData.value.workorder,
processId: processId.value,
// 参数填写
bad_num: formData.value.badNum,
finish_num: formData.value.finishNum,
feed_order: formData.value.feedOrder,
stove_code: formData.value.stoveCode,
customer_order: formData.value.customerOrder,
process_operator: formData.value.worker
};
// 领料
if (processId.value === 10) {
ReportApi.FeedProcessReportwork(params).then(res => {
if (res.code == 200) {
dialog.show = true
dialog.class = 'bg-green'
dialog.title = '成功提示'
dialog.text = '领料成功'
}
})
}
// 出货
else if (processId.value === 90) {
ReportApi.ShipmentProcessReportwork(params).then(res => {
if (res.code == 200) {
//console.log(res);
if(res.data=="成功")
{
dialog.show = true
dialog.class = 'bg-green'
dialog.title = '成功提示'
dialog.text = '出货成功'
}
if(res.data=="采购订单号和工单号不匹配")
{
dialog.show = true
dialog.class = 'bg-amber'
dialog.title = '失败提示'
dialog.text = '采购订单号和工单号不匹配'
}
if(res.data=="出货数量超额")
{
dialog.show = true
dialog.class = 'bg-amber'
dialog.title = '失败提示'
dialog.text = '出货数量超额'
}
}
proxy
.$confirm('确定提交数据吗?')
.then(() => {
let params = {
workorder: formData.value.workorder,
processId: processId.value,
// 参数填写
bad_num: formData.value.badNum,
finish_num: formData.value.finishNum,
feed_order: formData.value.feedOrder,
stove_code: formData.value.stoveCode,
customer_order: formData.value.customerOrder,
process_operator: formData.value.worker
}
)
}
// 报工
else {
ReportApi.ProcessReportWork(params).then(res => {
if (res.code == 200) {
dialog.show = true
dialog.class = 'bg-green'
dialog.title = '成功提示'
dialog.text = '报工成功'
}
// 领料
if (processId.value === 10) {
ReportApi.FeedProcessReportwork(params).then((res) => {
if (res.code == 200) {
dialog.show = true
dialog.class = 'bg-green'
dialog.title = '成功提示'
dialog.text = '领料成功'
}
})
}
)
}
}).catch(err => {
})
// 出货
else if (processId.value === 90) {
ReportApi.ShipmentProcessReportwork(params).then((res) => {
if (res.code == 200) {
//console.log(res);
if (res.data == '成功') {
dialog.show = true
dialog.class = 'bg-green'
dialog.title = '成功提示'
dialog.text = '出货成功'
} else {
dialog.show = true
dialog.class = 'bg-amber'
dialog.title = '失败提示'
dialog.text = res.data
}
}
})
}
// 报工
else {
ReportApi.ProcessReportWork(params).then((res) => {
if (res.code == 200) {
dialog.show = true
dialog.class = 'bg-green'
dialog.title = '成功提示'
dialog.text = '报工成功'
}
})
}
})
.catch((err) => {})
}
function showDialog(dialogJson = {}) {
@@ -424,13 +393,13 @@ const checkName = ref('')
const qualityLoading = ref(false)
const qualityOptionsClear = ref([])
const qualityOptions = ref([])
function getDefectConfigData(qcType = "") {
function getDefectConfigData(qcType = '') {
qualityLoading.value = true
const params = {
status: 1,
qcType
}
FQCApi.getDefectConfig(params).then(res => {
FQCApi.getDefectConfig(params).then((res) => {
if (res.code == 200) {
if (res.data) {
const _groupList = getGroupOptions(res.data)
@@ -473,7 +442,7 @@ function setDefectNum(code, num) {
return false // 可选返回false表示未找到
}
getDefectConfigData("入库检查")
getDefectConfigData('入库检查')
/// ======================================================
/// ====================== 按钮操作 =====================
const isLongPress = ref(false)
@@ -534,7 +503,7 @@ function clickQualityIte(item) {
}
})
item.num = newNum
formData.value.badNum = (formData.value.badNum * 1) + 1
formData.value.badNum = formData.value.badNum * 1 + 1
}
// 长按弹出修改框
const updateDialogShow = ref(false)
@@ -621,7 +590,7 @@ function getClickItemNum(item) {
<style scoped>
.label {
color: #E6F4F1;
color: #e6f4f1;
margin-right: 10px;
}
@@ -679,7 +648,7 @@ function getClickItemNum(item) {
border-radius: 5%;
margin: 5px;
height: 100px;
background-color: #1B5E20;
background-color: #1b5e20;
display: flex;
flex-direction: column;
align-items: center;
@@ -724,4 +693,4 @@ function getClickItemNum(item) {
background: #0055ff;
color: white;
}
</style>
</style>