Commit 35e34afc authored by XieZhiXiong's avatar XieZhiXiong

feat: 完成 待审核优惠券二级 UI相关

parent 90f61904
/*
* @Author: XieZhiXiong
* @Date: 2021-06-28 16:44:29
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-06-28 16:44:29
* @Description:
*/
import React from 'react';
import { usePageStatus } from '@/hooks/usePageStatus';
import { PublicApi } from '@/services/api';
import fetchDetailHoc from '../../common/hoc/fetchDetailHoc';
import CouponDetail from '../../components/CouponDetail';
const MerchantCouponNotVerify2Detail: React.FC = () => {
const { id } = usePageStatus();
const CouponDetailPro = fetchDetailHoc({
fetchDetail: () => PublicApi.getMemberAbilityMaintenanceDetailBasic({
validateId: id,
}),
}, CouponDetail);
return (
<div>
<CouponDetailPro />
</div>
);
};
export default MerchantCouponNotVerify2Detail;
\ No newline at end of file
......@@ -2,16 +2,139 @@
* @Author: XieZhiXiong
* @Date: 2021-06-22 11:09:35
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-06-22 11:09:35
* @LastEditTime: 2021-06-28 16:49:15
* @Description: 待审核商家优惠劵(二级)
*/
import React from 'react';
import styles from './index.less';
import React, { useState, useRef } from 'react';
import { history } from 'umi';
import {
Card,
Space,
Button,
} from 'antd';
import { StandardTable } from 'god';
import { ColumnType } from 'antd/lib/table/interface';
import { createFormActions } from '@formily/antd';
import { DatePicker } from '@formily/antd-components';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { useAsyncInitSelect } from '@/formSchema/effects/useAsyncInitSelect';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import NiceForm from '@/components/NiceForm';
import { PublicApi } from '@/services/api';
import useSpliceArray from '@/hooks/useSpliceArray';
import verifySchema from '../common/schemas/verify';
import commonColumn from '../common/columns/coupon';
const MerchantCouponNotVerify2: React.FC = () => {
const formActions = createFormActions();
const MerchantCouponNotVerify1: React.FC = () => {
const ref = useRef<any>({});
const [selectedRowKeys, setSelectedRowKeys] = useState<number[]>([]);
const fetchData = async (params: any) => {
let res = await PublicApi.getMemberAbilityMaintenancePage(params);
return res.data;
};
const defaultColumns = commonColumn('/memberCenter/marketingAbility/merchantCoupon/notVerify2/detail').concat([
{
title: '操作',
dataIndex: 'option',
align: 'center',
render: (_, record) => (
<>
<Button
type="link"
onClick={() => history.push(`/memberCenter/marketingAbility/merchantCoupon/notVerify2/verify?id=${record.validateId}`)}
>
审核
</Button>
</>
),
},
]);
const [columns, columnsHandle] = useSpliceArray<ColumnType<any>>(defaultColumns);
const rowSelection = {
onChange: (keys: number[]) => {
setSelectedRowKeys(keys);
},
selectedRowKeys: selectedRowKeys,
};
// 初始化高级筛选选项
const fetchSelectOptions = async () => {
const res = await PublicApi.getMemberAbilityInfoPageitems();
if (res.code === 1000) {
const { data = {} }: any = res;
const {
outerStatus = [],
} = data;
const outerIndex = columns.findIndex((item) => item.dataIndex === 'memberTypeName');
if (outerIndex) {
columnsHandle.replace(outerIndex, {
...columns[outerIndex],
filters: outerStatus.map(item => ({ text: item.text, value: item.id })).filter(item => item.value !== 0),
});
}
return {
innerStatus: outerStatus.map(item => ({ label: item.text, value: item.id })),
};
}
return {};
};
const ControllerBtns = () => (
<Space size={16}>
<Button
onClick={() => {}}
>
批量审核通过
</Button>
</Space>
);
return (
<div>MerchantCouponNotVerify2</div>
<Card>
<StandardTable
tableProps={{
rowKey: 'validateId',
}}
columns={columns}
currentRef={ref}
fetchTableData={(params: any) => fetchData(params)}
rowSelection={rowSelection}
controlRender={
<NiceForm
actions={formActions}
components={{
ControllerBtns,
RangePicker: DatePicker.RangePicker,
}}
onSubmit={values => ref.current.reload(values)}
effects={($, actions) => {
useStateFilterSearchLinkageEffect(
$,
actions,
'name',
FORM_FILTER_PATH,
);
useAsyncInitSelect(
['outerStatus'],
fetchSelectOptions,
);
}}
schema={verifySchema}
/>
}
/>
</Card>
);
};
export default MerchantCouponNotVerify2;
export default MerchantCouponNotVerify1;
/*
* @Author: XieZhiXiong
* @Date: 2021-06-28 16:44:15
* @LastEditors: XieZhiXiong
* @LastEditTime: 2021-06-28 16:46:21
* @Description:
*/
import React, { useState } from 'react';
import { Button } from 'antd';
import { CheckCircleOutlined } from '@ant-design/icons';
import { usePageStatus } from '@/hooks/usePageStatus';
import { PublicApi } from '@/services/api';
import fetchDetailHoc from '../../common/hoc/fetchDetailHoc';
import CouponDetail from '../../components/CouponDetail';
import VerifyModal, { ValueType as VerifyData } from '../../components/VerifyModal';
const MerchantCouponVerify2: React.FC = () => {
const { id } = usePageStatus();
const [visibleVerifyModal, setVisibleVerifyModal] = useState(false);
const [submitLoading, setSubmitLoading] = useState(false);
const CouponDetailPro = fetchDetailHoc({
fetchDetail: () => PublicApi.getMemberAbilityMaintenanceDetailBasic({
validateId: id,
}),
}, CouponDetail);
const handleVisibleVerifyModal = (flag?) => {
setVisibleVerifyModal(!!flag);
};
const handleSubmit = (value: VerifyData) => {
setSubmitLoading(true);
console.log('提交审核', value)
};
return (
<div>
<CouponDetailPro
extra={(
<Button
type="primary"
icon={<CheckCircleOutlined />}
onClick={() => handleVisibleVerifyModal(true)}
>
单据审核
</Button>
)}
/>
<VerifyModal
visible={visibleVerifyModal}
onClose={() => handleVisibleVerifyModal(false)}
submitLoading={submitLoading}
onSubmit={handleSubmit}
/>
</div>
);
};
export default MerchantCouponVerify2;
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