day-4.tsx 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. import { Affix, Layout, Menu, Breadcrumb, Table, Tag, Space, Pagination, message, notification, Anchor } from "antd";
  2. import { Row, Col } from "antd";
  3. import { UserOutlined, LaptopOutlined, NotificationOutlined } from "@ant-design/icons";
  4. import { Footer } from "antd/lib/layout/layout";
  5. import { useState } from 'react';
  6. import { WidgetCommitNofifiction } from '@/components/demo'
  7. const { SubMenu } = Menu;
  8. const { Header, Content, Sider } = Layout;
  9. const { Link } = Anchor;
  10. message.config({
  11. maxCount: 4
  12. });
  13. //表数据
  14. const dataSource = [
  15. {
  16. key: '1',
  17. name: 'name1',
  18. age: 32,
  19. adress: "西湖南路"
  20. },
  21. {
  22. key: '2',
  23. name: 'name2',
  24. age: 34,
  25. adress: '西湖公园'
  26. },
  27. {
  28. key: '3',
  29. name: 'name1',
  30. age: 32,
  31. adress: "西湖南路"
  32. },
  33. {
  34. key: '4',
  35. name: 'name2',
  36. age: 34,
  37. adress: '西湖公园'
  38. },
  39. {
  40. key: '5',
  41. name: 'name1',
  42. age: 32,
  43. adress: "西湖南路"
  44. },
  45. {
  46. key: '6',
  47. name: 'name2',
  48. age: 34,
  49. adress: '西湖公园'
  50. }
  51. ]
  52. //表头
  53. const columns = [
  54. {
  55. title: 'Id',
  56. dataIndex: 'id',
  57. key: 'id',
  58. render: text => <a>{text}</a>,
  59. },
  60. {
  61. title: 'user_id',
  62. dataIndex: 'user_id',
  63. key: 'user_id',
  64. },
  65. {
  66. title: "title",
  67. dataIndex: 'title',
  68. key: 'title',
  69. }
  70. ]
  71. function handleClick(e) {
  72. console.log('click', e);
  73. ntfOpen(e.key);
  74. }
  75. function pageChange(page: number, pagesize?: number | undefined) {
  76. message.info("page:" + page);
  77. if (pagesize) {
  78. message.error("pagesize:" + pagesize);
  79. }
  80. }
  81. function ntfOpen(msg: string) {
  82. const args = {
  83. message: "title",
  84. description: msg,
  85. duration: 5,
  86. };
  87. notification.open(args);
  88. }
  89. export default () => {
  90. const [top, setTop] = useState(0);
  91. const [bottom, setBottom] = useState(10);
  92. const [commitStatus, setcommitStatus] = useState(false);
  93. const [commitTime, setcommitTime] = useState(0);
  94. const [commitMsg, setcommitMsg] = useState("失败");
  95. const [tableData, setTableData] = useState();
  96. function getTableData(){
  97. fetch('https://gorest.co.in/public-api/posts')
  98. .then(function (response) {
  99. console.log("ajex:", response);
  100. return response.json();
  101. })
  102. .then(function (myJson) {
  103. console.log("ajex",myJson.data);
  104. setTableData(myJson.data);
  105. });
  106. }
  107. function pageChange(page: number, pagesize?: number | undefined) {
  108. setcommitTime(page);
  109. message.info("page:" + page);
  110. if (pagesize) {
  111. message.error("pagesize:" + pagesize);
  112. }
  113. }
  114. return (
  115. <Layout>
  116. <Header className="header">
  117. <div className="logo" />
  118. <Menu onClick={handleClick} theme="dark" mode="horizontal" defaultSelectedKeys={['2']}>
  119. <Menu.Item key="0">
  120. <WidgetCommitNofifiction time={commitTime} message={commitMsg} successful={commitStatus} />
  121. </Menu.Item>
  122. <Menu.Item key="1" onClick={getTableData}>Palicanon</Menu.Item>
  123. <Menu.Item key="2">Course</Menu.Item>
  124. <Menu.Item key="3">nav 3</Menu.Item>
  125. <SubMenu key="submenu" icon={<UserOutlined />} title="Others">
  126. <Menu.ItemGroup title="group1">
  127. <Menu.Item key="4">option1</Menu.Item>
  128. <Menu.Item key="5">option2</Menu.Item>
  129. <Menu.Item key="6">option3</Menu.Item>
  130. </Menu.ItemGroup>
  131. <Menu.ItemGroup title="group2">
  132. <Menu.Item key="7">option1</Menu.Item>
  133. <Menu.Item key="8">option2</Menu.Item>
  134. <Menu.Item key="9">option3</Menu.Item>
  135. </Menu.ItemGroup>
  136. </SubMenu>
  137. </Menu>
  138. </Header>
  139. <Layout>
  140. <Affix offsetTop={top}>
  141. <Sider className="site-layout-background">
  142. <Menu
  143. mode="inline"
  144. defaultSelectedKeys={['1']}
  145. defaultOpenKeys={['sub1']}
  146. style={{ height: '100%', borderRight: 0 }}
  147. >
  148. <SubMenu key="sub1" icon={<UserOutlined />} title="subnav 1">
  149. <Menu.Item key="1">option1</Menu.Item>
  150. <Menu.Item key="2">option2</Menu.Item>
  151. <Menu.Item key="3">option3</Menu.Item>
  152. <Menu.Item key="4">option4</Menu.Item>
  153. </SubMenu>
  154. <SubMenu key="sub2" icon={<UserOutlined />} title="subnav 2">
  155. <Menu.Item key="5">option1</Menu.Item>
  156. <Menu.Item key="6">option2</Menu.Item>
  157. <Menu.Item key="7">option3</Menu.Item>
  158. <Menu.Item key="8">option4</Menu.Item>
  159. </SubMenu>
  160. </Menu>
  161. </Sider>
  162. </Affix>
  163. <Layout style={{ padding: '0 24px 24px' }}>
  164. <Breadcrumb style={{ padding: '0 24px 24px' }}>
  165. <Breadcrumb.Item>Home</Breadcrumb.Item>
  166. <Breadcrumb.Item>List</Breadcrumb.Item>
  167. <Breadcrumb.Item>App</Breadcrumb.Item>
  168. </Breadcrumb>
  169. <Content
  170. className="site-layout-background"
  171. style={{
  172. padding: 24,
  173. margin: 0,
  174. minHeight: 280,
  175. width: "100%",
  176. overflowX: "auto",
  177. }}>
  178. <Table dataSource={tableData} columns={columns} />
  179. <div>搜索结果</div>
  180. <Pagination defaultCurrent={1} total={54} onChange={pageChange} />
  181. </Content>
  182. </Layout>
  183. <Affix offsetTop={top}>
  184. <Sider>
  185. <Anchor>
  186. <Link href="#aa" title="aa" />
  187. <Link href="#bb" title="bb" />
  188. <Link href="#cc" title="cc" />
  189. <Link href="#dd" title="dd" />
  190. </Anchor>
  191. </Sider>
  192. </Affix>
  193. </Layout>
  194. <Footer>
  195. <Row>
  196. <Col span={4}>col1</Col>
  197. <Col span={16}>col2</Col>
  198. <Col span={4}>col3</Col>
  199. </Row>
  200. <Row>
  201. <Col xs={4} md={5} xl={4}> col4</Col>
  202. <Col xs={20} md={14} xl={16}> col5 </Col>
  203. <Col xs={0} md={5} xl={4}> col6 </Col>
  204. </Row>
  205. </Footer>
  206. </Layout>
  207. );
  208. }