import { PageContainer } from '@ant-design/pro-components'; import React, { useEffect, useState } from 'react'; import { Button, Card, Form, Input, message, Modal, Select, Space, Table } from 'antd'; import { PlusCircleOutlined, ReloadOutlined, SearchOutlined } from '@ant-design/icons'; import Edit from '@/pages/EditionManagement/edit'; import type { ColumnsType } from 'antd/es/table'; import moment from 'moment/moment'; import { delEdition, queryEdition } from '@/services/EditionManagement'; interface DataType { version: string; platform: string; creator: string; download_url: string; created_at: string; record_id: string; content: string; } /** * 版本管理 * @constructor */ const EditionManagement: React.FC = () => { const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [searchData, setSearchData] = useState({}); const [visible, setVisible] = useState(false); const [editData, setEditData] = useState(null); const [pagination, setPagination] = useState({ total: 0, current: 1, pageSize: 10 }); const [dataList, setDataList]: any = useState([]); // 获取列表数据 const getList = () => { const params = { q: 'page', current: pagination.current, pageSize: pagination.pageSize, ...searchData, }; queryEdition(params).then((res) => { if (res && res.code === 0) { setDataList(res.data.list); setPagination(res.data.pagination); setLoading(false); } }); }; useEffect(() => { setLoading(true); getList(); }, []); // 搜索 const onFinish = () => { form.validateFields().then((data) => { setLoading(true); setSearchData(data); }); }; useEffect(() => { getList(); }, [searchData]); // 重置 const onReset = () => { form.resetFields(); setLoading(true); setSearchData(null); }; // 新增弹框 const onAdd = () => { setEditData(null); setVisible(true); }; // 打开编辑弹框 const toEdit = (data: any) => { setEditData(data); setVisible(true); }; // 分页切换 const tableChange = (page: any) => { setLoading(true); const params = { q: 'page', current: page.current, pageSize: page.pageSize, ...searchData, }; queryEdition(params).then((res) => { if (res.code === 0) { setDataList(res.data.list); setPagination(res.data.pagination); setLoading(false); } }); }; // 删除 const toDel = (record: any) => { Modal.confirm({ title: '删除', content: `是否确认删除${record.version}版本`, onOk: () => { delEdition(record?.record_id) .then((res) => { if (res.code === 0) { message.success('删除成功'); } else { message.error('删除失败'); } getList(); }) .catch((e) => { message.error(e?.message); }); }, }); }; // 编辑弹框回调 const handleEdit = () => { setVisible(false); getList(); }; const columns: ColumnsType = [ { title: '序号', align: 'center', key: 'index', render: (_: any, row: any, index: number) => index + 1, }, { title: '版本号', dataIndex: 'version', key: 'version', }, { title: '设备类型', dataIndex: 'platform', key: 'platform', render: (v) => v && {{ ANDROID: '安卓', IOS: 'iphone' }[v]}, }, { title: '是否强制更新', dataIndex: 'force_update', key: 'force_update', render: (v) => ( {v ? '强制' : '不强制'} ), }, { title: '创建时间', dataIndex: 'created_at', key: 'created_at', render: (v) => v && {moment(v).format('YYYY-MM-DD HH:mm')}, }, { title: 'apk下载地址', dataIndex: 'download_url', key: 'download_url', render: (v) => v && ( {v} ), }, { title: '更新内容', dataIndex: 'content', key: 'content', }, { title: '创建者', dataIndex: 'creator', key: 'creator', }, { title: '操作', key: 'action', render: (_, record) => ( { toEdit(record); }} > 编辑 { toDel(record); }} > 删除 ), }, ]; const paginationProps = { showSizeChanger: true, showQuickJumper: true, showTotal: (total: number) => { return 共 {total}条 ; }, ...pagination, }; return (
record.record_id} pagination={paginationProps} loading={loading} onChange={tableChange} /> {visible && } ); }; export default EditionManagement;