From b2ee282fc7270fab4a51740fe7742dc34b0145e2 Mon Sep 17 00:00:00 2001 From: no99 <17663930442@163.com> Date: Mon, 18 Aug 2025 13:59:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95pc=E7=AB=AF?= =?UTF-8?q?=E5=B1=95=E5=BC=80=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/components/HistoryRecord.vue | 40 +++++---- src/views/homePage.vue | 157 +++++++++++++++++++++++++++------ 2 files changed, 154 insertions(+), 43 deletions(-) diff --git a/src/views/components/HistoryRecord.vue b/src/views/components/HistoryRecord.vue index bb71497..a2db4b4 100644 --- a/src/views/components/HistoryRecord.vue +++ b/src/views/components/HistoryRecord.vue @@ -405,12 +405,8 @@ const props = defineProps({ type: String, default: "AIchat", // 'AIchat' 或 'AiEmotion' }, - isMobile: { - type: Boolean, - default: false, - }, }); - +const isMobile = ref(null); // Emits const emit = defineEmits([ "selectRecord", @@ -440,7 +436,7 @@ const dialogWidth = ref("500px"); // 对话框动态宽度 // 计算属性:根据移动端状态动态设置对话框宽度 const computedDialogWidth = computed(() => { - if (props.isMobile) { + if (isMobile.value) { return "70%"; // 移动端使用百分比宽度 } return dialogWidth.value; // 桌面端使用固定宽度 @@ -458,6 +454,8 @@ const historyRecords = ref([]); const categoryHistory = ref([]); let chatFirstFlag = true; let emotionTirstFlag = true; + + const getHistoryList = async (params) => { try { const result = await getHistoryListAPI(params); @@ -473,20 +471,17 @@ const getHistoryList = async (params) => { // "emotionTirstFlag", // emotionTirstFlag // ); - const userAgent = navigator.userAgent; - const isMobile = - !/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( - userAgent - ); if (chatFirstFlag && params.model == 1 && result.data.length != 0) { - if (isMobile) { + if (!isMobile.value) { + chatStore.aiChatCall = true; } chatFirstFlag = false; } if (emotionTirstFlag && params.model == 2 && result.data.length != 0) { - if (isMobile) { + if (!isMobile.value) { + chatStore.aiEmotionCall = true; } emotionTirstFlag = false; @@ -494,13 +489,18 @@ const getHistoryList = async (params) => { // 只在首次加载时根据chatStore状态设置折叠状态,避免搜索后自动弹出历史记录 - if (isMobile) { + if (isMobile.value) { + + console.log("移动设备默认关闭"); isCollapsed.value = true; } else { - if (props.currentType == "AIchat" && chatFirstFlag) { + console.log("pc设备进行判断"); + if (props.currentType == "AIchat") { isCollapsed.value = !chatStore.aiChatCall; - } else if (props.currentType == "AiEmotion" && emotionTirstFlag) { + console.log("夺宝奇兵页面", isCollapsed.value); + } else if (props.currentType == "AiEmotion") { isCollapsed.value = !chatStore.aiEmotionCall; + console.log("情绪大模型页面", isCollapsed.value); } } // 非首次调用时保持当前折叠状态不变 @@ -680,7 +680,7 @@ const selectRecord = async (record) => { }); if (result && result.data) { - if (props.isMobile) { + if (isMobile.value) { // 如果手机,收起历史记录 isCollapsed.value = true; if (props.currentType == "AIchat") { @@ -788,6 +788,12 @@ defineExpose({ // 生命周期 onMounted(() => { + const userAgent = navigator.userAgent; + isMobile.value = + /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( + userAgent + ); + getHistoryList({ model: props.currentType == "AIchat" ? 1 : 2, token: localStorage.getItem("localToken"), diff --git a/src/views/homePage.vue b/src/views/homePage.vue index ad41d96..e4874ed 100644 --- a/src/views/homePage.vue +++ b/src/views/homePage.vue @@ -214,8 +214,8 @@ watch( watch( () => chatStore.chatInput, async (newVal) => { - if(activeTab.value=='AIchat'){ - isInputDisabled.value=chatStore.chatInput; + if (activeTab.value == "AIchat") { + isInputDisabled.value = chatStore.chatInput; } } ); @@ -223,8 +223,8 @@ watch( watch( () => chatStore.emotionInput, async (newVal) => { - if(activeTab.value=='AiEmotion'){ - isInputDisabled.value=chatStore.emotionInput; + if (activeTab.value == "AiEmotion") { + isInputDisabled.value = chatStore.emotionInput; } } ); @@ -714,6 +714,29 @@ const backToHome = () => { } }; +// 8.18金币兑换Token start +const userInfo = ref({ + username: "HomilyLink", + jwcode: "90042088", +}); +const changeRule = ref("1金币=1Token"); +const changeLevelList = ref([ + { gold: 10, token: 10 }, + { gold: 20, token: 20 }, + { gold: 50, token: 50 }, + { gold: 100, token: 100 }, + { gold: 200, token: 200 }, + { gold: 500, token: 500 }, + { gold: 1000, token: 1000 }, +]); + +const shouldPay=ref(0); +const gold=ref(0); + + + +// 8.18金币兑换Token end + onMounted(async () => { throttledJudgeDevice(); // 禁用全局触摸滚动 @@ -1011,26 +1034,34 @@ onUnmounted(() => { - - -
-

试运行期间,AI小财神可以检索全市场数据

-

(每个市场20支股票,股票详情参见【公告】页面)

- +
+
+
+ 头像 +
+
+
{{ userInfo.username }}
+
精网号:{{ userInfo.jwcode }}
+
+
+
兑换规则:{{ changeRule }}
+ +
+
+
兑换Token
+
- - - - - - - - +
+ 应付金额 +
{{ shouldPay }}
+ (金币余额:{{ gold }}) + +
+
立即兑换
@@ -1085,9 +1116,9 @@ onUnmounted(() => { /* 添加平滑滚动效果 */ } -/* .pcTabContent { - margin: 0 6%; -} */ +.pcTabContent { + padding: 0 6%; +} @media (max-width: 768px) { .tab-container { @@ -1605,7 +1636,81 @@ body { } } -.ruleContent { +.changeMsg { + display: flex; + width: 100%; + margin-bottom: 30px; +} + +.changeInfo { + display: flex; + background-color: #f8f8f8; + border-radius: 5px; + padding: 10px 20px; + /* width: 40%; */ + margin-right: 5%; + white-space: nowrap; +} + +.changeImg { + height: 100%; + display: flex; + justify-content: center; + align-items: center; +} + +.changeContent { + display: flex; + flex-direction: column; + font-weight: bold; +} + +.changeRule { + display: flex; + background-color: #f8f8f8; + border-radius: 5px; text-align: center; + align-items: center; + justify-content: center; + color: #4e86fe; + white-space: nowrap; + padding: 5px; + width: 40%; +} + +.changeLevel { + display: flex; + flex-direction: column; +} + +.changeLevelTitle { + font-weight: bold; +} + +.changeNow { + display: flex; + white-space: nowrap; + /* font-weight: bold; */ + margin-bottom: 15px; +} +.changePay { + color: #4e86fe; + margin: 0px 5px; +} + +.changeBtn { + width: 40%; + background-color: #4e86fe; + color: white; + display: flex; + justify-content: center; + align-content: center; + padding: 10px; + border-radius: 5px; + cursor: pointer; +} + +.changeBtn:hover { + background-color: #3a73e6; }