import React, { Fragment, useEffect, useRef, useState } from 'react'; import { FormattedMessage, history, useAccess } from '@umijs/max'; import { addCmsJobList, delCmsJobIds, exportCmsJob, getCmsJobList, updateCmsJobList, } from '@/services/Management/list'; import { Button, FormInstance, message, Modal, Switch } from 'antd'; import { ActionType, ProColumns, ProTable } from '@ant-design/pro-components'; import { AlignLeftOutlined, BarChartOutlined, DeleteOutlined, FormOutlined, PlusOutlined, } from '@ant-design/icons'; import EditManageRow from './edit'; import { getDictValueEnum } from '@/services/system/dict'; import DictTag from '@/components/DictTag'; const handleExport = async (values: API.ManagementList.ListParams) => { const hide = message.loading('正在导出'); try { await exportCmsJob(values); hide(); message.success('导出成功'); return true; } catch (error) { hide(); message.error('导出失败,请重试'); return false; } }; const handleRemoveOne = async (jobId: string) => { const hide = message.loading('正在删除'); if (!jobId) return true; try { const resp = await delCmsJobIds(jobId); hide(); if (resp.code === 200) { message.success('删除成功,即将刷新'); } else { message.error(resp.msg); } return true; } catch (error) { hide(); message.error('删除失败,请重试'); return false; } }; function ManagementList() { const access = useAccess(); const formTableRef = useRef(); const actionRef = useRef(); const [educationEnum, setEducationEnum] = useState([]); const [experienceEnum, setExperienceEnum] = useState([]); const [areaEnum, setAreaEnum] = useState([]); const [isPublishEnum, setIsPublishEnum] = useState([]); const [hotEnum, setHotEnum] = useState([]); const [currentRow, setCurrentRow] = useState(); const [modalVisible, setModalVisible] = useState(false); const [mode, setMode] = useState<'view' | 'edit' | 'create'>('create'); useEffect(() => { getDictValueEnum('education', true, true).then((data) => { setEducationEnum(data); }); getDictValueEnum('experience', true, true).then((data) => { setExperienceEnum(data); }); getDictValueEnum('area', true, true).then((data) => { setAreaEnum(data); }); getDictValueEnum('is_publish', true).then((data) => { setIsPublishEnum(data); }); // getDictValueEnum('job_hot',true).then((data) => { // setHotEnum(data) // }) }, []); async function changeRelease(record: API.ManagementList.Manage) { let resData = await updateCmsJobList({ jobId: record.jobId, isPublish: record.isPublish === 1 ? 0 : 1, }); if (resData.code === 200) { message.success('修改成功'); if (actionRef.current) { actionRef.current.reload(); } } } const columns: ProColumns[] = [ { title: '岗位名称', dataIndex: 'jobTitle', valueType: 'text', align: 'center', }, { title: '最小薪资', dataIndex: 'minSalary', valueType: 'text', align: 'center', }, { title: '最大薪资', dataIndex: 'maxSalary', valueType: 'text', align: 'center', }, { title: '单位名称', dataIndex: 'companyName', valueType: 'text', align: 'center', }, { title: '学历要求', dataIndex: 'education', valueType: 'select', align: 'center', valueEnum: educationEnum, render: (_, record) => { return ; }, }, { title: '经验要求', dataIndex: 'experience', valueType: 'select', align: 'center', valueEnum: experienceEnum, render: (_, record) => { return ; }, }, // { // title: '是否热门', // dataIndex: 'isHot', // valueType: 'select', // align: 'center', // valueEnum: hotEnum, // render: (_, record) => { // return (); // }, // }, { title: '是否发布', dataIndex: 'isPublish', valueType: 'select', align: 'center', valueEnum: isPublishEnum, render: (text, record) => ( ), }, { title: '招聘人数', dataIndex: 'vacancies', valueType: 'text', align: 'center', hideInSearch: true, }, { title: '浏览量', dataIndex: 'view', valueType: 'text', align: 'center', hideInSearch: true, }, { title: '操作', hideInSearch: true, align: 'center', dataIndex: 'jobId', width: 300, render: (jobId, record) => [
,
, ], }, ]; return (
// params 是需要自带的参数 // 这个参数优先级更高,会覆盖查询表单的参数 actionRef={actionRef} formRef={formTableRef} rowKey="jobId" key="index" columns={columns} request={(params) => getCmsJobList({ ...params } as API.ManagementList.ListParams).then((res) => { console.log(params); const result = { data: res.rows, total: res.total, success: true, }; return result; }) } toolBarRender={() => [ , , ]} />
{ let resData; if (values.jobId) { resData = await updateCmsJobList(values); } else { resData = await addCmsJobList(values); } if (resData.code === 200) { setModalVisible(false); setCurrentRow(undefined); if (values.jobId) { message.success('修改成功'); } else { message.success('新增成功'); } if (actionRef.current) { actionRef.current.reload(); } } }} values={currentRow} onCancel={() => { setModalVisible(false); setCurrentRow(undefined); }} educationEnum={educationEnum} experienceEnum={experienceEnum} areaEnum={areaEnum} >
); } export default ManagementList;