|
@@ -461,12 +461,24 @@ const customerStats = ref({
|
|
|
optiScore: 0
|
|
|
});
|
|
|
|
|
|
+// 添加格式化数字的函数
|
|
|
+const formatNumber = (num: string | number) => {
|
|
|
+ if (!num) return '-';
|
|
|
+ // 处理字符串类型的数字
|
|
|
+ const numStr = typeof num === 'string' ? num : num.toString();
|
|
|
+ // 分离整数和小数部分
|
|
|
+ const parts = numStr.split('.');
|
|
|
+ // 对整数部分添加千位分隔符
|
|
|
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
|
|
+ // 重新组合整数和小数部分
|
|
|
+ return parts.join('.');
|
|
|
+};
|
|
|
+
|
|
|
// 获取客户统计数据
|
|
|
const getCustomerStats = async () => {
|
|
|
try {
|
|
|
loading.value = true;
|
|
|
const res = await getGoogleAdsCustomerStats(queryParam);
|
|
|
- // 更新客户统计数据,处理 null 值
|
|
|
const stats = res;
|
|
|
|
|
|
// 处理余额和花费的分割
|
|
@@ -477,14 +489,14 @@ const getCustomerStats = async () => {
|
|
|
descriptiveName: stats.descriptiveName ?? '-',
|
|
|
customerId: stats.customerId ?? '-',
|
|
|
balance: {
|
|
|
- value: balanceParts ? balanceParts[1] : '-',
|
|
|
+ value: balanceParts ? formatNumber(balanceParts[1]) : '-',
|
|
|
unit: balanceParts ? balanceParts[2] : ''
|
|
|
},
|
|
|
cost: {
|
|
|
- value: costParts ? costParts[1] : '-',
|
|
|
+ value: costParts ? formatNumber(costParts[1]) : '-',
|
|
|
unit: costParts ? costParts[2] : ''
|
|
|
},
|
|
|
- conversions: stats.conversions ?? '-',
|
|
|
+ conversions: stats.conversions ? formatNumber(stats.conversions) : '-',
|
|
|
optiScore: stats.optiScore ? stats.optiScore * 100 : 0
|
|
|
};
|
|
|
} catch (error) {
|
|
@@ -577,7 +589,7 @@ const getCountryStats = async () => {
|
|
|
value: item.clicks,
|
|
|
}));
|
|
|
|
|
|
- // ���理表格数据
|
|
|
+ // 处理表格数据
|
|
|
chartDetailData.value = res.map(item => ({
|
|
|
countryCode: item.countryCode?.toLowerCase(),
|
|
|
countryName: item.countryName,
|
|
@@ -586,7 +598,7 @@ const getCountryStats = async () => {
|
|
|
}));
|
|
|
}
|
|
|
} catch (error) {
|
|
|
- console.error('获取国家统计数据失��:', error);
|
|
|
+ console.error('获取国家统计数据失败:', error);
|
|
|
} finally {
|
|
|
loading.value = false;
|
|
|
}
|