Ethanfly 12 hours ago
parent
commit
e104af333a
1 changed files with 20 additions and 6 deletions
  1. 20 6
      client/src/views/Analytics/Work/index.vue

+ 20 - 6
client/src/views/Analytics/Work/index.vue

@@ -797,18 +797,32 @@ function formatRate(rateLike: any): string {
 
 
 function calcDetailRangeDatesFixed14Days(): { start: string; end: string } {
 function calcDetailRangeDatesFixed14Days(): { start: string; end: string } {
   const publish = dayjs(selectedWork.value?.publishTime);
   const publish = dayjs(selectedWork.value?.publishTime);
+  const platform = selectedWork.value?.platform;
 
 
-  // 小红书:趋势固定「发布后 14 天(含发布日)」,与页面时间范围无关
-  if (selectedWork.value?.platform === 'xiaohongshu' && publish.isValid()) {
+  // 小红书:趋势固定「发布后 14 天(含发布日)」,与页面时间范围无关
+  if (platform === 'xiaohongshu' && publish.isValid()) {
     const start = publish.startOf('day');
     const start = publish.startOf('day');
     const end = start.add(13, 'day'); // 发布日 + 13 天 = 共 14 天
     const end = start.add(13, 'day'); // 发布日 + 13 天 = 共 14 天
     return { start: start.format('YYYY-MM-DD'), end: end.format('YYYY-MM-DD') };
     return { start: start.format('YYYY-MM-DD'), end: end.format('YYYY-MM-DD') };
   }
   }
 
 
-  // 其他平台:保持原逻辑(以页面筛选 endDate 为截止的近 14 天,并且不早于发布时间)
-  const end = dayjs(endDate.value || dayjs().format('YYYY-MM-DD'));
-  const start = end.subtract(13, 'day'); // 近14天(含当天)
-  const clampedStart = publish.isValid() && publish.isAfter(start) ? publish : start;
+  const today = dayjs().startOf('day');
+
+  // 抖音:作品详情趋势固定为「今天往回 30 天(含今天)」,与列表筛选无关;且不早于发布时间
+  if (platform === 'douyin') {
+    let end = today;
+    let start = end.subtract(29, 'day'); // 近30天(含当天)
+    if (publish.isValid() && publish.isAfter(start)) {
+      start = publish.startOf('day');
+    }
+    return { start: start.format('YYYY-MM-DD'), end: end.format('YYYY-MM-DD') };
+  }
+
+  const end = dayjs(endDate.value || today);
+
+  // 其他平台:保持原逻辑(以页面 endDate 为截止的近 14 天),且不早于发布时间
+  const start14 = end.subtract(13, 'day'); // 近14天(含当天)
+  const clampedStart = publish.isValid() && publish.isAfter(start14) ? publish.startOf('day') : start14;
   return { start: clampedStart.format('YYYY-MM-DD'), end: end.format('YYYY-MM-DD') };
   return { start: clampedStart.format('YYYY-MM-DD'), end: end.format('YYYY-MM-DD') };
 }
 }