From b9bfd6535e15d700f469c25008dfb323e28dbfaa Mon Sep 17 00:00:00 2001 From: zhangxiao <898441624@qq.com> Date: 星期二, 27 八月 2024 14:23:25 +0800 Subject: [PATCH] fix: 修改bug --- src/views/sessionManager/index.vue | 191 +++++++++++++++++++++++++++++++---------------- 1 files changed, 125 insertions(+), 66 deletions(-) diff --git a/src/views/sessionManager/index.vue b/src/views/sessionManager/index.vue index a46713c..e0adb16 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,81 +128,82 @@ backgroundColor: theme === 'light' ? '#ffffff' : '#000000', }" - style="border: none;" - v-for="(breakContent, breakIndex) in breakLine(sessionDetail.content)" + style="border: none" + v-for="(breakContent, breakIndex) in breakLine( + sessionDetail.content + )" > <div :class="{ chatItemAnswer: theme === 'light' }" :style="{ - backgroundColor: - theme === 'light' ? '#ffffff' : '#000000', - }" - style="border: none;" - v-if="isExistTip(breakContent)"> + 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;" + backgroundColor: + theme === 'light' ? '#ffffff' : '#000000', + }" + style="border: none" v-for="(item, tipIndex) in tipMatch(breakContent)" > - <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"> - {{ + <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> + <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> + <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> @@ -185,15 +215,18 @@ <a-textarea readonly auto-size - v-model="sessionDetail.content" + :default-value="chartText(sessionDetail.content)" :class="{ chatItemAnswer: theme === 'light' }" :style="{ - backgroundColor: - theme === 'light' ? '#ffffff' : '#000000', - }" + backgroundColor: + theme === 'light' ? '#ffffff' : '#000000', + }" style="border: none" > </a-textarea> + <!-- <div v-html="chartText(sessionDetail.content)"> + + </div> --> </a-card> </template> <!-- <div>{{ sessionDetail.role === 'assistant' }}</div> --> @@ -237,6 +270,7 @@ > <icon-refresh /> 閲嶆柊鐢熸垚 </span> + <!-- <span class="action"><icon-to-bottom />涓嬭浇 </span> --> </template> </a-comment> <a-comment v-else-if="sessionDetail.role === 'last'"> @@ -502,7 +536,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"; + import { is } from 'immutable'; // const url = ref('../../assets/session/PDF.png'); @@ -589,17 +623,29 @@ const breakLine = (message: string): string[] => { //鎸塡n鍒嗗壊瀛楃涓� let arr = message.split('\n'); - return arr - } + 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; - let matches=msg.match(/##([0-9]+)\$\$/g) + 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 }); + indexs.push({ + index: i, + item: item, + preIndex: preTip, + len: matches.length, + }); preTip = i; }); return indexs; @@ -713,6 +759,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) { -- Gitblit v1.8.0