Просмотр исходного кода

feat(datasource): add changeState function

Lind 4 лет назад
Родитель
Сommit
6aa109b4fb
3 измененных файлов с 28 добавлено и 20 удалено
  1. 4 4
      src/locales/en-US/pages.ts
  2. 4 4
      src/locales/zh-CN/pages.ts
  3. 20 12
      src/pages/system/DataSource/index.tsx

+ 4 - 4
src/locales/en-US/pages.ts

@@ -74,10 +74,10 @@ export default {
   'pages.data.option': 'option',
   'pages.data.option': 'option',
   'pages.data.option.remove': 'delete',
   'pages.data.option.remove': 'delete',
   'pages.data.option.remove.tips': 'Confirm to delete?',
   'pages.data.option.remove.tips': 'Confirm to delete?',
-  'pages.data.option.disable': 'disable',
-  'pages.data.option.disable.tips': 'Confirm to disable?',
-  'pages.data.option.enable': 'enable',
-  'pages.data.option.enable.tips': 'Confirm to enable?',
+  'pages.data.option.disabled': 'disable',
+  'pages.data.option.disabled.tips': 'Confirm to disable?',
+  'pages.data.option.enabled': 'enable',
+  'pages.data.option.enabled.tips': 'Confirm to enable?',
   'pages.data.option.add': 'Add',
   'pages.data.option.add': 'Add',
   'pages.data.option.edit': 'Edit',
   'pages.data.option.edit': 'Edit',
   'pages.data.option.preview': 'Preview',
   'pages.data.option.preview': 'Preview',

+ 4 - 4
src/locales/zh-CN/pages.ts

@@ -72,10 +72,10 @@ export default {
   'pages.data.option': '操作',
   'pages.data.option': '操作',
   'pages.data.option.remove': '删除',
   'pages.data.option.remove': '删除',
   'pages.data.option.remove.tips': '确认删除?',
   'pages.data.option.remove.tips': '确认删除?',
-  'pages.data.option.disable': '禁用',
-  'pages.data.option.disable.tips': '确认禁用?',
-  'pages.data.option.enable': '启用',
-  'pages.data.option.enable.tips': '确认启用?',
+  'pages.data.option.disabled': '禁用',
+  'pages.data.option.disabled.tips': '确认禁用?',
+  'pages.data.option.enabled': '启用',
+  'pages.data.option.enabled.tips': '确认启用?',
   'pages.data.option.add': '新增',
   'pages.data.option.add': '新增',
   'pages.data.option.edit': '编辑',
   'pages.data.option.edit': '编辑',
   'pages.data.option.preview': '预览',
   'pages.data.option.preview': '预览',

+ 20 - 12
src/pages/system/DataSource/index.tsx

@@ -14,6 +14,11 @@ import { map } from 'rxjs/operators';
 
 
 export const service = new Service('datasource/config');
 export const service = new Service('datasource/config');
 
 
+const stateIconMap = {
+  enabled: <CloseCircleOutlined />,
+  disabled: <PlayCircleOutlined />,
+};
+
 const DataSource = () => {
 const DataSource = () => {
   const intl = useIntl();
   const intl = useIntl();
   const actionRef = useRef<ActionType>();
   const actionRef = useRef<ActionType>();
@@ -41,7 +46,9 @@ const DataSource = () => {
     {
     {
       title: 'ID',
       title: 'ID',
       dataIndex: 'id',
       dataIndex: 'id',
-      width: 200,
+      width: 240,
+      sorter: true,
+      defaultSortOrder: 'ascend',
     },
     },
     {
     {
       title: '名称',
       title: '名称',
@@ -65,7 +72,6 @@ const DataSource = () => {
       valueType: 'option',
       valueType: 'option',
       align: 'center',
       align: 'center',
       width: 200,
       width: 200,
-
       render: (text, record) => [
       render: (text, record) => [
         <a key="editable" onClick={() => CurdModel.update(record)}>
         <a key="editable" onClick={() => CurdModel.update(record)}>
           <Tooltip
           <Tooltip
@@ -77,17 +83,17 @@ const DataSource = () => {
             <EditOutlined />
             <EditOutlined />
           </Tooltip>
           </Tooltip>
         </a>,
         </a>,
-        <a href={record.id} target="_blank" rel="noopener noreferrer" key="view">
+        <a key="status">
           <Popconfirm
           <Popconfirm
             title={intl.formatMessage({
             title={intl.formatMessage({
-              id: 'pages.data.option.disable.tips',
-              defaultMessage: '确认禁用?',
+              id: `pages.data.option.${
+                record.state.value === 'disabled' ? 'enabled' : 'disabled'
+              }.tips`,
+              defaultMessage: `确认${record.state.value === 'disabled' ? '启' : '禁'}用?`,
             })}
             })}
             onConfirm={async () => {
             onConfirm={async () => {
-              await service.update({
-                id: record.id,
-                // state: record.state ? 0 : 1,
-              });
+              const state = record.state.value === 'disabled' ? 'enable' : 'disable';
+              await service.changeStatus(record.id, state);
               message.success(
               message.success(
                 intl.formatMessage({
                 intl.formatMessage({
                   id: 'pages.data.option.success',
                   id: 'pages.data.option.success',
@@ -99,11 +105,13 @@ const DataSource = () => {
           >
           >
             <Tooltip
             <Tooltip
               title={intl.formatMessage({
               title={intl.formatMessage({
-                id: `pages.data.option.${record.state ? 'disable' : 'enable'}`,
-                defaultMessage: record.state ? '禁用' : '启用',
+                id: `pages.data.option.${
+                  record.state.value === 'enabled' ? 'disabled' : 'enabled'
+                }`,
+                defaultMessage: record.state.text,
               })}
               })}
             >
             >
-              {record.state ? <CloseCircleOutlined /> : <PlayCircleOutlined />}
+              {stateIconMap[record.state.value]}
             </Tooltip>
             </Tooltip>
           </Popconfirm>
           </Popconfirm>
         </a>,
         </a>,