feat(工单管理): 添加工单状态更新功能并优化界面显示
- 新增UpdateWorkOrderStatus API用于更新工单状态 - 在工单表格中添加状态列显示已完成标签 - 简化状态更新逻辑,仅传递必要参数 - 优化表格布局和样式
This commit is contained in:
@@ -75,6 +75,14 @@ export function updateSort2(query) {
|
|||||||
params: 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-button type="primary" icon="el-icon-search" @click="handleClick">搜索</el-button>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<vxe-table
|
<vxe-table border show-overflow ref="xTable" v-loading="loading_1" :cell-style="rowClassName" height="800"
|
||||||
border
|
:row-config="{ isHover: true, useKey: true }" :column-config="{ useKey: true, resizable: true }"
|
||||||
show-overflow
|
:data="workorder_table_data">
|
||||||
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 type="seq" width="60"></vxe-column>
|
||||||
<vxe-column field="clientWorkorder" title="工单号" width="130" type="html"></vxe-column>
|
<vxe-column field="clientWorkorder" title="工单号" width="130" type="html"></vxe-column>
|
||||||
<vxe-column field="blankNumber" title="毛坯号" 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="cylinderNumber" title="双组号缸号" type="html"></vxe-column>
|
||||||
<vxe-column field="remark1" title="备注1" 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="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>
|
<vxe-column title="操作" width="150" show-overflow>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<div v-show="row.remark3 == '是'">
|
<div v-show="row.remark3 == '是'">
|
||||||
@@ -55,25 +52,22 @@
|
|||||||
<vxe-button size="mini" mode="text" status="danger" content="取消上线" @click="cancelitem(row)"></vxe-button>
|
<vxe-button size="mini" mode="text" status="danger" content="取消上线" @click="cancelitem(row)"></vxe-button>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="row.remark2 && row.remark2.includes('调试')">
|
<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="primary" content="完成调试"
|
||||||
<vxe-button v-if="row.status === 2" size="mini" mode="text" status="danger" content="重新调试" @click="resetCompletion(row)"></vxe-button>
|
@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>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</vxe-column>
|
</vxe-column>
|
||||||
</vxe-table>
|
</vxe-table>
|
||||||
<pagination
|
<pagination v-show="pagination.total > 0" :total="pagination.total" :page.sync="pagination.pageNum"
|
||||||
v-show="pagination.total > 0"
|
:limit.sync="pagination.pageSize" @pagination="getList" />
|
||||||
:total="pagination.total"
|
|
||||||
:page.sync="pagination.pageNum"
|
|
||||||
:limit.sync="pagination.pageSize"
|
|
||||||
@pagination="getList"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getWorkoderList, startOnline, cancelOnline } from '@/api/productManagement/workorder_online.js'
|
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 {
|
export default {
|
||||||
name: 'workorder_online',
|
name: 'workorder_online',
|
||||||
@@ -151,26 +145,15 @@ export default {
|
|||||||
this.$message.info('动作取消')
|
this.$message.info('动作取消')
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
// 完成调试,设置status为2
|
// 完成调试,设置status为2
|
||||||
doCompletion(row) {
|
doCompletion(row) {
|
||||||
this.$modal
|
this.$modal
|
||||||
.confirm('是否确认完成调试工单名称为"' + row.productDescription + '"的数据项?')
|
.confirm('是否确认完成调试工单名称为"' + row.productDescription + '"的数据项?')
|
||||||
.then(() => {
|
.then(() => {
|
||||||
// 深拷贝行数据并设置状态为2
|
const updateData = { id: row.id, status: 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;
|
|
||||||
|
|
||||||
// 调用updateworkorder方法更新工单状态
|
// 调用updateworkorder方法更新工单状态
|
||||||
updateworkorder(updateData).then((res) => {
|
UpdateWorkOrderStatus(updateData).then((res) => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
this.$message.success('调试完成');
|
this.$message.success('调试完成');
|
||||||
this.getList(); // 重新获取列表数据
|
this.getList(); // 重新获取列表数据
|
||||||
@@ -186,28 +169,17 @@ export default {
|
|||||||
this.$message.info('动作取消')
|
this.$message.info('动作取消')
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
// 重新调试,设置status为0
|
// 重新调试,设置status为0
|
||||||
resetCompletion(row) {
|
resetCompletion(row) {
|
||||||
this.$modal
|
this.$modal
|
||||||
.confirm('是否确认重新调试工单名称为"' + row.productDescription + '"的数据项?')
|
.confirm('是否确认重新调试工单名称为"' + row.productDescription + '"的数据项?')
|
||||||
.then(() => {
|
.then(() => {
|
||||||
// 深拷贝行数据并设置状态为1
|
const updateData = { id: row.id, status: 0 };
|
||||||
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;
|
|
||||||
|
|
||||||
// 调用updateworkorder方法更新工单状态
|
// 调用updateworkorder方法更新工单状态
|
||||||
updateworkorder(updateData).then((res) => {
|
UpdateWorkOrderStatus(updateData).then((res) => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
this.$message.success('重新调试设置成功');
|
this.$message.success('重新调试成功');
|
||||||
this.getList(); // 重新获取列表数据
|
this.getList(); // 重新获取列表数据
|
||||||
} else {
|
} else {
|
||||||
this.$message.error(res.msg || '操作失败,请重试');
|
this.$message.error(res.msg || '操作失败,请重试');
|
||||||
@@ -221,7 +193,7 @@ export default {
|
|||||||
this.$message.info('动作取消')
|
this.$message.info('动作取消')
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
//todo 更改单元格格式
|
//todo 更改单元格格式
|
||||||
rowClassName(item) {
|
rowClassName(item) {
|
||||||
if (item.row.status === 1) {
|
if (item.row.status === 1) {
|
||||||
@@ -229,11 +201,11 @@ export default {
|
|||||||
backgroundColor: '#FFFF00',
|
backgroundColor: '#FFFF00',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (item.row.status === 2) {
|
if (item.row.status === 2) {
|
||||||
return {
|
return {
|
||||||
backgroundColor: '#55ff00',
|
backgroundColor: '#55ff00',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -245,9 +217,11 @@ export default {
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: #93ff40;
|
color: #93ff40;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-icon-arrow-down {
|
.el-icon-arrow-down {
|
||||||
font-size: 0.5rem;
|
font-size: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sortable-ghost {
|
.sortable-ghost {
|
||||||
opacity: 0.4;
|
opacity: 0.4;
|
||||||
background-color: #409eff;
|
background-color: #409eff;
|
||||||
|
|||||||
Reference in New Issue
Block a user