From c3ed2f1abdb26061c569f238809687712a02aed0 Mon Sep 17 00:00:00 2001 From: WindowBird <13870814+windows-bird@user.noreply.gitee.com> Date: Fri, 19 Sep 2025 15:14:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=EF=BC=8C=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=E8=AF=A6=E7=BB=86=EF=BC=8C=E6=9C=AA=E6=9D=A5=E8=A7=84=E5=88=92?= =?UTF-8?q?=EF=BC=8C=E7=A5=88=E7=A6=8F=EF=BC=8C=E5=BE=80=E7=94=9F=E6=AE=BF?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=99=BB=E5=BD=95=E6=A8=A1=E6=80=81=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- composables/goToLogin.js | 28 ++++++++++++++++++++++++++++ pages/activity/activity.vue | 4 ++++ pages/activity/activityDetail.vue | 5 +++++ pages/future/future.vue | 5 +++++ pages/memorial/memorialHall.vue | 9 +++++++++ pages/pray/pray.vue | 6 +++++- 6 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 composables/goToLogin.js diff --git a/composables/goToLogin.js b/composables/goToLogin.js new file mode 100644 index 0000000..d3edb20 --- /dev/null +++ b/composables/goToLogin.js @@ -0,0 +1,28 @@ +export const getToken = () => { + return uni.getStorageSync("token") || null; +}; + +export const checkLogin = () => { + const token = getToken(); + if (!token) { + showLoginModal(); + return false; + } + return true; +}; + +export const showLoginModal = () => { + uni.showModal({ + title: "未登录", + content: "请先登录后再进行操作", + confirmText: "去登录", + cancelText: "取消", + success: (res) => { + if (res.confirm) { + uni.navigateTo({ + url: "/pages/login/login", + }); + } + }, + }); +}; diff --git a/pages/activity/activity.vue b/pages/activity/activity.vue index fc20ba9..88884ea 100644 --- a/pages/activity/activity.vue +++ b/pages/activity/activity.vue @@ -44,6 +44,7 @@ import StatusDisplay from "../../components/status-display/status-display.vue"; import ActivityCard from "../../components/activity-card/activity-card.vue"; import activityApi from "../../api/activity/activity.js"; import activityFormatter from "../../utils/activity-data-formatter.js"; +import { checkLogin } from "../../composables/goToLogin"; export default { components: { @@ -157,6 +158,9 @@ export default { // 处理报名 handleRegister(activity) { + if (!checkLogin()) { + return; + } console.log("报名活动:", activity); // 直接跳转到活动报名页面 diff --git a/pages/activity/activityDetail.vue b/pages/activity/activityDetail.vue index 1d70c4f..2c595e2 100644 --- a/pages/activity/activityDetail.vue +++ b/pages/activity/activityDetail.vue @@ -101,6 +101,7 @@ import ActivityCard from "../../components/activity-card/activity-card.vue"; import activityApi from "../../api/activity/activity.js"; import activityFormatter from "../../utils/activity-data-formatter.js"; import { removeBackgroundStyle } from "../../composables/clearnBackgroundColor"; +import { checkLogin } from "../../composables/goToLogin"; export default { components: { @@ -191,6 +192,10 @@ export default { console.log("报名活动:", this.activityData); + if (!checkLogin()) { + return; + } + // 直接跳转到活动报名页面 uni.navigateTo({ url: `/pages/activity/application?actId=${this.activityData.id}`, diff --git a/pages/future/future.vue b/pages/future/future.vue index 5eba19c..162cd57 100644 --- a/pages/future/future.vue +++ b/pages/future/future.vue @@ -157,6 +157,7 @@ import { import { createPagination } from "../../composables/winB_Pagination"; import GoToCertification from "./components/goToCertification.vue"; import { ordersFormed } from "../../api/order/order"; +import { checkLogin } from "../../composables/goToLogin"; export default { components: { GoToCertification }, @@ -328,6 +329,10 @@ export default { }); }, handleDonate() { + if (!checkLogin()) { + return; + } + console.log("根据state进行弹窗", this.projectDetails.state); if (this.projectDetails.state === "1") { uni.showToast({ diff --git a/pages/memorial/memorialHall.vue b/pages/memorial/memorialHall.vue index 696ddaf..2822565 100644 --- a/pages/memorial/memorialHall.vue +++ b/pages/memorial/memorialHall.vue @@ -146,6 +146,7 @@ import OfferingModal from "./compositons/offeringModal.vue"; import { getPackageList } from "../../api/memorial/memorial"; import { ordersEnshrined } from "../../api/order/order"; +import { checkLogin } from "../../composables/goToLogin"; export default { components: { @@ -323,6 +324,10 @@ export default { // 处理收藏/取消收藏 async handleCollect() { + if (!checkLogin()) { + return; + } + if (!this.selectedUnitId) { uni.showToast({ title: "无法获取牌位信息", @@ -393,6 +398,10 @@ export default { // 提交供奉 submitPrayer() { + if (!checkLogin()) { + return; + } + console.log("显示供奉弹窗"); this.showOfferingModal = true; }, diff --git a/pages/pray/pray.vue b/pages/pray/pray.vue index 0eebeb1..b3d0415 100644 --- a/pages/pray/pray.vue +++ b/pages/pray/pray.vue @@ -98,6 +98,7 @@ import CommonEnum from "../../enum/common"; import CustomNavbar from "../../components/custom-navbar/custom-navbar.vue"; import BottomButton from "../../components/bottom-button/bottom-button.vue"; import { submitPrayer } from "@/api/pray/pray"; +import { checkLogin } from "../../composables/goToLogin"; export default { components: { @@ -154,6 +155,10 @@ export default { return; } + if (!checkLogin()) { + return; + } + // 显示确认信息 this.showConfirmation(); }, @@ -360,7 +365,6 @@ export default { align-items: center; .title-text { - height: 44rpx; font-weight: 400; color: #695347;