|
|
@@ -18,117 +18,112 @@ interface IDiscussion {
|
|
|
createdAt?: string;
|
|
|
}
|
|
|
const Widget = () => {
|
|
|
- // TODO
|
|
|
-
|
|
|
return (
|
|
|
- <div>
|
|
|
- <ProList<IDiscussion>
|
|
|
- search={{
|
|
|
- filterType: "light",
|
|
|
- }}
|
|
|
- rowKey="id"
|
|
|
- headerTitle="问答&求助"
|
|
|
- request={async (params = {}, sorter, filter) => {
|
|
|
- console.log(params, sorter, filter);
|
|
|
- const url = `/v2/discussion?view=all`;
|
|
|
- const json = await get<ICommentListResponse>(url);
|
|
|
- if (!json.ok) {
|
|
|
- message.error(json.message);
|
|
|
- }
|
|
|
- const discussions: IDiscussion[] = json.data.rows.map((item) => {
|
|
|
- return {
|
|
|
- id: item.id,
|
|
|
- resType: item.res_type,
|
|
|
- user: item.editor,
|
|
|
- title: item.title,
|
|
|
- childrenCount: item.children_count,
|
|
|
- createdAt: item.created_at,
|
|
|
- updatedAt: item.updated_at,
|
|
|
- };
|
|
|
- });
|
|
|
+ <ProList<IDiscussion>
|
|
|
+ search={{
|
|
|
+ filterType: "light",
|
|
|
+ }}
|
|
|
+ rowKey="id"
|
|
|
+ headerTitle="问答&求助"
|
|
|
+ request={async (params = {}, sorter, filter) => {
|
|
|
+ console.log(params, sorter, filter);
|
|
|
+ const url = `/v2/discussion?view=all`;
|
|
|
+ const json = await get<ICommentListResponse>(url);
|
|
|
+ if (!json.ok) {
|
|
|
+ message.error(json.message);
|
|
|
+ }
|
|
|
+ const discussions: IDiscussion[] = json.data.rows.map((item) => {
|
|
|
return {
|
|
|
- total: json.data.count,
|
|
|
- succcess: true,
|
|
|
- data: discussions,
|
|
|
+ id: item.id,
|
|
|
+ resType: item.res_type,
|
|
|
+ user: item.editor,
|
|
|
+ title: item.title,
|
|
|
+ parent: item.parent,
|
|
|
+ childrenCount: item.children_count,
|
|
|
+ createdAt: item.created_at,
|
|
|
+ updatedAt: item.updated_at,
|
|
|
};
|
|
|
- }}
|
|
|
- pagination={{
|
|
|
- pageSize: 20,
|
|
|
- }}
|
|
|
- metas={{
|
|
|
- title: {
|
|
|
- dataIndex: "title",
|
|
|
- title: "标题",
|
|
|
- render: (_, row) => {
|
|
|
- return (
|
|
|
- <Link to={`/discussion/topic/${row.id}`}>{row.title}</Link>
|
|
|
- );
|
|
|
- },
|
|
|
- },
|
|
|
- avatar: {
|
|
|
- search: false,
|
|
|
- render: (_, row) => {
|
|
|
- return <span>{row.user.avatar}</span>;
|
|
|
- },
|
|
|
+ });
|
|
|
+ return {
|
|
|
+ total: json.data.count,
|
|
|
+ succcess: true,
|
|
|
+ data: discussions,
|
|
|
+ };
|
|
|
+ }}
|
|
|
+ pagination={{
|
|
|
+ pageSize: 20,
|
|
|
+ }}
|
|
|
+ metas={{
|
|
|
+ title: {
|
|
|
+ dataIndex: "title",
|
|
|
+ title: "标题",
|
|
|
+ render: (_, row) => {
|
|
|
+ return <Link to={`/discussion/topic/${row.id}`}>{row.title}</Link>;
|
|
|
},
|
|
|
- description: {
|
|
|
- search: false,
|
|
|
- render: (_, row) => {
|
|
|
- return (
|
|
|
- <Space>
|
|
|
- {`${row.user.nickName} created on`}
|
|
|
- <TimeShow time={row.createdAt} title={""} />
|
|
|
- </Space>
|
|
|
- );
|
|
|
- },
|
|
|
+ },
|
|
|
+ avatar: {
|
|
|
+ search: false,
|
|
|
+ render: (_, row) => {
|
|
|
+ return <span>{row.user.avatar}</span>;
|
|
|
},
|
|
|
- subTitle: {
|
|
|
- render: (_, row) => {
|
|
|
- return (
|
|
|
- <Space size={0}>
|
|
|
- <Tag color="blue" key={row.resType}>
|
|
|
- {row.resType}
|
|
|
- </Tag>
|
|
|
- </Space>
|
|
|
- );
|
|
|
- },
|
|
|
- search: false,
|
|
|
+ },
|
|
|
+ description: {
|
|
|
+ search: false,
|
|
|
+ render: (_, row) => {
|
|
|
+ return (
|
|
|
+ <Space>
|
|
|
+ {`${row.user.nickName} created on`}
|
|
|
+ <TimeShow time={row.createdAt} title={""} />
|
|
|
+ </Space>
|
|
|
+ );
|
|
|
},
|
|
|
- actions: {
|
|
|
- render: (text, row) => [
|
|
|
- row.childrenCount ? (
|
|
|
- <Space>
|
|
|
- <MessageOutlined /> {row.childrenCount}
|
|
|
- </Space>
|
|
|
- ) : (
|
|
|
- <></>
|
|
|
- ),
|
|
|
- ],
|
|
|
- search: false,
|
|
|
+ },
|
|
|
+ subTitle: {
|
|
|
+ render: (_, row) => {
|
|
|
+ return (
|
|
|
+ <Space size={0}>
|
|
|
+ <Tag color="blue" key={row.resType}>
|
|
|
+ {row.resType}
|
|
|
+ </Tag>
|
|
|
+ </Space>
|
|
|
+ );
|
|
|
},
|
|
|
- status: {
|
|
|
- // 自己扩展的字段,主要用于筛选,不在列表中显示
|
|
|
- title: "状态",
|
|
|
- valueType: "select",
|
|
|
- valueEnum: {
|
|
|
- all: { text: "全部", status: "Default" },
|
|
|
- open: {
|
|
|
- text: "未解决",
|
|
|
- status: "Error",
|
|
|
- },
|
|
|
- closed: {
|
|
|
- text: "已解决",
|
|
|
- status: "Success",
|
|
|
- },
|
|
|
- processing: {
|
|
|
- text: "解决中",
|
|
|
- status: "Processing",
|
|
|
- },
|
|
|
+ search: false,
|
|
|
+ },
|
|
|
+ actions: {
|
|
|
+ render: (text, row) => [
|
|
|
+ row.childrenCount ? (
|
|
|
+ <Space>
|
|
|
+ <MessageOutlined /> {row.childrenCount}
|
|
|
+ </Space>
|
|
|
+ ) : (
|
|
|
+ <></>
|
|
|
+ ),
|
|
|
+ ],
|
|
|
+ search: false,
|
|
|
+ },
|
|
|
+ status: {
|
|
|
+ // 自己扩展的字段,主要用于筛选,不在列表中显示
|
|
|
+ title: "状态",
|
|
|
+ valueType: "select",
|
|
|
+ valueEnum: {
|
|
|
+ all: { text: "全部", status: "Default" },
|
|
|
+ open: {
|
|
|
+ text: "未解决",
|
|
|
+ status: "Error",
|
|
|
+ },
|
|
|
+ closed: {
|
|
|
+ text: "已解决",
|
|
|
+ status: "Success",
|
|
|
+ },
|
|
|
+ processing: {
|
|
|
+ text: "解决中",
|
|
|
+ status: "Processing",
|
|
|
},
|
|
|
},
|
|
|
- }}
|
|
|
- />
|
|
|
- </div>
|
|
|
+ },
|
|
|
+ }}
|
|
|
+ />
|
|
|
);
|
|
|
};
|
|
|
|