選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

index.tsx 6.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. import { useState, useEffect, useRef } from 'react';
  2. import { ProList, PageContainer } from '@ant-design/pro-components';
  3. import { ConfigProvider, Button, Flex, Input, Space, Image, Pagination, Row, Col, Divider, Tag, Card, Avatar, Typography } from 'antd';
  4. import { EllipsisOutlined, FireOutlined, EnvironmentOutlined, RightOutlined, StarOutlined } from '@ant-design/icons';
  5. import { useModel, connect, history, Link } from 'umi';
  6. import { PostJobSearch } from '@/services/apis/post';
  7. import CommonJob from '@/components/Common/Job2'
  8. const HomeNewJob: React.FC = () => {
  9. const [list, setList] = useState<object[]>([])
  10. const [total, setTotal] = useState<number>(0)
  11. const [page, setPage] = useState<number>(1)
  12. const [pageSize, setPageSize] = useState<number>(8)
  13. useEffect(() => {
  14. PostJobSearch({ page: 1, pagesize: 8 }).then(res => {
  15. setList(res.data.jobs)
  16. })
  17. }, []);
  18. return (
  19. <>
  20. <ConfigProvider
  21. theme={{
  22. token: {
  23. colorPrimary: '#19be6e',
  24. },
  25. components: {
  26. Button: {
  27. colorText: '#19be6e'
  28. }
  29. }
  30. }}
  31. >
  32. <Space direction='vertical' size={20} style={{ width: '100%' }}>
  33. {/* <Flex justify='center' align='center'>
  34. <Typography.Title level={2}>热门职位</Typography.Title>
  35. </Flex> */}
  36. <Row gutter={[10, 10]}>
  37. {
  38. list.length > 0 && list.map((item: any, index: number) => (
  39. <>
  40. <Col span={12}>
  41. <CommonJob item={item}></CommonJob>
  42. </Col>
  43. </>
  44. ))
  45. }
  46. </Row>
  47. <Flex justify='center' align='center'>
  48. <Space>
  49. <Link to={{ pathname: '/talent/search' }}>
  50. <Button icon={<RightOutlined />} iconPosition='end'>更多职位</Button>
  51. </Link>
  52. </Space>
  53. </Flex>
  54. </Space>
  55. </ConfigProvider >
  56. </>
  57. );
  58. };
  59. export default HomeNewJob;
  60. {/* <ProList
  61. ghost
  62. grid={{ gutter: 20, column: 2 }}
  63. rowKey="id"
  64. dataSource={list}
  65. request={async (params = {} as Record<string, any>) =>
  66. PostJobSearch({
  67. page: 1,
  68. pagesize: 2,
  69. sort: 'id',
  70. sortby: 'desc',
  71. }).then(res => {
  72. setList(res.data.jobs)
  73. setTotal(res.data.total)
  74. })
  75. }
  76. showActions="hover"
  77. metas={{
  78. title: {
  79. dataIndex: 'name'
  80. },
  81. subTitle: {
  82. },
  83. actions: {
  84. render: () => [<StarOutlined />]
  85. },
  86. content: {
  87. render: (text, row) => {
  88. return (
  89. <>
  90. <Space direction='vertical' style={{ marginBottom: 10 }}>
  91. <Space size={4}>
  92. <Tag>
  93. {row.experience_text ? row.experience_text : '经验不限'}
  94. </Tag>
  95. <Tag>
  96. {row.school_degree_text ? row.school_degree_text : '学历不限'}
  97. </Tag>
  98. <Tag>
  99. {row.profelevel_text ? '职称不限' : '职称不限'}
  100. </Tag>
  101. </Space>
  102. <Space size={10}>
  103. <Avatar src="/images/onlylogo.jpg" style={{ width: 48, height: 48 }} />
  104. <Space direction='vertical' style={{ height: 48 }}>
  105. <Link to='/'>{row.full_name}</Link>
  106. <div style={{fontSize: 12}}>{row.locations ? row.locations[0].name : '未知地址'}</div>
  107. </Space>
  108. </Space>
  109. </Space>
  110. </>
  111. )
  112. }
  113. }
  114. }}
  115. /> */}