Soleilw 1 місяць тому
джерело
коміт
9dfb1a99d0

+ 1
- 1
dist/index.html Переглянути файл

@@ -8,6 +8,6 @@
</head>
<body>
<div id="root"></div>
<script src="/umi.15e5f129.js"></script>
<script src="/umi.9a7953c1.js"></script>
</body>
</html>

+ 1
- 0
dist/p__Talent__Fair__index.3e724a16.async.js
Різницю між файлами не показано, бо вона завелика
Переглянути файл


+ 0
- 1
dist/p__Talent__Fair__index.86313e12.async.js
Різницю між файлами не показано, бо вона завелика
Переглянути файл


+ 0
- 1
dist/p__Talent__Home__index.0858119b.async.js
Різницю між файлами не показано, бо вона завелика
Переглянути файл


+ 1
- 0
dist/p__Talent__Home__index.236400f4.async.js
Різницю між файлами не показано, бо вона завелика
Переглянути файл


+ 1
- 0
dist/p__Talent__Home__index.3f2ae0a9.chunk.css Переглянути файл

@@ -0,0 +1 @@
.company-item{width:100%;padding:16px 16px 0;background-color:#fff;border-radius:8px;cursor:pointer}.company-item:nth-child(5n){margin-right:0}.with-prefix:before{content:"";width:8px;height:8px;margin-right:16px;display:inline-block;background-color:#19be6e;transform:translateY(-1px)}

+ 0
- 1
dist/p__Talent__Home__index.c8ee3184.chunk.css Переглянути файл

@@ -1 +0,0 @@
.with-prefix:before{content:"";width:8px;height:8px;margin-right:16px;display:inline-block;background-color:#19be6e;transform:translateY(-1px)}

+ 1
- 0
dist/p__Talent__Search__Company__index.2374c223.async.js
Різницю між файлами не показано, бо вона завелика
Переглянути файл


+ 0
- 1
dist/p__Talent__Search__Company__index.da03d5c7.async.js
Різницю між файлами не показано, бо вона завелика
Переглянути файл


dist/umi.9a7953c1.js
Різницю між файлами не показано, бо вона завелика
Переглянути файл


+ 1
- 1
src/components/Common/Footer/index.tsx Переглянути файл

@@ -45,7 +45,7 @@ const FooterIndex: React.FC = () => {
},
}}
>
<div style={{ padding: '20px 414px', }}>
<div style={{ padding: '20px 314px', }}>
<Flex justify='space-between' style={{ width: '100%' }}>
<Space direction='vertical' size={0} >
<h3>关于我们</h3>

+ 82
- 0
src/components/Common/Job2/index.tsx Переглянути файл

@@ -0,0 +1,82 @@

import { useState, useEffect, useRef } from 'react';
import { Link } from '@umijs/max';
import { ProList, ProConfigProvider, ProFormCaptcha, ProFormCheckbox, ProFormText, setAlpha, ProForm, ProFormDependency } from '@ant-design/pro-components';
import { PhoneOutlined, MailOutlined, EnvironmentOutlined, ArrowRightOutlined, FireOutlined, StarOutlined, StarFilled } from '@ant-design/icons';
import { Space, Tabs, Avatar, Row, Col, Image, message, Card, ConfigProvider, Modal, Tag, Tooltip, Pagination, Flex, Descriptions, Button, Divider } from 'antd';
import { Imageprefix } from '@/constants/index'


interface CommonJobProps {
item: any,
}
const CommonJob: React.FC<CommonJobProps> = ({ item }: any) => {

return (
<>
<ConfigProvider
theme={{
token: {
colorPrimary: '#19be6e',
}, components: {
},
}}
>
<Flex vertical justify='space-between' style={{ width: '100%', background: '#ffffff', padding: '30px', borderRadius: 10, cursor: 'pointer' }}>
<Space direction='vertical' size={10}>
<Link to={{ pathname: `/talent/job/detail/?id=${item.id}` }} target="_blank" style={{ color: '#000000' }}>
<Flex justify='space-between' align='center'>
<Space>
<h2>{item.name}</h2>
{item.locations && item.locations.length > 0 ? <><EnvironmentOutlined style={{ color: 'gray' }} /><div style={{ color: 'gray' }}>{item.locations[0].name}</div> </> : ''}
{item.urgent === 1 && <Tag icon={<FireOutlined />} bordered={false} color="#f50">急招</Tag>}
</Space>
<div style={{ color: '#19be6e', fontSize: 16 }}>{item.pay_range_text}</div>
</Flex>
</Link>
<Space style={{ fontSize: 16, color: '#999' }}>
{item.experience_text ? <>{item.experience_text}</> : ''}
{item.school_degree_text ? <><Divider type='vertical' /> {item.school_degree_text} </> : ''}
</Space>
<Flex justify='space-between' align='center'>
<Space style={{ fontSize: 16, color: '#999' }}>
{item.holidays_text && item.experience_text != '无' ? <Tag>{item.holidays_text}</Tag> : ''}
{item.profelevel_text && item.profelevel_text != '无' ? <Tag>{item.profelevel_text}</Tag> : ''}
{item.shisu_text && item.shisu_text != '无' ? <Tag>{item.shisu_text}</Tag> : ''}
<Tag>不限</Tag>
</Space>
<Space size={20}>
<Link to={{ pathname: `/talent/job/detail/?id=${item.id}` }} target="_blank">
<Button type='primary'>投递该职位</Button>
</Link>
<Link to={{ pathname: `/talent/job/detail/?id=${item.id}` }} target="_blank">
<Button icon={<StarOutlined />} >收藏职位</Button>
</Link>
</Space>
</Flex>
</Space>
<Divider />
<Space direction='vertical' size={10}>
<Link to={{ pathname: `/talent/company/detail/?id=${item.company_id}` }} target="_blank" style={{ color: '#000000' }}>
<Space>
<h3>{item.full_name}</h3>
</Space>
</Link>
<Flex justify='flex-start' align='center' style={{ fontSize: 14, color: '#999' }}>
{item.nature_text ? <>{item.nature_text}</> : <>性质不限</>}
{item.industry_text ? <><Divider type='vertical' /> {item.industry_text} </> : <><Divider type='vertical' />行业不限</>}
{item.scale_text ? <><Divider type='vertical' /> {item.scale_text} </> : <><Divider type='vertical' />规模不限</>}
</Flex>

</Space>

</Flex>


</ConfigProvider>

</>
);
};

export default CommonJob

+ 3
- 3
src/components/Talent/Home/CampusJob/index.tsx Переглянути файл

@@ -6,7 +6,7 @@ import { ConfigProvider, Button, Flex, Input, Space, Image, Pagination, Row, Col
import { EllipsisOutlined, FireOutlined, EnvironmentOutlined, RightOutlined, StarOutlined } from '@ant-design/icons';
import { useModel, connect, history, Link } from 'umi';
import { PostJobSearch } from '@/services/apis/post';
import CommonJob from '@/components/Common/Job'
import CommonJob from '@/components/Common/Job2'

const CampusJob: React.FC = () => {
const [list, setList] = useState<object[]>([])
@@ -15,7 +15,7 @@ const CampusJob: React.FC = () => {
const [pageSize, setPageSize] = useState<number>(12)

useEffect(() => {
PostJobSearch({ page: 1, pagesize: 12, campus: 1 }).then(res => {
PostJobSearch({ page: 1, pagesize: 8, campus: 1 }).then(res => {
setList(res.data.jobs)
})
}, []);
@@ -44,7 +44,7 @@ const CampusJob: React.FC = () => {
{
list.length > 0 && list.map((item: any, index: number) => (
<>
<Col span={24}>
<Col span={12}>
<CommonJob item={item}></CommonJob>

</Col>

+ 18
- 14
src/components/Talent/Home/Company/index.tsx Переглянути файл

@@ -14,11 +14,11 @@ const HomeProbation: React.FC = () => {
const [list, setList] = useState<object[]>([])
const [total, setTotal] = useState<number>(0)
const [page, setPage] = useState<number>(1)
const [pageSize, setPageSize] = useState<number>(9)
const [pageSize, setPageSize] = useState<number>(12)


useEffect(() => {
GetAdvertscheduleList({ pagesize: 9, code: 'RMQYGGT' }).then(res => {
GetAdvertscheduleList({ pagesize: 12, code: 'RMQYGGT' }).then(res => {
setList(res.data.advertschedules)
})
}, []);
@@ -49,22 +49,26 @@ const HomeProbation: React.FC = () => {
{
list.length > 0 && list.map((item: any, index: number) => (
<>
<Col span={8}>
<Col span={6}>
<Link to={{ pathname: `/talent/company/detail?id=${item.company_id}` }} target="_blank" style={{ width: '100%' }}>
<Space direction='vertical' size={10} align='center' style={{ width: '100%', paddingTop: 20, paddingBottom: 20, background: '#ffffff', borderRadius: 8 }}>
<Image src={item.image_url ? `${Imageprefix}${item.image_url}` : '/images/logo.jpg'} preview={false} width={'200px'} height={'112px'} style={{ borderRadius: '8px' }}></Image>
<Typography.Title level={5} style={{ width: '100%', padding: '0 10px' }}
<Flex vertical align='center' justify='center' className='company-item'>
<Image src={item.photo ? `${Imageprefix}${item.photo}` : '/images/logo.jpg'} preview={false} width={100} height={100} style={{ borderRadius: '4px', objectFit: 'contain' }}></Image>
<Typography.Paragraph
ellipsis={{ rows: 1 }}
style={{ fontSize: 16, textAlign: 'center', whiteSpace: 'nowrap', marginTop: 8, width: '100%' }}
>
{item.company_name}
</Typography.Title>
<Flex justify='flex-end' align='center' style={{ fontSize: 14, color: '#999' }}>
{item.company_nature ? <>{item.company_nature}</> : <>性质不限</>}
{item.industry_text ? <><Divider type='vertical' /> {item.industry_text} </> : <><Divider type='vertical' />行业不限</>}
{item.company_scale ? <><Divider type='vertical' /> {item.company_scale} </> : <><Divider type='vertical' />规模不限</>}
</Flex>
</Space>
</Typography.Paragraph>
<Typography.Paragraph
ellipsis={{ rows: 1 }}
style={{ fontSize: 12, color: '#999', textAlign: 'center', whiteSpace: 'nowrap', width: '100%' }}
>
{item.nature_text ? item.nature_text : '性质不限'}
{item.industry_text ? <><Divider type='vertical' />{item.industry_text}</> : <><Divider type='vertical' />行业不限</>}
{item.scale_text ? <><Divider type='vertical' />{item.scale_text}</> : <><Divider type='vertical' />规模不限</>}
</Typography.Paragraph>
</Flex >
</Link>

</Col>
</>
))

+ 38
- 15
src/components/Talent/Home/Fair/index.tsx Переглянути файл

@@ -2,7 +2,7 @@
import { useState, useEffect, useRef } from 'react';
import { ProList, PageContainer } from '@ant-design/pro-components';
import { ConfigProvider, Button, Flex, Input, Space, Image, Pagination, Row, Col, Divider, Tag, Card, Affix, Typography } from 'antd';
import { EllipsisOutlined, FireOutlined, LeftOutlined, RightOutlined, StarOutlined } from '@ant-design/icons';
import { EllipsisOutlined, FireOutlined, EnvironmentOutlined, RightOutlined, FieldTimeOutlined } from '@ant-design/icons';
import { useModel, connect, history, Link } from 'umi';
import { Imageprefix } from '@/constants';

@@ -12,10 +12,10 @@ const HomeFair: React.FC = () => {
const [list, setList] = useState<object[]>([])
const [total, setTotal] = useState<number>(0)
const [page, setPage] = useState<number>(1)
const [pageSize, setPageSize] = useState<number>(6)
const [pageSize, setPageSize] = useState<number>(8)

useEffect(() => {
GetRecruitmentList({ page: 1, pagesize: 6, sortby: 'desc' }).then(res => {
GetRecruitmentList({ page: 1, pagesize: 8, sortby: 'desc' }).then(res => {
setList(res.data.recruitments)
setTotal(res.data.total)
})
@@ -44,22 +44,45 @@ const HomeFair: React.FC = () => {
{
list.length > 0 && list.map((item: any, index: number) => (
<>
<Col span={8}>
<Link to={{ pathname: `/talent/fair/detail?keyword=${item.title}` }} target="_blank" style={{ width: '100%' }}>
<Space direction='vertical' size={10} align='center' style={{ width: '100%', background: '#ffffff', borderRadius: 8 }}>
<Image src={item.photo ? `${Imageprefix}${item.photo}` : '/images/bg.jpg'} preview={false} width={'100%'} height={'210px'} style={{ borderRadius: '8px 8px 0 0' }}></Image>
<Affix style={{ position: 'absolute', top: 10, right: 0 }}>
<Tag color="#19be6e">{item.open_date}</Tag>
</Affix>
<Typography.Title level={5} style={{ width: '100%', padding: '0 10px' }}
<Col span={6}>
<Link to={{ pathname: `/talent/fair/detail?keyword=${item.title}` }} target="_blank" style={{ width: '100%' , color: '#000000'}}>
<Flex vertical align='center' justify='center' style={{ background: '#fff', borderRadius: '4px' }}>
<div style={{
width: '100%',
position: 'relative',
paddingTop: '56.25%', /* 16:9 的比例 */
overflow: 'hidden'
}}>
<img src={item.photo ? `${Imageprefix}${item.photo}` : '/images/logo.jpg'} style={{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: '100%',
borderRadius: '8px 8px 0 0'
}} />
</div>
<Typography.Paragraph
ellipsis={{ rows: 2 }}
style={{ fontSize: 16, fontWeight: 'bold', padding: '0 16px', marginTop: 8, minHeight: 50, width: '100%' }}
>
{item.title}
</Typography.Title>

</Space>
</Typography.Paragraph>
<Space size={4} style={{
padding: '0 16px', marginBottom: 16, width: '100%', color: 'gray'
}}>
<FieldTimeOutlined /> {item.open_date} {item.close_date ? <>至{item.close_date}</>: ''}
</Space>
<Space size={4} style={{
padding: '0 16px', marginBottom: 16, width: '100%',color: 'gray'
}}>
<EnvironmentOutlined /> {item.address}
</Space>
</Flex >
</Link>

</Col>

</>
))
}

+ 11
- 0
src/components/Talent/Home/Famous/index.less Переглянути файл

@@ -0,0 +1,11 @@
.company-item {
width: 100%;
padding: 16px 16px 0;
background-color: #ffffff;
border-radius: 8px;
cursor: pointer;
}

.company-item:nth-child(5n) {
margin-right: 0px;
}

+ 23
- 16
src/components/Talent/Home/Famous/index.tsx Переглянути файл

@@ -6,18 +6,19 @@ import { EllipsisOutlined, FireOutlined, LeftOutlined, RightOutlined, StarOutlin
import { useModel, connect, history, Link } from 'umi';
import { Imageprefix } from '@/constants';

import './index.less'
import { PostCompanySearch } from '@/services/apis/company';

const HomeFamous: React.FC = () => {
const [list, setList] = useState<object[]>([])
const [total, setTotal] = useState<number>(0)
const [page, setPage] = useState<number>(1)
const [pageSize, setPageSize] = useState<number>(9)
const [pageSize, setPageSize] = useState<number>(16)

useEffect(() => {
PostCompanySearch({
page: 1,
pagesize: 9,
pagesize: 16,
sort: 'updated_at',
sortby: 'desc',
famous: 1
@@ -41,36 +42,42 @@ const HomeFamous: React.FC = () => {
}}
>

<Space direction='vertical' size={20} style={{ width: '100%' }}>
<Space direction='vertical' size={10} style={{ width: '100%' }}>
{/* <Flex justify='center' align='center'>
<Typography.Title level={2}>知名企业</Typography.Title>
</Flex> */}
<Divider orientation="left" orientationMargin="0"><Typography.Title level={2}>知名企业</Typography.Title></Divider>
<Row gutter={[10, 10]}>
<Row gutter={[16, 16]} >
{
list.length > 0 && list.map((item: any, index: number) => (
<>
<Col span={8}>
<Col span={6}>
<Link to={{ pathname: `/talent/company/detail?id=${item.id}` }} target="_blank" style={{ width: '100%' }}>
<Space direction='vertical' size={10} align='center' style={{ width: '100%', paddingTop: 20, paddingBottom: 20, background: '#ffffff', borderRadius: 8 }}>
<Image src={item.photo ? `${Imageprefix}${item.photo}` : '/images/logo.jpg'} preview={false} width={'200px'} height={'112px'} style={{ borderRadius: '8px' }}></Image>
<Typography.Title level={5} style={{ width: '100%', padding: '0 10px' }}
<Flex vertical align='center' justify='center' className='company-item'>
<Image src={item.photo ? `${Imageprefix}${item.photo}` : '/images/logo.jpg'} preview={false} width={100} height={100} style={{ borderRadius: '4px', objectFit: 'contain' }}></Image>
<Typography.Paragraph
ellipsis={{ rows: 1 }}
style={{ fontSize: 16, textAlign: 'center', whiteSpace: 'nowrap', marginTop: 8, width: '100%' }}
>
{item.full_name}
</Typography.Title>
<Flex justify='flex-end' align='center' style={{ fontSize: 14, color: '#999' }}>
{item.nature_text ? <>{item.nature_text}</> : <>性质不限</>}
{item.industry_text ? <><Divider type='vertical' /> {item.industry_text} </> : <><Divider type='vertical' />行业不限</>}
{item.scale_text ? <><Divider type='vertical' /> {item.scale_text} </> : <><Divider type='vertical' />规模不限</>}
</Flex>
</Space>
</Typography.Paragraph>
<Typography.Paragraph
ellipsis={{ rows: 1 }}
style={{ fontSize: 12, color: '#999', textAlign: 'center', whiteSpace: 'nowrap', width: '100%' }}
>
{item.nature_text ? item.nature_text : '性质不限'}
{item.industry_text ? <><Divider type='vertical' />{item.industry_text}</> : <><Divider type='vertical' />行业不限</>}
{item.scale_text ? <><Divider type='vertical' />{item.scale_text}</> : <><Divider type='vertical' />规模不限</>}
</Typography.Paragraph>
</Flex >
</Link>

</Col>

</>
))
}
</Row>

<Flex justify='center' align='center'>
<Space>
<Link to={{ pathname: '/talent/search/company?famous=1' }}>

+ 3
- 3
src/components/Talent/Home/HighJob/index.tsx Переглянути файл

@@ -8,7 +8,7 @@ import { EllipsisOutlined, FireOutlined, EnvironmentOutlined, RightOutlined, Sta
import { useModel, connect, history, Link } from 'umi';
import { PostJobSearch } from '@/services/apis/post';

import CommonJob from '@/components/Common/Job'
import CommonJob from '@/components/Common/Job2'
const HomeNewJob: React.FC = () => {
const [list, setList] = useState<object[]>([])
const [total, setTotal] = useState<number>(0)
@@ -16,7 +16,7 @@ const HomeNewJob: React.FC = () => {
const [pageSize, setPageSize] = useState<number>(12)

useEffect(() => {
PostJobSearch({ page: 1, pagesize: 6, high_pay: 1 }).then(res => {
PostJobSearch({ page: 1, pagesize: 8, high_pay: 1 }).then(res => {
setList(res.data.jobs)
})
}, []);
@@ -44,7 +44,7 @@ const HomeNewJob: React.FC = () => {
{
list.length > 0 && list.map((item: any, index: number) => (
<>
<Col span={24}>
<Col span={12}>
<CommonJob item={item}></CommonJob>
</Col>
</>

+ 4
- 5
src/components/Talent/Home/NewJob/index.tsx Переглянути файл

@@ -8,15 +8,15 @@ import { EllipsisOutlined, FireOutlined, EnvironmentOutlined, RightOutlined, Sta
import { useModel, connect, history, Link } from 'umi';
import { PostJobSearch } from '@/services/apis/post';

import CommonJob from '@/components/Common/Job'
import CommonJob from '@/components/Common/Job2'
const HomeNewJob: React.FC = () => {
const [list, setList] = useState<object[]>([])
const [total, setTotal] = useState<number>(0)
const [page, setPage] = useState<number>(1)
const [pageSize, setPageSize] = useState<number>(12)
const [pageSize, setPageSize] = useState<number>(8)

useEffect(() => {
PostJobSearch({ page: 1, pagesize: 6 }).then(res => {
PostJobSearch({ page: 1, pagesize: 8 }).then(res => {
setList(res.data.jobs)
})
}, []);
@@ -39,12 +39,11 @@ const HomeNewJob: React.FC = () => {
{/* <Flex justify='center' align='center'>
<Typography.Title level={2}>热门职位</Typography.Title>
</Flex> */}
{/* <Divider orientation="left" orientationMargin="0"><Typography.Title level={2}>热门职位</Typography.Title></Divider> */}
<Row gutter={[10, 10]}>
{
list.length > 0 && list.map((item: any, index: number) => (
<>
<Col span={24}>
<Col span={12}>
<CommonJob item={item}></CommonJob>
</Col>
</>

+ 19
- 14
src/components/Talent/Home/Probation/index.tsx Переглянути файл

@@ -15,12 +15,12 @@ const HomeProbation: React.FC = () => {
const [list, setList] = useState<object[]>([])
const [total, setTotal] = useState<number>(0)
const [page, setPage] = useState<number>(1)
const [pageSize, setPageSize] = useState<number>(6)
const [pageSize, setPageSize] = useState<number>(8)

useEffect(() => {
PostCompanySearch({
page: 1,
pagesize: 6,
pagesize: 8,
sort: 'updated_at',
sortby: 'desc',
probation: 1
@@ -52,23 +52,28 @@ const HomeProbation: React.FC = () => {
<Divider orientation="left" orientationMargin="0"><Typography.Title level={2}>见习基地</Typography.Title></Divider>

<Row gutter={[10, 10]}>
{
{
list.length > 0 && list.map((item: any, index: number) => (
<>
<Col span={8}>
<Col span={6}>
<Link to={{ pathname: `/talent/company/detail?id=${item.id}` }} target="_blank" style={{ width: '100%' }}>
<Space direction='vertical' size={10} align='center' style={{ width: '100%',paddingTop: 20, paddingBottom: 20, background: '#ffffff', borderRadius: 8 }}>
<Image src={item.photo ? `${Imageprefix}${item.photo}` : '/images/logo.jpg'} preview={false} width={'200px'} height={'112px'} style={{ borderRadius: '8px' }}></Image>
<Typography.Title level={5} style={{ width: '100%', padding: '0 10px' }}
<Flex vertical align='center' justify='center' className='company-item'>
<Image src={item.photo ? `${Imageprefix}${item.photo}` : '/images/logo.jpg'} preview={false} width={100} height={100} style={{ borderRadius: '4px', objectFit: 'contain' }}></Image>
<Typography.Paragraph
ellipsis={{ rows: 1 }}
style={{ fontSize: 16, textAlign: 'center', whiteSpace: 'nowrap', marginTop: 8, width: '100%' }}
>
{item.full_name}
</Typography.Title>
{/* <Flex justify='flex-end' align='center' style={{ fontSize: 14, color: '#999' }}>
{item.nature_text ? <>{item.nature_text}</> : <>性质不限</>}
{item.industry_text ? <><Divider type='vertical' /> {item.industry_text} </> : <><Divider type='vertical' />行业不限</>}
{item.scale_text ? <><Divider type='vertical' /> {item.scale_text} </> : <><Divider type='vertical' />规模不限</>}
</Flex> */}
</Space>
</Typography.Paragraph>
{/* <Typography.Paragraph
ellipsis={{ rows: 1 }}
style={{ fontSize: 12, color: '#999', textAlign: 'center', whiteSpace: 'nowrap', width: '100%' }}
>
{item.nature_text ? item.nature_text : '性质不限'}
{item.industry_text ? <><Divider type='vertical' />{item.industry_text}</> : <><Divider type='vertical' />行业不限</>}
{item.scale_text ? <><Divider type='vertical' />{item.scale_text}</> : <><Divider type='vertical' />规模不限</>}
</Typography.Paragraph> */}
</Flex >
</Link>

</Col>

+ 3
- 3
src/components/Talent/Home/UrgentJob/index.tsx Переглянути файл

@@ -8,7 +8,7 @@ import { SearchOutlined, FireOutlined, MessageOutlined, StarOutlined, Environmen
import { useModel, connect, history, Link } from 'umi';
import { PostJobSearch } from '@/services/apis/post';

import CommonJob from '@/components/Common/Job'
import CommonJob from '@/components/Common/Job2'

const HomeNewJob: React.FC = () => {
const [list, setList] = useState<object[]>([])
@@ -17,7 +17,7 @@ const HomeNewJob: React.FC = () => {
const [pageSize, setPageSize] = useState<number>(12)

useEffect(() => {
PostJobSearch({ page: 1, pagesize: 12, urgent: 1 }).then(res => {
PostJobSearch({ page: 1, pagesize: 8, urgent: 1 }).then(res => {
setList(res.data.jobs)
})
}, []);
@@ -45,7 +45,7 @@ const HomeNewJob: React.FC = () => {
{
list.length > 0 && list.map((item: any, index: number) => (
<>
<Col span={24}>
<Col span={12}>
<CommonJob item={item}></CommonJob>

</Col>

+ 1
- 1
src/components/Talent/Search/Filter/Company/index.tsx Переглянути файл

@@ -53,7 +53,7 @@ const SearchFilter: React.FC<SearchFilterProps> = ({ dispatch, dictModel, getSea
fetchData();
}, []);

useEffect(() => {
if (!isLoading) {
dictModel.natureList.unshift({ id: 0, name: '不限', checked: true });

+ 34
- 30
src/pages/Talent/Fair/index.tsx Переглянути файл

@@ -1,7 +1,7 @@
import { useState, useEffect, useRef } from 'react';
import { ProList, PageContainer } from '@ant-design/pro-components';
import { ConfigProvider, Button, Flex, Input, Space, Image, Tooltip, Row, Col, Pagination, Tag, Card, Affix, Typography, Anchor } from 'antd';
import { SearchOutlined, LikeOutlined, ArrowRightOutlined, StarOutlined } from '@ant-design/icons';
import { SearchOutlined, LikeOutlined, EnvironmentOutlined, FieldTimeOutlined } from '@ant-design/icons';
import { useModel, connect, history, Link } from 'umi';


@@ -66,36 +66,40 @@ const HomePage: React.FC = () => {
<>
<Col span={6}>
<Link to={{ pathname: `/talent/fair/detail?keyword=${item.title}` }} target="_blank">
<Card
size='small'
bordered={false}
cover={<>
<Typography.Title level={4} style={{ background: '#edfff3', minHeight: 132 }}>
<Affix style={{ position: 'absolute', top: 0, right: 0 }}>
<Tag color="#19be6e">{item.open_date}</Tag>
</Affix>
<Tooltip title={item.title} placement="bottom">
<div style={{
display: '-webkit-box',
WebkitBoxOrient: 'vertical',
WebkitLineClamp: 3,
overflow: 'hidden',
textOverflow: 'ellipsis',
padding: '36px 12px 0'
}}>{item.title}</div>
</Tooltip>
</Typography.Title>
</>}
styles={{
header: {
borderBottom: 'none'
},
title: {
fontSize: '14px'
},
<Flex vertical align='center' justify='center' style={{ background: '#fff', borderRadius: '4px' }}>
<div style={{
width: '100%',
position: 'relative',
paddingTop: '56.25%', /* 16:9 的比例 */
overflow: 'hidden'
}}>
<Card.Meta title={<>参与企业数: {item.join_count > 0 ? item.join_count : 0}</>} description={<>参与职位数:{item.job_count}</>} />
</Card>
<img src={item.photo ? `${Imageprefix}${item.photo}` : '/images/logo.jpg'} style={{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: '100%',
borderRadius: '8px 8px 0 0'
}} />
</div>
<Typography.Paragraph
ellipsis={{ rows: 2 }}
style={{ fontSize: 16, fontWeight: 'bold', padding: '0 16px', marginTop: 8, minHeight: 50, width: '100%' }}
>
{item.title}

</Typography.Paragraph>
<Space size={4} style={{
padding: '0 16px', marginBottom: 16, width: '100%', color: 'gray'
}}>
<FieldTimeOutlined /> {item.open_date} {item.close_date ? <>至{item.close_date}</> : ''}
</Space>
<Space size={4} style={{
padding: '0 16px', marginBottom: 16, width: '100%', color: 'gray'
}}>
<EnvironmentOutlined /> {item.address}
</Space>
</Flex >
</Link>

</Col >

+ 44
- 42
src/pages/Talent/Home/index.tsx Переглянути файл

@@ -1,6 +1,6 @@
import { useState, useEffect, useRef } from 'react';
import { ProList, PageContainer } from '@ant-design/pro-components';
import { ConfigProvider, Button, Flex, Input, Space, Image, Select, Row, Col, Carousel, Card, List, Tag, Typography, Tabs, Segmented, Anchor, Modal } from 'antd';
import { ConfigProvider, Button, Flex, Input, Space, Image, Select, Row, Col, Carousel, Card, List, Tag, Typography, Divider, Segmented, Anchor, Modal } from 'antd';
import { SearchOutlined, EllipsisOutlined, ArrowRightOutlined, EnvironmentOutlined, CaretUpOutlined, RightOutlined } from '@ant-design/icons';
import { useModel, connect, history, Link } from 'umi';

@@ -52,7 +52,7 @@ const HomePage: React.FC = ({ dispatch, dictModel }: any) => {
setLoginHeight(value)
}




@@ -161,8 +161,8 @@ const HomePage: React.FC = ({ dispatch, dictModel }: any) => {
</PageContainer>

{/* 未登录的登录页 */}
<Flex vertical justify='center' align='center' style={{ width: '100%', marginBottom: 40, position: 'relative' }}>
<Flex vertical justify='center' align='center' style={{ background: '#ffffff', padding: '40px 314px', width: '100%' }}>
<Flex vertical justify='center' align='center' style={{ width: '100%', marginBottom: 40, position: 'relative' }}>
<Flex vertical justify='center' align='center' style={{ background: '#ffffff', padding: '0 314px 40px', width: '100%' }}>
<Flex justify='space-bewteen' style={{ width: '100%' }}>
<Row gutter={[16, 16]}>
<Col span={16}>
@@ -184,50 +184,52 @@ const HomePage: React.FC = ({ dispatch, dictModel }: any) => {
</Flex>
</div> */}
</Flex>
<Space direction='vertical' size={30} style={{ minHeight: 800 }}>
<Flex justify='center' align='center' id='fomaus' style={{ padding: '40px 314px', width: '100%' }}>
<HomeFamous></HomeFamous>
</Flex>
<Flex justify='center' align='center' id='company' style={{ padding: '40px 314px', width: '100%' }}>
<HomeCompany></HomeCompany>
</Flex>
<Flex justify='center' align='center' style={{ padding: '40px 314px', width: '100%' }} id='newjob'>
<Flex justify='space-between' align='center' style={{ width: '100%' }}>
<Space direction='vertical' size='small' style={{ width: '100%' }} >
<Segmented
size='large'
block
value={positionType}
options={['热门职位', '急招职位', '高薪职位']}
onChange={(value) => {
setPositionType(value)
}}
/>
<div style={{ paddingTop: 20 }}>
{positionType == '热门职位' && <><HomeNewJob></HomeNewJob></>}
{positionType == '急招职位' && <><HomeUrgentJob></HomeUrgentJob></>}
{positionType == '高薪职位' && <><HomeHighJob></HomeHighJob></>}
</div>

</Space>
</Flex>
</Flex>
<Flex justify='center' align='center' id='campusjob' style={{ padding: '40px 314px', width: '100%' }}>
<HomeCampusJob></HomeCampusJob>
</Flex>
<Flex justify='center' align='center' id='fair' style={{ padding: '40px 314px', width: '100%' }}>
<TalentHomeFair></TalentHomeFair>
</Flex>
<Flex justify='center' align='center' id='probation' style={{ padding: '40px 314px', width: '100%' }}>
<HomeProbation></HomeProbation>
</Flex>
</Space>


<PageContainer
header={{ title: ' ' }}
header={{ title: '', }}
style={{ paddingTop: 0 }}
>
<Space direction='vertical' size={30} style={{ minHeight: 800 }}>
<Flex justify='center' align='center' id='fomaus' style={{ width: '100%' }}>
<HomeFamous></HomeFamous>
</Flex>
<Flex justify='center' align='center' id='company' style={{ width: '100%' }}>
<HomeCompany></HomeCompany>
</Flex>
<Divider orientation="left" orientationMargin="0"><Typography.Title level={2}>职位推荐</Typography.Title></Divider>
<Flex justify='center' align='center' style={{ width: '100%' }} id='newjob'>
<Flex justify='space-between' align='center' style={{ width: '100%' }}>
<Space direction='vertical' size='small' style={{ width: '100%' }} >
<Segmented
size='large'
block
value={positionType}
options={['热门职位', '急招职位', '高薪职位']}
onChange={(value) => {
setPositionType(value)
}}
/>
<div style={{ paddingTop: 20 }}>
{positionType == '热门职位' && <><HomeNewJob></HomeNewJob></>}
{positionType == '急招职位' && <><HomeUrgentJob></HomeUrgentJob></>}
{positionType == '高薪职位' && <><HomeHighJob></HomeHighJob></>}
</div>

</Space>
</Flex>
</Flex>
<Flex justify='center' align='center' id='campusjob' style={{ width: '100%' }}>
<HomeCampusJob></HomeCampusJob>
</Flex>
<Flex justify='center' align='center' id='fair' style={{ width: '100%' }}>
<TalentHomeFair></TalentHomeFair>
</Flex>
<Flex justify='center' align='center' id='probation' style={{ width: '100%' }}>
<HomeProbation></HomeProbation>
</Flex>
</Space>
{/* <Space direction='vertical' size={60} style={{ marginTop: 40 }}>
<div style={{ position: 'relative', width: '100%', height: 480, borderRadius: 8, background: '#00574B', zIndex: '99', }}>
<div style={{ position: 'absolute', top: 0, right: 0, bottom: 0, left: 0, clipPath: 'circle(50% at right bottom)', backgroundImage: `url(${require('../../../../public/images/kcy.png')})`, backgroundSize: '100% 480px' }}>

+ 17
- 12
src/pages/Talent/Search/Company/index.tsx Переглянути файл

@@ -43,7 +43,7 @@ const HomePage: React.FC = () => {
const getSearchParams = async (value) => {
setPage(value.page)
setPageSize(value.pagesize)

let res = await PostCompanySearch(value ? value : {
page: page,
@@ -77,7 +77,7 @@ const HomePage: React.FC = () => {

<Space direction='vertical' size={30} style={{ minHeight: '800px' }}>
<SearchFilter getSearchParams={getSearchParams}
famous={searchParams.get('famous') ? searchParams.get('famous') : 0}
probation={searchParams.get('probation') ? searchParams.get('probation') : 0}
page={page}
@@ -90,18 +90,23 @@ const HomePage: React.FC = () => {
<>
<Col span={8}>
<Link to={{ pathname: `/talent/company/detail?id=${item.id}` }} target="_blank" style={{ width: '100%' }}>
<Space direction='vertical' size={10} align='center' style={{ width: '100%', paddingTop: 20, paddingBottom: 20, background: '#ffffff', borderRadius: 8 }}>
<Image src={item.photo ? `${Imageprefix}${item.photo}` : '/images/logo.jpg'} preview={false} width={'140px'} height={'78px'} style={{ borderRadius: '8px' }}></Image>
<Typography.Title level={5} style={{ width: '100%', padding: '0 10px' }}
<Flex vertical align='center' justify='center' className='company-item'>
<Image src={item.photo ? `${Imageprefix}${item.photo}` : '/images/logo.jpg'} preview={false} width={100} height={100} style={{ borderRadius: '4px', objectFit: 'contain' }}></Image>
<Typography.Paragraph
ellipsis={{ rows: 1 }}
style={{ fontSize: 16, textAlign: 'center', whiteSpace: 'nowrap', marginTop: 8, width: '100%' }}
>
{item.full_name}
</Typography.Title>
<Flex justify='flex-end' align='center' style={{ fontSize: 14, color: '#999' }}>
{item.company_nature ? <>{item.company_nature}</> : <>性质不限</>}
{item.industry_text ? <><Divider type='vertical' /> {item.industry_text} </> : <><Divider type='vertical' />行业不限</>}
{item.company_scale ? <><Divider type='vertical' /> {item.company_scale} </> : <><Divider type='vertical' />规模不限</>}
</Flex>
</Space>
</Typography.Paragraph>
<Typography.Paragraph
ellipsis={{ rows: 1 }}
style={{ fontSize: 12, color: '#999', textAlign: 'center', whiteSpace: 'nowrap', width: '100%' }}
>
{item.nature_text ? item.nature_text : '性质不限'}
{item.industry_text ? <><Divider type='vertical' />{item.industry_text}</> : <><Divider type='vertical' />行业不限</>}
{item.scale_text ? <><Divider type='vertical' />{item.scale_text}</> : <><Divider type='vertical' />规模不限</>}
</Typography.Paragraph>
</Flex >
</Link>

</Col>

Завантаження…
Відмінити
Зберегти