| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
 | | <template> |  |   <div class="chart-wrapper" ref="warehouseLine"></div> |  | </template> |  |   |  | <script> |  | import resize from "../resize"; |  |   |  | const echarts = require("echarts"); |  | export default { |  |   name: "warehouseLine", |  |   props: { |  |     chartData: { |  |       type: Object, |  |       default: () => {} |  |     }, |  |     colorList: { |  |       type: Array, |  |       default: () => [] |  |     }, |  |     colors: { |  |       type: String, |  |       default: "#636972" |  |     } |  |   }, |  |   mixins: [resize], |  |   data() { |  |     return {}; |  |   }, |  |   mounted() { |  |     this.initEchart(); |  |   }, |  |   methods: { |  |     initEchart() { |  |       // 基于准备好的dom,初始化echarts实例 |  |       let serieslist = []; |  |       let data = this.chartData.data; |  |       if (data) { |  |         data.forEach((element, index) => { |  |           serieslist.push( |  |             { |  |               name: element.name, |  |               type: "bar", |  |               showBackground: false, |  |               barBorderRadius: 30, |  |               yAxisIndex: 0, |  |               barMaxWidth: 20, |  |               itemStyle: { |  |                 normal: { |  |                   color: new echarts.graphic.LinearGradient( |  |                     0, |  |                     1, |  |                     1, |  |                     0, |  |                     [ |  |                       { |  |                         offset: 0, |  |                         color: this.colorList[index] |  |                       }, |  |   |  |                       { |  |                         offset: 1, |  |                         //改变颜色 【Editby shaocx,2024-12-25】 |  |                         //color: this.colorList[index + 1] |  |                         color: this.colorList[index] |  |                       } |  |                     ], |  |                     false |  |                   ), |  |                   barBorderRadius: 10 |  |                 }, |  |                 barBorderRadius: 4 |  |               }, |  |   |  |               data: element.xdata |  |             } |  |             // { |  |             //   name: data[1].name, |  |             //   type: "bar", |  |             //   showBackground: false, |  |             //   barBorderRadius: 30, |  |             //   yAxisIndex: 0, |  |             //   barMaxWidth: 20, |  |             //   itemStyle: { |  |             //     normal: { |  |             //       color: new echarts.graphic.LinearGradient( |  |             //         0, |  |             //         1, |  |             //         1, |  |             //         0, |  |             //         [ |  |             //           { |  |             //             offset: 0, |  |             //             color: "#A71A2B" |  |             //           }, |  |   |  |             //           { |  |             //             offset: 1, |  |             //             color: "#fc7293" |  |             //           } |  |             //         ], |  |             //         false |  |             //       ), |  |             //       barBorderRadius: 10 |  |             //     }, |  |             //     // color: '#A71A2B', |  |             //     barBorderRadius: 4 |  |             //   }, |  |   |  |             //   data: data[1].xdata |  |             // }, |  |             // { |  |             //   name: data[2].name, |  |             //   type: "bar", |  |             //   showBackground: false, |  |             //   barBorderRadius: 30, |  |             //   yAxisIndex: 0, |  |             //   barMaxWidth: 20, |  |             //   itemStyle: { |  |             //     normal: { |  |             //       color: new echarts.graphic.LinearGradient( |  |             //         0, |  |             //         1, |  |             //         1, |  |             //         0, |  |             //         [ |  |             //           { |  |             //             offset: 0, |  |             //             color: "#A71A2B" |  |             //           }, |  |   |  |             //           { |  |             //             offset: 1, |  |             //             color: "#8477e9" |  |             //           } |  |             //         ], |  |             //         false |  |             //       ), |  |             //       barBorderRadius: 10 |  |             //     }, |  |             //     // color: '#A71A2B', |  |             //     barBorderRadius: 4 |  |             //   }, |  |   |  |             //   data: data[2].xdata |  |             // } |  |           ); |  |         }); |  |       } |  |       this.myChart = echarts.init(this.$refs.warehouseLine); |  |       this.myChart.setOption( |  |         { |  |           title: { |  |             show: true, |  |             text: "", |  |             x: "center", |  |             y: "2%", |  |             textAlign: null, //水平对齐方式,默认根据x设置自动调整,可选为: left' | 'right' | 'center |  |             textStyle: { |  |               //主标题文本样式{"fontSize": 18,"fontWeight": "bolder",} |  |               color: this.colors, |  |               fontWeight: "normal" |  |             } |  |           }, |  |   |  |           color: this.colorList, |  |           legend: { |  |             right: 10, |  |             top: "2%", |  |             textStyle: { |  |               color: this.colors |  |             } |  |           }, |  |           tooltip: { |  |             trigger: "axis", |  |   |  |             axisPointer: { |  |               type: "shadow" |  |             } |  |           }, |  |           grid: { |  |             left: "1%", |  |             right: "4%", |  |             bottom: "5%", |  |             top: "10%", |  |             //    padding:'0 0 10 0', |  |             containLabel: true |  |           }, |  |           xAxis: [ |  |             { |  |               type: "category", |  |               axisLabel: { |  |                 interval: 0, //设置为 1,表示『隔一个标签显示一个标签』 |  |                 margin: 10, |  |                 textStyle: { |  |                   fontSize: 12 |  |                 } |  |               }, |  |               axisLine: { show: true, lineStyle: { color: this.colors, width: 2 } }, |  |               splitLine: { |  |                 show: false, |  |                 lineStyle: { color: this.colors, width: 1 } |  |               }, |  |               axisTick: { |  |                 show: false |  |               }, |  |               data: this.chartData.xdata |  |             } |  |           ], |  |           yAxis: [ |  |             { |  |               type: "value", |  |               splitNumber: 5, |  |               axisLabel: { |  |                 textStyle: { |  |                   fontSize: 12 |  |                 }, |  |                 formatter: "{value} 分钟" |  |               }, |  |               axisLine: { |  |                 show: false, |  |                 lineStyle: { |  |                   color: this.colors, |  |                   width: 1 |  |                 } |  |               }, |  |               axisTick: { |  |                 show: false |  |               }, |  |               splitLine: { |  |                 show: true, |  |                 lineStyle: { |  |                   color: this.colors |  |                 } |  |               } |  |             } |  |           ], |  |           dataZoom: [ |  |             { |  |               type: "inside", |  |               startValue: 0, |  |               endValue: 5 |  |             } |  |           ], |  |           series: serieslist |  |         }, |  |         true |  |       ); |  |     } |  |   }, |  |   watch: { |  |     chartData: { |  |       handler() { |  |         this.initEchart(); |  |       }, |  |       deep: true |  |     } |  |   } |  | }; |  | </script> | 
 |