|
|
@@ -1,6 +1,7 @@
|
|
|
import { PlusOutlined } from '@ant-design/icons';
|
|
|
import { Button, Divider, message, Input, Drawer } from 'antd';
|
|
|
import React, { useState, useRef } from 'react';
|
|
|
+import { useIntl, FormattedMessage } from 'umi';
|
|
|
import { PageContainer, FooterToolbar } from '@ant-design/pro-layout';
|
|
|
import ProTable, { ProColumns, ActionType } from '@ant-design/pro-table';
|
|
|
import ProDescriptions from '@ant-design/pro-descriptions';
|
|
|
@@ -78,16 +79,24 @@ const TableList: React.FC<{}> = () => {
|
|
|
const actionRef = useRef<ActionType>();
|
|
|
const [row, setRow] = useState<TableListItem>();
|
|
|
const [selectedRowsState, setSelectedRows] = useState<TableListItem[]>([]);
|
|
|
+ const intl = useIntl();
|
|
|
const columns: ProColumns<TableListItem>[] = [
|
|
|
{
|
|
|
- title: '规则名称',
|
|
|
+ title: (
|
|
|
+ <FormattedMessage
|
|
|
+ id="pages.searchTable.updateForm.ruleName.nameLabel"
|
|
|
+ defaultMessage="规则名称"
|
|
|
+ />
|
|
|
+ ),
|
|
|
dataIndex: 'name',
|
|
|
tip: '规则名称是唯一的 key',
|
|
|
formItemProps: {
|
|
|
rules: [
|
|
|
{
|
|
|
required: true,
|
|
|
- message: '规则名称为必填项',
|
|
|
+ message: (
|
|
|
+ <FormattedMessage id="pages.searchTable.ruleName" defaultMessage="规则名称为必填项" />
|
|
|
+ ),
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
@@ -96,30 +105,56 @@ const TableList: React.FC<{}> = () => {
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
- title: '描述',
|
|
|
+ title: <FormattedMessage id="pages.searchTable.titleDesc" defaultMessage="描述" />,
|
|
|
dataIndex: 'desc',
|
|
|
valueType: 'textarea',
|
|
|
},
|
|
|
{
|
|
|
- title: '服务调用次数',
|
|
|
+ title: <FormattedMessage id="pages.searchTable.titleCallNo" defaultMessage="服务调用次数" />,
|
|
|
dataIndex: 'callNo',
|
|
|
sorter: true,
|
|
|
hideInForm: true,
|
|
|
- renderText: (val: string) => `${val} 万`,
|
|
|
+ renderText: (val: string) =>
|
|
|
+ `${val}${intl.formatMessage({
|
|
|
+ id: 'pages.searchTable.tenThousand',
|
|
|
+ defaultMessage: ' 万 ',
|
|
|
+ })}`,
|
|
|
},
|
|
|
{
|
|
|
- title: '状态',
|
|
|
+ title: <FormattedMessage id="pages.searchTable.titleStatus" defaultMessage="状态" />,
|
|
|
dataIndex: 'status',
|
|
|
hideInForm: true,
|
|
|
valueEnum: {
|
|
|
- 0: { text: '关闭', status: 'Default' },
|
|
|
- 1: { text: '运行中', status: 'Processing' },
|
|
|
- 2: { text: '已上线', status: 'Success' },
|
|
|
- 3: { text: '异常', status: 'Error' },
|
|
|
+ 0: {
|
|
|
+ text: (
|
|
|
+ <FormattedMessage id="pages.searchTable.nameStatus.default" defaultMessage="关闭" />
|
|
|
+ ),
|
|
|
+ status: 'Default',
|
|
|
+ },
|
|
|
+ 1: {
|
|
|
+ text: (
|
|
|
+ <FormattedMessage id="pages.searchTable.nameStatus.running" defaultMessage="运行中" />
|
|
|
+ ),
|
|
|
+ status: 'Processing',
|
|
|
+ },
|
|
|
+ 2: {
|
|
|
+ text: (
|
|
|
+ <FormattedMessage id="pages.searchTable.nameStatus.online" defaultMessage="已上线" />
|
|
|
+ ),
|
|
|
+ status: 'Success',
|
|
|
+ },
|
|
|
+ 3: {
|
|
|
+ text: (
|
|
|
+ <FormattedMessage id="pages.searchTable.nameStatus.abnormal" defaultMessage="异常" />
|
|
|
+ ),
|
|
|
+ status: 'Error',
|
|
|
+ },
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
- title: '上次调度时间',
|
|
|
+ title: (
|
|
|
+ <FormattedMessage id="pages.searchTable.titleUpdatedAt" defaultMessage="上次调度时间" />
|
|
|
+ ),
|
|
|
dataIndex: 'updatedAt',
|
|
|
sorter: true,
|
|
|
valueType: 'dateTime',
|
|
|
@@ -130,13 +165,21 @@ const TableList: React.FC<{}> = () => {
|
|
|
return false;
|
|
|
}
|
|
|
if (`${status}` === '3') {
|
|
|
- return <Input {...rest} placeholder="请输入异常原因!" />;
|
|
|
+ return (
|
|
|
+ <Input
|
|
|
+ {...rest}
|
|
|
+ placeholder={intl.formatMessage({
|
|
|
+ id: 'pages.searchTable.exception',
|
|
|
+ defaultMessage: '请输入异常原因!',
|
|
|
+ })}
|
|
|
+ />
|
|
|
+ );
|
|
|
}
|
|
|
return defaultRender(item);
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
- title: '操作',
|
|
|
+ title: <FormattedMessage id="pages.searchTable.titleOption" defaultMessage="操作" />,
|
|
|
dataIndex: 'option',
|
|
|
valueType: 'option',
|
|
|
render: (_, record) => (
|
|
|
@@ -147,10 +190,12 @@ const TableList: React.FC<{}> = () => {
|
|
|
setStepFormValues(record);
|
|
|
}}
|
|
|
>
|
|
|
- 配置
|
|
|
+ <FormattedMessage id="pages.searchTable.config" defaultMessage="配置" />
|
|
|
</a>
|
|
|
<Divider type="vertical" />
|
|
|
- <a href="">订阅警报</a>
|
|
|
+ <a href="">
|
|
|
+ <FormattedMessage id="pages.searchTable.subscribeAlert" defaultMessage="订阅警报" />
|
|
|
+ </a>
|
|
|
</>
|
|
|
),
|
|
|
},
|
|
|
@@ -159,7 +204,10 @@ const TableList: React.FC<{}> = () => {
|
|
|
return (
|
|
|
<PageContainer>
|
|
|
<ProTable<TableListItem>
|
|
|
- headerTitle="查询表格"
|
|
|
+ headerTitle={intl.formatMessage({
|
|
|
+ id: 'pages.searchTable.title',
|
|
|
+ defaultMessage: '查询表格',
|
|
|
+ })}
|
|
|
actionRef={actionRef}
|
|
|
rowKey="key"
|
|
|
search={{
|
|
|
@@ -167,7 +215,7 @@ const TableList: React.FC<{}> = () => {
|
|
|
}}
|
|
|
toolBarRender={() => [
|
|
|
<Button type="primary" onClick={() => handleModalVisible(true)}>
|
|
|
- <PlusOutlined /> 新建
|
|
|
+ <PlusOutlined /> <FormattedMessage id="pages.searchTable.new" defaultMessage="新建" />
|
|
|
</Button>,
|
|
|
]}
|
|
|
request={(params, sorter, filter) => queryRule({ ...params, sorter, filter })}
|
|
|
@@ -180,9 +228,17 @@ const TableList: React.FC<{}> = () => {
|
|
|
<FooterToolbar
|
|
|
extra={
|
|
|
<div>
|
|
|
- 已选择 <a style={{ fontWeight: 600 }}>{selectedRowsState.length}</a> 项
|
|
|
+ <FormattedMessage id="pages.searchTable.chosen" defaultMessage="已选择" />{' '}
|
|
|
+ <a style={{ fontWeight: 600 }}>{selectedRowsState.length}</a>{' '}
|
|
|
+ <FormattedMessage id="pages.searchTable.item" defaultMessage="项" />
|
|
|
+
|
|
|
<span>
|
|
|
- 服务调用次数总计 {selectedRowsState.reduce((pre, item) => pre + item.callNo, 0)} 万
|
|
|
+ <FormattedMessage
|
|
|
+ id="pages.searchTable.totalServiceCalls"
|
|
|
+ defaultMessage="服务调用次数总计"
|
|
|
+ />{' '}
|
|
|
+ {selectedRowsState.reduce((pre, item) => pre + item.callNo, 0)}{' '}
|
|
|
+ <FormattedMessage id="pages.searchTable.tenThousand" defaultMessage="万" />
|
|
|
</span>
|
|
|
</div>
|
|
|
}
|
|
|
@@ -194,9 +250,11 @@ const TableList: React.FC<{}> = () => {
|
|
|
actionRef.current?.reloadAndRest?.();
|
|
|
}}
|
|
|
>
|
|
|
- 批量删除
|
|
|
+ <FormattedMessage id="pages.searchTable.batchDeletion" defaultMessage="批量删除" />
|
|
|
+ </Button>
|
|
|
+ <Button type="primary">
|
|
|
+ <FormattedMessage id="pages.searchTable.batchApproval" defaultMessage="批量审批" />
|
|
|
</Button>
|
|
|
- <Button type="primary">批量审批</Button>
|
|
|
</FooterToolbar>
|
|
|
)}
|
|
|
<CreateForm onCancel={() => handleModalVisible(false)} modalVisible={createModalVisible}>
|