aegon-dangerious 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 (32) hide show
  1. package/build-report/components/AiPromptGenerateDialog.vue +349 -0
  2. package/build-report/components/CapsuleScrollbar.vue +145 -0
  3. package/build-report/components/ChapterTitleScroll.vue +292 -0
  4. package/build-report/components/PromptField.vue +314 -0
  5. package/build-report/components/RecentReportsTable.vue +408 -0
  6. package/build-report/components/ReportChapterPreview.vue +437 -0
  7. package/build-report/components/ReportChapterWorkspace.vue +923 -0
  8. package/build-report/components/ReportCollapsibleSection.vue +132 -0
  9. package/build-report/components/ReportConfigPanel.vue +609 -0
  10. package/build-report/components/ReportGenerateSettingsPanel.vue +403 -0
  11. package/build-report/components/ReportGeneratingPanel.vue +908 -0
  12. package/build-report/components/ReportHistoryList.vue +157 -0
  13. package/build-report/components/ReportHistoryPanel.vue +140 -0
  14. package/build-report/components/ReportPromptPanel.vue +445 -0
  15. package/build-report/components/ReportSectionConfirmPopover.vue +232 -0
  16. package/build-report/components/ReportSourceFileSummary.vue +544 -0
  17. package/build-report/components/ReportSourcesMoreOverlay.vue +279 -0
  18. package/build-report/components/ReportSourcesPanel.vue +1055 -0
  19. package/build-report/components/ReportTemplateDetail.vue +176 -0
  20. package/build-report/components/ReportTemplateEditorFormPanel.vue +602 -0
  21. package/build-report/components/ReportTemplatePicker.vue +802 -0
  22. package/build-report/components/ReportTemplatePromptField.vue +314 -0
  23. package/build-report/components/ReportWorkflowSidebar.vue +104 -0
  24. package/build-report/components/reportEdit.vue +334 -0
  25. package/build-report/index.vue +646 -0
  26. package/build-report/report-list.vue +407 -0
  27. package/build-report/report-template-data.ts +248 -0
  28. package/build-report/styles/report-workflow-dialog.css +33 -0
  29. package/build-report/useReportWorkflow.ts +343 -0
  30. package/build-report/utils/report-edit-route.ts +109 -0
  31. package/build-report/utils/scroll.ts +361 -0
  32. package/package.json +12 -0
@@ -0,0 +1,408 @@
1
+ <template>
2
+ <div class="recent-reports-table">
3
+ <el-table ref="tableRef" :data="reports" :fit="true" table-layout="fixed">
4
+ <el-table-column prop="name" label="報告名稱" min-width="240" align="left" header-align="left"
5
+ class-name="industry-col-name">
6
+ <template #default="{ row }">
7
+ <a v-if="row.canOpen" href="#"
8
+ class="industry-report-name industry-report-name__pill industry-report-name--link"
9
+ @click.prevent="$emit('open', row)">{{ row.name }}</a>
10
+ <span v-else class="industry-report-name industry-report-name__pill">{{ row.name }}</span>
11
+ </template>
12
+ </el-table-column>
13
+ <el-table-column prop="industry" label="行業" min-width="88" align="left" header-align="left" />
14
+ <el-table-column prop="year" label="年份" min-width="80" align="left" header-align="left" />
15
+ <el-table-column prop="status" label="狀態" min-width="96" align="left" header-align="left" />
16
+ <el-table-column prop="initiator" label="發起人" min-width="220" class-name="industry-col-initiator" align="left"
17
+ header-align="left" />
18
+ <el-table-column prop="editor" label="編輯" min-width="360" class-name="industry-col-editor" align="left"
19
+ header-align="left" />
20
+ <el-table-column prop="permission" label="我的權限" min-width="112" align="left" header-align="left" />
21
+ <el-table-column prop="updatedAt" label="最近更新" min-width="112" align="left" header-align="left" />
22
+ </el-table>
23
+ </div>
24
+ </template>
25
+
26
+ <script lang="ts">
27
+ export interface RecentReport {
28
+ id: string
29
+ name: string
30
+ industry: string
31
+ year: string
32
+ status: string
33
+ initiator: string
34
+ editor: string
35
+ permission: string
36
+ updatedAt: string
37
+ canOpen: boolean
38
+ }
39
+
40
+ export const MOCK_RECENT_REPORTS: RecentReport[] = [
41
+ {
42
+ id: '1',
43
+ name: '深圳房地產風控年報 - 2024',
44
+ industry: '房地產',
45
+ year: '2025',
46
+ status: '草稿',
47
+ initiator: '陳大文 (單位 xxxx)',
48
+ editor: '陳1文 (單位 xxxx) , 陳2文 (單位 xxxx) , 陳3文 (單位 xxxx) ...',
49
+ permission: '可編輯',
50
+ updatedAt: '3天前',
51
+ canOpen: true,
52
+ },
53
+ {
54
+ id: '2',
55
+ name: '深圳房地產風控年報 - 2024',
56
+ industry: '房地產',
57
+ year: '2024',
58
+ status: '已產生',
59
+ initiator: '陳中文 (單位 yyyy)',
60
+ editor: '陳4文 (單位 yyyy) , 陳5文 (單位 yyyy) ...',
61
+ permission: '無權限',
62
+ updatedAt: '3天前',
63
+ canOpen: false,
64
+ },
65
+ {
66
+ id: '3',
67
+ name: '深圳房地產風控年報 - 2024',
68
+ industry: '房地產',
69
+ year: '2023',
70
+ status: '已導出',
71
+ initiator: '陳小文 (單位 zzzz)',
72
+ editor: '陳6文 (單位 zzzz)',
73
+ permission: '可編輯',
74
+ updatedAt: '3天前',
75
+ canOpen: true,
76
+ },
77
+ {
78
+ id: '4',
79
+ name: '深圳房地產風控年報 - 2024',
80
+ industry: '房地產',
81
+ year: '2023',
82
+ status: '已導出',
83
+ initiator: '陳小文 (單位 zzzz)',
84
+ editor: '陳6文 (單位 zzzz)',
85
+ permission: '可編輯',
86
+ updatedAt: '3天前',
87
+ canOpen: true,
88
+ },
89
+ {
90
+ id: '5',
91
+ name: '深圳房地產風控年報 - 2024',
92
+ industry: '房地產',
93
+ year: '2023',
94
+ status: '已導出',
95
+ initiator: '陳小文 (單位 zzzz)',
96
+ editor: '陳6文 (單位 zzzz)',
97
+ permission: '可編輯',
98
+ updatedAt: '3天前',
99
+ canOpen: true,
100
+ },
101
+ {
102
+ id: '6',
103
+ name: '深圳房地產風控年報 - 2024',
104
+ industry: '房地產',
105
+ year: '2023',
106
+ status: '已導出',
107
+ initiator: '陳小文 (單位 zzzz)',
108
+ editor: '陳6文 (單位 zzzz)',
109
+ permission: '可編輯',
110
+ updatedAt: '3天前',
111
+ canOpen: true,
112
+ },
113
+ {
114
+ id: '7',
115
+ name: '深圳房地產風控年報 - 2024',
116
+ industry: '房地產',
117
+ year: '2023',
118
+ status: '已導出',
119
+ initiator: '陳小文 (單位 zzzz)',
120
+ editor: '陳6文 (單位 zzzz)',
121
+ permission: '可編輯',
122
+ updatedAt: '3天前',
123
+ canOpen: true,
124
+ },
125
+ {
126
+ id: '8',
127
+ name: '深圳房地產風控年報 - 2024',
128
+ industry: '房地產',
129
+ year: '2023',
130
+ status: '已導出',
131
+ initiator: '陳小文 (單位 zzzz)',
132
+ editor: '陳6文 (單位 zzzz)',
133
+ permission: '可編輯',
134
+ updatedAt: '3天前',
135
+ canOpen: true,
136
+ },
137
+ {
138
+ id: '9',
139
+ name: '深圳房地產風控年報 - 2024',
140
+ industry: '房地產',
141
+ year: '2023',
142
+ status: '已導出',
143
+ initiator: '陳小文 (單位 zzzz)',
144
+ editor: '陳6文 (單位 zzzz)',
145
+ permission: '可編輯',
146
+ updatedAt: '3天前',
147
+ canOpen: true,
148
+ },
149
+ {
150
+ id: '10',
151
+ name: '深圳房地產風控年報 - 2024',
152
+ industry: '房地產',
153
+ year: '2023',
154
+ status: '已導出',
155
+ initiator: '陳小文 (單位 zzzz)',
156
+ editor: '陳6文 (單位 zzzz)',
157
+ permission: '可編輯',
158
+ updatedAt: '3天前',
159
+ canOpen: true,
160
+ },
161
+ {
162
+ id: '11',
163
+ name: '上海商業地產風控季報 - 2024',
164
+ industry: '商業地產',
165
+ year: '2024',
166
+ status: '草稿',
167
+ initiator: '王小明 (單位 aaaa)',
168
+ editor: '王2文 (單位 aaaa)',
169
+ permission: '可編輯',
170
+ updatedAt: '5天前',
171
+ canOpen: true,
172
+ },
173
+ {
174
+ id: '12',
175
+ name: '廣州基建項目風控月報 - 2024',
176
+ industry: '基建',
177
+ year: '2024',
178
+ status: '已產生',
179
+ initiator: '李雷 (單位 bbbb)',
180
+ editor: '李3文 (單位 bbbb)',
181
+ permission: '可編輯',
182
+ updatedAt: '1周前',
183
+ canOpen: true,
184
+ },
185
+ {
186
+ id: '13',
187
+ name: '北京科技園區風控年報 - 2023',
188
+ industry: '科技園區',
189
+ year: '2023',
190
+ status: '已導出',
191
+ initiator: '韓梅梅 (單位 cccc)',
192
+ editor: '韓4文 (單位 cccc)',
193
+ permission: '無權限',
194
+ updatedAt: '2周前',
195
+ canOpen: false,
196
+ },
197
+ ]
198
+ </script>
199
+
200
+ <script setup lang="ts">
201
+ import type { TableInstance } from 'element-plus'
202
+ import { ref } from 'vue'
203
+
204
+ defineProps<{
205
+ reports: RecentReport[]
206
+ }>()
207
+
208
+ defineEmits<{
209
+ open: [report: RecentReport]
210
+ }>()
211
+
212
+ const tableRef = ref<TableInstance>()
213
+
214
+ function doLayout() {
215
+ tableRef.value?.doLayout()
216
+ }
217
+
218
+ defineExpose({ doLayout })
219
+ </script>
220
+
221
+ <style scoped>
222
+ .recent-reports-table {
223
+ --rr-table-row-h: clamp(48px, calc(55.2 * 100vw / 1920), 55.2px);
224
+ --rr-table-header-bg: rgb(249, 250, 251);
225
+ --rr-table-header-fs: 14px;
226
+ --rr-table-header-color: #303133;
227
+ --rr-table-row-fs: 14px;
228
+ --rr-table-row-color: #606266;
229
+ width: 100%;
230
+ margin: 0;
231
+ padding: 0;
232
+ --el-table-border: none;
233
+ --el-table-border-color: transparent;
234
+ }
235
+
236
+ .recent-reports-table :deep(.el-table) {
237
+ --el-table-header-text-color: #303133;
238
+ --el-table-row-hover-bg-color: #f5f7fa;
239
+ width: 100% !important;
240
+ }
241
+
242
+ .recent-reports-table :deep(.el-table__inner-wrapper),
243
+ .recent-reports-table :deep(.el-table__header-wrapper),
244
+ .recent-reports-table :deep(.el-table__body-wrapper) {
245
+ margin-left: 0;
246
+ padding-left: 0;
247
+ }
248
+
249
+ .recent-reports-table :deep(.el-table__header table),
250
+ .recent-reports-table :deep(.el-table__body table) {
251
+ width: 100% !important;
252
+ table-layout: fixed;
253
+ }
254
+
255
+ .recent-reports-table :deep(.el-table__header .cell),
256
+ .recent-reports-table :deep(.el-table__body .cell) {
257
+ padding: 0;
258
+ text-align: left;
259
+ }
260
+
261
+ .recent-reports-table :deep(.el-table__body-wrapper .cell) {
262
+ padding: 0;
263
+ }
264
+
265
+ .recent-reports-table :deep(.el-table__header th.el-table__cell),
266
+ .recent-reports-table :deep(.el-table__header th.el-table__cell .cell) {
267
+ font-size: var(--rr-table-header-fs);
268
+ color: var(--rr-table-header-color);
269
+ }
270
+
271
+ .recent-reports-table :deep(.el-table__header th.el-table__cell .cell) {
272
+ white-space: nowrap;
273
+ overflow: visible;
274
+ text-overflow: clip;
275
+ }
276
+
277
+ .recent-reports-table :deep(.el-table__header th.el-table__cell:first-child .cell) {
278
+ padding-left: 10px;
279
+ }
280
+
281
+ .recent-reports-table :deep(.industry-col-name .cell) {
282
+ overflow: hidden;
283
+ white-space: nowrap;
284
+ }
285
+
286
+ .recent-reports-table :deep(.industry-col-initiator .cell),
287
+ .recent-reports-table :deep(.industry-col-editor .cell) {
288
+ white-space: normal;
289
+ word-break: break-word;
290
+ line-height: 1.6;
291
+ }
292
+
293
+ .recent-reports-table :deep(.el-table__inner-wrapper::before),
294
+ .recent-reports-table :deep(.el-table__inner-wrapper::after) {
295
+ display: none;
296
+ }
297
+
298
+ .recent-reports-table :deep(.el-table__body-wrapper .el-table__body) {
299
+ border-collapse: separate;
300
+ border-spacing: 0;
301
+ }
302
+
303
+ .recent-reports-table :deep(.el-table__body tr.el-table__row),
304
+ .recent-reports-table :deep(.el-table__body td.el-table__cell),
305
+ .recent-reports-table :deep(.el-table__body td.el-table__cell .cell) {
306
+ font-size: var(--rr-table-row-fs);
307
+ color: var(--rr-table-row-color);
308
+ }
309
+
310
+ .recent-reports-table :deep(.industry-report-name:not(.industry-report-name--link)) {
311
+ color: var(--rr-table-row-color);
312
+ }
313
+
314
+ .recent-reports-table :deep(.el-table__body tr.el-table__row) {
315
+ height: var(--rr-table-row-h);
316
+ background: #fff;
317
+ cursor: pointer;
318
+ }
319
+
320
+ .recent-reports-table :deep(.el-table__body tr) {
321
+ background: #fff;
322
+ }
323
+
324
+ .recent-reports-table :deep(.el-table__body tr.el-table__row:hover > td.el-table__cell) {
325
+ background-color: #f5f7fa !important;
326
+ box-shadow: none !important;
327
+ }
328
+
329
+ .recent-reports-table :deep(.el-table__body tr.el-table__row:hover > td.el-table__cell:first-child) {
330
+ border-radius: 4px 0 0 4px;
331
+ }
332
+
333
+ .recent-reports-table :deep(.el-table__body tr.el-table__row:hover > td.el-table__cell:last-child) {
334
+ border-radius: 0 4px 4px 0;
335
+ }
336
+
337
+ .recent-reports-table :deep(.el-table__header-wrapper) {
338
+ border-radius: 4px;
339
+ overflow: hidden;
340
+ }
341
+
342
+ .recent-reports-table :deep(.el-table__header th.el-table__cell) {
343
+ font-weight: 600;
344
+ border-bottom: none;
345
+ background: var(--rr-table-header-bg);
346
+ height: var(--rr-table-row-h);
347
+ padding: 0 16px;
348
+ vertical-align: middle;
349
+ box-sizing: border-box;
350
+ }
351
+
352
+ .recent-reports-table :deep(.el-table__header th.el-table__cell:first-child) {
353
+ border-radius: 4px 0 0 4px;
354
+ }
355
+
356
+ .recent-reports-table :deep(.el-table__header th.el-table__cell:last-child) {
357
+ border-radius: 0 4px 4px 0;
358
+ }
359
+
360
+ .recent-reports-table :deep(.el-table__body td.el-table__cell) {
361
+ height: var(--rr-table-row-h);
362
+ border-bottom: 1px solid #f0f2f5;
363
+ padding: 0 16px;
364
+ vertical-align: middle;
365
+ box-sizing: border-box;
366
+ }
367
+
368
+ .recent-reports-table :deep(.el-table__body td.el-table__cell .cell) {
369
+ display: flex;
370
+ align-items: center;
371
+ min-height: var(--rr-table-row-h);
372
+ height: 100%;
373
+ box-sizing: border-box;
374
+ }
375
+
376
+ .recent-reports-table :deep(.el-table__body td.el-table__cell:not(:first-child) .cell) {
377
+ white-space: nowrap;
378
+ }
379
+
380
+ .industry-report-name__pill {
381
+ display: block;
382
+ width: 100%;
383
+ max-width: 100%;
384
+ padding: 6px 10px;
385
+ border-radius: 4px;
386
+ background: transparent;
387
+ overflow: hidden;
388
+ text-overflow: ellipsis;
389
+ white-space: nowrap;
390
+ box-sizing: border-box;
391
+ line-height: 1.4;
392
+ }
393
+
394
+ .industry-report-name {
395
+ color: inherit;
396
+ }
397
+
398
+ .industry-report-name--link {
399
+ color: #409eff;
400
+ text-decoration: none;
401
+ cursor: pointer;
402
+ }
403
+
404
+ .industry-report-name--link:hover {
405
+ color: #66b1ff;
406
+ text-decoration: none;
407
+ }
408
+ </style>