xt-element-ui 1.2.4 → 1.2.6
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/CHANGELOG.md +72 -0
- package/LICENSE +21 -0
- package/README.md +240 -104
- package/docs/README.md +100 -0
- package/docs/components/base/xt-button.md +114 -0
- package/docs/components/base/xt-card-item.md +104 -0
- package/docs/components/base/xt-card.md +108 -0
- package/docs/components/base/xt-config-provider.md +199 -0
- package/docs/components/base/xt-flex-box.md +115 -0
- package/docs/components/base/xt-grid-box.md +303 -0
- package/docs/components/base/xt-input.md +150 -0
- package/docs/components/base/xt-text.md +212 -0
- package/docs/components/extend/ex-bar.md +68 -0
- package/docs/components/extend/ex-button.md +62 -0
- package/docs/components/extend/ex-card.md +86 -0
- package/docs/components/extend/ex-chart.md +463 -0
- package/docs/components/extend/ex-icon.md +189 -0
- package/docs/components/extend/ex-line.md +71 -0
- package/docs/components/extend/ex-multi.md +156 -0
- package/docs/components/extend/ex-page.md +0 -0
- package/docs/components/extend/ex-pie.md +70 -0
- package/docs/components/extend/ex-select-tree.md +210 -0
- package/docs/components/extend/ex-table.md +591 -0
- package/docs/components/extend/ex-upload.md +134 -0
- package/docs/components/utils/size.md +148 -0
- package/docs/components/utils/theme.md +183 -0
- package/lib/index.common.js +640 -758
- package/lib/index.css +1 -1
- package/lib/index.umd.js +640 -758
- package/lib/index.umd.min.js +5 -5
- package/package.json +80 -39
- package/src/components/ex-chart/ExBar.vue +35 -29
- package/src/components/ex-chart/ExLine.vue +23 -14
- package/src/components/ex-chart/ExMulti.vue +66 -76
- package/src/components/ex-chart/ExPie.vue +26 -18
- package/src/components/ex-chart/index.vue +1 -4
- package/src/components/ex-chart/utils.js +149 -8
- package/src/components/ex-icon/index.js +2 -0
- package/src/components/ex-icon/index.vue +168 -0
- package/src/components/ex-icon/style/index.scss +7 -0
- package/src/components/ex-table/index.vue +3 -3
- package/src/components/index.scss +4 -1
- package/src/components/xt-card-item/images/bar.svg +1 -0
- package/src/components/xt-card-item/images/line.svg +1 -0
- package/src/components/xt-card-item/images/pie.svg +1 -0
- package/src/index.js +3 -0
- package/src/components/ex-chart/ExTrend.vue +0 -124
- package/src/components/ex-chart/theme/blue.js +0 -91
- package/src/components/ex-chart/theme/orange.js +0 -92
- package/src/components/ex-chart/theme/starry.js +0 -106
package/package.json
CHANGED
|
@@ -1,39 +1,80 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "xt-element-ui",
|
|
3
|
-
"version": "1.2.
|
|
4
|
-
"description": "基于
|
|
5
|
-
"main": "lib/index.common.js",
|
|
6
|
-
"module": "lib/index.esm.js",
|
|
7
|
-
"unpkg": "lib/index.umd.min.js",
|
|
8
|
-
"style": "lib/index.css",
|
|
9
|
-
"scripts": {
|
|
10
|
-
"docs:dev": "vuepress dev docs",
|
|
11
|
-
"docs:build": "vuepress build docs",
|
|
12
|
-
"dev": "vue-cli-service serve",
|
|
13
|
-
"lib": "vue-cli-service build --target lib --name index --dest lib src/index.js",
|
|
14
|
-
"prepublishOnly": "npm run lib"
|
|
15
|
-
},
|
|
16
|
-
"peerDependencies": {
|
|
17
|
-
"vue": "^2.6.10"
|
|
18
|
-
},
|
|
19
|
-
"devDependencies": {
|
|
20
|
-
"@vue/cli-service": "~4.5.19",
|
|
21
|
-
"sass-loader": "^10.5.2",
|
|
22
|
-
"vue": "^2.6.10",
|
|
23
|
-
"vuepress": "^1.9.10",
|
|
24
|
-
"vuepress-plugin-demo-container": "^0.2.0",
|
|
25
|
-
"vuepress-theme-reco": "^1.6.17"
|
|
26
|
-
},
|
|
27
|
-
"files": [
|
|
28
|
-
"lib",
|
|
29
|
-
"src",
|
|
30
|
-
"README.md"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "xt-element-ui",
|
|
3
|
+
"version": "1.2.6",
|
|
4
|
+
"description": "基于 Vue 2.7 + ElementUI 的企业级组件库,提供丰富的自定义组件和扩展组件",
|
|
5
|
+
"main": "lib/index.common.js",
|
|
6
|
+
"module": "lib/index.esm.js",
|
|
7
|
+
"unpkg": "lib/index.umd.min.js",
|
|
8
|
+
"style": "lib/index.css",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"docs:dev": "vuepress dev docs",
|
|
11
|
+
"docs:build": "vuepress build docs",
|
|
12
|
+
"dev": "vue-cli-service serve",
|
|
13
|
+
"lib": "vue-cli-service build --target lib --name index --dest lib src/index.js",
|
|
14
|
+
"prepublishOnly": "npm run lib"
|
|
15
|
+
},
|
|
16
|
+
"peerDependencies": {
|
|
17
|
+
"vue": "^2.6.10"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@vue/cli-service": "~4.5.19",
|
|
21
|
+
"sass-loader": "^10.5.2",
|
|
22
|
+
"vue": "^2.6.10",
|
|
23
|
+
"vuepress": "^1.9.10",
|
|
24
|
+
"vuepress-plugin-demo-container": "^0.2.0",
|
|
25
|
+
"vuepress-theme-reco": "^1.6.17"
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"lib",
|
|
29
|
+
"src",
|
|
30
|
+
"README.md",
|
|
31
|
+
"CHANGELOG.md",
|
|
32
|
+
"docs/components/**/*md",
|
|
33
|
+
"docs/README.md"
|
|
34
|
+
],
|
|
35
|
+
"dependencies": {
|
|
36
|
+
"echarts": "^6.1.0",
|
|
37
|
+
"element-ui": "^2.15.14",
|
|
38
|
+
"sass": "^1.32.13",
|
|
39
|
+
"vue-server-renderer": "^2.7.14"
|
|
40
|
+
},
|
|
41
|
+
"keywords": [
|
|
42
|
+
"vue",
|
|
43
|
+
"vue2",
|
|
44
|
+
"element-ui",
|
|
45
|
+
"element",
|
|
46
|
+
"ui",
|
|
47
|
+
"components",
|
|
48
|
+
"xt-element-ui",
|
|
49
|
+
"chart",
|
|
50
|
+
"table",
|
|
51
|
+
"echarts",
|
|
52
|
+
"component-library",
|
|
53
|
+
"vue-components",
|
|
54
|
+
"admin",
|
|
55
|
+
"dashboard"
|
|
56
|
+
],
|
|
57
|
+
"author": "XT-Element-UI Contributors",
|
|
58
|
+
"license": "MIT",
|
|
59
|
+
"bugs": {
|
|
60
|
+
"url": "https://github.com/JobWebNie/xt-element-ui/issues"
|
|
61
|
+
},
|
|
62
|
+
"homepage": "https://JobWebNie.github.io/xt-element-ui/",
|
|
63
|
+
"repository": {
|
|
64
|
+
"type": "git",
|
|
65
|
+
"url": "git+https://github.com/JobWebNie/xt-element-ui.git"
|
|
66
|
+
},
|
|
67
|
+
"engines": {
|
|
68
|
+
"node": ">=12.0.0",
|
|
69
|
+
"npm": ">=6.0.0"
|
|
70
|
+
},
|
|
71
|
+
"browserslist": [
|
|
72
|
+
"> 1%",
|
|
73
|
+
"last 2 versions",
|
|
74
|
+
"not dead",
|
|
75
|
+
"Chrome >= 60",
|
|
76
|
+
"Firefox >= 60",
|
|
77
|
+
"Safari >= 10.1",
|
|
78
|
+
"Edge >= 15"
|
|
79
|
+
]
|
|
80
|
+
}
|
|
@@ -10,16 +10,16 @@ export default {
|
|
|
10
10
|
type: Array,
|
|
11
11
|
default: () => {
|
|
12
12
|
return [
|
|
13
|
-
{ value: 65,
|
|
14
|
-
{ value: 70,
|
|
15
|
-
{ value: 73,
|
|
16
|
-
{ value: 78,
|
|
17
|
-
{ value: 88,
|
|
18
|
-
{ value: 93,
|
|
19
|
-
{ value: 99,
|
|
20
|
-
{ value: 103,
|
|
21
|
-
{ value: 113,
|
|
22
|
-
{ value: 125,
|
|
13
|
+
{ value: 65, label: "吴十" },
|
|
14
|
+
{ value: 70, label: "唐九" },
|
|
15
|
+
{ value: 73, label: "钱一" },
|
|
16
|
+
{ value: 78, label: "孙二" },
|
|
17
|
+
{ value: 88, label: "刘八" },
|
|
18
|
+
{ value: 93, label: "王七" },
|
|
19
|
+
{ value: 99, label: "赵六" },
|
|
20
|
+
{ value: 103, label: "宋五" },
|
|
21
|
+
{ value: 113, label: "李四" },
|
|
22
|
+
{ value: 125, label: "张三" }
|
|
23
23
|
];
|
|
24
24
|
}
|
|
25
25
|
},
|
|
@@ -28,15 +28,15 @@ export default {
|
|
|
28
28
|
type: String,
|
|
29
29
|
default: "medium"
|
|
30
30
|
},
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
fieldKeys: {
|
|
32
|
+
type: Object,
|
|
33
|
+
default: () => ({ label: "label", value: "value", data: "data" })
|
|
34
|
+
},
|
|
35
35
|
markPoint: {
|
|
36
36
|
type: Boolean,
|
|
37
37
|
default: false
|
|
38
38
|
},
|
|
39
|
-
|
|
39
|
+
unit: {
|
|
40
40
|
type: String,
|
|
41
41
|
default: ""
|
|
42
42
|
},
|
|
@@ -48,7 +48,7 @@ export default {
|
|
|
48
48
|
type: Boolean,
|
|
49
49
|
default: false
|
|
50
50
|
},
|
|
51
|
-
longLable: {
|
|
51
|
+
longLable: {
|
|
52
52
|
type: Boolean,
|
|
53
53
|
default: false
|
|
54
54
|
},
|
|
@@ -63,6 +63,10 @@ export default {
|
|
|
63
63
|
splitNumber: {
|
|
64
64
|
type: Number,
|
|
65
65
|
default: 5
|
|
66
|
+
},
|
|
67
|
+
simpleMode: {
|
|
68
|
+
type: Boolean,
|
|
69
|
+
default: false
|
|
66
70
|
}
|
|
67
71
|
},
|
|
68
72
|
data() {
|
|
@@ -79,15 +83,10 @@ export default {
|
|
|
79
83
|
_self.initChart();
|
|
80
84
|
}
|
|
81
85
|
},
|
|
82
|
-
|
|
86
|
+
unit: {
|
|
83
87
|
deep: true,
|
|
84
88
|
handler(newVal, oldVal) {
|
|
85
89
|
const _self = this;
|
|
86
|
-
if (newVal == "kW.h") {
|
|
87
|
-
_self.name = "用电量";
|
|
88
|
-
} else if (newVal == "m³") {
|
|
89
|
-
_self.name = "用气量";
|
|
90
|
-
}
|
|
91
90
|
_self.initChart();
|
|
92
91
|
}
|
|
93
92
|
},
|
|
@@ -101,7 +100,10 @@ export default {
|
|
|
101
100
|
methods: {
|
|
102
101
|
initChart() {
|
|
103
102
|
const _self = this;
|
|
104
|
-
|
|
103
|
+
const keys = Object.assign(
|
|
104
|
+
{ label: "label", value: "value", data: "data" },
|
|
105
|
+
_self.fieldKeys || {}
|
|
106
|
+
);
|
|
105
107
|
const _xAxis = {
|
|
106
108
|
type: "category",
|
|
107
109
|
inverse: this.reverse,
|
|
@@ -112,7 +114,7 @@ export default {
|
|
|
112
114
|
}
|
|
113
115
|
},
|
|
114
116
|
data: _self.chartData.map((item) => {
|
|
115
|
-
return item.
|
|
117
|
+
return item[keys.label];
|
|
116
118
|
})
|
|
117
119
|
};
|
|
118
120
|
const _yAxis = {
|
|
@@ -166,8 +168,8 @@ export default {
|
|
|
166
168
|
},
|
|
167
169
|
xAxis: this.reverse ? _yAxis : _xAxis,
|
|
168
170
|
yAxis: this.reverse ? _xAxis : _yAxis,
|
|
169
|
-
series:
|
|
170
|
-
name: _self.
|
|
171
|
+
series: {
|
|
172
|
+
name: _self.unit,
|
|
171
173
|
type: "bar",
|
|
172
174
|
markPoint: {
|
|
173
175
|
data: [
|
|
@@ -177,21 +179,25 @@ export default {
|
|
|
177
179
|
},
|
|
178
180
|
avoidLabelOverlap: true,
|
|
179
181
|
data: _self.chartData.map((item, ind) => {
|
|
180
|
-
const
|
|
182
|
+
const label = item[keys.label];
|
|
183
|
+
const value = item[keys.value];
|
|
181
184
|
return {
|
|
182
185
|
value,
|
|
183
|
-
name,
|
|
186
|
+
name: label,
|
|
184
187
|
tooltip: {
|
|
185
188
|
borderWidth: 1
|
|
186
189
|
}
|
|
187
190
|
};
|
|
188
191
|
})
|
|
189
|
-
}
|
|
192
|
+
},
|
|
190
193
|
dataZoom: _self.showZoom ? [{ height: 20, bottom: 0 }] : [],
|
|
191
194
|
};
|
|
192
195
|
if (!this.markPoint) {
|
|
193
196
|
this.$delete(option.series[0], "markPoint");
|
|
194
197
|
}
|
|
198
|
+
if (this.simpleMode) {
|
|
199
|
+
EchartsUtil.applySimpleMode(option, "bar");
|
|
200
|
+
}
|
|
195
201
|
this.myChart = EchartsUtil.init(_self.$refs.barchart, this.theme, option, this.size);
|
|
196
202
|
}
|
|
197
203
|
}
|
|
@@ -6,10 +6,6 @@ import EchartsUtil from "./utils";
|
|
|
6
6
|
export default {
|
|
7
7
|
name: "XtLine",
|
|
8
8
|
props: {
|
|
9
|
-
isDark: {
|
|
10
|
-
type: Boolean, // 设置文字标线为白色系
|
|
11
|
-
default: false
|
|
12
|
-
},
|
|
13
9
|
theme: {},
|
|
14
10
|
size: {
|
|
15
11
|
type: String,
|
|
@@ -19,23 +15,31 @@ export default {
|
|
|
19
15
|
type: Array,
|
|
20
16
|
default: () => {
|
|
21
17
|
return [
|
|
22
|
-
{ value: 53,
|
|
23
|
-
{ value: 10,
|
|
24
|
-
{ value: 60,
|
|
18
|
+
{ value: 53, label: "张三" },
|
|
19
|
+
{ value: 10, label: "李四" },
|
|
20
|
+
{ value: 60, label: "宋五" }
|
|
25
21
|
];
|
|
26
22
|
}
|
|
27
23
|
},
|
|
24
|
+
fieldKeys: {
|
|
25
|
+
type: Object,
|
|
26
|
+
default: () => ({ label: "label", value: "value", data: "data" })
|
|
27
|
+
},
|
|
28
28
|
isArea: {
|
|
29
29
|
type: Boolean,
|
|
30
30
|
default: false
|
|
31
31
|
},
|
|
32
|
-
|
|
32
|
+
unit: {
|
|
33
33
|
type: String,
|
|
34
34
|
default: ""
|
|
35
35
|
},
|
|
36
36
|
intervalvalue: {
|
|
37
37
|
type: Number,
|
|
38
38
|
default: 0
|
|
39
|
+
},
|
|
40
|
+
simpleMode: {
|
|
41
|
+
type: Boolean,
|
|
42
|
+
default: false
|
|
39
43
|
}
|
|
40
44
|
},
|
|
41
45
|
data() {
|
|
@@ -51,7 +55,7 @@ export default {
|
|
|
51
55
|
_self.initChart();
|
|
52
56
|
}
|
|
53
57
|
},
|
|
54
|
-
|
|
58
|
+
unit: {
|
|
55
59
|
deep: true,
|
|
56
60
|
handler(newVal, oldVal) {
|
|
57
61
|
const _self = this;
|
|
@@ -67,9 +71,11 @@ export default {
|
|
|
67
71
|
},
|
|
68
72
|
methods: {
|
|
69
73
|
initChart() {
|
|
70
|
-
console.log(this.intervalvalue);
|
|
71
74
|
const _self = this;
|
|
72
|
-
|
|
75
|
+
const keys = Object.assign(
|
|
76
|
+
{ label: "label", value: "value", data: "data" },
|
|
77
|
+
_self.fieldKeys || {}
|
|
78
|
+
);
|
|
73
79
|
const option = {
|
|
74
80
|
animationDuration: 500,
|
|
75
81
|
grid: {
|
|
@@ -91,7 +97,7 @@ export default {
|
|
|
91
97
|
},
|
|
92
98
|
boundaryGap: false,
|
|
93
99
|
data: _self.chartData.map((item) => {
|
|
94
|
-
return item.
|
|
100
|
+
return item[keys.label];
|
|
95
101
|
})
|
|
96
102
|
}],
|
|
97
103
|
yAxis: {
|
|
@@ -109,7 +115,7 @@ export default {
|
|
|
109
115
|
type: "dashed"
|
|
110
116
|
}
|
|
111
117
|
},
|
|
112
|
-
name: _self.
|
|
118
|
+
name: _self.unit,
|
|
113
119
|
scale: true,
|
|
114
120
|
axisLabel: {
|
|
115
121
|
margin: 2,
|
|
@@ -130,11 +136,14 @@ export default {
|
|
|
130
136
|
smooth: true,
|
|
131
137
|
avoidLabelOverlap: true,
|
|
132
138
|
data: _self.chartData.map((item, ind) => {
|
|
133
|
-
return item.value;
|
|
139
|
+
return item[keys.value];
|
|
134
140
|
})
|
|
135
141
|
}]
|
|
136
142
|
};
|
|
137
143
|
|
|
144
|
+
if (this.simpleMode) {
|
|
145
|
+
EchartsUtil.applySimpleMode(option, "line");
|
|
146
|
+
}
|
|
138
147
|
this.myChart = EchartsUtil.init(_self.$refs.linechart, this.theme, option, this.size);
|
|
139
148
|
}
|
|
140
149
|
}
|
|
@@ -6,15 +6,20 @@ import EchartsUtil from "./utils";
|
|
|
6
6
|
export default {
|
|
7
7
|
name: "XtMulti",
|
|
8
8
|
props: {
|
|
9
|
-
isDark: {
|
|
10
|
-
type: Boolean, // 设置文字标线为白色系
|
|
11
|
-
default: false
|
|
12
|
-
},
|
|
13
9
|
theme: {},
|
|
14
10
|
size: {
|
|
15
11
|
type: String,
|
|
16
12
|
default: "medium"
|
|
17
13
|
},
|
|
14
|
+
fieldKeys: {
|
|
15
|
+
type: Object,
|
|
16
|
+
default: () => ({ label: "label", value: "value", data: "data" })
|
|
17
|
+
},
|
|
18
|
+
simpleMode: {
|
|
19
|
+
type: Boolean,
|
|
20
|
+
default: false
|
|
21
|
+
},
|
|
22
|
+
highlightKey: String,
|
|
18
23
|
config: {
|
|
19
24
|
type: Object,
|
|
20
25
|
default() {
|
|
@@ -23,7 +28,6 @@ export default {
|
|
|
23
28
|
rotate: 0,
|
|
24
29
|
gridbottom: 40,
|
|
25
30
|
isShowthreshold: false
|
|
26
|
-
|
|
27
31
|
};
|
|
28
32
|
}
|
|
29
33
|
},
|
|
@@ -33,6 +37,7 @@ export default {
|
|
|
33
37
|
return [
|
|
34
38
|
{
|
|
35
39
|
label: "入户数",
|
|
40
|
+
unit: "户",
|
|
36
41
|
data: [
|
|
37
42
|
{ label: "01月", value: 980 },
|
|
38
43
|
{ label: "02月", value: 806 },
|
|
@@ -50,6 +55,7 @@ export default {
|
|
|
50
55
|
},
|
|
51
56
|
{
|
|
52
57
|
label: "隐患数",
|
|
58
|
+
unit: "个",
|
|
53
59
|
data: [
|
|
54
60
|
{ label: "01月", value: 200 },
|
|
55
61
|
{ label: "02月", value: 120 },
|
|
@@ -67,6 +73,7 @@ export default {
|
|
|
67
73
|
},
|
|
68
74
|
{
|
|
69
75
|
label: "整改数",
|
|
76
|
+
unit: "个",
|
|
70
77
|
data: [
|
|
71
78
|
{ label: "01月", value: 25 },
|
|
72
79
|
{ label: "02月", value: 19 },
|
|
@@ -88,20 +95,11 @@ export default {
|
|
|
88
95
|
colors: {
|
|
89
96
|
type: Array,
|
|
90
97
|
default: () => { return []; }
|
|
91
|
-
},
|
|
92
|
-
selectedNew: {
|
|
93
|
-
type: Object,
|
|
94
|
-
default: null
|
|
95
|
-
},
|
|
96
|
-
energyType: {
|
|
97
|
-
type: [String, Array],
|
|
98
|
-
default: ""
|
|
99
98
|
}
|
|
100
99
|
},
|
|
101
100
|
data() {
|
|
102
101
|
return {
|
|
103
102
|
myChart: null
|
|
104
|
-
// chartList: []
|
|
105
103
|
};
|
|
106
104
|
},
|
|
107
105
|
watch: {
|
|
@@ -114,18 +112,6 @@ export default {
|
|
|
114
112
|
_self.initChart();
|
|
115
113
|
}
|
|
116
114
|
},
|
|
117
|
-
energyType: {
|
|
118
|
-
deep: true,
|
|
119
|
-
handler(newVal, oldVal) {
|
|
120
|
-
if (newVal && oldVal && newVal.toString() == oldVal.toString()) {
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
this.myChart && this.myChart.dispose();
|
|
124
|
-
this.myChart = null;
|
|
125
|
-
const _self = this;
|
|
126
|
-
_self.initChart();
|
|
127
|
-
}
|
|
128
|
-
},
|
|
129
115
|
theme(newVal) {
|
|
130
116
|
this.myChart && this.myChart.dispose();
|
|
131
117
|
this.myChart = null;
|
|
@@ -138,24 +124,27 @@ export default {
|
|
|
138
124
|
methods: {
|
|
139
125
|
initChart() {
|
|
140
126
|
const _self = this;
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
127
|
+
const keys = Object.assign(
|
|
128
|
+
{ label: "label", value: "value", data: "data" },
|
|
129
|
+
_self.fieldKeys || {}
|
|
130
|
+
);
|
|
131
|
+
|
|
132
|
+
// 从 chartData 中收集所有 unit,并保持首次出现顺序去重
|
|
133
|
+
const uniqueUnits = [];
|
|
134
|
+
(_self.chartData || []).forEach(item => {
|
|
135
|
+
const u = item.unit || "";
|
|
136
|
+
if (uniqueUnits.indexOf(u) === -1) {
|
|
137
|
+
uniqueUnits.push(u);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
const groupYAxis = (unit, index) => {
|
|
142
|
+
const yAxis = {
|
|
144
143
|
type: "value",
|
|
145
144
|
name: unit,
|
|
146
|
-
axisLine: {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
150
|
-
},
|
|
151
|
-
axisTick: {
|
|
152
|
-
show: false
|
|
153
|
-
},
|
|
154
|
-
splitLine: {
|
|
155
|
-
lineStyle: {
|
|
156
|
-
type: "dashed"
|
|
157
|
-
}
|
|
158
|
-
},
|
|
145
|
+
axisLine: { show: false, lineStyle: {} },
|
|
146
|
+
axisTick: { show: false },
|
|
147
|
+
splitLine: { lineStyle: { type: "dashed" } },
|
|
159
148
|
axisLabel: {
|
|
160
149
|
formatter: function(value, index) {
|
|
161
150
|
if (value >= 10000 && value < 10000000) {
|
|
@@ -167,20 +156,35 @@ export default {
|
|
|
167
156
|
}
|
|
168
157
|
}
|
|
169
158
|
};
|
|
159
|
+
if (index > 0) {
|
|
160
|
+
yAxis.position = "right";
|
|
161
|
+
yAxis.splitLine = { show: false };
|
|
162
|
+
}
|
|
163
|
+
return yAxis;
|
|
170
164
|
};
|
|
165
|
+
|
|
166
|
+
const yAxisList = uniqueUnits.length
|
|
167
|
+
? uniqueUnits.map((unit, idx) => groupYAxis(unit, idx))
|
|
168
|
+
: [groupYAxis("", 0)];
|
|
169
|
+
|
|
170
|
+
const unitToYAxisIndex = {};
|
|
171
|
+
uniqueUnits.forEach((unit, idx) => {
|
|
172
|
+
unitToYAxisIndex[unit] = idx;
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
const firstSeriesData = _self.chartData && _self.chartData.length
|
|
176
|
+
? _self.chartData[0][keys.data] || []
|
|
177
|
+
: [];
|
|
178
|
+
|
|
171
179
|
const option = {
|
|
172
180
|
legend: {
|
|
173
181
|
right: 20,
|
|
174
182
|
top: 0,
|
|
175
183
|
show: true,
|
|
176
184
|
data: _self.chartData.map((item) => {
|
|
177
|
-
return item.label;
|
|
185
|
+
return item[keys.label];
|
|
178
186
|
}),
|
|
179
|
-
|
|
180
|
-
selected: _self.selectedNew,
|
|
181
|
-
textStyle: {
|
|
182
|
-
fontSize: 12
|
|
183
|
-
}
|
|
187
|
+
textStyle: {}
|
|
184
188
|
},
|
|
185
189
|
tooltip: {
|
|
186
190
|
borderWidth: 1,
|
|
@@ -197,20 +201,14 @@ export default {
|
|
|
197
201
|
},
|
|
198
202
|
xAxis: {
|
|
199
203
|
type: "category",
|
|
200
|
-
// splitLine: {
|
|
201
|
-
// show: true,
|
|
202
|
-
// lineStyle: {
|
|
203
|
-
// type: "dashed"
|
|
204
|
-
// }
|
|
205
|
-
// },
|
|
206
204
|
axisLabel: {
|
|
207
205
|
rotate: this.config.rotate
|
|
208
206
|
},
|
|
209
|
-
data:
|
|
210
|
-
return item.label;
|
|
211
|
-
})
|
|
207
|
+
data: firstSeriesData.map((item) => {
|
|
208
|
+
return item[keys.label];
|
|
209
|
+
})
|
|
212
210
|
},
|
|
213
|
-
yAxis:
|
|
211
|
+
yAxis: yAxisList,
|
|
214
212
|
dataZoom: [
|
|
215
213
|
{
|
|
216
214
|
type: "inside",
|
|
@@ -219,33 +217,25 @@ export default {
|
|
|
219
217
|
end: 100
|
|
220
218
|
}
|
|
221
219
|
],
|
|
222
|
-
series: this.getSeriesData()
|
|
220
|
+
series: this.getSeriesData(unitToYAxisIndex, keys)
|
|
223
221
|
};
|
|
222
|
+
if (this.simpleMode) {
|
|
223
|
+
EchartsUtil.applySimpleMode(option, "multi");
|
|
224
|
+
}
|
|
224
225
|
this.myChart = EchartsUtil.init(_self.$refs.multilinechart, this.theme, option, this.size);
|
|
225
226
|
},
|
|
226
|
-
getSeriesData() {
|
|
227
|
-
// 创建 24小时 时间数据填充对象
|
|
227
|
+
getSeriesData(unitToYAxisIndex, keys) {
|
|
228
228
|
const _self = this;
|
|
229
|
-
|
|
230
229
|
const _seriesData = [];
|
|
231
|
-
_self.chartData.
|
|
232
|
-
|
|
233
|
-
const _isNUll = item.data.some(it => !it.value || it.value == "--");
|
|
234
|
-
const _itemNull = {
|
|
235
|
-
type: "",
|
|
236
|
-
name: item.label,
|
|
237
|
-
connectNulls: true, // 断点连线,true-连接,false-不连接
|
|
238
|
-
data: item.data.map(it => it.value),
|
|
239
|
-
tooltip: {
|
|
240
|
-
show: false
|
|
241
|
-
}
|
|
242
|
-
};
|
|
230
|
+
_self.chartData.forEach((item, ind) => {
|
|
231
|
+
const seriesItems = item[keys.data] || [];
|
|
243
232
|
const _item = {
|
|
244
233
|
animation: true,
|
|
245
|
-
name: item.label,
|
|
234
|
+
name: item[keys.label],
|
|
246
235
|
type: item.type || "bar",
|
|
247
236
|
avoidLabelOverlap: true,
|
|
248
|
-
data:
|
|
237
|
+
data: seriesItems.map(it => it[keys.value]),
|
|
238
|
+
yAxisIndex: unitToYAxisIndex[item.unit || ""] != null ? unitToYAxisIndex[item.unit || ""] : 0
|
|
249
239
|
};
|
|
250
240
|
_seriesData.push(_item);
|
|
251
241
|
});
|