aegon-lv82 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.
- package/package.json +12 -0
- package/src/App.vue +44 -0
- package/src/api/index.ts +19 -0
- package/src/api/modules/build-report/reportEditor.ts +526 -0
- package/src/api/modules/build-report/reportPermission.ts +64 -0
- package/src/api/modules/index.ts +69 -0
- package/src/api/modules/industry/green_mortgage.ts +42 -0
- package/src/api/modules/user/index.ts +4 -0
- package/src/api/request.ts +124 -0
- package/src/assets/sample-access-icon.png +0 -0
- package/src/assets/sample-pie-chart.png +0 -0
- package/src/assets/vue.svg +1 -0
- package/src/components/CapsuleScrollbar.vue +7 -0
- package/src/components/Export/ExcelExport.vue +592 -0
- package/src/components/Export/ExcelExport2.vue +494 -0
- package/src/components/Export/ExcelExport3.vue +342 -0
- package/src/components/Export/ExcelExport4.vue +665 -0
- package/src/components/Export/excelExport.js +547 -0
- package/src/components/Export/excelExport.ts +551 -0
- package/src/components/GEN-AI/index.vue +140 -0
- package/src/components/GEN-AI/index1.vue +422 -0
- package/src/components/GEN-AI/index10.vue +5 -0
- package/src/components/GEN-AI/index2.vue +548 -0
- package/src/components/GEN-AI/index3.vue +605 -0
- package/src/components/GEN-AI/index4.vue +609 -0
- package/src/components/GEN-AI/index5.vue +558 -0
- package/src/components/GEN-AI/index6.vue +634 -0
- package/src/components/GEN-AI/index7.vue +688 -0
- package/src/components/GEN-AI/index8.vue +458 -0
- package/src/components/GEN-AI/index9.vue +1217 -0
- package/src/components/GEN-AI/types.ts +12 -0
- package/src/components/GEN-AI/utils.ts +42 -0
- package/src/components/HelloWorld.vue +41 -0
- package/src/components/PageCard.vue +124 -0
- package/src/components/PageHeader.vue +32 -0
- package/src/components/backup/index5 copy.vue +556 -0
- package/src/components/backup/index5.vue +620 -0
- package/src/components/backup/index9 copy.vue +1029 -0
- package/src/components/backup/index9-pro.vue +1065 -0
- package/src/components/backup/index9.vue +1057 -0
- package/src/directives/btnLoading.ts +455 -0
- package/src/directives/debounce copy.ts +670 -0
- package/src/directives/debounce.ts +98 -0
- package/src/directives/index.ts +25 -0
- package/src/layouts/MainLayout.vue +129 -0
- package/src/main.ts +76 -0
- package/src/router/index.ts +142 -0
- package/src/router/menus.ts +28 -0
- package/src/store/modules/gen-ai/index.ts +1 -0
- package/src/store/modules/gen-ai/reportBuild.ts +37 -0
- package/src/style.css +79 -0
- package/src/styles/report-config-popover.css +39 -0
- package/src/styles/report-icon-btn.css +19 -0
- package/src/test/mock.ts +101 -0
- package/src/test/test1.vue +402 -0
- package/src/test/test2.vue +1689 -0
- package/src/types/gen-ai/build-report/reportEditor.ts +684 -0
- package/src/utils/function.ts +46 -0
- package/src/utils/gen-ai-navigation.ts +1 -0
- package/src/utils/gen-ai-scroll.ts +1 -0
- package/src/utils/openDataLoaderWordExport.ts +33 -0
- package/src/utils/pageScrollbar.ts +115 -0
- package/src/utils/randomTranscode.ts +87 -0
- package/src/utils/reportPdfExport.ts +44 -0
- package/src/views/Blank.vue +68 -0
- package/src/views/Home.vue +29 -0
- package/src/views/TemplateCenter/Knowledge.ts +83 -0
- package/src/views/TemplateCenter/data.d.ts +10 -0
- package/src/views/TemplateCenter/index.vue +1128 -0
- package/src/views/TemplateCenter/service.ts +69 -0
- package/src/views/gen-ai/build-report/chartStreamRefs.ts +174 -0
- package/src/views/gen-ai/build-report/coherence-check/index.vue +559 -0
- package/src/views/gen-ai/build-report/components/ReportChapterWorkspace.vue +4258 -0
- package/src/views/gen-ai/build-report/components/ReportConfigPanel.vue +727 -0
- package/src/views/gen-ai/build-report/components/ReportGenerateSettingsPanel.vue +2361 -0
- package/src/views/gen-ai/build-report/components/ReportGeneratingPanel.vue +1765 -0
- package/src/views/gen-ai/build-report/components/ReportPromptPanel.vue +614 -0
- package/src/views/gen-ai/build-report/components/ReportSourceFileSummary.vue +656 -0
- package/src/views/gen-ai/build-report/components/ReportSourcesPanel.vue +1327 -0
- package/src/views/gen-ai/build-report/components/ReportTemplateDetail.vue +191 -0
- package/src/views/gen-ai/build-report/components/ReportTemplateEditorFormPanel.vue +667 -0
- package/src/views/gen-ai/build-report/components/ReportTemplatePicker.vue +302 -0
- package/src/views/gen-ai/build-report/components/ReportWorkflowSidebar.vue +148 -0
- package/src/views/gen-ai/build-report/components/paramsSetting.vue +886 -0
- package/src/views/gen-ai/build-report/components/reportEdit.vue +2283 -0
- package/src/views/gen-ai/build-report/index.vue +856 -0
- package/src/views/gen-ai/build-report/report-domain.ts +1133 -0
- package/src/views/gen-ai/build-report/report-template-data.ts +295 -0
- package/src/views/gen-ai/build-report/useReportWorkflow.ts +1408 -0
- package/src/views/gen-ai/common/assets/NotoSans-SC.woff2 +0 -0
- package/src/views/gen-ai/common/assets/NotoSans-TC.woff2 +0 -0
- package/src/views/gen-ai/common/assets/NotoSans.woff2 +0 -0
- package/src/views/gen-ai/common/assets/fonts.css +278 -0
- package/src/views/gen-ai/common/assets/pagination.css +163 -0
- package/src/views/gen-ai/common/directives/btnLoading.ts +455 -0
- package/src/views/gen-ai/common/directives/debounce.ts +98 -0
- package/src/views/gen-ai/common/directives/index.ts +30 -0
- package/src/views/gen-ai/common/en.md +417 -0
- package/src/views/gen-ai/common/index.ts +36 -0
- package/src/views/gen-ai/common/types/component-expose.ts +9 -0
- package/src/views/gen-ai/common/utils/api-res-status.ts +7 -0
- package/src/views/gen-ai/common/utils/navigation.ts +59 -0
- package/src/views/gen-ai/common/utils/remote-request.ts +45 -0
- package/src/views/gen-ai/common/utils/scroll.ts +577 -0
- package/src/views/gen-ai/components/AIExport/docx-export.ts +950 -0
- package/src/views/gen-ai/components/AIExport/docxExport.ts +2566 -0
- package/src/views/gen-ai/components/AIExport/index.ts +52 -0
- package/src/views/gen-ai/components/AIExport/parseMarkdownHtml.ts +649 -0
- package/src/views/gen-ai/components/CapsuleScrollbar.vue +149 -0
- package/src/views/gen-ai/components/ChapterTitleScroll.vue +468 -0
- package/src/views/gen-ai/components/EntryHeroNavCards.vue +379 -0
- package/src/views/gen-ai/components/GenAiPagination.vue +52 -0
- package/src/views/gen-ai/components/ModelCard.vue +1114 -0
- package/src/views/gen-ai/components/Preview/FilePreviewPage.vue +947 -0
- package/src/views/gen-ai/components/Preview/PreviewCapsuleScroll.vue +205 -0
- package/src/views/gen-ai/components/Preview/PreviewOutlineTree.vue +148 -0
- package/src/views/gen-ai/components/Preview/index.ts +11 -0
- package/src/views/gen-ai/components/Preview/preview.ts +722 -0
- package/src/views/gen-ai/components/PromptField.vue +505 -0
- package/src/views/gen-ai/components/RecentReportsTable.vue +974 -0
- package/src/views/gen-ai/components/ReportCollapsibleSection.vue +172 -0
- package/src/views/gen-ai/components/ReportHistoryList.vue +637 -0
- package/src/views/gen-ai/components/ReportSectionConfirmPopover.vue +251 -0
- package/src/views/gen-ai/components/editor/ChapterTiptapEditor.vue +3139 -0
- package/src/views/gen-ai/components/editor/StructureBlockView.vue +441 -0
- package/src/views/gen-ai/components/editor/TiptapToolbar.vue +1036 -0
- package/src/views/gen-ai/components/editor/TypewriterDocEditor.vue +398 -0
- package/src/views/gen-ai/components/editor/_StructureOrgNode.vue +326 -0
- package/src/views/gen-ai/components/editor/index.ts +12 -0
- package/src/views/gen-ai/components/editor/parseMarkdownHtml.ts +667 -0
- package/src/views/gen-ai/gen-entry/api/index.ts +32 -0
- package/src/views/gen-ai/gen-entry/index.vue +287 -0
- package/src/views/gen-ai/gen-entry/types/index.ts +4 -0
- package/src/views/gen-ai/i.mark +2 -0
- package/src/views/gen-ai/management-center/index.vue +1815 -0
- package/src/views/gen-ai/management-center/mockData.ts +248 -0
- package/src/views/gen-ai/management-center/types/index.ts +37 -0
- package/src/views/gen-ai/model-manager/TemplateEditorFormPanel.vue +661 -0
- package/src/views/gen-ai/model-manager/api/index.ts +32 -0
- package/src/views/gen-ai/model-manager/api/mockApi.ts +33 -0
- package/src/views/gen-ai/model-manager/index.vue +1583 -0
- package/src/views/gen-ai/model-manager/mockData.ts +177 -0
- package/src/views/gen-ai/model-manager/template-detail-shared.ts +154 -0
- package/src/views/gen-ai/model-manager/template-editor.vue +345 -0
- package/src/views/gen-ai/model-manager/types/index.ts +40 -0
- package/src/views/gen-ai/model-manager/utils.ts +25 -0
- package/src/views/greenMortgage.vue +1834 -0
- package/src/vite-env.d.ts +46 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// src/components/GEN-AI/utils.ts
|
|
2
|
+
import html2pdf from 'html2pdf.js'
|
|
3
|
+
import { asBlob } from 'html-docx-js-typescript'
|
|
4
|
+
import { saveAs } from 'file-saver'
|
|
5
|
+
|
|
6
|
+
export const exportToPDF = (elementId: string, filename: string) => {
|
|
7
|
+
const element = document.getElementById(elementId)
|
|
8
|
+
|
|
9
|
+
if (!element) return
|
|
10
|
+
|
|
11
|
+
const opt = {
|
|
12
|
+
margin: 10,
|
|
13
|
+
filename: `${filename}.pdf`,
|
|
14
|
+
image: { type: 'jpeg' as const, quality: 0.98 },
|
|
15
|
+
html2canvas: { scale: 2, useCORS: true },
|
|
16
|
+
jsPDF: { unit: 'mm' as const, format: 'a4' as const, orientation: 'portrait' as const },
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
html2pdf().set(opt).from(element).save()
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const exportToWord = async (elementId: string, filename: string) => {
|
|
23
|
+
const element = document.getElementById(elementId)
|
|
24
|
+
|
|
25
|
+
if (!element) return
|
|
26
|
+
|
|
27
|
+
// 包装标准的 HTML 文档结构,否则 Word 打开可能乱码
|
|
28
|
+
const htmlString = `
|
|
29
|
+
<!DOCTYPE html>
|
|
30
|
+
<html lang="zh">
|
|
31
|
+
<head><meta charset="utf-8"></head>
|
|
32
|
+
<body>${element.innerHTML}</body>
|
|
33
|
+
</html>
|
|
34
|
+
`
|
|
35
|
+
|
|
36
|
+
try {
|
|
37
|
+
const blob = await asBlob(htmlString)
|
|
38
|
+
saveAs(blob as Blob, `${filename}.docx`)
|
|
39
|
+
} catch (error) {
|
|
40
|
+
console.error('Word 匯出失敗:', error)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { ref } from "vue";
|
|
3
|
+
|
|
4
|
+
defineProps<{ msg: string }>();
|
|
5
|
+
|
|
6
|
+
const count = ref(0);
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<template>
|
|
10
|
+
<h1>{{ msg }}</h1>
|
|
11
|
+
|
|
12
|
+
<div class="card">
|
|
13
|
+
<button type="button" @click="count++">count is {{ count }}</button>
|
|
14
|
+
<p>
|
|
15
|
+
// Edit
|
|
16
|
+
<code>components/HelloWorld.vue</code> to test HMR
|
|
17
|
+
</p>
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
<p>
|
|
21
|
+
Check out
|
|
22
|
+
<a href="https://vuejs.org/guide/quick-start.html#local" target="_blank"
|
|
23
|
+
>create-vue</a
|
|
24
|
+
>, the official Vue + Vite starter
|
|
25
|
+
</p>
|
|
26
|
+
<p>
|
|
27
|
+
Learn more about IDE Support for Vue in the
|
|
28
|
+
<a
|
|
29
|
+
href="https://vuejs.org/guide/scaling-up/tooling.html#ide-support"
|
|
30
|
+
target="_blank"
|
|
31
|
+
>Vue Docs Scaling up Guide</a
|
|
32
|
+
>.
|
|
33
|
+
</p>
|
|
34
|
+
<p class="read-the-docs">Click on the Vite and Vue logos to learn more</p>
|
|
35
|
+
</template>
|
|
36
|
+
|
|
37
|
+
<style scoped>
|
|
38
|
+
.read-the-docs {
|
|
39
|
+
color: #888;
|
|
40
|
+
}
|
|
41
|
+
</style>
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<el-card class="page-card" shadow="hover">
|
|
3
|
+
<div class="page-card__inner">
|
|
4
|
+
<slot />
|
|
5
|
+
</div>
|
|
6
|
+
</el-card>
|
|
7
|
+
</template>
|
|
8
|
+
|
|
9
|
+
<style scoped>
|
|
10
|
+
.page-card {
|
|
11
|
+
--page-inner-spacing: 20px;
|
|
12
|
+
--page-card-radius: 4px;
|
|
13
|
+
--page-card-border: #e8eaec;
|
|
14
|
+
flex: 1;
|
|
15
|
+
min-height: 0;
|
|
16
|
+
border-radius: var(--page-card-radius);
|
|
17
|
+
border: 1px solid var(--page-card-border);
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
background-color: #fff;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.page-card :deep(.el-card__body) {
|
|
24
|
+
flex: 1;
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-direction: column;
|
|
27
|
+
min-height: 0;
|
|
28
|
+
padding: var(--page-inner-spacing);
|
|
29
|
+
box-sizing: border-box;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.page-card__inner {
|
|
33
|
+
flex: 1;
|
|
34
|
+
display: flex;
|
|
35
|
+
flex-direction: column;
|
|
36
|
+
min-height: 0;
|
|
37
|
+
box-sizing: border-box;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.page-card__inner > :deep(.min-h-screen),
|
|
41
|
+
.page-card__inner > :deep(.h-screen) {
|
|
42
|
+
min-height: auto;
|
|
43
|
+
height: auto;
|
|
44
|
+
background: transparent;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* 報告生成 >14 章:勿在卡片層建立滾動/裁切,否則右側視頻 sticky 會跟著滾走 */
|
|
48
|
+
.page-card:has(:deep(.report-generating-page.is-outer-scroll)),
|
|
49
|
+
.page-card:has(:deep(.report-generating-page.is-outer-scroll)) :deep(.el-card__body),
|
|
50
|
+
.page-card:has(:deep(.report-generating-page.is-outer-scroll)) .page-card__inner {
|
|
51
|
+
overflow: visible;
|
|
52
|
+
height: auto;
|
|
53
|
+
max-height: none;
|
|
54
|
+
min-height: min-content;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* 報告生成 ≤14 章:卡片內貼合,無最外層滾動條 */
|
|
58
|
+
.page-card:has(:deep(.report-generating-page:not(.is-outer-scroll))),
|
|
59
|
+
.page-card:has(:deep(.report-generating-page:not(.is-outer-scroll))) :deep(.el-card__body),
|
|
60
|
+
.page-card:has(:deep(.report-generating-page:not(.is-outer-scroll))) .page-card__inner {
|
|
61
|
+
overflow: hidden;
|
|
62
|
+
height: 100%;
|
|
63
|
+
max-height: 100%;
|
|
64
|
+
min-height: 0;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/* 報告編輯三欄:貼合 PageCard,無最外層滾動條 */
|
|
68
|
+
.page-card:has(:deep(.report-edit-page)),
|
|
69
|
+
.page-card:has(:deep(.report-edit-page)) :deep(.el-card__body),
|
|
70
|
+
.page-card:has(:deep(.report-edit-page)) .page-card__inner {
|
|
71
|
+
overflow: hidden;
|
|
72
|
+
height: 100%;
|
|
73
|
+
max-height: 100%;
|
|
74
|
+
min-height: 0;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.page-card:has(:deep(.report-edit-page.is-prompt)),
|
|
78
|
+
.page-card:has(:deep(.report-edit-page.is-prompt)) :deep(.el-card__body),
|
|
79
|
+
.page-card:has(:deep(.report-edit-page.is-prompt)) .page-card__inner {
|
|
80
|
+
height: auto;
|
|
81
|
+
max-height: calc(100dvh - 62px);
|
|
82
|
+
padding: 0;
|
|
83
|
+
background: #fff;
|
|
84
|
+
overflow: visible;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/* Green Mortgage:外殼透明;iOS card 效果只留在 el-card__body */
|
|
88
|
+
.page-card:has(:deep(.green-mortgage-page)) {
|
|
89
|
+
border: none !important;
|
|
90
|
+
box-shadow: none !important;
|
|
91
|
+
background: transparent !important;
|
|
92
|
+
border-radius: 0;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.page-card:has(:deep(.green-mortgage-page)) :deep(.el-card__body) {
|
|
96
|
+
--gm-card-padding: 20px;
|
|
97
|
+
box-sizing: border-box;
|
|
98
|
+
height: 100%;
|
|
99
|
+
max-height: 100%;
|
|
100
|
+
min-height: 0;
|
|
101
|
+
padding: var(--gm-card-padding);
|
|
102
|
+
overflow: hidden;
|
|
103
|
+
/* Apple iOS card(原 green-mortgage-page / .green-mortgage 效果) */
|
|
104
|
+
border-radius: 16px;
|
|
105
|
+
border: 0.5px solid rgba(0, 0, 0, 0.06);
|
|
106
|
+
background: rgba(255, 255, 255, 0.96);
|
|
107
|
+
-webkit-backdrop-filter: saturate(180%) blur(20px);
|
|
108
|
+
backdrop-filter: saturate(180%) blur(20px);
|
|
109
|
+
box-shadow:
|
|
110
|
+
0 1px 2px rgba(0, 0, 0, 0.04),
|
|
111
|
+
0 4px 12px rgba(0, 0, 0, 0.05),
|
|
112
|
+
0 12px 28px rgba(0, 0, 0, 0.06);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.page-card:has(:deep(.green-mortgage-page)) .page-card__inner {
|
|
116
|
+
padding: 0;
|
|
117
|
+
/* 勿裁切伸入 el-card__body padding 的豎條 */
|
|
118
|
+
overflow: visible;
|
|
119
|
+
height: 100%;
|
|
120
|
+
max-height: 100%;
|
|
121
|
+
min-height: 0;
|
|
122
|
+
background: transparent;
|
|
123
|
+
}
|
|
124
|
+
</style>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<header class="page-header">
|
|
3
|
+
<h1 class="page-header__title">{{ title }}</h1>
|
|
4
|
+
</header>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<script setup lang="ts">
|
|
8
|
+
defineProps({
|
|
9
|
+
title: { type: String, required: true },
|
|
10
|
+
})
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<style scoped>
|
|
14
|
+
.page-header {
|
|
15
|
+
flex-shrink: 0;
|
|
16
|
+
height: var(--gen-ai-page-header-h, 62px);
|
|
17
|
+
display: flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
padding: 0 24px;
|
|
20
|
+
background: #fff;
|
|
21
|
+
border-bottom: 1px solid #e8eaec;
|
|
22
|
+
box-shadow: none;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.page-header__title {
|
|
26
|
+
margin: 0;
|
|
27
|
+
font-size: var(--gen-ai-fs-md);
|
|
28
|
+
font-weight: var(--gen-ai-fw-semibold);
|
|
29
|
+
color: #2d3139;
|
|
30
|
+
line-height: 1;
|
|
31
|
+
}
|
|
32
|
+
</style>
|