diff --git a/web/src/components/LogsTable.js b/web/src/components/LogsTable.js index 2557c4b..072f2ad 100644 --- a/web/src/components/LogsTable.js +++ b/web/src/components/LogsTable.js @@ -1,11 +1,12 @@ import React, { useEffect, useState } from 'react'; import { API, - copy, getTodayStartTimestamp, + copy, + getTodayStartTimestamp, isAdmin, showError, showSuccess, - timestamp2string + timestamp2string, } from '../helpers'; import { @@ -29,7 +30,7 @@ import { stringToColor, } from '../helpers/render'; import Paragraph from '@douyinfe/semi-ui/lib/es/typography/paragraph'; -import {getLogOther} from "../helpers/other.js"; +import { getLogOther } from '../helpers/other.js'; const { Header } = Layout; @@ -144,27 +145,27 @@ function renderUseTime(type) { function renderFirstUseTime(type) { let time = parseFloat(type) / 1000.0; - time = time.toFixed(1) + time = time.toFixed(1); if (time < 3) { return ( - - {' '} - {time} s{' '} - + + {' '} + {time} s{' '} + ); } else if (time < 10) { return ( - - {' '} - {time} s{' '} - + + {' '} + {time} s{' '} + ); } else { return ( - - {' '} - {time} s{' '} - + + {' '} + {time} s{' '} + ); } } @@ -281,22 +282,22 @@ const LogsTable = () => { if (record.is_stream) { let other = getLogOther(record.other); return ( -
- - {renderUseTime(text)} - {renderFirstUseTime(other.frt)} - {renderIsStream(record.is_stream)} - -
+
+ + {renderUseTime(text)} + {renderFirstUseTime(other.frt)} + {renderIsStream(record.is_stream)} + +
); } else { return ( -
- - {renderUseTime(text)} - {renderIsStream(record.is_stream)} - -
+
+ + {renderUseTime(text)} + {renderIsStream(record.is_stream)} + +
); } }, @@ -344,7 +345,7 @@ const LogsTable = () => { if (record.other !== '') { let other = JSON.parse(record.other); if (other === null) { - return <> + return <>; } if (other.admin_info !== undefined) { if ( @@ -414,8 +415,6 @@ const LogsTable = () => { const [activePage, setActivePage] = useState(1); const [logCount, setLogCount] = useState(ITEMS_PER_PAGE); const [pageSize, setPageSize] = useState(ITEMS_PER_PAGE); - const [searchKeyword, setSearchKeyword] = useState(''); - const [searching, setSearching] = useState(false); const [logType, setLogType] = useState(0); const isAdminUser = isAdmin(); let now = new Date(); @@ -451,9 +450,7 @@ const LogsTable = () => { let localEndTimestamp = Date.parse(end_timestamp) / 1000; let url = `/api/log/self/stat?type=${logType}&token_name=${token_name}&model_name=${model_name}&start_timestamp=${localStartTimestamp}&end_timestamp=${localEndTimestamp}`; url = encodeURI(url); - let res = await API.get( - url, - ); + let res = await API.get(url); const { success, message, data } = res.data; if (success) { setStat(data); @@ -467,9 +464,7 @@ const LogsTable = () => { let localEndTimestamp = Date.parse(end_timestamp) / 1000; let url = `/api/log/stat?type=${logType}&username=${username}&token_name=${token_name}&model_name=${model_name}&start_timestamp=${localStartTimestamp}&end_timestamp=${localEndTimestamp}&channel=${channel}`; url = encodeURI(url); - let res = await API.get( - url, - ); + let res = await API.get(url); const { success, message, data } = res.data; if (success) { setStat(data); @@ -521,10 +516,7 @@ const LogsTable = () => { logs[i].timestamp2string = timestamp2string(logs[i].created_at); logs[i].key = '' + logs[i].id; } - // data.key = '' + data.id setLogs(logs); - setLogCount(logs.length + ITEMS_PER_PAGE); - // console.log(logCount); }; const loadLogs = async (startIdx, pageSize, logType = 0) => { @@ -542,37 +534,28 @@ const LogsTable = () => { const res = await API.get(url); const { success, message, data } = res.data; if (success) { - if (startIdx === 0) { - setLogsFormat(data); - } else { - let newLogs = [...logs]; - newLogs.splice(startIdx * pageSize, data.length, ...data); - setLogsFormat(newLogs); - } + const newPageData = data.items; + setActivePage(data.page); + setPageSize(data.page_size); + setLogCount(data.total); + + setLogsFormat(newPageData); } else { showError(message); } setLoading(false); }; - const pageData = logs.slice( - (activePage - 1) * pageSize, - activePage * pageSize, - ); - const handlePageChange = (page) => { setActivePage(page); - if (page === Math.ceil(logs.length / pageSize) + 1) { - // In this case we have to load more data and then append them. - loadLogs(page - 1, pageSize, logType).then((r) => {}); - } + loadLogs(page, pageSize, logType).then((r) => {}); }; const handlePageSizeChange = async (size) => { localStorage.setItem('page-size', size + ''); setPageSize(size); setActivePage(1); - loadLogs(0, size) + loadLogs(activePage, size) .then() .catch((reason) => { showError(reason); @@ -580,27 +563,24 @@ const LogsTable = () => { }; const refresh = async () => { - // setLoading(true); setActivePage(1); handleEyeClick(); - await loadLogs(0, pageSize, logType); + await loadLogs(activePage, pageSize, logType); }; const copyText = async (text) => { if (await copy(text)) { showSuccess('已复制:' + text); } else { - // setSearchKeyword(text); Modal.error({ title: '无法复制到剪贴板,请手动复制', content: text }); } }; useEffect(() => { - // console.log('default effect') const localPageSize = parseInt(localStorage.getItem('page-size')) || ITEMS_PER_PAGE; setPageSize(localPageSize); - loadLogs(0, localPageSize) + loadLogs(activePage, localPageSize) .then() .catch((reason) => { showError(reason); @@ -608,25 +588,6 @@ const LogsTable = () => { handleEyeClick(); }, []); - const searchLogs = async () => { - if (searchKeyword === '') { - // if keyword is blank, load files instead. - await loadLogs(0, pageSize); - setActivePage(1); - return; - } - setSearching(true); - const res = await API.get(`/api/log/self/search?keyword=${searchKeyword}`); - const { success, message, data } = res.data; - if (success) { - setLogs(data); - setActivePage(1); - } else { - showError(message); - } - setSearching(false); - }; - return ( <> @@ -719,15 +680,13 @@ const LogsTable = () => { > 查询 - - - + { pageSizeOpts: [10, 20, 50, 100], showSizeChanger: true, onPageSizeChange: (size) => { - handlePageSizeChange(size).then(); + handlePageSizeChange(size); }, onPageChange: handlePageChange, }}