diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index 433eece..0f77b8e 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -443,5 +443,14 @@ onUnmounted(() => {
.is-mobile .el-menu-item {
padding: 0 20px !important;
+ min-height: 48px;
+}
+
+.is-mobile .el-button {
+ min-height: 44px;
+}
+
+.is-mobile .el-icon {
+ padding: 4px;
}
diff --git a/frontend/src/components/Bids.vue b/frontend/src/components/Bids.vue
index 8006224..e1fbefb 100644
--- a/frontend/src/components/Bids.vue
+++ b/frontend/src/components/Bids.vue
@@ -12,13 +12,13 @@
-
+
@@ -26,13 +26,9 @@
-
-
- {{ scope.row.title }}
-
-
-
-
+
+
+
{{ formatDate(scope.row.publishDate) }}
@@ -162,11 +158,11 @@ a:hover {
max-width: 100%;
}
- .el-table {
- font-size: 12px;
+ .bids-table {
+ overflow-x: auto;
}
- .el-table .cell {
+ .bids-table :deep(.el-table__cell) {
padding: 6px;
}
diff --git a/frontend/src/components/CrawlInfo.vue b/frontend/src/components/CrawlInfo.vue
index 55e9753..af9df8e 100644
--- a/frontend/src/components/CrawlInfo.vue
+++ b/frontend/src/components/CrawlInfo.vue
@@ -11,33 +11,27 @@
-
-
-
-
+
+
+
+
{{ formatDateTime(row.latestUpdate) }}
-
+
{{ formatDateTime(row.latestPublishDate) }}
-
+
-
+
{{ row.error && row.error.trim() ? '出错' : (row.count > 0 ? '正常' : '无数据') }}
-
-
- {{ row.error }}
- -
-
-
-
+
{
}
}
+// 表格单元格类名,用于响应式处理
+const tableCellClassName = ({ columnIndex }: { columnIndex: number }) => {
+ // 移动端隐藏错误信息列
+ if (columnIndex === 5) {
+ return 'hidden-on-mobile'
+ }
+ return ''
+}
+
const crawlSingleSource = async (sourceName: string) => {
crawlingSources.value.add(sourceName)
try {
@@ -218,12 +221,16 @@ a:hover {
font-size: 1rem;
}
- .el-table {
- font-size: 11px;
+ .crawl-table {
+ overflow-x: auto;
}
- .el-table .cell {
- padding: 4px;
+ .crawl-table :deep(.el-table__cell) {
+ padding: 6px;
+ }
+
+ .el-table {
+ font-size: 12px;
}
.el-descriptions {
@@ -233,5 +240,10 @@ a:hover {
.summary {
margin-top: 16px;
}
+
+ /* 移动端隐藏错误信息列 */
+ .crawl-table :deep(.hidden-on-mobile) {
+ display: none;
+ }
}
diff --git a/frontend/src/components/Dashboard-AI.vue b/frontend/src/components/Dashboard-AI.vue
index 23649f4..40319c7 100644
--- a/frontend/src/components/Dashboard-AI.vue
+++ b/frontend/src/components/Dashboard-AI.vue
@@ -26,13 +26,13 @@
-
+
@@ -40,20 +40,16 @@
-
-
- {{ scope.row.title }}
-
-
-
-
+
+
+
{{ formatDate(scope.row.publishDate) }}
-
+
-
+
{{ scope.row.confidence }}%
@@ -106,13 +102,9 @@
-
-
- {{ scope.row.title }}
-
-
-
-
+
+
+
{{ formatDate(scope.row.publishDate) }}
@@ -457,11 +449,13 @@ a:hover {
justify-content: center;
}
- .el-table {
- font-size: 12px;
+ .ai-table,
+ .bids-table {
+ overflow-x: auto;
}
- .el-table .cell {
+ .ai-table :deep(.el-table__cell),
+ .bids-table :deep(.el-table__cell) {
padding: 6px;
}
diff --git a/frontend/src/components/Dashboard.vue b/frontend/src/components/Dashboard.vue
index a413db7..9f531ea 100644
--- a/frontend/src/components/Dashboard.vue
+++ b/frontend/src/components/Dashboard.vue
@@ -50,7 +50,7 @@
-
+
-
- {{ scope.row.title }}
-
-
-
-
+
+
+
{{ formatDate(scope.row.publishDate) }}
@@ -419,12 +415,12 @@ a:hover {
max-width: 100%;
}
- .el-table {
- font-size: 12px;
+ .bids-table {
+ overflow-x: auto;
}
- .el-table .cell {
- padding: 8px;
+ .bids-table :deep(.el-table__cell) {
+ padding: 6px;
}
}
diff --git a/frontend/src/components/PinnedProject.vue b/frontend/src/components/PinnedProject.vue
index 198ffbb..ad2affc 100644
--- a/frontend/src/components/PinnedProject.vue
+++ b/frontend/src/components/PinnedProject.vue
@@ -16,13 +16,13 @@
-
+
@@ -30,13 +30,9 @@
-
-
- {{ scope.row.title }}
-
-
-
-
+
+
+
{{ formatSimpleDate(scope.row.publishDate) }}
@@ -142,12 +138,12 @@ a:hover {
font-size: 0.9rem;
}
- .el-table {
- font-size: 11px;
+ .pinned-table {
+ overflow-x: auto;
}
- .el-table .cell {
- padding: 4px;
+ .pinned-table :deep(.el-table__cell) {
+ padding: 6px;
}
.box-card {
diff --git a/frontend/src/style.css b/frontend/src/style.css
index 50de669..4b361dc 100644
--- a/frontend/src/style.css
+++ b/frontend/src/style.css
@@ -16,62 +16,17 @@
-moz-osx-font-smoothing: grayscale;
}
-/* 移动端基础样式 */
-@media (max-width: 768px) {
- :root {
- font-size: 14px;
- }
-
- body {
- margin: 0;
- display: flex;
- place-items: flex-start;
- min-width: 320px;
- min-height: 100vh;
- }
-
- #app {
- max-width: 100%;
- margin: 0;
- padding: 0.5rem;
- text-align: left;
- }
-
- .card {
- padding: 1em;
- }
-
- h1 {
- font-size: 2em;
- line-height: 1.1;
- }
+body {
+ margin: 0;
+ min-width: 320px;
+ min-height: 100vh;
}
-/* 桌面端保持原有样式 */
-@media (min-width: 769px) {
- body {
- margin: 0;
- display: flex;
- place-items: center;
- min-width: 320px;
- min-height: 100vh;
- }
-
- #app {
- max-width: 1280px;
- margin: 0 auto;
- padding: 2rem;
- text-align: center;
- }
-
- .card {
- padding: 2em;
- }
-
- h1 {
- font-size: 3.2em;
- line-height: 1.1;
- }
+#app {
+ width: 100%;
+ max-width: 1280px;
+ margin: 0 auto;
+ padding: 0;
}
a {