feat(meeting): 改造项目列表页,状态文案对齐,操作列接入项目详情跳转

- 状态文案同步:草稿→待召开,已邀约→正在召开
- 「文件」按钮改为「上传项目资料」,跳转至 ReviewProjectDetail
- 新增 goToDetail 函数,携带 meetingId/projectId/projectTitle 参数
- 操作列宽度调整为 200px

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
pull/874/head
Codewoc 2026-03-23 13:59:27 +08:00
parent 17ff8a6871
commit db5253b3e6
1 changed files with 14 additions and 5 deletions

View File

@ -67,10 +67,10 @@
/>
</template>
</el-table-column>
<el-table-column label="操作" width="160" align="center" fixed="right">
<el-table-column label="操作" width="200" align="center" fixed="right">
<template #default="{ row }">
<el-button type="primary" link @click="openForm('update', row)">编辑</el-button>
<el-button type="primary" link @click="openFileDialog(row)"></el-button>
<el-button type="primary" link @click="goToDetail(row)"></el-button>
<el-button type="danger" link @click="handleDelete(row.id)"></el-button>
</template>
</el-table-column>
@ -121,7 +121,7 @@
<script setup lang="ts">
import { ref, reactive, onMounted } from 'vue'
import { useRoute } from 'vue-router'
import { useRoute, useRouter } from 'vue-router'
import { ElMessage, ElMessageBox } from 'element-plus'
import { Plus, Delete } from '@element-plus/icons-vue'
import { getReviewMeeting } from '@/api/review/meeting'
@ -132,6 +132,7 @@ import { formatDate } from '@/utils/formatTime'
defineOptions({ name: 'ReviewMeetingProject' })
const route = useRoute()
const router = useRouter()
const reviewMeetingId = Number(route.params.meetingId)
const loading = ref(false)
@ -139,8 +140,8 @@ const list = ref<ReviewMeetingProjectRespVO[]>([])
const total = ref(0)
const meetingInfo = ref<any>({})
const STATUS_LABEL: Record<number, string> = { 0: '草稿', 1: '已邀约', 2: '已结束', 3: '已取消' }
const STATUS_TAG_TYPE: Record<number, string> = { 0: 'info', 1: 'primary', 2: 'success', 3: 'danger' }
const STATUS_LABEL: Record<number, string> = { 0: '待召开', 1: '正在召开', 2: '已结束', 3: '已取消' }
const STATUS_TAG_TYPE: Record<number, string> = { 0: 'warning', 1: 'success', 2: 'info', 3: 'danger' }
const queryParams = reactive({
pageNo: 1,
@ -231,6 +232,14 @@ const openFileDialog = (row: ReviewMeetingProjectRespVO) => {
fileDialogRef.value?.open(row.id, row.projectTitle)
}
const goToDetail = (row: ReviewMeetingProjectRespVO) => {
router.push({
name: 'ReviewProjectDetail',
params: { meetingId: reviewMeetingId, projectId: row.id },
query: { projectTitle: row.projectTitle }
})
}
onMounted(async () => {
meetingInfo.value = await getReviewMeeting(reviewMeetingId)
await getList()