From e426ee93a2553550766e25958dcb70a6f7339b9c Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期二, 27 八月 2024 17:13:05 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/web/flow_web
---
src/views/sessionManager/index.vue | 244 ++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 201 insertions(+), 43 deletions(-)
diff --git a/src/views/sessionManager/index.vue b/src/views/sessionManager/index.vue
index d140f21..63cbc3f 100644
--- a/src/views/sessionManager/index.vue
+++ b/src/views/sessionManager/index.vue
@@ -78,9 +78,38 @@
/>
</template>
<template #content>
- <div :class="{ chartUserText: theme === 'light' }"
- >{{ sessionDetail.content }}
+ <div :class="{ chartUserText: theme === 'light' }">
+ {{ sessionDetail.content }}
+ <!-- <a-input
+ :style="{ width: '100%' }"
+ v-model="sessionDetail.content"
+ v-if="isEdit"
+ />
+
+ <div v-else>
+ {{ sessionDetail.content }}
+ </div> -->
</div>
+ <!-- <div v-if="!isEdit">
+ <span
+ class="action"
+ v-if="index != 0"
+ @click="copy(sessionDetail.content)"
+ >
+ <icon-copy /> 澶嶅埗
+ </span>
+ <span class="action" @click="edit()">
+ <icon-pen /> 缂栬緫
+ </span>
+ </div>
+ <a-space v-else>
+ <a-button type="outline" size="mini" @click="cancelEdit(1)"
+ >鍙栨秷</a-button
+ >
+ <a-button type="primary" size="mini" @click="cancelEdit(2)"
+ >纭畾</a-button
+ >
+ </a-space> -->
</template>
</a-comment>
<a-comment v-else-if="sessionDetail.role === 'assistant'">
@@ -99,46 +128,94 @@
backgroundColor:
theme === 'light' ? '#ffffff' : '#000000',
}"
- style="border: none; display: inline"
- v-for="(item, tipIndex) in tipMatch(sessionDetail)"
+ style="border: none"
+ v-for="(breakContent, breakIndex) in breakLine(
+ sessionDetail.content
+ )"
>
- <span v-if="tipIndex == 0">
- {{ sessionDetail.content.substring(0, item.index) }}
- <a-tooltip
- background-color="#3491FA"
- :content="
- getTipContent(messagenList.reference, index)
- "
+ <div
+ :class="{ chatItemAnswer: theme === 'light' }"
+ :style="{
+ backgroundColor:
+ theme === 'light' ? '#ffffff' : '#000000',
+ }"
+ style="border: none"
+ v-if="isExistTip(breakContent)"
+ >
+ <div
+ :class="{ chatItemAnswer: theme === 'light' }"
+ :style="{
+ backgroundColor:
+ theme === 'light' ? '#ffffff' : '#000000',
+ }"
+ style="border: none"
+ v-for="(item, tipIndex) in tipMatch(breakContent)"
>
- <img
- style="width: 20px; height: 20px"
- :src="tipImage"
- />
- </a-tooltip>
- </span>
- <span v-else>
- {{
- sessionDetail.content.substring(
- item.preIndex + item.item.length,
- item.index
- )
- }}
- <a-tooltip
- background-color="#3491FA"
- :content="
- getTipContent(messagenList.reference, index)
- "
- >
- <img
- style="width: 20px; height: 20px"
- :src="tipImage"
- />
- </a-tooltip>
- </span>
+ <span v-if="tipIndex == 0">
+ {{ breakContent.substring(0, item.index) }}
+ <a-tooltip
+ background-color="#3491FA"
+ :content="
+ getTipContent(messagenList.reference, index)
+ "
+ >
+ <img
+ style="width: 20px; height: 20px"
+ :src="tipImage"
+ />
+ </a-tooltip>
+ </span>
+ <span v-else-if="tipIndex == item.len - 1">
+ {{
+ breakContent.substring(
+ item.preIndex + item.item.length,
+ item.index
+ )
+ }}
+ <a-tooltip
+ background-color="#3491FA"
+ :content="
+ getTipContent(messagenList.reference, index)
+ "
+ >
+ <img
+ style="width: 20px; height: 20px"
+ :src="tipImage"
+ />
+ </a-tooltip>
+ {{ breakContent.substring(item.index + 5) }}
+ </span>
+ <span v-else>
+ {{
+ breakContent.substring(
+ item.preIndex + item.item.length,
+ item.index
+ )
+ }}
+ <a-tooltip
+ background-color="#3491FA"
+ :content="
+ getTipContent(messagenList.reference, index)
+ "
+ >
+ <img
+ style="width: 20px; height: 20px"
+ :src="tipImage"
+ />
+ </a-tooltip>
+ </span>
+ </div>
+ </div>
+ <div v-else>
+ {{ breakContent }}
+ </div>
</div>
</a-card>
<a-card v-else>
- <div
+ <a-textarea
+ readonly
+ auto-size
+ :default-value="chartText(sessionDetail.content)"
:class="{ chatItemAnswer: theme === 'light' }"
:style="{
backgroundColor:
@@ -146,9 +223,20 @@
}"
style="border: none"
>
- {{ sessionDetail.content }}
- </div>
+ </a-textarea>
</a-card>
+ <!-- <div class="prompt">
+ <ul>
+ <li class="prompt-item" @click="copyText('43234')">
+ <span>
+ 344343klsdjkjksdjkjksdjk灏卞紑濮嬪ぇ瀹剁湅鏁版嵁搴撶櫥璁板崱鍙楁墦鍑诲嚡鎾掔櫥璁板崱鍙楁墦鍑诲嚡鎾掔櫥璁板崱鍙楁墦鍑诲嚡鎾掔殑43</span
+ >
+ <span style="margin-left: 20px">
+ <icon-right />
+ </span>
+ </li>
+ </ul>
+ </div> -->
</template>
<!-- <div>{{ sessionDetail.role === 'assistant' }}</div> -->
<template #actions>
@@ -191,6 +279,7 @@
>
<icon-refresh /> 閲嶆柊鐢熸垚
</span>
+ <!-- <span class="action"><icon-to-bottom />涓嬭浇 </span> -->
</template>
</a-comment>
<a-comment v-else-if="sessionDetail.role === 'last'">
@@ -456,6 +545,7 @@
import docx from '@/views/dmx/knowledgeLib/components/docx.vue';
import excel from '@/views/dmx/knowledgeLib/components/excel.vue';
import txtPdf from '@/views/dmx/knowledgeLib/components/txtPdf.vue';
+ import { is } from 'immutable';
// const url = ref('../../assets/session/PDF.png');
@@ -539,13 +629,32 @@
}
};
- const tipMatch = (session: any): any[] => {
+ const breakLine = (message: string): string[] => {
+ //鎸塡n鍒嗗壊瀛楃涓�
+ let arr = message.split('\n');
+ return arr;
+ };
+
+ const chartText = (message: string): string => {
+ //鍘婚櫎鎵�鏈夌殑#鍜�**
+ let arr = message.replace(/\*\*|\#\#\#/g, '');
+ return arr;
+ };
+
+ const tipMatch = (msg: string): any[] => {
//match session.content涓殑##[0-9]$$鐨勭储寮�
+
let indexs: any[] = [];
let preTip = 0;
- session.content.match(/##([0-9]+)\$\$/g)?.map((item) => {
- let i = session.content.indexOf(item);
- indexs.push({ index: i, item: item, preIndex: preTip });
+ let matches = msg.match(/##([0-9]+)\$\$/g);
+ matches?.map((item) => {
+ let i = msg.indexOf(item);
+ indexs.push({
+ index: i,
+ item: item,
+ preIndex: preTip,
+ len: matches.length,
+ });
preTip = i;
});
return indexs;
@@ -659,6 +768,19 @@
await toClipboard(text); //鍙傛暟涓鸿澶嶅埗鐨勬枃鏈�
};
+ const isEdit = ref(false);
+ const edit = () => {
+ isEdit.value = !isEdit.value;
+ };
+ const cancelEdit = (val) => {
+ if (val == 1) {
+ isEdit.value = !isEdit.value;
+ } else {
+ //缂栬緫淇濆瓨
+ isEdit.value = !isEdit.value;
+ }
+ };
+
const DialogList = async () => {
const { code, data } = await getDialogListApi();
if (code === 200) {
@@ -729,6 +851,7 @@
// 鍙戦��
const sentClick = () => {
sendMessage('click');
+ uploaditemList.value = [];
};
// 閲嶆柊鐢熸垚
const reGenerate = () => {
@@ -1089,6 +1212,28 @@
}
}
}
+ .prompt {
+ ul {
+ margin: 0;
+ padding: 0;
+ display: flex;
+ }
+ ul > li {
+ list-style-type: none;
+ }
+ .prompt-item {
+ display: flex;
+ justify-content: space-between;
+ background-color: #fff;
+ cursor: pointer;
+ border-radius: 8px;
+ padding: 10px;
+ border: #e5e5e5;
+ &:hover {
+ background-color: #eee;
+ }
+ }
+ }
.card-btn-1 {
margin: 8px 15px;
@@ -1232,6 +1377,19 @@
color: #333;
margin-top: 4px;
}
+ :deep(.arco-card-body) {
+ padding: 0;
+ border-radius: 10px;
+ }
+ :deep(.arco-textarea) {
+ padding-top: 10px !important;
+ }
+ :deep(.arco-comment-inner-content) {
+ border-radius: 10px;
+ }
+ :deep(.arco-card-bordered) {
+ border-radius: 10px;
+ }
.icon-user-jpg {
border: 1px solid #d9d9d9;
--
Gitblit v1.8.0