Просмотр исходного кода

令牌界面添加聊天按钮

CaIon 2 лет назад
Родитель
Сommit
b99b24f271
1 измененных файлов с 38 добавлено и 2 удалено
  1. 38 2
      web/src/components/TokensTable.js

+ 38 - 2
web/src/components/TokensTable.js

@@ -4,7 +4,22 @@ import {API, copy, isAdmin, showError, showSuccess, showWarning, timestamp2strin
 
 import {ITEMS_PER_PAGE} from '../constants';
 import {renderQuota, stringToColor} from '../helpers/render';
-import {Avatar, Tag, Table, Button, Popover, Form, Modal, Popconfirm} from "@douyinfe/semi-ui";
+import {
+    Avatar,
+    Tag,
+    Table,
+    Button,
+    Popover,
+    Form,
+    Modal,
+    Popconfirm,
+    SplitButtonGroup,
+    Dropdown
+} from "@douyinfe/semi-ui";
+
+import {
+    IconTreeTriangleDown,
+} from '@douyinfe/semi-icons';
 import EditToken from "../pages/Token/EditToken";
 
 const {Column} = Table;
@@ -44,6 +59,13 @@ function renderStatus(status) {
 }
 
 const TokensTable = () => {
+
+    const link_menu = [
+        {node: 'item', key: 'next', name: 'ChatGPT Next Web', onClick: () => {onOpenLink('next')}},
+        {node: 'item', key: 'ama', name: 'AMA 问天', value: 'ama'},
+        {node: 'item', key: 'opencat', name: 'OpenCat', value: 'opencat'},
+    ];
+
     const columns = [
         {
             title: '名称',
@@ -124,6 +146,19 @@ const TokensTable = () => {
                                 await copyText('sk-' + record.key)
                             }}
                     >复制</Button>
+                    <SplitButtonGroup style={{marginRight: 1}} aria-label="项目操作按钮组">
+                        <Button theme="light" style={{ color: 'rgba(var(--semi-teal-7), 1)' }} onClick={()=>{onOpenLink('next', record.key)}}>聊天</Button>
+                        <Dropdown trigger="click" position="bottomRight" menu={
+                            [
+                                {node: 'item', key: 'next', name: 'ChatGPT Next Web', onClick: () => {onOpenLink('next', record.key)}},
+                                {node: 'item', key: 'ama', name: 'AMA 问天(BotGrem)', onClick: () => {onOpenLink('ama', record.key)}},
+                                {node: 'item', key: 'opencat', name: 'OpenCat', onClick: () => {onOpenLink('opencat', record.key)}},
+                            ]
+                        }
+                        >
+                            <Button style={ { padding: '8px 4px', color: 'rgba(var(--semi-teal-7), 1)' }} type="primary" icon={<IconTreeTriangleDown />}></Button>
+                        </Dropdown>
+                    </SplitButtonGroup>
                     <Popconfirm
                         title="确定是否要删除此令牌?"
                         content="此修改将不可逆"
@@ -301,7 +336,8 @@ const TokensTable = () => {
         if (chatLink) {
             defaultUrl = chatLink + `/#/?settings={"key":"sk-${key}","url":"${serverAddress}"}`;
         } else {
-            defaultUrl = `https://chat.oneapi.pro/#/?settings={"key":"sk-${key}","url":"${serverAddress}"}`;
+            showError('管理员未设置聊天链接')
+            return
         }
         let url;
         switch (type) {