Commit b215bcda authored by XieZhiXiong's avatar XieZhiXiong

对接完评论管理新接口

parent 13a20cc5
// 评论状态
export const COMMENT_STATUS_VISIBLE = 1; // 可见的
export const COMMENT_STATUS_INVISIBLE = 2; // 被屏蔽的
\ No newline at end of file
import React, { useState, useRef } from 'react';
import { Card, Rate, Button, Space } from 'antd';
import { ClockCircleOutlined } from '@ant-design/icons';
import { Card, Rate, Button, Space, Modal, message } from 'antd';
import { ClockCircleOutlined, QuestionCircleOutlined } from '@ant-design/icons';
import { Link } from 'umi';
import { StandardTable } from 'god';
import { ColumnType } from 'antd/lib/table/interface';
......@@ -14,14 +14,34 @@ import { isJSONStr } from '@/utils';
import EyePreview from '@/components/EyePreview';
import NiceForm from '@/components/NiceForm';
import { listSearchSchema } from './schema';
import { COMMENT_STATUS_VISIBLE, COMMENT_STATUS_INVISIBLE } from '../constants';
import styles from './index.less';
const { confirm } = Modal;
const formActions = createFormActions();
const CommentManage: React.FC = () => {
const ref = useRef<any>({});
const [selectedRowKeys, setSelectedRowKeys] = useState<Array<string>>([]);
const [selectedRowKeys, setSelectedRowKeys] = useState<Array<number>>([]);
const handleVisibleComment = (status, id) => {
const msg = message.loading({
content: '正在操作,请稍候...',
duration: 0,
});
PublicApi.postMemberPlatformCommentOrderTradeHistoryUpdateStatus({
id,
status,
}).then(res => {
if (res.code === 1000) {
ref.current.reload();
}
}).finally(() => {
msg();
});
};
const columns: ColumnType<any>[] = [
{
......@@ -82,7 +102,7 @@ const CommentManage: React.FC = () => {
},
{
title: '评价时间',
dataIndex: 'created',
dataIndex: 'createTime',
align: 'center',
},
{
......@@ -91,7 +111,12 @@ const CommentManage: React.FC = () => {
align: 'center',
render: (_, record) => (
<>
<Button type="link">屏蔽</Button>
<Button
type="link"
onClick={() => handleVisibleComment((record.status === COMMENT_STATUS_VISIBLE || !record.status) ? COMMENT_STATUS_INVISIBLE : COMMENT_STATUS_VISIBLE, record.id)}
>
{(record.status === COMMENT_STATUS_VISIBLE || !record.status) ? '屏蔽' : '已屏蔽'}
</Button>
</>
),
},
......@@ -124,9 +149,39 @@ const CommentManage: React.FC = () => {
return {};
};
const handleBatchDelete = () => {
if (!selectedRowKeys.length) {
message.warning('未选择任何评论');
return;
}
confirm({
title: '提示',
icon: <QuestionCircleOutlined />,
content: '确定要删除选中的评论吗?',
onOk() {
return new Promise((resolve, reject) => {
PublicApi.postMemberPlatformCommentOrderTradeHistoryDelete({
ids: selectedRowKeys,
})
.then(res => {
if (res.code === 1000) {
ref.current.reload();
setSelectedRowKeys([]);
resolve();
}
reject();
})
.catch(() => {
reject();
});
});
},
});
};
const controllerBtns = (
<Space>
<Button>批量删除</Button>
<Button onClick={handleBatchDelete}>批量删除</Button>
</Space>
);
......
......@@ -16,31 +16,6 @@ import styles from './index.less';
const formActions = createFormActions();
const mock = [
{
id: '1',
memberName: 'JUJUONTHEBEAT',
memberType: '企业会员',
memberRole: '采购商',
memberLevel: '白金会员',
satisfaction: 4,
count: 180,
day7: 10,
day180: 20,
},
{
id: '2',
memberName: 'JUJUONTHEBEAT',
memberType: '企业会员',
memberRole: '采购商',
memberLevel: '白金会员',
satisfaction: 3,
count: 180,
day7: 10,
day180: 20,
},
];
const CommentQuery = () => {
const ref = useRef<any>({});
......@@ -116,7 +91,23 @@ const CommentQuery = () => {
};
// 初始化高级筛选选项
const fetchSelectOptions = async () => {
const fetchSearchItems = async () => {
const res = await PublicApi.getMemberManagePageitems();
if (res.code === 1000) {
const { data = {} }: any = res;
const {
memberTypes = [],
roles = [],
levels = [],
} = data;
return {
memberTypeId: memberTypes.map(item => ({ label: item.memberTypeName, value: item.memberTypeId })),
roleId: roles.map(item => ({ label: item.roleName, value: item.roleId })),
level: levels.map(item => ({ label: item.levelTag, value: item.level })),
};
}
return {};
};
......@@ -141,8 +132,8 @@ const CommentQuery = () => {
FORM_FILTER_PATH,
);
useAsyncInitSelect(
['innerStatus', 'outerStatus'],
fetchSelectOptions,
['memberTypeId', 'roleId', 'level'],
fetchSearchItems,
);
}}
schema={listSearchSchema}
......
......@@ -26,9 +26,10 @@ export const listSearchSchema: ISchema = {
columns: 6,
},
properties: {
memberType: {
memberTypeId: {
type: 'string',
default: undefined,
enum: [],
'x-component-props': {
placeholder: '会员类型(全部)',
allowClear: true,
......@@ -43,7 +44,7 @@ export const listSearchSchema: ISchema = {
allowClear: true,
},
},
memberLevel: {
level: {
type: 'string',
default: undefined,
enum: [],
......
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