Commit 967c13bb authored by XieZhiXiong's avatar XieZhiXiong

补充组合路由

parent 6b321f7e
......@@ -28,7 +28,7 @@ const MemberRoute = {
name: 'importDetail',
key: 'importDetail',
hideInMenu: true,
component: '@/pages/member/components/memberDetail/index',
component: '@/pages/member/memberImport/importDetail',
},
{
path: '/memberCenter/memberAbility/manage/addMember',
......@@ -48,7 +48,7 @@ const MemberRoute = {
name: 'maintainDetail',
key: 'maintainDetail',
hideInMenu: true,
component: '@/pages/member/components/memberDetail/index',
component: '@/pages/member/memberMaintain/maintainDetail',
},
{
path: '/memberCenter/memberAbility/manage/memberPrSubmit',
......@@ -122,9 +122,62 @@ const MemberRoute = {
component: '@/pages/member/memberLevel/addEquity',
},
]
}
},
{
path: '/memberCenter/memberAbility/query',
name: 'memberQuery',
key: 'memberQuery',
component: '@/pages/member/memberQuery/index',
},
{
path: '/memberCenter/memberAbility/query/detailed',
name: 'memberQueryDetailed',
key: 'memberQueryDetailed',
component: '@/pages/member/memberQuery/detailed',
hideInMenu: true,
routes: [
{
path: '/memberCenter/memberAbility/query/detailed',
redirect: '/memberCenter/memberAbility/query/detailed/basicInfo',
},
{
path: '/memberCenter/memberAbility/query/detailed/basicInfo',
name: 'basicInfo',
key: 'basicInfo',
component: '@/pages/member/memberQuery/detailed/basicInfo',
hideInMenu: true,
},
{
path: '/memberCenter/memberAbility/query/detailed/powerInfo',
name: 'powerInfo',
key: 'powerInfo',
component: '@/pages/member/memberQuery/detailed/powerInfo',
hideInMenu: true,
},
{
path: '/memberCenter/memberAbility/query/detailed/levelInfo',
name: 'levelInfo',
key: 'levelInfo',
component: '@/pages/member/memberQuery/detailed/levelInfo',
hideInMenu: true,
},
{
path: '/memberCenter/memberAbility/query/detailed/equityInfo',
name: 'equityInfo',
key: 'equityInfo',
component: '@/pages/member/memberQuery/detailed/equityInfo',
hideInMenu: true,
},
{
path: '/memberCenter/memberAbility/query/detailed/sincerityInfo',
name: 'sincerityInfo',
key: 'sincerityInfo',
component: '@/pages/member/memberQuery/detailed/sincerityInfo',
hideInMenu: true,
},
],
},
]
}
export default MemberRoute
......@@ -23,7 +23,7 @@ export interface ShopInfo {
type: number;
environment: number;
logoUrl: string;
describe: string;
describe?: any;
state: number;
url: string;
}
......
/*
* @Author: LeeJiancong
* @Date: 2020-07-13 14:08:50
* @LastEditors: LeeJiancong
* @LastEditTime: 2020-08-25 11:25:00
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-08-28 17:48:20
*/
export default {
......@@ -73,6 +73,13 @@ export default {
'menu.memberAbility.memberManage.memberLevel': '会员等级',
'menu.memberAbility.memberManage.addEquity': '会员权益设置',
'menu.memberAbility.memberManage.maintainDetail': '未命名',
'menu.memberAbility.memberQuery': '会员信息查询',
'menu.memberAbility.memberQueryDetailed': '会员信息详情',
'menu.memberAbility.memberQueryDetailed.basicInfo': '会员基本信息',
'menu.memberAbility.memberQueryDetailed.powerInfo': '会员权限信息',
'menu.memberAbility.memberQueryDetailed.levelInfo': '会员等级信息',
'menu.memberAbility.memberQueryDetailed.equityInfo': '权益信息',
'menu.memberAbility.memberQueryDetailed.sincerityInfo': '诚信信息',
// 店铺能力
'menu.shopAbility': '店铺',
......
......@@ -7,7 +7,7 @@ import MellowCard from '@/components/MellowCard';
import styles from './index.less';
interface AuditProcessProp {
single?: string
};
const AuditProcess: React.FC<{}> = () => (
......
......@@ -2,17 +2,10 @@ import React, { useState } from 'react';
import {
Row,
Col,
Steps,
Descriptions,
Tabs,
Badge,
} from 'antd';
import classNames from 'classnames';
import PolymericTable from '@/components/PolymericTable';
import { EditableColumns } from '@/components/PolymericTable/interface';
import MellowCard from '@/components/MellowCard';
import PicWrap from '../PicWrap';
import AuditProcess from '../AuditProcess';
import FlowRecords from '../FlowRecords';
import styles from './index.less';
......@@ -20,17 +13,12 @@ interface PageProps {
detailData: any;
}
const BasicInfo: React.FC<{}> = props => {
return (
<div className={styles.basicInfo}>
<Row gutter={[0, 24]}>
<Col span={24}>
<AuditProcess />
</Col>
<Col span={24}>
<MellowCard
title="基本信息"
>
......
import React from 'react';
import {
Row,
Col,
Steps,
Descriptions,
Tabs,
Badge,
} from 'antd';
import classNames from 'classnames';
import { STATUS_COLOR_MAP, STATUS_COLOR_TXT } from '../../constant';
import PolymericTable from '@/components/PolymericTable';
import { EditableColumns } from '@/components/PolymericTable/interface';
import MellowCard from '@/components/MellowCard';
import PicWrap from '../PicWrap';
import AuditProcess from '../AuditProcess';
import styles from './index.less';
const STATUS_COLOR_MAP = {
0: '#669EDE',
1: '#41CC9E',
2: '#EF6260',
};
const STATUS_COLOR_TXT = {
0: '待审核',
1: '审核通过',
2: '冻结',
};
import styles from './index.less';
interface FlowRecordsProps {
......
.head {
display: flex;
align-items: center;
font-size: 20px;
font-weight: 500;
&-prefix {
width: 48px;
height: 48px;
line-height: 48px;
border-radius: 4px;
border: 1px solid #DFE1E6;
color: #fff;
text-align: center;
background-color: #8777D9;
}
&-name {
color: #172B4D;
margin: 0 8px 0 12px;
}
}
import React from 'react';
import LevelBrand from '../LevelBrand';
import styles from './index.less';
export interface HeadInfoProps {
info: {
name: string,
level?: number,
};
extra?: React.ReactNode;
};
const HeadInfo: React.FC<HeadInfoProps> = ({ info, extra }) => (
<div className={styles.head}>
<div className={styles['head-prefix']}>
{ info && info.name.length ? info.name[0] : '' }
</div>
<div className={styles['head-name']}>
{info.name || ''}
</div>
{!extra ? (
<LevelBrand level={info.level} />
) : extra}
</div>
);
export default HeadInfo;
\ No newline at end of file
.brand {
display: inline-block;
width: 54px;
height: 16px;
line-height: 16px;
> img {
width: 100%;
height: 100%;
}
}
\ No newline at end of file
import React from 'react';
import p_level1 from '@/assets/imgs/level1.png';
import p_level2 from '@/assets/imgs/level2.png';
import p_level3 from '@/assets/imgs/level3.png';
import p_level4 from '@/assets/imgs/level4.png';
import styles from './index.less';
enum levelEnum {
'青铜会员' = 1,
'白银会员' = 2,
'黄金会员' = 3,
'钻石会员' = 4,
}
export interface LevelBrandProps {
level: levelEnum;
};
const PIC_MAP = {
1: p_level1,
2: p_level2,
3: p_level3,
4: p_level4,
};
const LevelBrand: React.FC<LevelBrandProps> = ({ level }) => {
const current = PIC_MAP[level] || '';
return (
<div className={styles.brand}>
{current && <img src={current} />}
</div>
);
};
export default LevelBrand;
\ No newline at end of file
......@@ -13,6 +13,33 @@ import { auditSchema } from './schema';
import { useAsyncInitSelect } from '@/formSchema/effects/useAsyncInitSelect';
import { PublicApi } from '@/services/api';
const mock = [
{
memberId: 1,
validateId: 1,
name: '模拟会员1',
memberTypeName: '模拟会员类型1',
roleName: '模拟角色',
sourceName: '2020.08.28 15:14:00',
memberStatus: '正常',
status: 1,
outerStatusName: '待审核',
innerStatusName: '待提交审核',
},
{
memberId: 2,
validateId: 2,
name: '模拟会员1',
memberTypeName: '模拟会员类型1',
roleName: '模拟角色',
sourceName: '2020.08.28 15:14:00',
memberStatus: '正常',
status: 0,
outerStatusName: '待审核',
innerStatusName: '待提交审核',
},
];
interface PageProps {
pageType: string; // 页面类型 1 待提交审核 2 待审核 3 待确认审核
}
......@@ -305,6 +332,7 @@ const auditList: React.FC<PageProps> = props => {
// innerStatus: filter.innerStatus || ['0'],
// });
// },
dataSource: mock,
}}
columns={columns}
currentRef={ref}
......
export const STATUS_COLOR_MAP = {
0: '#669EDE',
1: '#41CC9E',
2: '#EF6260',
};
export const STATUS_COLOR_TXT = {
0: '待审核',
1: '审核通过',
2: '冻结',
};
\ No newline at end of file
import React from 'react';
import MemberDetail from '../components/memberDetail';
import React, { useState, useEffect } from 'react';
import { history } from 'umi';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { PageHeader, Tag, Descriptions, Steps } from 'antd';
import { STATUS_COLOR_MAP, STATUS_COLOR_TXT } from '../constant';
import { usePageStatus } from '@/hooks/usePageStatus';
import { PublicApi } from '@/services/api';
import MellowCard from '@/components/MellowCard';
import HeadInfo from '../components/HeadInfo';
import BasicInfo from '../components/BasicInfo';
import styles from './index.less';
const ImportDetail = () => {
return <MemberDetail />;
const importDetail: React.FC<{}> = () => {
const { pageStatus, id, validateId } = usePageStatus();
const [detailed, setDetailed] = useState<any>({});
useEffect(() => {
}, []);
return (
<PageHeaderWrapper
title={
<>
<PageHeader
style={{ padding: '0' }}
onBack={() => history.goBack()}
title={
<HeadInfo
info={{
name: '广州市极致皮具有限公司',
level: 1,
}}
/>
}
>
<Descriptions
size="small"
column={2}
style={{
padding: '0 32px',
}}
>
<Descriptions.Item label="会员类型">{123}</Descriptions.Item>
<Descriptions.Item label="会员角色">{123}</Descriptions.Item>
<Descriptions.Item label="会员状态">
<Tag color={STATUS_COLOR_MAP[1]}>{STATUS_COLOR_TXT[1]}</Tag>
</Descriptions.Item>
<Descriptions.Item label="外部状态">
<Tag color={STATUS_COLOR_MAP[2]}>{STATUS_COLOR_TXT[2]}</Tag>
</Descriptions.Item>
</Descriptions>
</PageHeader>
</>
}
>
<MellowCard
title="会员审核流程"
style={{
marginBottom: 24,
}}
>
<Steps style={{ marginTop: 30 }} progressDot current={2}>
<Steps.Step title="会员" description="申请注册" />
<Steps.Step title="平台" description="审核会员" />
<Steps.Step title="完成" description="" />
</Steps>
</MellowCard>
<BasicInfo />
</PageHeaderWrapper>
);
};
export default ImportDetail;
export default importDetail;
......@@ -29,6 +29,33 @@ import { maintianSchema, auditModalSchema } from './schema';
import { useAsyncInitSelect } from '@/formSchema/effects/useAsyncInitSelect';
import { PublicApi } from '@/services/api';
const mock = [
{
memberId: 1,
validateId: 1,
name: '模拟会员1',
memberTypeName: '模拟会员类型1',
roleName: '模拟角色',
sourceName: '2020.08.28 15:14:00',
memberStatus: '正常',
status: 1,
outerStatusName: '待审核',
innerStatusName: '审核通过',
},
{
memberId: 2,
validateId: 2,
name: '模拟会员1',
memberTypeName: '模拟会员类型1',
roleName: '模拟角色',
sourceName: '2020.08.28 15:14:00',
memberStatus: '正常',
status: 0,
outerStatusName: '待审核',
innerStatusName: '待提交审核',
},
];
const formActions = createFormActions();
const fetchData = async (params: any) => {
......@@ -57,7 +84,7 @@ const memberMaintain: React.FC<[]> = () => {
key: 'name',
render: (text: any, record: any) => (
<EyePreview
url={`/memberCenter/memberAbility/manage/importDetail?id=${record.memberId}&validateId=${record.validateId}&preview=1`}
url={`/memberCenter/memberAbility/manage/maintainDetail?id=${record.memberId}&validateId=${record.validateId}&preview=1`}
>
{text}
</EyePreview>
......@@ -258,6 +285,7 @@ const memberMaintain: React.FC<[]> = () => {
tableProps={{
rowKey: 'memberId',
// onChange: (pagination: any, filter: any) => handleSearch(filter),
dataSource: mock,
}}
columns={columns}
currentRef={ref}
......
import React from 'react';
import MemberDetail from '../components/memberDetail';
import React, { useState, useEffect } from 'react';
import { history } from 'umi';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { PageHeader, Tag, Descriptions, Button } from 'antd';
import { SettingOutlined, StopOutlined } from '@ant-design/icons';
import { STATUS_COLOR_MAP, STATUS_COLOR_TXT } from '../constant';
import { usePageStatus } from '@/hooks/usePageStatus';
import { PublicApi } from '@/services/api';
import MellowCard from '@/components/MellowCard';
import HeadInfo from '../components/HeadInfo';
import AuditProcess from '../components/AuditProcess';
import BasicInfo from '../components/BasicInfo';
import styles from './index.less';
const MaintainDetail = () => {
return <MemberDetail />;
const maintainDetail: React.FC<{}> = () => {
const { pageStatus, id, validateId } = usePageStatus();
const [detailed, setDetailed] = useState<any>({});
useEffect(() => {
}, []);
return (
<PageHeaderWrapper
title={
<>
<PageHeader
style={{ padding: '0' }}
onBack={() => history.goBack()}
title={
<HeadInfo
info={{
name: '广州市极致皮具有限公司',
level: 1,
}}
/>
}
extra={(
<>
<Button
icon={<StopOutlined />}
onClick={() => {}}
>
冻结
</Button>
<Button
type="primary"
icon={<SettingOutlined />}
onClick={() => {}}
>
解冻
</Button>
</>
)}
>
<Descriptions
size="small"
column={3}
style={{
padding: '0 32px',
}}
>
<Descriptions.Item label="会员类型">{123}</Descriptions.Item>
<Descriptions.Item label="会员角色" span={2}>{123}</Descriptions.Item>
<Descriptions.Item label="会员状态">
<Tag color={STATUS_COLOR_MAP[1]}>{STATUS_COLOR_TXT[1]}</Tag>
</Descriptions.Item>
<Descriptions.Item label="外部状态">
<Tag color={STATUS_COLOR_MAP[2]}>{STATUS_COLOR_TXT[2]}</Tag>
</Descriptions.Item>
</Descriptions>
</PageHeader>
</>
}
>
<div
style={{
marginBottom: 24,
}}
>
<AuditProcess />
</div>
<BasicInfo />
</PageHeaderWrapper>
);
};
export default MaintainDetail;
export default maintainDetail;
import React from 'react';
import AuditDetail from '../components/auditDetail';
import React, { useState, useEffect } from 'react';
import { history } from 'umi';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { PageHeader, Tag, Descriptions, Button } from 'antd';
import { FormOutlined, StopOutlined } from '@ant-design/icons';
import { STATUS_COLOR_MAP, STATUS_COLOR_TXT } from '../constant';
import { usePageStatus } from '@/hooks/usePageStatus';
import { PublicApi } from '@/services/api';
import MellowCard from '@/components/MellowCard';
import HeadInfo from '../components/HeadInfo';
import AuditProcess from '../components/AuditProcess';
import BasicInfo from '../components/BasicInfo';
import styles from './index.less';
const auditPr = (props: any) => {
return <AuditDetail auditType="2" routeParams={props.location.query} />;
const auditPr1: React.FC<{}> = () => {
const { pageStatus, id, validateId } = usePageStatus();
const [detailed, setDetailed] = useState<any>({});
useEffect(() => {
}, []);
return (
<PageHeaderWrapper
title={
<>
<PageHeader
style={{ padding: 0 }}
onBack={() => history.goBack()}
title={
<HeadInfo
info={{
name: '广州市极致皮具有限公司',
level: 1,
}}
/>
}
extra={(
<>
<Button
icon={<StopOutlined />}
onClick={() => {}}
>
审核不通过
</Button>
<Button
type="primary"
icon={<FormOutlined />}
onClick={() => {}}
>
提交审核
</Button>
</>
)}
>
<Descriptions
size="small"
column={3}
style={{
padding: '0 32px',
}}
>
<Descriptions.Item label="会员类型">{123}</Descriptions.Item>
<Descriptions.Item label="会员角色" span={2}>{123}</Descriptions.Item>
<Descriptions.Item label="会员状态">
<Tag color={STATUS_COLOR_MAP[1]}>{STATUS_COLOR_TXT[1]}</Tag>
</Descriptions.Item>
<Descriptions.Item label="外部状态">
<Tag color={STATUS_COLOR_MAP[2]}>{STATUS_COLOR_TXT[2]}</Tag>
</Descriptions.Item>
</Descriptions>
</PageHeader>
</>
}
>
<div
style={{
marginBottom: 24,
}}
>
<AuditProcess />
</div>
<BasicInfo />
</PageHeaderWrapper>
);
};
export default auditPr;
export default auditPr1;
import React from 'react';
import AuditDetail from '../components/auditDetail';
import React, { useState, useEffect } from 'react';
import { history } from 'umi';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { PageHeader, Tag, Descriptions, Button } from 'antd';
import { FormOutlined, StopOutlined } from '@ant-design/icons';
import { STATUS_COLOR_MAP, STATUS_COLOR_TXT } from '../constant';
import { usePageStatus } from '@/hooks/usePageStatus';
import { PublicApi } from '@/services/api';
import MellowCard from '@/components/MellowCard';
import HeadInfo from '../components/HeadInfo';
import AuditProcess from '../components/AuditProcess';
import BasicInfo from '../components/BasicInfo';
import styles from './index.less';
const auditPr = (props: any) => {
return <AuditDetail auditType="3" routeParams={props.location.query} />;
const auditPr2: React.FC<{}> = () => {
const { pageStatus, id, validateId } = usePageStatus();
const [detailed, setDetailed] = useState<any>({});
useEffect(() => {
}, []);
return (
<PageHeaderWrapper
title={
<>
<PageHeader
style={{ padding: 0 }}
onBack={() => history.goBack()}
title={
<HeadInfo
info={{
name: '广州市极致皮具有限公司',
level: 1,
}}
/>
}
extra={(
<>
<Button
icon={<StopOutlined />}
onClick={() => {}}
>
审核不通过
</Button>
<Button
type="primary"
icon={<FormOutlined />}
onClick={() => {}}
>
提交审核
</Button>
</>
)}
>
<Descriptions
size="small"
column={3}
style={{
padding: '0 32px',
}}
>
<Descriptions.Item label="会员类型">{123}</Descriptions.Item>
<Descriptions.Item label="会员角色" span={2}>{123}</Descriptions.Item>
<Descriptions.Item label="会员状态">
<Tag color={STATUS_COLOR_MAP[1]}>{STATUS_COLOR_TXT[1]}</Tag>
</Descriptions.Item>
<Descriptions.Item label="外部状态">
<Tag color={STATUS_COLOR_MAP[2]}>{STATUS_COLOR_TXT[2]}</Tag>
</Descriptions.Item>
</Descriptions>
</PageHeader>
</>
}
>
<div
style={{
marginBottom: 24,
}}
>
<AuditProcess />
</div>
<BasicInfo />
</PageHeaderWrapper>
);
};
export default auditPr;
export default auditPr2;
import React from 'react';
import AuditDetail from '../components/auditDetail';
import React, { useState, useEffect } from 'react';
import { history } from 'umi';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { PageHeader, Tag, Descriptions, Button } from 'antd';
import { FormOutlined, StopOutlined } from '@ant-design/icons';
import { STATUS_COLOR_MAP, STATUS_COLOR_TXT } from '../constant';
import { usePageStatus } from '@/hooks/usePageStatus';
import { PublicApi } from '@/services/api';
import MellowCard from '@/components/MellowCard';
import HeadInfo from '../components/HeadInfo';
import AuditProcess from '../components/AuditProcess';
import BasicInfo from '../components/BasicInfo';
import styles from './index.less';
const auditPrConfirm = props => {
return <AuditDetail auditType="4" routeParams={props.location.query} />;
const auditPrComfirm: React.FC<{}> = () => {
const { pageStatus, id, validateId } = usePageStatus();
const [detailed, setDetailed] = useState<any>({});
useEffect(() => {
}, []);
return (
<PageHeaderWrapper
title={
<>
<PageHeader
style={{ padding: '0' }}
onBack={() => history.goBack()}
title={
<HeadInfo
info={{
name: '广州市极致皮具有限公司',
level: 1,
}}
/>
}
extra={(
<>
<Button
icon={<StopOutlined />}
onClick={() => {}}
>
审核不通过
</Button>
<Button
type="primary"
icon={<FormOutlined />}
onClick={() => {}}
>
审核通过
</Button>
</>
)}
>
<Descriptions
size="small"
column={3}
style={{
padding: '0 32px',
}}
>
<Descriptions.Item label="会员类型">{123}</Descriptions.Item>
<Descriptions.Item label="会员角色" span={2}>{123}</Descriptions.Item>
<Descriptions.Item label="会员状态">
<Tag color={STATUS_COLOR_MAP[1]}>{STATUS_COLOR_TXT[1]}</Tag>
</Descriptions.Item>
<Descriptions.Item label="外部状态">
<Tag color={STATUS_COLOR_MAP[2]}>{STATUS_COLOR_TXT[2]}</Tag>
</Descriptions.Item>
</Descriptions>
</PageHeader>
</>
}
>
<div
style={{
marginBottom: 24,
}}
>
<AuditProcess />
</div>
<BasicInfo />
</PageHeaderWrapper>
);
};
export default auditPrConfirm;
export default auditPrComfirm;
......@@ -2,7 +2,7 @@ import React from 'react';
import AuditList from '../components/auditList';
const memberPrConfirm = () => {
return <AuditList pageType="3" />;
return <AuditList pageType="4" />;
};
export default memberPrConfirm;
import React from 'react';
import AuditDetail from '../components/auditDetail';
import React, { useState, useEffect } from 'react';
import { history } from 'umi';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { PageHeader, Tag, Descriptions, Button } from 'antd';
import { FormOutlined } from '@ant-design/icons';
import { STATUS_COLOR_MAP, STATUS_COLOR_TXT } from '../constant';
import { usePageStatus } from '@/hooks/usePageStatus';
import { PublicApi } from '@/services/api';
import MellowCard from '@/components/MellowCard';
import HeadInfo from '../components/HeadInfo';
import AuditProcess from '../components/AuditProcess';
import BasicInfo from '../components/BasicInfo';
import styles from './index.less';
const auditPrSubmit = props => {
return <AuditDetail auditType="1" routeParams={props.location.query} />;
const auditPrSubmit: React.FC<{}> = () => {
const { pageStatus, id, validateId } = usePageStatus();
const [detailed, setDetailed] = useState<any>({});
useEffect(() => {
}, []);
return (
<PageHeaderWrapper
title={
<>
<PageHeader
style={{ padding: 0 }}
onBack={() => history.goBack()}
title={
<HeadInfo
info={{
name: '广州市极致皮具有限公司',
level: 1,
}}
/>
}
extra={(
<Button
type="primary"
icon={<FormOutlined />}
onClick={() => {}}
>
提交审核
</Button>
)}
>
<Descriptions
size="small"
column={3}
style={{
padding: '0 32px',
}}
>
<Descriptions.Item label="会员类型">{123}</Descriptions.Item>
<Descriptions.Item label="会员角色" span={2}>{123}</Descriptions.Item>
<Descriptions.Item label="会员状态">
<Tag color={STATUS_COLOR_MAP[1]}>{STATUS_COLOR_TXT[1]}</Tag>
</Descriptions.Item>
<Descriptions.Item label="外部状态">
<Tag color={STATUS_COLOR_MAP[2]}>{STATUS_COLOR_TXT[2]}</Tag>
</Descriptions.Item>
</Descriptions>
</PageHeader>
</>
}
>
<div
style={{
marginBottom: 24,
}}
>
<AuditProcess />
</div>
<BasicInfo />
</PageHeaderWrapper>
);
};
export default auditPrSubmit;
import React from 'react';
import { Steps } from 'antd';
import MellowCard from '@/components/MellowCard';
import BasicInfo from '../../components/BasicInfo';
const MemberBasicInfo: React.FC<{}> = () => {
return (
<div>
<MellowCard
title="外部审核流程"
style={{
marginBottom: 24,
}}
>
<Steps style={{ marginTop: 30 }} progressDot current={2}>
<Steps.Step title="业务角色" description="申请审核" />
<Steps.Step title="业务角色" description="审核会员" />
<Steps.Step title="完成" description="" />
</Steps>
</MellowCard>
<BasicInfo />
</div>
);
};
export default MemberBasicInfo;
\ No newline at end of file
import React from 'react';
import Info from '../../components/EquityInfo';
const EquityInfo: React.FC<{}> = () => {
return (
<div>
<Info />
</div>
);
};
export default EquityInfo;
\ No newline at end of file
import React, { useState, useEffect } from 'react';
import { history } from 'umi';
import { PageHeaderWrapper } from '@ant-design/pro-layout';
import { PageHeader, Tag, Descriptions, Steps } from 'antd';
import { STATUS_COLOR_MAP, STATUS_COLOR_TXT } from '../../constant';
import { usePageStatus } from '@/hooks/usePageStatus';
import { PublicApi } from '@/services/api';
import HeadInfo from '../../components/HeadInfo';
import styles from './index.less';
interface QueryProps {
match: {
url: string;
path: string;
};
location: {
pathname: string;
};
}
const MemberQueryDetailed: React.FC<QueryProps> = props => {
const { children } = props;
const { pageStatus, id, validateId } = usePageStatus();
const [detailed, setDetailed] = useState<any>({});
useEffect(() => {
}, []);
const tabList = [
{
key: 'basicInfo',
tab: '基本信息',
},
{
key: 'powerInfo',
tab: '权限信息',
},
{
key: 'levelInfo',
tab: '等级信息',
},
{
key: 'equityInfo',
tab: '权益信息',
},
{
key: 'sincerityInfo',
tab: '诚信信息',
},
];
const handleTabChange = (val: string) => {
const { match } = props;
const url = match.url === '/' ? '' : match.url;
switch (val) {
case 'basicInfo':
history.push(`${url}/basicInfo`);
break;
case 'powerInfo':
history.push(`${url}/powerInfo`);
break;
case 'levelInfo':
history.push(`${url}/levelInfo`);
break;
case 'equityInfo':
history.push(`${url}/equityInfo`);
break;
case 'sincerityInfo':
history.push(`${url}/sincerityInfo`);
break;
default:
break;
}
};
const getTabKey = () => {
const { match, location } = props;
const url = match.path === '/' ? '' : match.path;
const tabKey = location.pathname.replace(`${url}/`, '');
if (tabKey && tabKey !== '/') {
return tabKey;
}
return 'basicInfo';
};
return (
<PageHeaderWrapper
title={
<>
<PageHeader
style={{ padding: '0' }}
onBack={() => history.goBack()}
title={
<HeadInfo
info={{
name: '广州市极致皮具有限公司',
level: 1,
}}
/>
}
>
<Descriptions
size="small"
column={2}
style={{
padding: '0 32px',
}}
>
<Descriptions.Item label="会员类型">{123}</Descriptions.Item>
<Descriptions.Item label="会员角色">{123}</Descriptions.Item>
<Descriptions.Item label="会员状态">
<Tag color={STATUS_COLOR_MAP[1]}>{STATUS_COLOR_TXT[1]}</Tag>
</Descriptions.Item>
<Descriptions.Item label="外部状态">
<Tag color={STATUS_COLOR_MAP[2]}>{STATUS_COLOR_TXT[2]}</Tag>
</Descriptions.Item>
</Descriptions>
</PageHeader>
</>
}
tabList={tabList}
tabActiveKey={getTabKey()}
onTabChange={handleTabChange}
>
{children}
</PageHeaderWrapper>
);
};
export default MemberQueryDetailed;
\ No newline at end of file
import React from 'react';
import Info from '../../components/LevelInfo';
const LevelInfo: React.FC<{}> = () => {
return (
<div>
<Info />
</div>
);
};
export default LevelInfo;
\ No newline at end of file
import React from 'react';
const PowerInfo: React.FC<{}> = () => {
return (
<div>123</div>
);
};
export default PowerInfo;
\ No newline at end of file
import React from 'react';
import Info from '../../components/SincerityInfo';
const SincerityInfo: React.FC<{}> = () => {
return (
<div>
<Info />
</div>
);
};
export default SincerityInfo;
\ No newline at end of file
import React, { ReactNode, useState, useRef } from 'react';
import { history } from 'umi';
import {
Card,
Space,
Button,
Menu,
Popconfirm,
Dropdown,
Badge,
Modal,
} from 'antd';
import {
PlusOutlined,
DeleteOutlined,
ClockCircleOutlined,
DownOutlined,
} from '@ant-design/icons';
import { StandardTable } from 'god';
import { ColumnType } from 'antd/lib/table/interface';
import { createFormActions, FormEffectHooks } from '@formily/antd';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { useAsyncInitSelect } from '@/formSchema/effects/useAsyncInitSelect';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import EyePreview from '@/components/EyePreview';
import StatusSwitch from '@/components/StatusSwitch';
import NiceForm from '@/components/NiceForm';
import LevelBrand from '../components/LevelBrand';
import { maintianSchema } from './schema';
import { PublicApi } from '@/services/api';
const mock = [
{
memberId: 1,
validateId: 1,
name: '模拟会员1',
memberTypeName: '模拟会员类型1',
roleName: '模拟角色',
sourceName: '2020.08.28 15:14:00',
memberStatus: '正常',
status: 1,
outerStatusName: '待审核',
innerStatusName: '审核通过',
},
{
memberId: 2,
validateId: 2,
name: '模拟会员1',
memberTypeName: '模拟会员类型1',
roleName: '模拟角色',
sourceName: '2020.08.28 15:14:00',
memberStatus: '正常',
status: 0,
outerStatusName: '待审核',
innerStatusName: '待提交审核',
},
];
const formActions = createFormActions();
const fetchData = async (params: any) => {
let res = await PublicApi.getMemberMaintenancePage(params);
return res.data;
};
const memberQuery: React.FC<[]> = () => {
const ref = useRef<any>({});
const [selectedRowKeys, setSelectedRowKeys] = useState<Array<string>>([]);
const defaultColumns: ColumnType<any>[] = [
{
title: 'ID',
dataIndex: 'memberId',
align: 'center',
},
{
title: '会员归属',
dataIndex: 'name',
align: 'center',
render: (text, record) => (
<EyePreview
url={`/memberCenter/memberAbility/query/detailed?id=${record.memberId}&validateId=${record.validateId}&preview=1`}
>
{text}
</EyePreview>
),
},
{
title: '会员类型',
dataIndex: 'memberTypeName',
align: 'center',
render: (text, record) => <>{text}</>,
},
{
title: '会员角色',
dataIndex: 'roleName',
align: 'center',
render: (text, record) => <>{text}</>,
},
{
title: '所属会员等级',
dataIndex: 'level',
align: 'center',
render: (text, record) => <LevelBrand level={2} />,
},
{
title: '操作时间',
dataIndex: 'sourceName',
align: 'center',
},
{
title: '会员状态',
dataIndex: 'outerStatusName',
align: 'center',
filters: [],
// filteredValue: searchForm.outerStatus || ['0'],
filterMultiple: false,
render: (text, record) => <span>{text}</span>,
},
{
title: '审核状态',
dataIndex: 'innerStatusName',
align: 'center',
filters: [],
// filteredValue: searchForm.innerStatus || ['0'],
filterMultiple: false,
render: (text, record) => <Badge color="#FFC400" text={text} />,
},
{
title: '操作',
dataIndex: 'option',
align: 'center',
render: (text, record) => (
<Button
type="link"
onClick={() => {}}
style={{ color: '#00B37A' }}
>
变更信息
</Button>
),
},
];
const rowSelection = {
onChange: (selectedRowKeys: any, selectedRows: any) => {
setSelectedRowKeys(selectedRowKeys);
},
selectedRowKeys: selectedRowKeys,
};
const [columns, setColumns] = useState<any[]>(defaultColumns);
// 更改会员状态
const handleModify = record => {
PublicApi.postMemberMaintenanceStatus({
memberId: record.memberId,
validateId: record.validateId,
status: record.status === 1 ? 0 : 1,
}).then(res => {
if (res.code === 1000) return ref.current.reload();
});
};
// 初始化高级筛选选项
const fetchSelectOptions = async () => {
const res = await PublicApi.getMemberValidateCommitPageitems();
if (res.code === 1000) {
const { data } = res;
return {
memberType: fetchFilterOptions(data.memberTypes),
roleId: fetchFilterOptions(data.memberRoles),
level: fetchFilterOptions(data.memberLevels),
source: fetchFilterOptions(data.memberSource),
};
}
return {};
};
const fetchFilterOptions = data => {
return data.map(v => ({ label: v.text, value: v.id }));
};
return (
<Card>
<StandardTable
tableProps={{
rowKey: 'memberId',
// onChange: (pagination: any, filter: any) => handleSearch(filter),
dataSource: mock,
}}
columns={columns}
currentRef={ref}
fetchTableData={(params: any) => fetchData(params)}
rowSelection={rowSelection}
controlRender={
<NiceForm
actions={formActions}
onSubmit={values => ref.current.reload(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'name',
FORM_FILTER_PATH,
);
// useAsyncInitSelect(
// ['memberType', 'roleId', 'level', 'source'],
// fetchSelectOptions,
// );
}}
schema={maintianSchema}
/>
}
/>
</Card>
);
};
export default memberQuery;
import { ISchema } from '@formily/antd';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { UPLOAD_TYPE } from '@/constants'
export const maintianSchema: ISchema = {
type: 'object',
properties: {
megaLayout: {
type: 'object',
'x-component': 'mega-layout',
properties: {
name: {
type: 'string',
'x-component': 'Search',
'x-component-props': {
placeholder: '搜索',
align: 'flex-left',
},
},
[FORM_FILTER_PATH]: {
type: 'object',
'x-component': 'mega-layout',
'x-component-props': {
grid: true,
full: true,
autoRow: true,
columns: 6,
},
properties: {
memberType: {
type: 'string',
'x-component-props': {
placeholder: '请选择',
defaultValue: undefined,
},
enum: [],
},
roleId: {
type: 'string',
'x-component-props': {
placeholder: '请选择',
defaultValue: undefined,
},
enum: [],
},
level: {
type: 'string',
'x-component-props': {
placeholder: '请选择',
defaultValue: undefined,
},
enum: [],
},
source: {
type: 'string',
'x-component-props': {
placeholder: '请选择',
defaultValue: undefined,
},
enum: [],
},
timeRange: {
type: 'string',
'x-component-props': {
placeholder: '请选择',
defaultValue: undefined,
},
enum: [
{ label: '时间范围(全部)', value: 0 },
{ label: '今天', value: 1 },
{ label: '一周内', value: 2 },
{ label: '一个月内', value: 3 },
{ label: '三个月内', value: 4 },
{ label: '六个月内', value: 5 },
{ label: '一年内', value: 6 },
{ label: '一年前', value: 7 },
],
},
submit: {
'x-component': 'Submit',
'x-mega-props': {
span: 1,
},
'x-component-props': {
children: '查询',
},
},
},
},
},
},
},
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment