import { useRef, useState, useEffect } from 'react'; import { connect } from '@umijs/max'; import type { ActionType, ProFormInstance } from '@ant-design/pro-components'; import { ProTable } from '@ant-design/pro-components'; import { Button, Image, ConfigProvider, Input, Descriptions, Space, Modal, Radio, Row, Col, InputNumber, message, Flex } from 'antd'; import { PostCompanyViplist, PostCompanyFeechange, PostCompanyMultiopenvip } from '@/apis/api'; import { Imageprefix } from '@/constants'; const CompanyListPage: React.FC = ({ dispatch, getId, openModel }: any) => { const actionRef = useRef(); const [list, setList] = useState([]) const [total, setTotal] = useState(0) const [page, setPage] = useState(1) const [pageSize, setPageSize] = useState(10) const [fullname, setFullname] = useState(sessionStorage.getItem('vip_company_info') ? JSON.parse(sessionStorage.getItem('vip_company_info')).full_name : '') const [openMultieditPreview, setOpenMultieditPreview] = useState(false); const [ids, setIds] = useState([]) const [memberType, setMemberType] = useState(1) const [startDate, setStartDate] = useState(null); const [endDate, setEndDate] = useState(null); const setId = (id: number) => { getId(id) } useEffect(() => { if (!openModel.openModal) { actionRef.current?.reload(); } return () => { sessionStorage.removeItem('company_info') sessionStorage.removeItem('post_company_info') sessionStorage.removeItem('vip_company_info') }; }, [openModel.openModal]) useEffect(() => { if (!openModel.openFeeModal) { actionRef.current?.reload(); } }, [openModel.openFeeModal]) const handleTimeChange = (value) => { const today = new Date(); let start_date = today; let end_date = new Date(today); end_date.setDate(today.getDate() + value); // 格式化日期为 YYYY-MM-DD const formatDate = (date: Date): string => { const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0'); return `${year}-${month}-${day}`; }; const formattedStartDate = formatDate(start_date); const formattedEndDate = formatDate(end_date); setStartDate(formattedStartDate); setEndDate(formattedEndDate); console.log(formattedStartDate); console.log(formattedEndDate); }; const expandedRowRender = (record) => { return ( <> {record.probation_text} {record.famous_text} {record.sales} ); }; return ( <> { setIds(selectedRowKeys) return ( 已选 {selectedRowKeys.length} 项 取消选择 ); }} tableAlertOptionRender={() => { return ( , ); }} rowSelection={{ type: 'checkbox' }} expandable={{ expandedRowRender }} columns={[ { title: '筛选日期', dataIndex: 'date_range', hidden: true, valueType: 'dateRange', }, { title: 'ID', dataIndex: 'id', width: 200, }, { title: '企业名称', dataIndex: 'full_name', width: 200, valueType: 'input', renderFormItem: () => { return ( <> { setFullname(e.target.value) }} /> ) } }, { title: '会员类型', dataIndex: 'member_type_text', width: 200, search: false, }, { title: '会员状态', dataIndex: 'member_status', width: 200, search: false, valueEnum: { 0: { text: '全部' }, 1: { text: '待审', status: 'Error' }, 2: { text: '正常', status: 'Processing' }, 3: { text: '到期', status: 'Error' }, 4: { text: '推荐', status: 'Error' }, }, }, { title: '开始时间', dataIndex: 'start_date', width: 200, search: false, }, { title: '到期时间', dataIndex: 'end_date', width: 200, search: false, }, { title: '剩余点数', dataIndex: 'balance_fee', width: 200, search: false, }, { title: '操作', key: 'option', valueType: 'option', render: (_, record, action) => [ , ], }, ]} rowKey="id" pagination={{ current: page, pageSize: pageSize, showSizeChanger: true, total: total, pageSizeOptions: [9, 18, 27, 99], onChange(page, pageSize) { setPage(page) setPageSize(pageSize) }, onShowSizeChange(current, size) { setPage(current) setPageSize(size) } }} request={async (params = {} as Record) => PostCompanyViplist({ page: page, pagesize: pageSize, sort: 'id', sortby: 'desc', keyword: fullname, start_date: params.date_range ? params.date_range[0] : '', end_date: params.date_range ? params.date_range[1] : '', }).then(res => { setList(res.data.list) setTotal(res.data.total) }) } onReset={() => { if (sessionStorage.getItem('vip_company_info')) { sessionStorage.removeItem('vip_company_info') } setFullname('') actionRef.current?.reload(); }} headerTitle="VIP企业列表" /> { setOpenMultieditPreview(false) }} onOk={() => { if (memberType && startDate && endDate) { PostCompanyMultiopenvip({ ids: ids, member_type: memberType, start_date: startDate, end_date: endDate }).then(res => { setOpenMultieditPreview(false) actionRef.current?.clearSelected(); actionRef.current?.reload(); }) } else { message.error('请完成表单') return false } } } >

类型:

{ setMemberType(e.target.value) }}> {/* 试用申请中 试用正式 普通申请中 */} 普通用户 {/* VIP申请中 */} 会员用户

时长:

{ handleTimeChange(value) }} style={{ width: '100%' }} />
); }; export default connect(({ dictModel, openModel }: any) => ({ dictModel, openModel }))(CompanyListPage);