perf: 任务描述支持清单

This commit is contained in:
Pang
2024-04-21 21:36:22 +08:00
parent 5e6a21ddc5
commit bd61b8c948
9 changed files with 630 additions and 594 deletions

View File

@@ -352,6 +352,25 @@ class ProjectTask extends AbstractModel
return $query;
}
/**
* 生成描述
* @param $content
* @return string
*/
public static function generateDesc($content)
{
$content = preg_replace_callback('/<ul class="tox-checklist">(.+?)<\/ul>/is', function ($matches) {
return preg_replace_callback('/<li([^>]*)>(.+?)<\/li>/is', function ($m) {
if (str_contains($m[1], 'tox-checklist--checked')) {
return "<li{$m[1]}>[√]{$m[2]} </li>";
} else {
return "<li{$m[1]}>[ ]{$m[2]} </li>";
}
}, $matches[0]);
}, $content);
return Base::cutStr(strip_tags($content), 100, 0, "...");
}
/**
* 添加任务
* @param $data
@@ -407,7 +426,7 @@ class ProjectTask extends AbstractModel
'visibility' => $visibility ?: 1
]);
if ($content) {
$task->desc = Base::getHtml($content, 100);
$task->desc = self::generateDesc($content);
}
// 标题
if (empty($name)) {
@@ -901,7 +920,7 @@ class ProjectTask extends AbstractModel
'url' => ProjectTaskContent::saveContent($this->id, $data['content'])
],
])->save();
$this->desc = Base::getHtml($data['content'], 100);
$this->desc = self::generateDesc($data['content']);
$this->addLog("修改{任务}详细描述");
$updateMarking['is_update_content'] = true;
}