Remove Generate.tsx
This commit is contained in:
@@ -50,12 +50,19 @@ function ManagePage() {
|
||||
headers.Authorization = `Bearer ${token}`;
|
||||
}
|
||||
|
||||
let url = `/api/companies?page=${page}&limit=${pageSize}`;
|
||||
if (searchTerm) {
|
||||
url += `&search=${encodeURIComponent(searchTerm)}`;
|
||||
}
|
||||
let url = '/api/companies';
|
||||
const params = new URLSearchParams();
|
||||
if (page > 1) params.append('page', String(page));
|
||||
if (pageSize !== 10) params.append('limit', String(pageSize));
|
||||
if (searchTerm) params.append('search', searchTerm);
|
||||
if (params.toString()) url += `?${params.toString()}`;
|
||||
|
||||
const response = await fetch(url, { headers });
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error(`请求失败: ${response.status}`);
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
if (data.data) {
|
||||
@@ -276,6 +283,7 @@ function ManagePage() {
|
||||
}
|
||||
|
||||
message.success('生成成功!');
|
||||
setGenerateSuccessModalVisible(true);
|
||||
loadCompanies();
|
||||
} else {
|
||||
throw new Error(data.error || '生成失败');
|
||||
@@ -294,6 +302,26 @@ function ManagePage() {
|
||||
link.click();
|
||||
};
|
||||
|
||||
const handleViewQuery = () => {
|
||||
if (generatedData?.serials?.[0]?.serialNumber) {
|
||||
navigate(`/query?serial=${generatedData.serials[0].serialNumber}`);
|
||||
setGenerateSuccessModalVisible(false);
|
||||
generateForm.resetFields();
|
||||
}
|
||||
};
|
||||
|
||||
const [generateSuccessModalVisible, setGenerateSuccessModalVisible] = useState(false);
|
||||
|
||||
const colorPresets = [
|
||||
'#000000',
|
||||
'#165DFF',
|
||||
'#52C41A',
|
||||
'#FAAD14',
|
||||
'#FF4D4F',
|
||||
'#722ED1',
|
||||
'#EB2F96',
|
||||
];
|
||||
|
||||
const handlePageChange = (newPage: number, newPageSize: number) => {
|
||||
setPage(newPage);
|
||||
setPageSize(newPageSize);
|
||||
@@ -560,14 +588,6 @@ function ManagePage() {
|
||||
}
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item
|
||||
label="序列号数量"
|
||||
name="quantity"
|
||||
rules={[{ required: true, message: '请输入序列号数量' }]}
|
||||
>
|
||||
<InputNumber min={1} max={100} style={{ width: '100%' }} />
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item label="有效期设置" name="validOption">
|
||||
<Radio.Group>
|
||||
<Radio value="days">按天数</Radio>
|
||||
@@ -600,18 +620,45 @@ function ManagePage() {
|
||||
}
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item
|
||||
label="生成数量"
|
||||
name="quantity"
|
||||
rules={[{ required: true, message: '请输入生成数量' }]}
|
||||
>
|
||||
<InputNumber min={1} max={100} style={{ width: '100%' }} />
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item
|
||||
label="二维码颜色"
|
||||
name="qrColor"
|
||||
initialValue="#000000"
|
||||
>
|
||||
<ColorPicker
|
||||
value={qrColor}
|
||||
onChange={(color: Color) => {
|
||||
const hexColor = color.toHexString();
|
||||
setQrColor(hexColor);
|
||||
}}
|
||||
/>
|
||||
<div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>
|
||||
<div style={{ display: 'flex', flexWrap: 'wrap', gap: '8px' }}>
|
||||
{colorPresets.map((color) => (
|
||||
<div
|
||||
key={color}
|
||||
onClick={() => setQrColor(color)}
|
||||
style={{
|
||||
width: '28px',
|
||||
height: '28px',
|
||||
backgroundColor: color,
|
||||
border: qrColor === color ? '2px solid #165DFF' : '2px solid #d9d9d9',
|
||||
borderRadius: '4px',
|
||||
cursor: 'pointer',
|
||||
transition: 'all 0.2s',
|
||||
}}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
<ColorPicker
|
||||
value={qrColor}
|
||||
onChange={(color: Color) => {
|
||||
const hexColor = color.toHexString();
|
||||
setQrColor(hexColor);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item>
|
||||
@@ -624,6 +671,46 @@ function ManagePage() {
|
||||
</Form.Item>
|
||||
</Form>
|
||||
</Modal>
|
||||
|
||||
<Modal
|
||||
title="生成成功"
|
||||
open={generateSuccessModalVisible}
|
||||
onCancel={() => setGenerateSuccessModalVisible(false)}
|
||||
footer={null}
|
||||
width={600}
|
||||
>
|
||||
{generatedData && (
|
||||
<div>
|
||||
<Space direction="vertical" style={{ width: '100%' }} size="middle">
|
||||
<div>
|
||||
<p><strong>企业名称:</strong> {generatedData.companyName || generatedData.serials?.[0]?.companyName}</p>
|
||||
<p><strong>生成数量:</strong> {generatedData.serials?.length || 0}</p>
|
||||
{generatedData.serials && generatedData.serials.length > 0 && (
|
||||
<p><strong>有效期至:</strong> {new Date(generatedData.serials[0].validUntil).toLocaleString('zh-CN')}</p>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{qrCodeDataUrl && (
|
||||
<div style={{ textAlign: 'center' }}>
|
||||
<img src={qrCodeDataUrl} alt="QR Code" style={{ width: '200px', height: '200px' }} />
|
||||
{generatedData.serials && generatedData.serials.length > 0 && (
|
||||
<p style={{ marginTop: '12px', fontFamily: 'monospace', fontSize: '16px', fontWeight: 'bold', color: '#165DFF' }}>{generatedData.serials[0].serialNumber}</p>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
|
||||
<Space>
|
||||
<Button type="primary" onClick={handleViewQuery}>查询序列号</Button>
|
||||
<Button onClick={handleDownloadQR}>下载二维码</Button>
|
||||
<Button onClick={() => {
|
||||
setGenerateSuccessModalVisible(false);
|
||||
generateForm.resetFields();
|
||||
}}>生成新的序列号</Button>
|
||||
</Space>
|
||||
</Space>
|
||||
</div>
|
||||
)}
|
||||
</Modal>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user