|
@@ -0,0 +1,119 @@
|
|
|
+import { Button, Form, FormInstance, Input, Radio, Table } from "antd";
|
|
|
+import { useCallback, useMemo, useRef, useState } from "react";
|
|
|
+import { debounce } from "lodash";
|
|
|
+import { DageTableActions } from "@dage/pc-components";
|
|
|
+
|
|
|
+const TYPE_LIST = [
|
|
|
+ {
|
|
|
+ label: "展览",
|
|
|
+ value: 0,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "活动",
|
|
|
+ value: 1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "新闻",
|
|
|
+ value: 2,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "通知",
|
|
|
+ value: 3,
|
|
|
+ },
|
|
|
+];
|
|
|
+
|
|
|
+const DEFAULT_PARAMS = {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 20,
|
|
|
+};
|
|
|
+
|
|
|
+export default function InformationPage() {
|
|
|
+ const formRef = useRef<FormInstance>(null);
|
|
|
+ const [loading, setLoading] = useState(false);
|
|
|
+ const [list, setList] = useState<[]>([]);
|
|
|
+ const [params, setParams] = useState({
|
|
|
+ ...DEFAULT_PARAMS,
|
|
|
+ });
|
|
|
+ const [total, setTotal] = useState(0);
|
|
|
+
|
|
|
+ const COLUMNS = useMemo(() => {
|
|
|
+ return [
|
|
|
+ {
|
|
|
+ title: "标题",
|
|
|
+ dataIndex: "title",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "正文",
|
|
|
+ dataIndex: "nickName",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "发布日期",
|
|
|
+ dataIndex: "date",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: "操作",
|
|
|
+ render: (item: any) => {
|
|
|
+ return <DageTableActions onEdit={() => {}} onDelete={() => {}} />;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ }, []);
|
|
|
+
|
|
|
+ const handleReset = useCallback(() => {
|
|
|
+ formRef.current?.resetFields();
|
|
|
+ }, [formRef]);
|
|
|
+
|
|
|
+ const debounceSearch = useMemo(
|
|
|
+ () => debounce((changedVal: unknown, vals: any) => {}, 500),
|
|
|
+ []
|
|
|
+ );
|
|
|
+
|
|
|
+ const paginationChange = useCallback(
|
|
|
+ () => (pageNum: number, pageSize: number) => {
|
|
|
+ setParams({ ...params, pageNum, pageSize });
|
|
|
+ },
|
|
|
+ [params]
|
|
|
+ );
|
|
|
+
|
|
|
+ return (
|
|
|
+ <div className="information">
|
|
|
+ <Form ref={formRef} layout="inline" onValuesChange={debounceSearch}>
|
|
|
+ <Form.Item name="type">
|
|
|
+ <Radio.Group>
|
|
|
+ {TYPE_LIST.map((item) => (
|
|
|
+ <Radio.Button key={item.value} value={item.value}>
|
|
|
+ {item.label}
|
|
|
+ </Radio.Button>
|
|
|
+ ))}
|
|
|
+ </Radio.Group>
|
|
|
+ </Form.Item>
|
|
|
+ <Form.Item label="搜索项" name="stage">
|
|
|
+ <Input className="w220" placeholder="请输入标题或正文" allowClear />
|
|
|
+ </Form.Item>
|
|
|
+ <Form.Item>
|
|
|
+ <Button type="primary">新增</Button>
|
|
|
+ </Form.Item>
|
|
|
+ <Form.Item>
|
|
|
+ <Button onClick={handleReset}>重置</Button>
|
|
|
+ </Form.Item>
|
|
|
+ </Form>
|
|
|
+
|
|
|
+ <Table
|
|
|
+ loading={loading}
|
|
|
+ className="page-table"
|
|
|
+ dataSource={list}
|
|
|
+ columns={COLUMNS}
|
|
|
+ rowKey="id"
|
|
|
+ pagination={{
|
|
|
+ showQuickJumper: true,
|
|
|
+ position: ["bottomCenter"],
|
|
|
+ showSizeChanger: true,
|
|
|
+ current: params.pageNum,
|
|
|
+ pageSize: params.pageSize,
|
|
|
+ total,
|
|
|
+ onChange: paginationChange(),
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+}
|