From b31e8fff09b4792d4cd9d940f138a0354ac26179 Mon Sep 17 00:00:00 2001 From: jeremygan2021 Date: Sat, 28 Feb 2026 13:01:02 +0800 Subject: [PATCH] debug --- miniprogram/src/pages/cart/cart.tsx | 2 ++ miniprogram/src/pages/courses/detail.tsx | 2 ++ miniprogram/src/pages/goods/detail.tsx | 2 ++ miniprogram/src/pages/order/detail.tsx | 2 ++ miniprogram/src/pages/services/detail.tsx | 7 ++++- .../src/subpackages/forum/detail/index.tsx | 12 +++++++- miniprogram/src/utils/auth.ts | 28 +++++++++++++++++++ 7 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 miniprogram/src/utils/auth.ts diff --git a/miniprogram/src/pages/cart/cart.tsx b/miniprogram/src/pages/cart/cart.tsx index 45433a2..799fadb 100644 --- a/miniprogram/src/pages/cart/cart.tsx +++ b/miniprogram/src/pages/cart/cart.tsx @@ -2,6 +2,7 @@ import { View, Text, Image, ScrollView, Button } from '@tarojs/components' import Taro, { useDidShow } from '@tarojs/taro' import { useState, useMemo } from 'react' import { getCart, updateQuantity, removeItem, toggleSelect, toggleSelectAll, CartItem } from '../../utils/cart' +import { checkLogin } from '../../utils/auth' import './cart.scss' export default function Cart() { @@ -60,6 +61,7 @@ export default function Cart() { }, [cartItems]) const handleCheckout = () => { + if (!checkLogin()) return if (selectedCount === 0) { Taro.showToast({ title: '请选择商品', icon: 'none' }) return diff --git a/miniprogram/src/pages/courses/detail.tsx b/miniprogram/src/pages/courses/detail.tsx index 0fb3042..35eadba 100644 --- a/miniprogram/src/pages/courses/detail.tsx +++ b/miniprogram/src/pages/courses/detail.tsx @@ -2,6 +2,7 @@ import { View, Text, Button, Image, ScrollView, Video } from '@tarojs/components import Taro, { useLoad, useShareAppMessage, useShareTimeline } from '@tarojs/taro' import { useState } from 'react' import { getVBCourseDetail } from '../../api' +import { checkLogin } from '../../utils/auth' import './detail.scss' export default function CourseDetail() { @@ -33,6 +34,7 @@ export default function CourseDetail() { } const handleLaunch = () => { + if (!checkLogin()) return if (!detail) return Taro.navigateTo({ url: `/pages/order/checkout?id=${detail.id}&type=course` diff --git a/miniprogram/src/pages/goods/detail.tsx b/miniprogram/src/pages/goods/detail.tsx index 3d4c7e9..189d0d3 100644 --- a/miniprogram/src/pages/goods/detail.tsx +++ b/miniprogram/src/pages/goods/detail.tsx @@ -2,6 +2,7 @@ import { View, Text, Image, ScrollView, Button } from '@tarojs/components' import Taro, { useRouter, useLoad, useShareAppMessage, useShareTimeline } from '@tarojs/taro' import { useState } from 'react' import { getConfigDetail } from '../../api' +import { checkLogin } from '../../utils/auth' import ParticleBackground from '../../components/ParticleBackground' import { addToCart } from '../../utils/cart' import './detail.scss' @@ -50,6 +51,7 @@ export default function Detail() { } const buyNow = () => { + if (!checkLogin()) return if (!product) return Taro.navigateTo({ url: `/pages/order/checkout?id=${product.id}&quantity=1` diff --git a/miniprogram/src/pages/order/detail.tsx b/miniprogram/src/pages/order/detail.tsx index fd21d3c..5187011 100644 --- a/miniprogram/src/pages/order/detail.tsx +++ b/miniprogram/src/pages/order/detail.tsx @@ -2,6 +2,7 @@ import { View, Text, Button, Image } from '@tarojs/components' import Taro, { useRouter, useLoad } from '@tarojs/taro' import { useState } from 'react' import { getOrder, prepayMiniprogram } from '../../api' +import { checkLogin } from '../../utils/auth' import './detail.scss' export default function OrderDetail() { @@ -27,6 +28,7 @@ export default function OrderDetail() { } const handlePay = async () => { + if (!checkLogin()) return if (!order) return setLoading(true) try { diff --git a/miniprogram/src/pages/services/detail.tsx b/miniprogram/src/pages/services/detail.tsx index c2d296b..21815c9 100644 --- a/miniprogram/src/pages/services/detail.tsx +++ b/miniprogram/src/pages/services/detail.tsx @@ -2,6 +2,7 @@ import { View, Text, Image, Button, Input, Textarea } from '@tarojs/components' import Taro, { useLoad, useShareAppMessage, useShareTimeline } from '@tarojs/taro' import { useState } from 'react' import { getServiceDetail, createServiceOrder } from '../../api' +import { checkLogin } from '../../utils/auth' import './detail.scss' export default function ServiceDetail() { @@ -134,7 +135,11 @@ export default function ServiceDetail() { diff --git a/miniprogram/src/subpackages/forum/detail/index.tsx b/miniprogram/src/subpackages/forum/detail/index.tsx index db83f7e..dcb4f34 100644 --- a/miniprogram/src/subpackages/forum/detail/index.tsx +++ b/miniprogram/src/subpackages/forum/detail/index.tsx @@ -1,5 +1,5 @@ import React, { useState, useEffect } from 'react' -import Taro, { useRouter, useShareAppMessage, useDidShow } from '@tarojs/taro' +import Taro, { useRouter, useShareAppMessage, useShareTimeline, useDidShow } from '@tarojs/taro' import { View, Text, Image, Video, Input, ScrollView } from '@tarojs/components' import { AtActivityIndicator, AtIcon, AtActionSheet, AtActionSheetItem, AtFloatLayout } from 'taro-ui' import { getTopicDetail, createReply, uploadMedia, getStarUsers } from '../../../api' @@ -70,6 +70,7 @@ const ForumDetail = () => { setShowStarUsers(false) } + // 分享给好友 useShareAppMessage(() => { return { title: topic?.title || '技术社区', @@ -77,6 +78,15 @@ const ForumDetail = () => { } }) + // 分享到朋友圈 + useShareTimeline(() => { + return { + title: topic?.title || '技术社区', + query: `id=${id}`, + imageUrl: topic?.author_info?.avatar_url || 'https://via.placeholder.com/300x300?text=技术社区' + } + }) + const handleReplyChange = (e) => { setReplyContent(e.detail.value) } diff --git a/miniprogram/src/utils/auth.ts b/miniprogram/src/utils/auth.ts new file mode 100644 index 0000000..2d07e63 --- /dev/null +++ b/miniprogram/src/utils/auth.ts @@ -0,0 +1,28 @@ +import Taro from '@tarojs/taro' + +/** + * 检查用户是否登录 + * @returns boolean 是否已登录 + */ +export const checkLogin = (): boolean => { + const token = Taro.getStorageSync('token') + + if (!token) { + Taro.showModal({ + title: '提示', + content: '请先登录小程序', + confirmText: '去登录', + cancelText: '取消', + success: (res) => { + if (res.confirm) { + Taro.switchTab({ + url: '/pages/user/index' + }) + } + } + }) + return false + } + + return true +}