fix: 问题修复

This commit is contained in:
huxuejian 2026-08-03 18:37:29 +08:00
parent c7f7ec4ea7
commit 75e67e54bd
3 changed files with 16 additions and 12 deletions

View File

@ -9,7 +9,7 @@
<ChatHeader :order="order" :class="['tui-chat-header', !isPC && 'tui-chat-H5-header', isUniFrameWork && 'tui-chat-uniapp-header']" :isGroup="isGroup" :headerExtensionList="headerExtensionList" @closeChat="closeChat" @openGroupManagement="handleGroup" />
<Forward @toggleMultipleSelectMode="toggleMultipleSelectMode" />
<MessageList ref="messageListRef" :class="['tui-chat-message-list', !isPC && 'tui-chat-h5-message-list']" :isGroup="isGroup" :groupID="groupID" :isNotInGroup="isNotInGroup" :isMultipleSelectMode="isMultipleSelectMode" @handleEditor="handleEditor" @closeInputToolBar="() => changeToolbarDisplayType('none')" @toggleMultipleSelectMode="toggleMultipleSelectMode" @onMessageListUpdated="onMessageListUpdated" />
<consult-countdown :expireTime="order.expireTime" :prescriptionStartTime="order.prescriptionStartTime" :prescriptionEndTime="order.prescriptionEndTime" v-if="(order.orderStatus === 'pending' || order.orderStatus === 'processing' || order.orderStatus === 'completed') && !isExpire" @countdown-finished="countdownFinished"></consult-countdown>
<consult-countdown :expireTime="order.expireTime" :prescriptionStartTime="order.prescriptionStartTime" :prescriptionEndTime="order.prescriptionEndTime" v-if="order.orderStatus === 'pending' || order.orderStatus === 'processing' || order.orderStatus === 'completed'" @countdown-finished="countdownFinished"></consult-countdown>
<div
v-if="isNotInGroup"
:class="{
@ -73,11 +73,6 @@ const props = defineProps({
default: () => ({}),
},
});
//
const isExpire = computed(() => {
return props.order.expireTime ? props.order.expireTime < Date.now() : false;
});
const closeOrder = (conversationID: string) => {
emits("closeChat", conversationID);
reset();

View File

@ -13,7 +13,7 @@
:order="order"
@handRefundConsultation="handRefundConsultation"
@endConsultation="endConsultation"
@countdownFinished="endConsultation"
@countdownFinished="endConsultation('COUNTDOWN')"
@onMessageListUpdated="onMessageListUpdated"
>
<div class="noChatView">请在左侧选择会话进入聊天</div>
@ -219,19 +219,28 @@ async function refund(arr) {
rejectVisible.value = false;
}
//
async function endConsultation() {
//
if (videoConsultStore.status !== "idle" && videoConsultStore.activeOrderId === order.value.orderId) {
async function endConsultation(triggerSource = "MANUAL") {
const hasActiveVideoConsult =
videoConsultStore.status !== "idle" &&
videoConsultStore.activeOrderId === order.value.orderId;
//
if (triggerSource === "MANUAL" && hasActiveVideoConsult) {
console.log("[VIDEO][PC] endConsultation: ending video consult before finishing order");
await videoConsultStore.leaveRoom({ reason: "consult_ended", skipSendSignal: false });
}
const { data, success, message } = await finishConsultOrder({
orderId: order.value.orderId,
triggerSource,
});
if (success) {
if (triggerSource === "COUNTDOWN" && hasActiveVideoConsult) {
await videoConsultStore.leaveRoom({ reason: "consult_ended", skipSendSignal: false });
}
order.value.orderStatus = "finished";
order.value.status = "已结束";
} else if (triggerSource === "COUNTDOWN" && data && data.expired === false) {
order.value.expireTime = data.expireTime;
} else {
ElMessage.warning(message);
}