aldehyde 0.2.473 → 0.2.475
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/lib/controls/action/utils.d.ts +1 -1
- package/lib/controls/entity-select/entity-select.d.ts +2 -2
- package/lib/controls/entity-select/entity-select.d.ts.map +1 -1
- package/lib/controls/entity-select/entity-select.js +16 -7
- package/lib/controls/entity-select/entity-select.js.map +1 -1
- package/lib/controls/entry-control.d.ts.map +1 -1
- package/lib/controls/entry-control.js +3 -2
- package/lib/controls/entry-control.js.map +1 -1
- package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +47 -3
- package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.js +12 -12
- package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.js.map +1 -1
- package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.json +77 -0
- package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.ttf +0 -0
- package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.woff +0 -0
- package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.woff2 +0 -0
- package/lib/controls/select/index.d.ts.map +1 -1
- package/lib/controls/select/index.js +13 -7
- package/lib/controls/select/index.js.map +1 -1
- package/lib/controls/text/index.less +1 -0
- package/lib/controls/view-control.d.ts.map +1 -1
- package/lib/controls/view-control.js +1 -0
- package/lib/controls/view-control.js.map +1 -1
- package/lib/detail/button/edit-button.d.ts.map +1 -1
- package/lib/detail/button/edit-button.js +23 -11
- package/lib/detail/button/edit-button.js.map +1 -1
- package/lib/detail/button/view-button.d.ts.map +1 -1
- package/lib/detail/button/view-button.js +21 -10
- package/lib/detail/button/view-button.js.map +1 -1
- package/lib/draw-canvas/edit/components/asset-bar/index.d.ts +5 -0
- package/lib/draw-canvas/edit/components/asset-bar/index.d.ts.map +1 -0
- package/lib/draw-canvas/edit/components/asset-bar/index.js +79 -0
- package/lib/draw-canvas/edit/components/asset-bar/index.js.map +1 -0
- package/lib/draw-canvas/edit/components/asset-bar/index.less +36 -0
- package/lib/draw-canvas/edit/components/main-header/index.d.ts +19 -0
- package/lib/draw-canvas/edit/components/main-header/index.d.ts.map +1 -0
- package/lib/draw-canvas/edit/components/main-header/index.js +203 -0
- package/lib/draw-canvas/edit/components/main-header/index.js.map +1 -0
- package/lib/draw-canvas/edit/components/main-header/index.less +21 -0
- package/lib/draw-canvas/edit/components/render/index.d.ts +90 -0
- package/lib/draw-canvas/edit/components/render/index.d.ts.map +1 -0
- package/lib/draw-canvas/edit/components/render/index.js +692 -0
- package/lib/draw-canvas/edit/components/render/index.js.map +1 -0
- package/lib/draw-canvas/edit/components/render/types.d.ts +247 -0
- package/lib/draw-canvas/edit/components/render/types.d.ts.map +1 -0
- package/lib/draw-canvas/edit/components/render/types.js +66 -0
- package/lib/draw-canvas/edit/components/render/types.js.map +1 -0
- package/lib/draw-canvas/edit/components/setting-form/imag-upload.d.ts +26 -0
- package/lib/draw-canvas/edit/components/setting-form/imag-upload.d.ts.map +1 -0
- package/lib/draw-canvas/edit/components/setting-form/imag-upload.js +83 -0
- package/lib/draw-canvas/edit/components/setting-form/imag-upload.js.map +1 -0
- package/lib/draw-canvas/edit/components/setting-form/index.d.ts +17 -0
- package/lib/draw-canvas/edit/components/setting-form/index.d.ts.map +1 -0
- package/lib/draw-canvas/edit/components/setting-form/index.js +243 -0
- package/lib/draw-canvas/edit/components/setting-form/index.js.map +1 -0
- package/lib/draw-canvas/edit/constant.d.ts +7 -0
- package/lib/draw-canvas/edit/constant.d.ts.map +1 -0
- package/lib/draw-canvas/edit/constant.js +7 -0
- package/lib/draw-canvas/edit/constant.js.map +1 -0
- package/lib/draw-canvas/edit/index.d.ts +8 -0
- package/lib/draw-canvas/edit/index.d.ts.map +1 -0
- package/lib/draw-canvas/edit/index.js +165 -0
- package/lib/draw-canvas/edit/index.js.map +1 -0
- package/lib/draw-canvas/edit/index.less +49 -0
- package/lib/draw-canvas/view/index.d.ts +8 -0
- package/lib/draw-canvas/view/index.d.ts.map +1 -0
- package/lib/draw-canvas/view/index.js +50 -0
- package/lib/draw-canvas/view/index.js.map +1 -0
- package/lib/draw-canvas/view/index.less +60 -0
- package/lib/draw-canvas/view/view.d.ts +10 -0
- package/lib/draw-canvas/view/view.d.ts.map +1 -0
- package/lib/draw-canvas/view/view.js +104 -0
- package/lib/draw-canvas/view/view.js.map +1 -0
- package/lib/form/form-Item-group.d.ts.map +1 -1
- package/lib/form/form-Item-group.js +4 -4
- package/lib/form/form-Item-group.js.map +1 -1
- package/lib/icon/local-aliIcon/iconfont.js +5 -5
- package/lib/icon/local-aliIcon/iconfont.js.map +1 -1
- package/lib/lowcode-components/index.d.ts +2 -0
- package/lib/lowcode-components/index.d.ts.map +1 -1
- package/lib/lowcode-components/index.js +2 -1
- package/lib/lowcode-components/index.js.map +1 -1
- package/lib/lowcode-components/lowcode-view/component/assets.d.ts.map +1 -1
- package/lib/lowcode-components/lowcode-view/component/assets.js +8 -0
- package/lib/lowcode-components/lowcode-view/component/assets.js.map +1 -1
- package/lib/lowcode-components/radar-chart/index.d.ts +51 -0
- package/lib/lowcode-components/radar-chart/index.d.ts.map +1 -0
- package/lib/lowcode-components/radar-chart/index.js +276 -0
- package/lib/lowcode-components/radar-chart/index.js.map +1 -0
- package/lib/module/dtmpl-edit-card.d.ts.map +1 -1
- package/lib/module/dtmpl-edit-card.js +18 -1
- package/lib/module/dtmpl-edit-card.js.map +1 -1
- package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
- package/lib/module/dtmpl-edit-page.js +19 -2
- package/lib/module/dtmpl-edit-page.js.map +1 -1
- package/lib/routable/ltmpl-route.d.ts +2 -0
- package/lib/routable/ltmpl-route.d.ts.map +1 -1
- package/lib/routable/ltmpl-route.js +20 -4
- package/lib/routable/ltmpl-route.js.map +1 -1
- package/lib/table/act-table.d.ts +2 -0
- package/lib/table/act-table.d.ts.map +1 -1
- package/lib/table/act-table.js +4 -4
- package/lib/table/act-table.js.map +1 -1
- package/lib/table/column/column-builder.d.ts.map +1 -1
- package/lib/table/column/column-builder.js +23 -8
- package/lib/table/column/column-builder.js.map +1 -1
- package/lib/table/relation-table.d.ts +7 -0
- package/lib/table/relation-table.d.ts.map +1 -1
- package/lib/tmpl/control-type-supportor.d.ts.map +1 -1
- package/lib/tmpl/control-type-supportor.js +1 -0
- package/lib/tmpl/control-type-supportor.js.map +1 -1
- package/lib/tmpl/hcservice-v3.d.ts +3 -0
- package/lib/tmpl/hcservice-v3.d.ts.map +1 -1
- package/lib/tmpl/hcservice-v3.js +61 -0
- package/lib/tmpl/hcservice-v3.js.map +1 -1
- package/lib/tmpl/interface.d.ts +17 -1
- package/lib/tmpl/interface.d.ts.map +1 -1
- package/lib/tmpl/interface.js.map +1 -1
- package/lib/tmpl/tmpl-config-analysis.js +1 -1
- package/lib/tmpl/tmpl-config-analysis.js.map +1 -1
- package/lib/units/index.d.ts +3 -1
- package/lib/units/index.d.ts.map +1 -1
- package/lib/units/index.js +33 -3
- package/lib/units/index.js.map +1 -1
- package/package.json +4 -1
- package/src/aldehyde/controls/entity-select/entity-select.tsx +18 -8
- package/src/aldehyde/controls/entry-control.tsx +3 -2
- package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +47 -3
- package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.js +1 -1
- package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.json +77 -0
- package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.ttf +0 -0
- package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.woff +0 -0
- package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.woff2 +0 -0
- package/src/aldehyde/controls/select/index.tsx +7 -6
- package/src/aldehyde/controls/text/index.less +1 -0
- package/src/aldehyde/controls/view-control.tsx +1 -0
- package/src/aldehyde/detail/button/edit-button.tsx +21 -22
- package/src/aldehyde/detail/button/view-button.tsx +23 -21
- package/src/aldehyde/draw-canvas/edit/components/asset-bar/index.less +36 -0
- package/src/aldehyde/draw-canvas/edit/components/asset-bar/index.tsx +95 -0
- package/src/aldehyde/draw-canvas/edit/components/main-header/index.less +21 -0
- package/src/aldehyde/draw-canvas/edit/components/main-header/index.tsx +233 -0
- package/src/aldehyde/draw-canvas/edit/components/render/draws/bg-draw.ts +163 -0
- package/src/aldehyde/draw-canvas/edit/components/render/draws/contextmenu-draw.ts +307 -0
- package/src/aldehyde/draw-canvas/edit/components/render/draws/graph-draw.ts +251 -0
- package/src/aldehyde/draw-canvas/edit/components/render/draws/index.ts +7 -0
- package/src/aldehyde/draw-canvas/edit/components/render/draws/link-draw.ts +1416 -0
- package/src/aldehyde/draw-canvas/edit/components/render/draws/preview-draw.ts +275 -0
- package/src/aldehyde/draw-canvas/edit/components/render/draws/ref-line-draw.ts +72 -0
- package/src/aldehyde/draw-canvas/edit/components/render/draws/ruler-draw.ts +167 -0
- package/src/aldehyde/draw-canvas/edit/components/render/graphs/base-graph.ts +241 -0
- package/src/aldehyde/draw-canvas/edit/components/render/graphs/bezier.ts +542 -0
- package/src/aldehyde/draw-canvas/edit/components/render/graphs/circle.ts +700 -0
- package/src/aldehyde/draw-canvas/edit/components/render/graphs/curve.ts +501 -0
- package/src/aldehyde/draw-canvas/edit/components/render/graphs/index.ts +6 -0
- package/src/aldehyde/draw-canvas/edit/components/render/graphs/line.ts +494 -0
- package/src/aldehyde/draw-canvas/edit/components/render/graphs/rect.ts +681 -0
- package/src/aldehyde/draw-canvas/edit/components/render/handlers/drag-handlers.ts +69 -0
- package/src/aldehyde/draw-canvas/edit/components/render/handlers/drag-outside-handlers.ts +159 -0
- package/src/aldehyde/draw-canvas/edit/components/render/handlers/graph-handlers.ts +108 -0
- package/src/aldehyde/draw-canvas/edit/components/render/handlers/index.ts +9 -0
- package/src/aldehyde/draw-canvas/edit/components/render/handlers/key-move-handlers.ts +50 -0
- package/src/aldehyde/draw-canvas/edit/components/render/handlers/link-handlers.ts +46 -0
- package/src/aldehyde/draw-canvas/edit/components/render/handlers/selection-handlers.ts +393 -0
- package/src/aldehyde/draw-canvas/edit/components/render/handlers/shutcut-handlers.ts +46 -0
- package/src/aldehyde/draw-canvas/edit/components/render/handlers/text-handlers.ts +82 -0
- package/src/aldehyde/draw-canvas/edit/components/render/handlers/zoom-handlers.ts +60 -0
- package/src/aldehyde/draw-canvas/edit/components/render/index.ts +776 -0
- package/src/aldehyde/draw-canvas/edit/components/render/tools/align-tool.ts +91 -0
- package/src/aldehyde/draw-canvas/edit/components/render/tools/asset-tool.ts +142 -0
- package/src/aldehyde/draw-canvas/edit/components/render/tools/attract-tool.ts +440 -0
- package/src/aldehyde/draw-canvas/edit/components/render/tools/copy-tool.ts +269 -0
- package/src/aldehyde/draw-canvas/edit/components/render/tools/import-export-tool.ts +603 -0
- package/src/aldehyde/draw-canvas/edit/components/render/tools/index.ts +9 -0
- package/src/aldehyde/draw-canvas/edit/components/render/tools/link-tool.ts +225 -0
- package/src/aldehyde/draw-canvas/edit/components/render/tools/position-tool.ts +194 -0
- package/src/aldehyde/draw-canvas/edit/components/render/tools/selection-tool.ts +132 -0
- package/src/aldehyde/draw-canvas/edit/components/render/tools/z-index-tool.ts +227 -0
- package/src/aldehyde/draw-canvas/edit/components/render/types.ts +291 -0
- package/src/aldehyde/draw-canvas/edit/components/render/utils/a-star.ts +116 -0
- package/src/aldehyde/draw-canvas/edit/components/render/utils/bezier-scene-func.ts +73 -0
- package/src/aldehyde/draw-canvas/edit/components/setting-form/imag-upload.tsx +118 -0
- package/src/aldehyde/draw-canvas/edit/components/setting-form/index.tsx +295 -0
- package/src/aldehyde/draw-canvas/edit/constant.ts +6 -0
- package/src/aldehyde/draw-canvas/edit/index.less +49 -0
- package/src/aldehyde/draw-canvas/edit/index.tsx +197 -0
- package/src/aldehyde/draw-canvas/view/index.less +60 -0
- package/src/aldehyde/draw-canvas/view/index.tsx +48 -0
- package/src/aldehyde/draw-canvas/view/view.tsx +114 -0
- package/src/aldehyde/form/form-Item-group.tsx +5 -5
- package/src/aldehyde/icon/local-aliIcon/iconfont.js +1 -1
- package/src/aldehyde/lowcode-components/index.ts +4 -2
- package/src/aldehyde/lowcode-components/lowcode-view/component/assets.ts +8 -0
- package/src/aldehyde/lowcode-components/radar-chart/index.tsx +323 -0
- package/src/aldehyde/module/dtmpl-edit-card.tsx +18 -1
- package/src/aldehyde/module/dtmpl-edit-page.tsx +19 -2
- package/src/aldehyde/routable/ltmpl-route.tsx +39 -3
- package/src/aldehyde/table/act-table.tsx +7 -4
- package/src/aldehyde/table/column/column-builder.tsx +29 -9
- package/src/aldehyde/tmpl/control-type-supportor.tsx +1 -0
- package/src/aldehyde/tmpl/hcservice-v3.tsx +44 -0
- package/src/aldehyde/tmpl/interface.tsx +15 -1
- package/src/aldehyde/tmpl/tmpl-config-analysis.tsx +1 -1
- package/src/aldehyde/units/index.tsx +31 -3
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
import * as echarts from 'echarts';
|
|
2
|
+
import React, { useEffect, useRef, useState, ForwardedRef, forwardRef, useImperativeHandle } from 'react';
|
|
3
|
+
import _ from 'lodash';
|
|
4
|
+
import { Spin } from "antd";
|
|
5
|
+
import { useLocale } from "../../locale/useLocale";
|
|
6
|
+
import HydrocarbonService from "../../tmpl/hcservice-v3";
|
|
7
|
+
import { DataConfigProps } from "../data";
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
const defOption = {
|
|
11
|
+
title: {
|
|
12
|
+
text: '暂无数据',
|
|
13
|
+
left: 'center',
|
|
14
|
+
top: 'middle',
|
|
15
|
+
show: false, // 无数据时显示
|
|
16
|
+
},
|
|
17
|
+
tooltip: {},
|
|
18
|
+
grid: { top: 30, let: 30, right: 30, bottom: 30 },
|
|
19
|
+
legend: { show: false },
|
|
20
|
+
shape: "polygon",
|
|
21
|
+
radar: {
|
|
22
|
+
indicator: [
|
|
23
|
+
{ name: 'A', max: 6500 },
|
|
24
|
+
{ name: 'B', max: 16000 },
|
|
25
|
+
{ name: 'C', max: 30000 },
|
|
26
|
+
{ name: 'D', max: 38000 },
|
|
27
|
+
{ name: 'E', max: 52000 },
|
|
28
|
+
{ name: 'F', max: 25000 }
|
|
29
|
+
],
|
|
30
|
+
splitArea: {
|
|
31
|
+
areaStyle: {
|
|
32
|
+
color: 'transparent',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
axisName: {
|
|
36
|
+
color: '#afb6d3',
|
|
37
|
+
fontsize: 12,
|
|
38
|
+
fontWeight: "normal",
|
|
39
|
+
},
|
|
40
|
+
axisLine: {
|
|
41
|
+
lineStyle: {
|
|
42
|
+
color: '#384278',
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
splitLine: {
|
|
46
|
+
lineStyle: {
|
|
47
|
+
color: '#384278',
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
series: [
|
|
52
|
+
{
|
|
53
|
+
type: 'radar',
|
|
54
|
+
data: [{ value: [4200, 3000, 20000, 35000, 50000, 18000], name: 'A' }, { value: [5000, 14000, 28000, 26000, 42000, 21000], name: 'B' }]
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const legends = {
|
|
60
|
+
top: { top: 0 },
|
|
61
|
+
bottom: { bottom: 0 },
|
|
62
|
+
left: { left: 5, top: "center" },
|
|
63
|
+
right: { right: 5, top: "center" },
|
|
64
|
+
leftTop: { left: 5 },
|
|
65
|
+
rightTop: { right: 5 },
|
|
66
|
+
leftBottom: { left: 5, bottom: 0 },
|
|
67
|
+
rightBottom: { right: 5, bottom: 0 },
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
// 处理数据格式
|
|
71
|
+
const handleData = (data: { config: { [key: string]: string }, value: { [key: string]: any }[] }[]) => {
|
|
72
|
+
if (!data?.length) {
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
const temData = data.map((r) => {
|
|
76
|
+
const { config, value } = r;
|
|
77
|
+
const isD = Object.keys(config).some(r => r.includes("d"));
|
|
78
|
+
// 过滤只有v1、v2等数据
|
|
79
|
+
const vNames = Object.keys(config).filter((r) => r.startsWith("v") && !r.includes("-")).sort((a, b) => parseInt(a.substring(1)) - parseInt(b.substring(1)));
|
|
80
|
+
return isD ? {
|
|
81
|
+
name: config.d1,
|
|
82
|
+
data: vNames.map((r) => ({
|
|
83
|
+
name: config[r],
|
|
84
|
+
data: value.map((v) => [v["d1"], v[r]]),
|
|
85
|
+
}))
|
|
86
|
+
} : {
|
|
87
|
+
data: value.map((r, index) => ({ name: `数值${index || ""}`, data: vNames.map(v => [config[v], r[v]]) }))
|
|
88
|
+
};
|
|
89
|
+
});
|
|
90
|
+
return temData[0]?.data || [];
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export interface ComponentStyle {
|
|
94
|
+
tooltip?: boolean;
|
|
95
|
+
color?: string[];
|
|
96
|
+
grid?: { top: number, let: number, right: number, bottom: number };
|
|
97
|
+
legend?: { [key: string]: any };
|
|
98
|
+
renderer?: "canvas" | "svg";
|
|
99
|
+
lineStyle?: { width: number };
|
|
100
|
+
shape?: string;
|
|
101
|
+
isArea?: boolean;
|
|
102
|
+
areaStyle?: { opacity: number };
|
|
103
|
+
splitAreaColor?: string;
|
|
104
|
+
axisName?: {
|
|
105
|
+
color: string,
|
|
106
|
+
fontsize: number,
|
|
107
|
+
fontWeight: string,
|
|
108
|
+
},
|
|
109
|
+
axisLineColor?: string,
|
|
110
|
+
splitLineColor?: string,
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export interface ComponentProps {
|
|
114
|
+
style?: ComponentStyle;
|
|
115
|
+
base: { width: number, height: number };
|
|
116
|
+
data?: DataConfigProps;
|
|
117
|
+
isDesignMode?: boolean; // 是否编辑模式
|
|
118
|
+
initSearchParams?: { [key: string]: any }; // 全局初始化外部参数,例:传参包含设备id,则在查询时带上设备id
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export interface ComponentRef {
|
|
122
|
+
updateConfig: (newConfig: ComponentProps) => void;
|
|
123
|
+
destroy: () => void;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const Index = forwardRef((props: ComponentProps, ref: ForwardedRef<ComponentRef>) => {
|
|
127
|
+
const { style, data: propsData, isDesignMode } = props;
|
|
128
|
+
const [config, setConfig] = useState<ComponentStyle>(style || {});
|
|
129
|
+
const [renderType, setRenderType] = useState<"canvas" | "svg">(style?.renderer || "svg"); // 渲染模式
|
|
130
|
+
const [size, setSize] = useState<{ width: number, height: number }>();
|
|
131
|
+
const [dataConfig, setDataConfig] = useState<DataConfigProps>({ ...propsData }); // 数据源配置
|
|
132
|
+
const [data, setData] = useState<{ name: string, data: any }[]>([]);
|
|
133
|
+
const [searchParams, setSearchParams] = useState<{ [key: string]: any }>();
|
|
134
|
+
const [initSearchParams, setInitSearchParams] = useState<{ [key: string]: any }>();
|
|
135
|
+
const [loading, setLoading] = useState<boolean>(false);
|
|
136
|
+
const chartRef = useRef<HTMLDivElement>(null);
|
|
137
|
+
const chart = useRef<any>(null);
|
|
138
|
+
const pollingIntervalRef = useRef<number | NodeJS.Timeout>(null);
|
|
139
|
+
const { translate } = useLocale();
|
|
140
|
+
|
|
141
|
+
const handleDestroy = () => {
|
|
142
|
+
pollingIntervalRef.current && clearInterval(pollingIntervalRef.current);
|
|
143
|
+
window.removeEventListener('resize', handleResize);
|
|
144
|
+
chart.current && chart.current.dispose();
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
// 全局初始化请求数据处理
|
|
148
|
+
const handleInitData = (val: DataConfigProps) => {
|
|
149
|
+
if (val.sourceType === "sourceId" && val.isInit && val.initData) {
|
|
150
|
+
const { config: dataConfig, value } = val.initData;
|
|
151
|
+
const temData = handleData(value);
|
|
152
|
+
setData(temData);
|
|
153
|
+
if (dataConfig?.requestMode === "polling") {
|
|
154
|
+
pollingIntervalRef.current = setInterval(() => { getData() }, dataConfig?.pollingInterval || 60000);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// ws订阅数据更新
|
|
160
|
+
const handleWSData = (val: DataConfigProps) => {
|
|
161
|
+
if (val.sourceType === "sourceId" && val.wsData) {
|
|
162
|
+
const { value } = val.initData;
|
|
163
|
+
const temData = handleData(value);
|
|
164
|
+
setData(temData);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
useImperativeHandle(ref, () => ({
|
|
169
|
+
updateConfig: (newConfig) => {
|
|
170
|
+
const { base, style: newStyle, data: newDataConfig, initSearchParams: newISParams } = newConfig;
|
|
171
|
+
setConfig({ ...(newStyle || {}) });
|
|
172
|
+
setSize({ width: base.width, height: base.height });
|
|
173
|
+
setDataConfig(newDataConfig);
|
|
174
|
+
setRenderType(newStyle?.renderer || "svg");
|
|
175
|
+
handleInitData(newDataConfig);
|
|
176
|
+
setSearchParams(newDataConfig.searchParams);
|
|
177
|
+
setInitSearchParams(newISParams);
|
|
178
|
+
handleWSData(newDataConfig);
|
|
179
|
+
},
|
|
180
|
+
destroy: handleDestroy,
|
|
181
|
+
}));
|
|
182
|
+
|
|
183
|
+
// 窗口大小变化时重新调整图表大小
|
|
184
|
+
const handleResize = () => {
|
|
185
|
+
chart.current.resize({ animation: { duration: 500 } });
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
useEffect(() => {
|
|
189
|
+
return () => {
|
|
190
|
+
handleDestroy();
|
|
191
|
+
}
|
|
192
|
+
}, []);
|
|
193
|
+
|
|
194
|
+
useEffect(() => {
|
|
195
|
+
handleDestroy();
|
|
196
|
+
chart.current = echarts.init(chartRef.current, null, { renderer: renderType });
|
|
197
|
+
window.addEventListener('resize', handleResize);
|
|
198
|
+
}, [renderType]);
|
|
199
|
+
|
|
200
|
+
// 请求数据
|
|
201
|
+
const getData = async (params?: object) => {
|
|
202
|
+
setLoading(true);
|
|
203
|
+
const { data } = await HydrocarbonService.requestChartData(null, dataConfig?.sourceId, params) || {};
|
|
204
|
+
setLoading(false);
|
|
205
|
+
const temData = handleData(data?.value);
|
|
206
|
+
setData(temData);
|
|
207
|
+
return data?.config;
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
// 初始化请求数据
|
|
211
|
+
const getInitData = async (params?: object) => {
|
|
212
|
+
pollingIntervalRef.current && clearInterval(pollingIntervalRef.current);
|
|
213
|
+
const config = await getData(params);
|
|
214
|
+
if (config?.requestMode === "polling") {
|
|
215
|
+
pollingIntervalRef.current = setInterval(() => getData(params), config?.pollingInterval || 60000);
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
// 静态数据处理
|
|
220
|
+
useEffect(() => {
|
|
221
|
+
if (dataConfig?.sourceType === 'staticData') {
|
|
222
|
+
setData(handleData(dataConfig.staticData));
|
|
223
|
+
}
|
|
224
|
+
}, [dataConfig?.sourceType, dataConfig?.staticData]);
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* 数据源数据请求
|
|
228
|
+
* 1、编辑态不请求数据
|
|
229
|
+
*/
|
|
230
|
+
useEffect(() => {
|
|
231
|
+
if (!isDesignMode && dataConfig?.sourceType === 'sourceId' && dataConfig?.sourceId && !dataConfig?.isInit && dataConfig?.isDefRequest !== false) {
|
|
232
|
+
if (dataConfig?.isInitParams) { // 组件数据源接收外部参数
|
|
233
|
+
initSearchParams && getInitData(initSearchParams);
|
|
234
|
+
} else {
|
|
235
|
+
getInitData();
|
|
236
|
+
}
|
|
237
|
+
} else if (dataConfig?.sourceType === 'sourceId') {
|
|
238
|
+
setData([]);
|
|
239
|
+
}
|
|
240
|
+
}, [dataConfig?.sourceType, dataConfig?.sourceId, initSearchParams]);
|
|
241
|
+
|
|
242
|
+
// 搜索参数变化时重新请求数据
|
|
243
|
+
useEffect(() => {
|
|
244
|
+
if (searchParams) {
|
|
245
|
+
const params = { ...(initSearchParams || {}), ...searchParams };
|
|
246
|
+
if (dataConfig?.isInitParams) { // 数据源接收外部参数,则参数存在再请求
|
|
247
|
+
initSearchParams && getInitData(params);
|
|
248
|
+
} else {
|
|
249
|
+
getInitData(params);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}, [searchParams, initSearchParams]);
|
|
253
|
+
|
|
254
|
+
const renderChart = () => {
|
|
255
|
+
const { grid, legend, tooltip, color, lineStyle, isArea, areaStyle, shape, splitAreaColor, axisName, axisLineColor, splitLineColor } = config;
|
|
256
|
+
const option = _.cloneDeep(defOption);
|
|
257
|
+
// 编辑态无数据显示默认数据
|
|
258
|
+
const temData = isDesignMode ? option.series : data;
|
|
259
|
+
const temMax = Math.max(...data.map(r => r.data?.map(item => item[1]) || []).flat());
|
|
260
|
+
const temIndicator = data?.[0]?.data?.map(r => ({ name: r[0], max: temMax }));
|
|
261
|
+
option.shape = shape;
|
|
262
|
+
option.grid = grid;
|
|
263
|
+
option.legend = { ...legend, ...legends[legend?.position] };
|
|
264
|
+
option.tooltip = tooltip ? {} : undefined;
|
|
265
|
+
option.title.text = translate("${暂无数据}");
|
|
266
|
+
option.title.show = !temData?.length;
|
|
267
|
+
option.radar = isDesignMode ? option.radar : {
|
|
268
|
+
...option.radar,
|
|
269
|
+
splitArea: {
|
|
270
|
+
areaStyle: {
|
|
271
|
+
color: splitAreaColor || 'transparent',
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
axisName: axisName || {
|
|
275
|
+
color: '#afb6d3',
|
|
276
|
+
fontsize: 12,
|
|
277
|
+
fontWeight: "normal",
|
|
278
|
+
},
|
|
279
|
+
axisLine: {
|
|
280
|
+
lineStyle: {
|
|
281
|
+
color: axisLineColor || '#384278',
|
|
282
|
+
},
|
|
283
|
+
},
|
|
284
|
+
splitLine: {
|
|
285
|
+
lineStyle: {
|
|
286
|
+
color: splitLineColor || '#384278',
|
|
287
|
+
},
|
|
288
|
+
},
|
|
289
|
+
indicator: temIndicator
|
|
290
|
+
};
|
|
291
|
+
option.series = temData.map((r, index) => ({
|
|
292
|
+
name: r.name,
|
|
293
|
+
type: "radar",
|
|
294
|
+
lineStyle: { ...lineStyle, color: color[index] },
|
|
295
|
+
itemStyle: { color: color[index] },
|
|
296
|
+
areaStyle: isArea ? areaStyle : undefined,
|
|
297
|
+
data: [{ name: r.name, value: r.data?.map(item => item[1]) }]
|
|
298
|
+
}));
|
|
299
|
+
chart.current.setOption(option, true);
|
|
300
|
+
};
|
|
301
|
+
|
|
302
|
+
useEffect(() => {
|
|
303
|
+
if (config) {
|
|
304
|
+
renderChart();
|
|
305
|
+
}
|
|
306
|
+
}, [config, data]);
|
|
307
|
+
|
|
308
|
+
useEffect(() => {
|
|
309
|
+
if (size) {
|
|
310
|
+
handleResize();
|
|
311
|
+
}
|
|
312
|
+
}, [size]);
|
|
313
|
+
|
|
314
|
+
const renderChartDom = () => <div ref={chartRef} style={{ width: '100%', height: '100%' }} />;
|
|
315
|
+
|
|
316
|
+
if (isDesignMode) {
|
|
317
|
+
return renderChartDom();
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
return <Spin spinning={loading}>{renderChartDom()}</Spin>;
|
|
321
|
+
});
|
|
322
|
+
|
|
323
|
+
export default Index;
|
|
@@ -235,7 +235,7 @@ export default class DtmplEditCard extends React.PureComponent<
|
|
|
235
235
|
|
|
236
236
|
getSecondCriteria = async (field) => {
|
|
237
237
|
const { parentFormInstance } = this.props;
|
|
238
|
-
const { relValueField, baseCriteria = {} } = field;
|
|
238
|
+
const { relValueField, relValueField3, baseCriteria = {} } = field;
|
|
239
239
|
const temForm = parentFormInstance || this.formRef.current;
|
|
240
240
|
if (relValueField && temForm) {
|
|
241
241
|
let relValueData = temForm.getFieldValue(relValueField.id);
|
|
@@ -245,6 +245,14 @@ export default class DtmplEditCard extends React.PureComponent<
|
|
|
245
245
|
field.baseCriteria = { ...(baseCriteria || {}), "secondCriteria": relValueData };
|
|
246
246
|
field.configChanged = true;
|
|
247
247
|
}
|
|
248
|
+
if (relValueField3 && temForm) {
|
|
249
|
+
let relValueData = temForm.getFieldValue(relValueField3.id);
|
|
250
|
+
if (relValueField3.subRelValueField && relValueData) {
|
|
251
|
+
relValueData = await this.getSubDtmplData(relValueField3, relValueData);
|
|
252
|
+
}
|
|
253
|
+
field.baseCriteria = { ...(field.baseCriteria || {}), "thirdCriteria": relValueData };
|
|
254
|
+
field.configChanged = true;
|
|
255
|
+
}
|
|
248
256
|
return field;
|
|
249
257
|
}
|
|
250
258
|
// 表单关联项secondCriteria处理end
|
|
@@ -267,6 +275,15 @@ export default class DtmplEditCard extends React.PureComponent<
|
|
|
267
275
|
total[field.relValueField.id] = [...temArr, temField];
|
|
268
276
|
}
|
|
269
277
|
}
|
|
278
|
+
if (field.relValueField3) {
|
|
279
|
+
const temArr = total[field.relValueField3.id] || [];
|
|
280
|
+
const isSameGroup = item.fields.some(f => f.id === field.relValueField3.id);
|
|
281
|
+
const temField = isSameGroup ? field : item;
|
|
282
|
+
const isItem = temArr.find(r => r.id === temField.id);
|
|
283
|
+
if (!isItem) {
|
|
284
|
+
total[field.relValueField3.id] = [...temArr, temField];
|
|
285
|
+
}
|
|
286
|
+
}
|
|
270
287
|
})
|
|
271
288
|
}
|
|
272
289
|
return total;
|
|
@@ -178,7 +178,7 @@ export default class DtmplEditPage extends React.PureComponent<
|
|
|
178
178
|
|
|
179
179
|
getSecondCriteria = async (field) => {
|
|
180
180
|
const { parentFormInstance } = this.props;
|
|
181
|
-
const { relValueField, baseCriteria = {} } = field;
|
|
181
|
+
const { relValueField, relValueField3, baseCriteria = {} } = field;
|
|
182
182
|
const temForm = parentFormInstance || this.formRef.current;
|
|
183
183
|
if (relValueField && temForm) {
|
|
184
184
|
let relValueData = temForm.getFieldValue(relValueField.id);
|
|
@@ -188,6 +188,14 @@ export default class DtmplEditPage extends React.PureComponent<
|
|
|
188
188
|
field.baseCriteria = { ...(baseCriteria || {}), "secondCriteria": relValueData };
|
|
189
189
|
field.configChanged = true;
|
|
190
190
|
}
|
|
191
|
+
if (relValueField3 && temForm) {
|
|
192
|
+
let relValueData = temForm.getFieldValue(relValueField3.id);
|
|
193
|
+
if (relValueField3.subRelValueField && relValueData) {
|
|
194
|
+
relValueData = await this.getSubDtmplData(relValueField3, relValueData);
|
|
195
|
+
}
|
|
196
|
+
field.baseCriteria = { ...(field.baseCriteria || {}), "thirdCriteria": relValueData };
|
|
197
|
+
field.configChanged = true;
|
|
198
|
+
}
|
|
191
199
|
return field;
|
|
192
200
|
}
|
|
193
201
|
// 表单关联项secondCriteria处理end
|
|
@@ -279,7 +287,7 @@ export default class DtmplEditPage extends React.PureComponent<
|
|
|
279
287
|
const valueFieldMap = groups.reduce((total, item) => {
|
|
280
288
|
if (item.fields) {
|
|
281
289
|
item.fields.forEach(field => {
|
|
282
|
-
if (field.relValueField) {
|
|
290
|
+
if (field.relValueField) { // 关联取值字段
|
|
283
291
|
const temArr = total[field.relValueField.id] || [];
|
|
284
292
|
const isSameGroup = item.fields.some(f => f.id === field.relValueField.id);
|
|
285
293
|
const temField = isSameGroup ? field : item;
|
|
@@ -288,6 +296,15 @@ export default class DtmplEditPage extends React.PureComponent<
|
|
|
288
296
|
total[field.relValueField.id] = [...temArr, temField];
|
|
289
297
|
}
|
|
290
298
|
}
|
|
299
|
+
if (field.relValueField3) { // 关联取值字段扩1
|
|
300
|
+
const temArr = total[field.relValueField3.id] || [];
|
|
301
|
+
const isSameGroup = item.fields.some(f => f.id === field.relValueField3.id);
|
|
302
|
+
const temField = isSameGroup ? field : item;
|
|
303
|
+
const isItem = temArr.find(r => r.id === temField.id);
|
|
304
|
+
if (!isItem) {
|
|
305
|
+
total[field.relValueField3.id] = [...temArr, temField];
|
|
306
|
+
}
|
|
307
|
+
}
|
|
291
308
|
})
|
|
292
309
|
}
|
|
293
310
|
return total;
|
|
@@ -18,6 +18,8 @@ import DtmplCustomEditModalPage from "../custom-page/dtmpl-custom-edit-modal-pag
|
|
|
18
18
|
import CustomDetailModalPage from "../custom-page/custom-detail-modal-page";
|
|
19
19
|
import DtmplEditPage from "../module/dtmpl-edit-page";
|
|
20
20
|
import DtmplViewModal from "../module/dtmpl-view-modal";
|
|
21
|
+
import Edit2D from "../draw-canvas/edit"; // 编辑2D图
|
|
22
|
+
import View2D from "../draw-canvas/view"; // 查看2D图
|
|
21
23
|
|
|
22
24
|
export interface LtmplRouteProps extends RouterCompProps {
|
|
23
25
|
layoutRootPath?: string;
|
|
@@ -45,6 +47,8 @@ export interface LtmplRouteState {
|
|
|
45
47
|
themeConfig?: ThemeConfig;
|
|
46
48
|
pageSizeOptions?: number[]; // 分页条数
|
|
47
49
|
drawerSize?: number | string; // 抽屉组件
|
|
50
|
+
showEdit2D?: boolean; // 编辑2D图
|
|
51
|
+
showView2D?: boolean; // 查看2D图
|
|
48
52
|
}
|
|
49
53
|
|
|
50
54
|
class LtmplRoute extends React.PureComponent<LtmplRouteProps, LtmplRouteState> {
|
|
@@ -75,7 +79,9 @@ class LtmplRoute extends React.PureComponent<LtmplRouteProps, LtmplRouteState> {
|
|
|
75
79
|
userPageConfigLoading: true,
|
|
76
80
|
themeConfig: undefined,
|
|
77
81
|
pageSizeOptions: [],
|
|
78
|
-
drawerSize: "92vw"
|
|
82
|
+
drawerSize: "92vw",
|
|
83
|
+
showEdit2D: false,
|
|
84
|
+
showView2D: false
|
|
79
85
|
};
|
|
80
86
|
|
|
81
87
|
async componentDidMount() {
|
|
@@ -300,6 +306,16 @@ class LtmplRoute extends React.PureComponent<LtmplRouteProps, LtmplRouteState> {
|
|
|
300
306
|
}
|
|
301
307
|
};
|
|
302
308
|
|
|
309
|
+
// 2D图编辑
|
|
310
|
+
doEdit2D = (val: string) => {
|
|
311
|
+
this.setState({ showEdit2D: true, selectedCode: val });
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// 2D图查看
|
|
315
|
+
doView2D = (val: string) => {
|
|
316
|
+
this.setState({ showView2D: true, selectedCode: val });
|
|
317
|
+
}
|
|
318
|
+
|
|
303
319
|
pathMark = () => {
|
|
304
320
|
const { tableType } = this.props;
|
|
305
321
|
return tableType && tableType == "report" ? "report-table" : "act-table";
|
|
@@ -376,7 +392,7 @@ class LtmplRoute extends React.PureComponent<LtmplRouteProps, LtmplRouteState> {
|
|
|
376
392
|
const {
|
|
377
393
|
ltmplConfigRes, showDraw, showWindowType, ractionId, selectedCode,
|
|
378
394
|
showViewDrawer, showViewModal, showEdit, editSourceId, viewSourceId, toCustomPage, userPageConfig,
|
|
379
|
-
themeConfig, pageSizeOptions, userPageConfigLoading, drawerSize
|
|
395
|
+
themeConfig, pageSizeOptions, userPageConfigLoading, drawerSize, showEdit2D, showView2D
|
|
380
396
|
} = this.state;
|
|
381
397
|
const { location, params, tableType, rowOperatable, defShowType } = this.props;
|
|
382
398
|
const { sourceId } = params;
|
|
@@ -423,7 +439,7 @@ class LtmplRoute extends React.PureComponent<LtmplRouteProps, LtmplRouteState> {
|
|
|
423
439
|
criteriaData={criteriaData} ltmplConfig={ltmplConfig} doRAction={this.doRAction}
|
|
424
440
|
defShowType={defShowType} userPageConfig={userPageConfig} setUserPageConfig={this.setUserPageConfig}
|
|
425
441
|
resetUserPageConfig={this.resetUserPageConfig} allowUserConfig={themeConfig?.allowUserConfig}
|
|
426
|
-
onUpdatePageSizeOptions={this.onUpdatePageSizeOptions}
|
|
442
|
+
onUpdatePageSizeOptions={this.onUpdatePageSizeOptions} doEdit2D={this.doEdit2D} doView2D={this.doView2D}
|
|
427
443
|
/>
|
|
428
444
|
{showDraw ? (
|
|
429
445
|
<Drawer
|
|
@@ -494,6 +510,26 @@ class LtmplRoute extends React.PureComponent<LtmplRouteProps, LtmplRouteState> {
|
|
|
494
510
|
/>
|
|
495
511
|
)
|
|
496
512
|
) : null}
|
|
513
|
+
{showEdit2D && selectedCode ? <Drawer
|
|
514
|
+
placement={"left"} title={translate("${编辑}")} closable={true} mask={false} onClose={() => this.setState({ showEdit2D: false, selectedCode: undefined })}
|
|
515
|
+
open={showEdit2D}
|
|
516
|
+
resizable={{ onResize: (newSize => this.setState({ drawerSize: newSize })) }}
|
|
517
|
+
size={drawerSize}
|
|
518
|
+
styles={{ body: { minWidth: "720px", padding: 0 } }}
|
|
519
|
+
>
|
|
520
|
+
<Edit2D recordCode={selectedCode} />
|
|
521
|
+
</Drawer> : null
|
|
522
|
+
}
|
|
523
|
+
{showView2D && selectedCode ? <Drawer
|
|
524
|
+
placement={"left"} title={translate("${查看}")} closable={true} mask={false} onClose={() => this.setState({ showView2D: false, selectedCode: undefined })}
|
|
525
|
+
open={showView2D}
|
|
526
|
+
resizable={{ onResize: (newSize => this.setState({ drawerSize: newSize })) }}
|
|
527
|
+
size={drawerSize}
|
|
528
|
+
styles={{ body: { minWidth: "720px", padding: 0 } }}
|
|
529
|
+
>
|
|
530
|
+
<View2D recordCode={selectedCode} />
|
|
531
|
+
</Drawer> : null
|
|
532
|
+
}
|
|
497
533
|
</>
|
|
498
534
|
);
|
|
499
535
|
}
|
|
@@ -83,6 +83,8 @@ interface ActTableProps extends TmplBaseProps {
|
|
|
83
83
|
onUpdatePageSizeOptions?: (val: number[]) => void; // 更新分页数数组
|
|
84
84
|
showEmpty?: boolean; // 空数据是否显示空状态,默认显示
|
|
85
85
|
loadDataCallback?: (val: object[]) => void; // 请求数据回调函数
|
|
86
|
+
doEdit2D?: (val: string) => void; // 2D图编辑
|
|
87
|
+
doView2D?: (val: string) => void; // 2D图查看
|
|
86
88
|
}
|
|
87
89
|
|
|
88
90
|
interface ActTableStat {
|
|
@@ -1047,7 +1049,7 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
|
|
|
1047
1049
|
</Tooltip>
|
|
1048
1050
|
</Popover>
|
|
1049
1051
|
) : (
|
|
1050
|
-
<Tooltip title={translate("${创建}")}>
|
|
1052
|
+
<Tooltip title={translate("${" + (ltmplConfig.createBtnTitle || "创建") + "}")}>
|
|
1051
1053
|
<Button onClick={() => doCreate(null, false)}>
|
|
1052
1054
|
<PlusOutlined />
|
|
1053
1055
|
</Button>
|
|
@@ -1059,7 +1061,7 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
|
|
|
1059
1061
|
{(buttons.includes("dtmplCustomAdd") || customCreatable) &&
|
|
1060
1062
|
doCreate &&
|
|
1061
1063
|
!readOnly ? (
|
|
1062
|
-
<Tooltip title={translate("${创建}")}>
|
|
1064
|
+
<Tooltip title={translate("${" + (ltmplConfig.createBtnTitle || "创建") + "}")}>
|
|
1063
1065
|
<Button onClick={() => doCreate(null, true)}>
|
|
1064
1066
|
<PlusCircleOutlined />
|
|
1065
1067
|
</Button>
|
|
@@ -1512,7 +1514,8 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
|
|
|
1512
1514
|
mainCode, sourceId, ltmplConfig, funcMode, operatable,
|
|
1513
1515
|
title, collapsible,
|
|
1514
1516
|
onChangePage, serverKey, criteriaData, showEmpty, loadDataCallback,
|
|
1515
|
-
showView, doEdit, doRAction, customEditable, readOnly, tableType, showPagination, showAggregates, userPageConfig
|
|
1517
|
+
showView, doEdit, doRAction, customEditable, readOnly, tableType, showPagination, showAggregates, userPageConfig,
|
|
1518
|
+
doEdit2D, doView2D
|
|
1516
1519
|
} = this.props;
|
|
1517
1520
|
const { translate } = this.context;
|
|
1518
1521
|
|
|
@@ -1538,7 +1541,7 @@ class ActTable extends React.PureComponent<ActTableProps, ActTableStat> {
|
|
|
1538
1541
|
doRowAction: this.doRowAction, doDeleteByCode: this.doDeleteByCode, sortColumns: criteriaData["sortColIds"],
|
|
1539
1542
|
editings, editRowEdit: this.editRowEdit, cancelRowEdit: this.cancelRowEdit, saveRowData: this.saveRowData,
|
|
1540
1543
|
doDelModalOpen: this.doDelModalOpen, mainCode, criteriaData: userCriteriaData, actTableDoSearch: this.actTableDoSearch,
|
|
1541
|
-
columnResize: userPageConfig?.colResize
|
|
1544
|
+
columnResize: userPageConfig?.colResize, doEdit2D, doView2D
|
|
1542
1545
|
}
|
|
1543
1546
|
);
|
|
1544
1547
|
|
|
@@ -11,7 +11,8 @@ import {
|
|
|
11
11
|
EyeOutlined,
|
|
12
12
|
FormOutlined,
|
|
13
13
|
KeyOutlined,
|
|
14
|
-
MenuOutlined, QuestionCircleOutlined,
|
|
14
|
+
MenuOutlined, QuestionCircleOutlined, PlaySquareOutlined,
|
|
15
|
+
SettingOutlined
|
|
15
16
|
} from "@ant-design/icons";
|
|
16
17
|
import ActionUtils from "../../controls/action/utils";
|
|
17
18
|
import ViewButton from "../../detail/button/view-button";
|
|
@@ -539,8 +540,10 @@ export default {
|
|
|
539
540
|
serverKey,
|
|
540
541
|
readOnly,
|
|
541
542
|
sourceId, translate, doCustomButton, doRowJump, blockMenuTreeDrawerOpen,
|
|
542
|
-
doRowAction, doDeleteByCode, editRowEdit, editings, cancelRowEdit, saveRowData, doDelModalOpen
|
|
543
|
-
|
|
543
|
+
doRowAction, doDeleteByCode, editRowEdit, editings, cancelRowEdit, saveRowData, doDelModalOpen,
|
|
544
|
+
doView2D, doEdit2D
|
|
545
|
+
} = props;
|
|
546
|
+
const { buttons, builtInButtons, defShowRowActionCount, strongDeleteConfirmText, edit2DBtnTitle, view2DBtnTitle, deleteBtnTitle } = ltmplConfig;
|
|
544
547
|
|
|
545
548
|
let actionButtons: any[] = [];
|
|
546
549
|
|
|
@@ -573,6 +576,19 @@ export default {
|
|
|
573
576
|
></EditButton>)
|
|
574
577
|
)
|
|
575
578
|
};
|
|
579
|
+
|
|
580
|
+
// 2D图编辑
|
|
581
|
+
if (buttons.includes("edit2D") && doEdit2D && !readOnly) {
|
|
582
|
+
actionButtons.push((!edit2DBtnTitle || edit2DBtnTitle?.length < 4) ? <Button size="small" onClick={() => doEdit2D(record.code)}>{edit2DBtnTitle || <SettingOutlined />}</Button> :
|
|
583
|
+
<Tooltip title={edit2DBtnTitle}><Button size="small" onClick={() => doEdit2D(record.code)} icon={<SettingOutlined />} /></Tooltip>)
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
// 2D图查看
|
|
587
|
+
if (buttons.includes("view2D") && doView2D && !readOnly) {
|
|
588
|
+
actionButtons.push((!view2DBtnTitle || view2DBtnTitle?.length < 4) ? <Button size="small" onClick={() => doView2D(record.code)}>{ltmplConfig.view2DBtnTitle || <PlaySquareOutlined />}</Button> :
|
|
589
|
+
<Tooltip title={edit2DBtnTitle}><Button size="small" onClick={() => doView2D(record.code)} icon={<PlaySquareOutlined />} /></Tooltip>)
|
|
590
|
+
}
|
|
591
|
+
|
|
576
592
|
// 行内编辑
|
|
577
593
|
if (buttons.includes("rowEdit") && !buttons.includes("multiRowEdit")) {
|
|
578
594
|
actionButtons.push(<InlineEditButton
|
|
@@ -804,9 +820,13 @@ export default {
|
|
|
804
820
|
)) {
|
|
805
821
|
actionButtons.push(
|
|
806
822
|
strongDeleteConfirmText ?
|
|
807
|
-
|
|
808
|
-
<
|
|
809
|
-
|
|
823
|
+
((!deleteBtnTitle || deleteBtnTitle?.length < 4) ?
|
|
824
|
+
<Button size="small" type="dashed" danger onClick={() => doDelModalOpen(record)}>
|
|
825
|
+
{deleteBtnTitle || <DeleteOutlined />}
|
|
826
|
+
</Button> : <Tooltip title={deleteBtnTitle}>
|
|
827
|
+
<Button size="small" type="dashed" danger onClick={() => doDelModalOpen(record)} icon={<DeleteOutlined />} />
|
|
828
|
+
</Tooltip>)
|
|
829
|
+
:
|
|
810
830
|
<Popconfirm
|
|
811
831
|
placement="rightBottom"
|
|
812
832
|
title={translate("${确定要[删除]此数据吗}?")}
|
|
@@ -815,9 +835,9 @@ export default {
|
|
|
815
835
|
cancelText={translate("${取消}")}
|
|
816
836
|
okType={"danger"}
|
|
817
837
|
>
|
|
818
|
-
<
|
|
819
|
-
<DeleteOutlined />
|
|
820
|
-
|
|
838
|
+
{(!deleteBtnTitle || deleteBtnTitle?.length < 4) ?
|
|
839
|
+
<Button size="small" type="dashed" danger >{deleteBtnTitle || <DeleteOutlined />}</Button> :
|
|
840
|
+
<Tooltip title={deleteBtnTitle}><Button size="small" type="dashed" danger icon={<DeleteOutlined />} /></Tooltip>}
|
|
821
841
|
</Popconfirm>
|
|
822
842
|
)
|
|
823
843
|
}
|
|
@@ -30,6 +30,7 @@ SupportInputTypes.add('timerange-unorder');
|
|
|
30
30
|
SupportInputTypes.add('text');
|
|
31
31
|
SupportInputTypes.add('textarea');
|
|
32
32
|
SupportInputTypes.add('text-view');
|
|
33
|
+
SupportInputTypes.add('scan-code');
|
|
33
34
|
SupportInputTypes.add('html');
|
|
34
35
|
SupportInputTypes.add('steps');
|
|
35
36
|
SupportInputTypes.add('progress');
|
|
@@ -1536,4 +1536,48 @@ export default class HcserviceV3 {
|
|
|
1536
1536
|
message.error(translate("${发送失败}"), 3);
|
|
1537
1537
|
}
|
|
1538
1538
|
}
|
|
1539
|
+
|
|
1540
|
+
// 请求2D图组件
|
|
1541
|
+
static async get2DComponent(groups: string[]) {
|
|
1542
|
+
let { status, ...res } = await Super.super({
|
|
1543
|
+
url: `/v3/component/2d-config`,
|
|
1544
|
+
method: "GET",
|
|
1545
|
+
query: { groups }
|
|
1546
|
+
});
|
|
1547
|
+
if (status === "success") {
|
|
1548
|
+
return res;
|
|
1549
|
+
} else {
|
|
1550
|
+
return {};
|
|
1551
|
+
}
|
|
1552
|
+
}
|
|
1553
|
+
|
|
1554
|
+
// 保存2D图
|
|
1555
|
+
static async postDiagram2DConfig(recordCode: string, content: string) {
|
|
1556
|
+
let res = await Super.super({
|
|
1557
|
+
url: `/v3/devops/diagram-2d-config`,
|
|
1558
|
+
method: "POST",
|
|
1559
|
+
data: { recordCode, content },
|
|
1560
|
+
});
|
|
1561
|
+
if (res?.status === "success") {
|
|
1562
|
+
message.success(translate("${保存成功}"), 1);
|
|
1563
|
+
return true;
|
|
1564
|
+
} else {
|
|
1565
|
+
message.error(translate("${保存失败}"), 3);
|
|
1566
|
+
return false;
|
|
1567
|
+
}
|
|
1568
|
+
}
|
|
1569
|
+
|
|
1570
|
+
// 查询2D图
|
|
1571
|
+
static async getDiagram2DConfig(recordCode: string) {
|
|
1572
|
+
let res = await Super.super({
|
|
1573
|
+
url: `/v3/devops/diagram-2d-config`,
|
|
1574
|
+
method: "GET",
|
|
1575
|
+
query: { recordCode }
|
|
1576
|
+
});
|
|
1577
|
+
if (res?.status === "success") {
|
|
1578
|
+
return res?.configs || [];
|
|
1579
|
+
} else {
|
|
1580
|
+
return [];
|
|
1581
|
+
}
|
|
1582
|
+
}
|
|
1539
1583
|
}
|