chore: lint fix

This commit is contained in:
CaIon
2024-03-23 21:24:39 +08:00
parent 15e7307320
commit 962dc984f4
55 changed files with 5263 additions and 3589 deletions

View File

@@ -1,29 +1,58 @@
import React, { useEffect, useState } from 'react';
import { API, copy, showError, showSuccess, timestamp2string } from '../helpers';
import {
API,
copy,
showError,
showSuccess,
timestamp2string,
} from '../helpers';
import { ITEMS_PER_PAGE } from '../constants';
import { renderQuota } from '../helpers/render';
import { Button, Form, Modal, Popconfirm, Popover, Table, Tag } from '@douyinfe/semi-ui';
import {
Button,
Form,
Modal,
Popconfirm,
Popover,
Table,
Tag,
} from '@douyinfe/semi-ui';
import EditRedemption from '../pages/Redemption/EditRedemption';
function renderTimestamp(timestamp) {
return (
<>
{timestamp2string(timestamp)}
</>
);
return <>{timestamp2string(timestamp)}</>;
}
function renderStatus(status) {
switch (status) {
case 1:
return <Tag color="green" size="large">未使用</Tag>;
return (
<Tag color='green' size='large'>
未使用
</Tag>
);
case 2:
return <Tag color="red" size="large"> 已禁用 </Tag>;
return (
<Tag color='red' size='large'>
{' '}
已禁用{' '}
</Tag>
);
case 3:
return <Tag color="grey" size="large"> 已使用 </Tag>;
return (
<Tag color='grey' size='large'>
{' '}
已使用{' '}
</Tag>
);
default:
return <Tag color="black" size="large"> 未知状态 </Tag>;
return (
<Tag color='black' size='large'>
{' '}
未知状态{' '}
</Tag>
);
}
}
@@ -31,121 +60,115 @@ const RedemptionsTable = () => {
const columns = [
{
title: 'ID',
dataIndex: 'id'
dataIndex: 'id',
},
{
title: '名称',
dataIndex: 'name'
dataIndex: 'name',
},
{
title: '状态',
dataIndex: 'status',
key: 'status',
render: (text, record, index) => {
return (
<div>
{renderStatus(text)}
</div>
);
}
return <div>{renderStatus(text)}</div>;
},
},
{
title: '额度',
dataIndex: 'quota',
render: (text, record, index) => {
return (
<div>
{renderQuota(parseInt(text))}
</div>
);
}
return <div>{renderQuota(parseInt(text))}</div>;
},
},
{
title: '创建时间',
dataIndex: 'created_time',
render: (text, record, index) => {
return (
<div>
{renderTimestamp(text)}
</div>
);
}
return <div>{renderTimestamp(text)}</div>;
},
},
{
title: '兑换人ID',
dataIndex: 'used_user_id',
render: (text, record, index) => {
return (
<div>
{text === 0 ? '无' : text}
</div>
);
}
return <div>{text === 0 ? '无' : text}</div>;
},
},
{
title: '',
dataIndex: 'operate',
render: (text, record, index) => (
<div>
<Popover
content={
record.key
}
style={{ padding: 20 }}
position="top"
>
<Button theme="light" type="tertiary" style={{ marginRight: 1 }}>查看</Button>
<Popover content={record.key} style={{ padding: 20 }} position='top'>
<Button theme='light' type='tertiary' style={{ marginRight: 1 }}>
查看
</Button>
</Popover>
<Button theme="light" type="secondary" style={{ marginRight: 1 }}
onClick={async (text) => {
await copyText(record.key);
}}
>复制</Button>
<Button
theme='light'
type='secondary'
style={{ marginRight: 1 }}
onClick={async (text) => {
await copyText(record.key);
}}
>
复制
</Button>
<Popconfirm
title="确定是否要删除此兑换码?"
content="此修改将不可逆"
title='确定是否要删除此兑换码?'
content='此修改将不可逆'
okType={'danger'}
position={'left'}
onConfirm={() => {
manageRedemption(record.id, 'delete', record).then(
() => {
removeRecord(record.key);
}
);
manageRedemption(record.id, 'delete', record).then(() => {
removeRecord(record.key);
});
}}
>
<Button theme="light" type="danger" style={{ marginRight: 1 }}>删除</Button>
<Button theme='light' type='danger' style={{ marginRight: 1 }}>
删除
</Button>
</Popconfirm>
{
record.status === 1 ?
<Button theme="light" type="warning" style={{ marginRight: 1 }} onClick={
async () => {
manageRedemption(
record.id,
'disable',
record
);
}
}>禁用</Button> :
<Button theme="light" type="secondary" style={{ marginRight: 1 }} onClick={
async () => {
manageRedemption(
record.id,
'enable',
record
);
}
} disabled={record.status === 3}>启用</Button>
}
<Button theme="light" type="tertiary" style={{ marginRight: 1 }} onClick={
() => {
{record.status === 1 ? (
<Button
theme='light'
type='warning'
style={{ marginRight: 1 }}
onClick={async () => {
manageRedemption(record.id, 'disable', record);
}}
>
禁用
</Button>
) : (
<Button
theme='light'
type='secondary'
style={{ marginRight: 1 }}
onClick={async () => {
manageRedemption(record.id, 'enable', record);
}}
disabled={record.status === 3}
>
启用
</Button>
)}
<Button
theme='light'
type='tertiary'
style={{ marginRight: 1 }}
onClick={() => {
setEditingRedemption(record);
setShowEdit(true);
}
} disabled={record.status !== 1}>编辑</Button>
}}
disabled={record.status !== 1}
>
编辑
</Button>
</div>
)
}
),
},
];
const [redemptions, setRedemptions] = useState([]);
@@ -156,7 +179,7 @@ const RedemptionsTable = () => {
const [tokenCount, setTokenCount] = useState(ITEMS_PER_PAGE);
const [selectedKeys, setSelectedKeys] = useState([]);
const [editingRedemption, setEditingRedemption] = useState({
id: undefined
id: undefined,
});
const [showEdit, setShowEdit] = useState(false);
@@ -178,7 +201,7 @@ const RedemptionsTable = () => {
// }
// data.key = '' + data.id
setRedemptions(redeptions);
if (redeptions.length >= (activePage) * ITEMS_PER_PAGE) {
if (redeptions.length >= activePage * ITEMS_PER_PAGE) {
setTokenCount(redeptions.length + 1);
} else {
setTokenCount(redeptions.length);
@@ -202,10 +225,10 @@ const RedemptionsTable = () => {
setLoading(false);
};
const removeRecord = key => {
const removeRecord = (key) => {
let newDataSource = [...redemptions];
if (key != null) {
let idx = newDataSource.findIndex(data => data.key === key);
let idx = newDataSource.findIndex((data) => data.key === key);
if (idx > -1) {
newDataSource.splice(idx, 1);
@@ -268,7 +291,6 @@ const RedemptionsTable = () => {
let newRedemptions = [...redemptions];
// let realIdx = (activePage - 1) * ITEMS_PER_PAGE + idx;
if (action === 'delete') {
} else {
record.status = redemption.status;
}
@@ -286,7 +308,9 @@ const RedemptionsTable = () => {
return;
}
setSearching(true);
const res = await API.get(`/api/redemption/search?keyword=${searchKeyword}`);
const res = await API.get(
`/api/redemption/search?keyword=${searchKeyword}`,
);
const { success, message, data } = res.data;
if (success) {
setRedemptions(data);
@@ -315,32 +339,32 @@ const RedemptionsTable = () => {
setLoading(false);
};
const handlePageChange = page => {
const handlePageChange = (page) => {
setActivePage(page);
if (page === Math.ceil(redemptions.length / ITEMS_PER_PAGE) + 1) {
// In this case we have to load more data and then append them.
loadRedemptions(page - 1).then(r => {
});
loadRedemptions(page - 1).then((r) => {});
}
};
let pageData = redemptions.slice((activePage - 1) * ITEMS_PER_PAGE, activePage * ITEMS_PER_PAGE);
let pageData = redemptions.slice(
(activePage - 1) * ITEMS_PER_PAGE,
activePage * ITEMS_PER_PAGE,
);
const rowSelection = {
onSelect: (record, selected) => {
},
onSelectAll: (selected, selectedRows) => {
},
onSelect: (record, selected) => {},
onSelectAll: (selected, selectedRows) => {},
onChange: (selectedRowKeys, selectedRows) => {
setSelectedKeys(selectedRows);
}
},
};
const handleRow = (record, index) => {
if (record.status !== 1) {
return {
style: {
background: 'var(--semi-color-disabled-border)'
}
background: 'var(--semi-color-disabled-border)',
},
};
} else {
return {};
@@ -349,45 +373,64 @@ const RedemptionsTable = () => {
return (
<>
<EditRedemption refresh={refresh} editingRedemption={editingRedemption} visiable={showEdit}
handleClose={closeEdit}></EditRedemption>
<EditRedemption
refresh={refresh}
editingRedemption={editingRedemption}
visiable={showEdit}
handleClose={closeEdit}
></EditRedemption>
<Form onSubmit={searchRedemptions}>
<Form.Input
label="搜索关键字"
field="keyword"
icon="search"
iconPosition="left"
placeholder="关键字(id或者名称)"
label='搜索关键字'
field='keyword'
icon='search'
iconPosition='left'
placeholder='关键字(id或者名称)'
value={searchKeyword}
loading={searching}
onChange={handleKeywordChange}
/>
</Form>
<Table style={{ marginTop: 20 }} columns={columns} dataSource={pageData} pagination={{
currentPage: activePage,
pageSize: ITEMS_PER_PAGE,
total: tokenCount,
// showSizeChanger: true,
// pageSizeOptions: [10, 20, 50, 100],
formatPageText: (page) => `${page.currentStart} - ${page.currentEnd} 条,共 ${redemptions.length}`,
// onPageSizeChange: (size) => {
// setPageSize(size);
// setActivePage(1);
// },
onPageChange: handlePageChange
}} loading={loading} rowSelection={rowSelection} onRow={handleRow}>
</Table>
<Button theme="light" type="primary" style={{ marginRight: 8 }} onClick={
() => {
<Table
style={{ marginTop: 20 }}
columns={columns}
dataSource={pageData}
pagination={{
currentPage: activePage,
pageSize: ITEMS_PER_PAGE,
total: tokenCount,
// showSizeChanger: true,
// pageSizeOptions: [10, 20, 50, 100],
formatPageText: (page) =>
`${page.currentStart} - ${page.currentEnd} 条,共 ${redemptions.length}`,
// onPageSizeChange: (size) => {
// setPageSize(size);
// setActivePage(1);
// },
onPageChange: handlePageChange,
}}
loading={loading}
rowSelection={rowSelection}
onRow={handleRow}
></Table>
<Button
theme='light'
type='primary'
style={{ marginRight: 8 }}
onClick={() => {
setEditingRedemption({
id: undefined
id: undefined,
});
setShowEdit(true);
}
}>添加兑换码</Button>
<Button label="复制所选兑换码" type="warning" onClick={
async () => {
}}
>
添加兑换码
</Button>
<Button
label='复制所选兑换码'
type='warning'
onClick={async () => {
if (selectedKeys.length === 0) {
showError('请至少选择一个兑换码!');
return;
@@ -397,8 +440,10 @@ const RedemptionsTable = () => {
keys += selectedKeys[i].name + ' ' + selectedKeys[i].key + '\n';
}
await copyText(keys);
}
}>复制所选兑换码到剪贴板</Button>
}}
>
复制所选兑换码到剪贴板
</Button>
</>
);
};