提交 608936af 作者: ZhangLingKun

功能:活动管理领取记录

上级 00bc04d2
......@@ -126,3 +126,78 @@ export type activityUpdateType = InterFunction<
>;
// 删除活动
export type activityDeleteType = InterFunction<{ id: number }, null>;
// 活动详情
export type activityInviteDetailType = InterListFunction<
{
activityId: number;
activityStatus?: number;
activityType?: number;
userAccountId?: number;
},
{
id: number;
activityId: number;
userAccountId: number;
createTime: null;
accountSimpleDTO: {
id: number;
uid: string;
phoneNum: string;
userName: string;
nickName: string;
userImg: string;
openid: string;
userSex: number;
email: null;
source: null;
accountStatus: number;
portType: number;
companyAuthStatus: number;
cooperationTagId: null;
companyName: string;
tagName: null;
cooperationTagVOS: Array<{
id: number;
tagName: string;
tagImg: null;
tagDescription: null;
tagRequire: null;
createTime: null;
}>;
briefIntroduction: null;
coverPicture: null;
region: null;
};
rewardValue: null;
puserAccountId: number;
paccountSimpleDTO: {
id: number;
uid: string;
phoneNum: string;
userName: null;
nickName: string;
userImg: string;
openid: string;
userSex: number;
email: null;
source: null;
accountStatus: number;
portType: number;
companyAuthStatus: number;
cooperationTagId: null;
companyName: null;
tagName: null;
cooperationTagVOS: Array<{
id: number;
tagName: string;
tagImg: null;
tagDescription: null;
tagRequire: null;
createTime: null;
}>;
briefIntroduction: null;
coverPicture: null;
region: null;
};
}
>;
......@@ -4,6 +4,7 @@ import {
activityDeleteType,
activityEditType,
activityInsertType,
activityInviteDetailType,
activityUpdateType,
addActivityType,
DataInfoType,
......@@ -73,4 +74,9 @@ export class ActivityManageAPI {
static activityDelete: activityDeleteType = (params) => {
return axios.get('/userapp/activity/delete', { params });
};
// 活动详情
static activityInviteDetail: activityInviteDetailType = (params) => {
return axios.post('/userapp/activity/inviteDetail', params);
};
}
import { useEffect, useState } from 'react';
import SearchBox from '~/components/search-box';
import { Button, message, Table } from 'antd';
import { ArrowLeftOutlined } from '@ant-design/icons';
import { activityInviteDetailType } from '~/api/interface/activityManage';
import { InterListType } from '~/api/interface';
import { ActivityManageAPI } from '~/api';
import { useLocation, useNavigate } from 'react-router-dom';
import qs from 'query-string';
import { ColumnsType } from 'antd/es/table';
// 列表的类型
type TableType = InterListType<activityInviteDetailType>;
const ActivityListDetailView = () => {
// 路由钩子
const location = useLocation();
const navigate = useNavigate();
// 表格数据
const [tableData, setTableData] = useState<TableType>([]);
// 表格分页配置
const [pagination, setPagination] = useState({
total: 0,
pageSize: 10,
current: 1,
totalPage: 0,
});
// 活动id
const activityId = Number(qs.parse(location.search).id);
// 加载列表
const getTableList = async (value = {}) => {
// 只需要修改这个地方的接口即可
const res = await ActivityManageAPI.activityInviteDetail({
pageNo: pagination.current,
pageSize: pagination.pageSize,
activityId,
...value,
});
if (res && res.code === '200') {
const { list, pageNo, totalCount, pageSize, totalPage } = res.result; // 解构
setPagination({
total: totalCount,
current: pageNo,
pageSize,
totalPage,
});
setTableData(list || []);
// console.log('加载列表 --->', list);
} else {
message.warning(res.message);
}
};
// 翻页
const paginationChange = (pageNo: number, pageSize: number) => {
getTableList({ pageNo, pageSize }).then();
};
// 页面挂载
useEffect(() => {
getTableList().then();
}, []);
// 表格结构
const columns: ColumnsType<TableType[0]> = [
{
title: '邀请人',
dataIndex: 'userAccountId',
align: 'center',
render: (_text, record) =>
record?.accountSimpleDTO?.userName || record?.accountSimpleDTO?.nickName,
},
{
title: '邀请人手机号',
dataIndex: 'userAccountId',
align: 'center',
render: (_text, record) => record?.accountSimpleDTO?.phoneNum,
},
{
title: '被邀请人',
dataIndex: 'userAccountId',
align: 'center',
render: (_text, record) =>
record?.paccountSimpleDTO?.userName || record?.paccountSimpleDTO?.nickName,
},
{
title: '被邀请人手机号',
dataIndex: 'userAccountId',
align: 'center',
render: (_text, record) => record?.paccountSimpleDTO?.phoneNum,
},
{
title: '奖励积分',
dataIndex: 'rewardValue',
align: 'center',
render: (text) => `${text}分`,
},
{
title: '注册时间',
dataIndex: 'createTime',
align: 'center',
},
];
return (
<>
<SearchBox
child={
<>
<Button
type={'primary'}
icon={<ArrowLeftOutlined />}
onClick={() => {
navigate(-1);
}}
>
返回
</Button>
</>
}
/>
<Table
// size='small'
dataSource={tableData}
columns={columns}
rowKey='id'
// scroll={{ x: 1000 }}
bordered
pagination={{
total: pagination.total,
pageSize: pagination.pageSize,
current: pagination.current,
showSizeChanger: true,
showQuickJumper: true,
onChange: (page: number, pageSize: number) => paginationChange(page, pageSize),
showTotal: (total, range) => `当前 ${range[0]}-${range[1]} 条记录 / 共 ${total} 条数据`,
}}
/>
</>
);
};
export default ActivityListDetailView;
import React, { useEffect, useState } from 'react';
import { useEffect, useState } from 'react';
import SearchView from '~/components/search-box';
import { ActivityManageAPI } from '~/api';
import { InterListType, InterReqListType } from '~/api/interface';
......@@ -7,6 +7,8 @@ import { Button, message, Modal, Table } from 'antd';
import { ColumnsType } from 'antd/es/table';
import { PlusOutlined } from '@ant-design/icons';
import AddOrEditModal from '~/pages/activityManage/activityList/comp/addOrEditModal';
import { useNavigate } from 'react-router-dom';
import qs from 'query-string';
// 列表的类型
type TableType = InterListType<listActivityPagesType>;
......@@ -29,6 +31,8 @@ const rewardTypeList = [
];
const ActivityListView = () => {
// 路由钩子
const navigate = useNavigate();
// 表格数据
const [tableData, setTableData] = useState<TableType>([]);
// 表格分页配置
......@@ -62,7 +66,7 @@ const ActivityListView = () => {
totalPage,
});
setTableData(list || []);
console.log('加载列表 --->', list);
// console.log('加载列表 --->', list);
} else {
message.warning(res.message);
}
......@@ -162,6 +166,7 @@ const ActivityListView = () => {
dataIndex: 'action',
align: 'center',
fixed: 'right',
width: '180px',
render: (_text, record) => (
<>
<Button
......@@ -173,6 +178,18 @@ const ActivityListView = () => {
>
编辑
</Button>
<Button
type={'link'}
onClick={() => {
navigate(
`/activityManage/activityList/detail?${qs.stringify({
id: record?.id,
})}`,
);
}}
>
领取记录
</Button>
<Button type={'link'} danger onClick={() => handleDelete(record)}>
删除
</Button>
......
......@@ -174,6 +174,7 @@ import CustomListDetail from '~/pages/customManage/customList/detail';
import ServiceCategoryDetail from '~/pages/categoryManage/serviceCategoryList/detail';
import RewardsManageView from '~/pages/activityManage/rewardsManage';
import ActivityListView from '~/pages/activityManage/activityList';
import ActivityListDetailView from '~/pages/activityManage/activityList/detail';
const AddressManageView = React.lazy(() => import('~/pages/systemManage/addressManage'));
// const IndustryListView = React.lazy(() => import('~/pages/mallManage/industryManage/industryList')); //行业列表
......@@ -529,6 +530,19 @@ export const routerList: Array<RouteObjectType> = [
develop: true,
},
},
{
path: '/activityManage/activityList/detail',
element: withLoadingComponent(<ActivityListDetailView />),
errorElement: <ErrorPage />,
meta: {
id: 520,
title: '领取记录',
icon: <WechatOutlined />,
hidden: true,
pid: 520,
develop: true,
},
},
],
},
{
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论