dify修正
This commit is contained in:
@@ -127,7 +127,35 @@ export const chatApi = {
|
||||
|
||||
// 监听错误事件
|
||||
eventSource.addEventListener('error', (event: any) => {
|
||||
const error = new Error(event.data || '对话失败');
|
||||
// 如果 data 为空,说明是正常的流结束信号(有些工作流不发送end事件)
|
||||
if (!event.data || event.data.trim() === '') {
|
||||
console.log('[SSE流结束] 收到空error事件,当作正常结束处理');
|
||||
|
||||
// 触发结束回调(如果有的话)
|
||||
callback?.onMessageEnd?.({
|
||||
conversationId: request.conversationId,
|
||||
messageId: '',
|
||||
answer: fullMessage
|
||||
} as any);
|
||||
|
||||
eventSource.close();
|
||||
|
||||
// 正常结束
|
||||
resolve({
|
||||
code: 200,
|
||||
success: true,
|
||||
login: true,
|
||||
auth: true,
|
||||
data: {
|
||||
conversationId: request.conversationId,
|
||||
answer: fullMessage
|
||||
} as any,
|
||||
message: '对话已结束'
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
const error = new Error(event.data);
|
||||
callback?.onError?.(error);
|
||||
eventSource.close();
|
||||
reject(error);
|
||||
@@ -358,7 +386,34 @@ export const chatApi = {
|
||||
|
||||
// 监听错误事件
|
||||
eventSource.addEventListener('error', (event: any) => {
|
||||
const error = new Error(event.data || '重新生成失败');
|
||||
// 如果 data 为空,说明是正常的流结束信号(有些工作流不发送end事件)
|
||||
if (!event.data || event.data.trim() === '') {
|
||||
console.log('[SSE流结束-重新生成] 收到空error事件,当作正常结束处理');
|
||||
|
||||
// 触发结束回调(如果有的话)
|
||||
callback?.onMessageEnd?.({
|
||||
messageId: messageId,
|
||||
answer: fullMessage
|
||||
} as any);
|
||||
|
||||
eventSource.close();
|
||||
|
||||
// 正常结束
|
||||
resolve({
|
||||
code: 200,
|
||||
success: true,
|
||||
login: true,
|
||||
auth: true,
|
||||
data: {
|
||||
messageId: messageId,
|
||||
answer: fullMessage
|
||||
} as any,
|
||||
message: '重新生成已结束'
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
const error = new Error(event.data);
|
||||
callback?.onError?.(error);
|
||||
eventSource.close();
|
||||
reject(error);
|
||||
|
||||
@@ -180,7 +180,14 @@ function initDurationChart(data: any[]) {
|
||||
const duration = params.value;
|
||||
const hours = Math.floor(duration / 3600);
|
||||
const minutes = Math.floor((duration % 3600) / 60);
|
||||
return `${params.name}<br/>学习时长: ${hours}小时${minutes}分钟<br/>学习人数: ${params.data.userCount}人`;
|
||||
const secs = duration % 60;
|
||||
|
||||
let timeStr = '';
|
||||
if (hours > 0) timeStr += `${hours}小时`;
|
||||
if (minutes > 0) timeStr += `${minutes}分钟`;
|
||||
if (secs > 0 || timeStr === '') timeStr += `${secs}秒`;
|
||||
|
||||
return `${params.name}<br/>学习时长: ${timeStr}<br/>学习人数: ${params.data.userCount}人`;
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
@@ -204,7 +211,18 @@ function initDurationChart(data: any[]) {
|
||||
const duration = params.value;
|
||||
const hours = Math.floor(duration / 3600);
|
||||
const minutes = Math.floor((duration % 3600) / 60);
|
||||
return `${params.name}\n${hours}h${minutes}m`;
|
||||
const secs = duration % 60;
|
||||
|
||||
let timeStr = '';
|
||||
if (hours > 0) {
|
||||
timeStr = `${hours}h${minutes}m`;
|
||||
} else if (minutes > 0) {
|
||||
timeStr = `${minutes}m${secs}s`;
|
||||
} else {
|
||||
timeStr = `${secs}s`;
|
||||
}
|
||||
|
||||
return `${params.name}\n${timeStr}`;
|
||||
}
|
||||
},
|
||||
emphasis: {
|
||||
@@ -233,12 +251,26 @@ function initDurationChart(data: any[]) {
|
||||
|
||||
// 格式化时长
|
||||
function formatDuration(seconds: number): string {
|
||||
if (!seconds || seconds === 0) {
|
||||
return '0秒';
|
||||
}
|
||||
|
||||
const hours = Math.floor(seconds / 3600);
|
||||
const minutes = Math.floor((seconds % 3600) / 60);
|
||||
const secs = seconds % 60;
|
||||
|
||||
let result = '';
|
||||
if (hours > 0) {
|
||||
return `${hours}小时${minutes}分钟`;
|
||||
result += `${hours}小时`;
|
||||
}
|
||||
return `${minutes}分钟`;
|
||||
if (minutes > 0) {
|
||||
result += `${minutes}分钟`;
|
||||
}
|
||||
if (secs > 0 || result === '') {
|
||||
result += `${secs}秒`;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// 获取排名样式
|
||||
@@ -294,7 +326,7 @@ function getRankClass(index: number): string {
|
||||
|
||||
&:hover {
|
||||
background: #e8edf3;
|
||||
transform: translateX(5px);
|
||||
// transform: translateX(5px);
|
||||
}
|
||||
|
||||
.rank {
|
||||
|
||||
Reference in New Issue
Block a user