@ibiz-template/runtime 0.3.3 → 0.3.4
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/index.esm.js +255 -43
- package/dist/index.system.min.js +2 -2
- package/dist/index.system.min.js.map +1 -1
- package/out/controller/control/calendar/calendar.controller.d.ts +7 -0
- package/out/controller/control/calendar/calendar.controller.d.ts.map +1 -1
- package/out/controller/control/calendar/calendar.controller.js +28 -2
- package/out/controller/control/chart/chart.controller.d.ts +6 -0
- package/out/controller/control/chart/chart.controller.d.ts.map +1 -1
- package/out/controller/control/chart/chart.controller.js +5 -3
- package/out/controller/control/chart/generator/base-series-generator.d.ts +21 -6
- package/out/controller/control/chart/generator/base-series-generator.d.ts.map +1 -1
- package/out/controller/control/chart/generator/base-series-generator.js +51 -7
- package/out/controller/control/chart/generator/chart-options-generator.d.ts +15 -1
- package/out/controller/control/chart/generator/chart-options-generator.d.ts.map +1 -1
- package/out/controller/control/chart/generator/chart-options-generator.js +23 -3
- package/out/controller/control/chart/generator/funnel-series-generator.d.ts +2 -3
- package/out/controller/control/chart/generator/funnel-series-generator.d.ts.map +1 -1
- package/out/controller/control/chart/generator/funnel-series-generator.js +1 -5
- package/out/controller/control/chart/generator/pie-series-generator.d.ts +2 -3
- package/out/controller/control/chart/generator/pie-series-generator.d.ts.map +1 -1
- package/out/controller/control/chart/generator/pie-series-generator.js +1 -5
- package/out/controller/control/chart/generator/radar-series-generator.d.ts +1 -2
- package/out/controller/control/chart/generator/radar-series-generator.d.ts.map +1 -1
- package/out/controller/control/chart/generator/radar-series-generator.js +1 -4
- package/out/controller/control/exp-bar/chart-exp-bar.controller.d.ts +25 -1
- package/out/controller/control/exp-bar/chart-exp-bar.controller.d.ts.map +1 -1
- package/out/controller/control/exp-bar/chart-exp-bar.controller.js +68 -2
- package/out/interface/controller/state/control/i-chart.state.d.ts +21 -0
- package/out/interface/controller/state/control/i-chart.state.d.ts.map +1 -1
- package/out/service/vo/chart-data/chart-data.d.ts +11 -0
- package/out/service/vo/chart-data/chart-data.d.ts.map +1 -0
- package/out/service/vo/chart-data/chart-data.js +50 -0
- package/out/service/vo/chart-data/index.d.ts +2 -0
- package/out/service/vo/chart-data/index.d.ts.map +1 -0
- package/out/service/vo/chart-data/index.js +1 -0
- package/out/service/vo/index.d.ts +1 -0
- package/out/service/vo/index.d.ts.map +1 -1
- package/out/service/vo/index.js +1 -0
- package/package.json +3 -3
- package/src/controller/control/calendar/calendar.controller.ts +29 -2
- package/src/controller/control/chart/chart.controller.ts +11 -3
- package/src/controller/control/chart/generator/base-series-generator.ts +71 -9
- package/src/controller/control/chart/generator/chart-options-generator.ts +24 -3
- package/src/controller/control/chart/generator/funnel-series-generator.ts +3 -7
- package/src/controller/control/chart/generator/pie-series-generator.ts +3 -7
- package/src/controller/control/chart/generator/radar-series-generator.ts +2 -6
- package/src/controller/control/exp-bar/chart-exp-bar.controller.ts +97 -4
- package/src/interface/controller/state/control/i-chart.state.ts +24 -0
- package/src/service/vo/chart-data/chart-data.ts +75 -0
- package/src/service/vo/chart-data/index.ts +1 -0
- package/src/service/vo/index.ts +1 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IChartExpBar, IDEChart } from '@ibiz/model-core';
|
|
1
|
+
import { IChartExpBar, IDEChart, INavigatable } from '@ibiz/model-core';
|
|
2
2
|
import {
|
|
3
3
|
IChartExpBarState,
|
|
4
4
|
IChartExpBarEvent,
|
|
@@ -6,6 +6,8 @@ import {
|
|
|
6
6
|
INavViewMsg,
|
|
7
7
|
} from '../../../interface';
|
|
8
8
|
import { ExpBarControlController } from './exp-bar.controller';
|
|
9
|
+
import { ChartController } from '../chart';
|
|
10
|
+
import { convertNavData } from '../../../utils';
|
|
9
11
|
|
|
10
12
|
/**
|
|
11
13
|
* 图表导航栏控制器
|
|
@@ -23,6 +25,90 @@ export class ChartExpBarController
|
|
|
23
25
|
>
|
|
24
26
|
implements IChartExpBarController
|
|
25
27
|
{
|
|
28
|
+
/**
|
|
29
|
+
* 导航页面首次打开且没有回显时,
|
|
30
|
+
* 默认取第一条数据进行导航
|
|
31
|
+
* 对于不同的导航,第一条可导航的数据可能定义不同,可以重写改方法。
|
|
32
|
+
* @author lxm
|
|
33
|
+
* @date 2023-08-10 03:58:15
|
|
34
|
+
* @protected
|
|
35
|
+
*/
|
|
36
|
+
protected navByFirstItem(): void {
|
|
37
|
+
const data = this.xDataController.state.items[0];
|
|
38
|
+
if (!data) {
|
|
39
|
+
// 导航视图传空让他导航占位绘制空界面
|
|
40
|
+
this.state.srfnav = '';
|
|
41
|
+
this._evt.emit('onNavViewChange', {
|
|
42
|
+
navViewMsg: {
|
|
43
|
+
key: '',
|
|
44
|
+
isCache: this.isCache,
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
// 默认选中并激活第一项(这里的第一项是我们自己封装的chartData)
|
|
50
|
+
const activeSeriesGenerator = (
|
|
51
|
+
this.xDataController as ChartController
|
|
52
|
+
).generator.seriesGenerators.find(generator => {
|
|
53
|
+
return generator.chartDataArr.length > 0 && generator.model.navAppViewId;
|
|
54
|
+
});
|
|
55
|
+
if (activeSeriesGenerator) {
|
|
56
|
+
this.xDataController.setActive(activeSeriesGenerator.chartDataArr[0]);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* 解析参数
|
|
62
|
+
*
|
|
63
|
+
* @author zk
|
|
64
|
+
* @date 2023-05-29 04:05:52
|
|
65
|
+
* @param {IDETabViewPanel} tabViewPanel
|
|
66
|
+
* @return {*}
|
|
67
|
+
* @memberof ExpBarControlController
|
|
68
|
+
*/
|
|
69
|
+
prepareParams(
|
|
70
|
+
XDataModel: INavigatable & { appDataEntityId?: string },
|
|
71
|
+
data: IData,
|
|
72
|
+
context: IContext,
|
|
73
|
+
params: IParams,
|
|
74
|
+
): { context: IContext; params: IParams } {
|
|
75
|
+
const { context: tempContext, params: tempParams } = super.prepareParams(
|
|
76
|
+
XDataModel,
|
|
77
|
+
data,
|
|
78
|
+
context,
|
|
79
|
+
params,
|
|
80
|
+
);
|
|
81
|
+
// 序列上或配置导航相关参数
|
|
82
|
+
if (data._seriesModelId) {
|
|
83
|
+
const seriesModel = (XDataModel as IDEChart).dechartSerieses?.find(
|
|
84
|
+
series => {
|
|
85
|
+
return series.id === data._seriesModelId;
|
|
86
|
+
},
|
|
87
|
+
);
|
|
88
|
+
if (seriesModel) {
|
|
89
|
+
const { navigateContexts, navigateParams } = seriesModel;
|
|
90
|
+
// 序列上配的导航视图参数和上下文
|
|
91
|
+
const tempContext2 = convertNavData(
|
|
92
|
+
navigateContexts,
|
|
93
|
+
data,
|
|
94
|
+
params,
|
|
95
|
+
tempContext,
|
|
96
|
+
);
|
|
97
|
+
const tempParams2 = convertNavData(
|
|
98
|
+
navigateParams,
|
|
99
|
+
data,
|
|
100
|
+
params,
|
|
101
|
+
tempParams,
|
|
102
|
+
);
|
|
103
|
+
return {
|
|
104
|
+
context: Object.assign(tempContext.clone(), tempContext2),
|
|
105
|
+
params: tempParams2,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return { context: tempContext, params: tempParams };
|
|
110
|
+
}
|
|
111
|
+
|
|
26
112
|
/**
|
|
27
113
|
* 获取导航视图
|
|
28
114
|
*
|
|
@@ -37,11 +123,18 @@ export class ChartExpBarController
|
|
|
37
123
|
context: IContext,
|
|
38
124
|
params: IParams,
|
|
39
125
|
): INavViewMsg {
|
|
40
|
-
|
|
41
|
-
|
|
126
|
+
let viewModelId;
|
|
127
|
+
if (data._seriesModelId) {
|
|
128
|
+
const seriesModel = (this.XDataModel as IDEChart).dechartSerieses?.find(
|
|
129
|
+
series => {
|
|
130
|
+
return series.id === data._seriesModelId;
|
|
131
|
+
},
|
|
132
|
+
);
|
|
133
|
+
viewModelId = seriesModel?.navAppViewId;
|
|
134
|
+
}
|
|
42
135
|
const result = this.prepareParams(this.XDataModel!, data, context, params);
|
|
43
136
|
return {
|
|
44
|
-
key: data
|
|
137
|
+
key: data._uuid,
|
|
45
138
|
context: result.context,
|
|
46
139
|
params: result.params,
|
|
47
140
|
viewId: viewModelId,
|
|
@@ -9,3 +9,27 @@ import { IMDControlState } from './i-md-control.state';
|
|
|
9
9
|
* @extends {IMDControlState}
|
|
10
10
|
*/
|
|
11
11
|
export interface IChartState extends IMDControlState {}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* 图表数据格式
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
export interface IChartData {
|
|
18
|
+
/**
|
|
19
|
+
* 序列模型id
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
_seriesModelId?: string;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* 分组名称
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
28
|
+
_groupName?: string;
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* 分类值
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
_catalog?: string;
|
|
35
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/* eslint-disable no-constructor-return */
|
|
2
|
+
import { createUUID } from 'qx-util';
|
|
3
|
+
import { IDEChartSeries } from '@ibiz/model-core';
|
|
4
|
+
import { IChartData } from '../../../interface';
|
|
5
|
+
|
|
6
|
+
// 更新属性,缺的补充定义
|
|
7
|
+
function updateKeyDefine(target: IParams, keys: string[]): void {
|
|
8
|
+
keys.forEach(key => {
|
|
9
|
+
if (!Object.prototype.hasOwnProperty.call(target, key)) {
|
|
10
|
+
Object.defineProperty(target, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
configurable: true,
|
|
13
|
+
writable: true,
|
|
14
|
+
value: undefined,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export class ChartData implements IChartData {
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
|
+
[key: string | symbol]: any;
|
|
23
|
+
|
|
24
|
+
_seriesModelId?: string;
|
|
25
|
+
|
|
26
|
+
_catalog?: string;
|
|
27
|
+
|
|
28
|
+
_groupName?: string;
|
|
29
|
+
|
|
30
|
+
_uuid?: string;
|
|
31
|
+
|
|
32
|
+
constructor(
|
|
33
|
+
deData: IData,
|
|
34
|
+
seriesModel?: IDEChartSeries,
|
|
35
|
+
catalog?: string,
|
|
36
|
+
groupName?: string,
|
|
37
|
+
) {
|
|
38
|
+
this._seriesModelId = seriesModel?.id;
|
|
39
|
+
|
|
40
|
+
this._catalog = catalog;
|
|
41
|
+
|
|
42
|
+
this._groupName = groupName;
|
|
43
|
+
|
|
44
|
+
this._uuid = createUUID();
|
|
45
|
+
|
|
46
|
+
return new Proxy<ChartData>(this, {
|
|
47
|
+
set(target, p, value): boolean {
|
|
48
|
+
if (Object.prototype.hasOwnProperty.call(deData, p)) {
|
|
49
|
+
deData[p] = value;
|
|
50
|
+
} else {
|
|
51
|
+
target[p] = value;
|
|
52
|
+
}
|
|
53
|
+
return true;
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
get(target, p, _receiver): unknown {
|
|
57
|
+
if (target[p] !== undefined) {
|
|
58
|
+
return target[p];
|
|
59
|
+
}
|
|
60
|
+
if (deData[p] !== undefined) {
|
|
61
|
+
return deData[p];
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
|
|
65
|
+
ownKeys(target): ArrayLike<string | symbol> {
|
|
66
|
+
// 整合所有并排除重复
|
|
67
|
+
const allKeys = [
|
|
68
|
+
...new Set([...Object.keys(target), ...Object.keys(deData)]),
|
|
69
|
+
];
|
|
70
|
+
updateKeyDefine(target, allKeys);
|
|
71
|
+
return allKeys;
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ChartData } from './chart-data';
|
package/src/service/vo/index.ts
CHANGED