hookehuyr

feat(商品详情页): 实现联系卖家功能的消息发送和聊天室创建

添加聊天相关API调用,在联系卖家时创建聊天室并存储会话ID
发送消息时使用会话ID进行消息发送,优化用户交互流程
<!--
* @Date: 2022-09-19 14:11:06
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2025-07-18 14:42:02
* @LastEditTime: 2025-07-22 16:05:59
* @FilePath: /jgdl/src/pages/productDetail/index.vue
* @Description: 商品详情页
-->
......@@ -256,6 +256,8 @@ import { checkPermission, PERMISSION_TYPES } from '@/utils/permission'
// 导入接口
import { getVehicleDetailAPI } from '@/api/car'
import { createOrderAPI } from '@/api/orders'
import { getChatConversationAPI, sendChatAPI } from '@/api/chat'
import { DEFAULT_COVER_IMG } from '@/utils/config'
// 导入用户 store
import { useUserStore } from '@/stores/user'
......@@ -350,10 +352,20 @@ const copyWechat = () => {
/**
* 联系卖家
*/
const conversation_id = ref('')
const handleContactSeller = async () => {
const hasPermission = await checkPermission(PERMISSION_TYPES.CONTACT_SELLER)
if (hasPermission) {
// 获取聊天室ID
const { code, data } = await getChatConversationAPI({
buyer_id: userStore.userInfo.id,
seller_id: product.value.seller.id,
vehicle_id: product.value.id
})
if (code) {
showContactModal.value = true
conversation_id.value = data.conversation_id
}
}
}
......@@ -372,7 +384,7 @@ const addQuickTag = (tag) => {
/**
* 发送消息给卖家
*/
const sendMessageToSeller = () => {
const sendMessageToSeller = async () => {
if (!messageText.value.trim()) {
Taro.showToast({
title: '请输入留言内容',
......@@ -381,21 +393,21 @@ const sendMessageToSeller = () => {
return
}
// 发送消息
const { code } = await sendChatAPI({
conversation_id: conversation_id.value,
note: messageText.value,
})
if (code) {
Taro.showToast({
title: '消息发送成功',
icon: 'success'
})
}
// 清空输入框并关闭弹框
messageText.value = ''
showContactModal.value = false
// 这里可以调用API发送消息
// sendMessageAPI({
// sellerId: product.value.seller.id,
// message: messageText.value,
// productId: product.value.id
// })
}
/**
......