fix(工作报告- 周报): 修复工作日志依然溢出到任务层级的问题。
This commit is contained in:
@@ -609,14 +609,22 @@ function createStructuredSectionsFromTextV2(
|
|||||||
|
|
||||||
let currentCategory = '';
|
let currentCategory = '';
|
||||||
let previousTask: StructuredTask | null = null;
|
let previousTask: StructuredTask | null = null;
|
||||||
|
const legacyTaskLineRe =
|
||||||
|
/^(?!(?:(?:\d+[..、])|(?:\d+\s+)|(?:[一二三四五六七八九十百千万]+[、..]))\s*)(.+?)\s*[--]\s*(.+)$/u;
|
||||||
|
|
||||||
|
const isExplicitStructuredTaskLine = (line: string) => {
|
||||||
|
if (!STRUCTURED_TASK_PREFIX_RE.test(line)) return false;
|
||||||
|
const normalizedLine = stripStructuredTaskPrefix(line);
|
||||||
|
const { rawTitle, metricsText } = extractStructuredTaskParts(normalizedLine);
|
||||||
|
return Boolean(stripStructuredTaskSuffix(rawTitle) && isStructuredMetricsText(metricsText));
|
||||||
|
};
|
||||||
|
|
||||||
const shouldAppendToPreviousTaskDetail = (line: string) => {
|
const shouldAppendToPreviousTaskDetail = (line: string) => {
|
||||||
if (!previousTask?.detail) return false;
|
if (!previousTask?.detail) return false;
|
||||||
if (line.startsWith('#')) return false;
|
if (line.startsWith('#')) return false;
|
||||||
if (line.includes('(') || line.includes('(') || line.includes(':') || line.includes(':')) return false;
|
if (legacyTaskLineRe.test(line)) return false;
|
||||||
return !/^(?!(?:(?:\d+[..、])|(?:\d+\s+)|(?:[一二三四五六七八九十百千万]+[、..]))\s*)(.+?)\s*[--]\s*(.+)$/u.test(
|
if (isExplicitStructuredTaskLine(line)) return false;
|
||||||
line
|
return true;
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
lines.forEach(line => {
|
lines.forEach(line => {
|
||||||
@@ -632,9 +640,7 @@ function createStructuredSectionsFromTextV2(
|
|||||||
|
|
||||||
// 仅当行首不是结构化任务前缀(如 "3、")时,才按旧式 "<分类> - <事项>" 解析;
|
// 仅当行首不是结构化任务前缀(如 "3、")时,才按旧式 "<分类> - <事项>" 解析;
|
||||||
// 否则会把 "2026-06-12 - 2026-06-19" 这种含 " - " 的出差行误判为分类。
|
// 否则会把 "2026-06-12 - 2026-06-19" 这种含 " - " 的出差行误判为分类。
|
||||||
const legacyMatch = trimmedLine.match(
|
const legacyMatch = trimmedLine.match(legacyTaskLineRe);
|
||||||
/^(?!(?:(?:\d+[..、])|(?:\d+\s+)|(?:[一二三四五六七八九十百千万]+[、..]))\s*)(.+?)\s*[--]\s*(.+)$/u
|
|
||||||
);
|
|
||||||
if (legacyMatch) {
|
if (legacyMatch) {
|
||||||
const [, rawCategory, rawTaskText] = legacyMatch;
|
const [, rawCategory, rawTaskText] = legacyMatch;
|
||||||
const category = rawCategory.trim();
|
const category = rawCategory.trim();
|
||||||
|
|||||||
Reference in New Issue
Block a user