feat(工单管理): 添加工单状态更新功能并优化界面显示

- 新增UpdateWorkOrderStatus API用于更新工单状态
- 在工单表格中添加状态列显示已完成标签
- 简化状态更新逻辑,仅传递必要参数
- 优化表格布局和样式
This commit is contained in:
2025-09-16 09:45:29 +08:00
parent 7ca0c2721c
commit 6f5cf9c333
2 changed files with 38 additions and 56 deletions

View File

@@ -75,6 +75,14 @@ export function updateSort2(query) {
params: query,
})
}
// 更新工单状态 -id -status
export function UpdateWorkOrderStatus(query) {
return request({
url: '/mes/pro/workorder_v2/UpdateWorkOrderStatus',
method: 'get',
params: query,
})
}
// 生成工作工单

View File

@@ -23,17 +23,9 @@
<el-button type="primary" icon="el-icon-search" @click="handleClick">搜索</el-button>
</el-form>
</div>
<vxe-table
border
show-overflow
ref="xTable"
v-loading="loading_1"
:cell-style="rowClassName"
height="800"
:row-config="{ isHover: true, useKey: true }"
:column-config="{ useKey: true, resizable: true }"
:data="workorder_table_data"
>
<vxe-table border show-overflow ref="xTable" v-loading="loading_1" :cell-style="rowClassName" height="800"
:row-config="{ isHover: true, useKey: true }" :column-config="{ useKey: true, resizable: true }"
:data="workorder_table_data">
<vxe-column type="seq" width="60"></vxe-column>
<vxe-column field="clientWorkorder" title="工单号" width="130" type="html"></vxe-column>
<vxe-column field="blankNumber" title="毛坯号" type="html"></vxe-column>
@@ -48,6 +40,11 @@
<vxe-column field="cylinderNumber" title="双组号缸号" type="html"></vxe-column>
<vxe-column field="remark1" title="备注1" type="html"></vxe-column>
<vxe-column field="remark2" title="备注2" type="html"></vxe-column>
<vxe-column field="remark3" title="状态" type="html">
<template #default="{ row }">
<el-tag size="mini" v-if="row.status === 2" type="success">已完成</el-tag>
</template>
</vxe-column>
<vxe-column title="操作" width="150" show-overflow>
<template #default="{ row }">
<div v-show="row.remark3 == '是'">
@@ -55,25 +52,22 @@
<vxe-button size="mini" mode="text" status="danger" content="取消上线" @click="cancelitem(row)"></vxe-button>
</div>
<div v-if="row.remark2 && row.remark2.includes('调试')">
<vxe-button v-if="row.status != 2" size="mini" mode="text" status="primary" content="完成调试" @click="doCompletion(row)"></vxe-button>
<vxe-button v-if="row.status === 2" size="mini" mode="text" status="danger" content="重新调试" @click="resetCompletion(row)"></vxe-button>
<vxe-button v-if="row.status != 2" size="mini" mode="text" status="primary" content="完成调试"
@click="doCompletion(row)"></vxe-button>
<vxe-button v-if="row.status === 2" size="mini" mode="text" status="danger" content="重新调试"
@click="resetCompletion(row)"></vxe-button>
</div>
</template>
</vxe-column>
</vxe-table>
<pagination
v-show="pagination.total > 0"
:total="pagination.total"
:page.sync="pagination.pageNum"
:limit.sync="pagination.pageSize"
@pagination="getList"
/>
<pagination v-show="pagination.total > 0" :total="pagination.total" :page.sync="pagination.pageNum"
:limit.sync="pagination.pageSize" @pagination="getList" />
</div>
</template>
<script>
import { getWorkoderList, startOnline, cancelOnline } from '@/api/productManagement/workorder_online.js'
import { updateworkorder } from '@/api/productManagement/workoder_v2.js'
import { UpdateWorkOrderStatus } from '@/api/productManagement/workoder_v2.js'
export default {
name: 'workorder_online',
@@ -151,26 +145,15 @@ export default {
this.$message.info('动作取消')
})
},
// 完成调试设置status为2
doCompletion(row) {
this.$modal
.confirm('是否确认完成调试工单名称为"' + row.productDescription + '"的数据项?')
.then(() => {
// 深拷贝行数据并设置状态为2
const updateData = { ...row, status: 2 };
// 转换数值类型
updateData.vehicleNumber = Number(updateData.vehicleNumber) || 0;
updateData.hangNumber = Number(updateData.hangNumber) || 0;
updateData.previousNumber = Number(updateData.previousNumber) || 0;
updateData.year = Number(updateData.year) || 0;
updateData.week = Number(updateData.week) || 0;
updateData.date = Number(updateData.date) || 0;
updateData.sort = Number(updateData.sort) || 0;
const updateData = { id: row.id, status: 2 };
// 调用updateworkorder方法更新工单状态
updateworkorder(updateData).then((res) => {
UpdateWorkOrderStatus(updateData).then((res) => {
if (res.code === 200) {
this.$message.success('调试完成');
this.getList(); // 重新获取列表数据
@@ -186,28 +169,17 @@ export default {
this.$message.info('动作取消')
})
},
// 重新调试设置status为0
resetCompletion(row) {
this.$modal
.confirm('是否确认重新调试工单名称为"' + row.productDescription + '"的数据项?')
.then(() => {
// 深拷贝行数据并设置状态为1
const updateData = { ...row, status: 0 };
// 转换数值类型
updateData.vehicleNumber = Number(updateData.vehicleNumber) || 0;
updateData.hangNumber = Number(updateData.hangNumber) || 0;
updateData.previousNumber = Number(updateData.previousNumber) || 0;
updateData.year = Number(updateData.year) || 0;
updateData.week = Number(updateData.week) || 0;
updateData.date = Number(updateData.date) || 0;
updateData.sort = Number(updateData.sort) || 0;
const updateData = { id: row.id, status: 0 };
// 调用updateworkorder方法更新工单状态
updateworkorder(updateData).then((res) => {
UpdateWorkOrderStatus(updateData).then((res) => {
if (res.code === 200) {
this.$message.success('重新调试设置成功');
this.$message.success('重新调试成功');
this.getList(); // 重新获取列表数据
} else {
this.$message.error(res.msg || '操作失败,请重试');
@@ -221,7 +193,7 @@ export default {
this.$message.info('动作取消')
})
},
//todo 更改单元格格式
rowClassName(item) {
if (item.row.status === 1) {
@@ -229,11 +201,11 @@ export default {
backgroundColor: '#FFFF00',
}
}
if (item.row.status === 2) {
return {
backgroundColor: '#55ff00',
}
}
if (item.row.status === 2) {
return {
backgroundColor: '#55ff00',
}
}
return null
},
},
@@ -245,9 +217,11 @@ export default {
cursor: pointer;
color: #93ff40;
}
.el-icon-arrow-down {
font-size: 0.5rem;
}
.sortable-ghost {
opacity: 0.4;
background-color: #409eff;