aldehyde 0.2.255 → 0.2.258
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.
- package/dist/bundle.04a76d4f726f7257b62e.js +2 -0
- package/dist/bundle.04a76d4f726f7257b62e.js.LICENSE.txt +5 -0
- package/dist/bundle.04a76d4f726f7257b62e.js.gz +0 -0
- package/dist/bundle.0ba97fb9aed3256959a1.js +75 -0
- package/dist/bundle.0ba97fb9aed3256959a1.js.LICENSE.txt +8 -0
- package/dist/bundle.0ba97fb9aed3256959a1.js.gz +0 -0
- package/dist/bundle.0cdb895a99048cda0139.js +1 -0
- package/dist/bundle.0cdb895a99048cda0139.js.gz +0 -0
- package/dist/bundle.118048608e8ab47050ab.js +1 -0
- package/dist/bundle.118048608e8ab47050ab.js.gz +0 -0
- package/dist/bundle.22564bca4d0f6fbabf69.js +1 -0
- package/dist/bundle.22564bca4d0f6fbabf69.js.gz +0 -0
- package/dist/bundle.27227d2415dfad58bab4.js +1 -0
- package/dist/bundle.27227d2415dfad58bab4.js.gz +0 -0
- package/dist/bundle.334162ac2c2d6bf397cb.js +2 -0
- package/dist/bundle.334162ac2c2d6bf397cb.js.LICENSE.txt +20 -0
- package/dist/bundle.334162ac2c2d6bf397cb.js.gz +0 -0
- package/dist/bundle.3b6c5fe034cbb723c7f3.js +1 -0
- package/dist/bundle.3b6c5fe034cbb723c7f3.js.gz +0 -0
- package/dist/bundle.3f109b3f90f09c23e8d2.js +2 -0
- package/dist/bundle.3f109b3f90f09c23e8d2.js.LICENSE.txt +1 -0
- package/dist/bundle.3f109b3f90f09c23e8d2.js.gz +0 -0
- package/dist/bundle.420a3c4b880bec7c9395.js +2 -0
- package/dist/bundle.420a3c4b880bec7c9395.js.LICENSE.txt +25 -0
- package/dist/bundle.420a3c4b880bec7c9395.js.gz +0 -0
- package/dist/bundle.4b96ffe1f62e4f94c131.js +1 -0
- package/dist/bundle.4b96ffe1f62e4f94c131.js.gz +0 -0
- package/dist/bundle.4c54741832df8c763776.js +1 -0
- package/dist/bundle.4c54741832df8c763776.js.gz +0 -0
- package/dist/bundle.4e74b367562f2fcc557e.js +2 -0
- package/dist/bundle.4e74b367562f2fcc557e.js.LICENSE.txt +1 -0
- package/dist/bundle.4e74b367562f2fcc557e.js.gz +0 -0
- package/dist/bundle.51b107a74d3e9e38daaa.js +2 -0
- package/dist/bundle.51b107a74d3e9e38daaa.js.LICENSE.txt +10 -0
- package/dist/bundle.51b107a74d3e9e38daaa.js.gz +0 -0
- package/dist/bundle.548e656e773307824959.js +1 -0
- package/dist/bundle.548e656e773307824959.js.gz +0 -0
- package/dist/bundle.54b2a31d011f6c769e7c.js +1 -0
- package/dist/bundle.54b2a31d011f6c769e7c.js.gz +0 -0
- package/dist/bundle.593c12023e54a91e8a0b.js +1 -0
- package/dist/bundle.593c12023e54a91e8a0b.js.gz +0 -0
- package/dist/bundle.5ae6eceb7934e46e6d45.js +13 -0
- package/dist/bundle.5ae6eceb7934e46e6d45.js.gz +0 -0
- package/dist/bundle.5d22c4c1586e95424e26.js +1 -0
- package/dist/bundle.5d22c4c1586e95424e26.js.gz +0 -0
- package/dist/bundle.61f9eb72cb7b4666013c.js +2 -0
- package/dist/bundle.61f9eb72cb7b4666013c.js.LICENSE.txt +16 -0
- package/dist/bundle.61f9eb72cb7b4666013c.js.gz +0 -0
- package/dist/bundle.699d5561bf119bdb97fc.js +1 -0
- package/dist/bundle.699d5561bf119bdb97fc.js.gz +0 -0
- package/dist/bundle.6a7337d14083532e943d.js +2 -0
- package/dist/bundle.6a7337d14083532e943d.js.LICENSE.txt +9 -0
- package/dist/bundle.6a7337d14083532e943d.js.gz +0 -0
- package/dist/bundle.79831dc7a84e75f07975.js +2 -0
- package/dist/bundle.79831dc7a84e75f07975.js.LICENSE.txt +14 -0
- package/dist/bundle.79831dc7a84e75f07975.js.gz +0 -0
- package/dist/bundle.7dda8c43f58b4e01000d.js +1 -0
- package/dist/bundle.7dda8c43f58b4e01000d.js.gz +0 -0
- package/dist/bundle.84924d3443cdf0ef3a08.js +2 -0
- package/dist/bundle.84924d3443cdf0ef3a08.js.LICENSE.txt +5 -0
- package/dist/bundle.84924d3443cdf0ef3a08.js.gz +0 -0
- package/dist/bundle.866fb447979af51deaf0.js +2 -0
- package/dist/bundle.866fb447979af51deaf0.js.LICENSE.txt +17 -0
- package/dist/bundle.866fb447979af51deaf0.js.gz +0 -0
- package/dist/bundle.874b3f088098a51fe779.js +1 -0
- package/dist/bundle.874b3f088098a51fe779.js.gz +0 -0
- package/dist/bundle.8f008042855b35daf44f.js +1 -0
- package/dist/bundle.8f008042855b35daf44f.js.gz +0 -0
- package/dist/bundle.8fba396651ab9131e760.js +2 -0
- package/dist/bundle.8fba396651ab9131e760.js.LICENSE.txt +22 -0
- package/dist/bundle.8fba396651ab9131e760.js.gz +0 -0
- package/dist/bundle.a22410e1dd80ca8e1dad.js +1 -0
- package/dist/bundle.a22410e1dd80ca8e1dad.js.gz +0 -0
- package/dist/bundle.a26a56462550fc7dcb76.js +2 -0
- package/dist/bundle.a26a56462550fc7dcb76.js.LICENSE.txt +5 -0
- package/dist/bundle.a26a56462550fc7dcb76.js.gz +0 -0
- package/dist/bundle.b28c0f5f2d452df6637a.js +1 -0
- package/dist/bundle.b28c0f5f2d452df6637a.js.gz +0 -0
- package/dist/bundle.b59913b5eca7fc9cf658.js +2 -0
- package/dist/bundle.b59913b5eca7fc9cf658.js.LICENSE.txt +50 -0
- package/dist/bundle.b59913b5eca7fc9cf658.js.gz +0 -0
- package/dist/bundle.b5d9f43fb90d9c6b39a9.js +2 -0
- package/dist/bundle.b5d9f43fb90d9c6b39a9.js.LICENSE.txt +8 -0
- package/dist/bundle.b5d9f43fb90d9c6b39a9.js.gz +0 -0
- package/dist/bundle.c987651cbacb95e92e9a.js +1 -0
- package/dist/bundle.c987651cbacb95e92e9a.js.gz +0 -0
- package/dist/bundle.d67ab9f0b5662beefec1.js +2 -0
- package/dist/bundle.d67ab9f0b5662beefec1.js.LICENSE.txt +9 -0
- package/dist/bundle.d67ab9f0b5662beefec1.js.gz +0 -0
- package/dist/bundle.df15389f0df80bb5c1f8.js +2 -0
- package/dist/bundle.df15389f0df80bb5c1f8.js.LICENSE.txt +8 -0
- package/dist/bundle.df15389f0df80bb5c1f8.js.gz +0 -0
- package/dist/bundle.e9df92a889fa6911eb3a.js +1 -0
- package/dist/bundle.ebe7ebdb4845f80a5dd4.js +2 -0
- package/dist/bundle.ebe7ebdb4845f80a5dd4.js.LICENSE.txt +7 -0
- package/dist/bundle.ebe7ebdb4845f80a5dd4.js.gz +0 -0
- package/dist/bundle.f4c743816a267bced7bb.js +1 -0
- package/dist/bundle.f4c743816a267bced7bb.js.gz +0 -0
- package/dist/bundle.f6fe12d30504559f5f27.js +2 -0
- package/dist/bundle.f6fe12d30504559f5f27.js.LICENSE.txt +6 -0
- package/dist/bundle.f6fe12d30504559f5f27.js.gz +0 -0
- package/dist/css/chemstruc-graph-3996ceb0836a84cd2d4f.css +12 -0
- package/dist/css/chemstruc-graph-3996ceb0836a84cd2d4f.css.gz +0 -0
- package/dist/css/common-4fdc190a7145b69314ce.css +56 -0
- package/dist/css/html-editor-draft-5e8e152675ab7d201c00.css +886 -0
- package/dist/css/html-editor-draft-5e8e152675ab7d201c00.css.gz +0 -0
- package/dist/css/main-d4de6792432b484dddeb.css +1169 -0
- package/dist/css/main-d4de6792432b484dddeb.css.gz +0 -0
- package/dist/images/login-bg-027de94b.png +0 -0
- package/dist/images/welcome-8bf57aea.png +0 -0
- package/dist/index.html +4 -0
- package/lib/detail/view/dtmpl-view.d.ts +1 -0
- package/lib/detail/view/dtmpl-view.d.ts.map +1 -1
- package/lib/detail/view/dtmpl-view.js +5 -4
- package/lib/detail/view/dtmpl-view.js.map +1 -1
- package/lib/detail/view/field-view-group.d.ts +4 -0
- package/lib/detail/view/field-view-group.d.ts.map +1 -1
- package/lib/detail/view/field-view-group.js +5 -1
- package/lib/detail/view/field-view-group.js.map +1 -1
- package/lib/detail/view/snapshot-timeline.d.ts +12 -5
- package/lib/detail/view/snapshot-timeline.d.ts.map +1 -1
- package/lib/detail/view/snapshot-timeline.js +53 -14
- package/lib/detail/view/snapshot-timeline.js.map +1 -1
- package/lib/detail/view/view-compare-panel.d.ts +17 -0
- package/lib/detail/view/view-compare-panel.d.ts.map +1 -0
- package/lib/detail/view/view-compare-panel.js +21 -0
- package/lib/detail/view/view-compare-panel.js.map +1 -0
- package/lib/form/criteria-form.js +1 -1
- package/lib/form/criteria-form.js.map +1 -1
- package/lib/layout/footer/index.js +1 -1
- package/lib/layout/footer/index.js.map +1 -1
- package/lib/layout2/header.d.ts +1 -2
- package/lib/layout2/header.d.ts.map +1 -1
- package/lib/layout2/header.js.map +1 -1
- package/lib/layout2/main.d.ts +1 -2
- package/lib/layout2/main.d.ts.map +1 -1
- package/lib/layout2/page.d.ts.map +1 -1
- package/lib/layout2/page.js +1 -1
- package/lib/layout2/page.js.map +1 -1
- package/lib/module/ltmpl-table.js +2 -1
- package/lib/module/ltmpl-table.js.map +1 -1
- package/lib/table/column/column-builder.d.ts.map +1 -1
- package/lib/table/column/column-builder.js +3 -0
- package/lib/table/column/column-builder.js.map +1 -1
- package/lib/table/index.css +14 -0
- package/lib/table/query-table.d.ts.map +1 -1
- package/lib/table/query-table.js +15 -14
- package/lib/table/query-table.js.map +1 -1
- package/lib/table/resizable-table.d.ts +5 -0
- package/lib/table/resizable-table.d.ts.map +1 -0
- package/lib/table/resizable-table.js +85 -0
- package/lib/table/resizable-table.js.map +1 -0
- package/lib/tmpl/interface.d.ts +1 -1
- package/lib/tmpl/interface.d.ts.map +1 -1
- package/package.json +5 -2
- package/src/aldehyde/detail/view/dtmpl-view.tsx +5 -4
- package/src/aldehyde/detail/view/field-view-group.tsx +6 -1
- package/src/aldehyde/detail/view/snapshot-timeline.tsx +81 -26
- package/src/aldehyde/detail/view/view-compare-panel.tsx +57 -0
- package/src/aldehyde/form/criteria-form.tsx +1 -1
- package/src/aldehyde/layout/footer/index.js +1 -1
- package/src/aldehyde/layout2/header.tsx +2 -3
- package/src/aldehyde/layout2/main.tsx +1 -1
- package/src/aldehyde/layout2/page.tsx +2 -1
- package/src/aldehyde/module/ltmpl-table.tsx +1 -1
- package/src/aldehyde/table/column/column-builder.tsx +3 -2
- package/src/aldehyde/table/index.css +14 -0
- package/src/aldehyde/table/query-table.tsx +74 -50
- package/src/aldehyde/table/resizable-table.tsx +96 -0
- package/src/aldehyde/tmpl/interface.tsx +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aldehyde",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.258",
|
|
4
4
|
"author": "cosmicparticle",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "src/aldehyde/index.txs",
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"@emotion/react": "^11.11.1",
|
|
30
30
|
"@emotion/styled": "^11.11.0",
|
|
31
31
|
"@tinymce/tinymce-react": "^3.12.2",
|
|
32
|
+
"@types/react-resizable": "^3.0.8",
|
|
32
33
|
"add": "^2.0.6",
|
|
33
34
|
"ahooks": "^3.8.5",
|
|
34
35
|
"antd": "^5.25.0",
|
|
@@ -84,12 +85,14 @@
|
|
|
84
85
|
"react-document-title": "^2.0.3",
|
|
85
86
|
"react-dom": "^18.2.0",
|
|
86
87
|
"react-draft-wysiwyg": "^1.15.0",
|
|
88
|
+
"react-draggable": "^4.4.6",
|
|
87
89
|
"react-error-overlay": "^6.0.10",
|
|
88
90
|
"react-file-viewer": "^1.2.1",
|
|
89
91
|
"react-highlight-words": "^0.16.0",
|
|
90
92
|
"react-load-script": "^0.0.6",
|
|
91
93
|
"react-loadable": "^5.5.0",
|
|
92
94
|
"react-markdown": "^8.0.4",
|
|
95
|
+
"react-resizable": "^3.0.5",
|
|
93
96
|
"react-router-dom": "^6.10.0",
|
|
94
97
|
"react-signature-canvas": "^1.0.5",
|
|
95
98
|
"react-sortable-hoc": "^2.0.0",
|
|
@@ -151,7 +154,7 @@
|
|
|
151
154
|
"@loadable/webpack-plugin": "^5.15.0",
|
|
152
155
|
"@svgr/webpack": "^2.4.1",
|
|
153
156
|
"@types/node": "^20.10.4",
|
|
154
|
-
"@types/react": "^
|
|
157
|
+
"@types/react": "^19.1.8",
|
|
155
158
|
"@types/react-dom": "^18.2.17",
|
|
156
159
|
"@types/webpack": "^5.28.0",
|
|
157
160
|
"autoprefixer": "^10.4.2",
|
|
@@ -36,6 +36,7 @@ export interface DtmplViewStat {
|
|
|
36
36
|
class DtmplView extends React.PureComponent<DtmplViewProps, DtmplViewStat> {
|
|
37
37
|
static defaultProps = {
|
|
38
38
|
showRightNav: true,
|
|
39
|
+
maxColsOnRow:2,
|
|
39
40
|
};
|
|
40
41
|
|
|
41
42
|
state = {
|
|
@@ -110,7 +111,7 @@ class DtmplView extends React.PureComponent<DtmplViewProps, DtmplViewStat> {
|
|
|
110
111
|
serverKey,
|
|
111
112
|
mainCode,
|
|
112
113
|
showRightNav,
|
|
113
|
-
parentId,
|
|
114
|
+
parentId,maxColsOnRow,
|
|
114
115
|
} = this.props;
|
|
115
116
|
const { dtmplData, loading, id } = this.state;
|
|
116
117
|
let groups: FieldGroupConfig[] = [];
|
|
@@ -243,7 +244,7 @@ class DtmplView extends React.PureComponent<DtmplViewProps, DtmplViewStat> {
|
|
|
243
244
|
headStyle={{ background: "#f2f4f5" }}
|
|
244
245
|
loading={loading}
|
|
245
246
|
>
|
|
246
|
-
<FieldViewGroup dataCode={dtmplData ? dtmplData.code:null}
|
|
247
|
+
<FieldViewGroup column={maxColsOnRow} dataCode={dtmplData ? dtmplData.code:null}
|
|
247
248
|
serverKey={serverKey}
|
|
248
249
|
fields={item.fields}
|
|
249
250
|
valueMap={dtmplData ? dtmplData.fieldMap : undefined}
|
|
@@ -262,7 +263,7 @@ class DtmplView extends React.PureComponent<DtmplViewProps, DtmplViewStat> {
|
|
|
262
263
|
code,
|
|
263
264
|
sourceId,
|
|
264
265
|
dtmplConfig,
|
|
265
|
-
serverKey,
|
|
266
|
+
serverKey,maxColsOnRow,
|
|
266
267
|
} = this.props;
|
|
267
268
|
const {
|
|
268
269
|
premisesTitle,
|
|
@@ -289,7 +290,7 @@ class DtmplView extends React.PureComponent<DtmplViewProps, DtmplViewStat> {
|
|
|
289
290
|
headStyle={{ background: "#f2f4f5" }}
|
|
290
291
|
loading={loading}
|
|
291
292
|
>
|
|
292
|
-
<FieldViewGroup serverKey={serverKey} fields={premises} />
|
|
293
|
+
<FieldViewGroup column={maxColsOnRow} serverKey={serverKey} fields={premises} />
|
|
293
294
|
</CollapseCard>
|
|
294
295
|
) : (
|
|
295
296
|
""
|
|
@@ -10,6 +10,7 @@ interface FieldViewGroupProps {
|
|
|
10
10
|
valueMap?: object;
|
|
11
11
|
width?: number;
|
|
12
12
|
dataCode?: string;
|
|
13
|
+
column?: number;
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
interface FieldViewGroupState {
|
|
@@ -26,6 +27,9 @@ export default class FieldViewGroup extends React.PureComponent<
|
|
|
26
27
|
fileList: [],
|
|
27
28
|
};
|
|
28
29
|
}
|
|
30
|
+
static defaultProps = {
|
|
31
|
+
column: 2,
|
|
32
|
+
};
|
|
29
33
|
static contextType = LocaleContext;
|
|
30
34
|
context: React.ContextType<typeof LocaleContext>;
|
|
31
35
|
|
|
@@ -78,6 +82,7 @@ export default class FieldViewGroup extends React.PureComponent<
|
|
|
78
82
|
};
|
|
79
83
|
|
|
80
84
|
render() {
|
|
81
|
-
|
|
85
|
+
const {column} = this.props;
|
|
86
|
+
return <Descriptions column={column} >{this.initViewList()}</Descriptions>;
|
|
82
87
|
}
|
|
83
88
|
}
|
|
@@ -4,23 +4,25 @@ import HcserviceV3 from "../../tmpl/hcservice-v3";
|
|
|
4
4
|
import "../dtmpl.css";
|
|
5
5
|
import { DtmplConfig } from "../../tmpl/interface";
|
|
6
6
|
import Units from "../../units";
|
|
7
|
-
import DtmplView from "./dtmpl-view";
|
|
8
7
|
import { LocaleContext } from "../../locale/LocaleProvider";
|
|
8
|
+
import ViewComparePanel, {ViewComparData} from "./view-compare-panel";
|
|
9
|
+
|
|
10
|
+
type SnapshotType={code:number,time:string,userName:string};
|
|
9
11
|
|
|
10
12
|
export interface SnapshotTimelineProps {
|
|
11
13
|
sourceId: string;
|
|
12
14
|
serverKey?: string;
|
|
13
15
|
code: string;
|
|
14
|
-
showSnapshot?: (
|
|
16
|
+
showSnapshot?: () => void;
|
|
15
17
|
onClose: () => void;
|
|
16
18
|
open: boolean;
|
|
17
19
|
dtmplConfig: DtmplConfig;
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
export interface SnapshotTimelineStat {
|
|
21
|
-
list?:
|
|
23
|
+
list?: SnapshotType[];
|
|
22
24
|
loading?: boolean;
|
|
23
|
-
|
|
25
|
+
currents?: SnapshotType[];
|
|
24
26
|
}
|
|
25
27
|
|
|
26
28
|
class SnapshotTimeline extends React.PureComponent<
|
|
@@ -32,7 +34,7 @@ class SnapshotTimeline extends React.PureComponent<
|
|
|
32
34
|
state = {
|
|
33
35
|
list: undefined,
|
|
34
36
|
loading: false,
|
|
35
|
-
|
|
37
|
+
currents: [],
|
|
36
38
|
};
|
|
37
39
|
static contextType = LocaleContext;
|
|
38
40
|
context: React.ContextType<typeof LocaleContext>;
|
|
@@ -48,8 +50,8 @@ class SnapshotTimeline extends React.PureComponent<
|
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
loadData = async () => {
|
|
51
|
-
const { sourceId, code,
|
|
52
|
-
const {
|
|
53
|
+
const { sourceId, code, serverKey } = this.props;
|
|
54
|
+
const { currents } = this.state;
|
|
53
55
|
if (code) {
|
|
54
56
|
this.setState({
|
|
55
57
|
loading: true,
|
|
@@ -59,29 +61,69 @@ class SnapshotTimeline extends React.PureComponent<
|
|
|
59
61
|
sourceId,
|
|
60
62
|
code
|
|
61
63
|
);
|
|
64
|
+
if(currents.length==0 && list.length > 0){
|
|
65
|
+
this.onAdd(list[0]);
|
|
66
|
+
}
|
|
67
|
+
|
|
62
68
|
this.setState({
|
|
63
69
|
list,
|
|
64
|
-
current: !current && list.length > 0 ? list[0].code : current,
|
|
65
70
|
loading: false,
|
|
66
71
|
});
|
|
67
72
|
}
|
|
68
73
|
};
|
|
69
74
|
|
|
70
|
-
onChange = (
|
|
75
|
+
// onChange = (versionId: number) => {
|
|
76
|
+
// const { showSnapshot } = this.props;
|
|
77
|
+
// this.setState({
|
|
78
|
+
// current: versionId,
|
|
79
|
+
// });
|
|
80
|
+
// showSnapshot(versionId);
|
|
81
|
+
// };
|
|
82
|
+
onAdd = (item: SnapshotType) => {
|
|
83
|
+
const { showSnapshot } = this.props;
|
|
84
|
+
const { currents } = this.state;
|
|
85
|
+
if(!this.isCurrent(item,currents)){
|
|
86
|
+
this.setState({
|
|
87
|
+
currents: [...currents,item],
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// showSnapshot();
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
onRemove = (item: SnapshotType) => {
|
|
71
95
|
const { showSnapshot } = this.props;
|
|
96
|
+
const { currents } = this.state;
|
|
97
|
+
|
|
98
|
+
let list:SnapshotType[]=[];
|
|
99
|
+
for (const c of currents) {
|
|
100
|
+
if(c.code!=item.code) {
|
|
101
|
+
list.push(c);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
72
105
|
this.setState({
|
|
73
|
-
|
|
106
|
+
currents: [...list],
|
|
74
107
|
});
|
|
75
|
-
|
|
108
|
+
// showSnapshot();
|
|
76
109
|
};
|
|
77
110
|
|
|
111
|
+
isCurrent=(item:SnapshotType,currents:SnapshotType[]) => {
|
|
112
|
+
for (const c of currents) {
|
|
113
|
+
if(c.code==item.code) {
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
|
|
78
120
|
detailHistory = () => {
|
|
79
|
-
const { list,
|
|
121
|
+
const { list, currents } = this.state;
|
|
80
122
|
const { translate } = this.context;
|
|
81
123
|
let detailHistory;
|
|
82
124
|
if (list.length > 0) {
|
|
83
125
|
detailHistory = list.map((item, index) => {
|
|
84
|
-
const isCurrentItem =
|
|
126
|
+
const isCurrentItem =this.isCurrent(item,currents);
|
|
85
127
|
const color = isCurrentItem ? "red" : "blue";
|
|
86
128
|
return (
|
|
87
129
|
<Timeline.Item color={color} key={index}>
|
|
@@ -89,13 +131,19 @@ class SnapshotTimeline extends React.PureComponent<
|
|
|
89
131
|
<br />
|
|
90
132
|
{`` + item.userName}
|
|
91
133
|
{isCurrentItem ? (
|
|
92
|
-
|
|
134
|
+
<Button
|
|
135
|
+
style={{ marginLeft: 10 }}
|
|
136
|
+
size="small"
|
|
137
|
+
onClick={() => this.onRemove(item)}
|
|
138
|
+
>
|
|
139
|
+
{translate("${取消查看}")}
|
|
140
|
+
</Button>
|
|
93
141
|
) : (
|
|
94
142
|
<Button
|
|
95
143
|
style={{ marginLeft: 10 }}
|
|
96
144
|
type="primary"
|
|
97
145
|
size="small"
|
|
98
|
-
onClick={() => this.
|
|
146
|
+
onClick={() => this.onAdd(item)}
|
|
99
147
|
>
|
|
100
148
|
{translate("${查看}")}
|
|
101
149
|
</Button>
|
|
@@ -103,7 +151,6 @@ class SnapshotTimeline extends React.PureComponent<
|
|
|
103
151
|
</Timeline.Item>
|
|
104
152
|
);
|
|
105
153
|
});
|
|
106
|
-
|
|
107
154
|
return detailHistory;
|
|
108
155
|
}
|
|
109
156
|
};
|
|
@@ -117,9 +164,15 @@ class SnapshotTimeline extends React.PureComponent<
|
|
|
117
164
|
code,
|
|
118
165
|
serverKey,
|
|
119
166
|
} = this.props;
|
|
120
|
-
const { list,
|
|
167
|
+
const { list, currents} = this.state;
|
|
121
168
|
const { translate } = this.context;
|
|
122
169
|
|
|
170
|
+
let viewDatas: ViewComparData[]=[];
|
|
171
|
+
currents.sort((a, b) => b.time - a.time);
|
|
172
|
+
for (const c of currents) {
|
|
173
|
+
viewDatas.push({code,versionId: c.code, time: c.time,userName:c.userName});
|
|
174
|
+
}
|
|
175
|
+
|
|
123
176
|
return (
|
|
124
177
|
<>
|
|
125
178
|
<Drawer
|
|
@@ -135,7 +188,7 @@ class SnapshotTimeline extends React.PureComponent<
|
|
|
135
188
|
translate("${暂无历史记录}")
|
|
136
189
|
)}
|
|
137
190
|
</Drawer>
|
|
138
|
-
<Drawer
|
|
191
|
+
<Drawer key={translate("${快照查看}")}
|
|
139
192
|
placement={"left"}
|
|
140
193
|
title={translate("${快照查看}")}
|
|
141
194
|
closable={true}
|
|
@@ -143,18 +196,20 @@ class SnapshotTimeline extends React.PureComponent<
|
|
|
143
196
|
onClose={onClose}
|
|
144
197
|
open={open}
|
|
145
198
|
width={"calc(100% - 380px)"}
|
|
199
|
+
styles={{body:{padding:"6px 24px 6px 24px"}}}
|
|
146
200
|
style={{
|
|
147
201
|
maxWidth: 1960,
|
|
148
202
|
}}
|
|
149
203
|
>
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
204
|
+
{/*<DtmplView*/}
|
|
205
|
+
{/* serverKey={serverKey}*/}
|
|
206
|
+
{/* showRightNav={false}*/}
|
|
207
|
+
{/* dtmplConfig={dtmplConfig}*/}
|
|
208
|
+
{/* sourceId={sourceId}*/}
|
|
209
|
+
{/* code={code}*/}
|
|
210
|
+
{/* versionId={current}*/}
|
|
211
|
+
{/*></DtmplView>*/}
|
|
212
|
+
<ViewComparePanel serverKey={serverKey} dtmplConfig={dtmplConfig} sourceId={sourceId} data={viewDatas}></ViewComparePanel>
|
|
158
213
|
</Drawer>
|
|
159
214
|
</>
|
|
160
215
|
);
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Card, Splitter} from "antd";
|
|
2
|
+
import React, { useEffect, useState } from "react";
|
|
3
|
+
import {DtmplConfig} from "../../tmpl/interface";
|
|
4
|
+
import DtmplView from "./dtmpl-view";
|
|
5
|
+
import Units from "../../units";
|
|
6
|
+
|
|
7
|
+
export type ViewComparData={
|
|
8
|
+
code: string,
|
|
9
|
+
versionId?: number,
|
|
10
|
+
time:string,
|
|
11
|
+
userName?: string,
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
type ViewComparePanelProp = {
|
|
15
|
+
serverKey?:string;
|
|
16
|
+
dtmplConfig:DtmplConfig,
|
|
17
|
+
sourceId:string,
|
|
18
|
+
data?:ViewComparData[]
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
const ViewComparePanel = (props: ViewComparePanelProp) => {
|
|
24
|
+
// button
|
|
25
|
+
const {serverKey,
|
|
26
|
+
dtmplConfig,
|
|
27
|
+
sourceId,data}=props;
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
return (
|
|
32
|
+
<>
|
|
33
|
+
<Card styles={{body:{padding:'0px'}}} style={{width:data && data.length>1? 500*data.length:'100%'}}>
|
|
34
|
+
<div style={{whiteSpace: 'nowrap',
|
|
35
|
+
overflowX: 'auto'}}>
|
|
36
|
+
<Splitter >
|
|
37
|
+
{data?
|
|
38
|
+
data.map((d)=>{
|
|
39
|
+
return <Splitter.Panel >
|
|
40
|
+
<Card title={d.userName+ ":" + Units.formateDate(d.time)} style={{minWidth:'400px'}}>
|
|
41
|
+
<DtmplView maxColsOnRow={data && data.length>1?1:2}
|
|
42
|
+
serverKey={serverKey}
|
|
43
|
+
showRightNav={false}
|
|
44
|
+
dtmplConfig={dtmplConfig}
|
|
45
|
+
sourceId={sourceId}
|
|
46
|
+
code={d.code}
|
|
47
|
+
versionId={d.versionId}
|
|
48
|
+
></DtmplView> </Card></Splitter.Panel>
|
|
49
|
+
}) :null}
|
|
50
|
+
</Splitter>
|
|
51
|
+
</div>
|
|
52
|
+
</Card>
|
|
53
|
+
</>
|
|
54
|
+
);
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export default ViewComparePanel;
|
|
@@ -10,7 +10,7 @@ export default class Footer extends React.Component {
|
|
|
10
10
|
return (
|
|
11
11
|
<AntdFooter style={{textAlign: 'center'}}>
|
|
12
12
|
<div className="footer">
|
|
13
|
-
{content?content:"Enterprise Applications ©2022 Created by 旷识科技"}
|
|
13
|
+
{/*{content?content:"Enterprise Applications ©2022 Created by 旷识科技"}*/}
|
|
14
14
|
</div>
|
|
15
15
|
</AntdFooter>
|
|
16
16
|
)
|
|
@@ -22,14 +22,13 @@ import {
|
|
|
22
22
|
import { useLocale } from "../locale/useLocale";
|
|
23
23
|
import { generate } from "@ant-design/colors";
|
|
24
24
|
import { useLayoutContext } from "./layout-context";
|
|
25
|
-
|
|
26
|
-
import {AppstoreOutlined, DesktopOutlined, MacCommandOutlined, SettingOutlined} from "@ant-design/icons";
|
|
25
|
+
|
|
27
26
|
import Units from "../units";
|
|
28
27
|
|
|
29
28
|
type HeaderPropsType = {
|
|
30
29
|
systemName: string;
|
|
31
30
|
menuList: MenuType[];
|
|
32
|
-
style?:
|
|
31
|
+
style?: any;
|
|
33
32
|
};
|
|
34
33
|
|
|
35
34
|
type MenuItem = Required<MenuProps>["items"][number];
|
|
@@ -188,7 +188,8 @@ const Page: React.FC<PagePropsType> = (props: PagePropsType) => {
|
|
|
188
188
|
}, []);
|
|
189
189
|
|
|
190
190
|
// page ref
|
|
191
|
-
const pageRef = useRef<HTMLDivElement>();
|
|
191
|
+
const pageRef = useRef<HTMLDivElement>(undefined);
|
|
192
|
+
|
|
192
193
|
useEffect(() => {
|
|
193
194
|
useVarCssColor(generate(colorPrimary));
|
|
194
195
|
}, []);
|
|
@@ -106,7 +106,7 @@ class LtmplTable extends React.PureComponent<LtmplTableProps, LtmplTableState> {
|
|
|
106
106
|
//提取 过滤条件的默认值
|
|
107
107
|
if (ltmplConfigRes) {
|
|
108
108
|
let defaultCriteriaValue =
|
|
109
|
-
ltmplConfigRes.ltmplConfig
|
|
109
|
+
ltmplConfigRes.ltmplConfig?.defaultCriteriaValue;
|
|
110
110
|
if (defaultCriteriaValue) {
|
|
111
111
|
criteriaData = this.toCriteriaData(defaultCriteriaValue);
|
|
112
112
|
}
|
|
@@ -77,6 +77,7 @@ export default {
|
|
|
77
77
|
}
|
|
78
78
|
column["title"] = item.title;
|
|
79
79
|
column["dataIndex"] = item.id;
|
|
80
|
+
column["key"] = item.id;
|
|
80
81
|
if (item["colWidth"]) column["width"] = item["colWidth"];
|
|
81
82
|
if (item["statColType"]) column["statColType"] = item["statColType"];
|
|
82
83
|
if (item["aggFunc"]) column["cal"] = item["aggFunc"];
|
|
@@ -91,7 +92,6 @@ export default {
|
|
|
91
92
|
TableUnits.sort(column, itemType, order);
|
|
92
93
|
}
|
|
93
94
|
}
|
|
94
|
-
|
|
95
95
|
}
|
|
96
96
|
//特殊列处理
|
|
97
97
|
//序号
|
|
@@ -161,10 +161,10 @@ export default {
|
|
|
161
161
|
);
|
|
162
162
|
column["width"] = 40;
|
|
163
163
|
column["dataIndex"] = item.id;
|
|
164
|
+
column["key"] = item.id;
|
|
164
165
|
column["className"] = "drag-visible";
|
|
165
166
|
column["render"] = () => <DragHandle/>;
|
|
166
167
|
},
|
|
167
|
-
|
|
168
168
|
setHiddenRecordOpt(column:object,hiddenRowCodes,unHiden,onHide,translate){
|
|
169
169
|
//隐藏
|
|
170
170
|
column["align"] = "center";
|
|
@@ -236,6 +236,7 @@ export default {
|
|
|
236
236
|
|
|
237
237
|
column["title"] = item.title;
|
|
238
238
|
column["dataIndex"] = item.id;
|
|
239
|
+
column["key"] = item.id;
|
|
239
240
|
if (item["colWidth"]) column["width"] = item["colWidth"];
|
|
240
241
|
if (item["order"]) column["order"] = Number(item["order"]);
|
|
241
242
|
// column['ellipsis']= true;
|
|
@@ -22,6 +22,20 @@
|
|
|
22
22
|
z-index: 3; /* 或者更高的值 */
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
.react-resizable {
|
|
26
|
+
position: relative;
|
|
27
|
+
background-clip: padding-box;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.react-resizable-handle {
|
|
31
|
+
position: absolute;
|
|
32
|
+
width: 10px;
|
|
33
|
+
height: 100%;
|
|
34
|
+
bottom: 0;
|
|
35
|
+
right: -5px;
|
|
36
|
+
cursor: col-resize;
|
|
37
|
+
z-index: 1;
|
|
38
|
+
}
|
|
25
39
|
|
|
26
40
|
.row-dragging {
|
|
27
41
|
background: #fafafa;
|
|
@@ -15,9 +15,10 @@ import { LocaleContext } from "../locale/LocaleProvider";
|
|
|
15
15
|
import { init, merge, statistic } from "../utils/dsu";
|
|
16
16
|
import VerticalList from "../list/vertical-list";
|
|
17
17
|
import SummaryBuilder from "./column/summary-builder";
|
|
18
|
-
import {Button, Card, Descriptions, message,
|
|
18
|
+
import {Button, Card, Descriptions, message, Statistic, Table} from "antd";
|
|
19
19
|
import Units from "../units";
|
|
20
20
|
import {DownOutlined, UpOutlined} from "@ant-design/icons";
|
|
21
|
+
import ResizableTable from "./resizable-table";
|
|
21
22
|
|
|
22
23
|
const SortableItem = SortableElement((props) => (
|
|
23
24
|
<tr className="sortable-item-hover" {...props} />
|
|
@@ -358,33 +359,33 @@ class QueryTable extends React.PureComponent<QueryTableProps, QueryTableStat> {
|
|
|
358
359
|
onChange(pagination, filters, sorter, extra) {
|
|
359
360
|
console.log("params", pagination, filters, sorter, extra);
|
|
360
361
|
if (extra.action === "sort") {
|
|
362
|
+
|
|
361
363
|
const extParams: Record<string, string> = {};
|
|
362
364
|
const sortColumnData = JSON.parse(
|
|
363
365
|
JSON.stringify(this.props.sortColumnData)
|
|
364
366
|
);
|
|
365
367
|
|
|
366
|
-
const tgt = sortColumnData.findIndex((item) => {
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
}
|
|
368
|
+
// const tgt = sortColumnData.findIndex((item) => {
|
|
369
|
+
// const key = item.split("_")[0];
|
|
370
|
+
// if (key === sorter.field) return true;
|
|
371
|
+
// return false;
|
|
372
|
+
// });
|
|
373
|
+
//
|
|
374
|
+
// if (tgt !== -1) {
|
|
375
|
+
// sortColumnData.splice(tgt, 1);
|
|
376
|
+
// }
|
|
376
377
|
|
|
377
|
-
|
|
378
|
+
if (sorter.order === "ascend") {
|
|
378
379
|
Object.assign(extParams, {
|
|
379
|
-
sortColIds: [
|
|
380
|
+
sortColIds: [ sorter.field + "_" + "asc"],
|
|
380
381
|
});
|
|
381
382
|
} else if (sorter.order === "descend") {
|
|
382
383
|
Object.assign(extParams, {
|
|
383
|
-
sortColIds: [
|
|
384
|
+
sortColIds: [ sorter.field + "_" + "desc"],
|
|
384
385
|
});
|
|
385
386
|
} else {
|
|
386
387
|
Object.assign(extParams, {
|
|
387
|
-
sortColIds: [
|
|
388
|
+
sortColIds: [],
|
|
388
389
|
});
|
|
389
390
|
}
|
|
390
391
|
this.props.doSearch(extParams);
|
|
@@ -550,14 +551,6 @@ class QueryTable extends React.PureComponent<QueryTableProps, QueryTableStat> {
|
|
|
550
551
|
|
|
551
552
|
return (
|
|
552
553
|
<>
|
|
553
|
-
{/*{aggregateVO && aggregateVO.aggregates && aggregateVO.aggregates.length>0?<Card styles={{body:{padding:2}}}>*/}
|
|
554
|
-
{/* <Space size={"large"} style={{marginLeft:50}}>*/}
|
|
555
|
-
{/* {*/}
|
|
556
|
-
{/* aggregateVO.aggregates.map(av=>{*/}
|
|
557
|
-
{/* return <Statistic title={av.fieldTitle} value={av.value} />*/}
|
|
558
|
-
{/* })}*/}
|
|
559
|
-
{/* </Space>*/}
|
|
560
|
-
{/*</Card>:null}*/}
|
|
561
554
|
{aggregateVO && aggregateVO.aggregates && aggregateVO.aggregates.length>0 ?
|
|
562
555
|
<Card variant="borderless" styles={{body:{paddingLeft:10,paddingTop:4,paddingBottom:4,paddingRight:10}}}>
|
|
563
556
|
<Descriptions
|
|
@@ -565,35 +558,66 @@ class QueryTable extends React.PureComponent<QueryTableProps, QueryTableStat> {
|
|
|
565
558
|
items={aggregateItems}
|
|
566
559
|
/>
|
|
567
560
|
</Card>:null}
|
|
561
|
+
{/*{viewModels.includes("table") ? (*/}
|
|
562
|
+
{/* <Table*/}
|
|
563
|
+
{/* size={tableProps.size ? tableProps.size : undefined}*/}
|
|
564
|
+
{/* rowSelection={this.getRowSelection()}*/}
|
|
565
|
+
{/* columns={current_cols}*/}
|
|
566
|
+
{/* dataSource={originData}*/}
|
|
567
|
+
{/* scroll={*/}
|
|
568
|
+
{/* tableProps.scrollY == -1 || tableProps.scrollY == 0*/}
|
|
569
|
+
{/* ? null*/}
|
|
570
|
+
{/* : {*/}
|
|
571
|
+
{/* y: tableProps.scrollY,*/}
|
|
572
|
+
{/* x: table_x,*/}
|
|
573
|
+
{/* }*/}
|
|
574
|
+
{/* }*/}
|
|
575
|
+
{/* bordered*/}
|
|
576
|
+
{/* pagination={false}*/}
|
|
577
|
+
{/* style={{ display: columns ? "block" : "none" }}*/}
|
|
578
|
+
{/* summary={summary}*/}
|
|
579
|
+
{/* loading={loading}*/}
|
|
580
|
+
{/* components={{*/}
|
|
581
|
+
{/* body: {*/}
|
|
582
|
+
{/* wrapper: this.DraggableContainer,*/}
|
|
583
|
+
{/* row: this.DraggableBodyRow,*/}
|
|
584
|
+
{/* },*/}
|
|
585
|
+
{/* }}*/}
|
|
586
|
+
{/* onChange={this.onChange.bind(this)}*/}
|
|
587
|
+
{/* ></Table>*/}
|
|
588
|
+
{/*) : (*/}
|
|
589
|
+
{/* ""*/}
|
|
590
|
+
{/*)}*/}
|
|
568
591
|
{viewModels.includes("table") ? (
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
592
|
+
<ResizableTable
|
|
593
|
+
size={tableProps.size ? tableProps.size : undefined}
|
|
594
|
+
rowSelection={this.getRowSelection()}
|
|
595
|
+
columns={current_cols}
|
|
596
|
+
dataSource={originData}
|
|
597
|
+
rowKey={"序号"}
|
|
598
|
+
scroll={
|
|
599
|
+
tableProps.scrollY == -1 || tableProps.scrollY == 0
|
|
600
|
+
? null
|
|
601
|
+
: {
|
|
602
|
+
y: tableProps.scrollY,
|
|
603
|
+
x: table_x,
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
bordered
|
|
607
|
+
pagination={false}
|
|
608
|
+
style={{ display: columns ? "block" : "none" }}
|
|
609
|
+
summary={summary}
|
|
610
|
+
loading={loading}
|
|
611
|
+
components={{
|
|
612
|
+
body: {
|
|
613
|
+
wrapper: this.DraggableContainer,
|
|
614
|
+
row: this.DraggableBodyRow,
|
|
615
|
+
},
|
|
616
|
+
}}
|
|
617
|
+
onChange={this.onChange.bind(this)}
|
|
618
|
+
></ResizableTable>
|
|
595
619
|
) : (
|
|
596
|
-
|
|
620
|
+
""
|
|
597
621
|
)}
|
|
598
622
|
<Pagination key={queryKey? queryKey.key:Units.getReactKey()}
|
|
599
623
|
touchEnd={touchEnd}
|