From aa6eb261b29adbfd7b6d2ab474dcd850dfe0ae80 Mon Sep 17 00:00:00 2001 From: Ethereal <3432649580@qq.com> Date: Mon, 27 Oct 2025 15:38:50 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/start/login.js | 26 ++++++++++++-------------- pages/deepMate/deepMate.vue | 3 +++ pages/start/login/login.vue | 44 ++++++++++++++++++++++++++++++++++++++++---- server/deepchart.json | 3 +-- utils/http.js | 6 ++---- vue.config.js | 14 ++++++++++++++ 6 files changed, 72 insertions(+), 24 deletions(-) create mode 100644 vue.config.js diff --git a/api/start/login.js b/api/start/login.js index ee730e0..aaf3f73 100644 --- a/api/start/login.js +++ b/api/start/login.js @@ -15,13 +15,11 @@ import { http } from '../../utils/http' */ export const LoginApi = (data) => { return http({ - // method: 'POST', - // url: '/UserLogin/login', - method: 'GET', - url: '/loginSuccessByEmail', - data: { + method: 'POST', + url: '/UserLogin/login', + data: data - }, + , }) } @@ -32,11 +30,11 @@ export const LoginApi = (data) => { * @param {*} email * @returns */ -export const SendEmailCodeApi = (data) => { +export const SendEmailCodeApi = (data) => { return http({ method: 'POST', url: '/UserLogin/sendEmail', - data:{ + data: { data } }) @@ -49,11 +47,11 @@ export const SendEmailCodeApi = (data) => { * @param {*} email * @returns */ -export const SendPhoneCodeApi = (data) => { +export const SendPhoneCodeApi = (data) => { return http({ method: 'POST', url: '/UserLogin/sendPhone', - data:{ + data: { data } }) @@ -65,7 +63,7 @@ export const SendPhoneCodeApi = (data) => { * 注册 */ -export const register = (data) => { +export const register = (data) => { return http({ method: 'GET', url: '/register', @@ -80,7 +78,7 @@ export const register = (data) => { * */ -export const updatePassword = (data) => { +export const updatePassword = (data) => { return http({ method: 'GET', url: '/updatePassword', @@ -96,7 +94,7 @@ export const updatePassword = (data) => { * 通过苹果登录 */ -export const postLoginAppleSimpleAPI = (phoneNumber) => { +export const postLoginAppleSimpleAPI = (phoneNumber) => { return http({ method: 'POST', url: '/login', @@ -111,7 +109,7 @@ export const postLoginAppleSimpleAPI = (phoneNumber) => { * 通过谷歌登录 */ -export const postLoginGoogleSimpleAPI = (phoneNumber) => { +export const postLoginGoogleSimpleAPI = (phoneNumber) => { return http({ method: 'POST', url: '/login/wxMin/simple', diff --git a/pages/deepMate/deepMate.vue b/pages/deepMate/deepMate.vue index 3a54ad6..55110a4 100644 --- a/pages/deepMate/deepMate.vue +++ b/pages/deepMate/deepMate.vue @@ -1059,6 +1059,9 @@ const onBackTopClick = () => { .message-content { max-width: 70%; position: relative; + word-wrap: break-word; + word-break: break-all; + overflow-wrap: break-word; } .user-message .message-content { diff --git a/pages/start/login/login.vue b/pages/start/login/login.vue index 622fec5..efdbb49 100644 --- a/pages/start/login/login.vue +++ b/pages/start/login/login.vue @@ -340,9 +340,10 @@ async function Login() { } const account = changeAccount(); + const loginType = changeLoginType(); const res = await LoginApi({ - loginType: switchType.value, + loginType: loginType, account: account, verifyCode: verifyCode.value, password: password.value, @@ -350,6 +351,26 @@ async function Login() { idToken: "", }); + // const res = await uni.request({ + // url: 'https://hwjb.homilychart.com/testApi/UserLogin/login', + // data: {}, + // header: { + // Accept: 'application/json', + // 'Content-Type': 'application/json' }, + // method: 'POST', + // sslVerify: true, + // success: ({ data, statusCode, header }) => { + // console.log(data); + // console.log(statusCode); + // console.log(header); + + + // }, + // fail: (error) => { + // console.log("error是",error); + // } + // }) + const message = res.message; if (res.code === 200) { // 登录成功 @@ -359,10 +380,10 @@ async function Login() { }); const userStore = useUserStore(); - userStore.setUserInfo(res.data) + userStore.setUserInfo(res.data); + + console.log("userInfo为", userStore.userInfo); - console.log("userInfo为",userStore.userInfo); - // 跳转到首页 uni.switchTab({ url: "/pages/start/index/index", @@ -508,6 +529,7 @@ function VerCodeVerfifcation() { return true; } +// 请求账户 function changeAccount() { if (switchType.value === "User") { account.value = deepChartID.value; @@ -523,6 +545,20 @@ function changeAccount() { return account.value; } +// 改变请求时的type +function changeLoginType() { + if (switchType.value === "User") { + return "DCCODE"; + } + + if (switchType.value === "Phone") { + return "PHONE"; + } + if (switchType.value === "Email") { + return "EMAIL"; + } +} + // 添加弹窗引用 const agreementPopup = ref(null); diff --git a/server/deepchart.json b/server/deepchart.json index 469dc6d..ceccce9 100644 --- a/server/deepchart.json +++ b/server/deepchart.json @@ -17,7 +17,6 @@ } }, "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# Alphabet Inc.全景作战报告\n## 📊 股票分析报告\n### 📈 股票基本信息\n- **股票名称**: Alphabet Inc.\n- **股票代码**: GOOGL\n- **当前价格**: 259.920\n- **更新时间**: 2025年10月24日\n- **时间节点**: 今日无变盘点\n\n### 🎯 核心价值评估\n- **安全边际**: 164.424 ~ \n- **黄金价域**: 258.984 ~ 266.753\n- **核心证据链**:\n - 🟢 **资金共识**: 当日多方资金流入\n - 🔥 **趋势动能**: 该股中长期处于上升趋势,短期处于强势状态。\n\n### 🕵️ 主力作战分析\n- **主力行为**:\n 1. 📊 该股庄家中长期筹码成本价格为 207.497,短期资金成本价格为 239.503。该股筹码分散,当日筹码成本价格为 254.335。\n 2. 🔍 近日没有出现主力集中吸筹。\n 3. 📈 近期主力持仓比例大于散户持仓比例。 当日主力持仓增加。 当日散户持仓减少。\n\n### 📊 技术分析\n- **空间维度**:\n - 📉 预测低一值: 255.468\n - 📈 预测高一值: 257.692\n - 📉 预测低二值: 255.156\n - 📈 预测高二值: 255.807\n- **能量分析**: AI智能均线多头排列,当前卖盘小于买盘\n\n### ⚡ 综合作战分析\n- **触发条件**: 当前股票处于安全区,牵牛绳为红色,出现蓝色推进K线\n- **攻防指令**: 该股整体趋势相对较强,个股正处于推进上涨的关键阶段。若当前持有该股票,建议继续持有,进行持续跟踪。若当前无该股票,建议持续跟踪,等待适当时机再进行介入。\n\n---\n*该内容由AI生成,仅供参考,投资有风险,请注意甄别。*\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## 📊 主力资金分析:\n### 结构框架\n当前未出现买入结构和卖出结构,可根据其他技术指标判断当前趋势,并紧密关注当前股票的资金动向,进行审慎决策。\n\n### 资金动向\n当前股票机构资金增加,处于强势控盘状态,资金未出现异动现象,出现看涨信号。可积极布局,做好仓位管理及风险控制。\n当前该股多方力道逐渐减弱,上升动能出现衰退迹象,需密切关注市场是否有转势迹象,切忌盲目追高。\n\n### 策略共振\n当前市场无异动现象,建议持续关注资金及趋势动向,酌情调整交易策略。\n\n---\n*该内容由AI生成,仅供参考,投资有风险,请注意甄别。*\n "} } \ No newline at end of file diff --git a/utils/http.js b/utils/http.js index 4a55bde..dfcc2b3 100644 --- a/utils/http.js +++ b/utils/http.js @@ -1,6 +1,6 @@ import { useUserStore } from "../stores/modules/userInfo"; -const baseURL = "http://localhost:8888" +const baseURL = "https://hwjb.homilychart.com/testApi" const httpInterceptor = { @@ -22,9 +22,7 @@ const httpInterceptor = { const memberStore = useUserStore() const token = memberStore.userInfo?.token if (token) { - options.header.Authorization = { - 'token': token - } + options.header.Authorization = token } return options } diff --git a/vue.config.js b/vue.config.js new file mode 100644 index 0000000..76eaa5d --- /dev/null +++ b/vue.config.js @@ -0,0 +1,14 @@ +module.exports = { + devServer: { + proxy: { + '/api': { // 你的目标服务器的请求路径前缀 + target: 'https://hwjb.homilychart.com', // 目标服务器的地址 + changeOrigin: true, // 是否跨域 + secure: false, // 如果是https接口,需要配置这个参数 + pathRewrite: { + '^/': '/testApi' // 将 /api 替换为 /testApi,以便正确请求目标服务器的资源 + } + } + } + } +} \ No newline at end of file From 6e1b299fad5567aa539276dd846d56b8fc5eee77 Mon Sep 17 00:00:00 2001 From: Ethereal <3432649580@qq.com> Date: Mon, 27 Oct 2025 20:15:25 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=88=90=E5=8A=9F=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=B3=A8=E5=86=8C=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/start/login.js | 18 +-- pages/start/Registration/Registration.vue | 152 ++++++++++++++++++------ pages/start/login/login.vue | 34 +----- pages/start/recoverPassword/recoverPassword.vue | 46 ++++++- 4 files changed, 166 insertions(+), 84 deletions(-) diff --git a/api/start/login.js b/api/start/login.js index aaf3f73..aecf0cf 100644 --- a/api/start/login.js +++ b/api/start/login.js @@ -34,9 +34,7 @@ export const SendEmailCodeApi = (data) => { return http({ method: 'POST', url: '/UserLogin/sendEmail', - data: { - data - } + data: data }) } @@ -51,9 +49,7 @@ export const SendPhoneCodeApi = (data) => { return http({ method: 'POST', url: '/UserLogin/sendPhone', - data: { - data - } + data:data }) } @@ -63,13 +59,11 @@ export const SendPhoneCodeApi = (data) => { * 注册 */ -export const register = (data) => { +export const registerApi = (data) => { return http({ - method: 'GET', - url: '/register', - data: { - data - }, + method: 'POST', + url: '/UserLogin/register', + data: data, }) } diff --git a/pages/start/Registration/Registration.vue b/pages/start/Registration/Registration.vue index 9ef0ba7..65be655 100644 --- a/pages/start/Registration/Registration.vue +++ b/pages/start/Registration/Registration.vue @@ -149,9 +149,10 @@ - 已有账号? + 已有账号? 登录 - + @@ -184,6 +185,11 @@ import countryList from "../login/list"; import footerBar from "../../../components/footerBar-cn.vue"; import uniPopup from "../../../uni_modules/uni-popup/components/uni-popup/uni-popup.vue"; import { verificationPhone, verificationEmail } from "../login/verification"; +import { + registerApi, + SendEmailCodeApi, + SendPhoneCodeApi, +} from "../../../api/start/login"; const type = ref("member"); const email = ref(""); @@ -247,39 +253,76 @@ function switchPhone() { verifyCode.value = ""; } -// function register() { -// if (switchType.value === "Email") { -// // 登录逻辑 -// if (!email.value) { -// uni.showToast({ -// title: "请输入邮箱地址", -// icon: "none", -// }); -// return; -// } - -// // 发送登录请求 -// console.log("登录:", email.value); -// } - -// if (switchType.value === "Phone") { -// // 登录逻辑 -// if (!phone.value) { -// uni.showToast({ -// title: "请输入手机号码", -// icon: "none", -// }); -// return; -// } - -// // 发送登录请求 -// console.log("登录:", phone.value); -// } -// } -function register() { +// 注册 +async function register() { if (!basicVerification()) { return; } + + const account = changeAccount(); + const registerType = changeLoginType(); + + const res = await registerApi({ + registerType: registerType, + account: account, + verifyCode: verifyCode.value, + agree: agreed.value, + }); + + const message = res.message; + if (res.code === 200) { + // 登录成功 + uni.showToast({ + title: "注册成功", + icon: "success", + }); + + const userStore = useUserStore(); + userStore.setUserInfo(res.data); + + console.log("userInfo为", userStore.userInfo); + + // 跳转到首页 + uni.navigateTo({ + url: "/pages/home/home", + }); + } else { + // 登录失败 + uni.showToast({ + title: message, + icon: "none", + }); + } +} + +// 请求账户 +function changeAccount() { + if (switchType.value === "User") { + account.value = deepChartID.value; + } + + if (switchType.value === "Phone") { + account.value = `${country.value}${phone.value}`; + } + if (switchType.value === "Email") { + account.value = email.value; + } + + return account.value; +} + +// 改变请求时的type +function changeLoginType() { + if (switchType.value === "User") { + return "DCCODE"; + } + + if (switchType.value === "Phone") { + return "PHONE"; + } + if (switchType.value === "Email") { + return "EMAIL"; + } } // 基础验证 @@ -367,8 +410,8 @@ function basicVerification() { } // 验证码验证 -function VerCodeVerfifcation() { - if (switchType.value === "Phone") { +function VerCodeVerfifcation() { + if (switchType.value === "Phone") { if (!phone.value) { uni.showToast({ title: "请输入手机号", @@ -432,16 +475,47 @@ function onPhoneInput(e) { } } - -function sendCode() { - - if (!VerCodeVerfifcation()) { - return ; +async function sendCode() { + if (!VerCodeVerfifcation()) { + return; } // 如果按钮已禁用,则不执行后续逻辑 if (isCodeBtnDisabled.value) return; + console.log("发送验证码"); + if (switchType.value === "Phone") { + // 发送验证码 + + const phoneAll = `${country.value}${phone.value}`; + const res = await SendPhoneCodeApi({ + phone: phoneAll, + }); + console.log("手机验证码:", res.message); + + if (!res) { + uni.showToast({ + title: "请求失败", + icon: "none", + }); + } + } + if (switchType.value === "Email") { + // 发送验证码 + const res = await SendEmailCodeApi({ + email: email.value, + }); + console.log("邮箱验证码:", res.message); + + if (!res) { + uni.showToast({ + title: "请求失败", + icon: "none", + }); + } + } + + // 设置按钮为禁用状态 isCodeBtnDisabled.value = true; codeBtnText.value = "重新发送"; diff --git a/pages/start/login/login.vue b/pages/start/login/login.vue index efdbb49..331f8d4 100644 --- a/pages/start/login/login.vue +++ b/pages/start/login/login.vue @@ -351,26 +351,6 @@ async function Login() { idToken: "", }); - // const res = await uni.request({ - // url: 'https://hwjb.homilychart.com/testApi/UserLogin/login', - // data: {}, - // header: { - // Accept: 'application/json', - // 'Content-Type': 'application/json' }, - // method: 'POST', - // sslVerify: true, - // success: ({ data, statusCode, header }) => { - // console.log(data); - // console.log(statusCode); - // console.log(header); - - - // }, - // fail: (error) => { - // console.log("error是",error); - // } - // }) - const message = res.message; if (res.code === 200) { // 登录成功 @@ -385,8 +365,8 @@ async function Login() { console.log("userInfo为", userStore.userInfo); // 跳转到首页 - uni.switchTab({ - url: "/pages/start/index/index", + uni.navigateTo({ + url: "/pages/home/home", }); } else { // 登录失败 @@ -658,10 +638,9 @@ async function sendCode() { }); console.log("手机验证码:", res.message); - const message = res.message; - if (res.code === 200) { + if (!res) { uni.showToast({ - title: message, + title: "请求失败", icon: "none", }); } @@ -673,10 +652,9 @@ async function sendCode() { }); console.log("邮箱验证码:", res.message); - const message = res.message; - if (res.code === 200) { + if (!res) { uni.showToast({ - title: message, + title: "请求失败", icon: "none", }); } diff --git a/pages/start/recoverPassword/recoverPassword.vue b/pages/start/recoverPassword/recoverPassword.vue index 9455cfe..3cf2623 100644 --- a/pages/start/recoverPassword/recoverPassword.vue +++ b/pages/start/recoverPassword/recoverPassword.vue @@ -46,7 +46,7 @@ - + - 已有账号?登录 + 已有账号? + 登录 + + @@ -234,6 +235,7 @@ import countryList from "../login/list"; import footerBar from "../../../components/footerBar-cn.vue"; import uniPopup from "../../../uni_modules/uni-popup/components/uni-popup/uni-popup.vue"; import { verificationPhone, verificationEmail } from "../login/verification"; +import { SendEmailCodeApi, SendPhoneCodeApi } from "../../../api/start/login"; const type = ref("member"); const email = ref(""); @@ -332,7 +334,6 @@ function register() { } console.log("123"); - const phoneAll = `${country.value}${phone.value}`; console.log("完整手机号" + phoneAll); @@ -399,6 +400,13 @@ function goToLogin() { }); } +function goToRegistration() { + // 跳转到登录页 + uni.navigateTo({ + url: "/pages/start/Registration/Registration", + }); +} + function onPhoneInput(e) { // 确保只允许输入数字 const value = e.detail.value; @@ -466,6 +474,34 @@ function sendCode() { // 如果按钮已禁用,则不执行后续逻辑 if (isCodeBtnDisabled.value) return; + console.log("发送验证码"); + // 发送验证码 + if (switchType.value === "Email") { + const res = SendEmailCodeApi({ + email: email.value, + }); + + if (!res) { + uni.showToast({ + title: "发送失败", + icon: "none", + }); + } + } + if (switchType.value === "Phone") { + const phoneAll = `${country.value}${phone.value}`; + + const res = SendPhoneCodeApi({ + phone: phoneAll, + }); + if (!res) { + uni.showToast({ + title: "发送失败", + icon: "none", + }); + } + } + // 设置按钮为禁用状态 isCodeBtnDisabled.value = true; codeBtnText.value = "重新发送"; From 04065312d69e4cd4754cd6afe3b14a1a5ee50398 Mon Sep 17 00:00:00 2001 From: Ethereal <3432649580@qq.com> Date: Tue, 28 Oct 2025 10:12:14 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=95=B4=E5=90=88=E9=87=8C=E7=A8=8B?= =?UTF-8?q?=E7=A2=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/footerBar.vue | 43 + components/login-prompt.vue | 20 +- main.js | 137 ++- main.js.bgk | 116 -- main1.js.bgk | 41 + package-lock.json | 1486 +++-------------------- package.json | 3 +- pages/home/deepExploration.vue | 64 +- pages/start/Registration/Registration.vue | 4 +- pages/start/index/index.vue | 17 +- pages/start/login/login.vue | 4 +- pages/start/recoverPassword/recoverPassword.vue | 2 +- pages/start/select/select.vue | 19 +- pages/start/startup/startup.vue | 28 +- 14 files changed, 442 insertions(+), 1542 deletions(-) delete mode 100644 main.js.bgk create mode 100644 main1.js.bgk diff --git a/components/footerBar.vue b/components/footerBar.vue index 6454f19..80cc030 100644 --- a/components/footerBar.vue +++ b/components/footerBar.vue @@ -1,4 +1,45 @@ - \ No newline at end of file diff --git a/pages/start/Registration/Registration.vue b/pages/start/Registration/Registration.vue index 65be655..ab17cbc 100644 --- a/pages/start/Registration/Registration.vue +++ b/pages/start/Registration/Registration.vue @@ -182,7 +182,7 @@ import { ref } from "vue"; // 导入完整的国家列表 import countryList from "../login/list"; -import footerBar from "../../../components/footerBar-cn.vue"; +import footerBar from "../../../components/footerBar"; import uniPopup from "../../../uni_modules/uni-popup/components/uni-popup/uni-popup.vue"; import { verificationPhone, verificationEmail } from "../login/verification"; import { @@ -283,7 +283,7 @@ async function register() { console.log("userInfo为", userStore.userInfo); // 跳转到首页 - uni.navigateTo({ + uni.redirectTo({ url: "/pages/home/home", }); } else { diff --git a/pages/start/index/index.vue b/pages/start/index/index.vue index 663a7d8..30c8683 100644 --- a/pages/start/index/index.vue +++ b/pages/start/index/index.vue @@ -5,24 +5,25 @@ {{ title }} - + diff --git a/pages/start/login/login.vue b/pages/start/login/login.vue index 331f8d4..2cefada 100644 --- a/pages/start/login/login.vue +++ b/pages/start/login/login.vue @@ -248,7 +248,7 @@ import { ref } from "vue"; // 导入完整的国家列表 import countryList from "./list.js"; -import footerBar from "../../../components/footerBar-cn"; +import footerBar from "../../../components/footerBar"; import uniPopupDialogVue from "../../../uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue"; import uniPopup from "../../../uni_modules/uni-popup/components/uni-popup/uni-popup.vue"; import { verificationPhone, verificationEmail } from "../login/verification"; @@ -365,7 +365,7 @@ async function Login() { console.log("userInfo为", userStore.userInfo); // 跳转到首页 - uni.navigateTo({ + uni.redirectTo({ url: "/pages/home/home", }); } else { diff --git a/pages/start/recoverPassword/recoverPassword.vue b/pages/start/recoverPassword/recoverPassword.vue index 3cf2623..ada6c57 100644 --- a/pages/start/recoverPassword/recoverPassword.vue +++ b/pages/start/recoverPassword/recoverPassword.vue @@ -232,7 +232,7 @@ import { ref } from "vue"; // 导入完整的国家列表 import countryList from "../login/list"; -import footerBar from "../../../components/footerBar-cn.vue"; +import footerBar from "../../../components/footerBar"; import uniPopup from "../../../uni_modules/uni-popup/components/uni-popup/uni-popup.vue"; import { verificationPhone, verificationEmail } from "../login/verification"; import { SendEmailCodeApi, SendPhoneCodeApi } from "../../../api/start/login"; diff --git a/pages/start/select/select.vue b/pages/start/select/select.vue index ca555ea..7663375 100644 --- a/pages/start/select/select.vue +++ b/pages/start/select/select.vue @@ -18,29 +18,24 @@ -