feat: able to hide test model selector and balance col
Some checks failed
CI / Unit tests (push) Has been cancelled
CI / commit_lint (push) Has been cancelled

This commit is contained in:
JustSong 2024-10-27 18:31:43 +08:00
parent f75a17f8eb
commit 7e51b04221
2 changed files with 24 additions and 8 deletions

View File

@ -59,6 +59,12 @@ function renderBalance(type, balance) {
} }
} }
function isShowDetail() {
return localStorage.getItem("show_detail") === "true";
}
const promptID = "detail"
const ChannelsTable = () => { const ChannelsTable = () => {
const [channels, setChannels] = useState([]); const [channels, setChannels] = useState([]);
const [loading, setLoading] = useState(true); const [loading, setLoading] = useState(true);
@ -66,7 +72,8 @@ const ChannelsTable = () => {
const [searchKeyword, setSearchKeyword] = useState(''); const [searchKeyword, setSearchKeyword] = useState('');
const [searching, setSearching] = useState(false); const [searching, setSearching] = useState(false);
const [updatingBalance, setUpdatingBalance] = useState(false); const [updatingBalance, setUpdatingBalance] = useState(false);
const [showPrompt, setShowPrompt] = useState(shouldShowPrompt("channel-test")); const [showPrompt, setShowPrompt] = useState(shouldShowPrompt(promptID));
const [showDetail, setShowDetail] = useState(isShowDetail());
const loadChannels = async (startIdx) => { const loadChannels = async (startIdx) => {
const res = await API.get(`/api/channel/?p=${startIdx}`); const res = await API.get(`/api/channel/?p=${startIdx}`);
@ -120,6 +127,11 @@ const ChannelsTable = () => {
await loadChannels(activePage - 1); await loadChannels(activePage - 1);
}; };
const toggleShowDetail = () => {
setShowDetail(!showDetail);
localStorage.setItem("show_detail", (!showDetail).toString());
}
useEffect(() => { useEffect(() => {
loadChannels(0) loadChannels(0)
.then() .then()
@ -364,11 +376,13 @@ const ChannelsTable = () => {
showPrompt && ( showPrompt && (
<Message onDismiss={() => { <Message onDismiss={() => {
setShowPrompt(false); setShowPrompt(false);
setPromptShown("channel-test"); setPromptShown(promptID);
}}> }}>
OpenAI 渠道已经不再支持通过 key 获取余额因此余额显示为 0对于支持的渠道类型请点击余额进行刷新 OpenAI 渠道已经不再支持通过 key 获取余额因此余额显示为 0对于支持的渠道类型请点击余额进行刷新
<br/> <br/>
渠道测试仅支持 chat 模型优先使用 gpt-3.5-turbo如果该模型不可用则使用你所配置的模型列表中的第一个模型 渠道测试仅支持 chat 模型优先使用 gpt-3.5-turbo如果该模型不可用则使用你所配置的模型列表中的第一个模型
<br/>
点击下方详情按钮可以显示余额以及设置额外的测试模型
</Message> </Message>
) )
} }
@ -428,6 +442,7 @@ const ChannelsTable = () => {
onClick={() => { onClick={() => {
sortChannel('balance'); sortChannel('balance');
}} }}
hidden={!showDetail}
> >
余额 余额
</Table.HeaderCell> </Table.HeaderCell>
@ -439,7 +454,7 @@ const ChannelsTable = () => {
> >
优先级 优先级
</Table.HeaderCell> </Table.HeaderCell>
<Table.HeaderCell>测试模型</Table.HeaderCell> <Table.HeaderCell hidden={!showDetail}>测试模型</Table.HeaderCell>
<Table.HeaderCell>操作</Table.HeaderCell> <Table.HeaderCell>操作</Table.HeaderCell>
</Table.Row> </Table.Row>
</Table.Header> </Table.Header>
@ -467,7 +482,7 @@ const ChannelsTable = () => {
basic basic
/> />
</Table.Cell> </Table.Cell>
<Table.Cell> <Table.Cell hidden={!showDetail}>
<Popup <Popup
trigger={<span onClick={() => { trigger={<span onClick={() => {
updateChannelBalance(channel.id, channel.name, idx); updateChannelBalance(channel.id, channel.name, idx);
@ -494,7 +509,7 @@ const ChannelsTable = () => {
basic basic
/> />
</Table.Cell> </Table.Cell>
<Table.Cell> <Table.Cell hidden={!showDetail}>
<Dropdown <Dropdown
placeholder='请选择测试模型' placeholder='请选择测试模型'
selection selection
@ -573,7 +588,7 @@ const ChannelsTable = () => {
<Table.Footer> <Table.Footer>
<Table.Row> <Table.Row>
<Table.HeaderCell colSpan='9'> <Table.HeaderCell colSpan={showDetail ? "10" : "8"}>
<Button size='small' as={Link} to='/channel/add' loading={loading}> <Button size='small' as={Link} to='/channel/add' loading={loading}>
添加新的渠道 添加新的渠道
</Button> </Button>
@ -611,6 +626,7 @@ const ChannelsTable = () => {
} }
/> />
<Button size='small' onClick={refresh} loading={loading}>刷新</Button> <Button size='small' onClick={refresh} loading={loading}>刷新</Button>
<Button size='small' onClick={toggleShowDetail}>{showDetail ? "隐藏详情" : "详情"}</Button>
</Table.HeaderCell> </Table.HeaderCell>
</Table.Row> </Table.Row>
</Table.Footer> </Table.Footer>

View File

@ -2,7 +2,7 @@ import React from 'react';
import { Header, Segment } from 'semantic-ui-react'; import { Header, Segment } from 'semantic-ui-react';
import ChannelsTable from '../../components/ChannelsTable'; import ChannelsTable from '../../components/ChannelsTable';
const File = () => ( const Channel = () => (
<> <>
<Segment> <Segment>
<Header as='h3'>管理渠道</Header> <Header as='h3'>管理渠道</Header>
@ -11,4 +11,4 @@ const File = () => (
</> </>
); );
export default File; export default Channel;