wujingjing
2025-04-14 77b15609b62c9bcd80fcdfd65f134a06252920b9
src/layout/component/sidebar/components/ChatRecord.vue
@@ -5,16 +5,16 @@
            <el-button
               @click="newChatRoomClick"
               icon="ele-Plus"
               color="#1c86ff"
               class="flex items-center box-border mb-3 justify-center add_room cursor-pointer w-[124px] h-[32.88px] rounded-s-md text-white opacity-100"
               class="flex items-center box-border mb-3 justify-center add_room cursor-pointer w-[124px] h-[32.88px] rounded-s-md text-white opacity-100 bg-[var(--color-bg-avatar)]"
            >
               新建对话
            </el-button>
            <el-popover placement="right-start" :width="136" trigger="hover">
            <OtherPlatform />
            <!-- <el-popover placement="right-start" :width="136" trigger="hover">
               <template #reference>
                  <div class="nav__chat">
                     <div class="nav__chat-icon">
                        <span class="chat_img ywifont ywicon-shouji !text-[20px] text-[#fff]"></span>
                        <span class="chat_img ywifont ywicon-shoujidiannao !text-[20px] text-[#fff]"></span>
                     </div>
                  </div>
               </template>
@@ -26,25 +26,25 @@
                        <div ref="setPhoneQRCode" class="mt-[8px] mb-[8px]"></div>
                        <p class="text-center text-[#5e6772] m-0 p-0 leading-5">
                           扫码下载 <br />
                           WI 水务智能助手
                           WI水务智能平台
                        </p>
                     </div>
                  </div>
               </template>
            </el-popover>
            </el-popover> -->
         </div>
      </div>
      <div
         class="flex flex-col flex-auto w-[210.98px] rounded-t-lg box-border mb-3 relative opacity-100 shadow-lg shadow-[[#0e0e0f]-500/50"
      >
         <div class="group flex-0 relative w100 h-[34px] bg-[#2b2c30]">
         <div class="group flex-0 relative w100 h-[34px] bg-[var(--color-bg-base-exr)]">
            <el-input clearable v-model="queryParams.title" placeholder="搜索" class="set-input">
               <template #prefix>
                  <el-icon><search /></el-icon>
               </template>
            </el-input>
            <div
               class="absolute hidden top-[100%] w-[84px] z-[1001] left-0 group-hover:block overflow-hidden rounded-md text-sm text-gray-500 bg-[#fff] py-1.5"
               class="absolute hidden top-[100%] w-[84px] z-[1001] left-0 group-hover:block overflow-hidden rounded-md text-gray-500 bg-[#fff] py-1.5"
            >
               <div
                  class="w100 relative hover:bg-[#e6f1ff]"
@@ -64,16 +64,16 @@
         <div class="flex-auto text-[#ccc] flex flex-col items-center mt-6 overflow-y-auto set-scroll" ref="chatRoomRef">
            <div
               :class="{ 'bg-[#41424a]': item.id === activeRoomId }"
               :class="{ 'text-btn-base': item.id === activeRoomId }"
               class="group flex items-center w-full h-10 rounded-md cursor-pointer px-2 py-2 flex-0"
               v-for="(item, index) in queryData"
               :key="index"
               @click="roomClick(item)"
            >
               <div class="ywifont ywicon-xiaoxi1 flex-0 mr-2.5"></div>
               <div class="flex-auto text-ellipsis text-nowrap text-sm group-hover:text-[#0084ff]">{{ item.title }}</div>
               <div class="flex-auto text-ellipsis text-nowrap group-hover:text-btn-base">{{ item.title }}</div>
               <div class="text-gray-100 flex items-center space-x-2 ml-1">
                  <div class="ywifont invisible ywicon-bianji group-hover:visible !text-sm" @click.stop="editChat(item)"></div>
                  <div class="ywifont invisible ywicon-bianji group-hover:visible !" @click.stop="editChat(item)"></div>
                  <el-popconfirm title="确定删除聊天记录?" @confirm.stop="confirmDeleteChatRoom(item)" width="180">
                     <template #reference>
                        <div class="ywifont invisible ywicon-shanchu3 group-hover:visible"></div>
@@ -92,6 +92,7 @@
import moment from 'moment';
import QRCode from 'qrcodejs2-fixes';
import { computed, nextTick, onMounted, ref, watch } from 'vue';
import OtherPlatform from './OtherPlatform.vue';
import type { ChatRoomItem } from './types';
import { DeleteHistoryGroups, setHistoryGroupTitle } from '/@/api/ai/chat';
import { SERVE_URL } from '/@/constants';
@@ -196,22 +197,31 @@
//#endregion
//#region ====================== 扫码手机端下载 ======================
const setPhoneQRCode = ref<HTMLElement | null>(null);
let isInitQrcode = false;
// 初始化生成二维码
const initQrcode = () => {
   if (isInitQrcode) return;
   isInitQrcode = true;
   let currentTime = new Date().getTime();
   const url = `${SERVE_URL}ai_html/views/mobileDownload/index.html?v=${currentTime}`;
   nextTick(() => {
      (<HTMLElement>setPhoneQRCode.value).innerHTML = '';
      new QRCode(setPhoneQRCode.value, {
         text: url,
         width: 126,
         height: 126,
         colorDark: '#000000',
         colorLight: '#ffffff',
      });
      if (setPhoneQRCode.value) {
         (<HTMLElement>setPhoneQRCode.value).innerHTML = '';
         new QRCode(setPhoneQRCode.value, {
            text: url,
            width: 126,
            height: 126,
            colorDark: '#000000',
            colorLight: '#ffffff',
         });
      }
   });
};
//#endregion
const addPluginClick = () => {
   window.open(`${SERVE_URL}ai_html/views/extension/index.html`);
};
onMounted(async () => {
   selectFirstRoom();
   initQrcode();
@@ -256,7 +266,7 @@
   margin-bottom: 10px;
   cursor: pointer;
   &:hover {
      background-color: #41424a;
      background-color: var(--color-bg-base);
   }
   .nav__chat-icon {
      background-position: 8px 8px;