From c93d4b3af5739f786cfdf20b16b28ec60403f709 Mon Sep 17 00:00:00 2001 From: suerprisePlus <15810472099@163.com> Date: 星期二, 25 六月 2024 19:53:54 +0800 Subject: [PATCH] 前端对接 seb实体库,rag基本服务 --- src/components/Chat/chatList.vue | 148 ++++++++++++++++++++++++++++--------------------- 1 files changed, 85 insertions(+), 63 deletions(-) diff --git a/src/components/Chat/chatList.vue b/src/components/Chat/chatList.vue index 22c0501..cd22876 100644 --- a/src/components/Chat/chatList.vue +++ b/src/components/Chat/chatList.vue @@ -2,12 +2,9 @@ <div class="body"> <div :style="pageConfig.width | setWidth"> <div class="web__main" ref="main"> - <div - class="web__main-item" - v-for="(item, index) in list" - :key="loding(index)" - :class="{ 'web__main-item--mine': item.mine }" - > + <div class="web__main-item" v-for="(item, index) in list" :key="loding(index)" + :class="{ 'web__main-item--mine': item.mine }"> + <div class="web__main_content"> <div> <img :src="item.img" /> @@ -18,7 +15,7 @@ <div style="display: flex"> {{ item.name }} - <div style="margin-left: 10px" v-show="item.file"> + <!-- <div style="margin-left: 10px" v-show="item.file"> <el-select @change="(val) => setFileChange(val)" v-model="item.file" @@ -32,7 +29,7 @@ > </el-option> </el-select> - </div> + </div> --> </div> <div> @@ -40,53 +37,39 @@ </div> </cite> </div> - <div v-show="item.markDown == true" class="web__main-text"> - <VueMarkdown - class="web_Main_markDown" - :source="item.text.text" - ></VueMarkdown> + <div class="web__main-text"> + <div v-for="(res, key) in item.list" :key="key"> + <div v-if="res.type === 'text'"> + {{ res.val }} + </div> + <div v-else-if="res.type == 'loader'"> + <span v-html="handleDetail(res.val)" ref="content"></span> + </div> + <div style="margin-bottom:10px" v-else-if="res.type == 'rag'"> + <div v-show="res.acction"> + {{ res.acction }} + </div> + <div> {{ res.question }} </div> + <div style="display: flex;"> + 鏉ユ簮: {{ res.source }} + <div @click.stop="setRagMoreList(res.msg)" class="setRagMore" v-show="res.more"> + ...鏇村 + </div> + </div> + </div> + </div> + </div> - <div v-show="item.markDown == false" class="web__main-text"> - <div class="web__main-arrow"></div> - <span - v-html="handleDetail(item.text.text)" - ref="content" - ></span> - <ul class="web__main-list" v-if="item.text.list"> - <li - @click="handleItemMsg(citem)" - v-for="(citem, cindex) in item.text.list" - :key="cindex" - > - {{ citem.text }} - </li> - </ul> - </div> + </div> </div> </div> </div> </div> - <el-dialog - :visible.sync="show" - width="40%" - append-to-body - :before-close="handleClose" - class="web__dialog" - > + <el-dialog :visible.sync="show" width="40%" append-to-body :before-close="handleClose" class="web__dialog"> <img :src="imgSrc" v-if="imgSrc" style="width: 100%; object-fit: cover" /> - <video - :src="videoSrc" - v-if="videoSrc" - style="width: 100%; object-fit: cover" - controls="controls" - ></video> - <audio - :src="audioSrc" - v-if="audioSrc" - style="width: 100%; object-fit: cover" - controls="controls" - ></audio> + <video :src="videoSrc" v-if="videoSrc" style="width: 100%; object-fit: cover" controls="controls"></video> + <audio :src="audioSrc" v-if="audioSrc" style="width: 100%; object-fit: cover" controls="controls"></audio> </el-dialog> </div> </template> @@ -108,9 +91,9 @@ setWidth(value) { let width = value; if (`${value}`.match(/^\d+$/)) { - width = value-30 + "px"; + width = value - 30 + "px"; } - if(width=="100vh"){ + if (width == "100vh") { return "99vh" } return width; @@ -134,7 +117,8 @@ show: false, imgSrc: "", videoSrc: "", - audioSrc: "" + audioSrc: "", + isDisabled: true, }; }, watch: { @@ -148,6 +132,18 @@ } }, methods: { + setRagMoreList(res) { + if (this.isDisabled) { + this.isDisabled = false; + setTimeout(() => { + bus.$emit("setRagMoreListAll", res); + }, 500); + setTimeout(() => { + this.isDisabled = false; + }, 3000) + } + + }, setFileChange(res) { if (res == "testUrl") return; axios.get(res).then((response) => { @@ -264,6 +260,7 @@ cursor: pointer; display: block; } + .web__msg--img[data-class="iconBox"] { max-width: 24px; min-width: unset; @@ -292,8 +289,8 @@ font-size: 20px; background: #555555; padding: 10px !important; - border-radius:10px !important; - margin-top:10px ; + border-radius: 10px !important; + margin-top: 10px; } @@ -329,11 +326,13 @@ padding-left: 0px; font-style: normal; } + .citeTitle { width: 100%; display: flex; justify-content: space-between; } + .web__main-text { /* max-width: 40%; */ width: 100%; @@ -349,15 +348,18 @@ font-size: 16px; word-break: break-all; } + .web__main_content { - width: calc(100% - 50px); + width: calc(100% - 50px); padding: 10px 0px; display: flex; } + .web__main_Date { flex: 1; padding: 0px 15px; } + .web__main_Date cite { line-height: 24px; font-size: 14px; @@ -369,6 +371,7 @@ display: flex; justify-content: space-between; } + .web__main-arrow { top: 6px; left: -8px; @@ -459,8 +462,19 @@ font-size: 16px; color: #f2f2f2; } + .web__main-text img { max-width: 200px; +} + +.setRagMore { + margin-left: 10px; + +} + +.setRagMore:hover { + color: #409EFF; + } </style> <style> @@ -469,6 +483,7 @@ /* background: rgb(31, 31, 31); */ padding: 20px; } + .loadBox .loaderContantBox { color: white; font-size: 40px; @@ -520,44 +535,51 @@ @keyframes round { 0% { - transform: rotate(0deg); /* 寮�濮嬫棆杞� div 鍏冪礌 */ + transform: rotate(0deg); + /* 寮�濮嬫棆杞� div 鍏冪礌 */ } 100% { - transform: rotate(360deg); /* 缁撴潫鏃嬭浆 div 鍏冪礌 */ + transform: rotate(360deg); + /* 缁撴潫鏃嬭浆 div 鍏冪礌 */ } } </style> -<style > - .web_Main_markDown h1 { +<style> +.web_Main_markDown h1 { line-height: 30px !important; font-size: 20px !important; } -.web_Main_markDown h2 { + +.web_Main_markDown h2 { line-height: 25px !important; font-size: 18px !important; margin-left: 10px; } + .web_Main_markDown h3 { line-height: 25px !important; font-size: 18px !important; margin-left: 10px; } + .web_Main_markDown li { line-height: 20px !important; font-size: 16px !important; margin-left: 20px; } + .web_Main_markDown p { line-height: 20px !important; font-size: 16px !important; margin-left: 20px; } -.web_Main_markDown { - background: #555555; - padding: 10px; - border-radius: 10px; + +.web_Main_markDown { + background: #555555; + padding: 10px; + border-radius: 10px; } </style> \ No newline at end of file -- Gitblit v1.9.3