liudong
2024-08-17 7499bd3e9549a1813f8830a216f81b6fff0f8f4a
src/views/sessionManager/components/agentSession.vue
@@ -106,7 +106,7 @@
</template>
<script setup lang="ts">
import { defineProps, ref, watch, defineEmits, onMounted, reactive, computed, nextTick } from "vue";
import { defineProps, ref, watch, defineEmits, onMounted, reactive, computed, nextTick, onBeforeUnmount } from "vue";
import { Message } from '@arco-design/web-vue';
import { useAppStore } from "@/store";
import { getAuthorization } from "@/utils/auth";
@@ -150,9 +150,6 @@
// 初始化页面
const initPage = async () => {
  agentSet();
  agentReset();
  agentCompletion();
  queryAgentSessionDetail(agentObj.id);
};
const createNewAgent = async (session) => {
@@ -175,6 +172,7 @@
  if (res.code == 0) {
    // sessionDetailList.value = res.data.dsl.messages;
    // Message.success('修改成功');
    agentReset();
  }
}
// 调用reset方法
@@ -182,8 +180,9 @@
  const res = await agentResetApi({
    id: agentObj.id,
  });
  if (res.code === 200) {
  if (res.code == 0) {
    // Message.success('修改成功');
    agentCompletion();
  }
}
// 调用completion方法
@@ -207,30 +206,30 @@
    .pipeThrough(new EventSourceParserStream())
    .getReader();
  currIndex.value = 0;
  // while (true) {
  //   const x = await reader?.read();
  //   if (x) {
  //     const { done, value } = x;
  //     console.log(x, 999);
  //     try {
  //       const val = JSON.parse(value?.data || '');
  //       const d = val?.data;
  //       if (typeof d !== 'boolean') {
  //         console.info('data:', d);
  //         streamStr.value = d.content;
  //         startDisplayStr();
  //       }
  //     } catch (e) {
  //       console.warn(e);
  //     }
  //     if (done) {
  //       console.info('done');
  //       displayedText.value = '';
  //       queryAgentSessionDetail(agentObj.id);
  //       break;
  //     }
  //   }
  // }
  while (true) {
    const x = await reader?.read();
    if (x) {
      const { done, value } = x;
      console.log(x, 999);
      try {
        const val = JSON.parse(value?.data || '');
        const d = val?.data;
        if (typeof d !== 'boolean') {
          console.info('data:', d);
          streamStr.value = d.content;
          startDisplayStr();
        }
      } catch (e) {
        console.warn(e);
      }
      if (done) {
        console.info('done');
        displayedText.value = '';
        queryAgentSessionDetail(agentObj.id);
        break;
      }
    }
  }
  chatDis.value = false;
  loading.value = false;
  inputMsg.value = '';
@@ -322,6 +321,7 @@
              console.info('done');
              displayedText.value = '';
              queryAgentSessionDetail(agentObj.id);
              EventBus.emit('queryAppUsageList');
              break;
            }
          }
@@ -376,6 +376,14 @@
  EventBus.on('createAgent', (data) => {
    createNewAgent(data);
  });
  EventBus.on('queryAgentSessionDetail', (data) => {
    Object.assign(agentObj, data);
    queryAgentSessionDetail(data.id);
  });
});
onBeforeUnmount(() => {
  EventBus.off('createAgent');
  EventBus.off('queryAgentSessionDetail');
});
watch(
@@ -543,6 +551,10 @@
    text-overflow: ellipsis; /* 使用省略号来代替被隐藏的文字 */
    white-space: nowrap;     /* 不换行,使内容在一行内显示 */
    max-width: 200px;
    .title{
      color: var(--color-text-1);
      font-size: 12px;
    }
  }
}
</style>