Browse Source

feat(ruleEditor): update jetlinks-pro/table

Lind 3 years ago
parent
commit
1c01fab7dd

+ 1 - 1
package.json

@@ -70,7 +70,7 @@
     "@formily/reactive-react": "2.0.0-rc.17",
     "@formily/shared": "2.0.0-rc.17",
     "@jetlinks/pro-list": "^1.10.8",
-    "@jetlinks/pro-table": "^2.63.10",
+    "@jetlinks/pro-table": "^2.63.11",
     "@types/react-syntax-highlighter": "^13.5.2",
     "@umijs/route-utils": "^1.0.36",
     "ahooks": "^2.10.9",

+ 2 - 2
src/components/BaseCrud/index.tsx

@@ -1,11 +1,12 @@
 import { useIntl } from '@@/plugin-locale/localeExports';
 import { Button, Dropdown } from 'antd';
+import type { ActionType, ProColumns, RequestData } from '@jetlinks/pro-table';
 import ProTable from '@jetlinks/pro-table';
-import type { ProColumns, ActionType, RequestData } from '@jetlinks/pro-table';
 
 import { EllipsisOutlined, PlusOutlined } from '@ant-design/icons';
 import type BaseService from '@/utils/BaseService';
 import * as React from 'react';
+import { useRef, useState } from 'react';
 import Save from '@/components/BaseCrud/save';
 import type { ISchema } from '@formily/json-schema';
 import { CurdModel } from '@/components/BaseCrud/model';
@@ -14,7 +15,6 @@ import type { ModalProps } from 'antd/lib/modal/Modal';
 import type { TablePaginationConfig } from 'antd/lib/table/interface';
 import type { Form } from '@formily/core';
 import SearchComponent from '@/components/SearchComponent';
-import { useRef, useState } from 'react';
 import type { ProFormInstance } from '@ant-design/pro-form';
 import type { SearchConfig } from '@ant-design/pro-form/lib/components/Submitter';
 

+ 1 - 0
src/components/SearchComponent/index.tsx

@@ -170,6 +170,7 @@ const SearchComponent = <T extends Record<string, any>>(props: Props<T>) => {
   const filterSearchTerm = (): EnumData[] =>
     field
       .filter((item) => item.dataIndex)
+      .filter((item) => !item.hideInSearch)
       .filter((item) => !['index', 'option'].includes(item.dataIndex as string))
       .map((i) => ({ label: i.title, value: i.dataIndex } as EnumData));
 

+ 6 - 24
src/pages/system/Permission/index.tsx

@@ -1,13 +1,13 @@
 import { PageContainer } from '@ant-design/pro-layout';
 import React, { useEffect, useRef } from 'react';
 import {
-  EditOutlined,
   CloseCircleOutlined,
-  PlayCircleOutlined,
   DeleteOutlined,
+  EditOutlined,
+  PlayCircleOutlined,
 } from '@ant-design/icons';
-import { Menu, Tooltip, Popconfirm, message, Button, Upload, Badge } from 'antd';
-import type { ProColumns, ActionType } from '@jetlinks/pro-table';
+import { Badge, Button, Menu, message, Popconfirm, Tooltip, Upload } from 'antd';
+import type { ActionType, ProColumns } from '@jetlinks/pro-table';
 import { useIntl } from '@@/plugin-locale/localeExports';
 import BaseCrud from '@/components/BaseCrud';
 import { CurdModel } from '@/components/BaseCrud/model';
@@ -17,9 +17,9 @@ import type { ISchema } from '@formily/json-schema';
 import Service from '@/pages/system/Permission/service';
 import { model } from '@formily/reactive';
 import { observer } from '@formily/react';
-import moment from 'moment';
 import SystemConst from '@/utils/const';
 import Token from '@/utils/token';
+import { downloadObject } from '@/utils/util';
 
 export const service = new Service('permission');
 
@@ -29,23 +29,6 @@ const defaultAction = [
   { action: 'delete', name: '删除', describe: '删除' },
 ];
 
-const downloadObject = (record: any, fileName: string) => {
-  // 创建隐藏的可下载链接
-  const eleLink = document.createElement('a');
-  eleLink.download = `${fileName}-${
-    record.name || moment(new Date()).format('YYYY/MM/DD HH:mm:ss')
-  }.json`;
-  eleLink.style.display = 'none';
-  // 字符内容转变成blob地址
-  const blob = new Blob([JSON.stringify(record)]);
-  eleLink.href = URL.createObjectURL(blob);
-  // 触发点击
-  document.body.appendChild(eleLink);
-  eleLink.click();
-  // 然后移除
-  document.body.removeChild(eleLink);
-};
-
 const PermissionModel = model<{
   assetsTypesList: { label: string; value: string }[];
 }>({
@@ -55,13 +38,12 @@ const Permission: React.FC = observer(() => {
   useEffect(() => {
     service.getAssetTypes().subscribe((resp) => {
       if (resp.status === 200) {
-        const list = resp.result.map((item: { name: string; id: string }) => {
+        PermissionModel.assetsTypesList = resp.result.map((item: { name: string; id: string }) => {
           return {
             label: item.name,
             value: item.id,
           };
         });
-        PermissionModel.assetsTypesList = list;
       }
     });
   }, []);

+ 8 - 6
src/pages/system/User/index.tsx

@@ -15,6 +15,7 @@ import { useIntl } from '@@/plugin-locale/localeExports';
 import { useRef, useState } from 'react';
 import Save from './Save';
 import { observer } from '@formily/react';
+import { request } from 'umi';
 
 export const service = new Service('user');
 
@@ -53,9 +54,12 @@ const User = observer(() => {
           },
         ],
       },
-      search: {
-        transform: (value) => ({ name$LIKE: value }),
-      },
+    },
+    {
+      title: '测试字段',
+      dataIndex: 'test',
+      align: 'center',
+      request: () => request('/jetlinks/dictionary/device-log-type/items'),
     },
     {
       title: intl.formatMessage({
@@ -78,9 +82,7 @@ const User = observer(() => {
           },
         ],
       },
-      search: {
-        transform: (value) => ({ username$LIKE: value }),
-      },
+      hideInSearch: false,
     },
     {
       title: intl.formatMessage({

+ 6 - 1
src/utils/util.ts

@@ -2,7 +2,12 @@ import moment from 'moment';
 import type { Field, FieldDataSource } from '@formily/core';
 import { action } from '@formily/reactive';
 
-export const downObject = (record: Record<string, unknown>, fileName: string) => {
+/**
+ * 把数据下载成JSON
+ * @param record
+ * @param fileName
+ */
+export const downloadObject = (record: Record<string, unknown>, fileName: string) => {
   // 创建隐藏的可下载链接
   const ghostLink = document.createElement('a');
   ghostLink.download = `${fileName}-${

+ 8 - 8
yarn.lock

@@ -175,7 +175,7 @@
     "@ant-design/pro-field" "1.32.3"
     "@ant-design/pro-form" "1.56.1"
     "@ant-design/pro-skeleton" "1.0.5"
-    "@ant-design/pro-utils" "1.35.1"
+    "@ant-design/pro-utils" "1.35.2"
     "@babel/runtime" "^7.16.3"
     rc-util "^5.0.6"
     use-json-comparison "^1.0.5"
@@ -220,7 +220,7 @@
   dependencies:
     "@ant-design/icons" "^4.2.1"
     "@ant-design/pro-provider" "1.6.0"
-    "@ant-design/pro-utils" "1.35.1"
+    "@ant-design/pro-utils" "1.35.2"
     "@babel/runtime" "^7.16.3"
     classnames "^2.2.6"
     lodash.tonumber "^4.0.3"
@@ -273,7 +273,7 @@
     "@ant-design/icons" "^4.2.1"
     "@ant-design/pro-field" "1.32.3"
     "@ant-design/pro-provider" "1.6.0"
-    "@ant-design/pro-utils" "1.35.1"
+    "@ant-design/pro-utils" "1.35.2"
     "@babel/runtime" "^7.16.3"
     "@umijs/use-params" "^1.0.9"
     classnames "^2.2.6"
@@ -369,7 +369,7 @@
     react-sortable-hoc "^2.0.0"
     swr "^1.2.0"
 
-"@ant-design/pro-utils@1.35.1", "@ant-design/pro-utils@1.35.1":
+"@ant-design/pro-utils@1.35.1":
   version "1.35.1"
   resolved "https://registry.npmjs.org/@ant-design/pro-utils/-/pro-utils-1.35.1.tgz#ab39815b7c013003be7a06b360ad4fbef61eb5c7"
   integrity sha512-XvxSnekFkYnu0Bh/crc3YJrB+TLzJjI5p60WvpdIh5OrYYVsJICP+U46cPHKIOaVfFviEVOEGRARPxCiNaLvAw==
@@ -2975,10 +2975,10 @@
     use-json-comparison "^1.0.5"
     use-media-antd-query "1.0.6"
 
-"@jetlinks/pro-table@^2.63.10":
-  version "2.63.10"
-  resolved "https://registry.npmjs.org/@jetlinks/pro-table/-/pro-table-2.63.10.tgz#7b07f908f23a5548a995cd6b251983ff0e69653b"
-  integrity sha512-mK9Jw8t/uW3i8ztckWns2St6iwDhPgBXfyaLdiwSNCf2nDQv0kiHJfnc6G1zRC+VbOPsSH+bD4LM/vzTss0COA==
+"@jetlinks/pro-table@^2.63.11":
+  version "2.63.11"
+  resolved "https://registry.npmjs.org/@jetlinks/pro-table/-/pro-table-2.63.11.tgz#fffce287276925184b4e751690e8a9bd83b8c5e8"
+  integrity sha512-tUFkFlCdQ19JyS8SV2umfJ+guA8fiICNi7gwvDufX/rYaFHDwLC55SQ12piDto5ee1VC42wN5D4ro0F45QrkIg==
   dependencies:
     "@ant-design/icons" "^4.1.0"
     "@ant-design/pro-field" "1.31.17"