提交 cf83385b 作者: ZhangLingKun

Merge branch 'develop'

...@@ -14,4 +14,4 @@ patches: ...@@ -14,4 +14,4 @@ patches:
images: images:
- name: REGISTRY/NAMESPACE/IMAGE:TAG - name: REGISTRY/NAMESPACE/IMAGE:TAG
newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/admin newName: mmc-registry.cn-shenzhen.cr.aliyuncs.com/sharefly-dev/admin
newTag: ef7755ce33c287662585abd3fccd51a2fd7d3347 newTag: c845a956d9c2f7a9796b61f04f9afcbaba974a9b
...@@ -144,6 +144,9 @@ export type listUserApplyTag = InterListFunction< ...@@ -144,6 +144,9 @@ export type listUserApplyTag = InterListFunction<
userAccountId: number; userAccountId: number;
orderNo: string; orderNo: string;
signStatus: number; signStatus: number;
brandLogo: string;
brandName: string;
backUserId: number;
} }
>; >;
// 审批详情 // 审批详情
......
...@@ -36,6 +36,7 @@ export type backListPilotType = InterItemFunction< ...@@ -36,6 +36,7 @@ export type backListPilotType = InterItemFunction<
auditStatus?: number; auditStatus?: number;
id?: number; id?: number;
licenseType?: string; licenseType?: string;
backUserId?: number;
}, },
flyerItemType[] flyerItemType[]
>; >;
......
...@@ -679,30 +679,81 @@ export type serviceOrderFormListType = InterItemFunction< ...@@ -679,30 +679,81 @@ export type serviceOrderFormListType = InterItemFunction<
export type serviceOrderFormDetailsType = InterFunction< export type serviceOrderFormDetailsType = InterFunction<
{ requirementsInfoId: number }, { requirementsInfoId: number },
{ {
cashAmount: number; serviceArriveSceneDTO: {
createTime: string; id: number;
id: number; longitude: number;
latitude: number; latitude: number;
longitude: number; sceneAddress: string;
orderAmount: number; sceneUrl: string;
orderEarnings: number; userAccountId: number;
orderEarningsDTO: null; requirementsInfoId: number;
preemptCashAmount: number; createTime: string;
preemptSalaryAmount: number; updateTime: string;
preemptWeChat: number; serviceFlowId: null;
publisherNumber: string; flowDictionaryDTO: {
requireDescription: string; id: number;
salaryAmount: number; waiting: string;
serviceId: number; orderStatus: string;
serviceName: string; userPort: string;
taskAddress: string; doing: string;
taskEndTime: string; flyerPort: string;
taskStartTime: string; };
updateOrderAmount: number; };
weChat: number; serviceFulfilATaskDTO: {
orderStatus: string; id: number;
duty: number; taskDescribe: null;
decisionContent: string; taskUrl: string;
requirementsInfoId: number;
userAccountId: number;
createTime: string;
updateTime: string;
serviceFlowId: null;
flowDictionaryDTO: {
id: number;
waiting: string;
orderStatus: string;
userPort: string;
doing: string;
flyerPort: string;
};
};
serviceEvaluateDTO: null;
amountUpdate: null;
serviceOrderFormDetailsDTO: {
id: number;
createTime: string;
serviceId: number;
serviceName: string;
publisherNumber: string;
orderAmount: number;
taskStartTime: string;
taskEndTime: string;
longitude: null;
latitude: null;
taskAddress: string;
cashAmount: number;
salaryAmount: number;
weChat: number;
preemptCashAmount: number;
preemptSalaryAmount: number;
preemptWeChat: number;
updateOrderAmount: number;
orderEarnings: number;
orderEarningsDTO: {
orderLevelAmount: number;
orderLevel: string;
orderAmount: number;
liquidatedDamages: number;
requirementsInfoId: number;
createTime: string;
updateTime: string;
};
requireDescription: string;
updateTime: string;
orderStatus: string;
decisionContent: null;
duty: null;
};
} }
>; >;
// 需求订单-进度条 // 需求订单-进度条
...@@ -2086,3 +2137,57 @@ export type rentPfConfirmOrderWareType = InterFunction< ...@@ -2086,3 +2137,57 @@ export type rentPfConfirmOrderWareType = InterFunction<
}, },
any any
>; >;
// 小程序-详情——需求发布
export type requirementsDetailPublishType = InterFunction<
{ id: number },
{
cityCode: number;
districtCode: number;
doing: string;
flyerPort: string;
id: number;
insurance: string;
latitude: number;
longitude: number;
orderAmount: number;
orderLevel: number;
orderLevelEnum: string;
orderNumber: string;
orderStatus: string;
paramMoney: number;
preemptTotalAmount: number;
provinceCode: number;
publish: number;
publishAccountId: number;
publishName: string;
publishPhone: string;
publisherNumber: string;
reason: string;
requireDescription: string;
requireUrl: string;
requirementTypeId: number;
requirementTypeName: string;
requirementsInfoId: number;
serviceId: number;
serviceName: string;
solved: boolean;
taskAddress: string;
taskEndTime: string;
taskStartTime: string;
taskTitle: string;
totalAmount: number;
updateOrderAmount: number;
url: string;
userAccountId: number;
userPort: string;
waiting: string;
afterModificationUrl: string;
afterModificationReason: string;
preemptPhone: string;
pilotCertificationUserId: number;
pilotCertificationId: number;
requireNum: number;
repertory: number;
fatherRequireId: number;
}
>;
...@@ -43,6 +43,7 @@ import { ...@@ -43,6 +43,7 @@ import {
rentOrderSendType, rentOrderSendType,
rentOrderDetailType, rentOrderDetailType,
rentPfConfirmOrderWareType, rentPfConfirmOrderWareType,
requirementsDetailPublishType,
} from '~/api/interface/orderManageType'; } from '~/api/interface/orderManageType';
export class OrderManageAPI { export class OrderManageAPI {
...@@ -176,4 +177,8 @@ export class OrderManageAPI { ...@@ -176,4 +177,8 @@ export class OrderManageAPI {
// 租赁订单-平台确认归还 // 租赁订单-平台确认归还
static rentPfConfirmOrderWare: rentPfConfirmOrderWareType = (data) => static rentPfConfirmOrderWare: rentPfConfirmOrderWareType = (data) =>
axios.post('/oms/lease/order/pfConfirmOrderWare', data); axios.post('/oms/lease/order/pfConfirmOrderWare', data);
// 小程序-详情——需求发布
static requirementsDetailPublish: requirementsDetailPublishType = (params) =>
axios.get('/release/requirements/detailPublish', { params });
} }
...@@ -37,7 +37,7 @@ export function MenuView() { ...@@ -37,7 +37,7 @@ export function MenuView() {
}; };
// 递归将路由转换为侧边栏数据 // 递归将路由转换为侧边栏数据
const getItem = (routerList: RouteObjectType[]) => { const getItem = (routerList: RouteObjectType[]) => {
const list: Array<MenuItem> = routerList.map((i) => { const list: Array<MenuItem> = routerList?.map((i) => {
if (i.children?.length) { if (i.children?.length) {
return { return {
label: i.meta?.title, label: i.meta?.title,
...@@ -55,13 +55,17 @@ export function MenuView() { ...@@ -55,13 +55,17 @@ export function MenuView() {
} }
} }
}) as MenuItem[]; }) as MenuItem[];
return list?.filter((i) => i !== undefined); return list?.filter((i) => i !== undefined) || [];
}; };
// 组件挂载 // 组件挂载
useEffect(() => { useEffect(() => {
// 设置侧边栏数据 // 设置侧边栏数据
authRouterList().then((value) => { authRouterList().then((value) => {
setItems(getItem(value)); // 除了数据看板,其他没有子项的菜单全部过滤掉
const arr = getItem(value)?.filter((i: any) => i?.key === 2) || [];
const brr = getItem(value)?.filter((i: any) => i?.children?.length) || [];
// 设置要展示的菜单列表
setItems([...arr, ...brr]);
}); });
}, []); }, []);
......
...@@ -89,7 +89,7 @@ const Index: React.FC<propsType> = (props) => { ...@@ -89,7 +89,7 @@ const Index: React.FC<propsType> = (props) => {
}; };
// 提交数据 // 提交数据
const handleSubmit = (data: any) => { const handleSubmit = (data: any) => {
// console.log("提交数据 --->", data); // console.log('提交数据 --->', props.search, data);
if (data.startTime) { if (data.startTime) {
data.startTime = moment(data.startTime).format('YYYY-MM-DD'); data.startTime = moment(data.startTime).format('YYYY-MM-DD');
} }
......
...@@ -166,6 +166,14 @@ const CustomIdentityView = () => { ...@@ -166,6 +166,14 @@ const CustomIdentityView = () => {
title: '联系方式', title: '联系方式',
dataIndex: 'applyPhone', dataIndex: 'applyPhone',
align: 'center', align: 'center',
width: '100px',
},
{
title: '企业简称',
dataIndex: 'brandName',
align: 'center',
width: '100px',
ellipsis: true,
}, },
{ {
title: '服务资质', title: '服务资质',
...@@ -197,7 +205,7 @@ const CustomIdentityView = () => { ...@@ -197,7 +205,7 @@ const CustomIdentityView = () => {
dataIndex: 'action', dataIndex: 'action',
align: 'center', align: 'center',
fixed: 'right', fixed: 'right',
width: '250px', width: '200px',
render: (_text, record) => ( render: (_text, record) => (
<> <>
<Button <Button
......
import SearchBox, { searchColumns as searchColumnsType } from '~/components/search-box'; import SearchBox, { searchColumns as searchColumnsType } from '~/components/search-box';
import { Button, Table, Tag } from 'antd'; import { Button, Table, Tag } from 'antd';
import { ColumnsType } from 'antd/es/table'; import { ColumnsType } from 'antd/es/table';
import { CommonAPI, FlyerCenterAPI } from '~/api'; import { CommonAPI, CustomManageAPI, FlyerCenterAPI } from '~/api';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { InterDataType, InterReqListType, PaginationProps } from '~/api/interface'; import { InterDataType, InterReqListType, PaginationProps } from '~/api/interface';
import { backListPilotType, getPilotAuditSumType } from '~/api/interface/flyerCenterType'; import { backListPilotType, getPilotAuditSumType } from '~/api/interface/flyerCenterType';
...@@ -21,7 +21,127 @@ type statisticsDataType = InterDataType<getPilotAuditSumType>; ...@@ -21,7 +21,127 @@ type statisticsDataType = InterDataType<getPilotAuditSumType>;
const FlyerList = () => { const FlyerList = () => {
const navigate = useNavigate(); const navigate = useNavigate();
const [tableData, setTableData] = useState<flyerListType>([]);
const [currentTableItem, setCurrentTableItem] = useState<flyerListType[0]>();
const [query, setQuery] = useState<flyerListParameters>();
const [pagination, setPagination] = useState<PaginationProps & { totalCount: number }>({
pageNo: 1,
pageSize: 10,
totalCount: 0,
});
const [loading, setLoading] = useState<boolean>(false);
//修改备注弹窗
const [updateRemarkModalShow, setUpdateRemarkModalShow] = useState<boolean>(false);
// 飞手审批数据统计
const [approveStatistics, setApproveStatistics] = useState<statisticsDataType>();
//飞手列表
const getFlyerList = (query?: flyerListParameters) => {
setLoading(true);
FlyerCenterAPI.getBackListPilot({
pageNo: pagination.pageNo,
pageSize: pagination.pageSize,
...query,
}).then(({ result }) => {
setLoading(false);
pagination.totalCount = result.totalCount;
setTableData(result.list || []);
setPagination(pagination);
});
};
//飞手能力列表
const getAbilityList = () => {
FlyerCenterAPI.getAbilityList().then(({ result }) => {
searchColumns[2].options = (result || []).map((v) => ({
id: v.abilityId,
name: v.abilityName,
}));
setSearchColumns([...searchColumns]);
});
};
//分页
const paginationChange = (pageNo: number, pageSize: number) => {
pagination.pageNo = pageNo;
pagination.pageSize = pageSize;
getFlyerList(query);
};
// 筛选成功
const searchSuccess = (value: flyerListParameters) => {
pagination.pageNo = 1;
pagination.pageSize = 10;
console.log('筛选限制 --->', value);
setQuery({ ...value, areaNumber: value.areaNumber ? value.areaNumber[1] : undefined });
getFlyerList({ ...value, areaNumber: value.areaNumber ? value.areaNumber[1] : undefined });
};
// 获取飞手审批数据统计
const getFlyerApproveStatistics = () => {
FlyerCenterAPI.getPilotAuditSum().then(({ result }) => {
setApproveStatistics(result);
});
};
//获取地域数据
const getSecondDistrictInfo = () => {
CommonAPI.getSecondDistrictInfo().then(({ result }) => {
const covertLocationData: any = (list: locationType) => {
return list.map((v) => ({
label: v.name,
value: v.id,
children: v.childInfo ? covertLocationData(v.childInfo) : [],
}));
};
searchColumns[3].options = covertLocationData(result);
setSearchColumns([...searchColumns]);
});
};
// 获取所有飞手团队的列表
const getFlyerUserApplyTagList = async () => {
const res = await CustomManageAPI.listUserApplyTag({
applyStatus: 1,
cooperationTagId: 5,
pageNo: 1,
pageSize: 9999,
});
if (res && res.code === '200') {
searchColumns[4].options = res.result?.list?.map((i) => ({
label: i.companyName || i.brandName,
value: i.backUserId,
}));
setSearchColumns([...searchColumns]);
}
};
//认证日志页面
const toFlyerAuthDaily = () => {
navigate('/customManage/flyerAuthDaily');
};
//飞手审批页面
const toFlyerApprove = (record: flyerListType[0]) => {
navigate({ pathname: '/customManage/flyerDetail', search: `id=${record.id}&isApprove=1` });
};
//飞手详情页面
const toFlyerDetail = (record: flyerListType[0]) => {
navigate({ pathname: '/customManage/flyerApprove', search: `id=${record.id}` });
};
//修改备注
const updateRemarkClick = (record: flyerListType[0]) => {
setCurrentTableItem(record);
setUpdateRemarkModalShow(true);
};
const updateRemarkModalCancel = () => {
setUpdateRemarkModalShow(false);
};
const updateRemarkModalOk = () => {
getFlyerList(query);
setUpdateRemarkModalShow(false);
};
useEffect(() => {
getFlyerList();
getAbilityList();
getSecondDistrictInfo();
getFlyerApproveStatistics();
getFlyerUserApplyTagList().then();
}, []);
const [searchColumns, setSearchColumns] = useState<searchColumnsType[]>([ const [searchColumns, setSearchColumns] = useState<searchColumnsType[]>([
{ {
name: 'accountNumber', name: 'accountNumber',
...@@ -54,13 +174,15 @@ const FlyerList = () => { ...@@ -54,13 +174,15 @@ const FlyerList = () => {
type: 'Cascader', type: 'Cascader',
options: [], options: [],
}, },
]);
const tableColumns: ColumnsType<flyerListType[0]> = [
{ {
title: 'UID', name: 'backUserId',
dataIndex: 'userAccountId', label: '团队名称',
align: 'center', placeholder: '请选择团队名称',
type: 'Select',
options: [],
}, },
]);
const tableColumns: ColumnsType<flyerListType[0]> = [
{ {
title: '姓名', title: '姓名',
align: 'center', align: 'center',
...@@ -78,6 +200,11 @@ const FlyerList = () => { ...@@ -78,6 +200,11 @@ const FlyerList = () => {
render: (text: number) => (text === 0 ? '审核中' : text === 1 ? '已通过' : '未通过'), render: (text: number) => (text === 0 ? '审核中' : text === 1 ? '已通过' : '未通过'),
}, },
{ {
title: '已加入团队',
dataIndex: 'flyingTeam',
align: 'center',
},
{
title: '能力认证', title: '能力认证',
align: 'center', align: 'center',
dataIndex: 'pilotAbility', dataIndex: 'pilotAbility',
...@@ -138,111 +265,6 @@ const FlyerList = () => { ...@@ -138,111 +265,6 @@ const FlyerList = () => {
), ),
}, },
]; ];
const [tableData, setTableData] = useState<flyerListType>([]);
const [currentTableItem, setCurrentTableItem] = useState<flyerListType[0]>();
const [query, setQuery] = useState<flyerListParameters>();
const [pagination, setPagination] = useState<PaginationProps & { totalCount: number }>({
pageNo: 1,
pageSize: 10,
totalCount: 0,
});
const [loading, setLoading] = useState<boolean>(false);
//修改备注弹窗
const [updateRemarkModalShow, setUpdateRemarkModalShow] = useState<boolean>(false);
// 飞手审批数据统计
const [approveStatistics, setApproveStatistics] = useState<statisticsDataType>();
//飞手列表
const getFlyerList = (query?: flyerListParameters) => {
setLoading(true);
FlyerCenterAPI.getBackListPilot({
pageNo: pagination.pageNo,
pageSize: pagination.pageSize,
...query,
}).then(({ result }) => {
setLoading(false);
pagination.totalCount = result.totalCount;
setTableData(result.list || []);
setPagination(pagination);
});
};
//飞手能力列表
const getAbilityList = () => {
FlyerCenterAPI.getAbilityList().then(({ result }) => {
searchColumns[2].options = (result || []).map((v) => ({
id: v.abilityId,
name: v.abilityName,
}));
setSearchColumns([...searchColumns]);
});
};
//分页
const paginationChange = (pageNo: number, pageSize: number) => {
pagination.pageNo = pageNo;
pagination.pageSize = pageSize;
getFlyerList(query);
};
//筛选成功
const searchSuccess = (value: flyerListParameters) => {
pagination.pageNo = 1;
pagination.pageSize = 10;
setQuery({ ...value, areaNumber: value.areaNumber ? value.areaNumber[1] : undefined });
getFlyerList({ ...value, areaNumber: value.areaNumber ? value.areaNumber[1] : undefined });
};
// 获取飞手审批数据统计
const getFlyerApproveStatistics = () => {
FlyerCenterAPI.getPilotAuditSum().then(({ result }) => {
setApproveStatistics(result);
});
};
//获取地域数据
const getSecondDistrictInfo = () => {
CommonAPI.getSecondDistrictInfo().then(({ result }) => {
const covertLocationData: any = (list: locationType) => {
return list.map((v) => ({
label: v.name,
value: v.id,
children: v.childInfo ? covertLocationData(v.childInfo) : [],
}));
};
searchColumns[3].options = covertLocationData(result);
setSearchColumns([...searchColumns]);
});
};
//认证日志页面
const toFlyerAuthDaily = () => {
navigate('/flyerManage/flyerAuthDaily');
};
//飞手审批页面
const toFlyerApprove = (record: flyerListType[0]) => {
navigate({ pathname: '/flyerManage/flyerDetail', search: `id=${record.id}&isApprove=1` });
};
//飞手详情页面
const toFlyerDetail = (record: flyerListType[0]) => {
navigate({ pathname: '/flyerManage/flyerApprove', search: `id=${record.id}` });
};
//修改备注
const updateRemarkClick = (record: flyerListType[0]) => {
setCurrentTableItem(record);
setUpdateRemarkModalShow(true);
};
const updateRemarkModalCancel = () => {
setUpdateRemarkModalShow(false);
};
const updateRemarkModalOk = () => {
getFlyerList(query);
setUpdateRemarkModalShow(false);
};
useEffect(() => {
getFlyerList();
getAbilityList();
getSecondDistrictInfo();
getFlyerApproveStatistics();
}, []);
return ( return (
<div className='flyer-list'> <div className='flyer-list'>
<SearchBox <SearchBox
......
...@@ -67,18 +67,18 @@ const AddFlyerModal: FC<ModalProps & selfProps> = ({ open, onCancel, title }) => ...@@ -67,18 +67,18 @@ const AddFlyerModal: FC<ModalProps & selfProps> = ({ open, onCancel, title }) =>
pilotId: userAccountId, pilotId: userAccountId,
}); });
if (res && res.code === '200') { if (res && res.code === '200') {
message.success('添加成功').then(); message.success('您的邀请已发出,请等待飞手确认加入!').then();
handleCancel(); handleCancel();
} }
// console.log('提交数据 --->', userAccountId); // console.log('提交数据 --->', userAccountId);
}; };
// 表格结构 // 表格结构
const columns: ColumnsType<TableType[0]> = [ const columns: ColumnsType<TableType[0]> = [
{ // {
title: 'UID', // title: 'UID',
dataIndex: 'userAccountId', // dataIndex: 'userAccountId',
align: 'center', // align: 'center',
}, // },
{ {
title: '姓名', title: '姓名',
align: 'center', align: 'center',
......
...@@ -18,7 +18,7 @@ let query: ReqType = {}; ...@@ -18,7 +18,7 @@ let query: ReqType = {};
const pilotStatusList = [ const pilotStatusList = [
{ label: '同意', value: 1 }, { label: '同意', value: 1 },
{ label: '拒绝', value: 2 }, { label: '拒绝', value: 2 },
{ label: '待操作', value: 0 }, { label: '待飞手确认', value: 0 },
]; ];
// 组件 // 组件
...@@ -93,11 +93,11 @@ const FlyerTeamView = () => { ...@@ -93,11 +93,11 @@ const FlyerTeamView = () => {
}, []); }, []);
// 表格结构 // 表格结构
const columns: ColumnsType<TableType[0]> = [ const columns: ColumnsType<TableType[0]> = [
{ // {
title: 'UID', // title: 'UID',
dataIndex: 'userAccountId', // dataIndex: 'userAccountId',
align: 'center', // align: 'center',
}, // },
{ {
title: '姓名', title: '姓名',
align: 'center', align: 'center',
......
...@@ -323,30 +323,7 @@ export const routerList: Array<RouteObjectType> = [ ...@@ -323,30 +323,7 @@ export const routerList: Array<RouteObjectType> = [
}, },
}, },
{ {
path: '/customManage/customIdentity', path: '/customManage/flyerList',
element: withLoadingComponent(<CustomIdentityView />),
errorElement: <ErrorPage />,
meta: {
id: 240,
title: '商家管理',
icon: <AuditOutlined />,
},
},
],
},
{
path: '/flyerManage',
element: <LayoutView />,
errorElement: <ErrorPage />,
meta: {
id: 1800,
icon: <ContactsOutlined />,
title: '飞手管理',
// develop: true,
},
children: [
{
path: '/flyerManage/flyerList',
element: withLoadingComponent(<FlyerListView />), element: withLoadingComponent(<FlyerListView />),
errorElement: <ErrorPage />, errorElement: <ErrorPage />,
meta: { meta: {
...@@ -356,7 +333,7 @@ export const routerList: Array<RouteObjectType> = [ ...@@ -356,7 +333,7 @@ export const routerList: Array<RouteObjectType> = [
}, },
}, },
{ {
path: '/flyerManage/flyerAuthDaily', path: '/customManage/flyerAuthDaily',
element: withLoadingComponent(<FlyerAuthDailyView />), element: withLoadingComponent(<FlyerAuthDailyView />),
errorElement: <ErrorPage />, errorElement: <ErrorPage />,
meta: { meta: {
...@@ -368,7 +345,7 @@ export const routerList: Array<RouteObjectType> = [ ...@@ -368,7 +345,7 @@ export const routerList: Array<RouteObjectType> = [
}, },
}, },
{ {
path: '/flyerManage/flyerDetail', path: '/customManage/flyerDetail',
element: withLoadingComponent(<FlyerDetailsView />), element: withLoadingComponent(<FlyerDetailsView />),
errorElement: <ErrorPage />, errorElement: <ErrorPage />,
meta: { meta: {
...@@ -380,7 +357,7 @@ export const routerList: Array<RouteObjectType> = [ ...@@ -380,7 +357,7 @@ export const routerList: Array<RouteObjectType> = [
}, },
}, },
{ {
path: '/flyerManage/flyerApprove', path: '/customManage/flyerApprove',
element: withLoadingComponent(<FlyerDetailsView />), element: withLoadingComponent(<FlyerDetailsView />),
errorElement: <ErrorPage />, errorElement: <ErrorPage />,
meta: { meta: {
...@@ -392,6 +369,29 @@ export const routerList: Array<RouteObjectType> = [ ...@@ -392,6 +369,29 @@ export const routerList: Array<RouteObjectType> = [
}, },
}, },
{ {
path: '/customManage/customIdentity',
element: withLoadingComponent(<CustomIdentityView />),
errorElement: <ErrorPage />,
meta: {
id: 240,
title: '商家管理',
icon: <AuditOutlined />,
},
},
],
},
{
path: '/flyerManage',
element: <LayoutView />,
errorElement: <ErrorPage />,
meta: {
id: 1800,
icon: <ContactsOutlined />,
title: '飞手管理',
// develop: true,
},
children: [
{
path: '/flyerManage/flyerTeam', path: '/flyerManage/flyerTeam',
element: withLoadingComponent(<FlyerTeamView />), element: withLoadingComponent(<FlyerTeamView />),
errorElement: <ErrorPage />, errorElement: <ErrorPage />,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论