v3.8.1发布,上传前端代码

This commit is contained in:
JEECG
2025-06-25 16:04:02 +08:00
parent 3d414aaec8
commit 0148f45979
120 changed files with 4783 additions and 486 deletions

View File

@ -1,9 +1,9 @@
<template>
<div ref="chatContainerRef" class="chat-container" :style="chatContainerStyle">
<template v-if="dataSource">
<div class="leftArea" :class="[expand ? 'expand' : 'shrink']">
<div v-if="isMultiSession" class="leftArea" :class="[expand ? 'expand' : 'shrink']">
<div class="content">
<slide v-if="uuid" :dataSource="dataSource" @save="handleSave" :prologue="prologue" :appData="appData" @click="handleChatClick"></slide>
<slide :source="source" v-if="uuid" :dataSource="dataSource" @save="handleSave" :prologue="prologue" :appData="appData" @click="handleChatClick"></slide>
</div>
<div class="toggle-btn" @click="handleToggle">
<span class="icon">
@ -30,6 +30,7 @@
@reload-message-title="reloadMessageTitle"
:chatTitle="chatTitle"
:quickCommandData="quickCommandData"
:showAdvertising = "showAdvertising"
></chat>
</div>
</template>
@ -46,6 +47,7 @@
import { JEECG_CHAT_KEY } from '/@/enums/cacheEnum';
import { defHttp } from '/@/utils/http/axios';
import { useRouter } from 'vue-router';
import { useAppInject } from "@/hooks/web/useAppInject";
const router = useRouter();
const userId = useUserStore().getUserInfo?.id;
@ -77,6 +79,8 @@
const prologue = ref<string>('');
//快捷指令
const quickCommandData = ref<any>([]);
//是否显示广告位
const showAdvertising = ref<boolean>(false);
const priming = () => {
dataSource.value = {
@ -142,6 +146,13 @@
);
};
//是否为多会话模式
const isMultiSession = ref<boolean>(true);
//是否为手机
const { getIsMobile } = useAppInject();
//来源
const source = ref<string>('');
/**
* 初始化聊天信息
* @param appId
@ -184,6 +195,13 @@
{ name: 'JEECG有哪些优势', descr: "JEECG有哪些优势" },
{ name: 'JEECG可以做哪些事情', descr: "JEECG可以做哪些事情" },];
}
let query: any = router.currentRoute.value.query;
source.value = query.source;
if(query.source){
showAdvertising.value = query.source === 'chatJs';
}else{
showAdvertising.value = false;
}
});
onUnmounted(() => {
@ -203,7 +221,7 @@
await defHttp
.get(
{
url: '/airag/app/queryById',
url: '/airag/chat/init',
params: { id: appId },
},
{ isTransformResponse: false }
@ -220,6 +238,23 @@
if (res.result && res.result.presetQuestion) {
presetQuestion.value = res.result.presetQuestion;
}
if (res.result && res.result.metadata) {
let metadata = JSON.parse(res.result.metadata);
//判斷是否为手机模式
if(!getIsMobile.value){
//是否为多会话模式
if((metadata.multiSession && metadata.multiSession === '1') || !metadata.multiSession) {
isMultiSession.value = true;
} else {
isMultiSession.value = false;
expand.value = false;
}
}
}
if(getIsMobile.value){
isMultiSession.value = false;
expand.value = false;
}
} else {
appData.value = {};
}
@ -281,7 +316,7 @@
.chat-container {
height: 100%;
width: 100%;
position: relative;
position: absolute;
background: white;
display: flex;
overflow: hidden;
@ -339,7 +374,7 @@
color: rgb(51, 54, 57);
border: 1px solid rgb(239, 239, 245);
background-color: #fff;
box-shadow: 0 2px 4px 0px rgba(0, 0, 0, 0.06);
box-shadow: 0 2px 4px 0px #e7e9ef;
transform: translateX(50%) translateY(-50%);
z-index: 1;
}