From 53d9781c5d1acb257b252f328243d894ae8ba606 Mon Sep 17 00:00:00 2001
From: Codewoc <947380458@qq.com>
Date: Wed, 1 Apr 2026 11:17:01 +0800
Subject: [PATCH] style(review-meeting): optimize list readability
---
src/views/review/meeting/AllProjectList.vue | 185 +++++++++++++-----
src/views/review/meeting/MeetingEdit.vue | 95 ++++++---
src/views/review/meeting/ProjectList.vue | 205 ++++++++++++++------
src/views/review/meeting/index.vue | 178 ++++++++++++-----
4 files changed, 471 insertions(+), 192 deletions(-)
diff --git a/src/views/review/meeting/AllProjectList.vue b/src/views/review/meeting/AllProjectList.vue
index 417ef1923..6b87621b6 100644
--- a/src/views/review/meeting/AllProjectList.vue
+++ b/src/views/review/meeting/AllProjectList.vue
@@ -76,49 +76,51 @@
-
-
-
+
+
+
{{ row.startTime || '' }} - {{ row.endTime || '' }}
-
-
-
+
+
{{ row.projectTitle }}
-
-
-
-
+
+
+
+
{{ row.preMeetingMaterialsComplete ? '✓' : '✗' }}
-
+
{{ row.postMeetingMaterialsComplete ? '✓' : '✗' }}
-
+
{{ REVIEW_RESULT_LABEL[row.reviewResult as keyof typeof REVIEW_RESULT_LABEL] || '-' }}
-
+
- 编辑
- 上传项目资料
- 删除
+
@@ -177,7 +179,7 @@
diff --git a/src/views/review/meeting/MeetingEdit.vue b/src/views/review/meeting/MeetingEdit.vue
index db08ec2a2..a1ac50d35 100644
--- a/src/views/review/meeting/MeetingEdit.vue
+++ b/src/views/review/meeting/MeetingEdit.vue
@@ -166,16 +166,16 @@
-
-
+
+
{{ row.startTime || '--:--' }} - {{ row.endTime || '--:--' }}
-
+
-
-
+
+
@@ -651,12 +651,12 @@ const handleBack = () => {
display: flex;
align-items: center;
gap: 8px;
- margin-bottom: 20px;
- padding-bottom: 14px;
+ margin-bottom: 16px;
+ padding-bottom: 12px;
border-bottom: 1px solid #e1e7f0;
}
.back-btn {
- font-size: 28px;
+ font-size: 30px;
color: #295abc;
cursor: pointer;
line-height: 1;
@@ -664,18 +664,18 @@ const handleBack = () => {
}
.back-btn:hover { opacity: 0.75; }
.page-title {
- font-size: 22px;
+ font-size: 24px;
font-weight: 600;
color: #333;
}
/* ── 分区标题 ── */
.section-header {
- margin: 20px 0 14px;
+ margin: 18px 0 12px;
}
.section-title {
position: relative;
- font-size: 16px;
+ font-size: 18px;
font-weight: 600;
color: #333;
padding-left: 12px;
@@ -693,11 +693,26 @@ const handleBack = () => {
/* ── 表单 item 字号 ── */
:deep(.el-form-item__label) {
- font-size: 14px;
+ font-size: 16px;
color: #555;
}
-:deep(.el-input__inner) {
- font-size: 14px;
+:deep(.el-form-item) {
+ margin-bottom: 20px;
+}
+:deep(.el-input__inner),
+:deep(.el-textarea__inner),
+:deep(.el-select__selected-item),
+:deep(.el-select__placeholder),
+:deep(.el-range-input) {
+ font-size: 16px;
+}
+:deep(.el-input__wrapper),
+:deep(.el-select__wrapper),
+:deep(.el-range-editor.el-input__wrapper) {
+ min-height: 42px;
+}
+:deep(.el-form-item__content) {
+ line-height: 1.5;
}
/* ── 议程附件 ── */
@@ -710,6 +725,8 @@ const handleBack = () => {
display: flex;
align-items: center;
gap: 8px;
+ flex-wrap: wrap;
+ font-size: 16px;
}
.agenda-action-row {
display: flex;
@@ -718,7 +735,7 @@ const handleBack = () => {
flex-wrap: wrap;
}
.upload-hint {
- font-size: 12px;
+ font-size: 14px;
color: #999;
}
@@ -731,7 +748,7 @@ const handleBack = () => {
margin-bottom: 12px;
}
.import-hint {
- font-size: 12px;
+ font-size: 14px;
color: #999;
}
.mt-10 {
@@ -740,13 +757,13 @@ const handleBack = () => {
/* ── 按钮 ── */
.btn-upload {
- height: 34px;
- padding: 0 14px;
+ height: 38px;
+ padding: 0 16px;
background-color: #fff;
border: 1px solid #295abc;
border-radius: 6px;
color: #295abc;
- font-size: 14px;
+ font-size: 15px;
cursor: pointer;
transition: all 0.2s;
}
@@ -755,13 +772,13 @@ const handleBack = () => {
.btn-generate {
display: inline-flex;
align-items: center;
- height: 34px;
- padding: 0 14px;
+ height: 38px;
+ padding: 0 16px;
background-color: #fff;
border: 1px solid #3aa76d;
border-radius: 6px;
color: #3aa76d;
- font-size: 14px;
+ font-size: 15px;
cursor: pointer;
transition: all 0.2s;
}
@@ -776,12 +793,12 @@ const handleBack = () => {
.btn-default {
display: inline-flex;
align-items: center;
- height: 36px;
- padding: 0 16px;
+ height: 40px;
+ padding: 0 18px;
background-color: #fff;
border: 1px solid #d5d5d5;
border-radius: 6px;
- font-size: 14px;
+ font-size: 15px;
color: #333;
cursor: pointer;
transition: all 0.2s;
@@ -795,12 +812,12 @@ const handleBack = () => {
.btn-primary {
display: inline-flex;
align-items: center;
- height: 36px;
+ height: 40px;
padding: 0 20px;
background-color: #295abc;
border: none;
border-radius: 6px;
- font-size: 14px;
+ font-size: 15px;
color: #fff;
cursor: pointer;
transition: background-color 0.2s;
@@ -810,22 +827,36 @@ const handleBack = () => {
/* ── 底部 ── */
.form-footer {
- margin-top: 24px;
+ margin-top: 20px;
display: flex;
gap: 12px;
}
/* ── 项目预览表格 ── */
-:deep(.el-table .el-table__header-wrapper th) {
+:deep(.projects-preview-table .el-table__header-wrapper th) {
background-color: #eef2fb;
color: #333;
font-weight: 600;
- font-size: 14px;
+ font-size: 18px;
border-color: #e1e7f0;
}
-:deep(.el-table .el-table__body td) {
- font-size: 14px;
+:deep(.projects-preview-table .el-table__header-wrapper th.el-table__cell) {
+ padding-top: 12px;
+ padding-bottom: 12px;
+}
+:deep(.projects-preview-table .el-table__header-wrapper th .cell) {
+ justify-content: center;
+ text-align: center;
+}
+:deep(.projects-preview-table .el-table__body td) {
+ font-size: 18px;
color: #333;
border-color: #e1e7f0;
+ padding-top: 12px;
+ padding-bottom: 12px;
+}
+:deep(.projects-preview-table .el-table__body td .cell),
+:deep(.projects-preview-table .el-table__header-wrapper th .cell) {
+ line-height: 1.5;
}
diff --git a/src/views/review/meeting/ProjectList.vue b/src/views/review/meeting/ProjectList.vue
index 091ad53b8..fc839d1d7 100644
--- a/src/views/review/meeting/ProjectList.vue
+++ b/src/views/review/meeting/ProjectList.vue
@@ -45,7 +45,6 @@
-
-
+
+
⋮⋮
-
-
-
+
+
+
{{ row.startTime || '--:--' }}
@@ -94,12 +92,11 @@
-
+
@@ -107,45 +104,41 @@
-
+
-
+
-
+
-
+
-
+
{{ row.preMeetingMaterialsComplete ? '✓' : '✗' }}
-
+
{{ row.postMeetingMaterialsComplete ? '✓' : '✗' }}
-
+
{{ AI_STATUS_LABEL[row.aiSummaryStatus ?? 0] }}
-
+
-
+
- 上传项目资料
- 删除
+
@@ -240,6 +234,7 @@ const total = ref(0)
const meetingInfo = ref({})
const tableRef = ref()
const selectedRows = ref([])
+const useFixedActionColumn = ref(true)
let sortableInstance: Sortable | null = null
const STATUS_LABEL: Record = { 0: '待召开', 1: '正在召开', 2: '已结束', 3: '已取消' }
@@ -265,6 +260,10 @@ const queryParams = reactive({
reviewMeetingId
})
+const syncActionColumnMode = () => {
+ useFixedActionColumn.value = window.innerWidth >= 1680
+}
+
const getList = async () => {
loading.value = true
try {
@@ -501,11 +500,14 @@ const goToDetail = (row: ReviewMeetingProjectRespVO) => {
}
onMounted(async () => {
+ syncActionColumnMode()
+ window.addEventListener('resize', syncActionColumnMode)
meetingInfo.value = await getReviewMeeting(reviewMeetingId)
await getList()
})
onBeforeUnmount(() => {
+ window.removeEventListener('resize', syncActionColumnMode)
sortableInstance?.destroy()
sortableInstance = null
})
@@ -514,42 +516,42 @@ onBeforeUnmount(() => {