feat(审批): 添加撤回审批功能并优化审批状态显示
- 在approval.js中添加withdrawApproval API方法 - 在leave.vue和goout.vue中启用撤回按钮并调用新API - 在todo/index.vue中优化审批状态显示逻辑
This commit is contained in:
@@ -40,39 +40,32 @@
|
||||
<div class="custom-tabs-nav">
|
||||
<div
|
||||
class="custom-tabs-item"
|
||||
:class="{ active: queryParams.approvalStatus === undefined || queryParams.approvalStatus === '' }"
|
||||
@click="handleTabClick('approvalStatus', '')"
|
||||
:class="{ active: queryParams.taskStatus === undefined || queryParams.taskStatus === '' }"
|
||||
@click="handleTabClick('taskStatus', '')"
|
||||
>
|
||||
全部
|
||||
</div>
|
||||
<div
|
||||
class="custom-tabs-item"
|
||||
:class="{ active: queryParams.approvalStatus === '待审批' }"
|
||||
@click="handleTabClick('approvalStatus', '待审批')"
|
||||
:class="{ active: queryParams.taskStatus === 'pending' }"
|
||||
@click="handleTabClick('taskStatus', 'pending')"
|
||||
>
|
||||
待审批
|
||||
</div>
|
||||
<div
|
||||
class="custom-tabs-item"
|
||||
:class="{ active: queryParams.approvalStatus === '已同意' }"
|
||||
@click="handleTabClick('approvalStatus', '已同意')"
|
||||
:class="{ active: queryParams.taskStatus === 'approved' }"
|
||||
@click="handleTabClick('taskStatus', 'approved')"
|
||||
>
|
||||
已同意
|
||||
</div>
|
||||
<div
|
||||
class="custom-tabs-item"
|
||||
:class="{ active: queryParams.approvalStatus === '已驳回' }"
|
||||
@click="handleTabClick('approvalStatus', '已驳回')"
|
||||
:class="{ active: queryParams.taskStatus === 'rejected' }"
|
||||
@click="handleTabClick('taskStatus', 'rejected')"
|
||||
>
|
||||
已驳回
|
||||
</div>
|
||||
<div
|
||||
class="custom-tabs-item"
|
||||
:class="{ active: queryParams.approvalStatus === '已撤销' }"
|
||||
@click="handleTabClick('approvalStatus', '已撤销')"
|
||||
>
|
||||
已撤回
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -110,6 +103,13 @@
|
||||
{{ scope.row.endTime ? formatTime(scope.row.endTime) : '-' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="taskStatus" label="整体状态" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-tag :type="getInstStatusTagType(scope.row.approvalStatus)">
|
||||
{{ getInstStatusText(scope.row.approvalStatus) }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="taskStatus" label="审批状态" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-tag :type="getStatusTagType(scope.row.taskStatus)">
|
||||
@@ -127,7 +127,7 @@
|
||||
详情
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="scope.row.approvalStatus === '待审批'"
|
||||
v-if="scope.row.taskStatus === 'pending'"
|
||||
size="small"
|
||||
icon="el-icon-check"
|
||||
@click="handleApprove(scope.row)"
|
||||
@@ -136,7 +136,7 @@
|
||||
同意
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="scope.row.approvalStatus === '待审批'"
|
||||
v-if="scope.row.taskStatus === 'pending'"
|
||||
size="small"
|
||||
icon="el-icon-close"
|
||||
@click="handleReject(scope.row)"
|
||||
@@ -369,6 +369,27 @@ export default {
|
||||
return this.parseTime(time, '{y}-{m}-{d} {h}')
|
||||
},
|
||||
|
||||
// 获取审批状态对应的标签类型
|
||||
getInstStatusTagType(status) {
|
||||
const typeMap = {
|
||||
'待审批': 'warning',
|
||||
'已同意': 'success',
|
||||
'已驳回': 'danger',
|
||||
'已撤销': 'info',
|
||||
}
|
||||
return typeMap[status] || 'default'
|
||||
},
|
||||
// 获取审批状态的中文文本
|
||||
getInstStatusText(status) {
|
||||
const textMap = {
|
||||
'待审批': '待审批',
|
||||
'已同意': '已同意',
|
||||
'已驳回': '已驳回',
|
||||
'已撤销': '已撤销',
|
||||
}
|
||||
return textMap[status] || '未知状态'
|
||||
},
|
||||
|
||||
// 获取审批状态对应的标签类型
|
||||
getStatusTagType(status) {
|
||||
const typeMap = {
|
||||
|
||||
Reference in New Issue
Block a user