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" />
|
<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" />
|
<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" />
|
<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
|
<div
|
||||||
v-if="isNotInGroup"
|
v-if="isNotInGroup"
|
||||||
:class="{
|
:class="{
|
||||||
@ -73,11 +73,6 @@ const props = defineProps({
|
|||||||
default: () => ({}),
|
default: () => ({}),
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
// 已过期
|
|
||||||
const isExpire = computed(() => {
|
|
||||||
return props.order.expireTime ? props.order.expireTime < Date.now() : false;
|
|
||||||
});
|
|
||||||
|
|
||||||
const closeOrder = (conversationID: string) => {
|
const closeOrder = (conversationID: string) => {
|
||||||
emits("closeChat", conversationID);
|
emits("closeChat", conversationID);
|
||||||
reset();
|
reset();
|
||||||
|
|||||||
@ -93,7 +93,7 @@ watch(
|
|||||||
() => {
|
() => {
|
||||||
timeLeft.value = calculateTimeLeft();
|
timeLeft.value = calculateTimeLeft();
|
||||||
prescriptionElapsed.value = calculatePrescriptionElapsed();
|
prescriptionElapsed.value = calculatePrescriptionElapsed();
|
||||||
|
|
||||||
clearInterval(intervalId);
|
clearInterval(intervalId);
|
||||||
intervalId = setInterval(updateCountdown, 1000);
|
intervalId = setInterval(updateCountdown, 1000);
|
||||||
}
|
}
|
||||||
@ -146,4 +146,4 @@ watch(
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
:order="order"
|
:order="order"
|
||||||
@handRefundConsultation="handRefundConsultation"
|
@handRefundConsultation="handRefundConsultation"
|
||||||
@endConsultation="endConsultation"
|
@endConsultation="endConsultation"
|
||||||
@countdownFinished="endConsultation"
|
@countdownFinished="endConsultation('COUNTDOWN')"
|
||||||
@onMessageListUpdated="onMessageListUpdated"
|
@onMessageListUpdated="onMessageListUpdated"
|
||||||
>
|
>
|
||||||
<div class="noChatView">请在左侧选择会话,进入聊天</div>
|
<div class="noChatView">请在左侧选择会话,进入聊天</div>
|
||||||
@ -219,19 +219,28 @@ async function refund(arr) {
|
|||||||
rejectVisible.value = false;
|
rejectVisible.value = false;
|
||||||
}
|
}
|
||||||
// 倒计时结束
|
// 倒计时结束
|
||||||
async function endConsultation() {
|
async function endConsultation(triggerSource = "MANUAL") {
|
||||||
// 如果有正在进行的视频问诊,先结束视频问诊
|
const hasActiveVideoConsult =
|
||||||
if (videoConsultStore.status !== "idle" && videoConsultStore.activeOrderId === order.value.orderId) {
|
videoConsultStore.status !== "idle" &&
|
||||||
|
videoConsultStore.activeOrderId === order.value.orderId;
|
||||||
|
// 手动结束时保持原流程;倒计时结束需要先由后端确认确实已过期。
|
||||||
|
if (triggerSource === "MANUAL" && hasActiveVideoConsult) {
|
||||||
console.log("[VIDEO][PC] endConsultation: ending video consult before finishing order");
|
console.log("[VIDEO][PC] endConsultation: ending video consult before finishing order");
|
||||||
await videoConsultStore.leaveRoom({ reason: "consult_ended", skipSendSignal: false });
|
await videoConsultStore.leaveRoom({ reason: "consult_ended", skipSendSignal: false });
|
||||||
}
|
}
|
||||||
|
|
||||||
const { data, success, message } = await finishConsultOrder({
|
const { data, success, message } = await finishConsultOrder({
|
||||||
orderId: order.value.orderId,
|
orderId: order.value.orderId,
|
||||||
|
triggerSource,
|
||||||
});
|
});
|
||||||
if (success) {
|
if (success) {
|
||||||
|
if (triggerSource === "COUNTDOWN" && hasActiveVideoConsult) {
|
||||||
|
await videoConsultStore.leaveRoom({ reason: "consult_ended", skipSendSignal: false });
|
||||||
|
}
|
||||||
order.value.orderStatus = "finished";
|
order.value.orderStatus = "finished";
|
||||||
order.value.status = "已结束";
|
order.value.status = "已结束";
|
||||||
|
} else if (triggerSource === "COUNTDOWN" && data && data.expired === false) {
|
||||||
|
order.value.expireTime = data.expireTime;
|
||||||
} else {
|
} else {
|
||||||
ElMessage.warning(message);
|
ElMessage.warning(message);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user