feat(wms): 新增部门管理模块并重构审批流程

- 新增部门管理模块,包括部门树形结构的增删改查功能
- 重构审批流程,使用任务审批模式替代原有简单审批
- 调整请假和外出申请页面,适配新的审批流程
- 移除不必要的审批部门显示和申请类型筛选
- 更新状态显示逻辑,支持多级审批状态展示
This commit is contained in:
砂糖
2026-03-02 15:58:15 +08:00
parent 584839ec67
commit dabcc61174
6 changed files with 521 additions and 55 deletions

View File

@@ -7,7 +7,7 @@
<!-- <h4>筛选条件</h4> -->
<!-- 申请类型自定义选项卡替代el-tabs -->
<div class="custom-tabs">
<!-- <div class="custom-tabs">
<div class="custom-tabs-header">申请类型</div>
<div class="custom-tabs-nav">
<div
@@ -32,7 +32,7 @@
外出
</div>
</div>
</div>
</div> -->
<!-- 审批状态自定义选项卡替代el-tabs -->
<div class="custom-tabs">
@@ -99,7 +99,7 @@
{{ getApplyTypeText(scope.row.applyType) }}
</template>
</el-table-column>
<el-table-column prop="applicantDeptName" label="审批部门" align="center" show-overflow-tooltip/>
<!-- <el-table-column prop="applicantDeptName" label="审批部门" align="center" show-overflow-tooltip/> -->
<el-table-column prop="startTime" label="开始时间" align="center">
<template slot-scope="scope">
{{ scope.row.startTime ? formatTime(scope.row.startTime) : '-' }}
@@ -110,10 +110,10 @@
{{ scope.row.endTime ? formatTime(scope.row.endTime) : '-' }}
</template>
</el-table-column>
<el-table-column prop="approvalStatus" label="审批状态" align="center">
<el-table-column prop="taskStatus" label="审批状态" align="center">
<template slot-scope="scope">
<el-tag :type="getStatusTagType(scope.row.approvalStatus)">
{{ getStatusText(scope.row.approvalStatus) }}
<el-tag :type="getStatusTagType(scope.row.taskStatus)">
{{ getStatusText(scope.row.taskStatus) }}
</el-tag>
</template>
</el-table-column>
@@ -207,7 +207,7 @@
</template>
<script>
import { listApproval, updateApproval } from '@/api/wms/approval'
import { listApprovalTask, rejectApprovalTask, resolveApprovalTask } from '@/api/wms/approvalTask'
export default {
name: 'TodoList',
@@ -234,6 +234,9 @@ export default {
computed: {
nickName() {
return this.$store.getters.nickName
},
userId() {
return this.$store.getters.id
}
},
created() {
@@ -247,17 +250,19 @@ export default {
// 拼接请求参数新增approveName
const requestParams = {
...this.queryParams,
approveName: this.nickName
approverId: this.userId,
}
listApproval(requestParams)
listApprovalTask(requestParams)
.then((res) => {
this.todoList = res.rows.map((item) => {
return {
approvalStatus: item.approval.approvalStatus,
taskStatus: item.task.taskStatus,
applyId: item.approval.applyId,
approvalId: item.approval.approvalId,
applyType: item.approval.applyType,
approverName: item.approval.approverName,
taskId: item.task.taskId,
...item.detail, // 合并请假/外出的详情字段
}
})
@@ -322,11 +327,8 @@ export default {
try {
const approvalTime = this.parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}')
// 这里替换为你的审批接口调用
await updateApproval({
approvalId: row.approvalId,
approvalStatus: '已同意',
approvalTime: approvalTime,
})
console.log(row)
await resolveApprovalTask(row.taskId)
this.$message.success('审批通过成功!')
this.getTodoList() // 重新查询列表
} catch (err) {
@@ -346,13 +348,11 @@ export default {
}).then(async ({ value }) => {
this.buttonLoading = true
try {
console.log(row)
const approvalTime = this.parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}')
// 这里替换为你的驳回接口调用
await updateApproval({
approvalId: row.approvalId,
approvalStatus: '已驳回',
approvalTime: approvalTime,
})
await rejectApprovalTask(row.taskId)
console.log(row.taskId)
this.$message.success('驳回成功!')
this.getTodoList() // 重新查询列表
} catch (err) {
@@ -372,10 +372,10 @@ export default {
// 获取审批状态对应的标签类型
getStatusTagType(status) {
const typeMap = {
'待审批': 'warning',
'已同意': 'success',
'已驳回': 'danger',
'已撤销': 'info',
'pending': 'warning',
'approved': 'success',
'rejected': 'danger',
'withdrawn': 'info',
}
return typeMap[status] || 'default'
},
@@ -383,10 +383,10 @@ export default {
// 获取审批状态的中文文本
getStatusText(status) {
const textMap = {
'待审批': '待审批',
'已同意': '已同意',
'已驳回': '已驳回',
'已撤销': '已撤销',
'pending': '待审批',
'approved': '已同意',
'rejected': '已驳回',
'withdrawn': '已撤销',
}
return textMap[status] || '未知状态'
},