From 66d08702d46649e555d061bd7c4529b3c22f47cd Mon Sep 17 00:00:00 2001 From: minimaxagent1 Date: Thu, 31 Jul 2025 16:36:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E7=95=8C=E9=9D=A2=E7=9A=84?= =?UTF-8?q?=E6=9E=84=E5=BB=BA=E5=92=8C=E7=8A=B6=E6=80=81=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E7=9A=84=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../status-display}/status-display.vue | 22 +++++- pages.json | 8 ++ pages/basePage/basePage.vue | 75 +++++++++++++++++++ .../institutionalStructure/donationRecord.vue | 2 +- .../institutionalStructure.vue | 2 +- 5 files changed, 104 insertions(+), 5 deletions(-) rename {pages/institutionalStructure/components => components/status-display}/status-display.vue (67%) create mode 100644 pages/basePage/basePage.vue diff --git a/pages/institutionalStructure/components/status-display.vue b/components/status-display/status-display.vue similarity index 67% rename from pages/institutionalStructure/components/status-display.vue rename to components/status-display/status-display.vue index d1c2fb1..3cd9911 100644 --- a/pages/institutionalStructure/components/status-display.vue +++ b/components/status-display/status-display.vue @@ -8,6 +8,10 @@ {{ emptyText }} + + + {{ errorText }} + @@ -15,11 +19,12 @@ export default { name: 'StatusDisplay', props: { - // 状态类型:loading, empty + // 状态类型:loading, empty, error type: { type: String, required: true, - validator: value => ['loading', 'empty'].includes(value) + validator: value => ['loading', 'empty', 'error'].includes(value), + default: 'loading' }, // 加载文本 loadingText: { @@ -30,6 +35,11 @@ export default { emptyText: { type: String, default: '暂无数据' + }, + // 错误文本 + errorText: { + type: String, + default: '加载失败' } } } @@ -41,9 +51,10 @@ export default { display: flex; justify-content: center; align-items: center; + min-height: 200rpx; } -.loading, .empty { +.loading, .empty, .error { display: flex; justify-content: center; align-items: center; @@ -51,5 +62,10 @@ export default { font-size: 28rpx; background-color: #FFFBF5; padding: 40rpx 0; + border-radius: 8rpx; +} + +.error { + color: #ff6b6b; } \ No newline at end of file diff --git a/pages.json b/pages.json index ad79ead..5727054 100644 --- a/pages.json +++ b/pages.json @@ -101,6 +101,14 @@ "enablePullDownRefresh": false, "navigationStyle": "custom" } + }, + { + "path": "pages/basePage/basePage", + "style": { + "navigationBarTitleText": "", + "enablePullDownRefresh": false, + "navigationStyle": "custom" + } } ], diff --git a/pages/basePage/basePage.vue b/pages/basePage/basePage.vue new file mode 100644 index 0000000..99fd5aa --- /dev/null +++ b/pages/basePage/basePage.vue @@ -0,0 +1,75 @@ + + + + + \ No newline at end of file diff --git a/pages/institutionalStructure/donationRecord.vue b/pages/institutionalStructure/donationRecord.vue index 488295c..bcd45c7 100644 --- a/pages/institutionalStructure/donationRecord.vue +++ b/pages/institutionalStructure/donationRecord.vue @@ -20,7 +20,7 @@ import { tilesImageEnum } from '@/enum/institutionalStructure.js'; import CustomNavbar from "../../components/custom-navbar/custom-navbar.vue"; import TileGrid from "../../components/tile-grid/tile-grid.vue"; import CommonEnum from "../../enum/common"; -import StatusDisplay from "./components/status-display.vue"; +import StatusDisplay from "../../components/status-display/status-display.vue"; export default { components: { diff --git a/pages/institutionalStructure/institutionalStructure.vue b/pages/institutionalStructure/institutionalStructure.vue index 4289074..0b0c3b5 100644 --- a/pages/institutionalStructure/institutionalStructure.vue +++ b/pages/institutionalStructure/institutionalStructure.vue @@ -34,7 +34,7 @@ import { getInstitutionalList } from '@/api/institutionalStructure.js'; import CustomNavbar from "../../components/custom-navbar/custom-navbar.vue"; import TileGrid from "../../components/tile-grid/tile-grid.vue"; import InstitutionalItem from "./components/institutional-item.vue"; -import StatusDisplay from "./components/status-display.vue"; +import StatusDisplay from "../../components/status-display/status-display.vue"; import { InstitutionalDataFormatter } from "./utils/data-formatter.js"; import { dataManagerMixin } from "./mixins/data-manager.js"; import CommonEnum from "../../enum/common";