diff --git a/src/pages/JobPortal/PersonalCenter/Showcase/index.tsx b/src/pages/JobPortal/PersonalCenter/Showcase/index.tsx
index 8d29c2d..f68a2c6 100644
--- a/src/pages/JobPortal/PersonalCenter/Showcase/index.tsx
+++ b/src/pages/JobPortal/PersonalCenter/Showcase/index.tsx
@@ -11,16 +11,18 @@ import {
Modal,
Tag,
Tooltip,
+ Popconfirm,
} from 'antd';
import {
UploadOutlined,
ArrowLeftOutlined,
CameraOutlined,
VideoCameraOutlined,
+ DeleteOutlined,
} from '@ant-design/icons';
import { history } from '@umijs/max';
import JobPortalHeader from '@/components/JobPortalHeader';
-import { uploadShowcaseFile, getShowcaseFileList } from '@/services/jobportal/user';
+import { uploadShowcaseFile, getShowcaseFileList, deleteShowcaseFile } from '@/services/jobportal/user';
import { getFileDisplayUrl } from '@/utils/fileUrl';
import './index.less';
@@ -163,6 +165,20 @@ const ShowcasePage: React.FC = () => {
return isValid;
};
+ const handleDelete = async (item: ShowcaseItem) => {
+ try {
+ const resp = await deleteShowcaseFile(item.id);
+ if (resp?.code === 200 || resp?.code === 0) {
+ message.success('删除成功');
+ await fetchFileList();
+ } else {
+ message.error(resp?.msg || '删除失败');
+ }
+ } catch (error) {
+ message.error('删除失败');
+ }
+ };
+
const handleBack = () => {
history.push('/job-portal/personal-center');
};
@@ -275,6 +291,24 @@ const ShowcasePage: React.FC = () => {
}
/>
+
+
handleDelete(item)}
+ okText="确定"
+ cancelText="取消"
+ >
+ }
+ >
+ 删除
+
+
+
);
})}
diff --git a/src/pages/Management/EnterpriseShowcase/index.tsx b/src/pages/Management/EnterpriseShowcase/index.tsx
index 4199ffa..9a0308b 100644
--- a/src/pages/Management/EnterpriseShowcase/index.tsx
+++ b/src/pages/Management/EnterpriseShowcase/index.tsx
@@ -11,15 +11,17 @@ import {
Modal,
Tag,
Tooltip,
+ Popconfirm,
} from 'antd';
import {
UploadOutlined,
CameraOutlined,
VideoCameraOutlined,
ArrowLeftOutlined,
+ DeleteOutlined,
} from '@ant-design/icons';
import { history } from '@umijs/max';
-import { uploadShowcaseFile, getShowcaseFileList } from '@/services/jobportal/user';
+import { uploadShowcaseFile, getShowcaseFileList, deleteShowcaseFile } from '@/services/jobportal/user';
import { getFileDisplayUrl } from '@/utils/fileUrl';
import EnterpriseHeader from '@/components/EnterpriseHeader';
import './index.less';
@@ -163,6 +165,20 @@ const EnterpriseShowcase: React.FC = () => {
return isValid;
};
+ const handleDelete = async (item: ShowcaseItem) => {
+ try {
+ const resp = await deleteShowcaseFile(item.id);
+ if (resp?.code === 200 || resp?.code === 0) {
+ message.success('删除成功');
+ await fetchFileList();
+ } else {
+ message.error(resp?.msg || '删除失败');
+ }
+ } catch (error) {
+ message.error('删除失败');
+ }
+ };
+
return (
@@ -270,6 +286,24 @@ const EnterpriseShowcase: React.FC = () => {
}
/>
+
+
handleDelete(item)}
+ okText="确定"
+ cancelText="取消"
+ >
+ }
+ >
+ 删除
+
+
+
);
})}
diff --git a/src/pages/Management/Showcase/index.tsx b/src/pages/Management/Showcase/index.tsx
index 7fad1eb..63bf4ce 100644
--- a/src/pages/Management/Showcase/index.tsx
+++ b/src/pages/Management/Showcase/index.tsx
@@ -26,6 +26,22 @@ const statusValueEnum = {
'2': { text: '已驳回', status: 'Error' },
};
+const userTypeValueEnum = {
+ '0': { text: '企业' },
+ '1': { text: '求职者' },
+ '2': { text: '网格员' },
+ '3': { text: '政府人员' },
+ '4': { text: '其他' },
+};
+
+const userTypeColorMap: Record = {
+ '0': 'blue',
+ '1': 'green',
+ '2': 'orange',
+ '3': 'purple',
+ '4': 'default',
+};
+
const ShowcaseReview: React.FC = () => {
const access = useAccess();
const actionRef = useRef();
@@ -103,6 +119,7 @@ const ShowcaseReview: React.FC = () => {
justifyContent: 'center',
cursor: 'pointer',
borderRadius: 4,
+ position: 'relative',
}}
onClick={() => {
setPreviewUrl(url);
@@ -135,10 +152,29 @@ const ShowcaseReview: React.FC = () => {
),
},
{
- title: '上传用户ID',
- dataIndex: 'bussinessid',
+ title: '用户昵称',
+ dataIndex: 'userName',
width: 120,
- fieldProps: { placeholder: '输入用户ID' },
+ fieldProps: { placeholder: '输入用户昵称' },
+ },
+ {
+ title: '用户类型',
+ dataIndex: 'userType',
+ width: 100,
+ valueType: 'select',
+ valueEnum: userTypeValueEnum,
+ fieldProps: { placeholder: '选择用户类型' },
+ render: (_, record) => {
+ const text = userTypeValueEnum[record.userType || '']?.text || record.userType || '-';
+ const color = userTypeColorMap[record.userType || ''] || 'default';
+ return {text};
+ },
+ },
+ {
+ title: '手机号码',
+ dataIndex: 'userPhone',
+ width: 130,
+ fieldProps: { placeholder: '输入手机号码' },
},
{
title: '审核状态',
@@ -215,12 +251,14 @@ const ShowcaseReview: React.FC = () => {
rowKey="id"
search={{ labelWidth: 100 }}
request={async (params) => {
- const { current, pageSize, bussinessid, reviewStatus } = params;
+ const { current, pageSize, reviewStatus, userName, userType, userPhone } = params;
const res = await getShowcaseReviewList({
current,
pageSize,
- bussinessid: bussinessid ? Number(bussinessid) : undefined,
reviewStatus,
+ userName,
+ userType,
+ userPhone,
});
return {
data: res?.rows || [],
diff --git a/src/services/Management/showcaseReview.ts b/src/services/Management/showcaseReview.ts
index e0d9f33..52a2f25 100644
--- a/src/services/Management/showcaseReview.ts
+++ b/src/services/Management/showcaseReview.ts
@@ -11,14 +11,20 @@ export interface ShowcaseReviewItem {
reviewTime?: string;
createTime: string;
updateTime?: string;
+ /** JOIN app_user 查询字段 */
+ userName?: string; // 用户名称
+ userType?: string; // '0'=企业, '1'=求职者, '2'=网格员, '3'=政府人员
+ userPhone?: string; // 手机号码
}
/** 风采审核列表查询参数 */
export interface ShowcaseReviewListParams {
current?: number;
pageSize?: number;
- bussinessid?: number;
reviewStatus?: string;
+ userName?: string;
+ userType?: string;
+ userPhone?: string;
}
/** 风采审核操作参数 */
diff --git a/src/services/jobportal/user.ts b/src/services/jobportal/user.ts
index cde0da0..71b58f9 100644
--- a/src/services/jobportal/user.ts
+++ b/src/services/jobportal/user.ts
@@ -161,3 +161,10 @@ export async function getShowcaseFileList(userId: number) {
});
}
+/** 删除我的风采文件 DELETE /app/file/{id} */
+export async function deleteShowcaseFile(id: number) {
+ return request(`/app/file/${id}`, {
+ method: 'DELETE',
+ });
+}
+