From b878f6b6be2847140498a13ea8170179d335e419 Mon Sep 17 00:00:00 2001
From: JEECG <445654970@qq.com>
Date: Mon, 7 Apr 2025 14:08:36 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=80=81=E7=9A=84AI=E8=81=8A?=
=?UTF-8?q?=E5=A4=A9=E7=95=8C=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../jeecg/AiChat/components/chat.vue | 473 ------------------
.../jeecg/AiChat/components/chatMessage.vue | 74 ---
.../src/components/jeecg/AiChat/data.js | 186 -------
.../jeecg/AiChat/hooks/useScroll.ts | 44 --
.../src/components/jeecg/AiChat/index.vue | 222 --------
.../jeecg/AiChat/style/highlight.less | 206 --------
.../components/jeecg/AiChat/style/style.less | 135 -----
7 files changed, 1340 deletions(-)
delete mode 100644 jeecgboot-vue3/src/components/jeecg/AiChat/components/chat.vue
delete mode 100644 jeecgboot-vue3/src/components/jeecg/AiChat/components/chatMessage.vue
delete mode 100644 jeecgboot-vue3/src/components/jeecg/AiChat/data.js
delete mode 100644 jeecgboot-vue3/src/components/jeecg/AiChat/hooks/useScroll.ts
delete mode 100644 jeecgboot-vue3/src/components/jeecg/AiChat/index.vue
delete mode 100644 jeecgboot-vue3/src/components/jeecg/AiChat/style/highlight.less
delete mode 100644 jeecgboot-vue3/src/components/jeecg/AiChat/style/style.less
diff --git a/jeecgboot-vue3/src/components/jeecg/AiChat/components/chat.vue b/jeecgboot-vue3/src/components/jeecg/AiChat/components/chat.vue
deleted file mode 100644
index c89dda22..00000000
--- a/jeecgboot-vue3/src/components/jeecg/AiChat/components/chat.vue
+++ /dev/null
@@ -1,473 +0,0 @@
-
-
-
-
-
-
-
diff --git a/jeecgboot-vue3/src/components/jeecg/AiChat/components/chatMessage.vue b/jeecgboot-vue3/src/components/jeecg/AiChat/components/chatMessage.vue
deleted file mode 100644
index dc4593d9..00000000
--- a/jeecgboot-vue3/src/components/jeecg/AiChat/components/chatMessage.vue
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
-
![]()
-
-
-
-
-
-
-
-
-
diff --git a/jeecgboot-vue3/src/components/jeecg/AiChat/data.js b/jeecgboot-vue3/src/components/jeecg/AiChat/data.js
deleted file mode 100644
index c6aedc2a..00000000
--- a/jeecgboot-vue3/src/components/jeecg/AiChat/data.js
+++ /dev/null
@@ -1,186 +0,0 @@
-export const localData = {
- active: 1002,
- usingContext: true,
- history: [
- {
- title: '标题02',
- uuid: 1706083575869,
- isEdit: false,
- },
- {
- uuid: 1002,
- title: '标题01',
- isEdit: false,
- },
- ],
- chat: [
- {
- uuid: 1706083575869,
- data: [
- {
- dateTime: '2024/1/24 16:06:27',
- text: '?',
- inversion: true,
- error: false,
- conversationOptions: null,
- requestOptions: {
- prompt: '?',
- options: null,
- },
- },
- {
- dateTime: '2024/1/24 16:06:29',
- text: 'Hello! How can I assist you today?',
- inversion: false,
- error: false,
- loading: false,
- conversationOptions: {
- parentMessageId: 'chatcmpl-8kSZA0wju7X8sOdJIyxtpDj0RQVu1',
- },
- requestOptions: {
- prompt: '?',
- options: {},
- },
- },
- ],
- },
- {
- uuid: 1002,
- data: [
- {
- dateTime: '2024/1/24 14:01:52',
- text: '1',
- inversion: true,
- error: false,
- conversationOptions: null,
- requestOptions: {
- prompt: '1',
- options: null,
- },
- },
- {
- dateTime: '2024/1/24 14:01:54',
- text: 'Yes, how can I assist you?',
- inversion: false,
- error: false,
- loading: false,
- conversationOptions: {
- parentMessageId: 'chatcmpl-8kQcb6mbF04o5hpule4SdHk2jFvNQ',
- },
- requestOptions: {
- prompt: '1',
- options: {},
- },
- },
- {
- dateTime: '2024/1/24 14:03:45',
- text: '?',
- inversion: true,
- error: false,
- conversationOptions: null,
- requestOptions: {
- prompt: '?',
- options: null,
- },
- },
- {
- dateTime: '2024/1/24 14:03:47',
- text: "I'm sorry if my previous response was not clear. Please let me know how I can help you or what you would like to discuss.",
- inversion: false,
- error: false,
- loading: false,
- conversationOptions: {
- parentMessageId: 'chatcmpl-8kQeQ2t8YCXmLeF0ECGkkuOJlk4Pi',
- },
- requestOptions: {
- prompt: '?',
- options: {
- parentMessageId: 'chatcmpl-8kQcb6mbF04o5hpule4SdHk2jFvNQ',
- },
- },
- },
- {
- dateTime: '2024/1/24 14:10:19',
- text: 'js 递归',
- inversion: true,
- error: false,
- conversationOptions: null,
- requestOptions: {
- prompt: 'js 递归',
- options: null,
- },
- },
- {
- dateTime: '2024/1/24 14:10:33',
- text: 'JavaScript supports recursion, which is the process of a function calling itself. Recursion can be useful for solving problems that can be broken down into smaller, similar sub-problems.\n\nHere\'s an example of a simple recursive function in JavaScript:\n\n```javascript\nfunction countdown(n) {\n if (n <= 0) {\n console.log("Done!");\n } else {\n console.log(n);\n countdown(n - 1); // recursive call\n }\n}\n\ncountdown(5);\n```\n\nIn this example, the `countdown` function takes an argument `n` and logs the value of `n` to the console. If `n` is greater than zero, it then calls itself with `n - 1`. This process continues until `n` becomes less than or equal to zero, at which point it logs "Done!".\n\nRecursion can be helpful in solving problems that involve tree structures, factorial calculations, searching algorithms, and more. However, it\'s important to use recursion properly to avoid infinite loops or excessive stack usage.',
- inversion: false,
- error: false,
- loading: false,
- conversationOptions: {
- parentMessageId: 'chatcmpl-8kQkmCbnRe4fG1FhWTlY0EyHTpqau',
- },
- requestOptions: {
- prompt: 'js 递归',
- options: {
- parentMessageId: 'chatcmpl-8kQeQ2t8YCXmLeF0ECGkkuOJlk4Pi',
- },
- },
- },
- {
- dateTime: '2024/1/24 14:17:15',
- text: 'js 递归',
- inversion: true,
- error: false,
- conversationOptions: null,
- requestOptions: {
- prompt: 'js 递归',
- options: null,
- },
- },
- {
- dateTime: '2024/1/24 14:23:50',
- text: "Certainly! Here's an example of how you can use recursion in JavaScript:\n\n```javascript\nfunction factorial(n) {\n if (n === 0) {\n return 1;\n } else {\n return n * factorial(n - 1);\n }\n}\n\nconsole.log(factorial(5)); // Output: 120\n```\n\nIn this example, the `factorial` function calculates the factorial of a given number `n` using recursion. If `n` is equal to 0, it returns 1, which is the base case. Otherwise, it recursively calls itself with `n - 1`, multiplying the current value of `n` with the result of the recursive call.\n\nWhen calling `factorial(5)`, the function will execute as follows:\n\n- `factorial(5)` calls `factorial(4)`\n- `factorial(4)` calls `factorial(3)`\n- `factorial(3)` calls `factorial(2)`\n- `factorial(2)` calls `factorial(1)`\n- `factorial(1)` calls `factorial(0)`\n- `factorial(0)` returns 1\n- `factorial(1)` returns 1 * 1 = 1\n- `factorial(2)` returns 2 * 1 = 2\n- `factorial(3)` returns 3 * 2 = 6\n- `factorial(4)` returns 4 * 6 = 24\n- `factorial(5)` returns 5 * 24 = 120\n\nThe final result is then printed to the console using `console.log`.",
- inversion: false,
- error: false,
- loading: false,
- conversationOptions: {
- parentMessageId: 'chatcmpl-8kQwWVoZoWyqjbWuwMJmu6w3hBvXj',
- },
- requestOptions: {
- prompt: 'js 递归',
- options: {
- parentMessageId: 'chatcmpl-8kQkmCbnRe4fG1FhWTlY0EyHTpqau',
- },
- },
- },
- {
- dateTime: '2024/1/24 15:05:30',
- text: '///',
- inversion: true,
- error: false,
- conversationOptions: null,
- requestOptions: {
- prompt: '///',
- options: null,
- },
- },
- {
- dateTime: '2024/1/24 15:05:33',
- text: "I apologize if my previous response was not what you were expecting. If you have any specific questions or need further assistance, please let me know and I'll be happy to help.",
- inversion: false,
- error: false,
- loading: false,
- conversationOptions: {
- parentMessageId: 'chatcmpl-8kRcAggkC4u47d34UcQW3cI0htw0w',
- },
- requestOptions: {
- prompt: '///',
- options: {
- parentMessageId: 'chatcmpl-8kQwWVoZoWyqjbWuwMJmu6w3hBvXj',
- },
- },
- },
- ],
- },
- ],
- };
diff --git a/jeecgboot-vue3/src/components/jeecg/AiChat/hooks/useScroll.ts b/jeecgboot-vue3/src/components/jeecg/AiChat/hooks/useScroll.ts
deleted file mode 100644
index c4740219..00000000
--- a/jeecgboot-vue3/src/components/jeecg/AiChat/hooks/useScroll.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import type { Ref } from 'vue'
-import { nextTick, ref } from 'vue'
-
-type ScrollElement = HTMLDivElement | null
-
-interface ScrollReturn {
- scrollRef: Ref
- scrollToBottom: () => Promise
- scrollToTop: () => Promise
- scrollToBottomIfAtBottom: () => Promise
-}
-
-export function useScroll(): ScrollReturn {
- const scrollRef = ref(null)
-
- const scrollToBottom = async () => {
- await nextTick()
- if (scrollRef.value)
- scrollRef.value.scrollTop = scrollRef.value.scrollHeight
- }
-
- const scrollToTop = async () => {
- await nextTick()
- if (scrollRef.value)
- scrollRef.value.scrollTop = 0
- }
-
- const scrollToBottomIfAtBottom = async () => {
- await nextTick()
- if (scrollRef.value) {
- const threshold = 100 // Threshold, indicating the distance threshold to the bottom of the scroll bar.
- const distanceToBottom = scrollRef.value.scrollHeight - scrollRef.value.scrollTop - scrollRef.value.clientHeight
- if (distanceToBottom <= threshold)
- scrollRef.value.scrollTop = scrollRef.value.scrollHeight
- }
- }
-
- return {
- scrollRef,
- scrollToBottom,
- scrollToTop,
- scrollToBottomIfAtBottom,
- }
-}
diff --git a/jeecgboot-vue3/src/components/jeecg/AiChat/index.vue b/jeecgboot-vue3/src/components/jeecg/AiChat/index.vue
deleted file mode 100644
index 7509a47a..00000000
--- a/jeecgboot-vue3/src/components/jeecg/AiChat/index.vue
+++ /dev/null
@@ -1,222 +0,0 @@
-
-
-
-
-
-
-
diff --git a/jeecgboot-vue3/src/components/jeecg/AiChat/style/highlight.less b/jeecgboot-vue3/src/components/jeecg/AiChat/style/highlight.less
deleted file mode 100644
index 446a1e2e..00000000
--- a/jeecgboot-vue3/src/components/jeecg/AiChat/style/highlight.less
+++ /dev/null
@@ -1,206 +0,0 @@
-html.dark {
- pre code.hljs {
- display: block;
- overflow-x: auto;
- padding: 1em
- }
-
- code.hljs {
- padding: 3px 5px
- }
-
- .hljs {
- color: #abb2bf;
- background: #282c34
- }
-
- .hljs-keyword,
- .hljs-operator,
- .hljs-pattern-match {
- color: #f92672
- }
-
- .hljs-function,
- .hljs-pattern-match .hljs-constructor {
- color: #61aeee
- }
-
- .hljs-function .hljs-params {
- color: #a6e22e
- }
-
- .hljs-function .hljs-params .hljs-typing {
- color: #fd971f
- }
-
- .hljs-module-access .hljs-module {
- color: #7e57c2
- }
-
- .hljs-constructor {
- color: #e2b93d
- }
-
- .hljs-constructor .hljs-string {
- color: #9ccc65
- }
-
- .hljs-comment,
- .hljs-quote {
- color: #b18eb1;
- font-style: italic
- }
-
- .hljs-doctag,
- .hljs-formula {
- color: #c678dd
- }
-
- .hljs-deletion,
- .hljs-name,
- .hljs-section,
- .hljs-selector-tag,
- .hljs-subst {
- color: #e06c75
- }
-
- .hljs-literal {
- color: #56b6c2
- }
-
- .hljs-addition,
- .hljs-attribute,
- .hljs-meta .hljs-string,
- .hljs-regexp,
- .hljs-string {
- color: #98c379
- }
-
- .hljs-built_in,
- .hljs-class .hljs-title,
- .hljs-title.class_ {
- color: #e6c07b
- }
-
- .hljs-attr,
- .hljs-number,
- .hljs-selector-attr,
- .hljs-selector-class,
- .hljs-selector-pseudo,
- .hljs-template-variable,
- .hljs-type,
- .hljs-variable {
- color: #d19a66
- }
-
- .hljs-bullet,
- .hljs-link,
- .hljs-meta,
- .hljs-selector-id,
- .hljs-symbol,
- .hljs-title {
- color: #61aeee
- }
-
- .hljs-emphasis {
- font-style: italic
- }
-
- .hljs-strong {
- font-weight: 700
- }
-
- .hljs-link {
- text-decoration: underline
- }
-}
-
-html {
- pre code.hljs {
- display: block;
- overflow-x: auto;
- padding: 1em
- }
-
- code.hljs {
- padding: 3px 5px;
- &::-webkit-scrollbar {
- height: 4px;
- }
- }
-
- .hljs {
- color: #383a42;
- background: #fafafa
- }
-
- .hljs-comment,
- .hljs-quote {
- color: #a0a1a7;
- font-style: italic
- }
-
- .hljs-doctag,
- .hljs-formula,
- .hljs-keyword {
- color: #a626a4
- }
-
- .hljs-deletion,
- .hljs-name,
- .hljs-section,
- .hljs-selector-tag,
- .hljs-subst {
- color: #e45649
- }
-
- .hljs-literal {
- color: #0184bb
- }
-
- .hljs-addition,
- .hljs-attribute,
- .hljs-meta .hljs-string,
- .hljs-regexp,
- .hljs-string {
- color: #50a14f
- }
-
- .hljs-attr,
- .hljs-number,
- .hljs-selector-attr,
- .hljs-selector-class,
- .hljs-selector-pseudo,
- .hljs-template-variable,
- .hljs-type,
- .hljs-variable {
- color: #986801
- }
-
- .hljs-bullet,
- .hljs-link,
- .hljs-meta,
- .hljs-selector-id,
- .hljs-symbol,
- .hljs-title {
- color: #4078f2
- }
-
- .hljs-built_in,
- .hljs-class .hljs-title,
- .hljs-title.class_ {
- color: #c18401
- }
-
- .hljs-emphasis {
- font-style: italic
- }
-
- .hljs-strong {
- font-weight: 700
- }
-
- .hljs-link {
- text-decoration: underline
- }
-}
diff --git a/jeecgboot-vue3/src/components/jeecg/AiChat/style/style.less b/jeecgboot-vue3/src/components/jeecg/AiChat/style/style.less
deleted file mode 100644
index 3b523677..00000000
--- a/jeecgboot-vue3/src/components/jeecg/AiChat/style/style.less
+++ /dev/null
@@ -1,135 +0,0 @@
-.markdown-body {
- background-color: transparent;
- font-size: 14px;
-
- p {
- white-space: pre-wrap;
- }
-
- ol {
- list-style-type: decimal;
- }
-
- ul {
- list-style-type: disc;
- }
-
- pre code,
- pre tt {
- line-height: 1.65;
- }
-
- .highlight pre,
- pre {
- background-color: #fff;
- }
-
- code.hljs {
- padding: 0;
- }
-
- .code-block {
- &-wrapper {
- position: relative;
- padding-top: 24px;
- }
-
- &-header {
- position: absolute;
- top: 5px;
- right: 0;
- width: 100%;
- padding: 0 1rem;
- display: flex;
- justify-content: flex-end;
- align-items: center;
- color: #b3b3b3;
-
- &__copy {
- cursor: pointer;
- margin-left: 0.5rem;
- user-select: none;
-
- &:hover {
- color: #65a665;
- }
- }
- }
- }
-
-
- &.markdown-body-generate>dd:last-child:after,
- &.markdown-body-generate>dl:last-child:after,
- &.markdown-body-generate>dt:last-child:after,
- &.markdown-body-generate>h1:last-child:after,
- &.markdown-body-generate>h2:last-child:after,
- &.markdown-body-generate>h3:last-child:after,
- &.markdown-body-generate>h4:last-child:after,
- &.markdown-body-generate>h5:last-child:after,
- &.markdown-body-generate>h6:last-child:after,
- &.markdown-body-generate>li:last-child:after,
- &.markdown-body-generate>ol:last-child li:last-child:after,
- &.markdown-body-generate>p:last-child:after,
- &.markdown-body-generate>pre:last-child code:after,
- &.markdown-body-generate>td:last-child:after,
- &.markdown-body-generate>ul:last-child li:last-child:after {
- animation: blink 1s steps(5, start) infinite;
- color: #000;
- content: '_';
- font-weight: 700;
- margin-left: 3px;
- vertical-align: baseline;
- }
-
- @keyframes blink {
- to {
- visibility: hidden;
- }
- }
-}
-
-html.dark {
-
- .markdown-body {
-
- &.markdown-body-generate>dd:last-child:after,
- &.markdown-body-generate>dl:last-child:after,
- &.markdown-body-generate>dt:last-child:after,
- &.markdown-body-generate>h1:last-child:after,
- &.markdown-body-generate>h2:last-child:after,
- &.markdown-body-generate>h3:last-child:after,
- &.markdown-body-generate>h4:last-child:after,
- &.markdown-body-generate>h5:last-child:after,
- &.markdown-body-generate>h6:last-child:after,
- &.markdown-body-generate>li:last-child:after,
- &.markdown-body-generate>ol:last-child li:last-child:after,
- &.markdown-body-generate>p:last-child:after,
- &.markdown-body-generate>pre:last-child code:after,
- &.markdown-body-generate>td:last-child:after,
- &.markdown-body-generate>ul:last-child li:last-child:after {
- color: #65a665;
- }
- }
-
- .message-reply {
- .whitespace-pre-wrap {
- white-space: pre-wrap;
- color: var(--n-text-color);
- }
- }
-
- .highlight pre,
- pre {
- background-color: #282c34;
- }
-}
-
-@media screen and (max-width: 533px) {
- .markdown-body .code-block-wrapper {
- padding: unset;
-
- code {
- padding: 24px 16px 16px 16px;
- }
- }
-}