aldehyde 0.2.99 → 0.2.100

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 (190) hide show
  1. package/dist/bundle.021f784b1c84781461d2.js +1 -0
  2. package/dist/bundle.03c542ca824e205fe307.js +2 -0
  3. package/dist/bundle.03c542ca824e205fe307.js.LICENSE.txt +27 -0
  4. package/dist/bundle.03c542ca824e205fe307.js.gz +0 -0
  5. package/dist/bundle.15cb660c34802f6cccf5.js +1 -0
  6. package/dist/bundle.15cb660c34802f6cccf5.js.gz +0 -0
  7. package/dist/bundle.2f9c2d692fe0277a37aa.js +2 -0
  8. package/dist/bundle.2f9c2d692fe0277a37aa.js.LICENSE.txt +1 -0
  9. package/dist/bundle.2f9c2d692fe0277a37aa.js.gz +0 -0
  10. package/dist/bundle.320c02187dd135005102.js +2 -0
  11. package/dist/bundle.320c02187dd135005102.js.LICENSE.txt +6 -0
  12. package/dist/bundle.320c02187dd135005102.js.gz +0 -0
  13. package/dist/bundle.35a4af7e2d0da1942d79.js +10 -0
  14. package/dist/bundle.35a4af7e2d0da1942d79.js.gz +0 -0
  15. package/dist/bundle.3f9072b1629cdb384b46.js +2 -0
  16. package/dist/bundle.3f9072b1629cdb384b46.js.LICENSE.txt +5 -0
  17. package/dist/bundle.3f9072b1629cdb384b46.js.gz +0 -0
  18. package/dist/bundle.46e2295b5360a725bcd5.js +1 -0
  19. package/dist/bundle.46e2295b5360a725bcd5.js.gz +0 -0
  20. package/dist/bundle.4c3c988531c3cf360b87.js +1 -0
  21. package/dist/bundle.4c3c988531c3cf360b87.js.gz +0 -0
  22. package/dist/bundle.4df89546fd2e9d665dfb.js +2 -0
  23. package/dist/bundle.4df89546fd2e9d665dfb.js.LICENSE.txt +5 -0
  24. package/dist/bundle.4df89546fd2e9d665dfb.js.gz +0 -0
  25. package/dist/bundle.5a9afb9ee6cceca506fa.js +5 -0
  26. package/dist/bundle.5a9afb9ee6cceca506fa.js.LICENSE.txt +10 -0
  27. package/dist/bundle.5a9afb9ee6cceca506fa.js.gz +0 -0
  28. package/dist/bundle.5e6cccd06b34a0e3a2ff.js +1 -0
  29. package/dist/bundle.5e6cccd06b34a0e3a2ff.js.gz +0 -0
  30. package/dist/bundle.62c62e6aaa7f3c20761e.js +2 -0
  31. package/dist/bundle.62c62e6aaa7f3c20761e.js.LICENSE.txt +17 -0
  32. package/dist/bundle.62c62e6aaa7f3c20761e.js.gz +0 -0
  33. package/dist/bundle.6fd2dadd29083268c5a6.js +2 -0
  34. package/dist/bundle.6fd2dadd29083268c5a6.js.LICENSE.txt +17 -0
  35. package/dist/bundle.6fd2dadd29083268c5a6.js.gz +0 -0
  36. package/dist/bundle.8241d8d05e35988dd480.js +1 -0
  37. package/dist/bundle.8241d8d05e35988dd480.js.gz +0 -0
  38. package/dist/bundle.829683dfa6a98c78c58e.js +2 -0
  39. package/dist/bundle.829683dfa6a98c78c58e.js.LICENSE.txt +14 -0
  40. package/dist/bundle.829683dfa6a98c78c58e.js.gz +0 -0
  41. package/dist/bundle.840e28984e710e12f467.js +75 -0
  42. package/dist/bundle.840e28984e710e12f467.js.LICENSE.txt +8 -0
  43. package/dist/bundle.840e28984e710e12f467.js.gz +0 -0
  44. package/dist/bundle.85ce5221fe6ab1d91f7d.js +2 -0
  45. package/dist/bundle.85ce5221fe6ab1d91f7d.js.LICENSE.txt +1 -0
  46. package/dist/bundle.85ce5221fe6ab1d91f7d.js.gz +0 -0
  47. package/dist/bundle.9cfd99a04bde7f781c30.js +1 -0
  48. package/dist/bundle.9cfd99a04bde7f781c30.js.gz +0 -0
  49. package/dist/bundle.a049dc8814bbbf59160f.js +1 -0
  50. package/dist/bundle.a049dc8814bbbf59160f.js.gz +0 -0
  51. package/dist/bundle.a94f7811fac19aa9d6a3.js +2 -0
  52. package/dist/bundle.a94f7811fac19aa9d6a3.js.LICENSE.txt +1 -0
  53. package/dist/bundle.a94f7811fac19aa9d6a3.js.gz +0 -0
  54. package/dist/bundle.abdde6e82ee9f60d1bf3.js +2 -0
  55. package/dist/bundle.abdde6e82ee9f60d1bf3.js.LICENSE.txt +30 -0
  56. package/dist/bundle.abdde6e82ee9f60d1bf3.js.gz +0 -0
  57. package/dist/bundle.b207a66d5902f39d0c5a.js +1 -0
  58. package/dist/bundle.b207a66d5902f39d0c5a.js.gz +0 -0
  59. package/dist/bundle.b7b86a025aa95dea0e19.js +2 -0
  60. package/dist/bundle.b7b86a025aa95dea0e19.js.LICENSE.txt +8 -0
  61. package/dist/bundle.b7b86a025aa95dea0e19.js.gz +0 -0
  62. package/dist/bundle.b7e3eb480b649b3de67b.js +2 -0
  63. package/dist/bundle.b7e3eb480b649b3de67b.js.LICENSE.txt +5 -0
  64. package/dist/bundle.b7e3eb480b649b3de67b.js.gz +0 -0
  65. package/dist/bundle.c1c6028fd703ebf78c2e.js +2 -0
  66. package/dist/bundle.c1c6028fd703ebf78c2e.js.LICENSE.txt +5 -0
  67. package/dist/bundle.c1c6028fd703ebf78c2e.js.gz +0 -0
  68. package/dist/bundle.cd10ae07e0e0c36d0dee.js +2 -0
  69. package/dist/bundle.cd10ae07e0e0c36d0dee.js.LICENSE.txt +22 -0
  70. package/dist/bundle.cd10ae07e0e0c36d0dee.js.gz +0 -0
  71. package/dist/bundle.cf6a1933769c2aee4e6e.js +1 -0
  72. package/dist/bundle.cf6a1933769c2aee4e6e.js.gz +0 -0
  73. package/dist/bundle.d158d417d1d7a8acb2a1.js +1 -0
  74. package/dist/bundle.d158d417d1d7a8acb2a1.js.gz +0 -0
  75. package/dist/bundle.db40aa107272f4303ece.js +1 -0
  76. package/dist/bundle.db40aa107272f4303ece.js.gz +0 -0
  77. package/dist/bundle.ddefe6d8f235ef95d470.js +1 -0
  78. package/dist/bundle.ddefe6d8f235ef95d470.js.gz +0 -0
  79. package/dist/bundle.e02a7a16b4a6b3bb412f.js +2 -0
  80. package/dist/bundle.e02a7a16b4a6b3bb412f.js.LICENSE.txt +16 -0
  81. package/dist/bundle.e02a7a16b4a6b3bb412f.js.gz +0 -0
  82. package/dist/bundle.e760a70171cf0ae4567b.js +1 -0
  83. package/dist/bundle.e760a70171cf0ae4567b.js.gz +0 -0
  84. package/dist/bundle.f3ce062a620fe456c152.js +1 -0
  85. package/dist/bundle.f6e1c4fda58154810fe2.js +2 -0
  86. package/dist/bundle.f6e1c4fda58154810fe2.js.LICENSE.txt +41 -0
  87. package/dist/bundle.f6e1c4fda58154810fe2.js.gz +0 -0
  88. package/dist/bundle.fe9c09b8ace9c3117b0a.js +1 -0
  89. package/dist/bundle.fe9c09b8ace9c3117b0a.js.gz +0 -0
  90. package/dist/bundle.feaa17bec2057a4ee54f.js +1 -0
  91. package/dist/bundle.feaa17bec2057a4ee54f.js.gz +0 -0
  92. package/dist/css/chemstruc-graph-6437e59640f8b99b774f.css +12 -0
  93. package/dist/css/chemstruc-graph-6437e59640f8b99b774f.css.gz +0 -0
  94. package/dist/css/common-901df6b21f13391f2a53.css +56 -0
  95. package/dist/css/html-editor-draft-5e8e152675ab7d201c00.css +886 -0
  96. package/dist/css/html-editor-draft-5e8e152675ab7d201c00.css.gz +0 -0
  97. package/dist/css/main-f3c8fdebab315e61e7be.css +865 -0
  98. package/dist/css/main-f3c8fdebab315e61e7be.css.gz +0 -0
  99. package/dist/images/development-30de07a0.png +0 -0
  100. package/dist/images/logo-54b328b7.png +0 -0
  101. package/dist/images/pain-point-8f02421e.png +0 -0
  102. package/dist/images/target-13a5b4b9.png +0 -0
  103. package/dist/images/time-cost-cb40d2c2.png +0 -0
  104. package/dist/images/time-prograss-44b86b36.png +0 -0
  105. package/dist/index.html +4 -0
  106. package/lib/controls/collapse-card/index.d.ts +11 -2
  107. package/lib/controls/collapse-card/index.d.ts.map +1 -1
  108. package/lib/controls/collapse-card/index.js +18 -16
  109. package/lib/controls/collapse-card/index.js.map +1 -1
  110. package/lib/controls/entry-control.d.ts.map +1 -1
  111. package/lib/controls/entry-control.js +2 -1
  112. package/lib/controls/entry-control.js.map +1 -1
  113. package/lib/detail/button/fix-right-submit-button-bar.js +1 -1
  114. package/lib/detail/button/fix-right-submit-button-bar.js.map +1 -1
  115. package/lib/detail/view/act-dtmpl-view.js +1 -1
  116. package/lib/detail/view/act-dtmpl-view.js.map +1 -1
  117. package/lib/detail/view/field-view-group.d.ts +10 -1
  118. package/lib/detail/view/field-view-group.d.ts.map +1 -1
  119. package/lib/detail/view/field-view-group.js +17 -11
  120. package/lib/detail/view/field-view-group.js.map +1 -1
  121. package/lib/form/criteria-form.js +3 -3
  122. package/lib/form/criteria-form.js.map +1 -1
  123. package/lib/form/form-Item-group.js +1 -1
  124. package/lib/form/form-Item-group.js.map +1 -1
  125. package/lib/layout/MainPage.js +1 -1
  126. package/lib/layout/MainPage.js.map +1 -1
  127. package/lib/layout/header/index.js +3 -3
  128. package/lib/layout/header/index.js.map +1 -1
  129. package/lib/layout/menu/block.d.ts +13 -1
  130. package/lib/layout/menu/block.d.ts.map +1 -1
  131. package/lib/layout/menu/block.js +66 -8
  132. package/lib/layout/menu/block.js.map +1 -1
  133. package/lib/layout/menu/menu-2layers.d.ts +10 -0
  134. package/lib/layout/menu/menu-2layers.d.ts.map +1 -1
  135. package/lib/layout/menu/menu-2layers.js +32 -9
  136. package/lib/layout/menu/menu-2layers.js.map +1 -1
  137. package/lib/layout/sidebar/index.d.ts.map +1 -1
  138. package/lib/layout/sidebar/index.js +3 -1
  139. package/lib/layout/sidebar/index.js.map +1 -1
  140. package/lib/locale/LocaleProvider.d.ts.map +1 -1
  141. package/lib/locale/LocaleProvider.js +10 -8
  142. package/lib/locale/LocaleProvider.js.map +1 -1
  143. package/lib/locale/translate.d.ts.map +1 -1
  144. package/lib/locale/translate.js +10 -8
  145. package/lib/locale/translate.js.map +1 -1
  146. package/lib/routable/ltmpl-route.d.ts +2 -2
  147. package/lib/routable/ltmpl-route.d.ts.map +1 -1
  148. package/lib/routable/ltmpl-route.js +22 -21
  149. package/lib/routable/ltmpl-route.js.map +1 -1
  150. package/lib/table/act-table.d.ts.map +1 -1
  151. package/lib/table/act-table.js +18 -8
  152. package/lib/table/act-table.js.map +1 -1
  153. package/lib/table/column/column-selector.d.ts.map +1 -1
  154. package/lib/table/column/column-selector.js +20 -18
  155. package/lib/table/column/column-selector.js.map +1 -1
  156. package/lib/table/query-table.d.ts +10 -1
  157. package/lib/table/query-table.d.ts.map +1 -1
  158. package/lib/table/query-table.js +47 -41
  159. package/lib/table/query-table.js.map +1 -1
  160. package/lib/table/relation-table.js +4 -4
  161. package/lib/table/relation-table.js.map +1 -1
  162. package/lib/tree/tmpl-tree.d.ts.map +1 -1
  163. package/lib/tree/tmpl-tree.js +9 -6
  164. package/lib/tree/tmpl-tree.js.map +1 -1
  165. package/lib/tree/tree-node.d.ts.map +1 -1
  166. package/lib/tree/tree-node.js.map +1 -1
  167. package/package.json +1 -1
  168. package/src/aldehyde/controls/action/index.tsx +6 -5
  169. package/src/aldehyde/controls/collapse-card/index.tsx +96 -54
  170. package/src/aldehyde/controls/entry-control.tsx +2 -1
  171. package/src/aldehyde/detail/button/fix-right-submit-button-bar.tsx +1 -1
  172. package/src/aldehyde/detail/view/act-dtmpl-view.tsx +1 -1
  173. package/src/aldehyde/detail/view/field-view-group.tsx +62 -47
  174. package/src/aldehyde/form/criteria-form.tsx +3 -3
  175. package/src/aldehyde/form/form-Item-group.tsx +1 -1
  176. package/src/aldehyde/layout/MainPage.tsx +1 -1
  177. package/src/aldehyde/layout/header/index.tsx +4 -4
  178. package/src/aldehyde/layout/menu/block.less +11 -0
  179. package/src/aldehyde/layout/menu/block.tsx +132 -72
  180. package/src/aldehyde/layout/menu/menu-2layers.tsx +99 -64
  181. package/src/aldehyde/layout/sidebar/index.tsx +5 -1
  182. package/src/aldehyde/locale/LocaleProvider.tsx +10 -9
  183. package/src/aldehyde/locale/translate.ts +10 -7
  184. package/src/aldehyde/routable/ltmpl-route.tsx +220 -196
  185. package/src/aldehyde/table/act-table.tsx +26 -9
  186. package/src/aldehyde/table/column/column-selector.tsx +111 -72
  187. package/src/aldehyde/table/query-table.tsx +354 -304
  188. package/src/aldehyde/table/relation-table.tsx +4 -4
  189. package/src/aldehyde/tree/tmpl-tree.tsx +19 -3
  190. package/src/aldehyde/tree/tree-node.tsx +0 -3
@@ -1,350 +1,400 @@
1
- import React from 'react'
2
- import {Card, Collapse, Descriptions, List} from 'antd';
3
- import { Table } from './control-table-x-axis-wrapper';
4
- import "./index.css"
1
+ import React from "react";
2
+ import { Card, Collapse, Descriptions, List } from "antd";
3
+ import { Table } from "./control-table-x-axis-wrapper";
4
+ import "./index.css";
5
5
  import {
6
- ActTableViewModel, ColumnConfig,
7
- DtmplData,
8
- FieldConfig,
9
- PageInfo,
10
- QueryData,
11
- QueryKey,
12
- SelectedRow,
6
+ ActTableViewModel,
7
+ ColumnConfig,
8
+ DtmplData,
9
+ FieldConfig,
10
+ PageInfo,
11
+ QueryData,
12
+ QueryKey,
13
+ SelectedRow,
13
14
  } from "../tmpl/interface";
14
15
  import HcserviceV3 from "../tmpl/hcservice-v3";
15
- import Pagination from './pagination';
16
- import {TableRowSelection} from "antd/lib/table/interface";
17
- import {SortableContainer, SortableElement} from "react-sortable-hoc";
18
- import {arrayMoveImmutable} from 'array-move';
16
+ import Pagination from "./pagination";
17
+ import { TableRowSelection } from "antd/lib/table/interface";
18
+ import { SortableContainer, SortableElement } from "react-sortable-hoc";
19
+ import { arrayMoveImmutable } from "array-move";
19
20
  import ViewControl from "../controls/view-control";
20
- import Scrollbars from 'react-custom-scrollbars';
21
- const {Panel} = Collapse;
22
- const SortableItem = SortableElement(props => <tr {...props} />);
23
- const SortableBody = SortableContainer(props => <tbody {...props} />);
24
-
21
+ import Scrollbars from "react-custom-scrollbars";
22
+ import { LocaleContext } from "../locale/LocaleProvider";
23
+ const { Panel } = Collapse;
24
+ const SortableItem = SortableElement((props) => <tr {...props} />);
25
+ const SortableBody = SortableContainer((props) => <tbody {...props} />);
25
26
 
26
27
  interface CacheData {
27
- dataSource: object[];
28
- pageInfo: PageInfo;
28
+ dataSource: object[];
29
+ pageInfo: PageInfo;
29
30
  }
30
31
 
31
32
  interface QueryTableProps {
32
- viewModels?: ActTableViewModel[];
33
- // defaultPageSize?: number;
34
- pageInfo: {
35
- pageNo: number,
36
- pageSize: number
37
- },
38
- primaryColumn?:ColumnConfig,
39
- columns: any[];
40
- serverKey?:string,
41
- queryKey: QueryKey;
42
- onChangePage: (pageNo: number, pageSize: number) => void,
43
- onChangeRowSelection?: (selectedRows: SelectedRow[], selectedDatas: DtmplData[], allRowKeys: string[]) => void;
44
- maxSelectedRows?: number;
45
- selectedRows?: SelectedRow[];
46
- hiddenRowCodes?: string[],
47
- viewModel?: string;
48
- columnConfigs?: FieldConfig[];
49
- };
50
-
33
+ viewModels?: ActTableViewModel[];
34
+ // defaultPageSize?: number;
35
+ pageInfo: {
36
+ pageNo: number;
37
+ pageSize: number;
38
+ };
39
+ primaryColumn?: ColumnConfig;
40
+ columns: any[];
41
+ serverKey?: string;
42
+ queryKey: QueryKey;
43
+ onChangePage: (pageNo: number, pageSize: number) => void;
44
+ onChangeRowSelection?: (
45
+ selectedRows: SelectedRow[],
46
+ selectedDatas: DtmplData[],
47
+ allRowKeys: string[]
48
+ ) => void;
49
+ maxSelectedRows?: number;
50
+ selectedRows?: SelectedRow[];
51
+ hiddenRowCodes?: string[];
52
+ viewModel?: string;
53
+ columnConfigs?: FieldConfig[];
54
+ }
51
55
 
52
56
  interface QueryTableStat {
53
- queryDataCache?: Map<string, CacheData>;
54
- virtualEndPageNo?: number;
55
- dataSource?: object[];
56
- loading?: boolean;
57
- touchEnd?: boolean;
58
- total?: number;
59
- };
57
+ queryDataCache?: Map<string, CacheData>;
58
+ virtualEndPageNo?: number;
59
+ dataSource?: object[];
60
+ loading?: boolean;
61
+ touchEnd?: boolean;
62
+ total?: number;
63
+ }
60
64
 
61
65
  class QueryTable extends React.PureComponent<QueryTableProps, QueryTableStat> {
66
+ static defaultProps = {
67
+ pageInfo: {
68
+ pageNo: 1,
69
+ pageSize: 10,
70
+ virtualEndPageNo: undefined,
71
+ },
72
+ hiddenRowCodes: [],
73
+ selectedRows: [],
74
+ viewModels: ["table"],
75
+ };
62
76
 
63
- static defaultProps = {
64
- pageInfo: {
65
- pageNo: 1,
66
- pageSize: 10,
67
- virtualEndPageNo: undefined
68
- },
69
- hiddenRowCodes: [],
70
- selectedRows: [],
71
- viewModels: ['table']
72
- }
77
+ state = {
78
+ queryDataCache: undefined,
79
+ virtualEndPageNo: undefined,
80
+ dataSource: undefined,
81
+ loading: true,
82
+ touchEnd: undefined,
83
+ total: undefined,
84
+ };
73
85
 
74
- state = {
75
- queryDataCache: undefined,
76
- virtualEndPageNo: undefined,
77
- dataSource: undefined,
78
- loading: true,
79
- touchEnd: undefined,
80
- total: undefined,
86
+ static contextType = LocaleContext;
87
+ context: React.ContextType<typeof LocaleContext>;
88
+
89
+ async componentDidMount() {
90
+ const { queryKey, pageInfo } = this.props;
91
+ // let pageInfo = {
92
+ // pageNo: 1,
93
+ // pageSize: defaultPageSize ? defaultPageSize : 10,
94
+ // virtualEndPageNo: undefined,
95
+ // }
96
+ if (queryKey) {
97
+ await this.loadData(queryKey.key, pageInfo);
81
98
  }
99
+ }
82
100
 
83
- async componentDidMount() {
84
- const { queryKey, pageInfo} = this.props;
85
- // let pageInfo = {
86
- // pageNo: 1,
87
- // pageSize: defaultPageSize ? defaultPageSize : 10,
88
- // virtualEndPageNo: undefined,
89
- // }
90
- if (queryKey) {
91
- await this.loadData(queryKey.key, pageInfo);
92
- }
101
+ componentWillUnmount() {
102
+ this.setState = () => false;
103
+ }
104
+
105
+ async componentDidUpdate(prevProps) {
106
+ const { queryKey: preQueryKey, pageInfo: prePageInfo } = prevProps;
107
+ const { queryKey, pageInfo } = this.props;
108
+ const { total } = this.state;
109
+ if (queryKey) {
110
+ if (preQueryKey?.key != queryKey.key) {
111
+ await this.loadData(queryKey.key, pageInfo, true);
112
+ } else if (
113
+ prePageInfo?.pageNo != pageInfo.pageNo ||
114
+ prePageInfo?.pageSize != pageInfo.pageSize
115
+ ) {
116
+ await this.loadData(queryKey.key, pageInfo, false);
117
+ }
93
118
  }
119
+ }
120
+
121
+ DraggableContainer = (props) => (
122
+ <SortableBody
123
+ useDragHandle
124
+ disableAutoscroll
125
+ helperClass="row-dragging"
126
+ onSortEnd={this.onSortEnd}
127
+ {...props}
128
+ />
129
+ );
94
130
 
95
- componentWillUnmount() {
96
- this.setState = () => false;
131
+ DraggableBodyRow = ({ className, style, ...restProps }) => {
132
+ const { dataSource } = this.state;
133
+ if (dataSource) {
134
+ const index = dataSource.findIndex(
135
+ (x) => x.key === restProps["data-row-key"]
136
+ );
137
+ return <SortableItem key={index} index={index} {...restProps} />;
138
+ } else {
139
+ return <></>;
97
140
  }
141
+ };
98
142
 
99
- async componentDidUpdate(prevProps) {
100
- const {queryKey: preQueryKey, pageInfo: prePageInfo} = prevProps;
101
- const {queryKey, pageInfo} = this.props;
102
- const {total}=this.state;
103
- if (queryKey) {
104
- if (preQueryKey?.key != queryKey.key) {
105
- await this.loadData(queryKey.key, pageInfo, true);
106
- } else if (prePageInfo?.pageNo != pageInfo.pageNo || prePageInfo?.pageSize != pageInfo.pageSize) {
107
- await this.loadData(queryKey.key, pageInfo, false);
108
- }
109
- }
143
+ onSortEnd = ({ oldIndex, newIndex }) => {
144
+ const { dataSource } = this.state;
145
+ if (oldIndex !== newIndex) {
146
+ const newData = arrayMoveImmutable(
147
+ [].concat(dataSource),
148
+ oldIndex,
149
+ newIndex
150
+ ).filter((el) => !!el);
151
+ //console.log('Sorted items: ', newData);
152
+ this.setState({ dataSource: newData });
110
153
  }
154
+ };
111
155
 
112
- DraggableContainer = props => (
113
- <SortableBody
114
- useDragHandle
115
- disableAutoscroll
116
- helperClass="row-dragging"
117
- onSortEnd={this.onSortEnd}
118
- {...props}
119
- />
120
- );
156
+ loadData = async (
157
+ queryKey: string,
158
+ pageInfo: PageInfo,
159
+ cleanCache?: boolean
160
+ ) => {
161
+ this.setState({
162
+ loading: true,
163
+ });
164
+ let { queryDataCache } = this.state;
121
165
 
122
- DraggableBodyRow = ({className, style, ...restProps}) => {
123
- const {dataSource} = this.state;
124
- if (dataSource) {
125
- const index = dataSource.findIndex(x => x.key === restProps['data-row-key']);
126
- return <SortableItem key={index} index={index} {...restProps} />;
127
- } else {
128
- return <></>
129
- }
166
+ let { serverKey } = this.props;
167
+ let queryCache: Map<string, CacheData>;
168
+ if (cleanCache || !queryDataCache) {
169
+ queryCache = new Map<string, CacheData>();
170
+ this.setState({ total: undefined });
171
+ } else {
172
+ queryCache = queryDataCache;
173
+ }
174
+ if (queryCache.has(pageInfo.pageNo + "_" + pageInfo.pageSize)) {
175
+ let cacheData = queryCache.get(pageInfo.pageNo + "_" + pageInfo.pageSize);
176
+ this.setState({
177
+ dataSource: cacheData.dataSource,
178
+ virtualEndPageNo: cacheData.pageInfo.virtualEndPageNo,
179
+ loading: false,
180
+ });
181
+ } else {
182
+ let queryData: QueryData = await HcserviceV3.requestQueryData(
183
+ serverKey,
184
+ queryKey,
185
+ pageInfo
186
+ );
187
+ let dataSource: object[] = [];
188
+ pageInfo = queryData.pageInfo;
189
+ queryData.entities.forEach((item, index) => {
190
+ let row = {
191
+ key: item.code,
192
+ code: item.code, //增加code,为了删除操作
193
+ ...item.fieldMap,
194
+ index,
195
+ };
196
+ dataSource.push(row);
197
+ });
198
+ let touchEnd = queryData.touchEnd;
199
+ //缓存数据
200
+ queryCache.set(pageInfo.pageNo + "_" + pageInfo.pageSize, {
201
+ dataSource,
202
+ pageInfo,
203
+ });
204
+ this.setState({
205
+ dataSource,
206
+ virtualEndPageNo: pageInfo.virtualEndPageNo,
207
+ queryDataCache: queryCache,
208
+ touchEnd,
209
+ loading: false,
210
+ });
211
+ }
212
+ };
130
213
 
214
+ pageTo = async (pageNo: number, pageSize: number) => {
215
+ const { onChangePage } = this.props;
216
+ const { virtualEndPageNo } = this.state;
217
+ let pageInfo = {
218
+ pageNo,
219
+ pageSize: pageSize ? pageSize : 10,
220
+ virtualEndPageNo,
131
221
  };
222
+ const { queryKey } = this.props;
223
+ await this.loadData(queryKey.key, pageInfo);
224
+ onChangePage(pageNo, pageSize);
225
+ };
132
226
 
133
- onSortEnd = ({oldIndex, newIndex}) => {
134
- const {dataSource} = this.state;
135
- if (oldIndex !== newIndex) {
136
- const newData = arrayMoveImmutable([].concat(dataSource), oldIndex, newIndex).filter(
137
- el => !!el,
138
- );
139
- //console.log('Sorted items: ', newData);
140
- this.setState({dataSource: newData});
141
- }
142
- };
227
+ queryTotal = async () => {
228
+ const { queryKey, serverKey } = this.props;
229
+ let total = await HcserviceV3.requestQueryCount(serverKey, queryKey.key);
230
+ this.setState({
231
+ total,
232
+ });
233
+ };
143
234
 
144
- loadData = async (queryKey: string, pageInfo: PageInfo, cleanCache?: boolean) => {
145
- this.setState({
146
- loading: true,
147
- })
148
- let {queryDataCache} = this.state;
235
+ getRowSelection = () => {
236
+ const {
237
+ columns,
238
+ onChangeRowSelection,
239
+ selectedRows,
240
+ maxSelectedRows,
241
+ primaryColumn,
242
+ } = this.props;
243
+ let { dataSource } = this.state;
244
+ let selectedRowKeys = [];
149
245
 
150
- let {serverKey}=this.props;
151
- let queryCache: Map<string, CacheData>;
152
- if (cleanCache || !queryDataCache) {
153
- queryCache = new Map<string, CacheData>();
154
- this.setState({total: undefined,})
155
- } else {
156
- queryCache = queryDataCache;
157
- }
158
- if (queryCache.has(pageInfo.pageNo + "_" + pageInfo.pageSize)) {
159
- let cacheData = queryCache.get(pageInfo.pageNo + "_" + pageInfo.pageSize);
160
- this.setState({
161
- dataSource: cacheData.dataSource,
162
- virtualEndPageNo: cacheData.pageInfo.virtualEndPageNo,
163
- loading: false,
164
- })
165
- } else {
166
- let queryData: QueryData = await HcserviceV3.requestQueryData(serverKey,queryKey, pageInfo);
167
- let dataSource: object[] = [];
168
- pageInfo = queryData.pageInfo;
169
- queryData.entities.forEach((item, index) => {
170
- let row = {
171
- key: item.code,
172
- code: item.code,//增加code,为了删除操作
173
- ...item.fieldMap,
174
- index,
175
- };
176
- dataSource.push(row);
177
- })
178
- let touchEnd = queryData.touchEnd;
179
- //缓存数据
180
- queryCache.set(pageInfo.pageNo + "_" + pageInfo.pageSize, {dataSource, pageInfo});
181
- this.setState({
182
- dataSource,
183
- virtualEndPageNo: pageInfo.virtualEndPageNo,
184
- queryDataCache: queryCache,
185
- touchEnd,
186
- loading: false,
187
- })
188
- }
246
+ for (let row of selectedRows) {
247
+ selectedRowKeys.push(row.code);
189
248
  }
190
-
191
- pageTo = async (pageNo: number, pageSize: number) => {
192
- const {onChangePage}=this.props
193
- const {virtualEndPageNo} = this.state;
194
- let pageInfo = {
195
- pageNo,
196
- pageSize: pageSize ? pageSize : 10,
197
- virtualEndPageNo,
198
- }
199
- const {queryKey} = this.props;
200
- await this.loadData(queryKey.key, pageInfo);
201
- onChangePage(pageNo,pageSize);
249
+ const allRowKeys: string[] = [];
250
+ if (dataSource) {
251
+ for (let d of dataSource) {
252
+ allRowKeys.push(d.code);
253
+ }
202
254
  }
203
-
204
- queryTotal = async () => {
205
- const {queryKey,serverKey} = this.props;
206
- let total = await HcserviceV3.requestQueryCount(serverKey,queryKey.key);
207
- this.setState({
208
- total
209
- });
255
+ if (maxSelectedRows == -1) {
256
+ return null;
210
257
  }
211
-
212
- getRowSelection = () => {
213
-
214
- const {columns, onChangeRowSelection, selectedRows, maxSelectedRows,primaryColumn} = this.props;
215
- let {dataSource} = this.state;
216
- let selectedRowKeys = [];
217
-
218
- for (let row of selectedRows) {
219
- selectedRowKeys.push(row.code);
220
- }
221
- const allRowKeys: string[] = [];
222
- if (dataSource) {
223
- for (let d of dataSource) {
224
- allRowKeys.push(d.code);
258
+ const rowSelection: TableRowSelection<any> = {
259
+ fixed: true,
260
+ type: maxSelectedRows == 1 ? "radio" : "checkbox",
261
+ selectedRowKeys,
262
+ onChange: (selectedRowKeys, selectedRows) => {
263
+ //console.log('selectedRowKeys:', selectedRowKeys);
264
+ // console.log('selectedRows:', selectedRows);
265
+ let selectedRows_: SelectedRow[] = [];
266
+ let selectedDatas: DtmplData[] = [];
267
+ let titleColId = primaryColumn?.id;
268
+ if (!titleColId) {
269
+ columns.forEach((col) => {
270
+ if (col.title != "序号" && titleColId == null) {
271
+ titleColId = col.dataIndex;
272
+ return;
225
273
  }
274
+ });
226
275
  }
227
- if (maxSelectedRows == -1) {
228
- return null;
229
- }
230
- const rowSelection: TableRowSelection<any> = {
231
- fixed: true,
232
- type: maxSelectedRows == 1 ? 'radio' : 'checkbox',
233
- selectedRowKeys,
234
- onChange: (selectedRowKeys, selectedRows) => {
235
- //console.log('selectedRowKeys:', selectedRowKeys);
236
- // console.log('selectedRows:', selectedRows);
237
- let selectedRows_: SelectedRow[] = [];
238
- let selectedDatas: DtmplData[] = [];
239
- let titleColId =primaryColumn?.id;
240
- if(!titleColId){
241
- columns.forEach((col) => {
242
- if (col.title != '序号' && titleColId == null) {
243
- titleColId = col.dataIndex;
244
- return;
245
- }
246
- })
247
- }
248
- selectedRows.forEach((item) => {
249
- selectedRows_.push({code: item['code'], title: item[titleColId]});
250
- selectedDatas.push(item);
251
- })
252
- if (onChangeRowSelection) {
253
- onChangeRowSelection(selectedRows_, selectedDatas, allRowKeys);
254
- }
255
- }
276
+ selectedRows.forEach((item) => {
277
+ selectedRows_.push({ code: item["code"], title: item[titleColId] });
278
+ selectedDatas.push(item);
279
+ });
280
+ if (onChangeRowSelection) {
281
+ onChangeRowSelection(selectedRows_, selectedDatas, allRowKeys);
256
282
  }
257
- return rowSelection;
258
-
259
- }
283
+ },
284
+ };
285
+ return rowSelection;
286
+ };
260
287
 
261
- getUnHidenDataSource = () => {
262
- const {dataSource} = this.state;
263
- const {hiddenRowCodes} = this.props;
264
- let ds: object[] = [];
265
- if (dataSource) {
266
- for (let d of dataSource) {
267
- if (!hiddenRowCodes.includes(d.code)) {
268
- ds.push(d);
269
- }
270
- }
288
+ getUnHidenDataSource = () => {
289
+ const { dataSource } = this.state;
290
+ const { hiddenRowCodes } = this.props;
291
+ let ds: object[] = [];
292
+ if (dataSource) {
293
+ for (let d of dataSource) {
294
+ if (!hiddenRowCodes.includes(d.code)) {
295
+ ds.push(d);
271
296
  }
272
- return ds;
297
+ }
273
298
  }
299
+ return ds;
300
+ };
274
301
 
275
- initViewList = (data) => {
276
- //console.log("data:",data);
277
- const {columns, columnConfigs,serverKey} = this.props
278
- const formItemList = [];
279
- if (columnConfigs.length > 0) {
280
- columnConfigs.forEach((item, index) => {
281
- if (item.id != '10000' && item.title != '操作' && item.id != '20000') {
282
- const title = item.title;
283
- let fieldValue = data ? data[item.id] : undefined;
284
- if (title == '序号') {
285
- fieldValue = data.index;
286
- }
287
- //fieldValue 没有值时不能为null 要为 undefined。antd input所限制
288
- fieldValue = fieldValue ? fieldValue : item.defaultValue ? item.defaultValue : undefined;
289
- const fieldKey = item.id + Math.random() * 100;
302
+ initViewList = (data) => {
303
+ //console.log("data:",data);
304
+ const { translate } = this.context;
305
+ const { columns, columnConfigs, serverKey } = this.props;
306
+ const formItemList = [];
307
+ if (columnConfigs.length > 0) {
308
+ columnConfigs.forEach((item, index) => {
309
+ if (item.id != "10000" && item.title != "操作" && item.id != "20000") {
310
+ const title = item.title;
311
+ let fieldValue = data ? data[item.id] : undefined;
312
+ if (title == "序号") {
313
+ fieldValue = data.index;
314
+ }
315
+ //fieldValue 没有值时不能为null 要为 undefined。antd input所限制
316
+ fieldValue = fieldValue
317
+ ? fieldValue
318
+ : item.defaultValue
319
+ ? item.defaultValue
320
+ : undefined;
321
+ const fieldKey = item.id + Math.random() * 100;
290
322
 
291
- const formItem = <Descriptions.Item label={item.title} key={index}
292
- className='labelcss'
293
- >
294
- <ViewControl serverKey={serverKey} holderType={'table'} value={fieldValue} fieldConfig={item}/>
295
- </Descriptions.Item>
296
- formItemList.push(formItem);
297
- }
298
- });
323
+ const formItem = (
324
+ <Descriptions.Item
325
+ label={translate("${" + item.title + "}")}
326
+ key={index}
327
+ className="labelcss"
328
+ >
329
+ <ViewControl
330
+ serverKey={serverKey}
331
+ holderType={"table"}
332
+ value={fieldValue}
333
+ fieldConfig={item}
334
+ />
335
+ </Descriptions.Item>
336
+ );
337
+ formItemList.push(formItem);
299
338
  }
300
- return formItemList;
301
-
339
+ });
302
340
  }
341
+ return formItemList;
342
+ };
303
343
 
304
- render() {
305
- const {pageInfo, columns, viewModels} = this.props;
306
- const {touchEnd, total, loading, virtualEndPageNo} = this.state;
307
- return (
308
- <>
309
- {viewModels.includes('table') ?
310
- <Table size={'middle'}
311
- rowSelection={this.getRowSelection()}
312
- columns={columns ? columns : []}
313
- dataSource={this.getUnHidenDataSource()}
314
- bordered
315
- pagination={false}
316
- style={{display: columns ? "block" : "none" }}
317
- loading={loading}
318
- components={{
319
- body: {
320
- wrapper: this.DraggableContainer,
321
- row: this.DraggableBodyRow,
322
- },
323
- }}
324
- >
325
- </Table>
326
- : ""}
327
- <Pagination touchEnd={touchEnd} pageInfo={{...pageInfo, virtualEndPageNo}} pageTo={this.pageTo}
328
- queryTotal={this.queryTotal}
329
- total={total}/>
330
- {viewModels.includes('verticalList') ?
331
- <Card style={{marginTop: '10px'}}>
332
- <List
333
- dataSource={this.getUnHidenDataSource()}
334
- renderItem={item => (
335
- <List.Item key={item['id']}>
336
- <Card size={'small'} bodyStyle={{padding: '4px'}}><Descriptions column={4}>
337
- {this.initViewList(item)}
338
- </Descriptions></Card>
339
- </List.Item>
340
- )}
341
- />
342
- </Card> : ""
343
- }
344
- </>
345
- );
346
- }
344
+ render() {
345
+ const { pageInfo, columns, viewModels } = this.props;
346
+ const { touchEnd, total, loading, virtualEndPageNo } = this.state;
347
347
 
348
+ return (
349
+ <>
350
+ {viewModels.includes("table") ? (
351
+ <Table
352
+ size={"middle"}
353
+ rowSelection={this.getRowSelection()}
354
+ columns={columns ? columns : []}
355
+ dataSource={this.getUnHidenDataSource()}
356
+ bordered
357
+ pagination={false}
358
+ style={{ display: columns ? "block" : "none" }}
359
+ loading={loading}
360
+ components={{
361
+ body: {
362
+ wrapper: this.DraggableContainer,
363
+ row: this.DraggableBodyRow,
364
+ },
365
+ }}
366
+ ></Table>
367
+ ) : (
368
+ ""
369
+ )}
370
+ <Pagination
371
+ touchEnd={touchEnd}
372
+ pageInfo={{ ...pageInfo, virtualEndPageNo }}
373
+ pageTo={this.pageTo}
374
+ queryTotal={this.queryTotal}
375
+ total={total}
376
+ />
377
+ {viewModels.includes("verticalList") ? (
378
+ <Card style={{ marginTop: "10px" }}>
379
+ <List
380
+ dataSource={this.getUnHidenDataSource()}
381
+ renderItem={(item) => (
382
+ <List.Item key={item["id"]}>
383
+ <Card size={"small"} bodyStyle={{ padding: "4px" }}>
384
+ <Descriptions column={4}>
385
+ {this.initViewList(item)}
386
+ </Descriptions>
387
+ </Card>
388
+ </List.Item>
389
+ )}
390
+ />
391
+ </Card>
392
+ ) : (
393
+ ""
394
+ )}
395
+ </>
396
+ );
397
+ }
348
398
  }
349
399
 
350
- export default QueryTable;
400
+ export default QueryTable;