zhangnuoyan 2 年之前
父节点
当前提交
3973e4cdb5
共有 3 个文件被更改,包括 40 次插入8 次删除
  1. 10 4
      src/components/DialogWrap.vue
  2. 8 2
      src/components/History.vue
  3. 22 2
      src/views/Home.vue

+ 10 - 4
src/components/DialogWrap.vue

@@ -67,7 +67,7 @@
                             <span class="dialog-span">{{ agentInfo.title }}</span>
                         </a-typography-paragraph>
                     </div>
-                    <div class="dialog-footer">
+                    <div class="dialog-footer" v-if="item.capacity">
                         <div
                             v-if="type === 'knowledge'"
                             @click="openCapacity(key)"
@@ -146,6 +146,11 @@
                             {{ item.answer }}
                         </p>
                     </div>
+                    <div class="dialog-footer" v-else>
+                        <p v-if="item.answer">
+                            {{ item.answer }}
+                        </p>
+                    </div>
                     <div class="dialog-other" v-if="item?.other">
                         <p v-if="isSetting">
                             <img src="@/assets/icons/check.png" width="16" />
@@ -207,7 +212,7 @@ export default defineComponent({
     components: {
         DialogFeedback
     },
-    props: ["open", "suggestions", "agentInfo", "userInfo", "isSetting", "readonly", "type"],
+    props: ["open", "suggestions", "agentInfo", "userInfo", "isSetting", "readonly", "type", "list"],
     setup(props, { emit }) {
         const DOCUMENT_RESULT = {
             type: "document",
@@ -252,11 +257,11 @@ export default defineComponent({
             }
         };
         const { helper } = inject("$global");
-        const dialogList = reactive([]);
+        const dialogList = reactive(props.list || []);
         const randomKey = ref(0);
         const showFeedback = ref(false);
         const menuList = reactive([]);
-        let dialogIndex = 0;
+        let dialogIndex = dialogList.length;
         const dialogScroll = ref("");
         const scrollToEnd = async () => {
             await nextTick();
@@ -386,6 +391,7 @@ export default defineComponent({
             helper.$bus.off("stop-writing");
         });
         onMounted(() => {
+            scrollToEnd();
             helper.$bus.on("send-message", (value) => {
                 mockLink(value);
             });

+ 8 - 2
src/components/History.vue

@@ -50,7 +50,7 @@
                 <div
                     v-for="(item, key) in list.filter((v) => v.isTop)"
                     :key="key"
-                    :class="{ 'div-padding': openDeletes }"
+                    :class="{ 'div-padding': openDeletes, active: selectId === item.id }"
                     @click="handleClick(item.id)"
                 >
                     <em
@@ -109,7 +109,7 @@
                 <div
                     v-for="(item, key) in list.filter((v) => !v.isTop)"
                     :key="key"
-                    :class="{ 'div-padding': openDeletes }"
+                    :class="{ 'div-padding': openDeletes, active: selectId === item.id }"
                     @click="handleClick(item.id)"
                 >
                     <em
@@ -230,6 +230,7 @@
 <script>
 import { defineComponent, inject, onMounted, ref } from "vue";
 export default defineComponent({
+    props: ["selectId"],
     setup(props, { emit }) {
         const { helper } = inject("$global");
         const openSearch = ref(false);
@@ -517,6 +518,11 @@ main {
                     top: 30px;
                     left: 0;
                 }
+                &.active {
+                    p {
+                        color: #31c4c9 !important;
+                    }
+                }
                 > div {
                     &:hover {
                         p {

+ 22 - 2
src/views/Home.vue

@@ -7,8 +7,10 @@
                     @set-new="
                         () => {
                             showDialog = false;
+                            selectId = '';
                         }
                     "
+                    :selectId="selectId"
                     @handle-click="selectHistory"
                 />
             </div>
@@ -42,6 +44,7 @@
                                 :isSetting="false"
                                 :readonly="readonly"
                                 @setReadonly="setReadonly"
+                                :list="dialogList"
                             />
                         </section>
                         <footer>
@@ -102,6 +105,8 @@ export default defineComponent({
         const navIndex = ref(-1);
         const readonly = ref(false);
         const showDialog = ref(false);
+        const dialogList = ref([]);
+        const selectId = ref("");
         const userInfo = {
             name: "奇橙",
             avatar: "https://s21.ax1x.com/2024/04/18/pFzyA0O.png"
@@ -119,6 +124,7 @@ export default defineComponent({
             closeOthers.value = !closeOthers.value;
         };
         const selectNav = (index) => {
+            selectId.value = "";
             navIndex.value = index;
             if (index === -1) {
                 swiperNumber.value = 5;
@@ -132,10 +138,22 @@ export default defineComponent({
             readonly.value = status;
         };
         const selectHistory = (id) => {
-            console.log(id);
+            selectId.value = id;
+            helper.$bus.emit("set-loading", true);
+            helper.$bus.emit("stop-writing");
+            showDialog.value = false;
+            dialogList.value = new Array(10).fill({
+                question: "测试问题",
+                answer: "测试答案"
+            });
+            setTimeout(() => {
+                showDialog.value = true;
+                helper.$bus.emit("set-loading", false);
+            }, 20);
         };
         onMounted(() => {
             helper.$bus.on("open-dialog", (value) => {
+                dialogList.value = [];
                 showDialog.value = true;
                 setTimeout(() => {
                     helper.$bus.emit("send-message", value);
@@ -146,6 +164,7 @@ export default defineComponent({
             helper.$bus.off("open-dialog");
         });
         return {
+            selectId,
             navIndex,
             selectNav,
             swiperNumber,
@@ -158,7 +177,8 @@ export default defineComponent({
             selectHistory,
             closeOthers,
             openAll,
-            dialogType
+            dialogType,
+            dialogList
         };
     }
 });