From 3947c1ea8c23302f2fc714c639244b01aca9ae43 Mon Sep 17 00:00:00 2001 From: fuliqiang <1348994179@qq.com> Date: Tue, 26 Nov 2024 18:03:10 +0800 Subject: [PATCH 01/36] chore: Add ai-assistant page --- .../src/assets/images/ai_helper.png | Bin 0 -> 44227 bytes .../src/assets/images/svg/full_screen.svg | 34 ++++++++ .../src/assets/images/svg/history.svg | 31 +++++++ .../src/assets/images/svg/plus_gray.svg | 28 ++++++ .../components/ai-assistant/chat-input.vue | 27 ++++++ .../components/ai-assistant/empty-content.vue | 72 ++++++++++++++++ .../src/components/ai-assistant/index.vue | 80 ++++++++++++++++++ bigtop-manager-ui/src/layouts/header.vue | 24 ++++-- 8 files changed, 291 insertions(+), 5 deletions(-) create mode 100644 bigtop-manager-ui/src/assets/images/ai_helper.png create mode 100644 bigtop-manager-ui/src/assets/images/svg/full_screen.svg create mode 100644 bigtop-manager-ui/src/assets/images/svg/history.svg create mode 100644 bigtop-manager-ui/src/assets/images/svg/plus_gray.svg create mode 100644 bigtop-manager-ui/src/components/ai-assistant/chat-input.vue create mode 100644 bigtop-manager-ui/src/components/ai-assistant/empty-content.vue create mode 100644 bigtop-manager-ui/src/components/ai-assistant/index.vue diff --git a/bigtop-manager-ui/src/assets/images/ai_helper.png b/bigtop-manager-ui/src/assets/images/ai_helper.png new file mode 100644 index 0000000000000000000000000000000000000000..95c52903b27780a8a708d84bbb75319b2cfc5670 GIT binary patch literal 44227 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 literal 0 HcmV?d00001 diff --git a/bigtop-manager-ui/src/assets/images/svg/full_screen.svg b/bigtop-manager-ui/src/assets/images/svg/full_screen.svg new file mode 100644 index 00000000..c5bb8c21 --- /dev/null +++ b/bigtop-manager-ui/src/assets/images/svg/full_screen.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/bigtop-manager-ui/src/assets/images/svg/history.svg b/bigtop-manager-ui/src/assets/images/svg/history.svg new file mode 100644 index 00000000..ca067326 --- /dev/null +++ b/bigtop-manager-ui/src/assets/images/svg/history.svg @@ -0,0 +1,31 @@ + + + + + + + + + + \ No newline at end of file diff --git a/bigtop-manager-ui/src/assets/images/svg/plus_gray.svg b/bigtop-manager-ui/src/assets/images/svg/plus_gray.svg new file mode 100644 index 00000000..29d96ac8 --- /dev/null +++ b/bigtop-manager-ui/src/assets/images/svg/plus_gray.svg @@ -0,0 +1,28 @@ + + + + + + + + \ No newline at end of file diff --git a/bigtop-manager-ui/src/components/ai-assistant/chat-input.vue b/bigtop-manager-ui/src/components/ai-assistant/chat-input.vue new file mode 100644 index 00000000..8f174f0b --- /dev/null +++ b/bigtop-manager-ui/src/components/ai-assistant/chat-input.vue @@ -0,0 +1,27 @@ + + + + + + diff --git a/bigtop-manager-ui/src/components/ai-assistant/empty-content.vue b/bigtop-manager-ui/src/components/ai-assistant/empty-content.vue new file mode 100644 index 00000000..0ebb7789 --- /dev/null +++ b/bigtop-manager-ui/src/components/ai-assistant/empty-content.vue @@ -0,0 +1,72 @@ + + + + + + diff --git a/bigtop-manager-ui/src/components/ai-assistant/index.vue b/bigtop-manager-ui/src/components/ai-assistant/index.vue new file mode 100644 index 00000000..863691be --- /dev/null +++ b/bigtop-manager-ui/src/components/ai-assistant/index.vue @@ -0,0 +1,80 @@ + + + + + + diff --git a/bigtop-manager-ui/src/layouts/header.vue b/bigtop-manager-ui/src/layouts/header.vue index b34d5e6a..16ed1d2d 100644 --- a/bigtop-manager-ui/src/layouts/header.vue +++ b/bigtop-manager-ui/src/layouts/header.vue @@ -21,6 +21,8 @@ import { ref, toRefs } from 'vue' import SelectLang from '@/components/select-lang/index.vue' import UserAvatar from '@/components/user-avatar/index.vue' + import AiAssistant from '@/components/ai-assistant/index.vue' + import { RouteRecordRaw } from 'vue-router' interface Props { @@ -28,6 +30,10 @@ headerMenus: RouteRecordRaw[] } + interface Emits { + (event: 'onHeaderClick', key: string): void + } + const props = withDefaults(defineProps(), { headerSelectedKey: '', headerMenus: () => [] @@ -36,10 +42,17 @@ const { headerSelectedKey, headerMenus } = toRefs(props) const githubUrl = import.meta.env.VITE_GITHUB_URL const spaceSize = ref(16) - const emits = defineEmits(['onHeaderClick']) - const onHeaderClick = ({ key }: any) => { + const aiAssistantRef = ref | null>(null) + + const emits = defineEmits() + + const handleHeaderSelect = ({ key }: any) => { emits('onHeaderClick', key) } + + const handleCommunication = () => { + aiAssistantRef.value?.openDrawer() + } @@ -86,7 +100,7 @@ } .header { @include flexbox($justify: space-between, $align: center); - padding-inline: 0 16px; + padding-inline: 0 $space-md; height: $layout-header-height; .header-menu { flex: 1; From 79ecd37738c6ec63a956ec1af63149f4599506bd Mon Sep 17 00:00:00 2001 From: fuliqiang <1348994179@qq.com> Date: Tue, 26 Nov 2024 18:20:43 +0800 Subject: [PATCH 02/36] chore: Update ai-assistant page --- .../components/ai-assistant/empty-content.vue | 7 ++++--- .../src/components/ai-assistant/index.vue | 20 +++++++++++++++---- bigtop-manager-ui/src/main.ts | 1 + bigtop-manager-ui/src/styles/index.scss | 1 - 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/bigtop-manager-ui/src/components/ai-assistant/empty-content.vue b/bigtop-manager-ui/src/components/ai-assistant/empty-content.vue index 0ebb7789..1891e1d5 100644 --- a/bigtop-manager-ui/src/components/ai-assistant/empty-content.vue +++ b/bigtop-manager-ui/src/components/ai-assistant/empty-content.vue @@ -25,6 +25,7 @@ marginBottom: '16px' }) const emptyState = usePngImage('ai_helper') + const githubUrl = import.meta.env.VITE_GITHUB_URL