From 0232b2bac8bc13c8091741570e18104163d3411a Mon Sep 17 00:00:00 2001 From: Ethereal <3432649580@qq.com> Date: Wed, 22 Oct 2025 19:25:54 +0800 Subject: [PATCH 01/14] =?UTF-8?q?=E6=89=8B=E6=9C=BA=E5=8F=B7=E5=A2=9E?= =?UTF-8?q?=E6=B7=BB=E4=B8=8D=E5=90=8C=E5=9B=BD=E5=AE=B6=E7=9A=84=E5=8C=BA?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/start/login/login.vue | 169 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 132 insertions(+), 37 deletions(-) diff --git a/pages/start/login/login.vue b/pages/start/login/login.vue index 8e8726f..719c532 100644 --- a/pages/start/login/login.vue +++ b/pages/start/login/login.vue @@ -1,10 +1,10 @@ - \ No newline at end of file From 1aee77cf79aeb61749840015a234738fab8255b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=9D=B0?= Date: Thu, 23 Oct 2025 16:33:14 +0800 Subject: [PATCH 08/14] =?UTF-8?q?=E4=BB=8A=E6=97=A5=E5=B8=82=E5=9C=BA?= =?UTF-8?q?=E6=A6=82=E8=A7=88=E7=9A=84logo=E5=9E=82=E7=9B=B4=E5=B1=85?= =?UTF-8?q?=E4=B8=AD=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/MarketOverview.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/components/MarketOverview.vue b/components/MarketOverview.vue index 7e61726..743b365 100644 --- a/components/MarketOverview.vue +++ b/components/MarketOverview.vue @@ -272,6 +272,7 @@ export default { display: flex; align-items: center; justify-content: center; + align-self: center; } .analysis-brain-icon { From 092b781ef4b0665fc4d66ee63bd3e7671b25b4fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=9D=B0?= Date: Thu, 23 Oct 2025 16:54:23 +0800 Subject: [PATCH 09/14] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/DeepMate.vue | 84 +++++++++++++++++++++++++++++++++++++++---------- pages/home/home.vue | 23 ++++++++++++-- 2 files changed, 88 insertions(+), 19 deletions(-) diff --git a/components/DeepMate.vue b/components/DeepMate.vue index d3e3b3b..e8cb349 100644 --- a/components/DeepMate.vue +++ b/components/DeepMate.vue @@ -5,18 +5,18 @@ DeepMate + 您的市场最佳顾问~ - 您的市场最佳顾问~ - - 今日股票策略推荐是什么? - + + 今日股票策略晨报 + 热门股票分析 @@ -35,7 +35,9 @@ - + + + @@ -78,34 +80,67 @@ .title-left { width: 50%; + display: flex; + flex-direction: column; } .title-right { width: 50%; display: flex; - justify-content: flex-end; + justify-content: center; + align-items: center; } .deepmate-title { font-size: 18px; font-weight: bold; color: #ff4d4f; + display: block; } .deepmate-icon { - width: 30px; - height: 30px; + width: 50px; + height: 50px; margin-left: 0; } .deepmate-subtitle { font-size: 12px; color: #666; - margin-left: 5px; + display: block; + margin-top: 5px; } .deepmate-hotspots { margin: 10px 0; + background-color: #ffffff; + border-radius: 10px; + padding: 10px; +} + +.deepmate-question { + display: flex; + align-items: center; + margin-bottom: 10px; + padding-left: 10px; + position: relative; +} + +.deepmate-question:before { + content: ""; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 4px; + background-color: #ff4d4f; + border-radius: 2px; +} + +.question-text { + font-size: 16px; + font-weight: bold; + color: #333; } .hotspot-item { @@ -124,25 +159,40 @@ display: flex; justify-content: space-between; align-items: center; - background-color: #ffffff; - padding: 8px 10px; - border-radius: 6px; + background-color: #ff4d4f; + padding: 8px 15px; + border-radius: 25px; margin-top: 10px; - border: 1px solid #e0e0e0; + border: none; } .stock-input { flex: 1; height: 36px; font-size: 14px; - color: #333; + color: #ffffff; padding: 0 10px; border: none; + background-color: transparent; } -.send-button { - width: 30px; - height: 30px; +.stock-input::placeholder { + color: rgba(255, 255, 255, 0.8); +} + +.send-button-container { + display: flex; + justify-content: center; + align-items: center; + width: 36px; + height: 36px; + background-color: #ffffff; + border-radius: 50%; margin-left: 10px; } + +.send-button { + width: 20px; + height: 20px; +} \ No newline at end of file diff --git a/pages/home/home.vue b/pages/home/home.vue index 6e2ca89..74777da 100644 --- a/pages/home/home.vue +++ b/pages/home/home.vue @@ -106,7 +106,9 @@ - 机构动向简报 + + 机构动向简报 + {{report.stock}} @@ -534,7 +536,7 @@ export default { .stock-list { display: flex; flex-direction: row; - justify-content: space-between; + justify-content: center; background-color: #f8f8f8; border-radius: 8px; padding: 15px; @@ -644,6 +646,23 @@ export default { padding: 10px; } +.section-title-container { + position: relative; + padding-left: 10px; + margin-bottom: 5px; +} + +.section-title-container:before { + content: ""; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 4px; + background-color: #ff4d4f; + border-radius: 2px; +} + .report-item { background-color: #ffffff; border-radius: 8px; From 97c39e10206520046abeaf16f49d2be7ee18c4b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=9D=B0?= Date: Thu, 23 Oct 2025 17:08:26 +0800 Subject: [PATCH 10/14] =?UTF-8?q?home=E9=A1=B5=E7=9A=84=E8=80=B3=E6=9C=BA?= =?UTF-8?q?=E5=92=8C=E9=93=83=E9=93=9B=E5=9B=BE=E6=A0=87=E6=8D=A2=E6=88=90?= =?UTF-8?q?=E5=9B=BE=E7=89=87=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/home/home.vue | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pages/home/home.vue b/pages/home/home.vue index 74777da..3e0d7ff 100644 --- a/pages/home/home.vue +++ b/pages/home/home.vue @@ -6,11 +6,11 @@ - + DeepChart - + @@ -245,6 +245,12 @@ export default { justify-content: center; } +.header-icon-image { + width: 24px; + height: 24px; + object-fit: contain; +} + .content-container { flex: 1; padding: 10px; From 216e8a469e310719b7499c4ab34074651168cc68 Mon Sep 17 00:00:00 2001 From: Ethereal <3432649580@qq.com> Date: Thu, 23 Oct 2025 17:14:12 +0800 Subject: [PATCH 11/14] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../start/components/login-prompt/login-prompt.vue | 134 ---------- pages/start/login/login.vue | 286 ++++++++++++++++----- static/icons/Check-one-false.png | Bin 0 -> 1079 bytes static/icons/Check-one-true.png | Bin 0 -> 1396 bytes 4 files changed, 215 insertions(+), 205 deletions(-) delete mode 100644 pages/start/components/login-prompt/login-prompt.vue create mode 100644 static/icons/Check-one-false.png create mode 100644 static/icons/Check-one-true.png diff --git a/pages/start/components/login-prompt/login-prompt.vue b/pages/start/components/login-prompt/login-prompt.vue deleted file mode 100644 index 52d43b1..0000000 --- a/pages/start/components/login-prompt/login-prompt.vue +++ /dev/null @@ -1,134 +0,0 @@ - - - - - \ No newline at end of file diff --git a/pages/start/login/login.vue b/pages/start/login/login.vue index ab5e5d7..244398f 100644 --- a/pages/start/login/login.vue +++ b/pages/start/login/login.vue @@ -9,12 +9,16 @@ --> - + 联系客服 @@ -29,32 +33,45 @@ 邮箱/用户名用户名 手机号邮箱 - + - + - + - + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + 接受 用户协议 和 + 隐私政策 + + + 忘记ID/密码 + - + - 或者 + 如果您还没有账号,点击注册 > + @@ -126,15 +213,9 @@ src="../../../static/icons/GoogleIcons.png" mode="aspectFit" > - 通过 Google 继续 + 通过 Google 登录 - - - @@ -151,6 +232,9 @@ const switchType = ref("Email"); // 默认是邮箱注册 const { safeAreaInsets } = uni.getSystemInfoSync(); const codeBtnText = ref("获取验证码"); const isCodeBtnDisabled = ref(false); // 添加验证码按钮禁用状态 +const checkboxUrl = ref("../../../static/icons/Check-one-false.png"); + + // 使用从list.js导入的完整国家列表数据 const countries = ref( @@ -183,7 +267,14 @@ function showCountryPicker() { function goToIndex() { // 返回上一页 - uni.navigateTo({ url: "/pages/start/index/index" }); + uni.navigateTo({ + url: "/pages/start/index/index", + }); +} + +function switchUser() { + // 切换到手机注册 + switchType.value = "User"; } function switchEmail() { @@ -236,7 +327,6 @@ function loginWithApple() { uni.getUserInfo({ provider: "apple", success: function (info) { - // 获取用户信息成功, info.authResult中保存登录认证数据 console.log(info); }, }); @@ -259,7 +349,6 @@ function loginWithGoogle() { uni.getUserInfo({ provider: "google", success: function (info) { - // 获取用户信息成功, info.authResult保存用户信息 console.log(info); }, }); @@ -290,27 +379,53 @@ function onPhoneInput(e) { } } -function sendCode(){ +function sendCode() { // 如果按钮已禁用,则不执行后续逻辑 if (isCodeBtnDisabled.value) return; - + // 设置按钮为禁用状态 isCodeBtnDisabled.value = true; - codeBtnText.value = "重新发送" - let time = 6 + codeBtnText.value = "重新发送"; + let time = 6; const timer = setInterval(() => { - time-- - codeBtnText.value = "重新发送 " + time + "s" + time--; + codeBtnText.value = "重新发送 " + time + "s"; if (time <= 0) { - clearInterval(timer) - codeBtnText.value = "重新发送" + clearInterval(timer); + codeBtnText.value = "重新发送"; // 倒计时结束后启用按钮 isCodeBtnDisabled.value = false; } - }, 1000) - + }, 1000); + + return; +} + +function openAgreement() { + // 打开用户协议 + console.log("打开用户协议"); + uni.navigateTo({ + url: "/pages/start/agreement/agreement", + }); +} + +function openPrivacy() { + // 打开隐私政策 + console.log("打开隐私政策"); + uni.navigateTo({ + url: "/pages/start/privacy/privacy", + }); +} - return +function recoverPassword() { + // 忘记密码 + console.log("忘记密码"); +} + + +function changeCheckbox(){ + agreed.value = !agreed.value; + checkboxUrl.value = agreed.value ? "../../../static/icons/Check-one-true.png" : "../../../static/icons/Check-one-false.png"; } @@ -320,7 +435,7 @@ function sendCode(){ flex-direction: column; align-items: center; justify-content: center; - padding: 0 40rpx; + padding: 0 70rpx; height: 100vh; background-color: #ffffff; } @@ -356,6 +471,7 @@ function sendCode(){ height: 40rpx; /* margin-right: 10rpx; */ } + .back-btn, .headphone-btn { font-size: 36rpx; @@ -379,6 +495,7 @@ function sendCode(){ /* text-align: left; */ /* align-self: flex-start; */ } + .switch-container { display: flex; margin-bottom: 40rpx; @@ -398,7 +515,8 @@ function sendCode(){ bottom: 0; left: 50%; transform: translateX(-50%); - width: 60%; /* 控制边框宽度 */ + width: 60%; + /* 控制边框宽度 */ height: 2rpx; background-color: transparent; } @@ -415,14 +533,14 @@ function sendCode(){ bottom: 0; left: 50%; transform: translateX(-50%); - width: 30%; /* 控制边框宽度 */ + width: 30%; + /* 控制边框宽度 */ height: 7rpx; background-color: #333333; } .input-container { width: 100%; - margin-bottom: 40rpx; } /* 添加图标输入框样式 */ @@ -498,7 +616,7 @@ function sendCode(){ height: 100%; border: none; background-color: transparent; - padding: 0 20rpx; + padding: 0 0rpx; } .send-code-btn { @@ -512,34 +630,62 @@ function sendCode(){ border-radius: 4px; background: #000; } +.send-code-btn-email { + width: 200rpx; + height: 60rpx; + display: inline-flex; + padding: 0rpx 10rpx; + justify-content: center; + align-items: center; + gap: 10px; + border-radius: 4px; + background: #000; + margin-right: 15rpx; +} .send-code-btn-disabled { - background: #E6E6E6; /* 禁用状态下的灰色背景 */ + background: #e6e6e6; + /* 禁用状态下的灰色背景 */ } + .send-code-btn-disabled-text { color: #999999 !important; } - -.send-code-text{ +.send-code-text { color: #fff; font-size: 28rpx; } +.agreement-container-one { + display: flex; + align-items: center; + align-self: flex-start; + margin-bottom: 80rpx; +} + .agreement-container { - /* display: flex; */ + display: flex; align-items: center; margin-bottom: 40rpx; + margin-top: -75.5rpx; align-self: flex-start; } .checkbox { - width: 10rpx; - height: 10rpx; - margin-right: 30rpx; + width: 30rpx; + height: 30rpx; + margin-left: 20rpx; /* flex: content; */ } +.agreement-text-one { + font-size: 22rpx; + color: #666666; + text-align: center; + margin-left: 10rpx; +} + .agreement-text { margin-left: 20rpx; font-size: 24rpx; @@ -573,14 +719,17 @@ function sendCode(){ width: 100%; margin-bottom: 60rpx; } + .third-party-text { + color: #ffffff; font-weight: bold; + white-space: pre; } .third-party-btn { width: 100%; height: 80rpx; - background-color: white; + background-color: rgb(0, 0, 0); border: 2rpx solid #e5e5e5; border-radius: 40rpx; display: flex; @@ -591,15 +740,10 @@ function sendCode(){ color: #333333; } +.google-icon, .apple-icon { - width: 30rpx; - height: 30rpx; - margin-right: 20rpx; -} - -.google-icon { - width: 30rpx; - height: 30rpx; + width: 60rpx; + height: 60rpx; margin-right: 20rpx; } diff --git a/static/icons/Check-one-false.png b/static/icons/Check-one-false.png new file mode 100644 index 0000000000000000000000000000000000000000..e924fd2743443d6c79b0fc604cce6d129a4f2d40 GIT binary patch literal 1079 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 Date: Thu, 23 Oct 2025 18:32:31 +0800 Subject: [PATCH 12/14] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E9=A1=B5=E9=9D=A2=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/login-prompt.vue | 9 +- pages/start/Registration/Registration.vue | 540 ++++++++++++++++++++++-------- pages/start/login/login.vue | 11 +- 3 files changed, 415 insertions(+), 145 deletions(-) diff --git a/components/login-prompt.vue b/components/login-prompt.vue index 981bb60..e59ffbc 100644 --- a/components/login-prompt.vue +++ b/components/login-prompt.vue @@ -10,7 +10,7 @@ - 如果您还没有账号,点击注册 + 如果您还没有账号,点击注册 @@ -49,6 +49,13 @@ const goLogin = () => { }); hide(); }; +// 跳转到登录页面 +const goRegister = () => { + uni.navigateTo({ + url: "/pages/start/Registration/Registration", + }); + hide(); +}; // 以访客身份继续 const continueAsVisitor = () => { diff --git a/pages/start/Registration/Registration.vue b/pages/start/Registration/Registration.vue index 8116282..50a98eb 100644 --- a/pages/start/Registration/Registration.vue +++ b/pages/start/Registration/Registration.vue @@ -1,12 +1,25 @@ @@ -192,7 +322,7 @@ function goToLogin() { flex-direction: column; align-items: center; justify-content: center; - padding: 0 40rpx; + padding: 0 70rpx; height: 100vh; background-color: #ffffff; } @@ -222,6 +352,13 @@ function goToLogin() { justify-content: flex-end; } +.icons { + margin: 20rpx; + width: 40rpx; + height: 40rpx; + /* margin-right: 10rpx; */ +} + .back-btn, .headphone-btn { font-size: 36rpx; @@ -245,6 +382,7 @@ function goToLogin() { /* text-align: left; */ /* align-self: flex-start; */ } + .switch-container { display: flex; margin-bottom: 40rpx; @@ -259,12 +397,13 @@ function goToLogin() { } .switch-item::after { - content: ''; + content: ""; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); - width: 60%; /* 控制边框宽度 */ + width: 60%; + /* 控制边框宽度 */ height: 2rpx; background-color: transparent; } @@ -275,47 +414,165 @@ function goToLogin() { } .switch-item.active::after { - content: ''; + content: ""; position: absolute; top: 60rpx; bottom: 0; left: 50%; transform: translateX(-50%); - width: 30%; /* 控制边框宽度 */ + width: 30%; + /* 控制边框宽度 */ height: 7rpx; background-color: #333333; } .input-container { width: 100%; - margin-bottom: 40rpx; +} + +/* 添加图标输入框样式 */ +.input-with-icon { + display: flex; + align-items: center; + width: 100%; + height: 80rpx; + border-bottom: 2rpx solid #e5e5e5; + margin-bottom: 20rpx; +} + +.input-icon { + width: 40rpx; + height: 40rpx; + margin: 0 20rpx; } .input-field { - width: 90%; + flex: 1; height: 80rpx; - border-radius: 20rpx; - border: 2rpx solid #e5e5e5; - padding: 0 30rpx; + padding: 15rpx 0; + font-size: 28rpx; + color: #333333; + border: none; + background-color: transparent; +} + +.phone-input-container { + display: flex; + align-items: center; + width: 95.8%; + height: 80rpx; + /* border-radius: 20rpx; */ + /* border: 2rpx solid #e5e5e5; */ + /* background-color: #f5f5f5; */ + padding: 0 10rpx; + border-bottom: 2rpx solid #e5e5e5; + margin-bottom: 20rpx; +} + +.country-code-selector { + display: flex; + align-items: center; + padding: 0 10rpx; + padding-bottom: 1rpx; + height: 100%; + /* border-right: 2rpx solid #e5e5e5; */ + /* background-color: #f5f5f5; */ + border-radius: 20rpx 0 0 20rpx; +} + +.country-code { font-size: 28rpx; color: #333333; - background-color: #f5f5f5; + margin-right: 10rpx; +} + +.country-flag-img { + width: 40rpx; + height: 40rpx; + margin-right: 10rpx; +} + +.arrow-down { + font-size: 20rpx; + color: #999999; +} + +.phone-input { + flex: 1; + width: auto; + height: 100%; + border: none; + background-color: transparent; + padding: 0 0rpx; +} + +.send-code-btn { + width: 200rpx; + height: 60rpx; + display: inline-flex; + padding: 0rpx 10rpx; + justify-content: center; + align-items: center; + gap: 10px; + border-radius: 4px; + background: #000; +} +.send-code-btn-email { + width: 200rpx; + height: 60rpx; + display: inline-flex; + padding: 0rpx 10rpx; + justify-content: center; + align-items: center; + gap: 10px; + border-radius: 4px; + background: #000; + margin-right: 15rpx; +} + +.send-code-btn-disabled { + background: #e6e6e6; + /* 禁用状态下的灰色背景 */ +} + +.send-code-btn-disabled-text { + color: #999999 !important; +} + +.send-code-text { + color: #fff; + font-size: 28rpx; +} + +.agreement-container-one { + display: flex; + align-items: center; + align-self: flex-start; + margin-bottom: 80rpx; } .agreement-container { - /* display: flex; */ + display: flex; align-items: center; margin-bottom: 40rpx; + margin-top: -75.5rpx; align-self: flex-start; } .checkbox { - width: 10rpx; - height: 10rpx; - margin-right: 30rpx; + width: 30rpx; + height: 30rpx; + margin-left: 20rpx; /* flex: content; */ } +.agreement-text-one { + font-size: 22rpx; + color: #666666; + text-align: center; + margin-left: 10rpx; +} + .agreement-text { margin-left: 20rpx; font-size: 24rpx; @@ -331,7 +588,7 @@ function goToLogin() { .register-btn { width: 100%; height: 80rpx; - background-color: #333333; + background-color: #000000; color: white; font-size: 32rpx; font-weight: bold; @@ -340,25 +597,29 @@ function goToLogin() { } .or-text { + flex-direction: column; font-size: 24rpx; color: #999999; - margin-bottom: 40rpx; + margin-bottom: 100rpx; } .third-party-login { width: 100%; margin-bottom: 60rpx; } + .third-party-text { + color: #ffffff; font-weight: bold; + white-space: pre; } .third-party-btn { width: 100%; height: 80rpx; - background-color: white; - border: 2rpx solid rgb(249, 249, 249); - border-radius: 20rpx; + background-color: rgb(0, 0, 0); + border: 2rpx solid #e5e5e5; + border-radius: 40rpx; display: flex; align-items: center; justify-content: center; @@ -367,15 +628,10 @@ function goToLogin() { color: #333333; } +.google-icon, .apple-icon { - width: 30rpx; - height: 30rpx; - margin-right: 20rpx; -} - -.google-icon { - width: 30rpx; - height: 30rpx; + width: 60rpx; + height: 60rpx; margin-right: 20rpx; } diff --git a/pages/start/login/login.vue b/pages/start/login/login.vue index 244398f..354e0d8 100644 --- a/pages/start/login/login.vue +++ b/pages/start/login/login.vue @@ -187,6 +187,12 @@ >忘记ID/密码 + + + + 占位符 + + @@ -667,8 +673,8 @@ function changeCheckbox(){ .agreement-container { display: flex; align-items: center; - margin-bottom: 40rpx; - margin-top: -75.5rpx; + margin-bottom: 30rpx; + margin-top: -60rpx; align-self: flex-start; } @@ -690,6 +696,7 @@ function changeCheckbox(){ margin-left: 20rpx; font-size: 24rpx; color: #666666; +white-space: nowrap; } .link { From b678f207e8f84eec7494361aaab39a750108d5f5 Mon Sep 17 00:00:00 2001 From: Ethereal <3432649580@qq.com> Date: Thu, 23 Oct 2025 20:40:36 +0800 Subject: [PATCH 13/14] =?UTF-8?q?=E6=B3=A8=E5=86=8Ctab=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E5=88=B0=E7=99=BB=E5=BD=95=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/footerBar-cn.vue | 192 ++++++++++++++++++++++++++ components/footerBar.vue | 2 +- pages/deepMate/deepMate.vue | 220 +++++++++++++++++------------- pages/start/Registration/Registration.vue | 11 +- pages/start/login/login.vue | 29 ++-- 5 files changed, 346 insertions(+), 108 deletions(-) create mode 100644 components/footerBar-cn.vue diff --git a/components/footerBar-cn.vue b/components/footerBar-cn.vue new file mode 100644 index 0000000..43a7f01 --- /dev/null +++ b/components/footerBar-cn.vue @@ -0,0 +1,192 @@ + + + + + diff --git a/components/footerBar.vue b/components/footerBar.vue index 21f703a..6454f19 100644 --- a/components/footerBar.vue +++ b/components/footerBar.vue @@ -73,7 +73,7 @@ const tabChange = (value) => { }) } else if (value == 3) { //DeepMate uni.redirectTo({ - url: '/pages/home/deepMate', + url: '/pages/deepMate/deepMate', animationType: 'fade-in' }) } else if (value == 4) { //深度探索 diff --git a/pages/deepMate/deepMate.vue b/pages/deepMate/deepMate.vue index 558e4ab..889c1c4 100644 --- a/pages/deepMate/deepMate.vue +++ b/pages/deepMate/deepMate.vue @@ -3,14 +3,23 @@ - + DeepMate - - + + - + + @@ -136,7 +169,10 @@ const { safeAreaInsets } = uni.getSystemInfoSync(); import { ref, onMounted, nextTick } from "vue"; +import footerBar from "../../components/footerBar-cn.vue"; + +const type = ref('member') const inputMessage = ref(""); const isSending = ref(false); const uuid = ref(""); @@ -144,24 +180,24 @@ const messages = ref([]); const hotTopics = ref([ { id: 1, - text: '英伟达(NVDA)股票情绪温度?', - icon: 'https://d31zlh4on95l9h.cloudfront.net/images/7ed58be0f4b81aeb398d9ba2534a624b.svg' + text: "英伟达(NVDA)股票情绪温度?", + icon: "https://d31zlh4on95l9h.cloudfront.net/images/7ed58be0f4b81aeb398d9ba2534a624b.svg", }, { id: 2, - text: '博通(AVGO)明天还能涨吗?', - icon: 'https://d31zlh4on95l9h.cloudfront.net/images/7ed58be0f4b81aeb398d9ba2534a624b.svg' + text: "博通(AVGO)明天还能涨吗?", + icon: "https://d31zlh4on95l9h.cloudfront.net/images/7ed58be0f4b81aeb398d9ba2534a624b.svg", }, { id: 3, - text: '为什么Fluence Energy(FLNC)会暴涨?', - icon: 'https://d31zlh4on95l9h.cloudfront.net/images/7ed58be0f4b81aeb398d9ba2534a624b.svg' + text: "为什么Fluence Energy(FLNC)会暴涨?", + icon: "https://d31zlh4on95l9h.cloudfront.net/images/7ed58be0f4b81aeb398d9ba2534a624b.svg", }, { id: 4, - text: '为什么Fluence Energy(FLNC)会暴涨?', - icon: 'https://d31zlh4on95l9h.cloudfront.net/images/7ed58be0f4b81aeb398d9ba2534a624b.svg' - } + text: "为什么Fluence Energy(FLNC)会暴涨?", + icon: "https://d31zlh4on95l9h.cloudfront.net/images/7ed58be0f4b81aeb398d9ba2534a624b.svg", + }, ]); // 初始化 @@ -177,19 +213,19 @@ onMounted(() => { // 初始化 UUID const initUUID = () => { - let storedUUID = uni.getStorageSync('user_uuid'); + let storedUUID = uni.getStorageSync("user_uuid"); if (!storedUUID) { storedUUID = generateUUID(); - uni.setStorageSync('user_uuid', storedUUID); + uni.setStorageSync("user_uuid", storedUUID); } uuid.value = storedUUID; }; // 生成简单UUID const generateUUID = () => { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { - var r = Math.random() * 16 | 0, - v = c == 'x' ? r : (r & 0x3 | 0x8); + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) { + var r = (Math.random() * 16) | 0, + v = c == "x" ? r : (r & 0x3) | 0x8; return v.toString(16); }); }; @@ -197,62 +233,59 @@ const generateUUID = () => { // 新会话 const newChat = () => { messages.value = []; - uni.removeStorageSync('user_uuid'); + uni.removeStorageSync("user_uuid"); initUUID(); }; // 跳转到空白页 const goBlank = () => { uni.navigateTo({ - url: '/pages/blank/blank' + url: "/pages/blank/blank", }); }; // 发送消息 const sendMessage = () => { if (inputMessage.value.trim() === "" || isSending.value) return; - + const userMessage = { content: inputMessage.value, isUser: true, isThinking: false, - isTyping: false + isTyping: false, }; - + messages.value.push(userMessage); inputMessage.value = ""; - + // 滚动到底部 nextTick(() => { scrollToBottom(); }); - + // 模拟机器人回复 simulateBotResponse(userMessage.content); }; - // 发送消息 const sendMessageList = (listMessage) => { - console.log(listMessage); - - + const userMessage = { content: listMessage, isUser: true, isThinking: false, - isTyping: false + isTyping: false, }; - + messages.value.push(userMessage); inputMessage.value = ""; - + // 滚动到底部 nextTick(() => { scrollToBottom(); }); - + // 模拟机器人回复 simulateBotResponse(userMessage.content); }; @@ -260,55 +293,55 @@ const sendMessageList = (listMessage) => { // 模拟机器人回复 const simulateBotResponse = (userMessage) => { isSending.value = true; - + // 添加机器人加载消息 const botMsg = { content: "", isUser: false, isTyping: true, - isThinking: false + isThinking: false, }; - + messages.value.push(botMsg); - + // 滚动到底部 nextTick(() => { scrollToBottom(); }); - + // 模拟流式响应 let responseText = `我已经收到您的消息: "${userMessage}"。作为您的股市顾问,我可以为您提供专业的投资建议。请问您想了解哪方面的信息?`; let index = 0; - + const typeWriter = () => { if (index < responseText.length) { botMsg.content += responseText.charAt(index); index++; - + // 滚动到底部 scrollToBottom(); - + setTimeout(typeWriter, 30); } else { botMsg.isTyping = false; isSending.value = false; } }; - + setTimeout(typeWriter, 500); }; // 滚动到底部 const scrollToBottom = () => { const query = uni.createSelectorQuery(); - query.select('#messageList').boundingClientRect(); + query.select("#messageList").boundingClientRect(); query.selectViewport().scrollOffset(); - + query.exec((res) => { if (res[0] && res[1]) { uni.pageScrollTo({ scrollTop: res[0].height, - duration: 100 + duration: 100, }); } }); @@ -349,8 +382,6 @@ const scrollToTop = () => { } .header-center .title { - - font-size: 36rpx; font-weight: bold; color: #333333; @@ -434,7 +465,7 @@ const scrollToTop = () => { } .recommend-card { - background: url('https://d31zlh4on95l9h.cloudfront.net/images/4da1d629a55c307c3605ca15bf15189a.svg'); + background: url("https://d31zlh4on95l9h.cloudfront.net/images/4da1d629a55c307c3605ca15bf15189a.svg"); background-repeat: no-repeat; /* border-radius: 20rpx; */ padding: 40rpx; @@ -483,14 +514,13 @@ const scrollToTop = () => { } .arrow-icon { -background: url('https://d31zlh4on95l9h.cloudfront.net/images/40d94054644f6e3f1c366751f07f0010.svg'); -background-repeat: no-repeat; -left: 0.5rem; -top: 1.8rem; -background-size: 100% 100%; -width: 60rpx; -height: 60rpx; - + background: url("https://d31zlh4on95l9h.cloudfront.net/images/40d94054644f6e3f1c366751f07f0010.svg"); + background-repeat: no-repeat; + left: 0.5rem; + top: 1.8rem; + background-size: 100% 100%; + width: 60rpx; + height: 60rpx; } .interest-section { @@ -661,7 +691,7 @@ height: 60rpx; padding: 15rpx 20rpx; background-color: rgb(220, 31, 29); border-radius: 100rpx; - display: flex; + display: flex; align-items: center; justify-content: center; @@ -693,7 +723,7 @@ height: 60rpx; } .send-button { - background: url('https://d31zlh4on95l9h.cloudfront.net/images/95f1ea2262e9157db13c93c0dc1c5d96.svg'); + background: url("https://d31zlh4on95l9h.cloudfront.net/images/95f1ea2262e9157db13c93c0dc1c5d96.svg"); background-repeat: no-repeat; background-size: 100% 100%; height: 50rpx; @@ -753,4 +783,8 @@ height: 60rpx; .back-to-top:active { transform: scale(0.96); } +.static-footer { + position: fixed; + bottom: 0; +} \ No newline at end of file diff --git a/pages/start/Registration/Registration.vue b/pages/start/Registration/Registration.vue index 50a98eb..71c6aa2 100644 --- a/pages/start/Registration/Registration.vue +++ b/pages/start/Registration/Registration.vue @@ -154,7 +154,8 @@ >已有账号?登录 - + + @@ -162,7 +163,10 @@ import { ref } from "vue"; // 导入完整的国家列表 import countryList from "../login/list"; +import footerBar from '../../../components/footerBar-cn.vue' + +const type = ref('member') const email = ref(""); const password = ref(""); const phone = ref(""); @@ -652,4 +656,9 @@ function changeCheckbox() { margin-left: 10rpx; text-decoration: underline; } + +.static-footer { + position: fixed; + bottom: 0; +} \ No newline at end of file diff --git a/pages/start/login/login.vue b/pages/start/login/login.vue index 354e0d8..b931c69 100644 --- a/pages/start/login/login.vue +++ b/pages/start/login/login.vue @@ -121,7 +121,6 @@ placeholder="请输入验证码" v-model="password" /> - @@ -173,10 +172,7 @@ - + 接受 用户协议隐私政策忘记ID/密码 - + - 占位符 + 占位符 @@ -222,6 +218,7 @@ 通过 Google 登录 + @@ -229,7 +226,9 @@ import { ref } from "vue"; // 导入完整的国家列表 import countryList from "./list.js"; +import footerBar from '../../../components/footerBar-cn' +const type = ref('member') const email = ref(""); const password = ref(""); const phone = ref(""); @@ -240,8 +239,6 @@ const codeBtnText = ref("获取验证码"); const isCodeBtnDisabled = ref(false); // 添加验证码按钮禁用状态 const checkboxUrl = ref("../../../static/icons/Check-one-false.png"); - - // 使用从list.js导入的完整国家列表数据 const countries = ref( countryList.list.map((item) => ({ @@ -428,10 +425,11 @@ function recoverPassword() { console.log("忘记密码"); } - -function changeCheckbox(){ +function changeCheckbox() { agreed.value = !agreed.value; - checkboxUrl.value = agreed.value ? "../../../static/icons/Check-one-true.png" : "../../../static/icons/Check-one-false.png"; + checkboxUrl.value = agreed.value + ? "../../../static/icons/Check-one-true.png" + : "../../../static/icons/Check-one-false.png"; } @@ -696,7 +694,7 @@ function changeCheckbox(){ margin-left: 20rpx; font-size: 24rpx; color: #666666; -white-space: nowrap; + white-space: nowrap; } .link { @@ -771,4 +769,9 @@ white-space: nowrap; margin-left: 10rpx; text-decoration: underline; } + +.static-footer { + position: fixed; + bottom: 0; +} \ No newline at end of file From 8c78b3929477cafdc31c85294e59161b9c941eb1 Mon Sep 17 00:00:00 2001 From: Ethereal <3432649580@qq.com> Date: Fri, 24 Oct 2025 10:46:31 +0800 Subject: [PATCH 14/14] =?UTF-8?q?=E4=BC=98=E5=8C=96DeepMate=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/deepMate/deepMate.vue | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/pages/deepMate/deepMate.vue b/pages/deepMate/deepMate.vue index 889c1c4..e4ebce2 100644 --- a/pages/deepMate/deepMate.vue +++ b/pages/deepMate/deepMate.vue @@ -29,15 +29,18 @@ -