From 64920403797a80149ac1ba2cd2426ad5db044bec Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期一, 26 八月 2024 14:58:01 +0800
Subject: [PATCH] fix: 修改settings 备注
---
src/views/sessionManager/components/historySession.vue | 186 ++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 168 insertions(+), 18 deletions(-)
diff --git a/src/views/sessionManager/components/historySession.vue b/src/views/sessionManager/components/historySession.vue
index 63ed439..f74ed54 100644
--- a/src/views/sessionManager/components/historySession.vue
+++ b/src/views/sessionManager/components/historySession.vue
@@ -8,7 +8,7 @@
top: 10px;
left: -40px;
font-size: 30px;
- z-index: 9999;
+ z-index: 99;
cursor: pointer"
@click="emit('changeAgentType','1')"
>
@@ -18,12 +18,15 @@
</a-button>
<a-scrollbar
+ ref="scrollRef"
class="left-list"
style="
- height: calc(100vh - 100px);
- overflow-y: auto;
+ height: calc(100vh - 160px);
+ overflow-y: scroll;
overflow-x: hidden;
"
+ v-if="isReached"
+ @scroll="handleScroll"
>
<div class="historyTitle___F_iam">鍘嗗彶浼氳瘽</div>
@@ -47,22 +50,30 @@
class="item historyCenter-box"
v-for="session in sessionList"
@click="querySessionDetail(session)"
+ @mouseenter="handleMouseEnter(session)"
+ @mouseleave="handleMouseLeave(session)"
>
<div class="text" >
<img
:style="{ width: '16px' }"
alt="dessert"
- :src="session.avatar || imgSrc"
+ :src="session.icon ? httpUrl + session.icon : imgSrc"
/>
{{ session.name }}
</div>
<div class="time"
- >{{
- moment(new Date(session.create_time)).format(
- 'YYYY-MM-DD HH:mm:ss'
- )
- }}
+ >
+ <span v-show="session.showtype == 1" style="font-size: 14px">
+ {{
+ moment(new Date(session.create_time)).format(
+ 'YYYY-MM-DD HH:mm:ss'
+ )
+ }}
+ </span>
</div>
+ <a-button type="text" @click.stop="deleteSession(session)" style="color: red;position: absolute;right: 10px;top: 10px;" v-show="session.showtype == 2">
+ <icon-delete style="font-size: 14px" />
+ </a-button>
</div>
</div>
</a-scrollbar>
@@ -77,7 +88,7 @@
import { useAppStore, useUserStore } from "@/store";
import { computed, nextTick, onMounted, watch, reactive, ref, onBeforeMount, onBeforeUnmount } from "vue";
-import { Message } from "@arco-design/web-vue";
+import { Message, Modal } from "@arco-design/web-vue";
import EventBus from '@/utils/EventBus';
import moment from "moment";
import {
@@ -85,11 +96,15 @@
chatApi,
getDialogListApi,
getSessionDetailsApi,
- sessionListApi
+ deleteSessionApi,
+ sessionListApiPage
} from "@/api/session";
+
import { queryCanvasList } from "@/api/Agent";
const emit = defineEmits(["querySessionDetail","changeAgentType"]);
import logo from "@/assets/images/model.png";
+import { deleteKnow } from "@/api/kbList";
+import { getAgentSessionDetailsApi } from "@/api/agentSession";
const sessionList = ref([]); //浼氳瘽鍒楄〃
const activeSessionId = ref("");
const fieldNames = { value: "id", label: "name" };
@@ -100,7 +115,18 @@
const searchValue = ref("");
const selectValue = ref("");
const sectionList = ref({});
+const scrollRef = ref(null);
+const httpUrl = localStorage.getItem('httpUrl');
const imgSrc = ref(logo);
+let scrollTopVal = ref(0);
+let queryPage = reactive({
+ page: 1,
+ page_size: 50
+})
+let total = ref(0);
+let sessionScrollList = ref([]);
+let isReached = ref(true);
+
const DialogList = async () => {
const { code, data } = await getDialogListApi();
if (code === 200) {
@@ -150,10 +176,22 @@
// 鏌ヨ浼氳瘽鍒楄〃
const querySessionList = async (id) => {
- const { code, data } = await sessionListApi(id);
+ const { code, data } = await sessionListApiPage({
+ dialog_id: id,
+ ...queryPage
+ });
if (code === 200) {
- sessionList.value = data;
-
+ sessionList.value = data.map((item) => {
+ return {
+ ...item,
+ showtype: 1
+ }
+ });
+ isReached.value = false;
+ setTimeout(()=>{
+ isReached.value = true;
+ },100)
+ // total.value = sessionList.value.length;
} else {
@@ -161,22 +199,133 @@
}
};
+//鏍规嵁浼氳瘽id鍒犻櫎浼氳瘽
+const deleteSession = async (session) => {
+ Modal.confirm({
+ title: '鎻愮ず淇℃伅',
+ content: '纭鍒犻櫎鍚�',
+ okText: '纭畾',
+ cancelText: '鍙栨秷',
+ hideTitle: true,
+ onOk: async () => {
+ const { code } = await deleteSessionApi([session.id]);
+ if (code === 200) {
+ Message.success('鍒犻櫎鎴愬姛');
+ querySessionList('');
+ }
+ },
+ onCancel: () => {},
+ });
+};
const querySessionDetail = async (session) => {
console.log(session, 'session');
- emit('changeAgentType','1');
- emit('querySessionDetail',session);
+ // 鏌ヨ鍘嗗彶璁板綍 app_type 1:鏅鸿兘浣� 2:agent
+ if (!session.base) {
+ // 鐢熸垚鏅鸿兘浣撴柊鐨勫璇�
+ emit('changeAgentType','1');
+ emit('querySessionDetail',session);
+ } else if (session.base == 'agent'){
+ // agent瀵硅薄鏁版嵁灏佽
+ // const { code, data } = await getAgentSessionDetailsApi(session.dialog_id);
+ // if (code == 0) {
+ // console.log(data,'浼氳瘽璇︽儏');
+ // // let sessionObj = {
+ // // id: session.app_id,
+ // // dsl: data.dsl,
+ // // title: session.name,
+ // // }
+ // }
+ EventBus.emit("queryAgentSessionDetail",session);
+ emit('changeAgentType','2');
+ }
}
+
+
+const handleMouseEnter = (session) => {
+ session.showtype = 2;
+};
+
+const handleMouseLeave = (session) => {
+ session.showtype = 1;
+};
+
+
+const handleScroll = async (e: any) => {
+ scrollTopVal.value = e.target.scrollTop;
+ let offsetHeight = e.target.offsetHeight;
+ let scrollHeight = e.target.scrollHeight;
+
+ if (scrollTopVal.value + offsetHeight >= scrollHeight-1) {
+ console.log(scrollTopVal.value);
+ // console.log(offsetHeight);
+ // console.log(scrollHeight);
+ //婊氬姩鏉″埌杈惧簳閮�
+ // if (sessionList.value.length < total.value) {
+ // //鏁版嵁涓哄姞杞藉畬锛岀户缁祴鍊�
+ // // queryPage.page++
+ //
+ //
+ //
+ // }
+ queryPage.page++
+ const { code, data } = await sessionListApiPage({
+ dialog_id: '',
+ ...queryPage
+ });
+ if (code === 200) {
+ sessionScrollList.value = data.map((item) => {
+ return {
+ ...item,
+ showtype: 1
+ }
+ });
+ // total.value = sessionList.value.length;
+ sessionList.value = [...sessionList.value,...sessionScrollList.value];
+ isReached.value = false;
+ setTimeout(()=>{
+ isReached.value = true;
+ nextTick(()=>{
+ scrollRef.value.scrollTop(scrollTopVal.value);
+ // console.log(scrollRef.value.$el.scrollTop,'scrollTopVal');
+ // console.log(scrollTopVal.value,'scrollTopVal');
+ })
+ },100)
+
+
+ } else {
+ Message.warning("鏌ヨ澶辫触");
+ }
+
+ }
+}
+
+
+
onBeforeMount(()=>{
- DialogList()
+ // DialogList()
+ querySessionList('');
})
onMounted(() => {
+ console.log(httpUrl,'褰撳墠鍦板潃');
EventBus.on("history", () => {
emit('changeAgentType','3');
- DialogList()
+ // DialogList()
+ queryPage.page = 1;
+ querySessionList('');
});
+ // 娣诲姞婊氬姩浜嬩欢鐩戝惉鍣�
+ scrollRef.value.$el.addEventListener('scroll', handleScroll);
+
+ // 娓呯悊鍑芥暟
+ return () => {
+ scrollRef.value.$el.removeEventListener('scroll', handleScroll);
+ };
+
+
+
})
onBeforeUnmount(() => {
EventBus.off("history");
@@ -218,6 +367,7 @@
width: 100%;
margin-top: 30px;
.historyCenter-box{
+ position: relative;
display: flex;
width: 70%;
margin-left: 15%;
--
Gitblit v1.8.0