Skip to content

Commit 34ca7a9

Browse files
feat: Add a separate chat page
1 parent 2b17e27 commit 34ca7a9

File tree

4 files changed

+78
-1
lines changed

4 files changed

+78
-1
lines changed

frontend/src/components/layout/LayoutDsl.vue

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@ import icon_side_expand_outlined from '@/assets/svg/icon_side-expand_outlined.sv
1111
import { useRoute, useRouter } from 'vue-router'
1212
import { useAppearanceStoreWithOut } from '@/stores/appearance'
1313
import { useEmitt } from '@/utils/useEmitt'
14+
import { isMobile } from '@/utils/utils'
15+
import { onBeforeMount } from 'vue'
1416
17+
const isPhone = computed(() => {
18+
return isMobile()
19+
})
1520
const router = useRouter()
1621
const collapse = ref(false)
1722
const collapseCopy = ref(false)
@@ -53,6 +58,12 @@ const route = useRoute()
5358
const showSysmenu = computed(() => {
5459
return route.path.includes('/system')
5560
})
61+
onBeforeMount(() => {
62+
if (isPhone.value) {
63+
collapse.value = true
64+
collapseCopy.value = true
65+
}
66+
})
5667
</script>
5768

5869
<template>

frontend/src/router/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ import Permission from '@/views/system/permission/index.vue'
2626
import User from '@/views/system/user/User.vue'
2727
import Workspace from '@/views/system/workspace/index.vue'
2828
import Page401 from '@/views/error/index.vue'
29+
import ChatPreview from '@/views/chat/preview.vue'
30+
2931
import { i18n } from '@/i18n'
3032
import { watchRouter } from './watch'
3133

@@ -245,6 +247,11 @@ export const routes = [
245247
name: 'assistantTest',
246248
component: assistantTest,
247249
},
250+
{
251+
path: '/chatPreview',
252+
name: 'chatPreview',
253+
component: ChatPreview,
254+
},
248255
{
249256
path: '/admin-login',
250257
name: 'admin-login',

frontend/src/views/chat/index.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1014,7 +1014,7 @@ function stop(func?: (...p: any[]) => void, ...param: any[]) {
10141014
}
10151015
}
10161016
const showFloatPopover = () => {
1017-
if (!isCompletePage.value && !floatPopoverVisible.value) {
1017+
if ((!isCompletePage.value || isPhone.value) && !floatPopoverVisible.value) {
10181018
floatPopoverVisible.value = true
10191019
}
10201020
}
@@ -1324,6 +1324,7 @@ onMounted(() => {
13241324
max-width: 800px;
13251325
display: flex;
13261326
gap: 16px;
1327+
padding: 0 16px;
13271328
align-items: center;
13281329
flex-direction: column;
13291330
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<template>
2+
<div v-loading="divLoading" class="sqlbot-embedded-assistant-page">
3+
<chat-component
4+
:welcome="customSet.welcome"
5+
:welcome-desc="customSet.welcome_desc"
6+
:logo-assistant="logo"
7+
:page-embedded="true"
8+
:app-name="customSet.name"
9+
/>
10+
</div>
11+
</template>
12+
<script setup lang="ts">
13+
import ChatComponent from '@/views/chat/index.vue'
14+
import { nextTick, onMounted, reactive, ref } from 'vue'
15+
import { useI18n } from 'vue-i18n'
16+
17+
const { t } = useI18n()
18+
//const chatRef = ref()
19+
20+
const customSet = reactive({
21+
name: '',
22+
welcome: t('embedded.i_am_sqlbot'),
23+
welcome_desc: t('embedded.data_analysis_now'),
24+
theme: '#1CBA90',
25+
header_font_color: '#1F2329',
26+
}) as { [key: string]: any }
27+
const logo = ref()
28+
29+
const divLoading = ref(true)
30+
31+
onMounted(() => {
32+
nextTick(() => {
33+
setTimeout(() => {
34+
divLoading.value = false
35+
}, 1500)
36+
})
37+
})
38+
</script>
39+
40+
<style lang="less" scoped>
41+
.sqlbot--embedded-page {
42+
width: 100%;
43+
height: 100vh;
44+
position: relative;
45+
background: #fff;
46+
}
47+
.sqlbot-embedded-assistant-page {
48+
width: 100%;
49+
height: 100%;
50+
position: absolute;
51+
top: 0;
52+
left: 0;
53+
background: #f7f8fa;
54+
box-sizing: border-box;
55+
overflow: auto;
56+
padding-bottom: 48px;
57+
}
58+
</style>

0 commit comments

Comments
 (0)