feat(工作报告定时生成): 工作报告现在可以定时生成,并且可以刷新当前报告。

This commit is contained in:
dk
2026-06-13 22:13:44 +08:00
parent 80f028bcb9
commit 030dc737fc
10 changed files with 294 additions and 152 deletions

View File

@@ -1105,6 +1105,14 @@ function syncRichSupport(item: PlanItem, event: Event) {
<div class="section">
<div class="section-title">
<span>基础信息</span>
<div v-if="mode === 'edit' && !isReadonly" class="section-title-right">
<ElButton size="small" plain type="primary" @click="emit('pullDefaultDraft')">
<template #icon>
<icon-mdi-refresh class="text-icon" />
</template>
刷新
</ElButton>
</div>
</div>
<div class="compose-grid">
<div class="field">
@@ -1206,7 +1214,7 @@ function syncRichSupport(item: PlanItem, event: Event) {
class="rich-editor"
:contenteditable="!isReadonly"
spellcheck="false"
:data-placeholder="isReadonly ? undefined : '璇疯緭鍏ュ伐浣滃唴瀹瑰強鎴愭灉鎻忚堪'"
:data-placeholder="isReadonly ? undefined : '请输入具体工作内容及成果描述'"
@focus="focusEditField(`content-${index}`)"
@blur="
syncRichContent(item, $event);
@@ -1305,7 +1313,7 @@ function syncRichSupport(item: PlanItem, event: Event) {
class="rich-editor"
:contenteditable="!isReadonly"
spellcheck="false"
:data-placeholder="isReadonly ? undefined : '璇疯緭鍏ュ叿浣撶洰鏍?'"
:data-placeholder="isReadonly ? undefined : '请输入具体目标'"
@focus="focusEditField(`target-${index}`)"
@blur="
syncRichTarget(item, $event);
@@ -2099,81 +2107,6 @@ function syncRichSupport(item: PlanItem, event: Event) {
cursor: pointer;
}
.structured-preview--readonly {
display: grid;
gap: 8px;
cursor: default;
}
.structured-preview__section {
display: grid;
gap: 6px;
}
.structured-preview__section + .structured-preview__section {
padding-top: 8px;
border-top: 1px dashed #cbd5e1;
}
.structured-preview__category {
position: relative;
padding-left: 14px;
color: #0f766e;
font-size: 13px;
font-weight: 800;
line-height: 1.6;
}
.structured-preview__category::before {
content: '';
position: absolute;
left: 0;
top: 4px;
width: 4px;
height: 16px;
border-radius: 999px;
background: #0f766e;
}
.structured-preview__tasks {
display: grid;
gap: 6px;
}
.structured-preview__task-line {
display: inline-flex;
align-items: center;
gap: 6px;
flex-wrap: wrap;
color: #334155;
line-height: 1.6;
cursor: pointer;
}
.structured-preview__task-title {
color: #334155;
overflow-wrap: anywhere;
word-break: break-word;
}
.structured-preview__task-metric {
display: inline-flex;
align-items: center;
height: 20px;
padding: 0 6px;
border-radius: 999px;
background: #f3f7f9;
color: #475467;
font-size: 11px;
font-weight: 800;
white-space: nowrap;
}
.structured-preview__task-metric:first-of-type {
background: #fff7ed;
color: #c2410c;
}
.structured-preview__popover {
max-width: 100%;
color: #334155;