feat: update terminology from "户外招聘会" to "线下招聘会" across the application and improve job position urgency display
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-07-22 15:24:31 +08:00
parent b4c92cb27d
commit 48325cefa4
10 changed files with 43 additions and 34 deletions

21
.codegraph/.gitignore vendored
View File

@@ -1,16 +1,5 @@
# CodeGraph data files
# These are local to each machine and should not be committed
# Database
*.db
*.db-wal
*.db-shm
# Cache
cache/
# Logs
*.log
# Hook markers
.dirty
# CodeGraph data files — local to each machine, not for committing.
# Ignore everything in .codegraph/ except this file itself, so transient
# files (the database, daemon.pid, sockets, logs) never show up in git.
*
!.gitignore

View File

@@ -18,7 +18,7 @@ export default {
'/api/': {
// 要代理的地址
// target: 'http://39.98.44.136:6024/api/shihezi/', // 线上环境
target: 'http://test.xjshzly.longbiosphere.com/api/shihezi/', // 线上环境
target: 'https://test.xjshzly.longbiosphere.com/api/shihezi/', // 测试环境
// target: 'http://wykj.cdwsx.com/api',// 后端
// target: 'http://ks.zhaopinzao8dian.com/api/ks',
// 配置了这个可以从 http 代理到 https

View File

@@ -264,7 +264,7 @@ export default [
component: './Jobfair/PublicJobFair/Signups',
},
{
name: '户外招聘会管理',
name: '线下招聘会管理',
path: '/jobfair/outdoor-fair',
component: './Jobfair/Outdoorfair',
},
@@ -279,7 +279,7 @@ export default [
component: './Jobfair/Venueinfo/Detail',
},
{
name: '户外招聘会详情',
name: '线下招聘会详情',
path: '/jobfair/outdoor-fair/detail',
component: './Jobfair/Outdoorfair/Detail',
},

View File

@@ -183,7 +183,7 @@ const PortalJobFairDetailPage: React.FC = () => {
<div className="job-fair-detail-title-row">
<div>
<Tag color={channel === 'outdoor' ? 'cyan' : 'blue'}>
{channel === 'outdoor' ? '户外招聘会' : '线上招聘会'}
{channel === 'outdoor' ? '线下招聘会' : '线上招聘会'}
</Tag>
<Title level={2}>{detail.jobFairTitle}</Title>
</div>
@@ -280,7 +280,17 @@ const PortalJobFairDetailPage: React.FC = () => {
onClick={() => handlePositionClick(position)}
>
<div className="job-header">
<Title level={4}>{position.jobTitle || '未命名岗位'}</Title>
<Title level={4}>
{position.isUrgent === 1 && (
<Tag
color="red"
style={{ marginRight: 8, fontSize: 12, lineHeight: '20px' }}
>
</Tag>
)}
{position.jobTitle || '未命名岗位'}
</Title>
<Typography.Text className="job-salary">
{formatSalary(position)}
</Typography.Text>

View File

@@ -43,7 +43,7 @@ const PAGE_SIZE = 9;
const fairTabs: Array<{ key: JobFairChannel; label: string }> = [
{ key: 'online', label: '线上招聘会' },
{ key: 'outdoor', label: '户外招聘会' },
{ key: 'outdoor', label: '线下招聘会' },
];
function formatDateTime(value?: string) {
@@ -232,7 +232,7 @@ const PortalJobFairPage: React.FC = () => {
<section className="job-fair-hero">
<div>
<Title level={2}></Title>
<Text>线</Text>
<Text>线线</Text>
</div>
<CalendarOutlined className="job-fair-hero-icon" aria-hidden="true" />
</section>
@@ -309,14 +309,14 @@ const PortalJobFairPage: React.FC = () => {
</Button>
</Card>
<div className="fair-summary-grid">
{renderSummary(`本月${channel === 'outdoor' ? '户外' : ''}招聘会`, monthFairs)}
{renderSummary(`本季度${channel === 'outdoor' ? '户外' : ''}招聘会`, quarterFairs)}
{renderSummary(`本月${channel === 'outdoor' ? '线下' : ''}招聘会`, monthFairs)}
{renderSummary(`本季度${channel === 'outdoor' ? '线下' : ''}招聘会`, quarterFairs)}
</div>
</section>
<section className="job-fair-list-section" aria-live="polite">
<div className="job-fair-list-heading">
<Title level={3}>{channel === 'outdoor' ? '户外招聘会' : '线上招聘会'}</Title>
<Title level={3}>{channel === 'outdoor' ? '线下招聘会' : '线上招聘会'}</Title>
<Text type="secondary"> {total} </Text>
</div>
@@ -339,7 +339,7 @@ const PortalJobFairPage: React.FC = () => {
>
<div className="fair-card-tags">
<Tag color={channel === 'outdoor' ? 'cyan' : 'blue'}>
{channel === 'outdoor' ? '户外招聘会' : '线上招聘会'}
{channel === 'outdoor' ? '线下招聘会' : '线上招聘会'}
</Tag>
{status && <Tag color={status.color}>{status.label}</Tag>}
</div>

View File

@@ -141,7 +141,7 @@ const EditModal: React.FC<EditModalProps> = ({
return (
<ModalForm
title={values ? '编辑户外招聘会' : '新增户外招聘会'}
title={values ? '编辑线下招聘会' : '新增线下招聘会'}
form={form}
open={open}
width={700}

View File

@@ -136,7 +136,7 @@ const OutdoorFairList: React.FC = () => {
const handleDelete = async (id: number) => {
Modal.confirm({
title: '确认删除',
content: '确定要删除该户外招聘会吗?',
content: '确定要删除该线下招聘会吗?',
onOk: async () => {
const res = await deleteOutdoorFair(id);
if (res.code === 200) {
@@ -432,7 +432,7 @@ const OutdoorFairList: React.FC = () => {
return (
<PageContainer>
<ProTable<OutdoorFairItem>
headerTitle="户外招聘会管理列表"
headerTitle="线下招聘会管理列表"
actionRef={actionRef}
rowKey="id"
columns={columns}

View File

@@ -11,7 +11,12 @@ interface CompanySelectModalProps {
onSuccess: () => void;
}
const CompanySelectModal: React.FC<CompanySelectModalProps> = ({ open, jobFairId, onCancel, onSuccess }) => {
const CompanySelectModal: React.FC<CompanySelectModalProps> = ({
open,
jobFairId,
onCancel,
onSuccess,
}) => {
const actionRef = useRef<ActionType>();
const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([]);
const [loading, setLoading] = useState(false);
@@ -70,9 +75,11 @@ const CompanySelectModal: React.FC<CompanySelectModalProps> = ({ open, jobFairId
}}
request={async (params) => {
const res = await getCmsCompanyList({
current: params.current,
pageSize: params.pageSize,
name: params.name,
} as any);
return { data: res.rows, total: res.total, success: true };
});
return { data: res.rows, total: res.total, success: res.code === 200 };
}}
toolBarRender={false}
/>

View File

@@ -109,6 +109,7 @@ export interface PortalJobFairPosition {
jobLocation?: string;
jobAddress?: string;
vacancies?: number | string;
isUrgent?: number;
}
interface PortalJobFairCompanyWithJobs {
@@ -189,7 +190,7 @@ export async function getPortalJobFairDetail(channel: JobFairChannel, jobFairId:
msg: response.msg,
data: {
jobFairId: fair.jobFairId || String(fair.id ?? jobFairId),
jobFairTitle: fair.jobFairTitle || fair.title || '户外招聘会',
jobFairTitle: fair.jobFairTitle || fair.title || '线下招聘会',
jobFairAddress: fair.jobFairAddress || fair.address || fair.venueName,
jobFairType: fair.jobFairType || fair.fairType || 'outdoor',
jobFairStartTime: fair.jobFairStartTime || fair.holdTime,

View File

@@ -33,6 +33,8 @@ declare namespace API.CompanyList {
}
export interface Params {
current?: number;
pageSize?: number;
createTime?: string;
companyId?: number;
name?: string;