Parcourir la source

update

master
Soleilw il y a 2 mois
Parent
révision
0e99d5b0b5
44 fichiers modifiés avec 1976 ajouts et 460 suppressions
  1. 7
    1
      config/routes.ts
  2. 1
    1
      dist/index.html
  3. 1
    0
      dist/p__Manage__Company__Department__index.94141a1d.async.js
  4. 0
    1
      dist/p__Manage__Company__Department__index.ed33e563.async.js
  5. 1
    0
      dist/p__Manage__Company__Fair__index.fc9c3080.async.js
  6. 0
    1
      dist/p__Manage__Company__Home__index.1d77932f.async.js
  7. 1
    0
      dist/p__Manage__Company__Home__index.4d4395f0.async.js
  8. 1
    1
      dist/p__Manage__Company__Info__index.771fe59a.async.js
  9. 1
    0
      dist/p__Manage__Company__Post__index.335b86ec.async.js
  10. 0
    1
      dist/p__Manage__Company__Post__index.8d71d763.async.js
  11. 1
    0
      dist/p__Manage__Company__Recommend__index.4bd0077b.async.js
  12. 0
    1
      dist/p__Manage__Company__Recommend__index.ef6c2e2c.async.js
  13. 0
    1
      dist/p__Manage__Company__Resume__index.90784606.async.js
  14. 1
    0
      dist/p__Manage__Company__Resume__index.d23c10d6.async.js
  15. 1
    1
      dist/p__Manage__Company__Setting__index.32baead1.async.js
  16. 0
    1
      dist/p__Manage__Jobseeker__Setting__index.270ea838.async.js
  17. 1
    0
      dist/p__Manage__Jobseeker__Setting__index.28af87c5.async.js
  18. 1
    1
      dist/p__ScienceTechnologyPark__Home__index.fe4c2d15.async.js
  19. 1
    0
      dist/p__Talent__Detail__Company__index.3add9154.async.js
  20. 0
    1
      dist/p__Talent__Detail__Company__index.cb4b78cb.async.js
  21. 0
    1
      dist/p__Talent__Detail__Resume__index.eabe17ef.async.js
  22. 1
    0
      dist/p__Talent__Detail__Resume__index.f9276b9e.async.js
  23. 1
    0
      dist/p__Talent__Forget__index.1182db77.async.js
  24. 0
    1
      dist/p__Talent__Forget__index.73cafb6a.async.js
  25. 1
    1
      dist/p__Talent__Home__index.f80bcd83.async.js
  26. 1
    1
      dist/p__Talent__Search__Company__index.be6536ab.async.js
  27. 1
    1
      dist/p__Talent__Search__Job__index.312d2768.async.js
  28. 30
    30
      dist/umi.1b04ba6b.js
  29. 1
    0
      src/access.ts
  30. 3
    1
      src/app.tsx
  31. 1
    0
      src/components/Login/Index/index.tsx
  32. 1
    0
      src/components/Manage/Company/Resume/Read/index.tsx
  33. 32
    31
      src/components/Manage/Company/Resume/Recomment/index.tsx
  34. 1
    1
      src/components/ScienceTechnologyPark/Home/Introduction/index.tsx
  35. 1311
    0
      src/components/Talent/Search/Filter/Jobseeker/index.tsx
  36. 1
    1
      src/components/Talent/Search/Filter/index.tsx
  37. 105
    0
      src/pages/Manage/Company/Fair/index.tsx
  38. 1
    2
      src/pages/Manage/Company/Home/index.tsx
  39. 83
    38
      src/pages/Manage/Company/Recommend/index.tsx
  40. 7
    3
      src/pages/ScienceTechnologyPark/Home/index.tsx
  41. 370
    335
      src/pages/Talent/Detail/Resume/index.tsx
  42. 1
    1
      src/services/apis/company.ts
  43. 3
    0
      src/services/types/url.d.ts
  44. 1
    0
      src/services/url/company.ts

+ 7
- 1
config/routes.ts Voir le fichier

@@ -94,7 +94,7 @@ export default [
access: 'sciencetechnologypark',
routes: [
{
name: '首页',
name: '科创园',
path: '/sciencetechnologypark/home',
component: './ScienceTechnologyPark/Home',
access: 'sciencetechnologyparkhome'
@@ -246,6 +246,12 @@ export default [
component: './Manage/Company/Department',
access: 'managecompanydepartment'
},
{
name: '参与的招聘会',
path: '/manage/company/fair',
component: './Manage/Company/Fair',
access: 'managecompanyfair'
},
{
name: '设置',
path: '/manage/company/setting',

+ 1
- 1
dist/index.html Voir le fichier

@@ -8,6 +8,6 @@
</head>
<body>
<div id="root"></div>
<script src="/umi.c08f4116.js"></script>
<script src="/umi.1b04ba6b.js"></script>
</body>
</html>

+ 1
- 0
dist/p__Manage__Company__Department__index.94141a1d.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 0
- 1
dist/p__Manage__Company__Department__index.ed33e563.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 1
- 0
dist/p__Manage__Company__Fair__index.fc9c3080.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 0
- 1
dist/p__Manage__Company__Home__index.1d77932f.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 1
- 0
dist/p__Manage__Company__Home__index.4d4395f0.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


dist/p__Manage__Company__Info__index.771fe59a.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 1
- 0
dist/p__Manage__Company__Post__index.335b86ec.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 0
- 1
dist/p__Manage__Company__Post__index.8d71d763.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 1
- 0
dist/p__Manage__Company__Recommend__index.4bd0077b.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 0
- 1
dist/p__Manage__Company__Recommend__index.ef6c2e2c.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 0
- 1
dist/p__Manage__Company__Resume__index.90784606.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 1
- 0
dist/p__Manage__Company__Resume__index.d23c10d6.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


dist/p__Manage__Company__Setting__index.32baead1.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 0
- 1
dist/p__Manage__Jobseeker__Setting__index.270ea838.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 1
- 0
dist/p__Manage__Jobseeker__Setting__index.28af87c5.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


dist/p__ScienceTechnologyPark__Home__index.fe4c2d15.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 1
- 0
dist/p__Talent__Detail__Company__index.3add9154.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 0
- 1
dist/p__Talent__Detail__Company__index.cb4b78cb.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 0
- 1
dist/p__Talent__Detail__Resume__index.eabe17ef.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 1
- 0
dist/p__Talent__Detail__Resume__index.f9276b9e.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 1
- 0
dist/p__Talent__Forget__index.1182db77.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 0
- 1
dist/p__Talent__Forget__index.73cafb6a.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


dist/p__Talent__Home__index.f80bcd83.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


dist/p__Talent__Search__Company__index.be6536ab.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


dist/p__Talent__Search__Job__index.312d2768.async.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


dist/umi.1b04ba6b.js
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 1
- 0
src/access.ts Voir le fichier

@@ -24,6 +24,7 @@ export default () => {
managecompanyrecommend: true,
managecompanyinfo: true,
managecompanydepartment: true,
managecompanyfair: true,
managecompanysetting: true,
talentjobdetail: true,
talentCompanydetail: true, talentResumedetail: true, talentfairdetail: true, talentinformationdetail: true

+ 3
- 1
src/app.tsx Voir le fichier

@@ -97,7 +97,7 @@ export const layout = () => {
token: {
pageContainer: {
paddingBlockPageContainerContent: 40,
paddingInlinePageContainerContent: 414,
paddingInlinePageContainerContent: 314,
colorBgPageContainer: '#f5f5f5'

},
@@ -136,6 +136,7 @@ export const layout = () => {
managecompanyrecommend: true,
managecompanyinfo: true,
managecompanydepartment: true,
managecompanyfair: true,
managecompanysetting: true,
talentjobdetail: true,
talentCompanydetail: true, talentResumedetail: true, talentfairdetail: true, talentinformationdetail: true
@@ -194,6 +195,7 @@ export const layout = () => {
localStorage.getItem('path') == '/manage/company/resume' ||
localStorage.getItem('path') == '/manage/company/recommend' ||
localStorage.getItem('path') == '/manage/company/department' ||
localStorage.getItem('path') == '/manage/company/fair' ||
localStorage.getItem('path') == '/manage/company/setting'
) {
localStorage.setItem('role', 'company')

+ 1
- 0
src/components/Login/Index/index.tsx Voir le fichier

@@ -211,6 +211,7 @@ const LoginIndex: React.FC<LoginIndexProps> = ({ type, loginChangeStatus }) => {
},
{
pattern: /^1\d{10}$/,
message: '手机号格式错误',
}
]}
/>

+ 1
- 0
src/components/Manage/Company/Resume/Read/index.tsx Voir le fichier

@@ -13,6 +13,7 @@ import CommonInvite from '@/components/Common/Invite'




interface ManageCompanyResumeReadProps {
changeData: () => void
}

+ 32
- 31
src/components/Manage/Company/Resume/Recomment/index.tsx Voir le fichier

@@ -4,16 +4,17 @@ import type { ActionType, EditableFormInstance } from '@ant-design/pro-component
import { ConfigProvider, Button, Popconfirm, Card, Space, Tabs, Avatar, Tag, Col, Descriptions, Statistic, Divider, Pagination, Anchor } from 'antd';
import { SearchOutlined, LikeOutlined, ArrowRightOutlined, StarOutlined } from '@ant-design/icons';
import { useModel, connect, history, Link } from 'umi';
import { Imageprefix } from '@/constants/index'

import { GetCompanyRecommentResume } from '@/services/apis/company';


const HomePage: React.FC = () => {
const HomePage: React.FC = ({list}) => {
const actionRef = useRef<ActionType>();
const [list, setList] = useState<object[]>([])
const [page, setPage] = useState<number>(1)
const [pageSize, setPageSize] = useState<number>(10)
const [total, setTotal] = useState<number>(0)
// const [list, setList] = useState<object[]>([])
// const [page, setPage] = useState<number>(1)
// const [pageSize, setPageSize] = useState<number>(10)
// const [total, setTotal] = useState<number>(0)

return (
<>
@@ -36,31 +37,31 @@ const HomePage: React.FC = () => {
headerTitle="推荐简历"
rowKey="id"
dataSource={list}
request={async (params = {} as Record<string, any>) =>
GetCompanyRecommentResume({
page: page,
pagesize: pageSize,
sort: 'id',
sortby: 'desc',
}).then((res: any) => {
setList(res.data.list)
setTotal(res.data.total)
})
}
pagination={{
current: page,
pageSize: pageSize,
total: total,
hideOnSinglePage: true,
onChange(page, pageSize) {
setPage(page)
setPageSize(pageSize)
},
onShowSizeChange(current, size) {
setPage(current)
setPageSize(size)
}
}}
// request={async (params = {} as Record<string, any>) =>
// GetCompanyRecommentResume({
// page: page,
// pagesize: pageSize,
// sort: 'id',
// sortby: 'desc',
// }).then((res: any) => {
// setList(res.data.list)
// setTotal(res.data.total)
// })
// }
// pagination={{
// current: page,
// pageSize: pageSize,
// total: total,
// hideOnSinglePage: true,
// onChange(page, pageSize) {
// setPage(page)
// setPageSize(pageSize)
// },
// onShowSizeChange(current, size) {
// setPage(current)
// setPageSize(size)
// }
// }}
showActions="hover"
metas={{
title: {
@@ -74,7 +75,7 @@ const HomePage: React.FC = () => {
},
avatar: {
render: (text, row) => (
<Avatar size={48} src={row.photo} />
<Avatar size={48} src={row.photo ? `${Imageprefix}${row.photo}` : '/images/onlylogo.jpg'} />
)
},
subTitle: {

+ 1
- 1
src/components/ScienceTechnologyPark/Home/Introduction/index.tsx Voir le fichier

@@ -50,7 +50,7 @@ const ScienceTechnologyParkHomeIntroduction: React.FC = () => {
{
advertscheduleList && advertscheduleList.length && advertscheduleList.map((item, index) => (
<>
<Image src={Imageprefix + item.image_url} width={'100%'} height={180} preview={false} style={{ borderRadius: '4px' }} />
<Image src={Imageprefix + item.image_url} width={'100%'} height={240} preview={false} style={{ borderRadius: '4px' }} />
</>
))
}

+ 1311
- 0
src/components/Talent/Search/Filter/Jobseeker/index.tsx
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 1
- 1
src/components/Talent/Search/Filter/index.tsx Voir le fichier

@@ -1041,7 +1041,7 @@ const SearchFilter: React.FC<SearchFilterProps> = ({ dispatch, dictModel, getSea
}));
}}>{titleItem.name}</Tag></Col>}
{skillCertificationeItem && <Col> <Tag closeIcon color="#4FBE70" onClose={() => {
setSkillCertificationeItem(null); setSkillCertificationeItem(['不限'])
setSkillCertificationeItem(null); setSkillCertificationeTags(['不限'])
setSearchJobParams(prevState => ({
...prevState,
certification_rq: 0

+ 105
- 0
src/pages/Manage/Company/Fair/index.tsx Voir le fichier

@@ -0,0 +1,105 @@
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, Descriptions } from 'antd';
import { SearchOutlined, LikeOutlined, ArrowRightOutlined, StarOutlined } from '@ant-design/icons';
import { useModel, connect, history, Link } from 'umi';
import { Imageprefix } from '@/constants';



import { GetCompanyRecrBookList } from '@/services/apis/company';
import EmptyResult from '@/components/Common/EmptyResult'

const HomePage: 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)

useEffect(() => {
GetCompanyRecrBookList({ page: 1, pagesize: 12, sortby: 'desc' }).then(res => {
setList(res.data.list)
setTotal(res.data.total)
})
}, []);



return (
<>
<ConfigProvider
theme={{
token: {
colorPrimary: '#19be6e',
},
components: {
Button: {
colorText: '#19be6e'
}
}
}}
>
<PageContainer
header={{ title: '', }}
style={{ minHeight: 800 }}
>
<Row gutter={[20, 20]}>
{
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' }}
>
{item.title}
</Typography.Title>
<Descriptions style={{ width: '100%', padding: '0 10px', marginBottom: 20 }}>
<Descriptions.Item span={24} label="招聘会开放时间">
<Tag>{item.open_date}</Tag>
</Descriptions.Item>
<Descriptions.Item span={24} label="审核结果">
<Tag>{item.status_text}</Tag>
</Descriptions.Item>
</Descriptions>
</Space>
</Link>
</Col >
</>
))
}
</Row>
{
!list || list.length == 0 && <EmptyResult description="没有找到符合条件的招聘会" />
}
<Flex justify='center' align='center' style={{ margin: '40px 0' }}>
<Pagination
hideOnSinglePage
total={total}
showTotal={(total) => `总共${total}条`}
current={page}
pageSize={pageSize}
pageSizeOptions={['12', '24', '36']}
onChange={(page, pageSize) => {
setPage(page)
setPageSize(pageSize)
GetCompanyRecrBookList({ page: page, pagesize: pageSize, sortby: 'desc' }).then(res => {
setList(res.data.list)
setTotal(res.data.total)
})
}}
/>
</Flex>
</PageContainer >

</ConfigProvider >
</>
);
};

export default HomePage;


+ 1
- 2
src/pages/Manage/Company/Home/index.tsx Voir le fichier

@@ -58,12 +58,11 @@ const HomePage: React.FC = ({ dispatch, dictModel }: any) => {
let allFound = true; // 假设所有 id 都找到了
let result = findItemById(dictModel.industryPostList, detail.industry);
if(result) {
result = findItemById(dictModel.industryPostList, 11133);
result = findItemById(dictModel.industryPostList, detail.industry2);
}
if (!result) {
allFound = false; // 找到一个未匹配的 id
}
console.log(allFound)
if (!allFound) {
Modal.confirm({
title: '更新提示',

+ 83
- 38
src/pages/Manage/Company/Recommend/index.tsx Voir le fichier

@@ -1,48 +1,66 @@
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, Tag, Card, Avatar, Typography, Anchor } from 'antd';
import { ConfigProvider, Button, Flex, Input, Space, Image, Select, Row, Col, Pagination, Tag, Card, Avatar, Typography, Anchor } from 'antd';
import { SearchOutlined, LikeOutlined, ArrowRightOutlined, StarOutlined } from '@ant-design/icons';
import { useModel, connect, history, Link } from 'umi';
import { useModel, connect, history, Link, useSearchParams } from 'umi';

import SearchFilter from '@/components/Manage/Company/Search/Filter';
import SearchResume from '@/components/Manage/Company/Search/Resume';

import { PostJobSearch } from '@/services/apis/post';
import { Imageprefix } from '@/constants/index'

import SearchFilter from '@/components/Talent/Search/Filter/Jobseeker';
import SearchJob from '@/components/Talent/Search/Job/index';
import ManageCompanyResumeRecomment from '@/components/Manage/Company/Resume/Recomment'

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

import { GetCompanyRecommentResume } from '@/services/apis/company';
const HomePage: React.FC = () => {
const [searchParams, setSearchParams] = useState<object>({
page: 1,
pagesize: 12,
sort: 'updated_at',
sortby: 'asc',
keyword: '',
city: 0,
district: 0,
street: 0,
industry: 0,
industry2: 0,
fulltime: 1,
parttime: 2,
casual: 2,
practical: 2,
campus: 2,
pay_range: 0,
school_degree_rq: 0,
scale: 0,
character_flag: 0,
update_time_range: 0,
urgent: 0,
ctype: 0,
ptype: 0
});

const getSearchParams = (value) => {
setSearchParams(value)
const [searchParams, setSearchParams] = useSearchParams();
const [list, setList] = useState<object[]>([])
const [advertscheduleList, setAdvertscheduleList] = useState<object[]>([])
const [search, setSearch] = useState<object | null>(null)
const [total, setTotal] = useState<number>(0)
const [page, setPage] = useState<number>(1)
const [pagesize, setPageSize] = useState<number>(12)


// useEffect(() => {
// PostJobSearch({
// page: 1,
// pagesize: 12,
// sort: 'updated_at',
// sortby: 'desc'
// }).then(res => {
// setList(res.data.jobs)
// getTotal(res.data.total)
// })
// }, []);

const getSearchParams = async (value) => {
setPage(value.page)
setPageSize(value.pagesize)
if (value.keyword) {
setSearchParams({ keyword: value.keyword })
} else {
setSearchParams({ keyword: '' })
}

let res = await GetCompanyRecommentResume(value ? value : {
page: page,
pagesize: pagesize,
sort: 'updated_at',
sortby: 'desc',
})
setList(res.data.list)
getTotal(res.data.total)
}

const getTotal = (value) => {
setTotal(value)
}


return (
<>
@@ -58,10 +76,37 @@ const HomePage: React.FC = () => {
}
}}
>
{/* <SearchFilter getSearchParams={getSearchParams}></SearchFilter> */}
{/* <SearchResume searchParams={searchParams}></SearchResume> */}
<ManageCompanyResumeRecomment></ManageCompanyResumeRecomment>

<Space direction='vertical' size={30} style={{ minHeight: '800px' }}>
{/* <SearchFilter getSearchParams={getSearchParams}
keyword={searchParams.get('keyword') ? searchParams.get('keyword') : ''}
page={page}
pagesize={pagesize}
></SearchFilter> */}
<Row gutter={[16, 16]}>
<Col span={24}>
<ManageCompanyResumeRecomment list={list}></ManageCompanyResumeRecomment>

<Flex justify='center' align='center' style={{ margin: '40px 0' }}>
<Pagination
hideOnSinglePage
total={total}
showTotal={(total) => `总共${total}条`}
current={page}
pageSize={pagesize}
pageSizeOptions={['12', '24', '36']}
onChange={(page, pageSize) => {
setPage(page)
setPageSize(pageSize)
}}
/>
</Flex>
</Col>

</Row>

</Space>

</ConfigProvider >
</>

+ 7
- 3
src/pages/ScienceTechnologyPark/Home/index.tsx Voir le fichier

@@ -102,7 +102,7 @@ const HomePage: React.FC = () => {
<Flex justify='space-around' align='center' style={{ width: '100%', background: '#ffffff', padding: 20 }}>
{keyModel && keyModel.length && keyModel.map((item, index) => (
<>
<Flex vertical align='center'>
<Flex justify='space-between' align='center' style={{ marginBottom: 20 }}>
<Flex justify='center' align='center' style={{
backgroundColor: '#ffc100',
borderRadius: '50%',
@@ -133,10 +133,14 @@ const HomePage: React.FC = () => {
<div>
{item.title2}
</div>

</Flex>
</Flex>
<Flex justify='center' align='center' style={{ marginTop: 40, width: 200 }}>
<Flex style={{
width: 200,
height: 140,
paddingTop: 30,
paddingLeft: 10
}}>
{item.content}
</Flex>
</Flex>

+ 370
- 335
src/pages/Talent/Detail/Resume/index.tsx Voir le fichier

@@ -13,10 +13,11 @@ import './index.module.less'

import { GetJobseekerDetail, GetJobapplicantContactdetail } from '@/services/apis/resume'

import CommonInvite from '@/components/Common/Invite'
const ManageJobseekerResumeDetail: React.FC = () => {
const [searchParams] = useSearchParams();
const [detail, setDetail] = useState({})
const [openPreview, setOpenPreview] = useState(false);


useEffect(() => {
@@ -26,6 +27,10 @@ const ManageJobseekerResumeDetail: React.FC = () => {
})
}, []);

const closeModel = (value: boolean) => {
setOpenPreview(value)
}


return (
<>
@@ -40,340 +45,370 @@ const ManageJobseekerResumeDetail: React.FC = () => {
}}
>
{
detail && <>
<div style={{ minHeight: 1000 }}>
<Space direction='vertical' size={30} style={{ width: '100%' }}>
<div id="export-container">
<div >
<h1 style={{ textAlign: 'center' }}>个人简历</h1>
<div>
<div>
<div style={{ color: '#4fbe70' }}>
<h3 >基本资料</h3>
</div>
<div>
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}>
<tbody>
<tr style={{ height: '30px' }}>
<td>姓&nbsp;名</td>
<td>{detail.seekername}</td>
<td>性&nbsp;别</td>
<td>{detail.gender}</td>
<td rowSpan={6} style={{ textAlign: 'center', verticalAlign: 'middle' }}>
<img src={`${Imageprefix}${detail.photo}`} alt="" width="90" height="150" />
</td>
</tr>
<tr style={{ height: '30px' }}>
<td>出生日期</td>
<td>{detail.dob}</td>
<td>职&nbsp;称</td>
<td>{detail.title_txt}</td>
</tr>
<tr style={{ height: '30px' }}>
<td>现居住地</td>
<td>{detail.now_level1_txt ? detail.now_level1_txt : ''}{detail.now_level2_txt ? detail.now_level2_txt : ''}{detail.now_level3_txt ? detail.now_level3_txt : ''}{detail.now_level4_txt ? detail.now_level4_txt : ''}
</td>
<td>户口所在地</td>
<td>{detail.now_level1_txt ? detail.now_level1_txt : ''}{detail.now_level2_txt ? detail.now_level2_txt : ''}{detail.now_level3_txt ? detail.now_level3_txt : ''}{detail.now_level4_txt ? detail.now_level4_txt : ''}
</td>
</tr>
<tr style={{ height: '30px' }}>
<td>学&nbsp;历</td>
<td>{detail.education_txt}</td>
<td>婚姻状况</td>
<td>{detail.marital_status_txt}</td>
</tr>
<tr style={{ height: '30px' }}>
<td>民&nbsp;族</td>
<td>{detail.ethnicity_txt}</td>
<td>政治面貌</td>
<td>{detail.political_status_txt}</td>
</tr>
<tr style={{ height: '30px' }}>
<td>体&nbsp;重</td>
<td>{detail.weight}kg</td>
<td>身&nbsp;高</td>
<td>{detail.height}cm</td>
</tr>
</tbody>
</table>
</div>
</div>
{/* 个人简介 */}
<div>
<div style={{ color: '#4fbe70' }}>
<h3 >个人简介</h3>
</div>
<div>
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}>
<tbody>
<tr >
<td style={{ width: '20%' }}>个人简介</td>
<td style={{ width: '80%' }}>
{<div dangerouslySetInnerHTML={{ __html: detail.introduction }} />}
</td>
</tr>
</tbody>
</table>
</div>
</div>
{/* 求职期望 */}
<div>
<div style={{ color: '#4fbe70' }}>
<h3 >求职期望</h3>
</div>
<div>
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}>
<tbody>
<tr style={{ height: '30px' }}>
<td style={{ width: '20%' }}>求职类型</td>
<td style={{ width: '30%' }}>{detail.job_type_txt}</td>
<td style={{ width: '20%' }}>可到职日期</td>
<td style={{ width: '30%' }}>{detail.available_date_txt}</td>
</tr>
<tr style={{ height: '30px' }}>
<td style={{ width: '20%' }}>人才类型</td>
<td style={{ width: '30%' }}>{detail.talent_type_txt}</td>
<td style={{ width: '20%' }}>工作经验</td>
<td style={{ width: '30%' }}>{detail.work_experience}</td>
</tr>
<tr style={{ height: '30px' }}>
<td style={{ width: '20%' }}>月薪要求</td>
<td colspan={3} style={{ width: '80%' }}>{detail.salary_range_txt}</td>
</tr>
{
detail.desire_areas && detail.desire_areas.map((item, index) => (
<tr style={{ height: '30px' }}>
<td style={{ width: '20%' }}>期望工作地区{index + 1}</td>
<td colspan={3} style={{ width: '80%' }}>
{item.level1_txt ? item.level1_txt : ''}
{item.level2_txt ? item.level2_txt : ''}
{item.level3_txt ? item.level3_txt : ''}
{item.level4_txt ? item.level4_txt : ''}
</td>
</tr>
))
}
{
detail.desire_industrys && detail.desire_industrys.map((item, index) => (
<tr style={{ height: '30px' }}>
<td style={{ width: '20%' }}>期望从事行业{index + 1}</td>
<td colspan={3} style={{ width: '80%' }}>
{item.industry_txt ? item.industry_txt : ''}
</td>
</tr>
))
}
{
detail.desire_positions && detail.desire_positions.map((item, index) => (
<tr style={{ height: '30px' }}>
<td style={{ width: '20%' }}>期望从事职位{index + 1}</td>
<td colspan={3} style={{ width: '80%' }}>
{item.level1_txt ? item.level1_txt : ''}
{item.level2_txt ? item.level2_txt : ''}
</td>
</tr>
))
}
</tbody>
</table>
</div>
</div>
{/* 教育培训 */}
<div>
<div style={{ color: '#4fbe70' }}>
<h3 >教育培训</h3>
</div>
<div>
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}>
<thead>
<th style={{ height: '30px', width: '20%' }}>起止时间</th>
<th style={{ height: '30px', width: '20%' }}>学校/培训机构</th>
<th style={{ height: '30px', width: '20%' }}>专业</th>
<th style={{ height: '30px', width: '20%' }}>曾担任的职务</th>
<th style={{ height: '30px', width: '20%' }}>获得证书奖项</th>
</thead>
<tbody>
{
detail.trainings && detail.trainings.map((item, index) => (
<tr style={{ height: '30px' }}>
<td style={{ width: '20%' }}>
{item.start_year}.{item.start_month}至{item.end_year}.{item.end_month}
</td>
<td style={{ width: '20%' }}>{item.school_or_institution}</td>
<td style={{ width: '20%' }}>{item.major}</td>
<td style={{ width: '20%' }}>{item.positions_held}</td>
<td style={{ width: '20%' }}>
<div>
{item.certificate}
</div>
<div>
{item.awards}
</div>
</td>
</tr>
))
}
</tbody>
</table>
</div>
</div>
{/* 工作经历 */}
<div>
<div style={{ color: '#4fbe70' }}>
<h3 >工作经历</h3>
</div>
<div>
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}>
<thead>
<th style={{ height: '30px', width: '25%' }}>起止时间</th>
<th style={{ height: '30px', width: '25%' }}>单位名称</th>
<th style={{ height: '30px', width: '25%' }}>职位</th>
<th style={{ height: '30px', width: '25%' }}>离职原因</th>
</thead>
<tbody>
{
detail.trainings && detail.trainings.map((item, index) => (
<tr style={{ height: '30px' }}>
<td style={{ width: '25%' }}>
{item.start_year}.{item.start_month}至{item.end_year}.{item.end_month}
</td>
<td style={{ width: '25%' }}>{item.company_name}</td>
<td style={{ width: '25%' }}>{item.position}</td>
<td style={{ width: '25%' }}>{item.positioreason_for_leavings_held}</td>
</tr>
))
}
</tbody>
</table>
</div>
</div>
{/* 专业技能掌握能力 */}
<div>
<div style={{ color: '#4fbe70' }}>
<h3 >专业技能掌握能力</h3>
</div>
<div>
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}>
<tbody>
<tr style={{ height: '30px' }}>
<td style={{ width: '25%' }}>英&nbsp;语</td>
<td style={{ width: '25%' }}>{detail.english_txt}</td>
<td style={{ width: '25%' }}>粤&nbsp;语</td>
<td style={{ width: '25%' }}>{detail.mandarin_txt}</td>
</tr>
<tr style={{ height: '30px' }}>
<td style={{ width: '25%' }}>国&nbsp;语</td>
<td style={{ width: '25%' }}>{detail.cantonese_txt}</td>
<td style={{ width: '25%' }}>第二外语</td>
<td style={{ width: '25%' }}>{detail.other_language_txt}</td>
</tr>
<tr style={{ height: '30px' }}>
<td style={{ width: '25%' }}>计算机能力</td>
<td colspan={7} style={{ width: '75%' }}>{detail.computer_skills}</td>
</tr>
</tbody>
</table>
</div>
</div>
{/* 联系信息 */}
<div>
<div style={{ color: '#4fbe70' }}>
<h3 >联系信息</h3>
</div>
<div>
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}>
<tbody>
<tr style={{ height: '30px' }}>
<td style={{ width: '15%' }}>移动电话</td>
<td style={{ width: '35%' }}>{detail.mobile} <Button type='link' onClick={() => {
Modal.confirm({
title: '获取联系方式',
content: '获取联系方式需要扣除一个点数,是否要获取联系方式',
centered: true,
okText: '获取',
cancelText: '取消',
onOk() {
GetJobapplicantContactdetail({ customer_id: detail.customer_id }).then(res => {
GetJobseekerDetail({ customer_id: searchParams.get('id') }).then(res => {
setDetail(res.data)
})
})
},
onCancel() {
},
});
}}>获取详细</Button> </td>
<td style={{ width: '15%' }}>固定电话</td>
<td style={{ width: '35%' }}>{detail.landline}</td>
</tr>
<tr style={{ height: '30px' }}>
<td style={{ width: '15%' }}>联系邮箱</td>
<td style={{ width: '35%' }}>{detail.email}</td>
<td style={{ width: '15%' }}>Q&nbsp;Q</td>
<td style={{ width: '35%' }}>{detail.qq}</td>
</tr>
<tr style={{ height: '30px' }}>
<td style={{ width: '15%' }}>通讯地址</td>
<td style={{ width: '35%' }}>{detail.mailing_address}</td>
<td style={{ width: '15%' }}>邮&nbsp;编</td>
<td style={{ width: '35%' }}>{detail.postal_code}</td>
</tr>
<tr style={{ height: '30px' }}>
<td style={{ width: '15%' }}>个人主页</td>
<td colspan={3} style={{ width: '85%' }}>{detail.personal_website}</td>
</tr>
</tbody>
</table>
</div>
{/* 证书信息 */}
<div>
<div style={{ color: '#4fbe70' }}>
<h3 >证书信息</h3>
</div>
<div>
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}>
<thead>
<th style={{ height: '30px', width: '25%' }}>证书名称</th>
<th style={{ height: '30px', width: '80%' }}>证书图片</th>
</thead>
<tbody>
{
detail.certificates && detail.certificates.map((item, index) => (
<tr >
<td style={{ width: '25%' }}>{item.name}</td>
<td style={{ width: '80%' }}>
<img src={`${Imageprefix}${item.certificate_photo}`} alt="" width="90" height="150" />
</td>
</tr>
))
}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div >
</div >
<Flex justify="flex-end" align='center'>
<Button type='primary' onClick={async () => {
const htmlContent = document.getElementById('export-container'); // 获取需要转换的HTML内容
const convertedFile = htmlDocx.asBlob(htmlContent?.outerHTML!);
const fileData = await convertedFile;
saveAs((fileData as Blob), '个人简历.docx')
}}>下载简历</Button>
</Flex>
</Space>
</div>
</>
}
detail && <>
<div style={{ minHeight: 1000 }}>
<Space direction='vertical' size={30} style={{ width: '100%' }}>
<div id="export-container">
<div >
<h1 style={{ textAlign: 'center' }}>个人简历</h1>
<div>
<div>
<div style={{ color: '#4fbe70' }}>
<h3 >基本资料</h3>
</div>
<div>
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}>
<tbody>
<tr style={{ height: '30px' }}>
<td>姓&nbsp;名</td>
<td>{detail.seekername}</td>
<td>性&nbsp;别</td>
<td>{detail.gender}</td>
<td rowSpan={6} style={{ textAlign: 'center', verticalAlign: 'middle' }}>
<img src={detail.photo ? `${Imageprefix}${detail.photo}` : ''} alt="" width="90" height="150" />
</td>
</tr>
<tr style={{ height: '30px' }}>
<td>出生日期</td>
<td>{detail.dob}</td>
<td>职&nbsp;称</td>
<td>{detail.title_txt}</td>
</tr>
<tr style={{ height: '30px' }}>
<td>现居住地</td>
<td>{detail.now_level1_txt ? detail.now_level1_txt : ''}{detail.now_level2_txt ? detail.now_level2_txt : ''}{detail.now_level3_txt ? detail.now_level3_txt : ''}{detail.now_level4_txt ? detail.now_level4_txt : ''}
</td>
<td>户口所在地</td>
<td>{detail.now_level1_txt ? detail.now_level1_txt : ''}{detail.now_level2_txt ? detail.now_level2_txt : ''}{detail.now_level3_txt ? detail.now_level3_txt : ''}{detail.now_level4_txt ? detail.now_level4_txt : ''}
</td>
</tr>
<tr style={{ height: '30px' }}>
<td>学&nbsp;历</td>
<td>{detail.education_txt}</td>
<td>婚姻状况</td>
<td>{detail.marital_status_txt}</td>
</tr>
<tr style={{ height: '30px' }}>
<td>民&nbsp;族</td>
<td>{detail.ethnicity_txt}</td>
<td>政治面貌</td>
<td>{detail.political_status_txt}</td>

</tr>
<tr style={{ height: '30px' }}>
<td>体&nbsp;重</td>
<td>{detail.weight}kg</td>
<td>身&nbsp;高</td>
<td>{detail.height}cm</td>
</tr>
</tbody>
</table>
</div>
</div>
{/* 个人简介 */}
<div>
<div style={{ color: '#4fbe70' }}>
<h3 >个人简介</h3>
</div>
<div>
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}>
<tbody>
<tr >
<td style={{ width: '20%' }}>个人简介</td>
<td style={{ width: '80%' }}>
{<div dangerouslySetInnerHTML={{ __html: detail.introduction }} />}
</td>
</tr>
</tbody>
</table>
</div>
</div>
{/* 求职期望 */}
<div>
<div style={{ color: '#4fbe70' }}>
<h3 >求职期望</h3>
</div>
<div>
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}>
<tbody>
<tr style={{ height: '30px' }}>
<td style={{ width: '20%' }}>求职类型</td>
<td style={{ width: '30%' }}>{detail.job_type_txt}</td>
<td style={{ width: '20%' }}>可到职日期</td>
<td style={{ width: '30%' }}>{detail.available_date_txt}</td>
</tr>
<tr style={{ height: '30px' }}>
<td style={{ width: '20%' }}>人才类型</td>
<td style={{ width: '30%' }}>{detail.talent_type_txt}</td>
<td style={{ width: '20%' }}>工作经验</td>
<td style={{ width: '30%' }}>{detail.work_experience}</td>
</tr>
<tr style={{ height: '30px' }}>
<td style={{ width: '20%' }}>月薪要求</td>
<td colspan={3} style={{ width: '80%' }}>{detail.salary_range_txt}</td>
</tr>
{
detail.desire_areas && detail.desire_areas.map((item, index) => (
<tr style={{ height: '30px' }}>
<td style={{ width: '20%' }}>期望工作地区{index + 1}</td>
<td colspan={3} style={{ width: '80%' }}>
{item.level1_txt ? item.level1_txt : ''}
{item.level2_txt ? item.level2_txt : ''}
{item.level3_txt ? item.level3_txt : ''}
{item.level4_txt ? item.level4_txt : ''}
</td>
</tr>
))
}
{
detail.desire_industrys && detail.desire_industrys.map((item, index) => (
<tr style={{ height: '30px' }}>
<td style={{ width: '20%' }}>期望从事行业{index + 1}</td>
<td colspan={3} style={{ width: '80%' }}>
{item.industry_txt ? item.industry_txt : ''}
</td>
</tr>
))
}
{
detail.desire_positions && detail.desire_positions.map((item, index) => (
<tr style={{ height: '30px' }}>
<td style={{ width: '20%' }}>期望从事职位{index + 1}</td>
<td colspan={3} style={{ width: '80%' }}>
{item.level1_txt ? item.level1_txt : ''}
{item.level2_txt ? item.level2_txt : ''}
</td>
</tr>
))
}
</tbody>
</table>
</div>
</div>
{/* 教育培训 */}
<div>
<div style={{ color: '#4fbe70' }}>
<h3 >教育培训</h3>
</div>
<div>
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}>
<thead>
<th style={{ height: '30px', width: '20%' }}>起止时间</th>
<th style={{ height: '30px', width: '20%' }}>学校/培训机构</th>
<th style={{ height: '30px', width: '20%' }}>专业</th>
<th style={{ height: '30px', width: '20%' }}>曾担任的职务</th>
<th style={{ height: '30px', width: '20%' }}>获得证书奖项</th>
</thead>
<tbody>
{
detail.trainings && detail.trainings.map((item, index) => (
<tr style={{ height: '30px' }}>
<td style={{ width: '20%' }}>
{item.start_year}.{item.start_month}至{item.end_year}.{item.end_month}
</td>
<td style={{ width: '20%' }}>{item.school_or_institution}</td>
<td style={{ width: '20%' }}>{item.major}</td>
<td style={{ width: '20%' }}>{item.positions_held}</td>
<td style={{ width: '20%' }}>
<div>
{item.certificate}
</div>
<div>
{item.awards}
</div>
</td>
</tr>
))
}
</tbody>
</table>
</div>
</div>
{/* 工作经历 */}
<div>
<div style={{ color: '#4fbe70' }}>
<h3 >工作经历</h3>
</div>
<div>
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}>
<thead>
<th style={{ height: '30px', width: '25%' }}>起止时间</th>
<th style={{ height: '30px', width: '25%' }}>单位名称</th>
<th style={{ height: '30px', width: '25%' }}>职位</th>
<th style={{ height: '30px', width: '25%' }}>离职原因</th>
</thead>
<tbody>
{
detail.trainings && detail.trainings.map((item, index) => (
<tr style={{ height: '30px' }}>
<td style={{ width: '25%' }}>
{item.start_year}.{item.start_month}至{item.end_year}.{item.end_month}
</td>
<td style={{ width: '25%' }}>{item.company_name}</td>
<td style={{ width: '25%' }}>{item.position}</td>
<td style={{ width: '25%' }}>{item.positioreason_for_leavings_held}</td>
</tr>
))
}
</tbody>
</table>
</div>
</div>
{/* 专业技能掌握能力 */}
<div>
<div style={{ color: '#4fbe70' }}>
<h3 >专业技能掌握能力</h3>
</div>
<div>
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}>
<tbody>
<tr style={{ height: '30px' }}>
<td style={{ width: '25%' }}>英&nbsp;语</td>
<td style={{ width: '25%' }}>{detail.english_txt}</td>
<td style={{ width: '25%' }}>粤&nbsp;语</td>
<td style={{ width: '25%' }}>{detail.mandarin_txt}</td>
</tr>
<tr style={{ height: '30px' }}>
<td style={{ width: '25%' }}>国&nbsp;语</td>
<td style={{ width: '25%' }}>{detail.cantonese_txt}</td>
<td style={{ width: '25%' }}>第二外语</td>
<td style={{ width: '25%' }}>{detail.other_language_txt}</td>
</tr>
<tr style={{ height: '30px' }}>
<td style={{ width: '25%' }}>计算机能力</td>
<td colspan={7} style={{ width: '75%' }}>{detail.computer_skills}</td>
</tr>
</tbody>
</table>
</div>
</div>
{/* 联系信息 */}
<div>
<div style={{ color: '#4fbe70' }}>
<h3 >联系信息</h3>
</div>
<div>
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}>
<tbody>
<tr style={{ height: '30px' }}>
<td style={{ width: '15%' }}>移动电话</td>
<td style={{ width: '35%' }}>{detail.mobile} <Button type='link' onClick={() => {
Modal.confirm({
title: '获取联系方式',
content: '获取联系方式需要扣除一个点数,是否要获取联系方式',
centered: true,
okText: '获取',
cancelText: '取消',
onOk() {
GetJobapplicantContactdetail({ customer_id: detail.customer_id }).then(res => {
GetJobseekerDetail({ customer_id: searchParams.get('id') }).then(res => {
setDetail(res.data)
})
})
},
onCancel() {

},
});
}}>获取详细</Button> </td>
<td style={{ width: '15%' }}>固定电话</td>
<td style={{ width: '35%' }}>{detail.landline}</td>
</tr>
<tr style={{ height: '30px' }}>
<td style={{ width: '15%' }}>联系邮箱</td>
<td style={{ width: '35%' }}>{detail.email}</td>
<td style={{ width: '15%' }}>Q&nbsp;Q</td>
<td style={{ width: '35%' }}>{detail.qq}</td>
</tr>
<tr style={{ height: '30px' }}>
<td style={{ width: '15%' }}>通讯地址</td>
<td style={{ width: '35%' }}>{detail.mailing_address}</td>
<td style={{ width: '15%' }}>邮&nbsp;编</td>
<td style={{ width: '35%' }}>{detail.postal_code}</td>
</tr>
<tr style={{ height: '30px' }}>
<td style={{ width: '15%' }}>个人主页</td>
<td colspan={3} style={{ width: '85%' }}>{detail.personal_website}</td>
</tr>
</tbody>
</table>
</div>
{/* 证书信息 */}
<div>
<div style={{ color: '#4fbe70' }}>
<h3 >证书信息</h3>
</div>
<div>
<table border={1} style={{ borderCollapse: 'collapse', textAlign: 'center', width: '100%' }}>
<thead>
<th style={{ height: '30px', width: '25%' }}>证书名称</th>
<th style={{ height: '30px', width: '80%' }}>证书图片</th>
</thead>
<tbody>
{
detail.certificates && detail.certificates.map((item, index) => (
<tr >
<td style={{ width: '25%' }}>{item.name}</td>
<td style={{ width: '80%' }}>
<img src={`${Imageprefix}${item.certificate_photo}`} alt="" width="90" height="150" />
</td>
</tr>
))
}
</tbody>
</table>
</div>
</div>
</div>

</div>
</div >
</div >
<Flex justify="flex-end" align='center'>
<Space>
<Button type='primary' onClick={async () => {
const htmlContent = document.getElementById('export-container'); // 获取需要转换的HTML内容
const convertedFile = htmlDocx.asBlob(htmlContent?.outerHTML!);
const fileData = await convertedFile;
saveAs((fileData as Blob), '个人简历.docx')
}}>下载简历</Button>

{
localStorage.getItem('role') === 'company' && <>
<Button type='primary' onClick={async () => {
const htmlContent = document.getElementById('export-container'); // 获取需要转换的HTML内容
const convertedFile = htmlDocx.asBlob(htmlContent?.outerHTML!);
const fileData = await convertedFile;
saveAs((fileData as Blob), '个人简历.docx')
}}>邀请面试</Button>
</>
}

</Space>

</Flex>
</Space>

</div>

<Modal
open={openPreview}
title='发送面试邀请'
centered
maskClosable={false}
footer={null}
destroyOnClose
width={400}
onCancel={() => {
setOpenPreview(false)
}}
>
<CommonInvite detail={detail} closeModel={closeModel}></CommonInvite>
</Modal>

</>
}


</ConfigProvider >


+ 1
- 1
src/services/apis/company.ts Voir le fichier

@@ -41,5 +41,5 @@ export const GetCompanyRecruiters = GetModel(CompanyUrl.CompanyRecruiters); //
export const PostJobseekerResetPwd = PostModel(CompanyUrl.JobseekerResetPwd);

export const PostCompanySearch = PostModel(CompanyUrl.CompanySearch);
export const GetCompanyRecrBookList = GetModel(CompanyUrl.CompanyRecrBookList); // 列表


+ 3
- 0
src/services/types/url.d.ts Voir le fichier

@@ -174,6 +174,8 @@ declare namespace Url {

JobseekerResetPwd?: string // 重置密码
CompanySearch?: string
CompanyRecrBookList?: string;

}

interface Advertschedule {
@@ -192,5 +194,6 @@ declare namespace Url {
RecruitmentList?: string;
RecruitmentBookcompany?: string;
RecruitmentBookAdd?: string;

}
}

+ 1
- 0
src/services/url/company.ts Voir le fichier

@@ -41,6 +41,7 @@ export const CompanyUrl: Url.Company = {
JobseekerResetPwd: web + '/jobseeker/resetpwd', // 重置密码

CompanySearch: web + '/company/search', // 重置密码
CompanyRecrBookList: web + '/company/recr_book_list',



Chargement…
Annuler
Enregistrer