feat(商品详情页): 实现联系卖家功能的消息发送和聊天室创建
添加聊天相关API调用,在联系卖家时创建聊天室并存储会话ID 发送消息时使用会话ID进行消息发送,优化用户交互流程
Showing
1 changed file
with
21 additions
and
9 deletions
| 1 | <!-- | 1 | <!-- |
| 2 | * @Date: 2022-09-19 14:11:06 | 2 | * @Date: 2022-09-19 14:11:06 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2025-07-18 14:42:02 | 4 | + * @LastEditTime: 2025-07-22 16:05:59 |
| 5 | * @FilePath: /jgdl/src/pages/productDetail/index.vue | 5 | * @FilePath: /jgdl/src/pages/productDetail/index.vue |
| 6 | * @Description: 商品详情页 | 6 | * @Description: 商品详情页 |
| 7 | --> | 7 | --> |
| ... | @@ -256,6 +256,8 @@ import { checkPermission, PERMISSION_TYPES } from '@/utils/permission' | ... | @@ -256,6 +256,8 @@ import { checkPermission, PERMISSION_TYPES } from '@/utils/permission' |
| 256 | // 导入接口 | 256 | // 导入接口 |
| 257 | import { getVehicleDetailAPI } from '@/api/car' | 257 | import { getVehicleDetailAPI } from '@/api/car' |
| 258 | import { createOrderAPI } from '@/api/orders' | 258 | import { createOrderAPI } from '@/api/orders' |
| 259 | +import { getChatConversationAPI, sendChatAPI } from '@/api/chat' | ||
| 260 | + | ||
| 259 | import { DEFAULT_COVER_IMG } from '@/utils/config' | 261 | import { DEFAULT_COVER_IMG } from '@/utils/config' |
| 260 | // 导入用户 store | 262 | // 导入用户 store |
| 261 | import { useUserStore } from '@/stores/user' | 263 | import { useUserStore } from '@/stores/user' |
| ... | @@ -350,10 +352,20 @@ const copyWechat = () => { | ... | @@ -350,10 +352,20 @@ const copyWechat = () => { |
| 350 | /** | 352 | /** |
| 351 | * 联系卖家 | 353 | * 联系卖家 |
| 352 | */ | 354 | */ |
| 355 | +const conversation_id = ref('') | ||
| 353 | const handleContactSeller = async () => { | 356 | const handleContactSeller = async () => { |
| 354 | const hasPermission = await checkPermission(PERMISSION_TYPES.CONTACT_SELLER) | 357 | const hasPermission = await checkPermission(PERMISSION_TYPES.CONTACT_SELLER) |
| 355 | if (hasPermission) { | 358 | if (hasPermission) { |
| 359 | + // 获取聊天室ID | ||
| 360 | + const { code, data } = await getChatConversationAPI({ | ||
| 361 | + buyer_id: userStore.userInfo.id, | ||
| 362 | + seller_id: product.value.seller.id, | ||
| 363 | + vehicle_id: product.value.id | ||
| 364 | + }) | ||
| 365 | + if (code) { | ||
| 356 | showContactModal.value = true | 366 | showContactModal.value = true |
| 367 | + conversation_id.value = data.conversation_id | ||
| 368 | + } | ||
| 357 | } | 369 | } |
| 358 | } | 370 | } |
| 359 | 371 | ||
| ... | @@ -372,7 +384,7 @@ const addQuickTag = (tag) => { | ... | @@ -372,7 +384,7 @@ const addQuickTag = (tag) => { |
| 372 | /** | 384 | /** |
| 373 | * 发送消息给卖家 | 385 | * 发送消息给卖家 |
| 374 | */ | 386 | */ |
| 375 | -const sendMessageToSeller = () => { | 387 | +const sendMessageToSeller = async () => { |
| 376 | if (!messageText.value.trim()) { | 388 | if (!messageText.value.trim()) { |
| 377 | Taro.showToast({ | 389 | Taro.showToast({ |
| 378 | title: '请输入留言内容', | 390 | title: '请输入留言内容', |
| ... | @@ -381,21 +393,21 @@ const sendMessageToSeller = () => { | ... | @@ -381,21 +393,21 @@ const sendMessageToSeller = () => { |
| 381 | return | 393 | return |
| 382 | } | 394 | } |
| 383 | 395 | ||
| 396 | + // 发送消息 | ||
| 397 | + const { code } = await sendChatAPI({ | ||
| 398 | + conversation_id: conversation_id.value, | ||
| 399 | + note: messageText.value, | ||
| 400 | + }) | ||
| 401 | + if (code) { | ||
| 384 | Taro.showToast({ | 402 | Taro.showToast({ |
| 385 | title: '消息发送成功', | 403 | title: '消息发送成功', |
| 386 | icon: 'success' | 404 | icon: 'success' |
| 387 | }) | 405 | }) |
| 406 | + } | ||
| 388 | 407 | ||
| 389 | // 清空输入框并关闭弹框 | 408 | // 清空输入框并关闭弹框 |
| 390 | messageText.value = '' | 409 | messageText.value = '' |
| 391 | showContactModal.value = false | 410 | showContactModal.value = false |
| 392 | - | ||
| 393 | - // 这里可以调用API发送消息 | ||
| 394 | - // sendMessageAPI({ | ||
| 395 | - // sellerId: product.value.seller.id, | ||
| 396 | - // message: messageText.value, | ||
| 397 | - // productId: product.value.id | ||
| 398 | - // }) | ||
| 399 | } | 411 | } |
| 400 | 412 | ||
| 401 | /** | 413 | /** | ... | ... |
-
Please register or login to post a comment