From 1a5a2ae6a901a2bd786e10643b9a63a93822e82a Mon Sep 17 00:00:00 2001 From: duanshuwen Date: Tue, 26 May 2026 23:50:37 +0800 Subject: [PATCH] refactor: clean up codebase and add new features Replace SCSS variable usages with explicit pixel/hex values for consistent styling across all components Fix broken template syntax including missing class spaces and incorrect closing tags Migrate constant and API imports to centralized @/constants and @/api modules Add new utility classes: IdUtils, CallbackUtils, and TimerUtils Add new chat conversation API endpoints for recent conversations and message lists Add new Discovery page components (FindTabs, QuickQuestions, CardSwiper) and their styles Update app store config to use environment variables for base API and WebSocket URLs Add new selected tab icon assets --- src/api/home.ts | 17 + src/components/AiTabSwitch/index.vue | 16 +- src/components/CommandWrapper/index.vue | 2 +- .../CommandWrapper/styles/index.scss | 2 +- src/components/CreateServiceOrder/index.vue | 18 +- src/components/CustomEmpty/index.vue | 4 +- src/components/DateRangeSection/index.vue | 36 +- src/components/DetailPopup/index.vue | 41 +- src/components/Feedback/index.vue | 50 +- src/components/FormCard/index.vue | 47 +- src/components/FormCard/styles/index.scss | 10 +- src/components/GoodDetail/index.vue | 8 +- src/components/ImageSwiper/demo.vue | 24 +- src/components/ImageSwiper/index.vue | 16 +- src/components/ImageSwiper/styles/index.scss | 2 +- src/components/LocationCard/index.vue | 8 +- src/components/LocationCard/styles/index.scss | 10 +- src/components/LocationInfo/styles/index.scss | 4 +- src/components/ModuleTitle/index.vue | 10 +- src/components/Privacy/index.vue | 4 +- src/components/Privacy/styles/index.scss | 4 +- src/components/RefundPopup/index.vue | 36 +- src/components/ResponseIntro/index.vue | 2 +- .../ResponseIntro/styles/index.scss | 4 +- src/components/ServiceTipsWord/index.vue | 20 +- .../ServiceTipsWord/styles/index.scss | 6 +- src/components/Speech/RecordingWaveBtn.vue | 2 +- src/components/SumCard/index.vue | 8 +- src/components/SumCard/styles/index.scss | 8 +- src/components/SurveyQuestionnaire/index.vue | 16 +- src/components/SwipeCards/index.vue | 35 +- src/components/TagsGroup/styles/index.scss | 2 +- src/components/TopNavBar/demo.vue | 24 +- src/components/TopNavBar/index.vue | 34 +- src/components/TopNavBar/styles/index.scss | 2 +- src/components/UseDateRange/styles/index.scss | 2 +- src/constants/ChatModel.ts | 83 +++ src/constants/base.ts | 52 -- src/constants/longTextCard.ts | 173 +++++ src/constants/token.ts | 38 +- src/hooks/useGoLogin.ts | 109 +-- src/pages/booking/styles/index.scss | 2 +- .../components/DateSelector/styles/index.scss | 4 +- .../goods/components/GoodConfirm/demo.vue | 43 +- .../components/GoodConfirm/styles/index.scss | 30 +- .../components/GoodInfo/styles/index.scss | 8 +- src/pages/goods/styles/index.scss | 6 +- .../ActivityListComponent/index.vue | 2 +- .../ActivityListComponent/styles/index.scss | 4 +- .../home/components/AnswerComponent/index.vue | 4 +- .../components/AttachListComponent/index.vue | 2 +- .../AttachListComponent/styles/index.scss | 2 +- .../ChatInputArea/styles/index.scss | 6 +- .../home/components/ChatLongAnswer/index.vue | 2 +- .../home/components/ChatMainList/index.vue | 39 +- .../home/components/ChatMoreTips/index.vue | 2 +- .../home/components/ChatQuickAccess/index.vue | 2 +- .../home/components/ChatTopNavBar/index.vue | 2 +- .../home/components/ChatTopWelcome/index.vue | 2 +- .../components/CardSwiper/index.vue | 0 .../components/CardSwiper/styles/index.scss | 0 .../FindTabs/images/selected_tabs_icon.png | Bin .../FindTabs/images/selected_tabs_icon_b.png | Bin .../Discovery}/components/FindTabs/index.vue | 2 +- .../components/FindTabs/styles/index.scss | 0 .../components/QuickQuestions/index.vue | 0 .../QuickQuestions/styles/index.scss | 0 .../components/Discovery}/index.vue | 4 +- .../DiscoveryCardComponent/index.vue | 4 +- .../DiscoveryCradContentList/index.vue | 2 +- .../styles/index.scss | 4 +- .../components/MineSetting/index.vue | 21 +- .../components/MineSetting/styles/index.scss | 4 +- .../DrawerSection/styles/index.scss | 2 +- .../GeneratorPhotoComponent/index.vue | 4 +- .../GeneratorPhotoComponent/styles/index.scss | 6 +- .../home/components/HomeWelcome/index.vue | 2 +- .../LongTextGuideCardPreview/guide.vue | 2 +- .../LongTextGuideCardPreview/photo.vue | 4 +- .../LongTextGuideCardPreview/poi.vue | 2 +- .../LongTextGuideCardPreview/route.vue | 2 +- .../home/components/MoreService/index.vue | 4 +- .../home/components/NoticeMessage/index.vue | 4 +- .../QuickBookingCalender/styles/index.scss | 2 +- .../QuickBookingComponent/index.vue | 4 +- .../QuickBookingContentList/styles/index.scss | 6 +- .../components/RecommendPostsList/index.vue | 2 +- .../components/AgreePopup/styles/index.scss | 6 +- src/pages/login/index.vue | 2 +- .../components/NoticeInfo/styles/index.scss | 4 +- .../order/components/Tabs/styles/index.scss | 11 +- src/pages/order/order/styles/detail.scss | 2 +- .../quick/components/Tabs/styles/index.scss | 2 +- .../order/components/OrderCard/index.vue | 51 +- src/pages/service/order/index.vue | 37 +- src/store/modules/app.ts | 8 +- src/utils/CallbackUtils.ts | 35 + src/utils/IdUtils.ts | 23 + src/utils/MessageUtils.ts | 116 ++++ src/utils/TimerUtils.ts | 74 +++ src/utils/WebSocketManager.ts | 624 ++++++++++++++++++ 101 files changed, 1488 insertions(+), 745 deletions(-) create mode 100644 src/constants/ChatModel.ts delete mode 100644 src/constants/base.ts create mode 100644 src/constants/longTextCard.ts rename src/pages/{discovery => home/components/Discovery}/components/CardSwiper/index.vue (100%) rename src/pages/{discovery => home/components/Discovery}/components/CardSwiper/styles/index.scss (100%) rename src/pages/{discovery => home/components/Discovery}/components/FindTabs/images/selected_tabs_icon.png (100%) rename src/pages/{discovery => home/components/Discovery}/components/FindTabs/images/selected_tabs_icon_b.png (100%) rename src/pages/{discovery => home/components/Discovery}/components/FindTabs/index.vue (98%) rename src/pages/{discovery => home/components/Discovery}/components/FindTabs/styles/index.scss (100%) rename src/pages/{discovery => home/components/Discovery}/components/QuickQuestions/index.vue (100%) rename src/pages/{discovery => home/components/Discovery}/components/QuickQuestions/styles/index.scss (100%) rename src/pages/{discovery => home/components/Discovery}/index.vue (98%) create mode 100644 src/utils/CallbackUtils.ts create mode 100644 src/utils/IdUtils.ts create mode 100644 src/utils/MessageUtils.ts create mode 100644 src/utils/TimerUtils.ts create mode 100644 src/utils/WebSocketManager.ts diff --git a/src/api/home.ts b/src/api/home.ts index b7f1d1d..41c597f 100644 --- a/src/api/home.ts +++ b/src/api/home.ts @@ -88,3 +88,20 @@ export function discoveryCradComponent() { method: "get", }); } + +// 最近会话 +export function recentConversation() { + return request({ + url: "/hotelBiz/chat/recentConversation", + method: "get", + }); +} + +// 会话消息列表 +export function conversationMsgList(args: any) { + return request({ + url: "/hotelBiz/chat/conversationMessageList", + method: "post", + data: args, + }); +} diff --git a/src/components/AiTabSwitch/index.vue b/src/components/AiTabSwitch/index.vue index e7af96e..f564191 100644 --- a/src/components/AiTabSwitch/index.vue +++ b/src/components/AiTabSwitch/index.vue @@ -8,7 +8,7 @@ : leftUnselected || leftSelected " class="tab-image" mode="scaleToFill" />
- 探索发现 + 探索发现
@@ -20,13 +20,13 @@ : rightUnselected || rightSelected " class="tab-image" mode="scaleToFill" />
- AI伴游 -
+ AI伴游 +
diff --git a/src/components/CommandWrapper/index.vue b/src/components/CommandWrapper/index.vue index d2b078e..2dfc8a5 100644 --- a/src/components/CommandWrapper/index.vue +++ b/src/components/CommandWrapper/index.vue @@ -1,6 +1,6 @@ diff --git a/src/components/CommandWrapper/styles/index.scss b/src/components/CommandWrapper/styles/index.scss index 5eebd01..10f0727 100644 --- a/src/components/CommandWrapper/styles/index.scss +++ b/src/components/CommandWrapper/styles/index.scss @@ -7,5 +7,5 @@ .command-text { color: #fff; - font-size: $uni-font-size-base; + font-size: 14px; } diff --git a/src/components/CreateServiceOrder/index.vue b/src/components/CreateServiceOrder/index.vue index f48d7f7..9beb326 100644 --- a/src/components/CreateServiceOrder/index.vue +++ b/src/components/CreateServiceOrder/index.vue @@ -2,21 +2,21 @@
- + {{ isCallSuccess ? "服务已创建" : "呼叫服务" }} - - + +
- 所在位置 - + 所在位置 +
- 联系电话 - + 联系电话 +
@@ -71,8 +71,8 @@ diff --git a/src/pages/home/components/DrawerSection/components/MineSetting/styles/index.scss b/src/pages/home/components/DrawerSection/components/MineSetting/styles/index.scss index 16d999e..657783d 100644 --- a/src/pages/home/components/DrawerSection/components/MineSetting/styles/index.scss +++ b/src/pages/home/components/DrawerSection/components/MineSetting/styles/index.scss @@ -32,7 +32,7 @@ .label { font-size: 28rpx; - color: $uni-text-color; + color: #333; } .value { @@ -59,7 +59,7 @@ height: 42px; margin-top: 40px; background-color: #fff; - color: $uni-text-color; + color: #333; border-radius: 8rpx; border: none; } diff --git a/src/pages/home/components/DrawerSection/styles/index.scss b/src/pages/home/components/DrawerSection/styles/index.scss index b494117..b19f15c 100644 --- a/src/pages/home/components/DrawerSection/styles/index.scss +++ b/src/pages/home/components/DrawerSection/styles/index.scss @@ -15,7 +15,7 @@ .title { font-size: 18px; text-align: center; - color: $uni-text-color; + color: #333; } .close-icon { diff --git a/src/pages/home/components/GeneratorPhotoComponent/index.vue b/src/pages/home/components/GeneratorPhotoComponent/index.vue index bbd351d..7840965 100644 --- a/src/pages/home/components/GeneratorPhotoComponent/index.vue +++ b/src/pages/home/components/GeneratorPhotoComponent/index.vue @@ -35,8 +35,8 @@ import { defineProps, nextTick, onMounted, computed } from "vue"; import { SCROLL_TO_BOTTOM, -} from "@/constant/constant"; -import { getAccessToken } from "@/constant/token"; +} from "@/constants/constant"; +import { getAccessToken } from "@/constants/token"; import { navigateTo } from "@/router"; diff --git a/src/pages/home/components/GeneratorPhotoComponent/styles/index.scss b/src/pages/home/components/GeneratorPhotoComponent/styles/index.scss index 16030bb..19c1d57 100644 --- a/src/pages/home/components/GeneratorPhotoComponent/styles/index.scss +++ b/src/pages/home/components/GeneratorPhotoComponent/styles/index.scss @@ -4,7 +4,7 @@ } .content { - background: linear-gradient(180deg, $theme-color-100 0%, #0ccd58 100%); + background: linear-gradient(180deg, #e8fff1 0%, #0ccd58 100%); border-radius: 24px 24px 24px 24px; border: 1px solid #ffffff; position: relative; @@ -23,8 +23,8 @@ .btn-bg-sub { background: #0ccd58; box-shadow: - inset 0px 0px 41px 0px $theme-color-50, - inset 0px 0px 15px 0px $theme-color-100; + inset 0px 0px 41px 0px #f0f8f3, + inset 0px 0px 15px 0px #e8fff1; } /* 左上角标签容器 */ diff --git a/src/pages/home/components/HomeWelcome/index.vue b/src/pages/home/components/HomeWelcome/index.vue index ad30033..48a77c9 100644 --- a/src/pages/home/components/HomeWelcome/index.vue +++ b/src/pages/home/components/HomeWelcome/index.vue @@ -20,7 +20,7 @@ import { onMounted, ref } from "vue"; import { defineProps, computed } from "vue"; import SpriteAnimator from "@/components/Sprite/SpriteAnimator.vue"; import NoticeMessage from "../NoticeMessage/index.vue"; -import { getLocalWeather } from "@/request/api/MainPageDataApi"; +import { getLocalWeather } from "@/api/home"; const weatherText = ref(''); diff --git a/src/pages/home/components/LongTextGuideCardPreview/guide.vue b/src/pages/home/components/LongTextGuideCardPreview/guide.vue index f4fbb3c..39316df 100644 --- a/src/pages/home/components/LongTextGuideCardPreview/guide.vue +++ b/src/pages/home/components/LongTextGuideCardPreview/guide.vue @@ -79,7 +79,7 @@