Merge ed502e0b7f
into fdd7bf41c0
This commit is contained in:
commit
f235e42f8f
@ -8,11 +8,12 @@ import {
|
||||
IconKey,
|
||||
IconGardenCart,
|
||||
IconUser,
|
||||
IconUserScan
|
||||
IconUserScan,
|
||||
IconFileTextAi
|
||||
} from '@tabler/icons-react';
|
||||
|
||||
// constant
|
||||
const icons = { IconDashboard, IconSitemap, IconArticle, IconCoin, IconAdjustments, IconKey, IconGardenCart, IconUser, IconUserScan };
|
||||
const icons = { IconDashboard, IconSitemap, IconArticle, IconCoin, IconAdjustments, IconKey, IconGardenCart, IconUser, IconUserScan,IconFileTextAi };
|
||||
|
||||
// ==============================|| DASHBOARD MENU ITEMS ||============================== //
|
||||
|
||||
@ -29,6 +30,14 @@ const panel = {
|
||||
breadcrumbs: false,
|
||||
isAdmin: false
|
||||
},
|
||||
{
|
||||
id: 'chat',
|
||||
title: '聊天',
|
||||
type: 'item',
|
||||
url: '/panel/chat',
|
||||
icon: icons.IconFileTextAi,
|
||||
breadcrumbs: false
|
||||
},
|
||||
{
|
||||
id: 'channel',
|
||||
title: '渠道',
|
||||
|
@ -9,6 +9,7 @@ const Log = Loadable(lazy(() => import('views/Log')));
|
||||
const Redemption = Loadable(lazy(() => import('views/Redemption')));
|
||||
const Setting = Loadable(lazy(() => import('views/Setting')));
|
||||
const Token = Loadable(lazy(() => import('views/Token')));
|
||||
const Chat = Loadable(lazy(() => import('views/Chat')));
|
||||
const Topup = Loadable(lazy(() => import('views/Topup')));
|
||||
const User = Loadable(lazy(() => import('views/User')));
|
||||
const Profile = Loadable(lazy(() => import('views/Profile')));
|
||||
@ -39,6 +40,10 @@ const MainRoutes = {
|
||||
path: 'log',
|
||||
element: <Log />
|
||||
},
|
||||
{
|
||||
path: 'chat',
|
||||
element: <Chat />
|
||||
},
|
||||
{
|
||||
path: 'redemption',
|
||||
element: <Redemption />
|
||||
|
37
web/berry/src/views/Chat/index.js
Normal file
37
web/berry/src/views/Chat/index.js
Normal file
@ -0,0 +1,37 @@
|
||||
import React, { useEffect, useState } from "react";
|
||||
import { API } from 'utils/api';
|
||||
import { showError, showSuccess } from 'utils/common';
|
||||
|
||||
const Chat = () => {
|
||||
const [value, setValue] = useState([]);
|
||||
const [isLoading, setIsLoading] = useState(true); // 加载状态
|
||||
|
||||
const loadTokens = async () => {
|
||||
setIsLoading(true); // 开始加载
|
||||
const res = await API.get(`/api/token/?p=0`);
|
||||
const { success, message, data } = res.data;
|
||||
setValue(data);
|
||||
setIsLoading(false); // 加载完成
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
loadTokens();
|
||||
}, []);
|
||||
|
||||
if (isLoading) {
|
||||
return <div>Loading...</div>;
|
||||
} else if (value.length) {
|
||||
const siteInfo = JSON.parse(localStorage.getItem("siteInfo"));
|
||||
const chatLink = siteInfo.chat_link + `#/?settings={"key":"sk-${value[0]?.key}","url":"${siteInfo.server_address}"}`;
|
||||
return (
|
||||
<iframe
|
||||
src={chatLink}
|
||||
style={{ width: "100%", height: "85vh", border: "none" }}
|
||||
/>
|
||||
);
|
||||
} else {
|
||||
showError("未找到可用令牌,请先创建令牌");
|
||||
}
|
||||
};
|
||||
|
||||
export default Chat;
|
Loading…
Reference in New Issue
Block a user