index.tsx 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. import { PageContainer } from '@ant-design/pro-layout';
  2. import BaseService from '@/utils/BaseService';
  3. import type { ConfigurationItem } from '@/pages/visualization/Configuration/typings';
  4. import { useRef } from 'react';
  5. import type { ActionType, ProColumns } from '@jetlinks/pro-table';
  6. import { Tooltip } from 'antd';
  7. import {
  8. ArrowDownOutlined,
  9. BarsOutlined,
  10. CopyOutlined,
  11. EditOutlined,
  12. EyeOutlined,
  13. MinusOutlined,
  14. } from '@ant-design/icons';
  15. import BaseCrud from '@/components/BaseCrud';
  16. import { useIntl } from '@@/plugin-locale/localeExports';
  17. export const service = new BaseService<ConfigurationItem>('visualization');
  18. const Configuration = () => {
  19. const intl = useIntl();
  20. const actionRef = useRef<ActionType>();
  21. const columns: ProColumns<ConfigurationItem>[] = [
  22. {
  23. dataIndex: 'index',
  24. valueType: 'indexBorder',
  25. width: 48,
  26. },
  27. {
  28. dataIndex: 'name',
  29. title: intl.formatMessage({
  30. id: 'pages.table.name',
  31. defaultMessage: '名称',
  32. }),
  33. },
  34. {
  35. dataIndex: 'state',
  36. title: intl.formatMessage({
  37. id: 'pages.searchTable.titleStatus',
  38. defaultMessage: '状态',
  39. }),
  40. render: (text, record) => record.state.value,
  41. },
  42. {
  43. dataIndex: 'description',
  44. title: intl.formatMessage({
  45. id: 'pages.table.describe',
  46. defaultMessage: '描述',
  47. }),
  48. },
  49. {
  50. title: intl.formatMessage({
  51. id: 'pages.data.option',
  52. defaultMessage: '操作',
  53. }),
  54. valueType: 'option',
  55. align: 'center',
  56. width: 200,
  57. render: (text, record) => [
  58. <a onClick={() => console.log(record)}>
  59. <Tooltip
  60. title={intl.formatMessage({
  61. id: 'pages.data.option.edit',
  62. defaultMessage: '编辑',
  63. })}
  64. >
  65. <EditOutlined />
  66. </Tooltip>
  67. </a>,
  68. <a>
  69. <Tooltip
  70. title={intl.formatMessage({
  71. id: 'pages.data.option.preview',
  72. defaultMessage: '预览',
  73. })}
  74. >
  75. <EyeOutlined />
  76. </Tooltip>
  77. </a>,
  78. <a>
  79. <Tooltip
  80. title={intl.formatMessage({
  81. id: 'pages.data.option.download',
  82. defaultMessage: '下载配置',
  83. })}
  84. >
  85. <ArrowDownOutlined />
  86. </Tooltip>
  87. </a>,
  88. <a>
  89. <Tooltip
  90. title={intl.formatMessage({
  91. id: 'pages.visualization.option.copy',
  92. defaultMessage: '复制',
  93. })}
  94. >
  95. <CopyOutlined />
  96. </Tooltip>
  97. </a>,
  98. <a>
  99. <Tooltip
  100. title={intl.formatMessage({
  101. id: 'pages.data.option.record',
  102. defaultMessage: '通知记录',
  103. })}
  104. >
  105. <BarsOutlined />
  106. </Tooltip>
  107. </a>,
  108. <a>
  109. <Tooltip
  110. title={intl.formatMessage({
  111. id: 'pages.data.option.remove',
  112. defaultMessage: '删除',
  113. })}
  114. >
  115. <MinusOutlined />
  116. </Tooltip>
  117. </a>,
  118. ],
  119. },
  120. ];
  121. const schema = {};
  122. return (
  123. <PageContainer>
  124. <BaseCrud
  125. defaultParams={{ type: 'vis_configuration' }}
  126. columns={columns}
  127. service={service}
  128. title={intl.formatMessage({
  129. id: 'pages.visualization.configuration',
  130. defaultMessage: '组态管理',
  131. })}
  132. schema={schema}
  133. actionRef={actionRef}
  134. />
  135. </PageContainer>
  136. );
  137. };
  138. export default Configuration;