feat(meeting): 调整会议列表页UI,状态文案对齐设计稿,入口改为路由跳转
- 状态文案:草稿→待召开,已邀约→正在召开 - 状态 Tag 颜色:待召开 warning,正在召开 success - 新建/编辑/查看按钮改为 router.push 跳转 ReviewMeetingEdit - 操作列新增「项目列表」快捷入口,移除冗余的独立列 - 「发送邮件邀请函」改为「发送议程」 - 移除 MeetingForm 弹窗引用(后续由全页面 MeetingEdit 承接) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>pull/874/head
parent
167af744b9
commit
83adecdcb8
|
|
@ -29,8 +29,8 @@
|
|||
<!-- 操作按钮 -->
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['review:meeting:create']" type="primary" plain @click="openForm('create')">
|
||||
<el-icon><Plus /></el-icon> 新增会议邀约
|
||||
<el-button v-hasPermi="['review:meeting:create']" type="primary" plain @click="goToEdit()">
|
||||
<el-icon><Plus /></el-icon> 新建会议
|
||||
</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
|
@ -61,22 +61,19 @@
|
|||
<el-tag :type="STATUS_TAG_TYPE[row.status]">{{ STATUS_LABEL[row.status] }}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="进入评审项目列表" width="130" align="center">
|
||||
<el-table-column label="操作" width="380" align="center" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button type="primary" link @click="goToProjectList(row)">进入项目列表</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="430" align="center" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<!-- 草稿状态 -->
|
||||
<!-- 待召开 -->
|
||||
<template v-if="row.status === 0">
|
||||
<el-button v-hasPermi="['review:meeting:update']" type="primary" link @click="openForm('update', row)">编辑</el-button>
|
||||
<el-button v-hasPermi="['review:meeting:update']" type="primary" link @click="goToEdit(row.id)">编辑</el-button>
|
||||
<el-button type="primary" link @click="goToProjectList(row)">项目列表</el-button>
|
||||
<el-button v-hasPermi="['review:meeting:send-sms']" type="success" link @click="handleSendSms(row)">发送短信邀约</el-button>
|
||||
<el-button v-hasPermi="['review:meeting:cancel']" type="danger" link @click="handleCancel(row)">取消</el-button>
|
||||
</template>
|
||||
<!-- 已邀约状态 -->
|
||||
<!-- 正在召开 -->
|
||||
<template v-else-if="row.status === 1">
|
||||
<el-button type="info" link @click="openForm('view', row)">查看</el-button>
|
||||
<el-button type="info" link @click="goToEdit(row.id, 'view')">查看</el-button>
|
||||
<el-button type="primary" link @click="goToProjectList(row)">项目列表</el-button>
|
||||
<el-button v-hasPermi="['review:meeting:send-sms']" type="info" link @click="openSmsStatus(row)">短信状态</el-button>
|
||||
<el-button
|
||||
v-if="row.mailSent"
|
||||
|
|
@ -94,14 +91,15 @@
|
|||
link
|
||||
@click="handleSendMail(row)"
|
||||
>
|
||||
发送邮件邀请函
|
||||
发送议程
|
||||
</el-button>
|
||||
<el-button v-hasPermi="['review:meeting:finish']" type="warning" link @click="handleFinish(row)">结束</el-button>
|
||||
<el-button v-hasPermi="['review:meeting:cancel']" type="danger" link @click="handleCancel(row)">取消</el-button>
|
||||
</template>
|
||||
<!-- 终态 -->
|
||||
<!-- 终态(已结束/已取消) -->
|
||||
<template v-else>
|
||||
<el-button type="info" link @click="openForm('view', row)">查看</el-button>
|
||||
<el-button type="info" link @click="goToEdit(row.id, 'view')">查看</el-button>
|
||||
<el-button type="primary" link @click="goToProjectList(row)">项目列表</el-button>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
|
@ -110,9 +108,6 @@
|
|||
<!-- 分页 -->
|
||||
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
|
||||
<!-- 新增/编辑弹窗 -->
|
||||
<MeetingForm ref="formRef" @success="getList" />
|
||||
|
||||
<!-- 短信状态弹窗 -->
|
||||
<SmsStatusDialog ref="smsStatusRef" />
|
||||
|
||||
|
|
@ -135,7 +130,6 @@ import {
|
|||
type ReviewMeetingRespVO,
|
||||
type ReviewMeetingPageReqVO
|
||||
} from '@/api/review/meeting'
|
||||
import MeetingForm from './MeetingForm.vue'
|
||||
import SmsStatusDialog from './SmsStatusDialog.vue'
|
||||
import MailStatusDialog from './MailStatusDialog.vue'
|
||||
import { formatDate } from '@/utils/formatTime'
|
||||
|
|
@ -148,13 +142,13 @@ const list = ref<ReviewMeetingRespVO[]>([])
|
|||
const total = ref(0)
|
||||
|
||||
const MEETING_STATUS_OPTIONS = [
|
||||
{ value: 0, label: '草稿' },
|
||||
{ value: 1, label: '已邀约' },
|
||||
{ value: 0, label: '待召开' },
|
||||
{ value: 1, label: '正在召开' },
|
||||
{ value: 2, label: '已结束' },
|
||||
{ value: 3, label: '已取消' }
|
||||
]
|
||||
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<ReviewMeetingPageReqVO & { pageNo: number; pageSize: number }>({
|
||||
pageNo: 1,
|
||||
|
|
@ -165,7 +159,6 @@ const queryParams = reactive<ReviewMeetingPageReqVO & { pageNo: number; pageSize
|
|||
})
|
||||
|
||||
const queryFormRef = ref()
|
||||
const formRef = ref()
|
||||
const smsStatusRef = ref()
|
||||
const mailStatusRef = ref()
|
||||
|
||||
|
|
@ -183,8 +176,8 @@ const getList = async () => {
|
|||
const handleQuery = () => { queryParams.pageNo = 1; getList() }
|
||||
const resetQuery = () => { queryFormRef.value?.resetFields(); handleQuery() }
|
||||
|
||||
const openForm = (type: 'create' | 'update' | 'view', row?: ReviewMeetingRespVO) => {
|
||||
formRef.value?.open(type, row?.id)
|
||||
const goToEdit = (id?: number, mode?: string) => {
|
||||
router.push({ name: 'ReviewMeetingEdit', params: id ? { id } : {}, query: mode ? { mode } : {} })
|
||||
}
|
||||
|
||||
const goToProjectList = (row: ReviewMeetingRespVO) => {
|
||||
|
|
@ -224,7 +217,7 @@ const handleSendMail = async (row: ReviewMeetingRespVO) => {
|
|||
)
|
||||
await sendMailInvitation(row.id)
|
||||
row.mailSent = true
|
||||
ElMessage.success('邮件邀请函发送任务已触发,请点击“邮件状态”查看结果')
|
||||
ElMessage.success('邮件邀请函发送任务已触发,请点击"邮件状态"查看结果')
|
||||
}
|
||||
|
||||
const openSmsStatus = (row: ReviewMeetingRespVO) => {
|
||||
|
|
|
|||
Loading…
Reference in New Issue