fix: 问题修复
This commit is contained in:
parent
c7f7ec4ea7
commit
75e67e54bd
@ -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();
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user