feat(review-meeting): 项目列表操作改为下拉并补充议程分类
parent
2566d1e311
commit
f4c04a6c69
|
|
@ -25,7 +25,13 @@ export interface ReviewMeetingProjectRespVO {
|
|||
aiSummaryUpdatedTime?: string
|
||||
}
|
||||
|
||||
export const REVIEW_AGENDA_CATEGORY_OPTIONS = ['项目申报论证', '预验收', '项目终验'] as const
|
||||
export const REVIEW_AGENDA_CATEGORY_OPTIONS = [
|
||||
'项目申报论证',
|
||||
'软件申购论证',
|
||||
'软件报废论证',
|
||||
'预验收',
|
||||
'项目终验'
|
||||
] as const
|
||||
export type ReviewAgendaCategory = (typeof REVIEW_AGENDA_CATEGORY_OPTIONS)[number]
|
||||
|
||||
export interface ReviewMeetingProjectSeqUpdateReqVO {
|
||||
|
|
|
|||
|
|
@ -254,6 +254,20 @@ const PHASE_MAPPING: Record<string, Record<string, 'before' | 'after'>> = {
|
|||
PROJECT_EXPERT_OPINION_SIGNED: 'after',
|
||||
PROJECT_RECTIFICATION_NOTICE: 'after'
|
||||
},
|
||||
软件申购论证: {
|
||||
PROJECT_ARGUMENT_DOC: 'before',
|
||||
PROJECT_DEFENSE_PPT: 'before',
|
||||
PROJECT_DRAFT_EXPERT_OPINION: 'before',
|
||||
PROJECT_EXPERT_OPINION_SIGNED: 'after',
|
||||
PROJECT_RECTIFICATION_NOTICE: 'after'
|
||||
},
|
||||
软件报废论证: {
|
||||
PROJECT_ARGUMENT_DOC: 'before',
|
||||
PROJECT_DEFENSE_PPT: 'before',
|
||||
PROJECT_DRAFT_EXPERT_OPINION: 'before',
|
||||
PROJECT_EXPERT_OPINION_SIGNED: 'after',
|
||||
PROJECT_RECTIFICATION_NOTICE: 'after'
|
||||
},
|
||||
项目立项: {
|
||||
PROJECT_ARGUMENT_DOC: 'before',
|
||||
PROJECT_DEFENSE_PPT: 'before',
|
||||
|
|
|
|||
|
|
@ -181,11 +181,18 @@
|
|||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="260" align="center" :fixed="useFixedActionColumn ? 'right' : false">
|
||||
<el-table-column label="操作" width="150" align="center" :fixed="useFixedActionColumn ? 'right' : false">
|
||||
<template #default="{ row }">
|
||||
<div class="op-group">
|
||||
<a class="op-link" @click="goToDetail(row)">上传项目资料</a>
|
||||
<a class="op-link op-danger" @click="handleDelete(row.id)">删除</a>
|
||||
<div class="op-group compact">
|
||||
<el-dropdown trigger="click" @command="(command: string) => handleActionCommand(row, command)">
|
||||
<span class="op-dropdown-trigger">更多</span>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item command="upload">上传项目资料</el-dropdown-item>
|
||||
<el-dropdown-item command="delete" class="danger-dropdown-item">删除</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
|
@ -457,6 +464,16 @@ const handleDelete = async (id: number) => {
|
|||
getList()
|
||||
}
|
||||
|
||||
const handleActionCommand = (row: ReviewMeetingProjectRespVO, command: string) => {
|
||||
if (command === 'upload') {
|
||||
goToDetail(row)
|
||||
return
|
||||
}
|
||||
if (command === 'delete') {
|
||||
handleDelete(row.id)
|
||||
}
|
||||
}
|
||||
|
||||
const handleSelectionChange = (rows: ReviewMeetingProjectRespVO[]) => {
|
||||
selectedRows.value = rows
|
||||
}
|
||||
|
|
@ -799,6 +816,40 @@ onBeforeUnmount(() => {
|
|||
justify-content: center;
|
||||
gap: 6px;
|
||||
}
|
||||
.op-group.compact {
|
||||
gap: 0;
|
||||
}
|
||||
.op-dropdown-trigger {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 5px;
|
||||
color: #295abc;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
line-height: 1;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
.op-dropdown-trigger::after {
|
||||
content: '';
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
margin-top: -3px;
|
||||
border-right: 1.5px solid currentColor;
|
||||
border-bottom: 1.5px solid currentColor;
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
.op-dropdown-trigger:hover {
|
||||
color: #1f4ca5;
|
||||
text-decoration: underline;
|
||||
}
|
||||
:deep(.el-dropdown-menu__item.danger-dropdown-item) {
|
||||
color: #d63b42;
|
||||
}
|
||||
:deep(.el-dropdown-menu__item.danger-dropdown-item:not(.is-disabled):focus) {
|
||||
color: #c22e35;
|
||||
background-color: rgba(252, 79, 84, 0.12);
|
||||
}
|
||||
|
||||
/* ── 表格 ── */
|
||||
:deep(.review-table .el-table__header-wrapper th) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue