From c33329797021add29f9a6eed943289d716601c57 Mon Sep 17 00:00:00 2001 From: xjs Date: Tue, 15 Apr 2025 15:42:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8A=A5=E5=91=8A=E8=A7=A3=E8=AF=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/common.ts | 2 +- .../MainPage/MainArea/Antechamber/index.tsx | 55 +++++++++++++------ .../MainPage/MainArea/Room/index.module.less | 3 +- src/pages/MainPage/MainArea/index.tsx | 22 +++++++- 4 files changed, 61 insertions(+), 21 deletions(-) diff --git a/src/config/common.ts b/src/config/common.ts index 02af100..f7d58f6 100644 --- a/src/config/common.ts +++ b/src/config/common.ts @@ -105,7 +105,7 @@ export const AI_MODE_MAP: Partial> = { export const ARK_V3_MODEL_ID: Partial> = { [AI_MODEL.DOUBAO_LITE_4K]: 'ep-20241217194337-gwpdx', [AI_MODEL.DOUBAO_PRO_4K]: 'ep-20241206114557-8584r', - [AI_MODEL.DOUBAO_PRO_32K]: 'ep-20250329161833-qfc6l', // 使用六维志愿 + [AI_MODEL.DOUBAO_PRO_32K]: 'ep-20250415135353-vdmbr', // 使用六维志愿 [AI_MODEL.DOUBAO_PRO_128K]: 'doubao-1-5-lite-32k-250115', [AI_MODEL.VISION]: 'doubao-1-5-lite-32k-250115', // ... 可根据所开通的模型进行扩充 diff --git a/src/pages/MainPage/MainArea/Antechamber/index.tsx b/src/pages/MainPage/MainArea/Antechamber/index.tsx index a5b92ae..74461e8 100644 --- a/src/pages/MainPage/MainArea/Antechamber/index.tsx +++ b/src/pages/MainPage/MainArea/Antechamber/index.tsx @@ -2,7 +2,7 @@ * Copyright 2025 Beijing Volcano Engine Technology Co., Ltd. All Rights Reserved. * SPDX-license-identifier: BSD-3-Clause */ -import { useEffect, useMemo, useState } from 'react'; +import { useEffect, useMemo, useState, useContext } from 'react'; import { useDispatch } from 'react-redux'; import { useSearchParams } from 'react-router-dom'; @@ -12,8 +12,9 @@ import MyInput from '@/pages/MainPage/MainArea/Antechamber/MyInput'; import { useJoin } from '@/lib/useCommon'; import style from './index.module.less'; -import { updateAIConfig } from '@/store/slices/room'; -import { requestPostMethod } from '@/app/base'; +import { updateAIConfig,setInitMsg } from '@/store/slices/room'; +import { requestGetMethod, requestPostMethod } from '@/app/base'; +import { ReportContext } from '../index'; function getRandomLetters(num:number) { const letters = 'abcdefghijklmnopqrstuvwxyz'; @@ -31,8 +32,6 @@ function getRandomLetters(num:number) { return result; } - - function Antechamber() { const dispatch = useDispatch() const [joining, dispatchJoin] = useJoin(); @@ -43,6 +42,39 @@ function Antechamber() { const pre = useMemo(() => getRandomLetters(5), []); const roomId = `${pre}${userId}`; + const reportId = searchParams.get('reportId') || ''; + const reportType = searchParams.get('reportType') || ''; + const { hasHandledReport, setHasHandledReport } = useContext(ReportContext); + const token = searchParams.get('token') || ''; + + const handleJoinRoom = async() => { + if (!isDisable && !joining) { + await dispatchJoin( + { + username, + roomId, + publishAudio: true, + }, + false + ); + } + }; + + const getQuestion = async() => { + const queryData = await requestGetMethod(`https://api.v3.ycymedu.com/api/busScale/GetBusAIReportKeyWord?Type=${reportType}&Id=${reportId}`,true,{authorization:`Bearer ${token}`})() + const res = await queryData?.json(); + if(res.code === 200){ + await handleJoinRoom() + dispatch(setInitMsg(res.result)) + } + } + + useEffect(() => { + if(reportId && !isDisable && !joining && !hasHandledReport){ + getQuestion() + setHasHandledReport(true) + } + },[reportId, isDisable, joining, hasHandledReport, setHasHandledReport]) const getToken = async () => { const queryData = await requestPostMethod(`/api/token`)({roomId,userId:username}) @@ -59,18 +91,7 @@ function Antechamber() { },[]) - const handleJoinRoom = async() => { - if (!isDisable &&!joining) { - await dispatchJoin( - { - username, - roomId, - publishAudio: true, - }, - false - ); - } - }; + return (
diff --git a/src/pages/MainPage/MainArea/Room/index.module.less b/src/pages/MainPage/MainArea/Room/index.module.less index 28085bb..af0b198 100644 --- a/src/pages/MainPage/MainArea/Room/index.module.less +++ b/src/pages/MainPage/MainArea/Room/index.module.less @@ -141,8 +141,7 @@ gap: 16px; background-color: #fff; padding: 8px 15px; - padding-bottom:constant(safe-area-inset-bottom); - padding-bottom: env(safe-area-inset-bottom); + padding-bottom: calc(var(safe-area-inset-bottom) + 15); .talkWrapper { diff --git a/src/pages/MainPage/MainArea/index.tsx b/src/pages/MainPage/MainArea/index.tsx index 98015da..51f9041 100644 --- a/src/pages/MainPage/MainArea/index.tsx +++ b/src/pages/MainPage/MainArea/index.tsx @@ -3,14 +3,34 @@ * SPDX-license-identifier: BSD-3-Clause */ +import { createContext, useState, useMemo } from 'react'; import { useSelector } from 'react-redux'; import Antechamber from './Antechamber'; import Room from './Room'; +export const ReportContext = createContext<{ + hasHandledReport: boolean; + setHasHandledReport: (value: boolean) => void; +}>({ + hasHandledReport: false, + setHasHandledReport: () => {}, +}); + function MainArea() { const room = useSelector((state: any) => state.room); const isJoined = room.isJoined; - return isJoined ? : ; + const [hasHandledReport, setHasHandledReport] = useState(false); + + const contextValue = useMemo(() => ({ + hasHandledReport, + setHasHandledReport + }), [hasHandledReport]); + + return ( + + {isJoined ? : } + + ); } export default MainArea;