Browse Source

优化找回密码页面验证逻辑

wangyi/feature-20251022162725-启动页登录注册
Ethereal 4 weeks ago
parent
commit
309bb64c6c
  1. 7
      pages/deepMate/deepMate.vue
  2. 125
      pages/start/recoverPassword/recoverPassword.vue
  3. 2
      server/deepchart.json

7
pages/deepMate/deepMate.vue

@ -566,13 +566,6 @@ watch(messages, (arr) => {
} }
}); });
// isSending
watch(isSending, (newVal, oldVal) => {
console.log(`isSending changed from ${oldVal} to ${newVal}`);
// isSending
// UI
});
// //
const scrollToBottom = () => { const scrollToBottom = () => {
if (!shouldAutoScroll.value) return; if (!shouldAutoScroll.value) return;

125
pages/start/recoverPassword/recoverPassword.vue

@ -46,7 +46,7 @@
<view v-else class="switch-container-occupy"> </view> <view v-else class="switch-container-occupy"> </view>
<!-- 输入框 --> <!-- 输入框 -->
<view v-if="isRecovering" class="input-container"> <view v-if="isRecovering" class="input-container">
<view v-if="switchType === 'Email'">
<view >
<!-- 修改邮箱输入框容器将图标包含在内 --> <!-- 修改邮箱输入框容器将图标包含在内 -->
<view class="input-with-icon"> <view class="input-with-icon">
<image <image
@ -56,6 +56,7 @@
/> />
<input <input
class="input-field" class="input-field"
:type="newPasswordLookFirst ? 'text' : 'password'" :type="newPasswordLookFirst ? 'text' : 'password'"
placeholder="输入新密码" placeholder="输入新密码"
v-model="newPasswordFirst" v-model="newPasswordFirst"
@ -78,6 +79,7 @@
alt="" alt=""
/> />
<input <input
class="input-field" class="input-field"
:type="newPasswordLookSecond ? 'text' : 'password'" :type="newPasswordLookSecond ? 'text' : 'password'"
placeholder="再次确认" placeholder="再次确认"
@ -136,7 +138,7 @@
class="input-field" class="input-field"
type="text" type="text"
placeholder="请输入验证码" placeholder="请输入验证码"
v-model="password"
v-model="verifyCode"
/> />
</view> </view>
</view> </view>
@ -182,7 +184,7 @@
class="input-field" class="input-field"
type="text" type="text"
placeholder="请输入验证码" placeholder="请输入验证码"
v-model="password"
v-model="verifyCode"
/> />
</view> </view>
</view> </view>
@ -246,6 +248,7 @@ const { safeAreaInsets } = uni.getSystemInfoSync();
const codeBtnText = ref("获取验证码"); const codeBtnText = ref("获取验证码");
const isCodeBtnDisabled = ref(false); // const isCodeBtnDisabled = ref(false); //
const checkboxUrl = ref("../../../static/icons/Check-one-false.png"); const checkboxUrl = ref("../../../static/icons/Check-one-false.png");
const verifyCode = ref("");
const isRecovering = ref(false); const isRecovering = ref(false);
const newPasswordLookFirst = ref(false); const newPasswordLookFirst = ref(false);
const newPasswordLookSecond = ref(false); const newPasswordLookSecond = ref(false);
@ -287,36 +290,37 @@ function goToBack() {
function switchEmail() { function switchEmail() {
// //
switchType.value = "Email"; switchType.value = "Email";
verifyCode.value = "";
} }
function switchPhone() { function switchPhone() {
// //
switchType.value = "Phone"; switchType.value = "Phone";
verifyCode.value = "";
} }
function register() { function register() {
if (isRecovering.value) { if (isRecovering.value) {
if (!newPasswordFirst.value || !newPasswordSecond.value) {
uni.showToast({
title: "密码不能为空",
icon: "none",
});
return;
}
if (newPasswordFirst.value !== newPasswordSecond.value) {
uni.showToast({
title: "前后密码不一致",
icon: "none",
});
return;
}
if(!newPasswordFirst.value || !newPasswordSecond.value){
uni.showToast({
title: "密码不能为空",
icon: "none",
});
return;
}
if (newPasswordFirst.value !== newPasswordSecond.value) {
uni.showToast({
title: "前后密码不一致",
icon: "none",
});
return;
}
//
//
return; return;
} }
if (switchType.value === "Phone") { if (switchType.value === "Phone") {
// //
if (!phone.value) { if (!phone.value) {
@ -327,21 +331,22 @@ function register() {
return; return;
} }
if (!password.value) {
console.log("123");
const phoneAll = `${country.value}${phone.value}`;
console.log("完整手机号" + phoneAll);
if (!validatePhoneNumber(country.value, phone.value)) {
return;
}
if (!verifyCode.value) {
uni.showToast({ uni.showToast({
title: "请输入验证码", title: "请输入验证码",
icon: "none", icon: "none",
}); });
return; return;
} }
const phoneAll = `${country.value}${phone.value}`;
console.log("完整手机号" + phoneAll);
if (validatePhoneNumber(country.value, phone.value)) {
console.log("登录成功:", phoneAll);
}
//
// console.log(":", phone.value);
} }
if (switchType.value === "Email") { if (switchType.value === "Email") {
@ -354,14 +359,6 @@ function register() {
return; return;
} }
if (!password.value) {
uni.showToast({
title: "请输入验证码",
icon: "none",
});
return;
}
const bool = verificationEmail(email.value); const bool = verificationEmail(email.value);
console.log("验证是否成功", bool); console.log("验证是否成功", bool);
@ -374,12 +371,18 @@ function register() {
return; return;
} }
if (!verifyCode.value) {
uni.showToast({
title: "请输入验证码",
icon: "none",
});
return;
}
// //
console.log("登录:", email.value); console.log("登录:", email.value);
} }
isRecovering.value = !isRecovering.value; isRecovering.value = !isRecovering.value;
// //
@ -407,36 +410,15 @@ function onPhoneInput(e) {
} }
} }
// function sendCode() {
// //
// if (isCodeBtnDisabled.value) return;
// //
// isCodeBtnDisabled.value = true;
// codeBtnText.value = "";
// let time = 6;
// const timer = setInterval(() => {
// time--;
// codeBtnText.value = " " + time + "S";
// if (time <= 0) {
// clearInterval(timer);
// codeBtnText.value = "";
// //
// isCodeBtnDisabled.value = false;
// }
// }, 1000);
// return;
// }
function sendCode() {
//
function VerCodeVerfifcation() {
if (switchType.value === "Phone") { if (switchType.value === "Phone") {
if (!phone.value) { if (!phone.value) {
uni.showToast({ uni.showToast({
title: "请输入手机号", title: "请输入手机号",
icon: "none", icon: "none",
}); });
return;
return false;
} }
const bool = verificationPhone(country.value, phone.value); const bool = verificationPhone(country.value, phone.value);
@ -448,7 +430,7 @@ function sendCode() {
title: "手机号格式不正确", title: "手机号格式不正确",
icon: "none", icon: "none",
}); });
return;
return false;
} }
} }
@ -458,7 +440,7 @@ function sendCode() {
title: "请输入邮箱地址", title: "请输入邮箱地址",
icon: "none", icon: "none",
}); });
return;
return false;
} }
const bool = verificationEmail(email.value); const bool = verificationEmail(email.value);
console.log("验证是否成功", bool); console.log("验证是否成功", bool);
@ -469,10 +451,18 @@ function sendCode() {
title: "邮箱格式不正确", title: "邮箱格式不正确",
icon: "none", icon: "none",
}); });
return;
return false;
} }
} }
return true;
}
//
function sendCode() {
if (!VerCodeVerfifcation()) {
return;
}
// //
if (isCodeBtnDisabled.value) return; if (isCodeBtnDisabled.value) return;
@ -537,6 +527,7 @@ function validatePhoneNumber(countryCode, phoneNumber) {
title: "手机号格式不正确", title: "手机号格式不正确",
icon: "none", icon: "none",
}); });
return false; return false;
} }

2
server/deepchart.json

@ -17,7 +17,7 @@
} }
}, },
"stocks":{"code":"200","cftl":"当前股票处于安全区,牵牛绳为红色,出现蓝色推进K线","date":"更新时间: 24/10/2025","debug_url":"https://www.coze.cn/work_flow?execute_id=7565080703726846004&space_id=7564250621483040822&workflow_id=7564596757864071195&execute_mode=2","gfzl":"该股整体趋势相对较强,个股正处于推进上涨的关键阶段。若当前持有该股票,建议继续持有,进行持续跟踪。若当前无该股票,建议持续跟踪,等待适当时机再进行介入。","hxjzpg":"(1)牛股评级:★★☆☆☆\n(2)暴涨概率:40%\n(3)风险评估:非常安全\n(4)黄金价域:258.984~266.753\n(5)核心证据链\n 资金共识:当日多方资金流入\n 趋势动能:该股中长期处于上升趋势,短期处于强势状态。","kongjian":"预测低一值255.468,预测高一值257.692,预测低二值255.156,预测高二值255.807", "stocks":{"code":"200","cftl":"当前股票处于安全区,牵牛绳为红色,出现蓝色推进K线","date":"更新时间: 24/10/2025","debug_url":"https://www.coze.cn/work_flow?execute_id=7565080703726846004&space_id=7564250621483040822&workflow_id=7564596757864071195&execute_mode=2","gfzl":"该股整体趋势相对较强,个股正处于推进上涨的关键阶段。若当前持有该股票,建议继续持有,进行持续跟踪。若当前无该股票,建议持续跟踪,等待适当时机再进行介入。","hxjzpg":"(1)牛股评级:★★☆☆☆\n(2)暴涨概率:40%\n(3)风险评估:非常安全\n(4)黄金价域:258.984~266.753\n(5)核心证据链\n 资金共识:当日多方资金流入\n 趋势动能:该股中长期处于上升趋势,短期处于强势状态。","kongjian":"预测低一值255.468,预测高一值257.692,预测低二值255.156,预测高二值255.807",
"markdown":" \n# <font style=\" line-height: 1.5 \" color=\"#1890ff\">Alphabet Inc.全景作战报告</font>\n## 📊 股票分析报告\n### 📈 股票基本信息\n- **股票名称**: <font color=\"#52c41a\">Alphabet Inc.</font>\n- **股票代码**: <font color=\"#1890ff\">GOOGL</font>\n- **当前价格**: <font color=\"#ff4d4f\">259.920</font>\n- **更新时间**: 2025年10月24日\n- **时间节点**: 今日无变盘点\n\n### 🎯 核心价值评估\n- **安全边际**: <font color=\"#13c2c2\">164.424 ~ </font>\n- **黄金价域**: <font color=\"#faad14\">258.984 ~ 266.753</font>\n- **核心证据链**:\n - 🟢 **资金共识**: 当日多方资金<font color=\"#52c41a\">流入</font>\n - 🔥 **趋势动能**: 该股中长期处于<b><font color='#FF0000'>上升趋势</font></b>,短期处于<b><font color='#FF0000'>强势状态</font></b>。\n\n### 🕵️ 主力作战分析\n- **主力行为**:\n 1. 📊 该股庄家中长期筹码成本价格为 207.497,短期资金成本价格为 239.503。该股筹码分散,当日筹码成本价格为 254.335。\n 2. 🔍 近日没有出现主力集中吸筹。\n 3. 📈 近期主力持仓比例大于散户持仓比例。 当日主力持仓增加。 当日散户持仓减少。\n\n### 📊 技术分析\n- **空间维度**:\n - 📉 预测低一值: <font color=\"#13c2c2\">255.468</font>\n - 📈 预测高一值: <font color=\"#ff4d4f\">257.692</font>\n - 📉 预测低二值: <font color=\"#13c2c2\">255.156</font>\n - 📈 预测高二值: <font color=\"#ff4d4f\">255.807</font>\n- **能量分析**: <font color=\"#722ed1\">AI智能均线多头排列,当前卖盘小于买盘</font>\n\n### ⚡ 综合作战分析\n- **触发条件**: <font color=\"#fa8c16\">当前股票处于安全区,牵牛绳为红色,出现蓝色推进K线</font>\n- **攻防指令**: <font color=\"#eb2f96\">该股整体趋势相对较强,个股正处于推进上涨的关键阶段。若当前持有该股票,建议继续持有,进行持续跟踪。若当前无该股票,建议持续跟踪,等待适当时机再进行介入。</font>\n\n---\n<font color=\"#8c8c8c\">*该内容由AI生成,仅供参考,投资有风险,请注意甄别。*</font>\n ","message":"","name":"股票名称: Alphabet Inc.(GOOGL)","nengliang":"AI智能均线多头排列,当前卖盘小于买盘","price":"当前价格: 259.920","shijian":"今日无变盘点","zhuli1":"(1)该股庄家中长期筹码成本价格为 207.497,短期资金成本价格为 239.503。该股筹码分散,当日筹码成本价格为 254.335。","zhuli2":"(2)近日没有出现主力集中吸筹。","zhuli3":"(3)近期主力持仓比例大于散户持仓比例。 当日主力持仓增加。 当日散户持仓减少。"}
"markdown":" \n# <font style=\" line-height: 1.5 \" color=\"#1890ff\">Alphabet Inc.全景作战报告</font>\n## 📊 股票分析报告\n### 📈 股票基本信息\n- **股票名称**: <font color=\"#52c41a\">Alphabet Inc.</font>\n- **股票代码**: <font color=\"#1890ff\">GOOGL</font>\n- **当前价格**: <font color=\"#ff4d4f\">259.920</font>\n- **更新时间**: 2025年10月24日\n- **时间节点**: 今日无变盘点\n\n### 🎯 核心价值评估\n- **安全边际**: <font color=\"#13c2c2\">164.424 ~ </font>\n- **黄金价域**: <font color=\"#faad14\">258.984 ~ 266.753</font>\n- **核心证据链**:\n - 🟢 **资金共识**: 当日多方资金<font color=\"#52c41a\">流入</font>\n - 🔥 **趋势动能**: 该股中长期处于<b><font color='#FF0000'>上升趋势</font></b>,短期处于<b><font color='#FF0000'>强势状态</font></b>。\n\n### 🕵️ 主力作战分析\n- **主力行为**:\n 1. 📊 该股庄家中长期筹码成本价格为 207.497,短期资金成本价格为 239.503。该股筹码分散,当日筹码成本价格为 254.335。\n 2. 🔍 近日没有出现主力集中吸筹。\n 3. 📈 近期主力持仓比例大于散户持仓比例。 当日主力持仓增加。 当日散户持仓减少。\n\n### 📊 技术分析\n- **空间维度**:\n - 📉 预测低一值: <font color=\"#13c2c2\">255.468</font>\n - 📈 预测高一值: <font color=\"#ff4d4f\">257.692</font>\n - 📉 预测低二值: <font color=\"#13c2c2\">255.156</font>\n - 📈 预测高二值: <font color=\"#ff4d4f\">255.807</font>\n- **能量分析**: <font color=\"#722ed1\">AI智能均线多头排列,当前卖盘小于买盘</font>\n\n### ⚡ 综合作战分析\n- **触发条件**: <font color=\"#fa8c16\">当前股票处于安全区,牵牛绳为红色,出现蓝色推进K线</font>\n- **攻防指令**: <font color=\"#eb2f96\">该股整体趋势相对较强,个股正处于推进上涨的关键阶段。若当前持有该股票,建议继续持有,进行持续跟踪。若当前无该股票,建议持续跟踪,等待适当时机再进行介入。</font>\n\n---\n<font color=\"#8c8c8c\">*该内容由AI生成,仅供参考,投资有风险,请注意甄别。*</font>\n ","message":"","name":"股票名称: Alphabet Inc.(GOOGL)","nengliang":"AI智能均线多头排列,当前卖盘小于买盘","price":"当前价格: 259.920","shijian":"今日无变盘点","zhuli1":"(1)该股庄家中长期筹码成本价格为 207.497,短期资金成本价格为 239.503。该股筹码分散,当日筹码成本价格为 254.335。","zhuli2":"(2)近日没有出现主力集中吸筹。","zhuli3":"(3)近期主力持仓比例大于散户持仓比例。 当日主力持仓增加。 当日散户持仓减少。"}
} }
Loading…
Cancel
Save