aegon-lv97 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/gen-ai/build-report/chartStreamRefs.ts +227 -0
  2. package/gen-ai/build-report/coherence-check/index.vue +559 -0
  3. package/gen-ai/build-report/components/ReportChapterWorkspace.vue +4571 -0
  4. package/gen-ai/build-report/components/ReportConfigPanel.vue +727 -0
  5. package/gen-ai/build-report/components/ReportGenerateSettingsPanel.vue +2361 -0
  6. package/gen-ai/build-report/components/ReportGeneratingPanel.vue +1765 -0
  7. package/gen-ai/build-report/components/ReportPromptPanel.vue +625 -0
  8. package/gen-ai/build-report/components/ReportSourceFileSummary.vue +665 -0
  9. package/gen-ai/build-report/components/ReportSourcesPanel.vue +1327 -0
  10. package/gen-ai/build-report/components/ReportTemplateDetail.vue +191 -0
  11. package/gen-ai/build-report/components/ReportTemplateEditorFormPanel.vue +667 -0
  12. package/gen-ai/build-report/components/ReportTemplatePicker.vue +302 -0
  13. package/gen-ai/build-report/components/ReportWorkflowSidebar.vue +148 -0
  14. package/gen-ai/build-report/components/paramsSetting.vue +886 -0
  15. package/gen-ai/build-report/components/reportEdit.vue +2283 -0
  16. package/gen-ai/build-report/index.vue +856 -0
  17. package/gen-ai/build-report/report-domain.ts +1133 -0
  18. package/gen-ai/build-report/report-template-data.ts +295 -0
  19. package/gen-ai/build-report/useReportWorkflow.ts +1386 -0
  20. package/gen-ai/common/assets/NotoSans-SC.woff2 +0 -0
  21. package/gen-ai/common/assets/NotoSans-TC.woff2 +0 -0
  22. package/gen-ai/common/assets/NotoSans.woff2 +0 -0
  23. package/gen-ai/common/assets/fonts.css +278 -0
  24. package/gen-ai/common/assets/pagination.css +163 -0
  25. package/gen-ai/common/directives/btnLoading.ts +455 -0
  26. package/gen-ai/common/directives/debounce.ts +98 -0
  27. package/gen-ai/common/directives/index.ts +30 -0
  28. package/gen-ai/common/en.md +417 -0
  29. package/gen-ai/common/index.ts +36 -0
  30. package/gen-ai/common/types/component-expose.ts +9 -0
  31. package/gen-ai/common/utils/api-res-status.ts +7 -0
  32. package/gen-ai/common/utils/navigation.ts +59 -0
  33. package/gen-ai/common/utils/remote-request.ts +45 -0
  34. package/gen-ai/common/utils/scroll.ts +577 -0
  35. package/gen-ai/components/AIExport/docx-export.ts +950 -0
  36. package/gen-ai/components/AIExport/docxExport.ts +2566 -0
  37. package/gen-ai/components/AIExport/index.ts +52 -0
  38. package/gen-ai/components/AIExport/parseMarkdownHtml.ts +653 -0
  39. package/gen-ai/components/CapsuleScrollbar.vue +149 -0
  40. package/gen-ai/components/ChapterTitleScroll.vue +468 -0
  41. package/gen-ai/components/EntryHeroNavCards.vue +379 -0
  42. package/gen-ai/components/GenAiPagination.vue +52 -0
  43. package/gen-ai/components/ModelCard.vue +1114 -0
  44. package/gen-ai/components/Preview/FilePreviewPage.vue +949 -0
  45. package/gen-ai/components/Preview/PreviewCapsuleScroll.vue +205 -0
  46. package/gen-ai/components/Preview/PreviewOutlineTree.vue +148 -0
  47. package/gen-ai/components/Preview/index.ts +11 -0
  48. package/gen-ai/components/Preview/preview.ts +724 -0
  49. package/gen-ai/components/PromptField.vue +505 -0
  50. package/gen-ai/components/RecentReportsTable.vue +974 -0
  51. package/gen-ai/components/ReportCollapsibleSection.vue +172 -0
  52. package/gen-ai/components/ReportHistoryList.vue +637 -0
  53. package/gen-ai/components/ReportSectionConfirmPopover.vue +251 -0
  54. package/gen-ai/components/editor/ChapterTiptapEditor.vue +3718 -0
  55. package/gen-ai/components/editor/StructureBlockView.vue +441 -0
  56. package/gen-ai/components/editor/TiptapToolbar.vue +1036 -0
  57. package/gen-ai/components/editor/TypewriterDocEditor.vue +422 -0
  58. package/gen-ai/components/editor/_StructureOrgNode.vue +326 -0
  59. package/gen-ai/components/editor/index.ts +28 -0
  60. package/gen-ai/components/editor/parseMarkdownHtml.ts +754 -0
  61. package/gen-ai/components/editor/reviewCitationTip.ts +163 -0
  62. package/gen-ai/gen-entry/api/index.ts +32 -0
  63. package/gen-ai/gen-entry/index.vue +287 -0
  64. package/gen-ai/gen-entry/types/index.ts +4 -0
  65. package/gen-ai/i.mark +2 -0
  66. package/gen-ai/management-center/index.vue +1815 -0
  67. package/gen-ai/management-center/mockData.ts +248 -0
  68. package/gen-ai/management-center/types/index.ts +37 -0
  69. package/gen-ai/model-manager/TemplateEditorFormPanel.vue +661 -0
  70. package/gen-ai/model-manager/api/index.ts +32 -0
  71. package/gen-ai/model-manager/api/mockApi.ts +33 -0
  72. package/gen-ai/model-manager/index.vue +1583 -0
  73. package/gen-ai/model-manager/mockData.ts +177 -0
  74. package/gen-ai/model-manager/template-detail-shared.ts +154 -0
  75. package/gen-ai/model-manager/template-editor.vue +345 -0
  76. package/gen-ai/model-manager/types/index.ts +40 -0
  77. package/gen-ai/model-manager/utils.ts +25 -0
  78. package/package.json +12 -0
@@ -0,0 +1,191 @@
1
+ <template>
2
+ <section class="report-template-detail">
3
+ <section class="report-template-detail__hero">
4
+ <button
5
+ type="button"
6
+ class="app-btn app-btn--outline report-template-detail__back"
7
+ @click="$emit('back')"
8
+ >
9
+ 返回
10
+ </button>
11
+ <h2 class="report-template-detail__hero-title">模板配置</h2>
12
+ <p class="report-template-detail__hero-desc gen-ai-page-hero-desc">
13
+ 配置報告生成的基礎參數,確定分析視角
14
+ </p>
15
+ </section>
16
+
17
+ <div class="report-template-detail__body">
18
+ <ReportTemplateEditorFormPanel v-model="form" editor-mode="edit">
19
+ <template #footer-actions>
20
+ <button type="button" class="app-btn app-btn--wide" @click="handleGenerate">
21
+ 一鍵生成
22
+ </button>
23
+ </template>
24
+ </ReportTemplateEditorFormPanel>
25
+ </div>
26
+ </section>
27
+ </template>
28
+
29
+ <script setup lang="ts">
30
+ import { computed, ref, watch } from 'vue'
31
+ import type { ReportTemplateCard } from '../report-template-data'
32
+ import {
33
+ buildEditorFormFromTemplate,
34
+ findTemplateById,
35
+ type TemplateEditorForm,
36
+ type TemplateItem,
37
+ } from '../report-template-data'
38
+ import { useReportWorkflow } from '../useReportWorkflow'
39
+ import ReportTemplateEditorFormPanel from './ReportTemplateEditorFormPanel.vue'
40
+
41
+ const props = defineProps<{
42
+ template: ReportTemplateCard
43
+ }>()
44
+
45
+ const emit = defineEmits<{
46
+ back: []
47
+ generate: []
48
+ }>()
49
+
50
+ const { sourceFiles } = useReportWorkflow()
51
+ const canGenerate = computed(() => sourceFiles.value.length > 0)
52
+
53
+ function handleGenerate() {
54
+ if (!canGenerate.value) return
55
+ emit('generate')
56
+ }
57
+
58
+ const form = ref<TemplateEditorForm>({
59
+ language: 'zh',
60
+ title: '',
61
+ description: '',
62
+ chapters: [],
63
+ })
64
+
65
+ function toTemplateItem(card: ReportTemplateCard): TemplateItem {
66
+ return (
67
+ findTemplateById(card.id) ?? {
68
+ id: card.id,
69
+ name: card.name,
70
+ description: card.description,
71
+ chapters: [...card.chapters],
72
+ author: card.author,
73
+ approver: '',
74
+ updatedAt: card.updatedAt,
75
+ unit: '',
76
+ locked: false,
77
+ locker: '',
78
+ }
79
+ )
80
+ }
81
+
82
+ function syncFormFromTemplate(card: ReportTemplateCard) {
83
+ form.value = buildEditorFormFromTemplate(toTemplateItem(card))
84
+ }
85
+
86
+ watch(
87
+ () => props.template,
88
+ (card) => syncFormFromTemplate(card),
89
+ { immediate: true, deep: true }
90
+ )
91
+ </script>
92
+
93
+ <style scoped>
94
+ .report-template-detail {
95
+ --gen-ai-fs-hero: clamp(26px, calc(32 * 100vw / 1920), 32px);
96
+ --gen-ai-fw-bold: 700;
97
+ display: flex;
98
+ flex-direction: column;
99
+ gap: 0;
100
+ min-height: 100%;
101
+ box-sizing: border-box;
102
+ }
103
+
104
+ .report-template-detail__hero {
105
+ position: relative;
106
+ text-align: center;
107
+ margin-bottom: 28px;
108
+ }
109
+
110
+ .report-template-detail__hero-title {
111
+ margin: 0 0 12px;
112
+ font-size: var(--gen-ai-fs-hero);
113
+ font-weight: var(--gen-ai-fw-bold);
114
+ color: #1a1a1a;
115
+ }
116
+
117
+ .report-template-detail__hero-desc {
118
+ margin: 0;
119
+ }
120
+
121
+ .gen-ai-page-hero-desc {
122
+ font-size: 16px;
123
+ font-weight: 600;
124
+ line-height: 1.7;
125
+ color: #666;
126
+ }
127
+
128
+ .report-template-detail__body {
129
+ flex: 1;
130
+ min-height: 0;
131
+ }
132
+
133
+ .app-btn {
134
+ display: inline-flex;
135
+ align-items: center;
136
+ justify-content: center;
137
+ box-sizing: border-box;
138
+ width: 160px;
139
+ height: 39px;
140
+ min-width: 160px;
141
+ padding: 0;
142
+ border: 1px solid #c53355;
143
+ border-radius: 4px;
144
+ background: #c53355;
145
+ color: #fff;
146
+ font-size: 14px;
147
+ font-weight: 600;
148
+ line-height: 1;
149
+ cursor: pointer;
150
+ }
151
+
152
+ .app-btn:hover:not(:disabled) {
153
+ background: #fff;
154
+ color: #c53355;
155
+ }
156
+
157
+ .app-btn:disabled {
158
+ opacity: 0.45;
159
+ cursor: not-allowed;
160
+ }
161
+
162
+ .app-btn--wide {
163
+ width: 160px;
164
+ min-width: 160px;
165
+ }
166
+
167
+ .app-btn--outline {
168
+ background: #fff;
169
+ color: #c53355;
170
+ }
171
+
172
+ .app-btn--outline:hover:not(:disabled) {
173
+ background: #fdf0f2;
174
+ }
175
+
176
+ /* 原高度 39px、寬 100px;absolute 頂部對齊 hero(與左側報告配置頂對齊),不擠佔標題 */
177
+ .report-template-detail__hero .report-template-detail__back {
178
+ position: absolute;
179
+ left: 0;
180
+ top: 0;
181
+ z-index: 1;
182
+ width: 100px;
183
+ min-width: 100px;
184
+ height: 39px;
185
+ }
186
+
187
+ .app-btn--outline:hover {
188
+ background: #c53355;
189
+ color: #fff;
190
+ }
191
+ </style>