diff --git a/shihezi.zip b/shihezi.zip index 544a60b..408afa6 100644 Binary files a/shihezi.zip and b/shihezi.zip differ diff --git a/src/app.tsx b/src/app.tsx index abf78af..eeea304 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -63,7 +63,7 @@ export async function getInitialState(): Promise<{ ...response.user, permissions: response.permissions, roles: response.roles, - userType: response.user.roles?.[0]?.roleId, + userType: response.roles?.[0], } as API.CurrentUser; } catch (error) { console.log(error); diff --git a/src/components/JobPortalHeader/index.tsx b/src/components/JobPortalHeader/index.tsx index c1c00f4..a20c048 100644 --- a/src/components/JobPortalHeader/index.tsx +++ b/src/components/JobPortalHeader/index.tsx @@ -173,7 +173,11 @@ const JobPortalHeader: React.FC = ({ }; // 处理导航点击 - const handleNavClick = (path: string) => { + const handleNavClick = (path: string, wl: boolean = false) => { + if (wl) { + window.open(path, '_blank'); + return; + } history.push(path); }; @@ -184,7 +188,8 @@ const JobPortalHeader: React.FC = ({ clearSessionToken(); setRemoteMenu(null); message.success('退出登录成功'); - history.push('/user/login'); + // history.push('/user/login'); + window.location.href = 'http://218.31.252.15:9081/hrss-web-vue/home'; } catch (error) { message.error('退出登录失败'); } @@ -236,8 +241,9 @@ const JobPortalHeader: React.FC = ({
-
handleNavClick('/job-portal')}> - 石河子智慧就业服务平台 + {/*
handleNavClick('/job-portal')}> */} +
handleNavClick('http://218.31.252.15:9081/hrss-web-vue/home', true)}> + 石河子智慧就业
diff --git a/src/pages/Management/List/edit.tsx b/src/pages/Management/List/edit.tsx index 8799f78..c6e492b 100644 --- a/src/pages/Management/List/edit.tsx +++ b/src/pages/Management/List/edit.tsx @@ -7,9 +7,9 @@ import { ProFormTextArea, ProDescriptions, } from '@ant-design/pro-components'; -import { Form, Button, Space } from 'antd'; +import { Form, Button, Input } from 'antd'; import { PlusOutlined, MinusCircleOutlined } from '@ant-design/icons'; -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useRef, useState } from 'react'; import { DictValueEnumObj } from '@/components/DictTag'; import { getCmsCompanyList } from '@/services/company/list'; import { getCmsJobDetail } from '@/services/Management/list'; @@ -36,6 +36,7 @@ const waitTime = (time: number = 100) => { const listEdit: React.FC = (props) => { const [form] = Form.useForm(); + const companyNameMap = useRef>({}); const [jobDetail, setJobDetail] = useState(null); const [loading, setLoading] = useState(false); const { educationEnum, experienceEnum, areaEnum, jobTypeEnum } = props; @@ -88,11 +89,33 @@ const listEdit: React.FC = (props) => { }; const handleFinish = async (values: Record) => { - props.onSubmit(values as API.ManagementList.Manage); - }; - - const handleChange = (_: string, value: any) => { - form.setFieldValue('companyName', value.label); + const payload: API.ManagementList.Manage = { + jobTitle: values.jobTitle, + companyId: values.companyId, + companyName: + typeof values.companyName === 'string' + ? values.companyName + : companyNameMap.current[values.companyId] ?? '', + minSalary: values.minSalary, + maxSalary: values.maxSalary, + education: values.education, + experience: values.experience, + jobLocationAreaCode: values.jobLocationAreaCode, + vacancies: values.vacancies, + jobType: values.jobType, + jobLocation: values.jobLocation, + description: values.description, + jobContactList: (values.jobContactList ?? []).map((item: API.ManagementList.ContactPerson) => ({ + contactPerson: item.contactPerson, + contactPersonPhone: item.contactPersonPhone, + position: item.position, + })), + }; + if (mode === 'edit' && values.jobId) { + payload.jobId = values.jobId; + } + await props.onSubmit(payload); + return true; }; if (mode === 'view') { return ( @@ -280,11 +303,13 @@ const listEdit: React.FC = (props) => { destroyOnClose: true, onCancel: () => handleCancel(), style: { height: '80vh' }, - bodyStyle: { - height: 'calc(80vh - 120px)', - overflowY: 'auto', - padding: '16px 24px' - } + styles: { + body: { + height: 'calc(80vh - 120px)', + overflowY: 'auto', + padding: '16px 24px', + }, + }, }} submitTimeout={2000} onFinish={handleFinish} @@ -296,10 +321,17 @@ const listEdit: React.FC = (props) => { showSearch width="md" name="companyId" - onChange={handleChange} request={async ({ keyWords }) => { - let resData = await getCmsCompanyList({ name: keyWords }); - return resData.rows.map((item) => ({ label: item.name, value: item.companyId })); + const resData = await getCmsCompanyList({ name: keyWords }); + return resData.rows.map((item) => { + companyNameMap.current[item.companyId] = item.name; + return { label: item.name, value: item.companyId }; + }); + }} + fieldProps={{ + onChange: (companyId: number) => { + form.setFieldValue('companyName', companyNameMap.current[companyId] ?? ''); + }, }} placeholder="请输入公司名称选择公司" rules={[{ required: true, message: '请输入公司名称选择公司!' }]} @@ -383,7 +415,7 @@ const listEdit: React.FC = (props) => { rules={[{ required: true, message: '请输入联系人姓名' }]} style={{ marginBottom: 0, flex: 1 }} > - + = (props) => { ]} style={{ marginBottom: 0, flex: 1 }} > - + = (props) => { rules={[{ required: true, message: '请输入职务' }]} style={{ marginBottom: 0, flex: 1 }} > - +