|
|
|
|
@ -373,24 +373,6 @@ const onResize = () => setTimeout(computeStripeTargets, 50);
|
|
|
|
|
window.addEventListener("resize", onResize);
|
|
|
|
|
onBeforeUnmount(() => window.removeEventListener("resize", onResize));
|
|
|
|
|
|
|
|
|
|
// TODO: 接口暂未返回趋势数据,这里根据时间区间生成 mock 数据用于柱状图样式调试
|
|
|
|
|
const buildMockTrendData = (startDate, endDate) => {
|
|
|
|
|
const start = startDate ? dayjs(startDate) : dayjs().startOf("month");
|
|
|
|
|
const end = endDate ? dayjs(endDate) : dayjs().endOf("month");
|
|
|
|
|
const days = [];
|
|
|
|
|
let cursor = start;
|
|
|
|
|
while (cursor.isBefore(end) || cursor.isSame(end, "day")) {
|
|
|
|
|
days.push(cursor.format("YYYY-MM-DD"));
|
|
|
|
|
cursor = cursor.add(1, "day");
|
|
|
|
|
}
|
|
|
|
|
if (!days.length) days.push(dayjs().format("YYYY-MM-DD"));
|
|
|
|
|
return days.map((date, i) => ({
|
|
|
|
|
date,
|
|
|
|
|
submitCount: 3 + ((i * 7) % 9),
|
|
|
|
|
completeCount: 2 + ((i * 5) % 7),
|
|
|
|
|
}));
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const loadStats = async () => {
|
|
|
|
|
// 自定义模式以 isCustom 为准(自定义需点查询才进这里,与 score.vue 一致)
|
|
|
|
|
const params = {};
|
|
|
|
|
@ -402,18 +384,11 @@ const loadStats = async () => {
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
const data = await getWorkbench(params);
|
|
|
|
|
// TODO: 接口返回后删除以下 mock 兜底逻辑,仅保留 data 赋值
|
|
|
|
|
if (data && Array.isArray(data.trendData) && data.trendData.length) {
|
|
|
|
|
stats.value = data;
|
|
|
|
|
const { startDate, endDate } = resolveDateRange();
|
|
|
|
|
stats.value = { ...stats.value, trendData: buildMockTrendData(startDate, endDate) };
|
|
|
|
|
} else {
|
|
|
|
|
const { startDate, endDate } = resolveDateRange();
|
|
|
|
|
stats.value = { ...stats.value, trendData: buildMockTrendData(startDate, endDate) };
|
|
|
|
|
}
|
|
|
|
|
} catch (_) {
|
|
|
|
|
const { startDate, endDate } = resolveDateRange();
|
|
|
|
|
stats.value = { ...stats.value, trendData: buildMockTrendData(startDate, endDate) };
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|