录音时长统计

This commit is contained in:
zhonghua.li
2026-02-07 21:59:50 +08:00
parent b1c4f57c58
commit cb4603c2a2
3 changed files with 57 additions and 53 deletions

View File

@@ -51,8 +51,8 @@ const _sfc_main = {
// 默认选择1个月
showTimeRangeDropdown: false,
// 控制下拉菜单显示
totalDuration: "0 小时",
todayDuration: "0 小时",
totalDuration: "0 分钟",
todayDuration: "0 分钟",
dataList: [],
loading: false
};
@@ -155,13 +155,12 @@ const _sfc_main = {
}
},
/**
* 格式化时长(分钟转小时
* 格式化时长(显示为分钟)
*/
formatDuration(minutes) {
if (!minutes || minutes === 0)
return "0 小时";
const hours = (minutes / 60).toFixed(1);
return `${hours} 小时`;
return "0 分钟";
return `${minutes} 分钟`;
},
/**
* 格式化日期
@@ -212,8 +211,8 @@ const _sfc_main = {
const queryString = Object.keys(queryParams).filter((key) => queryParams[key] !== null && queryParams[key] !== void 0 && queryParams[key] !== "").map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(queryParams[key])}`).join("&");
const baseUrl = common_config.getApiUrl("/api/audio-statistics/sales");
const url = queryString ? `${baseUrl}?${queryString}` : baseUrl;
common_vendor.index.__f__("log", "at pages-subpackage/ai_features/recording_duration/recording_duration.vue:338", "[RecordingDuration] 请求参数:", queryParams);
common_vendor.index.__f__("log", "at pages-subpackage/ai_features/recording_duration/recording_duration.vue:339", "[RecordingDuration] 请求URL:", url);
common_vendor.index.__f__("log", "at pages-subpackage/ai_features/recording_duration/recording_duration.vue:337", "[RecordingDuration] 请求参数:", queryParams);
common_vendor.index.__f__("log", "at pages-subpackage/ai_features/recording_duration/recording_duration.vue:338", "[RecordingDuration] 请求URL:", url);
common_vendor.index.showLoading({
title: "加载中...",
mask: true
@@ -222,7 +221,8 @@ const _sfc_main = {
common_vendor.index.hideLoading();
if (res.statusCode === 200 && res.data) {
const result = res.data;
if (!result.success) {
const isSuccess = result.success === true || result.code === 0 || result.code === 200;
if (!isSuccess) {
const errorMsg = result.msg || result.message || "查询失败";
common_vendor.index.showToast({
title: errorMsg,
@@ -233,7 +233,8 @@ const _sfc_main = {
return;
}
const statisticsList = result.data || [];
common_vendor.index.__f__("log", "at pages-subpackage/ai_features/recording_duration/recording_duration.vue:371", "[RecordingDuration] 返回数据:", statisticsList);
common_vendor.index.__f__("log", "at pages-subpackage/ai_features/recording_duration/recording_duration.vue:373", "[RecordingDuration] 返回数据:", statisticsList);
common_vendor.index.__f__("log", "at pages-subpackage/ai_features/recording_duration/recording_duration.vue:374", "[RecordingDuration] 返回结果:", result);
this.processStatisticsData(statisticsList);
common_vendor.index.showToast({
title: "刷新成功",
@@ -245,7 +246,7 @@ const _sfc_main = {
}
} catch (error) {
common_vendor.index.hideLoading();
common_vendor.index.__f__("error", "at pages-subpackage/ai_features/recording_duration/recording_duration.vue:389", "[RecordingDuration] 加载数据失败:", error);
common_vendor.index.__f__("error", "at pages-subpackage/ai_features/recording_duration/recording_duration.vue:392", "[RecordingDuration] 加载数据失败:", error);
common_vendor.index.showToast({
title: error.message || "加载失败,请重试",
icon: "none",
@@ -260,30 +261,28 @@ const _sfc_main = {
*/
processStatisticsData(statisticsList) {
if (!statisticsList || statisticsList.length === 0) {
this.totalDuration = "0 小时";
this.todayDuration = "0 小时";
this.totalDuration = "0 分钟";
this.todayDuration = "0 分钟";
this.dataList = [];
return;
}
let totalDurationMinutes = 0;
let totalRecordingCount = 0;
const firstItem = statisticsList[0];
const totalDurationMinutes = firstItem.salesTotalDuration || 0;
const formattedList = statisticsList.map((item) => {
const salesDuration = item.salesTotalDuration || 0;
totalDurationMinutes += salesDuration;
totalRecordingCount += item.salesRecordingCount || 0;
const dealershipDuration = item.dealershipTotalDuration || 0;
const date = this.formatDate(item.statisticsDate);
let description = "";
if (item.salesName) {
if (item.dealershipName) {
description = `${item.dealershipName}`;
} else if (item.salesName) {
description = `${item.salesName}的录音`;
} else if (item.dealershipName) {
description = `${item.dealershipName}的录音`;
} else {
description = "录音统计";
}
return {
date,
description,
duration: this.formatDuration(salesDuration),
duration: this.formatDuration(dealershipDuration),
// 保存原始数据,方便后续使用
rawData: item
};
@@ -304,14 +303,15 @@ const _sfc_main = {
return itemDate === todayStr;
});
if (todayItem) {
this.todayDuration = this.formatDuration(todayItem.salesTotalDuration || 0);
this.todayDuration = this.formatDuration(todayItem.dealershipTotalDuration || 0);
} else {
this.todayDuration = "0 小时";
this.todayDuration = "0 分钟";
}
common_vendor.index.__f__("log", "at pages-subpackage/ai_features/recording_duration/recording_duration.vue:469", "[RecordingDuration] 数据处理完成:", {
common_vendor.index.__f__("log", "at pages-subpackage/ai_features/recording_duration/recording_duration.vue:472", "[RecordingDuration] 数据处理完成:", {
totalDuration: this.totalDuration,
todayDuration: this.todayDuration,
dataListCount: this.dataList.length
dataListCount: this.dataList.length,
statisticsListLength: statisticsList.length
});
}
}