@hw-component/table 1.9.79 → 1.9.81

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 (38) hide show
  1. package/.eslintcache +1 -1
  2. package/es/HTableBody/HeaderTitle/index.js +41 -5
  3. package/es/HTableBody/RowCheckBox/Title.d.ts +1 -1
  4. package/es/HTableBody/RowCheckBox/hooks.d.ts +1 -1
  5. package/es/HTableBody/RowRadioBoxSelection.d.ts +3 -3
  6. package/es/HTableBody/hooks/colsMk.d.ts +1 -1
  7. package/es/HTableBody/hooks/useControl.d.ts +1 -1
  8. package/es/index.css +24 -2
  9. package/es/render/config.d.ts +1 -1
  10. package/es/render/config.js +5 -1
  11. package/lib/HTableBody/HeaderTitle/index.js +40 -4
  12. package/lib/HTableBody/RowCheckBox/Title.d.ts +1 -1
  13. package/lib/HTableBody/RowCheckBox/hooks.d.ts +1 -1
  14. package/lib/HTableBody/RowRadioBoxSelection.d.ts +3 -3
  15. package/lib/HTableBody/hooks/colsMk.d.ts +1 -1
  16. package/lib/HTableBody/hooks/useControl.d.ts +1 -1
  17. package/lib/index.css +24 -2
  18. package/lib/render/config.d.ts +1 -1
  19. package/lib/render/config.js +5 -1
  20. package/package.json +2 -2
  21. package/src/components/HTableBody/HeaderTitle/index.tsx +41 -7
  22. package/src/components/HTableBody/RowCheckBox/RowItem.tsx +40 -41
  23. package/src/components/HTableBody/RowCheckBox/Title.tsx +59 -63
  24. package/src/components/HTableBody/RowCheckBox/hooks.ts +64 -63
  25. package/src/components/HTableBody/RowRadioBoxSelection.tsx +24 -24
  26. package/src/components/HTableBody/hooks/colsMk.tsx +47 -47
  27. package/src/components/HTableBody/hooks/useColData.tsx +9 -9
  28. package/src/components/HTableBody/hooks/useControl.tsx +12 -10
  29. package/src/components/HTableBody/index.tsx +14 -5
  30. package/src/components/Table.tsx +10 -4
  31. package/src/components/hooks/useRowObj.ts +11 -11
  32. package/src/components/index.less +8 -3
  33. package/src/components/modal.ts +2 -2
  34. package/src/components/render/CopyComponent.tsx +9 -9
  35. package/src/components/render/TagsComponent.tsx +18 -8
  36. package/src/components/render/config.tsx +8 -1
  37. package/src/pages/DwTable/index.tsx +4 -4
  38. package/src/pages/Table/index.tsx +38 -109
@@ -2,7 +2,7 @@ import copy from "copy-to-clipboard";
2
2
  import { message, Typography } from "antd";
3
3
  import type { EllipsisConfig } from "antd/lib/typography/Base";
4
4
  import { useClassName } from "../hooks";
5
- import {useMemo} from "react";
5
+ import { useMemo } from "react";
6
6
  const { Paragraph } = Typography;
7
7
  interface IProps {
8
8
  text: string;
@@ -12,14 +12,14 @@ interface IProps {
12
12
  }
13
13
  export default ({ cpText, text, successMsg, ellipsis }: IProps) => {
14
14
  const className = useClassName("hw-table-render-copy");
15
- const propsEllipsis=useMemo(()=>{
16
- if (ellipsis===true){
17
- return {
18
- tooltip:text
19
- }
20
- }
21
- return ellipsis;
22
- },[ellipsis,text]);
15
+ const propsEllipsis = useMemo(() => {
16
+ if (ellipsis === true) {
17
+ return {
18
+ tooltip: text,
19
+ };
20
+ }
21
+ return ellipsis;
22
+ }, [ellipsis, text]);
23
23
  return (
24
24
  <Paragraph
25
25
  ellipsis={propsEllipsis}
@@ -13,9 +13,9 @@ interface IProps {
13
13
  fieldNames?: { label?: string; value?: string };
14
14
  tableInstance?: HTableInstance;
15
15
  maxLen?: number | null;
16
- popoverContentRender?:(node:React.ReactNode)=>React.ReactNode;
17
- contentItemRender?:(item:any)=>React.ReactNode;
18
- extra?:React.ReactNode;
16
+ popoverContentRender?: (node: React.ReactNode) => React.ReactNode;
17
+ contentItemRender?: (item: any) => React.ReactNode;
18
+ extra?: React.ReactNode;
19
19
  }
20
20
  const getTooltipProps = (
21
21
  title: string,
@@ -48,7 +48,7 @@ const TagsComponent = (props: IProps) => {
48
48
  tableInstance,
49
49
  maxLen,
50
50
  popoverContentRender,
51
- extra
51
+ extra,
52
52
  } = props;
53
53
  const { label = "label", value = "value" } = fieldNames;
54
54
  const { tagData, moreTag } = useMemo(() => {
@@ -65,7 +65,7 @@ const TagsComponent = (props: IProps) => {
65
65
  };
66
66
  }, [data, maxLen]);
67
67
  const moreLen = moreTag?.length;
68
- const {contentItemRender,...childProps}=props;
68
+ const { contentItemRender, ...childProps } = props;
69
69
  return (
70
70
  <Row gutter={[0, 8]}>
71
71
  {tagData?.map((tagItem, index) => {
@@ -88,7 +88,7 @@ const TagsComponent = (props: IProps) => {
88
88
  onClose?.(indexKey, tableInstance);
89
89
  }}
90
90
  >
91
- {contentItemRender?contentItemRender(tagItem):tagItem}
91
+ {contentItemRender ? contentItemRender(tagItem) : tagItem}
92
92
  </Tag>
93
93
  </Tooltip>
94
94
  );
@@ -110,13 +110,23 @@ const TagsComponent = (props: IProps) => {
110
110
  cuTagProps?.onClose(cuKey, tableInstance);
111
111
  }}
112
112
  >
113
- {contentItemRender?contentItemRender(tagLabel):tagLabel}
113
+ {contentItemRender ? contentItemRender(tagLabel) : tagLabel}
114
114
  </Tag>
115
115
  </Tooltip>
116
116
  );
117
117
  })}
118
118
  {!moreLen ? null : (
119
- <Popover content={popoverContentRender?popoverContentRender(<TagsComponent {...childProps} maxLen={null} />):<TagsComponent {...childProps} maxLen={null} />}>
119
+ <Popover
120
+ content={
121
+ popoverContentRender ? (
122
+ popoverContentRender(
123
+ <TagsComponent {...childProps} maxLen={null} />
124
+ )
125
+ ) : (
126
+ <TagsComponent {...childProps} maxLen={null} />
127
+ )
128
+ }
129
+ >
120
130
  <Tag>...等{data.length}个</Tag>
121
131
  </Popover>
122
132
  )}
@@ -114,8 +114,15 @@ const textRender = (config: ConfigItemModal, itemData: any) => {
114
114
  };
115
115
  const imageRender = (config: ConfigItemModal, itemData: any) => {
116
116
  const { valueTypeProps = {} } = config;
117
+ const {fallback}=valueTypeProps;
117
118
  const tableVal = getTableVal(config, itemData);
118
- return <Image src={tableVal} width={48} {...valueTypeProps} />;
119
+ if (!fallback&&tableVal===null){
120
+ return "-"
121
+ }
122
+ return <Image src={tableVal||""}
123
+ width={48}
124
+ {...valueTypeProps}
125
+ />;
119
126
  };
120
127
  const avatarRender = (config: ConfigItemModal, itemData: any) => {
121
128
  const { valueTypeProps = {} } = config;
@@ -1,5 +1,5 @@
1
1
  import { Button } from "antd";
2
- import {HDwTable, HModalTable, HTable, useHDialogTable} from "@/components";
2
+ import { HDwTable, HModalTable, HTable, useHDialogTable } from "@/components";
3
3
  const configData = [
4
4
  {
5
5
  title: "座位",
@@ -100,9 +100,9 @@ const Test = () => {
100
100
  title="111"
101
101
  configData={configData}
102
102
  tableProps={{
103
- rowSelection:{
104
- type:"radio"
105
- }
103
+ rowSelection: {
104
+ type: "radio",
105
+ },
106
106
  }}
107
107
  request={req2}
108
108
  contentRender={(node) => {
@@ -5,12 +5,12 @@ import {
5
5
  HTableHeaderSubBtn,
6
6
  HTableHeader,
7
7
  } from "@/components";
8
- import {Button, Card, Tooltip, Typography, Tag, Row, Space} from "antd";
9
- import { HFormConfigProvider } from "@hw-component/form";
8
+ import { Button, Card, Tooltip, Typography, Tag, Row, Space } from "antd";
9
+ import { HFormConfigProvider, HRangePicker } from "@hw-component/form";
10
10
  import { SettingOutlined } from "@ant-design/icons";
11
11
  import ProTable from "@ant-design/pro-table";
12
12
  import { useRequest } from "ahooks";
13
- import { useState } from "react";
13
+ import { useEffect, useState } from "react";
14
14
 
15
15
  const TagsComponent = ({ data, labelKey }) => {
16
16
  const len = data?.length;
@@ -34,114 +34,43 @@ const TagsComponent = ({ data, labelKey }) => {
34
34
  </>
35
35
  );
36
36
  };
37
-
37
+ const Testd = (props) => {
38
+ return (
39
+ <div>
40
+ <HRangePicker {...props} />
41
+ </div>
42
+ );
43
+ };
38
44
  export const configData = [
39
- {
40
- title: "报警联系人名称",
41
- width: 120,
42
- dataIndex: ["name", "1"],
43
- valueType: "text",
44
- searchType: "rangePicker",
45
- showSearch: true,
46
- sorter: true,
47
- filterMultiple: false,
48
- filters: [
49
- { value: 1, text: "123" },
50
- { value: 2, text: "2222" },
51
- ],
52
- valueTypeProps: {
53
- ellipsis: {
54
- tooltip: true,
55
- },
56
- },
57
- },
58
45
  {
59
46
  title: "短信接收手机号",
60
47
  dataIndex: "mobileList",
61
48
  width: 120,
62
49
  valueType: "tags",
50
+ searchType: "rangePicker",
63
51
  showSearch: true,
64
- valueTypeProps: {
65
- fieldNames: {
66
- label: "name",
67
- },
52
+ shouldUpdate: (p, c) => {
53
+ return true;
68
54
  },
69
55
  },
70
56
  {
71
- title: "id",
72
- dataIndex: "id",
57
+ title: "图片",
58
+ dataIndex: "img",
73
59
  width: 120,
74
- valueType: "copy",
75
- sorter: (a, b) => {
76
- const { id: aNum } = a;
77
- const { id: bNum } = b;
78
- return aNum - bNum;
79
- },
80
- },
81
- {
82
- title: "悠哉公众号openid",
83
- dataIndex: "openidList",
84
- width: 300,
85
- render: (_: any, data) => {
86
- const { openidList } = data;
87
- return <TagsComponent data={openidList} />;
88
- },
89
- },
90
- {
91
- title: "升级规则",
92
- dataIndex: "rule",
93
- children: [
94
- {
95
- title: "邀请总人数",
96
- dataIndex: "upInviteCount",
97
- width: 100,
98
- align: "center",
99
- },
100
- {
101
- title: "订单笔数",
102
- dataIndex: "upOrderCount",
103
- width: 100,
104
- align: "center",
105
- },
106
- ],
107
- },
108
- {
109
- title: "钉钉机器人",
110
- dataIndex: "dingdingList",
111
- width: 300,
112
- render: (_: any, data) => {
113
- const { dingdingList } = data;
114
- const newList = dingdingList?.filter((item) => {
115
- return typeof item !== "string";
116
- });
117
- return <TagsComponent data={newList} labelKey="webhook" />;
118
- },
119
- },
120
- {
121
- title: "操作",
122
- width: 120,
123
- align: "center",
124
- dataIndex: "op",
125
- render: (
126
- _: any,
127
- data: TableItemModal,
128
- index: number,
129
- tableInstance: HTableInstance
130
- ) => {
131
- return <div />;
132
- },
60
+ valueType: "image",
61
+ valueTypeProps:{
62
+ fallback:"data:image/png;base64,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"
63
+
64
+ }
133
65
  },
134
66
  ];
135
- const Test = ({ name, selectedRowData }) => {
136
- console.log(selectedRowData);
137
- return <div>{name}</div>;
138
- };
139
67
  const maker = (name) => {
140
68
  const data = [];
141
69
  for (let i = 0; i < 100; i += 1) {
142
70
  data.push({
143
71
  name,
144
72
  id: i,
73
+ img:""
145
74
  });
146
75
  }
147
76
  return data;
@@ -181,11 +110,10 @@ export default () => {
181
110
  size: "10",
182
111
  current: "1",
183
112
  });
184
- const [keys,setKeys]=useState([]);
113
+ const [keys, setKeys] = useState([]);
185
114
  return (
186
115
  <HFormConfigProvider>
187
116
  <div>
188
- <HTableHeader configData={[]} />
189
117
  <div
190
118
  onClick={() => {
191
119
  console.log(hTable.table.getTableSourceData());
@@ -207,7 +135,7 @@ export default () => {
207
135
  }}
208
136
  rowSelection={{
209
137
  allPageCheck: false,
210
- preserveSelectedRowKeys:true,
138
+ preserveSelectedRowKeys: true,
211
139
  }}
212
140
  affixProps={{
213
141
  target: () => document.querySelector(".body"),
@@ -220,9 +148,10 @@ export default () => {
220
148
  persistenceType: "localStorage",
221
149
  }}
222
150
  formInitValues={{
223
- mobileList: "mobileList",
151
+ deviceType: "1",
224
152
  }}
225
153
  request={(params) => {
154
+ console.log(params, "params");
226
155
  return Promise.resolve({
227
156
  current: 1,
228
157
  records: maker(`第${100}页`),
@@ -232,26 +161,26 @@ export default () => {
232
161
  }}
233
162
  headerTitle={
234
163
  <Space size={8}>
235
- <div style={{width:2000}}>
236
- <Button
237
- onClick={() => {
238
- console.log(hTable.table.getColSettingKeys());
239
- }}
240
- >
241
- 操作
242
- </Button>
243
- </div>
244
- <Button
164
+ <div style={{ width: 1000 }}>
165
+ <Button
245
166
  onClick={() => {
246
167
  console.log(hTable.table.getColSettingKeys());
247
168
  }}
169
+ >
170
+ 操作
171
+ </Button>
172
+ </div>
173
+ <Button
174
+ onClick={() => {
175
+ console.log(hTable.table.getColSettingKeys());
176
+ }}
248
177
  >
249
178
  操作
250
179
  </Button>
251
180
  <Button
252
- onClick={() => {
253
- console.log(hTable.table.getColSettingKeys());
254
- }}
181
+ onClick={() => {
182
+ console.log(hTable.table.getColSettingKeys());
183
+ }}
255
184
  >
256
185
  操作
257
186
  </Button>