From 4395c4b2256bef5f8b646e487637f4c91a4e7021 Mon Sep 17 00:00:00 2001 From: weizong song Date: Thu, 13 Aug 2026 08:22:12 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E7=AE=97=E5=A1=AB=E6=8A=A5=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E8=BF=AD=E4=BB=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/budget/leadDepartment.js | 16 ++++ src/router/index.js | 13 ++- .../components/BudgetSubmissionForm.vue | 2 +- .../LeadDepartmentSummaryDetail.vue | 27 +++++++ .../components/LeadDepartmentSummaryForm.vue | 6 +- .../components/ProjectDetailsView.vue | 6 +- .../collection/departmentSubmission.vue | 19 +++-- src/views/budget/collection/package.vue | 80 ++++++++++++++++++- src/views/budget/departmentReview/index.vue | 57 ++++++++++--- 9 files changed, 199 insertions(+), 27 deletions(-) create mode 100644 src/views/budget/collection/components/LeadDepartmentSummaryDetail.vue diff --git a/src/api/budget/leadDepartment.js b/src/api/budget/leadDepartment.js index 77dbc50..0c5d6f9 100644 --- a/src/api/budget/leadDepartment.js +++ b/src/api/budget/leadDepartment.js @@ -114,6 +114,14 @@ export function reviewDepartmentSubmission(submissionId, data) { }) } +export function reviewDepartmentSubmissionByManager(submissionId, data) { + return request({ + url: `/api/admin/department-submissions/${submissionId}/manager-review`, + method: 'post', + data + }) +} + export function getDepartmentSubmissions(params = {}) { return request({ url: '/api/admin/department-submissions', @@ -122,6 +130,14 @@ export function getDepartmentSubmissions(params = {}) { }) } +export function getManagerReviewDepartmentSubmissions(params = {}) { + return request({ + url: '/api/admin/department-submissions/manager-review-list', + method: 'get', + params + }) +} + /** * 编辑第二层预算包(包含子项管理) * @param {Number} id 预算包ID diff --git a/src/router/index.js b/src/router/index.js index 5ebee7d..2c0d3bb 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -119,12 +119,23 @@ export const constantRoutes = [ icon: 's-order' } }, + { + path: 'manager-review', + name: 'DepartmentManagerReview', + component: () => import('@/views/budget/departmentReview/index'), + props: { reviewStage: 'manager' }, + meta: { + title: '科室负责人审核', + icon: 's-check' + } + }, { path: 'department-review', name: 'DepartmentReview', component: () => import('@/views/budget/departmentReview/index'), + props: { reviewStage: 'leader' }, meta: { - title: '执行科室分解审核', + title: '分管领导审核', icon: 's-check' } } diff --git a/src/views/budget/collection/components/BudgetSubmissionForm.vue b/src/views/budget/collection/components/BudgetSubmissionForm.vue index 4e7abbb..a592426 100644 --- a/src/views/budget/collection/components/BudgetSubmissionForm.vue +++ b/src/views/budget/collection/components/BudgetSubmissionForm.vue @@ -1134,7 +1134,7 @@ export default { ? this.packageData.submission.status : this.packageData.submission_status - return !this.isViewMode && !(this.mode === 'edit' && currentStatus === 'submitted') + return !this.isViewMode && !(this.mode === 'edit' && currentStatus !== 'draft') }, allocatedAmountNum() { diff --git a/src/views/budget/collection/components/LeadDepartmentSummaryDetail.vue b/src/views/budget/collection/components/LeadDepartmentSummaryDetail.vue new file mode 100644 index 0000000..0b8bb5b --- /dev/null +++ b/src/views/budget/collection/components/LeadDepartmentSummaryDetail.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/src/views/budget/collection/components/LeadDepartmentSummaryForm.vue b/src/views/budget/collection/components/LeadDepartmentSummaryForm.vue index cb078cf..b6d139f 100644 --- a/src/views/budget/collection/components/LeadDepartmentSummaryForm.vue +++ b/src/views/budget/collection/components/LeadDepartmentSummaryForm.vue @@ -1802,6 +1802,7 @@ export default { const typeMap = { pending: 'warning', submitted: 'primary', + manager_approved: 'primary', draft: 'warning', approved: 'success' } @@ -1811,9 +1812,10 @@ export default { getStatusText(status) { const textMap = { pending: '待提交', - submitted: '已提交', + submitted: '待科室负责人审核', + manager_approved: '待分管领导审核', draft: '已退回', - approved: '已确认' + approved: '终审通过' } return textMap[status] || '未知' }, diff --git a/src/views/budget/collection/components/ProjectDetailsView.vue b/src/views/budget/collection/components/ProjectDetailsView.vue index 02efd95..bb6f7ca 100644 --- a/src/views/budget/collection/components/ProjectDetailsView.vue +++ b/src/views/budget/collection/components/ProjectDetailsView.vue @@ -200,6 +200,7 @@ export default { const statusMap = { 'draft': 'info', 'submitted': 'warning', + 'manager_approved': 'primary', 'approved': 'success', 'rejected': 'danger' } @@ -212,8 +213,9 @@ export default { const statusMap = { 'draft': '草稿', - 'submitted': '已提交', - 'approved': '已通过', + 'submitted': '待科室负责人审核', + 'manager_approved': '待分管领导审核', + 'approved': '终审通过', 'rejected': '已拒绝' } return statusMap[submission.status] || '未知' diff --git a/src/views/budget/collection/departmentSubmission.vue b/src/views/budget/collection/departmentSubmission.vue index 01e7415..1254401 100644 --- a/src/views/budget/collection/departmentSubmission.vue +++ b/src/views/budget/collection/departmentSubmission.vue @@ -30,8 +30,9 @@ > - - + + +
@@ -123,7 +124,7 @@