@hw-component/table 1.9.39 → 1.9.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/.eslintcache +1 -1
  2. package/es/HTableBody/HeaderTitle/index.js +9 -5
  3. package/es/HTableBody/index.d.ts +1 -1
  4. package/es/HTableHeader/hooks/config.d.ts +1 -1
  5. package/es/HTableHeader/hooks/useHeaderDefaultProps.d.ts +1 -1
  6. package/es/HTableHeader/hooks/useHideMoreTitle.d.ts +3 -3
  7. package/es/hooks/useCurrentTable.js +4 -1
  8. package/es/index.css +1 -0
  9. package/es/modal.d.ts +1 -1
  10. package/es/render/Text.d.ts +1 -0
  11. package/lib/HTableBody/HeaderTitle/index.js +9 -5
  12. package/lib/HTableBody/index.d.ts +1 -1
  13. package/lib/HTableHeader/hooks/config.d.ts +1 -1
  14. package/lib/HTableHeader/hooks/useHeaderDefaultProps.d.ts +1 -1
  15. package/lib/HTableHeader/hooks/useHideMoreTitle.d.ts +3 -3
  16. package/lib/hooks/useCurrentTable.js +4 -1
  17. package/lib/index.css +1 -0
  18. package/lib/modal.d.ts +1 -1
  19. package/lib/render/Text.d.ts +1 -0
  20. package/package.json +1 -1
  21. package/src/components/DialogTable/hooks.ts +10 -10
  22. package/src/components/HTableBody/HeaderTitle/index.tsx +9 -5
  23. package/src/components/HTableBody/index.tsx +4 -3
  24. package/src/components/HTableHeader/hooks/config.tsx +35 -35
  25. package/src/components/HTableHeader/hooks/useHeaderDefaultProps.ts +33 -25
  26. package/src/components/HTableHeader/hooks/useHideMoreTitle.tsx +146 -152
  27. package/src/components/HTableHeader/index.tsx +21 -7
  28. package/src/components/hooks/useCurrentTable.ts +4 -1
  29. package/src/components/index.less +2 -0
  30. package/src/components/modal.ts +1 -1
  31. package/src/components/render/config.tsx +3 -3
  32. package/src/pages/DwTable/index.tsx +7 -5
  33. package/src/pages/Table/index.tsx +15 -10
@@ -1,174 +1,168 @@
1
- import {FormConfigDataItemProviderModal, IHeaderProps} from "../modal";
2
- import {useEffect, useState} from "react";
3
- import {HItemProps} from "@hw-component/form/es/Form/modal";
4
- import {defaultSubItem, sizeObj} from "./config";
5
- import {useHTableContext} from "../../context";
6
- import {useClassName} from "../../hooks";
7
- import {HTableInstance} from "../../modal";
8
- import {ColProps} from "antd";
9
- import {renderData} from "../defaultFormRender";
1
+ import type { FormConfigDataItemProviderModal, IHeaderProps } from "../modal";
2
+ import { useEffect, useState } from "react";
3
+ import type { HItemProps } from "@hw-component/form/es/Form/modal";
4
+ import { defaultSubItem, sizeObj } from "./config";
5
+ import { useHTableContext } from "../../context";
6
+ import { useClassName } from "../../hooks";
7
+ import type { HTableInstance } from "../../modal";
8
+ import type { ColProps } from "antd";
9
+ import { renderData } from "../defaultFormRender";
10
10
 
11
11
  const formConfigDataItemProvider = (
12
- {
13
- searchType,
14
- title,
15
- name,
16
- dataIndex,
17
- itemProps = {},
18
- searchRender,
19
- childrenDataIndex,
20
- showSearch,
21
- hideInTable,
22
- align,
23
- searchLabel,
24
- titleStr,
25
- ...props
26
- }: FormConfigDataItemProviderModal,
27
- table: HTableInstance
12
+ {
13
+ searchType,
14
+ title,
15
+ name,
16
+ dataIndex,
17
+ itemProps = {},
18
+ searchRender,
19
+ childrenDataIndex,
20
+ showSearch,
21
+ hideInTable,
22
+ align,
23
+ searchLabel,
24
+ titleStr,
25
+ ...props
26
+ }: FormConfigDataItemProviderModal,
27
+ table: HTableInstance
28
28
  ): HItemProps => {
29
- const { allowClear = true } = itemProps as any;
29
+ const { allowClear = true } = itemProps as any;
30
30
 
31
- return {
32
- ...props,
33
- itemProps: {
34
- ...itemProps,
35
- allowClear,
36
- },
37
- label: searchLabel || titleStr || title,
38
- type: searchType,
39
- name: name || (dataIndex as string),
40
- render: (item, node, form) => {
41
- if (searchRender) {
42
- return searchRender(item, node, form, table);
43
- }
44
- const defaultRender = renderData[searchType || ""];
31
+ return {
32
+ ...props,
33
+ itemProps: {
34
+ ...itemProps,
35
+ allowClear,
36
+ },
37
+ label: searchLabel || titleStr || title,
38
+ type: searchType,
39
+ name: name || (dataIndex as string),
40
+ render: (item, node, form) => {
41
+ if (searchRender) {
42
+ return searchRender(item, node, form, table);
43
+ }
44
+ const defaultRender = renderData[searchType || ""];
45
45
 
46
- return defaultRender ? defaultRender(item) : node;
47
- },
48
- };
46
+ return defaultRender ? defaultRender(item) : node;
47
+ },
48
+ };
49
49
  };
50
50
 
51
51
  const getCuSpanMaxNum = (searchSpan: ColProps = { span: 6 }) => {
52
- const clientWidth = document.documentElement.clientWidth;
53
- const keys = Object.keys(sizeObj);
54
- const index = keys.findIndex((value) => {
55
- const { min = 0, max = Number.MAX_VALUE } = sizeObj[value];
56
- return clientWidth >= min && clientWidth < max;
57
- });
58
- const cuKey = keys[index];
59
- const cuSpan = searchSpan[cuKey] || searchSpan.span;
60
- return 24 / cuSpan;
52
+ const clientWidth = document.documentElement.clientWidth;
53
+ const keys = Object.keys(sizeObj);
54
+ const index = keys.findIndex((value) => {
55
+ const { min = 0, max = Number.MAX_VALUE } = sizeObj[value];
56
+ return clientWidth >= min && clientWidth < max;
57
+ });
58
+ const cuKey = keys[index];
59
+ const cuSpan = searchSpan[cuKey] || searchSpan.span;
60
+ return 24 / cuSpan;
61
61
  };
62
62
 
63
-
64
63
  const mkNewConfig = ({ configData = [], table }: IHeaderProps) => {
65
- let subConfigData: HItemProps | undefined;
66
- const realConfigData: HItemProps[] = [];
67
- configData.forEach((value) => {
68
- const { searchType, showSearch } = value;
69
- if (!showSearch) {
70
- return false;
71
- }
72
- if (searchType === "submit") {
73
- subConfigData = formConfigDataItemProvider(
74
- value,
75
- table as HTableInstance
76
- );
77
- return false;
78
- }
79
- realConfigData.push(
80
- formConfigDataItemProvider(value, table as HTableInstance)
81
- );
82
- });
83
- return {
84
- realConfigData,
85
- subConfigData,
86
- };
64
+ let subConfigData: HItemProps | undefined;
65
+ const realConfigData: HItemProps[] = [];
66
+ configData.forEach((value) => {
67
+ const { searchType, showSearch } = value;
68
+ if (!showSearch) {
69
+ return false;
70
+ }
71
+ if (searchType === "submit") {
72
+ subConfigData = formConfigDataItemProvider(
73
+ value,
74
+ table as HTableInstance
75
+ );
76
+ return false;
77
+ }
78
+ realConfigData.push(
79
+ formConfigDataItemProvider(value, table as HTableInstance)
80
+ );
81
+ });
82
+ return {
83
+ realConfigData,
84
+ subConfigData,
85
+ };
87
86
  };
88
87
 
89
88
  const filterHideFormItem = (
90
- configData: HItemProps[],
91
- className: string,
92
- searchSpan?: ColProps
89
+ configData: HItemProps[],
90
+ className: string,
91
+ searchSpan?: ColProps
93
92
  ) => {
94
- const maxNum = getCuSpanMaxNum(searchSpan);
95
- const len = configData.length;
96
- const startIndex = maxNum - 1;
97
- if (len <= startIndex) {
98
- return {
99
- lessData: configData,
100
- hideData: [],
101
- };
102
- }
103
- const index = startIndex === 0 ? 1 : startIndex;
104
- const lessData = configData.slice(0, index);
105
- const bigData = configData.slice(index);
106
- const hideData = bigData.map((value) => {
107
- return {
108
- ...value,
109
- className,
110
- };
111
- });
93
+ const maxNum = getCuSpanMaxNum(searchSpan);
94
+ const len = configData.length;
95
+ const startIndex = maxNum - 1;
96
+ if (len <= startIndex) {
112
97
  return {
113
- lessData,
114
- hideData,
98
+ lessData: configData,
99
+ hideData: [],
115
100
  };
101
+ }
102
+ const index = startIndex === 0 ? 1 : startIndex;
103
+ const lessData = configData.slice(0, index);
104
+ const bigData = configData.slice(index);
105
+ const hideData = bigData.map((value) => {
106
+ return {
107
+ ...value,
108
+ className,
109
+ };
110
+ });
111
+ return {
112
+ lessData,
113
+ hideData,
114
+ };
116
115
  };
117
116
 
118
- const useDefaultOpen=()=>{
119
- const [open,setOpen]=useState(false);
120
- const { headerOpen=open, setHeaderOpen=setOpen } = useHTableContext();
121
-
122
- return {
123
- headerOpen,
124
- setHeaderOpen
125
- }
126
- }
127
- export default ({
128
- searchSpan,
129
- configData,
130
- table,
131
- }: IHeaderProps) => {
117
+ const useDefaultOpen = () => {
118
+ const [open, setOpen] = useState(false);
119
+ const { headerOpen = open, setHeaderOpen = setOpen } = useHTableContext();
132
120
 
133
- const [formConfigData, setFormConfigData] = useState<HItemProps[]>([]);
134
- const [subData, setSubData] = useState<HItemProps>(defaultSubItem as any);
121
+ return {
122
+ headerOpen,
123
+ setHeaderOpen,
124
+ };
125
+ };
126
+ export default ({ searchSpan, configData, table }: IHeaderProps) => {
127
+ const [formConfigData, setFormConfigData] = useState<HItemProps[]>([]);
128
+ const [subData, setSubData] = useState<HItemProps>(defaultSubItem as any);
135
129
 
136
- const { headerOpen, setHeaderOpen } = useDefaultOpen();
137
- const className = useClassName("hw-table-header-item-hide");
138
- const mkNewFn = () => {
139
- const { realConfigData, subConfigData } = mkNewConfig({
140
- searchSpan,
141
- configData,
142
- table,
143
- });
144
- const changeClassName = headerOpen ? "" : className;
145
- const { lessData, hideData } = filterHideFormItem(
146
- realConfigData,
147
- changeClassName,
148
- searchSpan
149
- );
150
- if (subConfigData) {
151
- setSubData(subConfigData);
152
- }
153
- setHeaderOpen((oldVal) => {
154
- if (hideData.length === 0) {
155
- return undefined;
156
- }
157
- if (typeof oldVal === "undefined") {
158
- return false;
159
- }
160
- return oldVal;
161
- });
162
- setFormConfigData([...lessData, ...hideData]);
130
+ const { headerOpen, setHeaderOpen } = useDefaultOpen();
131
+ const className = useClassName("hw-table-header-item-hide");
132
+ const mkNewFn = () => {
133
+ const { realConfigData, subConfigData } = mkNewConfig({
134
+ searchSpan,
135
+ configData,
136
+ table,
137
+ });
138
+ const changeClassName = headerOpen ? "" : className;
139
+ const { lessData, hideData } = filterHideFormItem(
140
+ realConfigData,
141
+ changeClassName,
142
+ searchSpan
143
+ );
144
+ if (subConfigData) {
145
+ setSubData(subConfigData);
146
+ }
147
+ setHeaderOpen((oldVal) => {
148
+ if (hideData.length === 0) {
149
+ return undefined;
150
+ }
151
+ if (typeof oldVal === "undefined") {
152
+ return false;
153
+ }
154
+ return oldVal;
155
+ });
156
+ setFormConfigData([...lessData, ...hideData]);
157
+ };
158
+ useEffect(() => {
159
+ mkNewFn();
160
+ }, [configData, searchSpan, headerOpen]);
161
+ useEffect(() => {
162
+ window.addEventListener("resize", mkNewFn);
163
+ return () => {
164
+ window.removeEventListener("resize", mkNewFn);
163
165
  };
164
- useEffect(() => {
165
- mkNewFn();
166
- }, [configData, searchSpan, headerOpen]);
167
- useEffect(() => {
168
- window.addEventListener("resize", mkNewFn);
169
- return () => {
170
- window.removeEventListener("resize", mkNewFn);
171
- };
172
- }, [configData, searchSpan, headerOpen]);
173
- return [...formConfigData, subData];
174
- };
166
+ }, [configData, searchSpan, headerOpen]);
167
+ return [...formConfigData, subData];
168
+ };
@@ -6,8 +6,7 @@ import type { IHeaderProps } from "./modal";
6
6
  import useHeaderDefaultProps from "./hooks/useHeaderDefaultProps";
7
7
  import { HeaderProvider } from "./Context";
8
8
  import { useHTableConfigContext } from "../TableConfig";
9
- import useHideMoreTitle from './hooks/useHideMoreTitle'
10
-
9
+ import useHideMoreTitle from "./hooks/useHideMoreTitle";
11
10
 
12
11
  const defaultSearchSpan = {
13
12
  xxl: 4,
@@ -23,11 +22,24 @@ export default ({
23
22
  onReset,
24
23
  ...props
25
24
  }: IHeaderProps) => {
26
- const {tableLabelWidth,tableInstance,subOnFinish,submitLoading,tableHideLabel,headerConfigData}=useHeaderDefaultProps(props);
27
- const {form}=tableInstance;
28
- const nConfigData = useHideMoreTitle({searchSpan, configData: headerConfigData, table: tableInstance});
25
+ const {
26
+ tableLabelWidth,
27
+ tableInstance,
28
+ subOnFinish,
29
+ submitLoading,
30
+ tableHideLabel,
31
+ headerConfigData,
32
+ } = useHeaderDefaultProps(props);
33
+ const { form } = tableInstance;
34
+ const nConfigData = useHideMoreTitle({
35
+ searchSpan,
36
+ configData: headerConfigData,
37
+ table: tableInstance,
38
+ });
29
39
  const className = useClassName("hw-table-header");
30
- const { headerStyle: defaultHeaderStyle } = useHTableConfigContext({headerStyle});
40
+ const { headerStyle: defaultHeaderStyle } = useHTableConfigContext({
41
+ headerStyle,
42
+ });
31
43
  return (
32
44
  <Card
33
45
  style={defaultHeaderStyle}
@@ -43,7 +55,9 @@ export default ({
43
55
  dismissOnPressEnter={false}
44
56
  gutter={[20, 0]}
45
57
  initialValues={initValues}
46
- hideLabel={typeof tableHideLabel === "undefined" ? true : tableHideLabel}
58
+ hideLabel={
59
+ typeof tableHideLabel === "undefined" ? true : tableHideLabel
60
+ }
47
61
  configData={nConfigData}
48
62
  form={form}
49
63
  colon
@@ -36,7 +36,10 @@ export default ({
36
36
  resultTable.table.getSelectedRowData = () => {
37
37
  return selectedRowData;
38
38
  };
39
- resultTable.table.getTableSourceData = () => {
39
+ resultTable.table.getTableSourceData = (full) => {
40
+ if (full){
41
+ return dataSource;
42
+ }
40
43
  return dataSource?.records;
41
44
  };
42
45
  return resultTable as HTableInstance;
@@ -114,6 +114,8 @@
114
114
  display: flex;
115
115
  position: relative;
116
116
  margin-right: 12px;
117
+ overflow: auto;
118
+
117
119
  }
118
120
 
119
121
  .@{ant-prefix}-hw-table-render-copy{
@@ -125,7 +125,7 @@ export interface TableInstance {
125
125
  reloadWithParams: (params?: ParamsModal) => Promise<any>;
126
126
  getParams: () => any;
127
127
  getSelectedRowData: () => RowObj;
128
- getTableSourceData: () => any;
128
+ getTableSourceData: (full?:boolean) => any;
129
129
  getColSettingKeys: () => ColCheckResultKeys;
130
130
  }
131
131
  export interface HTableInstance {
@@ -69,9 +69,9 @@ const linkRender = (config: ConfigItemModal, itemData: any) => {
69
69
  if (typeof href === "function") {
70
70
  hrefUrl = href(itemData);
71
71
  }
72
- const relUrl=hrefUrl||tableVal;
73
- if (!relUrl){
74
- return "-"
72
+ const relUrl = hrefUrl || tableVal;
73
+ if (!relUrl) {
74
+ return "-";
75
75
  }
76
76
  return (
77
77
  <Link
@@ -112,12 +112,14 @@ const Test = () => {
112
112
  <Button
113
113
  onClick={() => {
114
114
  dialogTable1.show({
115
- request:()=>{
116
- return Promise.resolve({})
115
+ request: () => {
116
+ return Promise.resolve({});
117
117
  },
118
- configData:[{
119
- title:"测试"
120
- }]
118
+ configData: [
119
+ {
120
+ title: "测试",
121
+ },
122
+ ],
121
123
  });
122
124
  }}
123
125
  >
@@ -2,7 +2,8 @@ import {
2
2
  HTable,
3
3
  useHTable,
4
4
  HTableConfig,
5
- HTableHeaderSubBtn, HTableHeader,
5
+ HTableHeaderSubBtn,
6
+ HTableHeader,
6
7
  } from "@/components";
7
8
  import { Button, Card, Tooltip, Typography, Tag, Row } from "antd";
8
9
  import { HFormConfigProvider } from "@hw-component/form";
@@ -158,7 +159,7 @@ export default () => {
158
159
  return (
159
160
  <HFormConfigProvider>
160
161
  <div>
161
- <HTableHeader configData={[]}/>
162
+ <HTableHeader configData={[]} />
162
163
  <div
163
164
  onClick={() => {
164
165
  console.log(hTable.table.getTableSourceData());
@@ -204,14 +205,18 @@ export default () => {
204
205
  return <div>ffff</div>;
205
206
  }}
206
207
  headerTitle={
207
- <Button
208
- type={"primary"}
209
- onClick={() => {
210
- console.log(hTable.table.getColSettingKeys());
211
- }}
212
- >
213
- 操作
214
- </Button>
208
+ <div>
209
+ <div style={{width:"2000px",backgroundColor:'red'}}>
210
+ <Button
211
+ type={"primary"}
212
+ onClick={() => {
213
+ console.log(hTable.table.getColSettingKeys());
214
+ }}
215
+ >
216
+ 操作
217
+ </Button>
218
+ </div>
219
+ </div>
215
220
  }
216
221
  reload={(params) => {
217
222
  const { size, current } = params;