diff --git a/.env b/.env index ce0e40e..2d1b476 100644 --- a/.env +++ b/.env @@ -1,6 +1,6 @@ # API -# VITE_SYSTEM_URL = "http://w6972efb.natappfree.cc" -VITE_SYSTEM_URL = "https://dev.cqjcteach.cn/prod-api" +VITE_SYSTEM_URL = "http://w6972efb.natappfree.cc" +# VITE_SYSTEM_URL = "https://dev.cqjcteach.cn/prod-api" # 第三方客户 channelId VITE_CHANNEL_ID = "7b81ec142eca42baa045820793b821bb" diff --git a/TUIKit/components/TUIChat/message-list/index.vue b/TUIKit/components/TUIChat/message-list/index.vue index 7ebe245..234ddb0 100644 --- a/TUIKit/components/TUIChat/message-list/index.vue +++ b/TUIKit/components/TUIChat/message-list/index.vue @@ -279,7 +279,12 @@ import chatStorage from '../utils/chatStorage' import { IAudioContext } from '../../../interface' import { CHAT_MSG_CUSTOM_TYPE } from '../../../constant' - import { receiveRedEnvelope } from '../../../../api/tui-kit' + import { + receiveRedEnvelope, + getRedEnvelopeDetail + } from '../../../../api/tui-kit' + import { navigateTo } from '../../../../utils/router' + import { useUI } from '../../../../utils/use-ui' interface IEmits { (e: 'closeInputToolBar'): void @@ -604,9 +609,10 @@ }) } + const { showDialog } = useUI() /** 领取红包 */ const onClaim = (item: IMessageModel) => { - const { conversationType, flow, payload } = item + const { conversationType, cloudCustomData, flow, payload } = item const data = JSON.parse(payload.data) // 群聊 if (conversationType === TYPES.value.CONV_GROUP) { @@ -617,7 +623,43 @@ }) } else { // 个人红包 - // 只能对方领取 + getRedEnvelopeDetail(data.id).then(async (res: any) => { + console.log(res) + let newMessage = { + // ...data, + in: false, + out: false + } + if (cloudCustomData) { + newMessage = JSON.parse(cloudCustomData) + } + // 只能对方领取 + if (flow === 'in') { + if (res.data.hasReceived) { + // 直接去详情页 + } else { + const show = await showDialog('提示', '是否领取该红包?') + if (show) { + newMessage.in = true + + item.modifyMessage({ + cloudCustomData: JSON.stringify(newMessage) + }) + } + } + } else { + newMessage.out = true + item.modifyMessage({ + cloudCustomData: JSON.stringify(newMessage) + }) + navigateTo('/pages/red-packet/details', { + id: data.id, + type: conversationType + }) + } + }) + + return if (flow === 'in') { // 修改后的消息 const newMessage = { diff --git a/TUIKit/components/TUIChat/message-list/message-elements/message-custom.vue b/TUIKit/components/TUIChat/message-list/message-elements/message-custom.vue index a61ab66..e865164 100644 --- a/TUIKit/components/TUIChat/message-list/message-elements/message-custom.vue +++ b/TUIKit/components/TUIChat/message-list/message-elements/message-custom.vue @@ -86,6 +86,13 @@ 积分红包{{ customData.isOpen }} + + @@ -51,6 +60,7 @@ :default-page-size="15" safe-area-inset-bottom use-safe-area-placeholder + :show-loading-more-no-more-view="total !== listData.length" :auto="false" @query="getList" > @@ -69,7 +79,19 @@ + - {{ item.userName }} + + {{ item.isAnonymous ? '匿名用户' : item.userName }} + @@ -104,15 +128,16 @@ {{ item.content }} - diff --git a/pages/red-packet/details.vue b/pages/red-packet/details.vue new file mode 100644 index 0000000..d87693e --- /dev/null +++ b/pages/red-packet/details.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/stores/user.js b/stores/user.js index 1b9f2de..c04e151 100644 --- a/stores/user.js +++ b/stores/user.js @@ -118,21 +118,27 @@ export const useUserStore = defineStore('user', () => { // #ifdef APP-PLUS await useLoginState().logout() // #endif - clearToken() - removeUserInfoData() - removeSig() - removeFontSize() + clearAllUserInfo() await showToast('退出登录成功', 'success') reLaunch('/pages/login/login') } catch (error) { - clearToken() - removeUserInfoData() - removeSig() - removeFontSize() + clearAllUserInfo() await showToast('退出登录成功', 'success') reLaunch('/pages/login/login') } } + + /** 清空所有用户缓存 */ + const clearAllUserInfo = async () => { + userInfo.value = null + tencentUserSig.value = null + fontSizeData.value = 26 + clearToken() + removeUserInfoData() + removeSig() + removeFontSize() + } + /** 刷新用户信息(如用户信息被修改) */ const refreshUserInfo = async () => { const res = await getUserData() @@ -159,6 +165,7 @@ export const useUserStore = defineStore('user', () => { userInfo, tencentUserSig, fontSizeData, + clearAllUserInfo, updateFontSize, logout, refreshUserInfo, diff --git a/styles/login.scss b/styles/login.scss index 3f85741..3563730 100644 --- a/styles/login.scss +++ b/styles/login.scss @@ -33,6 +33,7 @@ padding: 120rpx 32rpx 66rpx; display: flex; justify-content: space-between; + align-items: center; .title-left, .title-right { font-family: PingFang SC, PingFang SC; diff --git a/utils/request.js b/utils/request.js index 0ccc46b..09830a4 100644 --- a/utils/request.js +++ b/utils/request.js @@ -105,9 +105,9 @@ const handleError = (statusCode, data) => { content: '登录已过期,请重新登录', showCancel: false, success: async () => { - await useUserStore().logout() + await useUserStore().clearAllUserInfo() // 可选:跳转登录页 - // uni.redirectTo({ url: '/pages/login/index' }) + uni.redirectTo({ url: '/pages/login/index' }) console.log('登录已过期,====') }, complete: () => {