From 64311d8e069ae9d74e0cc10083e61800b1439c55 Mon Sep 17 00:00:00 2001 From: luosongbai <15272473386@163.com> Date: Wed, 20 Jul 2022 18:39:11 +0800 Subject: [PATCH] 1 --- config-overrides.js | 9 + package.json | 13 +- public/images/jiantou.png | Bin 0 -> 1722 bytes public/index.html | 26 +- public/logo192.png | Bin 5347 -> 0 bytes public/logo512.png | Bin 9664 -> 0 bytes public/manifest.json | 25 - public/robots.txt | 3 - src/App.css | 140 ++- src/App.js | 37 +- src/AppLayOut.jsx | 153 +++ src/components/CandidateTable/index.css | 15 + src/components/CandidateTable/index.jsx | 122 +++ src/components/Editresume/index.css | 38 + src/components/Editresume/index.jsx | 894 ++++++++++++++++++ src/components/ExportForm/index.css | 4 + src/components/ExportForm/index.jsx | 103 ++ src/components/HeadLeftTtile/index.css | 5 + src/components/HeadLeftTtile/index.jsx | 13 + src/components/InterviewUploadPop/index.jsx | 27 + .../EnclosureTabs/index.css | 3 + .../EnclosureTabs/index.jsx | 49 + .../InterviewTabs/index.css | 19 + .../InterviewTabs/index.jsx | 127 +++ .../InterviewerInfoPop/OfferTabs/index.css | 18 + .../InterviewerInfoPop/OfferTabs/index.jsx | 159 ++++ .../OperatiolistTabs/index.css | 3 + .../OperatiolistTabs/index.jsx | 36 + .../InterviewerInfoPop/RemarksTabs/index.css | 17 + .../InterviewerInfoPop/RemarksTabs/index.jsx | 70 ++ src/components/InterviewerInfoPop/index.css | 38 + src/components/InterviewerInfoPop/index.jsx | 265 ++++++ src/components/NavHeader/index.css | 4 + src/components/NavHeader/index.jsx | 103 ++ src/components/ResumeUploadPop/index.jsx | 31 + src/components/Steptone/index.css | 7 + src/components/Steptone/index.jsx | 45 + src/index.js | 26 +- src/logo.svg | 1 - src/pages/Login.jsx | 80 ++ src/pages/PageNotFound.jsx | 7 + .../ResumeUpload/StandardResume/index.jsx | 10 + src/pages/ResumeUpload/index.css | 23 + src/pages/ResumeUpload/index.jsx | 195 ++++ src/pages/admin/Candidate/index.css | 54 ++ src/pages/admin/Candidate/index.jsx | 99 ++ src/pages/admin/Interview/index.css | 11 + src/pages/admin/Interview/index.jsx | 424 +++++++++ src/pages/admin/Overview/index.jsx | 9 + .../admin/Position/Endrecruitment/index.css | 3 + .../admin/Position/Endrecruitment/index.jsx | 123 +++ .../admin/Position/Inrecruitment/index.css | 22 + .../admin/Position/Inrecruitment/index.jsx | 115 +++ src/pages/admin/Position/index.css | 63 ++ src/pages/admin/Position/index.jsx | 130 +++ src/pages/admin/Report_forms/index.jsx | 9 + src/pages/admin/Set_up/index.jsx | 9 + src/pages/admin/Talent_pool/index.jsx | 9 + src/pages/login.css | 14 + src/routes/AuthComponent.jsx | 8 + src/routes/GlobalRouter.jsx | 42 + src/routes/Redirect.jsx | 12 + yarn.lock | 691 +++++++++++++- 63 files changed, 4679 insertions(+), 131 deletions(-) create mode 100644 config-overrides.js create mode 100644 public/images/jiantou.png delete mode 100644 public/logo192.png delete mode 100644 public/logo512.png delete mode 100644 public/manifest.json delete mode 100644 public/robots.txt create mode 100644 src/AppLayOut.jsx create mode 100644 src/components/CandidateTable/index.css create mode 100644 src/components/CandidateTable/index.jsx create mode 100644 src/components/Editresume/index.css create mode 100644 src/components/Editresume/index.jsx create mode 100644 src/components/ExportForm/index.css create mode 100644 src/components/ExportForm/index.jsx create mode 100644 src/components/HeadLeftTtile/index.css create mode 100644 src/components/HeadLeftTtile/index.jsx create mode 100644 src/components/InterviewUploadPop/index.jsx create mode 100644 src/components/InterviewerInfoPop/EnclosureTabs/index.css create mode 100644 src/components/InterviewerInfoPop/EnclosureTabs/index.jsx create mode 100644 src/components/InterviewerInfoPop/InterviewTabs/index.css create mode 100644 src/components/InterviewerInfoPop/InterviewTabs/index.jsx create mode 100644 src/components/InterviewerInfoPop/OfferTabs/index.css create mode 100644 src/components/InterviewerInfoPop/OfferTabs/index.jsx create mode 100644 src/components/InterviewerInfoPop/OperatiolistTabs/index.css create mode 100644 src/components/InterviewerInfoPop/OperatiolistTabs/index.jsx create mode 100644 src/components/InterviewerInfoPop/RemarksTabs/index.css create mode 100644 src/components/InterviewerInfoPop/RemarksTabs/index.jsx create mode 100644 src/components/InterviewerInfoPop/index.css create mode 100644 src/components/InterviewerInfoPop/index.jsx create mode 100644 src/components/NavHeader/index.css create mode 100644 src/components/NavHeader/index.jsx create mode 100644 src/components/ResumeUploadPop/index.jsx create mode 100644 src/components/Steptone/index.css create mode 100644 src/components/Steptone/index.jsx delete mode 100644 src/logo.svg create mode 100644 src/pages/Login.jsx create mode 100644 src/pages/PageNotFound.jsx create mode 100644 src/pages/ResumeUpload/StandardResume/index.jsx create mode 100644 src/pages/ResumeUpload/index.css create mode 100644 src/pages/ResumeUpload/index.jsx create mode 100644 src/pages/admin/Candidate/index.css create mode 100644 src/pages/admin/Candidate/index.jsx create mode 100644 src/pages/admin/Interview/index.css create mode 100644 src/pages/admin/Interview/index.jsx create mode 100644 src/pages/admin/Overview/index.jsx create mode 100644 src/pages/admin/Position/Endrecruitment/index.css create mode 100644 src/pages/admin/Position/Endrecruitment/index.jsx create mode 100644 src/pages/admin/Position/Inrecruitment/index.css create mode 100644 src/pages/admin/Position/Inrecruitment/index.jsx create mode 100644 src/pages/admin/Position/index.css create mode 100644 src/pages/admin/Position/index.jsx create mode 100644 src/pages/admin/Report_forms/index.jsx create mode 100644 src/pages/admin/Set_up/index.jsx create mode 100644 src/pages/admin/Talent_pool/index.jsx create mode 100644 src/pages/login.css create mode 100644 src/routes/AuthComponent.jsx create mode 100644 src/routes/GlobalRouter.jsx create mode 100644 src/routes/Redirect.jsx diff --git a/config-overrides.js b/config-overrides.js new file mode 100644 index 0000000..8bf076d --- /dev/null +++ b/config-overrides.js @@ -0,0 +1,9 @@ +const { override, fixBabelImports } = require('customize-cra') + +module.exports = override( + fixBabelImports('import', { + libraryName: 'antd', + libraryDirectory: 'es', + style: 'css', + }) +) diff --git a/package.json b/package.json index 29a7ef9..03a3894 100644 --- a/package.json +++ b/package.json @@ -6,15 +6,22 @@ "@testing-library/jest-dom": "^5.14.1", "@testing-library/react": "^13.0.0", "@testing-library/user-event": "^13.2.1", + "antd": "^4.20.7", + "babel-plugin-import": "^1.13.5", + "customize-cra": "^1.0.0", + "less": "^4.1.2", + "less-loader": "^11.0.0", "react": "^18.1.0", + "react-app-rewired": "^2.2.1", "react-dom": "^18.1.0", + "react-router-dom": "^6.3.0", "react-scripts": "5.0.1", "web-vitals": "^2.1.0" }, "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test", + "start": "react-app-rewired start", + "build": "react-app-rewired build", + "test": "react-app-rewired test", "eject": "react-scripts eject" }, "eslintConfig": { diff --git a/public/images/jiantou.png b/public/images/jiantou.png new file mode 100644 index 0000000000000000000000000000000000000000..e1d664b80db8a74aee85464659355a62e8d9f3ec GIT binary patch literal 1722 zcmbVNeQeZZ7%$+)Jc4c*WiV$-M+`%*Uw8EG%5JyqI=53hkK>TxM?$ZCZ>zg&ySCfi zE+z}x2pUj{l7R~*g2T7~GqA)DK$buPkr`t!X3qGB+d?MdbR!TGO~AMJr7@_;<=Vb| z-{13lzMsAlY-(6)TWLcOWNDz03&Ce0yfzkD_xXnL#qe>j*0|L`5WK>=79FQ#x;mWkSbqN6T~)Pq7l#{D_-oEQ==FvOI~ctdY~Hqj$tzG}28$wGoSFahVsMwem=NxNcH;`u!MwzTnh z9&MQQozSAJZ?{Do;VumjAz-K-x(Mn!p~i}wVOpzdsz$5&4}Rp2^WJEzUk8Gz>S0xl z2PIsGe?ldZjjDQFfN_%JLJJ@?r6sM6=h=W_n1UjL0O!S^skkglEO0PX#N`z2 zuJ!QdbVWRNH|e46PKI`QNH-%nVNF|(L3vIUJFFb$9|FkZ{CK6(I&y&v)>sMo{ z&Z`oPvI9f^+zL&SiB<&w7=p~UeAgk&$R}C>B>k7V$iNIWY9<67)V9EI-$CUO(0syb+KeZ} z-~n9*>_y}?Aznxj*+%=m*$I0gsRE| zr4DkDV{ZBPH-GM2*<8A$k$G!q)d6Gd{_*{ncU1bCYPfAjN2f%+zHxNcj|AK%bKz5oCK literal 0 HcmV?d00001 diff --git a/public/index.html b/public/index.html index aa069f2..a272eac 100644 --- a/public/index.html +++ b/public/index.html @@ -9,35 +9,11 @@ name="description" content="Web site created using create-react-app" /> - - - - - React App + 乐谷人事管理系统
- diff --git a/public/logo192.png b/public/logo192.png deleted file mode 100644 index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN diff --git a/public/manifest.json b/public/manifest.json deleted file mode 100644 index 080d6c7..0000000 --- a/public/manifest.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "short_name": "React App", - "name": "Create React App Sample", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "logo192.png", - "type": "image/png", - "sizes": "192x192" - }, - { - "src": "logo512.png", - "type": "image/png", - "sizes": "512x512" - } - ], - "start_url": ".", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/public/robots.txt b/public/robots.txt deleted file mode 100644 index e9e57dc..0000000 --- a/public/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * -Disallow: diff --git a/src/App.css b/src/App.css index 74b5e05..9c65583 100644 --- a/src/App.css +++ b/src/App.css @@ -1,38 +1,120 @@ -.App { - text-align: center; +#root { + height: 100%; +} +.trigger { + padding: 0 24px; + font-size: 18px; + line-height: 64px; + cursor: pointer; + transition: color 0.3s; } -.App-logo { - height: 40vmin; - pointer-events: none; +.trigger:hover { + color: #1890ff; +} +.appcontent { min-height: 280px; overflow-y: auto;} +.divdisplay { display: flex; } +.logo_box { + display: flex; + align-items: center; + margin: 16px; +} +.logo_box .logo { + height: 40px; + width: 40px; + border-radius: 50%; + background: rgba(255, 255, 255, 0.3); +} +.logo_box .logo_txt { + height: 40px; +} +.logo_box .logo_txt p { + margin-bottom: 0; + margin-left: 10px; +} +.logo_box .introduction { + font-size: 12px; + color: #c1c5cc; +} +.logo_box .role { + font-size: 16px; + color: #fff; } -@media (prefers-reduced-motion: no-preference) { - .App-logo { - animation: App-logo-spin infinite 20s linear; - } +.ant-layout { + height: 100%; +} +.site-layout .site-layout-background { + background: #fff; +} +.ant-layout-header { + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid rgba(217, 217, 217, 0.75); +} +.ant-modal { + overflow: hidden; + max-height: calc(100% - 100px); + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + margin: auto; } -.App-header { - background-color: #282c34; - min-height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); - color: white; +::-webkit-scrollbar { + width:8px; + height:8px; + background-color:#F5F5F5; +} +/* 滚动条上的按钮 (上下箭头). */ +::-webkit-scrollbar-button { + height: 0px; + width: 0px; +} +/* 滚动条上的滚动滑块. */ +::-webkit-scrollbar-thumb { + background-color:#e6e6e6; + border-radius: 50px; +} +/* 滚动条轨道. */ +::-webkit-scrollbar-track { + -webkit-box-shadow:inset 0 0 6px rgba(0, 142, 255, 1); + box-shadow:inset 0 0 6px rgba(0, 142, 255, 1, 1); + background-color:#F5F5F5; +} +/* 滚动条没有滑块的轨道部分 */ +::-webkit-scrollbar-track-piece { + background-color: #fff; +} +/* 当同时有垂直滚动条和水平滚动条时交汇的部分. */ +::-webkit-scrollbar-corner { + background:transparent; } -.App-link { - color: #61dafb; -} +.fontweight{font-weight: bold;} +.margintop5{ margin-top: 5px; } +.margintop20{ margin-top: 20px; } +.margintop50 { margin-top: 50px; } +.marginright5 { margin-right: 5px;} +.marginright10{ margin-right: 10px; } +.marginright24{ margin-right: 24px; } +.cursor { cursor: pointer; } +.font-size12 { font-size: 12px; margin-bottom: 0;} +.font-size14 {font-size: 14px;} +.fontsize28 { font-size: 28px; } +.fontsize24 { font-size: 24px; } +.lineheight24{line-height: 24px;} +.color0 { color: #575d6a; } +.color1 { color: #75777d; } +.color2 { color: #5c5f6c; } +.color3 { color: #f49300; } +.color4 { color: #0c8cf6; } +.coloc5 { color: #312b2e; } +.color6 { color: #f47f76; } +.color7 { color: #5b524b; } +.border3 { border-color: #f49300 !important; } +.border6 { border-color: #f47f76 !important; } -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} diff --git a/src/App.js b/src/App.js index 3784575..9944c15 100644 --- a/src/App.js +++ b/src/App.js @@ -1,25 +1,16 @@ -import logo from './logo.svg'; -import './App.css'; +import React from 'react' +import GlobalRouter from './routes/GlobalRouter' +import './App.css' -function App() { - return ( -
-
- logo -

- Edit src/App.js and save to reload. -

- - Learn React - -
-
- ); +// const App = () => { +// return +// } + +// export default App + +class App extends React.Component{ + render(){ + return + } } - -export default App; +export default App \ No newline at end of file diff --git a/src/AppLayOut.jsx b/src/AppLayOut.jsx new file mode 100644 index 0000000..71595cc --- /dev/null +++ b/src/AppLayOut.jsx @@ -0,0 +1,153 @@ +import React, { useState, useEffect } from 'react' +import { Layout, Menu } from 'antd' +import { Outlet, useNavigate, useLocation } from 'react-router-dom' +import NavHeader from './components/NavHeader' +import HeadLeftTtile from './components/HeadLeftTtile' +import './App.css' +import { + AppstoreOutlined, + UsergroupAddOutlined, + CalendarOutlined, + RestOutlined, + ShoppingOutlined, + PieChartOutlined, + SettingOutlined, +} from '@ant-design/icons' +// import GlobalRouter from './routes/GlobalRouter' +const { Header, Sider, Content } = Layout + +function AppLayOut() { + const location = useLocation() + const navigate = useNavigate() + const [collapsed, setCollapsed] = useState(true) + const [headtitle, setHeadtitle] = useState('总览') + const [headnav,setHeadnav] = useState('') + const [defaultSelectedKeys,setdefaultSelectedKeys] = useState('/') + + // 单击侧边栏跳转路由 + const click = (e) => { + navigate(e.key) + } + + const select = (e) => { + const { title } = e.item.props + // console.log(title) + setHeadtitle(title) + } + + // 鼠标移入 + const handlMouseEnter = () => { + setCollapsed(false) + } + + // 鼠标移出 + const handlMouseLeave = () => { + setCollapsed(true) + } + + useEffect(() => { + // return ()=>{ + const pathname = location.pathname; + const pathurl = pathname.split('/')[2]; + setHeadnav(pathurl) + setdefaultSelectedKeys(pathname) + // } + // const routes = matchRoutes(GlobalRouter, location.pathname); + // console.log(routes); + }, [location.pathname]) + + return ( + + + {/*
*/} +
+
+
+

Moka

+

用人经理端

+
+
+ + , + label: '总览', + title: '总览', + }, + { + key: '/admin/candidate', + icon: , + label: '候选人管理', + title: '候选人管理', + }, + { + key: '/admin/interview', + icon: , + label: '面试安排', + title: '面试安排', + }, + { + key: '/admin/position', + icon: , + label: '职位管理', + title: '职位管理', + }, + { + key: '/admin/talentpool', + icon: , + label: '人才库', + title: '人才库', + }, + { + key: '/admin/reportforms', + icon: , + label: '报表中心', + title: '报表中心', + }, + { + key: '/admin/setup', + icon: , + label: '设置', + title: '设置', + }, + ]} + onClick={click} + onSelect={select} + /> + + +
+ + +
+ + + +
+ + ) +} + +export default AppLayOut diff --git a/src/components/CandidateTable/index.css b/src/components/CandidateTable/index.css new file mode 100644 index 0000000..593c496 --- /dev/null +++ b/src/components/CandidateTable/index.css @@ -0,0 +1,15 @@ +.CandidateTable-box {} +.CandidateTable-list-box { width: 100%; padding: 14px; border-bottom: 1px solid #f4f4f5; display: flex; justify-content: space-between; } +.CandidateTable-list-box:hover { background-color: #f9f9fa; } + +.CandidateTable-info-box { width: 510px; display: flex;} +.CandidateTable-info { margin-left: 45px; color: #575d6a; } +.CandidateTable-action { width: 420px; position: relative; } + +.CandidateTable-info .name { font-size: 16px; font-weight: bold; color: #000; margin-right: 5px; } +.CandidateTable-info div { height: 28px; line-height: 28px; } +.but-box { width: 100%; display: flex; position: absolute; bottom: 0; } + +.qxcheck-box { color: #c1c5cc; border: 1px solid #c1c5cc; width: 46px; text-align: center; margin-left: 14px; } +.qxcheck-box .ant-checkbox + span { padding-right: 0; } +.CandidateTable-table-action { border-bottom: 1px solid #f4f4f5; padding: 10px 0;} diff --git a/src/components/CandidateTable/index.jsx b/src/components/CandidateTable/index.jsx new file mode 100644 index 0000000..44ffa53 --- /dev/null +++ b/src/components/CandidateTable/index.jsx @@ -0,0 +1,122 @@ +import React from 'react' +import './index.css' +import { Checkbox, Tag, Button } from 'antd' +import { + ShoppingFilled, + BankOutlined, + SendOutlined, + RightOutlined, +} from '@ant-design/icons' + +export default function CandidateTable() { + const onChange = (e) => { + console.log(`checked = ${e.target.checked}`) + } + + const data = [ + { + interview_name: '张四', + interview_type: 0, + interview_sign: 1, + feedback: 0, + interview_round: 1, + star_time: '2022-07-11T10:30:00', + end_time: '2022-07-11T11:00:00', + event_time: '2022-07-01T10:00:00', + uid: '1234567890', + name: '李五', + phone: '13789923799', + job_name: 'python开发', + hr_name: '王六', + work_exp: '2年', + interview_stage: 1, + owner_name: 2, + education: 1, + work_undergo: '', + school: '武汉大学', + specialty: '计算机专业', + mmended_state: 0, + mail: '250213000@qq.com', + account: '湖北武汉', + id_card: '421202199986750339', + gender: '男', + interview_state: 2, + graduate_time: '2022-07-01T08:00:00', + counts: 1, + }, + ] + + return ( +
+
+
+ + + + +
+ {/*
+ +
*/} +
+ +
+ {data.map((item, key) => { + return ( +
+
+
+ +
+
+
+ + 2022-05-16申请 | + + {item.job_name} +
+
+ {item.name} + {item.gender} | 25 | + {item.work_exp}工作经验 +
+
+ + {item.account} | + 2021-06至2022-05 +
+
+ {item.school} | + {item.specialty} | 硕士 | + {item.graduate_time} +
+
+ 硕士 + 空白经历 +
+
+
+
+ 候选人所有者:张三 +
+
+ 推荐状态: + } color="default"> + 未推荐 + +
+ + + + +
+
+
+ ) + })} +
+
+ ) +} diff --git a/src/components/Editresume/index.css b/src/components/Editresume/index.css new file mode 100644 index 0000000..53d9f23 --- /dev/null +++ b/src/components/Editresume/index.css @@ -0,0 +1,38 @@ +.upload-box{ + background-color: #f0f0f0; + padding: 24px; + display: flex; + align-items: center; +} +.upload-head-box { + /* text-align: center; */ +} +/* .upload-head { text-align: center; } */ +.upload-head-box span { + font-size: 12px; + color: #75777d; +} +.upload-head-title { + display: inline-block; + width: 104px; + font-size: 14px; + text-align: center; + font-weight: bold; +} +.upload-head-box div{ + /* width: 60px; + height: 60px; + border-radius: 50%; + border: 1px solid #d9d9d9; */ +} + +.upload-head-box label { color: #75777d; font-size: 12px; margin-top: 5px; } +.Editresume-box .ant-tabs-content-holder { + max-height: 557px !important; +} +.upload-button-box { + margin: 24px; +} +.upload-button-box .ant-upload {width: 100%;} +.upload-button-box .ant-upload-list {display: none;} + diff --git a/src/components/Editresume/index.jsx b/src/components/Editresume/index.jsx new file mode 100644 index 0000000..6439fbd --- /dev/null +++ b/src/components/Editresume/index.jsx @@ -0,0 +1,894 @@ +import React, { useState } from 'react' +import { + Form, + Input, + Modal, + Radio, + Row, + Col, + Select, + DatePicker, + Tabs, + Divider, + Button, + message, + Upload, + Space, + Checkbox, +} from 'antd' +import { + MinusCircleOutlined, + LoadingOutlined, + PlusOutlined, +} from '@ant-design/icons' +import 'moment/locale/zh-cn' +import locale from 'antd/es/date-picker/locale/zh_CN' +import './index.css' + +const { Option } = Select +const { TabPane } = Tabs +const { RangePicker } = DatePicker +const { TextArea } = Input + +const getBase64 = (img, callback) => { + const reader = new FileReader() + reader.addEventListener('load', () => callback(reader.result)) + reader.readAsDataURL(img) +} + +const beforeUpload = (file) => { + const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png' + + if (!isJpgOrPng) { + message.error('You can only upload JPG/PNG file!') + } + + const isLt2M = file.size / 1024 / 1024 < 2 + + if (!isLt2M) { + message.error('Image must smaller than 2MB!') + } + + return isJpgOrPng && isLt2M +} + +export default function Editresume({ visible, onCreate, onCancel }) { + console.log(visible) + const [form] = Form.useForm() + const onChange = (key) => { + console.log(key) + } + + const onTimeChange = (date, dateString) => { + console.log(date, dateString) + } + + const onSoFarChange = (e) => { + console.log(`checked = ${e.target.checked}`) + } + + const [loading, setLoading] = useState(false) + const [imageUrl, setImageUrl] = useState() + + const handleChange = (info) => { + if (info.file.status === 'uploading') { + setLoading(true) + return + } + + if (info.file.status === 'done') { + // Get this url from response in real world. + getBase64(info.file.originFileObj, (url) => { + setLoading(false) + setImageUrl(url) + }) + } + } + const uploadButton = ( +
+ {loading ? : } +
+ 上传照片 +
+
+ ) + + const props = { + action: 'https://www.mocky.io/v2/5cc8019d300000980a055e76', + + onChange({ file, fileList }) { + if (file.status !== 'uploading') { + console.log(file, fileList); + } + } + }; + + return ( +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + 原始简历 + + + {/* */} +
+ + 上传 + +
+
+
+ + 上传照片 + + + {imageUrl ? ( + avatar + ) : ( + uploadButton + )} + +
+ +
+
+ + + 个人信息 + + + + + + + + + + + + 求职意向 + + + + + + + + + + + + + + + + + + + + + 工作经历 + + + + {(fields, { add, remove }) => ( + <> + {fields.map( + ({ + key, + name, + ...restField + }) => ( +
+ + + + +
+ + 至今 + + + + remove( + name + ) + } + /> +
+
+ +
+ + + + + + + + + + + + + + +