From b3cd7aff280e982322ab24304448fc817016f66e Mon Sep 17 00:00:00 2001
From: zzp <34701892@qq.com>
Date: Sun, 17 Aug 2025 11:08:27 +0800
Subject: [PATCH 1/3] =?UTF-8?q?feat(login):=20=E6=B7=BB=E5=8A=A0=E8=BF=B7?=
=?UTF-8?q?=E4=BD=A0=E7=99=BB=E5=BD=95=E9=A1=B5=E9=9D=A2=E5=B9=B6=E6=9B=B4?=
=?UTF-8?q?=E6=96=B0=E7=9B=B8=E5=85=B3=E7=BB=84=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 新增迷你登录页面 indexMini.vue
- 更新 Tabbar.vue 组件样式和图片路径
- 修改 mineMini.vue 组件跳转逻辑至迷你登录页
---
src/components/mineMini.vue | 80 ++++++++++------
src/components/mini/Tabbar.vue | 127 ++++++++++++++------------
src/pages.json | 3 +
src/pages/login/indexMini.vue | 162 +++++++++++++++++++++++++++++++++
4 files changed, 290 insertions(+), 82 deletions(-)
create mode 100644 src/pages/login/indexMini.vue
diff --git a/src/components/mineMini.vue b/src/components/mineMini.vue
index 6a42030..972c274 100644
--- a/src/components/mineMini.vue
+++ b/src/components/mineMini.vue
@@ -3,12 +3,13 @@
-
+
{{
- !isLoginStatus
- ? "未登录用户"
- : maskPhoneNumber()
+ !isLoginStatus ? "未登录用户" : maskPhoneNumber()
}}
-
+ }"
+ @click="handleClick(-1)"
+ >
-
+ }"
+ @click="handleClick(0)"
+ >
-
+ }"
+ @click="handleClick(1)"
+ >
-
+ }"
+ @click="handleClick(2)"
+ >
浏览记录
@@ -82,8 +106,12 @@
-
+
@@ -103,26 +131,23 @@ const isLoginStatus = ref(false);
const LoginShow = ref(false);
onMounted(() => {
- console.log("🚀 ~ uni.getStorageSync('token'):", uni.getStorageSync('token'))
+ console.log("🚀 ~ uni.getStorageSync('token'):", uni.getStorageSync("token"));
- if (uni.getStorageSync('token')) {
+ if (uni.getStorageSync("token")) {
isLoginStatus.value = true;
}
});
// 将手机号的中间四位用 * 代替
const maskPhoneNumber = (phoneNumber: string) => {
- if (!phoneNumber && uni.getStorageSync('userPhone')) {
- phoneNumber = uni.getStorageSync('userPhone')
+ if (!phoneNumber && uni.getStorageSync("userPhone")) {
+ phoneNumber = uni.getStorageSync("userPhone");
}
if (phoneNumber) {
return phoneNumber.replace(/(\d{3})\d{4}(\d{4})/, "$1****$2");
-
} else {
return "未登录用户";
-
}
-
};
// 关闭弹框
@@ -146,7 +171,10 @@ const loginBtnStatus = () => {
// 登录状态,点击就是退出登录
loginOut();
} else {
- LoginShow.value = true;
+ // LoginShow.value = true;
+ uni.navigateTo({
+ url: "/pages/login/indexMini",
+ });
}
};
diff --git a/src/components/mini/Tabbar.vue b/src/components/mini/Tabbar.vue
index 64d517e..dddeceb 100644
--- a/src/components/mini/Tabbar.vue
+++ b/src/components/mini/Tabbar.vue
@@ -1,25 +1,41 @@
-
-
-
-
- 海外资讯
-
-
-
-
-
- 全部
-
+
+
+
+
+ 海外资讯
+
+
+
+
+ 全部
+
+
diff --git a/src/pages.json b/src/pages.json
index e155aeb..e92d312 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -22,6 +22,9 @@
{
"path": "pages/login/index"
},
+ {
+ "path": "pages/login/indexMini"
+ },
{
"path": "pages/realtimeInfo/rankDetail"
},
diff --git a/src/pages/login/indexMini.vue b/src/pages/login/indexMini.vue
new file mode 100644
index 0000000..4f7dca0
--- /dev/null
+++ b/src/pages/login/indexMini.vue
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+ 立即进入
+
+
+
+ 已阅读并同意《江南农商银行隐私政策》《中证参考智能资讯小程序服务使用许可及服务协议》,首次登录的手机号将自动注册。
+
+
+
+
+
+
+
From 13e67b8aa9a5881e40d076d97c3ff66087875f15 Mon Sep 17 00:00:00 2001
From: zzp <34701892@qq.com>
Date: Sun, 17 Aug 2025 17:09:04 +0800
Subject: [PATCH 2/3] =?UTF-8?q?feat(login):=20=E6=B7=BB=E5=8A=A0=E9=9A=90?=
=?UTF-8?q?=E7=A7=81=E6=94=BF=E7=AD=96=E7=82=B9=E5=87=BB=E4=BA=8B=E4=BB=B6?=
=?UTF-8?q?=E5=A4=84=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
refactor: 移除mock数据引用并优化代码格式
style: 统一代码缩进和换行格式
---
src/components/article/index.vue | 10 ++++--
src/components/article/indexNewsInfo.vue | 42 ++++++++++++++++--------
src/pages/login/indexMini.vue | 10 +++++-
src/pages/news/index.vue | 27 +++++++++++----
4 files changed, 65 insertions(+), 24 deletions(-)
diff --git a/src/components/article/index.vue b/src/components/article/index.vue
index 980587c..20c6199 100644
--- a/src/components/article/index.vue
+++ b/src/components/article/index.vue
@@ -24,7 +24,11 @@
-
+
@@ -38,12 +42,12 @@ import {
onShareAppMessage,
onShareTimeline,
} from "@dcloudio/uni-app";
-import articleMock from "@/mock/article.js";
+// import articleMock from "@/mock/article.js";
const props = defineProps({
data: {
type: Object,
- default: () => { },
+ default: () => {},
},
});
diff --git a/src/components/article/indexNewsInfo.vue b/src/components/article/indexNewsInfo.vue
index 1b68820..3e41c80 100644
--- a/src/components/article/indexNewsInfo.vue
+++ b/src/components/article/indexNewsInfo.vue
@@ -16,17 +16,31 @@
-
+
- {{ item }}
+ {{ item }}
-
+
- {{ item }}
+ {{ item }}
@@ -42,15 +56,17 @@
-
-
+
-
-
+
@@ -32,7 +41,12 @@
-
+
@@ -44,7 +58,7 @@ import { onLoad, onShow } from "@dcloudio/uni-app";
import List from "@/components/articleList/index.vue";
import Pay from "@/components/pay/index.vue";
import articleListMock from "@/mock/articleList.js";
-import { newsList } from "@/mock/list.js";
+// import { newsList } from "@/mock/list.js";
const articleList = ref([...articleListMock]);
@@ -88,8 +102,7 @@ function back() {
});
}
-onShow(() => {
-});
+onShow(() => {});
function handleSubListItem(id: any) {
uni.setStorageSync("newsItem", id);
From b3038281649556db3e6ac233e99a88aec5368f3b Mon Sep 17 00:00:00 2001
From: zzp <34701892@qq.com>
Date: Sun, 17 Aug 2025 17:26:24 +0800
Subject: [PATCH 3/3] =?UTF-8?q?feat(login):=20=E6=B7=BB=E5=8A=A0=E5=BE=AE?=
=?UTF-8?q?=E4=BF=A1=E6=8E=88=E6=9D=83=E7=99=BB=E5=BD=95=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 新增微信授权API接口
- 替换立即进入按钮为微信获取手机号按钮
- 实现微信授权登录流程,包括获取code和用户信息
- 处理授权成功后的token和用户信息存储
---
src/api/index.ts | 5 +++
src/pages/login/indexMini.vue | 64 ++++++++++++++++++++++++++++++++++-
2 files changed, 68 insertions(+), 1 deletion(-)
diff --git a/src/api/index.ts b/src/api/index.ts
index 0e466a5..ccf3ca3 100644
--- a/src/api/index.ts
+++ b/src/api/index.ts
@@ -62,3 +62,8 @@ export const searchNews = (data: any) => {
return Request.post("/news/search", data);
};
+// 微信授权
+export const doWxAuth = (data: any) => {
+ return Request.post("/common/auth", data);
+};
+
diff --git a/src/pages/login/indexMini.vue b/src/pages/login/indexMini.vue
index 1de62d0..8ba0623 100644
--- a/src/pages/login/indexMini.vue
+++ b/src/pages/login/indexMini.vue
@@ -5,7 +5,18 @@
- 立即进入
+
+
+
+
@@ -28,6 +39,7 @@ import {
onShareTimeline,
onUnload,
} from "@dcloudio/uni-app";
+import { doWxAuth } from "@/api/index";
import { onPullDownRefresh, onReachBottom } from "@dcloudio/uni-app";
import { useShareStore } from "@/stores/shareStore";
@@ -52,6 +64,56 @@ function goIndex() {
});
}
+// 微信获取手机号
+function getPhoneNumber(phoneObj) {
+ uni.showLoading();
+ getWxCode(phoneObj.detail);
+}
+const codeWx = ref();
+function getWxCode(phoneObj) {
+ console.log("🚀 ~ getWxCode ~ phoneObj:", phoneObj);
+ uni.login({
+ success: (res) => {
+ console.log("🚀 ~ getWxCode ~ res:", res);
+ if (res.code) {
+ //微信登录成功 已拿到code
+ codeWx.value = res.code;
+
+ doWxAuthFn(phoneObj, res.code);
+ } else {
+ console.log("登录失败!" + res.errMsg);
+ }
+ },
+ });
+}
+
+/**
+ * 微信授权
+ * @param userInfo
+ */
+async function doWxAuthFn(phoneObj, jsCode) {
+ let { code, data } = await doWxAuth({
+ jsCode: jsCode,
+ encryptedData: phoneObj.encryptedData,
+ siv: phoneObj.iv,
+ });
+ uni.hideLoading();
+ if (code == 200) {
+ uni.setStorageSync("token", data.token);
+ uni.setStorageSync("userId", data.userId);
+ // #ifdef MP-WEIXIN
+ uni.setStorageSync("unionId", data.unionId);
+ // #endif
+ // #ifdef MP-ALIPAY
+ uni.setStorageSync("openId", data.openId);
+ // #endif
+
+ emit("authFinish", true);
+ } else {
+ emit("authFinish", false);
+ }
+}
+
onShareAppMessage((res) => {
return {};
});