feat(工单管理): 添加工单状态更新功能并优化界面显示
- 新增UpdateWorkOrderStatus API用于更新工单状态 - 在工单表格中添加状态列显示已完成标签 - 简化状态更新逻辑,仅传递必要参数 - 优化表格布局和样式
This commit is contained in:
@@ -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,
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 生成工作工单
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user