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 @@
-
+
-
+
<
@@ -43,24 +43,22 @@
placeholder="输入邮箱/用户名"
v-model="email"
/>
-
+
+
+ {{ selectedCountry.flag }}
+ {{ selectedCountry.code }}
+ ▼
+
+
+
-
-
-
@@ -105,9 +103,38 @@ const agreed = ref(false);
const switchType = ref("Email"); // 默认是邮箱注册
const { safeAreaInsets } = uni.getSystemInfoSync();
+// 国家前缀数据(添加国旗)
+const countries = ref([
+ { name: '中国', code: '+86', flag: '🇨🇳' },
+ { name: '美国', code: '+1', flag: '🇺🇸' },
+ { name: '英国', code: '+44', flag: '🇬🇧' },
+ { name: '日本', code: '+81', flag: '🇯🇵' },
+ { name: '韩国', code: '+82', flag: '🇰🇷' },
+ { name: '德国', code: '+49', flag: '🇩🇪' },
+ { name: '法国', code: '+33', flag: '🇫🇷' },
+ { name: '加拿大', code: '+1', flag: '🇨🇦' },
+ { name: '澳大利亚', code: '+61', flag: '🇦🇺' },
+ { name: '俄罗斯', code: '+7', flag: '🇷🇺' },
+ { name: '印度', code: '+91', flag: '🇮🇳' },
+ { name: '巴西', code: '+55', flag: '🇧🇷' },
+]);
+
+// 默认选中的国家
+const selectedCountry = ref(countries.value[0]);
+
+// 显示国家选择器
+function showCountryPicker() {
+ uni.showActionSheet({
+ itemList: countries.value.map(country => `${country.flag} ${country.name} ${country.code}`),
+ success: function (res) {
+ selectedCountry.value = countries.value[res.tapIndex];
+ }
+ });
+}
+
function goToIndex() {
// 返回上一页
- uni.navigateTo({ url: '/pages/start/index/index' });
+ uni.navigateTo({ url: "/pages/start/index/index" });
}
function switchEmail() {
@@ -121,23 +148,33 @@ function switchPhone() {
}
function register() {
- // 注册逻辑
- if (!email.value) {
- uni.showToast({
- title: "请输入邮箱地址",
- icon: "none",
- });
- return;
+ if (switchType.value === "Email") {
+ // 登录逻辑
+ if (!email.value) {
+ uni.showToast({
+ title: "请输入邮箱地址",
+ icon: "none",
+ });
+ return;
+ }
+
+ // 发送登录请求
+ console.log("登录:", email.value);
}
- if (!agreed.value) {
- uni.showToast({
- title: "请同意用户协议和隐私政策",
- icon: "none",
- });
- return;
+
+ if(switchType.value === "Phone"){
+ // 登录逻辑
+ if (!phone.value) {
+ uni.showToast({
+ title: "请输入手机号码",
+ icon: "none",
+ });
+ return;
+ }
+
+ // 发送登录请求
+ console.log("登录:", phone.value);
}
- // 发送注册请求
- console.log("注册:", email.value);
}
function loginWithApple() {
@@ -156,6 +193,18 @@ function goToRegistration() {
url: "/pages/start/Registration/Registration",
});
}
+
+function onPhoneInput(e) {
+ // 确保只允许输入数字
+ const value = e.detail.value;
+ // 使用 isNaN 检查是否为有效数字
+ if (isNaN(value)) {
+ phone.value = '';
+ } else {
+ phone.value = value;
+ }
+}
+
\ No newline at end of file
From 62774fc1fd8fd5fd37e8e98fd8603b30a4720396 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=AE=8B=E6=9D=B0?=
Date: Thu, 23 Oct 2025 16:20:57 +0800
Subject: [PATCH 07/14] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=A1=86=E6=9E=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components/DeepMate.vue | 148 ++++++++++
components/MarketOverview.vue | 384 ++++++++++++++++++++++++
pages/home/home.vue | 674 +++++++++++++++++++++++++++++++++++++++++-
3 files changed, 1197 insertions(+), 9 deletions(-)
create mode 100644 components/DeepMate.vue
create mode 100644 components/MarketOverview.vue
diff --git a/components/DeepMate.vue b/components/DeepMate.vue
new file mode 100644
index 0000000..d3e3b3b
--- /dev/null
+++ b/components/DeepMate.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+ 今日股票策略推荐是什么?
+
+
+
+ 热门股票分析
+
+
+ 行业趋势预测
+
+
+ 市场风险提示
+
+
+ 投资策略建议
+
+
+ 财经新闻解读
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/components/MarketOverview.vue b/components/MarketOverview.vue
new file mode 100644
index 0000000..7e61726
--- /dev/null
+++ b/components/MarketOverview.vue
@@ -0,0 +1,384 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 美元/日元
+ 151.13
+ +1.62%
+
+
+ 美元/韩元
+ 1424.900
+ -2.92%
+
+
+ 美元/英镑
+ 0.730
+ +2.92%
+
+
+
+
+
+ 智能解读
+
+
+
+
+
+
+
+
+
+
+ 今日市场情报: 偏乐观
+
+
+
+ 市场风险评级: 需警惕潜在风险
+
+
+
+ 早盘解析: 今日高开, 芯片、稀土、公共
+
+
+
+
+
+
+
+
+
+
+
+ 选择市场
+
+
+
+
+
+
+
+ {{ market.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/home/home.vue b/pages/home/home.vue
index 986e8f6..6e2ca89 100644
--- a/pages/home/home.vue
+++ b/pages/home/home.vue
@@ -2,27 +2,683 @@
- 首页
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 主力追踪
+
+
+
+ 主力资达
+
+
+
+ 主力解码
+
+
+
+ 主力资金流
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.name}}
+ {{item.code}}
+
+
+ {{item.price}}
+ {{item.change > 0 ? '+' : ''}}{{item.change}}%
+
+
+
+
+
+
+
+
+
+
+ 机构动向简报
+
+
+ {{report.stock}}
+ {{report.status}}
+
+
+ 查看更多 >>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
\ 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 @@
@@ -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/密码
+
-
+
- 或者
+ 如果您还没有账号,点击注册 >
+
@@ -117,7 +204,7 @@
src="../../../static/icons/appleIcons.png"
mode="aspectFit"
>
- 通过 Apple 继续
+ 通过 Apple 登录
@@ -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
zcmV-71jze|P)Px&@kvBMR9HvNSKn(CR}}v4?9MhJ$qoea+ZqVj7+T2U&XATt?+Rdid^{Ws2Co75
z48Y;Np30rK1mF+bwnqjB2lHNQJpoKkPJW>%$`t@dXtAOwsI9Ffq>Z8
zwry-|Y+!9|4f%Xt^c}~MHeWi9bGg62|6w^0WdTe~Onedu1nvVkM2kY95IQDvDRa8G`njMJ%`nwrqk(gIageceEzP{7K{
z3No3D^hVlooRLyb>;T~2`6Rhr8gFlJ7w)g7an7-@u&^D(OWU^lx5va5fMhaRS11&2
z060U&T3cH|#u=-aD7#{#SXf+K6y9*#P0O+_4h;=$(C@9?FM$9
zb}uA!9n;g(p!fjr3cxADFeXX?{7R=McXxJnqOq~D8n1h<$!4>dpP!fUaMv)5^IHIj
z;c~g$B7jCpudc4HiqY;D9i4t|ZVv0~f|oLyrhQ0^DXt)qNE~+@=TGXlwY7=6KZr)L
zK0rRs#49z*jU7i^bkJ^}M`CypTvF27;qn>!z4O-dwchd4=DI%W@e;7
zAu6QD=-CbcuK4@~zy%s;Zf+JTs9G%`qqxj-d{0%?@1$7u6eOerNDaLS2r@1O36T&0
zZ$Tmvo2L0W=X{hT8G#^AR4d7rmzRYaa*b2nFs$qPqwP6fR_>UlImkJGAVnz&6nZ87
zh|+XAEr`c$Wc*8A*T+i<##3*(p14|0mJ<+?=#nvu#iDrU=_@D88Dp19PcDJ%r7$6e
z{FJ1EPkJQj_0+cQAFC=%q%l{l9%YQ3@Y-kAbbD-002ovPDHLkV1hPx)E=fc|R9HvFS9?fXR~Y}Dn@4MdmX;39`e1Wmqje4S1{0;ipc}MhFxbG-S^5}m
z%+{fW(cy-$Kioq)+M!FU9hJ2eolNQ0!cfOn7zkMc_r|465T$=?#VYL-6=|BsJ>xsg
z&0-!VafO|~?&Eyl_dDP7cNqTX#qzO#@ZiC9Gcz;Qk|dRJ&UZ1!ib!75wEK*)yPR{i
zq@-kYXlUqBu6nZqsH&cIOiiKlc~w;^)6??60tpus6ri-U6qS{g*u8r<
z>~=dW7K_k3KR=HU3b-Q6uf#nxSe!Engu^LdhmQvk$H-cH8NW;1GPYH;-E
zQEb_=C9eoPc<=yyeSPTf??)&UB3Vk(resg701%70kKC>sKY8*b)~{cmmvMbF8Fstf
z7#tkbK};BpMrUG9!~xjtc8k$ybTh_Ikb+~!j-kH39t7mSEXsw>&QA39_UdXn&1Uoa
z9*^fCeTV~aI2_dgDDGBDwu=`p=I!=OKq(x@j~@r+2Y^2T98wg;n+)I^04FHhTUuJM
zfB*h9ADsU^hln}`Y1>v9c8Vgx$jAs&vZf?f-_&B}ZUszb!J~cJTJl76P=
zy1F`0;;m(o@#Us7i2OP##0@X*LgCQ&aaEKHRGzdnO?$=f_x~aQ$g+HfF?N=oDfUjM
zGjIFxllKn_S?QS_*zn26Fup{o^>~erj^gy`)B0
z2$N4v#x32QFg$NtagfEuMeN(RPkiH?Us6@IUI1`79DM-Zq-U?!3xmP1LNIvY5`yR5
zkhX7yhjInoVk_
zP*fzwe0-%dwBhWh2wlH{&?+%cP9*9F2M!z%pEXVE@caEux(6u!)c?`m-j2O{_ogJ_
zV^^O?sDB{kU#6HRZ=^|i>eMMc2R=|$^^3g9FxeBNDP6XwAdG#;Scb7i^cS(6va&MK
zh%${`-4o#-Zh~2@uw1^7lI`gLP#dO3bo=&g`aQR>u<&%e5ydLuGWDTcTCpfg|L>5j
zB`}oj%yi%t-;-ML6-80rq78||i0Xre(GF_ESFc`uqQi({A0sIDV#7$Z%Q%1-`8)?e
z^x-2%j)<1LRxY3)pEyBRR~N2byQU}Kl}IG=o=#S?5|W07hBb2n;sVs#bwa{9pD>wB
z=?RIBSeE728DkwfB|CihFluXS^9~2qd{0jg1_lNaDOsbcs{c->#1JHAj4aEQj4>*B
zK}w0B(3IS>XHV8KO=Fiby`!T;Cm^JP_+X8ys=p;?Y(`oh^Tg+gwA^O1iAm{jI0UFo
zn>Go3%gf6M1Omda$Kw&nrqgnAJAe<9Pp$*WdNB!y!|jYQqDQOq@zi1@>h+`1Xl!27
z#YERfWYuIcm2=MP7-Mub+nlBF?*q62;Ii3l4(Q}FlT6mTVWJ>)%)-LLYQ~t%Io~Ep
zlDH>w&KDVD=Zv9z=_N*ykz?vyDBa}|CP`~CqVmVZA_mLFjN0000
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 @@
-
-
- <
-
+
+
- 🎧
+
+
@@ -14,95 +27,186 @@
- 欢迎来到 DeepChart
+ 欢迎来到DeepChart
- 邮箱
- 手机号
+ 邮箱
+ 手机号
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ selectedCountry.code }}
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+ 接受 用户协议 和
隐私政策
+
- 或者
-
-
-
-
-
- 通过 Apple 继续
-
-
-
-
- 通过 Google 继续
-
-
+ 已有账号?登录
+
-
-
- 已有账号?
- 登录
-
+
@@ -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 @@
@@ -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 @@
-
+
-
+
{
});
// 模拟流式响应
- let responseText = `我已经收到您的消息: "${userMessage}"。作为您的股市顾问,我可以为您提供专业的投资建议。请问您想了解哪方面的信息?`;
+ let responseText = `我已经收到您的消息: "${userMessage}"。作为您的股市顾问,我可以为您提供专业的投资建议。请问您想了解哪方面的信息?作为您的股市顾问,我可以为您提供专业的投资建议。请问您想了解哪方面的信息?作为您的股市顾问,我可以为您提供专业的投资建议。请问您想了解哪方面的信息?作为您的股市顾问,我可以为您提供专业的投资建议。请问您想了解哪方面的信息?作为您的股市顾问,我可以为您提供专业的投资建议。请问您想了解哪方面的信息?作为您的股市顾问,我可以为您提供专业的投资建议。请问您想了解哪方面的信息?作为您的股市顾问,我可以为您提供专业的投资建议。请问您想了解哪方面的信息?作为您的股市顾问,我可以为您提供专业的投资建议。请问您想了解哪方面的信息?作为您的股市顾问,我可以为您提供专业的投资建议。请问您想了解哪方面的信息?作为您的股市顾问,我可以为您提供专业的投资建议。请问您想了解哪方面的信息?作为您的股市顾问,我可以为您提供专业的投资建议。请问您想了解哪方面的信息?`;
let index = 0;
const typeWriter = () => {
@@ -357,7 +360,8 @@ const scrollToTop = () => {
flex-direction: column;
height: 100vh;
background-color: #ffffff;
- padding: 20rpx;
+ padding: 20rpx 0rpx;
+
}
.header {
@@ -366,6 +370,7 @@ const scrollToTop = () => {
align-items: center;
padding: 20rpx 30rpx;
background-color: #ffffff;
+
}
.header-left,
@@ -752,6 +757,9 @@ const scrollToTop = () => {
overflow: hidden; /* 让圆角和内部层剪裁一致 */
border-radius: 15rpx;
}
+.panelShow{
+ height: 12%;
+}
.pray-banner {
position: absolute;
@@ -762,6 +770,8 @@ const scrollToTop = () => {
border-radius: 15rpx;
z-index: 1; /* 在灰底之上、内容之下 */
}
+
+
.contain {
margin: 0 20rpx;
gap: 5rpx;