简历推荐功能开发
Some checks failed
Node CI / build (14.x, macOS-latest) (push) Has been cancelled
Node CI / build (14.x, ubuntu-latest) (push) Has been cancelled
Node CI / build (14.x, windows-latest) (push) Has been cancelled
Node CI / build (16.x, macOS-latest) (push) Has been cancelled
Node CI / build (16.x, ubuntu-latest) (push) Has been cancelled
Node CI / build (16.x, windows-latest) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
coverage CI / build (push) Has been cancelled
Node pnpm CI / build (16.x, macOS-latest) (push) Has been cancelled
Node pnpm CI / build (16.x, ubuntu-latest) (push) Has been cancelled
Node pnpm CI / build (16.x, windows-latest) (push) Has been cancelled

This commit is contained in:
冯辉
2026-06-27 17:57:45 +08:00
parent f248d9a409
commit e13cea8c36
9 changed files with 1000 additions and 143 deletions

View File

@@ -2,7 +2,7 @@ import React, { Fragment, useEffect, useRef, useState } from 'react';
import { FormattedMessage, useAccess, useParams } from '@umijs/max';
import { Button, FormInstance, message, Tag } from 'antd';
import { ActionType, ProColumns, ProTable } from '@ant-design/pro-components';
import { FormOutlined, PlusOutlined,AlignLeftOutlined } from '@ant-design/icons';
import { FormOutlined, PlusOutlined, AlignLeftOutlined, SendOutlined } from '@ant-design/icons';
import { getDictValueEnum } from '@/services/system/dict';
import DictTag from '@/components/DictTag';
import { exportCmsAppUserExport } from '@/services/mobileusers/list';
@@ -15,6 +15,7 @@ import similarityJobs from '@/utils/similarity_Job';
import Detail from './detail';
import Hire from './hire';
import ResumeView from './resumeView';
import InterviewInvite from '../ResumeRecommend/InterviewInvite';
const handleExport = async (values: API.MobileUser.ListParams) => {
@@ -51,6 +52,7 @@ function ManagementList() {
const [jobInfo, setJobInfo] = useState({});
const [matchingDegree, setMatchingDegree] = useState<any>(null);
const [resumeVisible, setResumeVisible] = useState<boolean>(false);
const [inviteVisible, setInviteVisible] = useState<boolean>(false);
const [hireAdd, setHireAdd] = useState<any>(null);
const [mode, setMode] = useState<'view' | 'edit' | 'create'>('create');
const params = useParams();
@@ -191,7 +193,7 @@ function ManagementList() {
hideInSearch: true,
align: 'center',
dataIndex: 'jobId',
width: 200,
width: 280,
render: (jobId, record) => [
<div key="first-row" style={{marginBottom: 8, display: 'flex', justifyContent: 'center'}}>
<Button
@@ -210,7 +212,20 @@ function ManagementList() {
<Button
type="link"
size="small"
key="edit"
key="invite-interview"
icon={<SendOutlined/>}
hidden={!access.hasPerms('cms:interview:add')}
onClick={() => {
setCurrentRow(record);
setInviteVisible(true);
}}
>
</Button>
<Button
type="link"
size="small"
key="hire"
icon={<FormOutlined/>}
hidden={!access.hasPerms('cms:employeeConfirm:add')}
onClick={() => {
@@ -224,9 +239,8 @@ function ManagementList() {
<Button
type="link"
size="small"
key="edit"
key="match-detail"
icon={<AlignLeftOutlined/>}
// hidden={!access.hasPerms('area:business:List.update')}
onClick={() => {
setModalVisible(true);
setCurrentRow(record);
@@ -323,6 +337,21 @@ function ManagementList() {
setCurrentRow(undefined);
}}
/>
<InterviewInvite
open={inviteVisible}
userId={currentRow?.userId}
userName={currentRow?.name}
jobId={jobId}
companyId={(jobInfo as any)?.companyId}
jobName={(jobInfo as any)?.jobTitle}
onClose={(needRefresh) => {
setInviteVisible(false);
setCurrentRow(undefined);
if (needRefresh) {
actionRef.current?.reload();
}
}}
/>
</div>
</Fragment>
);