openatc-components 0.1.139 → 0.1.142

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.
Files changed (70) hide show
  1. package/package/kisscomps/components/CommonKanban/CommonKanban.vue +8 -4
  2. package/package/kisscomps/components/DrawChannelization/drawsvg/overlapAssociatedComponent.vue +1 -1
  3. package/package/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.vue +1 -1
  4. package/package/kisscomps/components/ExpendConfig/ExpendConfig.vue +1 -1
  5. package/package/kisscomps/components/KanBan/kanban.vue +1 -1
  6. package/package/kisscomps/components/OverLap/OverLap.vue +2 -2
  7. package/package/kisscomps/components/PatternOptimize/PatternOptimize.vue +1 -1
  8. package/package/kisscomps/components/PatternStatus/PatternStatus.vue +21 -20
  9. package/package/kisscomps/components/PhaseMarker/phasemarker.vue +1 -1
  10. package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +1 -1
  11. package/package/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +54 -13
  12. package/package/kisscomps/components/SchemeConfig/azimuthlocking/utils.js +8 -8
  13. package/package/kisscomps/components/SchemeConfig/manualControlModal/index.vue +2 -0
  14. package/package/kisscomps/components/SchemeConfig/priorityControl/index.vue +1 -1
  15. package/package/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +1 -1
  16. package/package/kisscomps/components/Stages/index.vue +32 -2
  17. package/package/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +458 -626
  18. package/package/kisscomps/components/XiaoKanban/DirSelector.vue +356 -0
  19. package/package/kisscomps/components/XiaoKanban/index.vue +102 -0
  20. package/package/kisscomps/components/patternConfig/index.js +2 -0
  21. package/package/kisscomps/components/patternConfig/index.vue +1010 -0
  22. package/package/kisscomps/components/patternConfig/pattern/patternTable.vue +349 -0
  23. package/package/kisscomps/components/patternConfig/pattern/planChart/model/coordinationModel.js +665 -0
  24. package/package/kisscomps/components/patternConfig/planContent.vue +572 -0
  25. package/package/kisscomps/components/patternConfig/planMenu.vue +329 -0
  26. package/package/kisscomps/components/patternConfig/utils.js +152 -0
  27. package/package/kisscomps/index.js +4 -0
  28. package/package/kissui.min.js +1 -1
  29. package/package.json +14 -13
  30. package/src/api/control.js +19 -0
  31. package/src/api/device.js +135 -0
  32. package/src/api/route.js +171 -0
  33. package/src/i18n/language/en.js +149 -0
  34. package/src/i18n/language/zh.js +133 -0
  35. package/src/kisscomps/components/CommonKanban/CommonKanban.vue +8 -4
  36. package/src/kisscomps/components/DrawChannelization/drawsvg/overlapAssociatedComponent.vue +1 -1
  37. package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.vue +1 -1
  38. package/src/kisscomps/components/ExpendConfig/ExpendConfig.vue +1 -1
  39. package/src/kisscomps/components/KanBan/kanban.vue +1 -1
  40. package/src/kisscomps/components/OverLap/OverLap.vue +2 -2
  41. package/src/kisscomps/components/PatternOptimize/PatternOptimize.vue +1 -1
  42. package/src/kisscomps/components/PatternStatus/PatternStatus.vue +21 -20
  43. package/src/kisscomps/components/PhaseMarker/phasemarker.vue +1 -1
  44. package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +1 -1
  45. package/src/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +54 -13
  46. package/src/kisscomps/components/SchemeConfig/azimuthlocking/utils.js +8 -8
  47. package/src/kisscomps/components/SchemeConfig/manualControlModal/index.vue +2 -0
  48. package/src/kisscomps/components/SchemeConfig/priorityControl/index.vue +1 -1
  49. package/src/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +1 -1
  50. package/src/kisscomps/components/Stages/index.vue +32 -2
  51. package/src/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +458 -626
  52. package/src/kisscomps/components/XiaoKanban/DirSelector.vue +356 -0
  53. package/src/kisscomps/components/XiaoKanban/index.vue +102 -0
  54. package/src/kisscomps/components/patternConfig/index.js +2 -0
  55. package/src/kisscomps/components/patternConfig/index.vue +1010 -0
  56. package/src/kisscomps/components/patternConfig/pattern/patternTable.vue +349 -0
  57. package/src/kisscomps/components/patternConfig/pattern/planChart/model/coordinationModel.js +665 -0
  58. package/src/kisscomps/components/patternConfig/planContent.vue +572 -0
  59. package/src/kisscomps/components/patternConfig/planMenu.vue +329 -0
  60. package/src/kisscomps/components/patternConfig/utils.js +152 -0
  61. package/src/kisscomps/index.js +4 -0
  62. package/src/lib/publicjs/KissApi.js +2 -2
  63. package/src/router/index.js +7 -0
  64. package/src/utils/auth.js +24 -3
  65. package/src/views/intersection.vue +1 -1
  66. package/src/views/patternConfig.vue +1468 -0
  67. package/static/apiconfig.json +85 -0
  68. package/static/styles/common.scss +2 -0
  69. package/static/styles/patternConfig.scss +57 -0
  70. package/static/styles/xiaokanban.scss +51 -0
@@ -0,0 +1,572 @@
1
+ /**
2
+ * Copyright (c) 2020 kedacom
3
+ * OpenATC is licensed under Mulan PSL v2.
4
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
5
+ * You may obtain a copy of Mulan PSL v2 at:
6
+ * http://license.coscl.org.cn/MulanPSL2
7
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
8
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
9
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
10
+ * See the Mulan PSL v2 for more details.
11
+ **/
12
+ <template>
13
+ <div class="planContent" v-if="!!chooseId">
14
+ <div class="mask" v-if="maskVisible" @click ="clickMask"></div>
15
+ <div class="btnGroup" v-show="false">
16
+ <el-button class="btn" type="primary" @click="handleCreate">{{$t('openatccomponents.greenwaveoptimize.generate')}}</el-button>
17
+ <div class="editbtn" :style="{zIndex: zIndexObj.editZIndex}">
18
+ <el-popover placement="top-start" trigger="manual" v-model="maskVisible" width="290">
19
+ <div class="tipContent">
20
+ <div>
21
+ <i class="iconfont icon-yindaoicon1 handicon"></i>
22
+ </div>
23
+ <div class="text">{{$t('openatccomponents.greenwaveoptimize.createconfig')}}</div>
24
+ </div>
25
+ <button slot="reference" class="btn" @click="handleEdit" ref="editbtn">{{$t('openatccomponents.greenwaveoptimize.edit')}}</button>
26
+ </el-popover>
27
+ </div>
28
+ <el-button class="btn" type="primary" @click="Download" style="margin-left:10px;">{{$t('openatc.button.download')}}</el-button>
29
+ </div>
30
+ <el-tabs v-model="activeName" type="card" @tab-click="handleClick" style="border:0px solid red;height:40%;">
31
+ <el-tab-pane :label="$t('openatccomponents.greenwaveoptimize.timespace')" name="first">
32
+ <!-- <PlanChart ref="planchart"/> -->
33
+ </el-tab-pane>
34
+ </el-tabs>
35
+ <el-tabs v-model="activeName2" type="card" @tab-click="handleClick" style="border:0px solid red;height:50%;">
36
+ <el-tab-pane :label="$t('openatccomponents.greenwaveoptimize.pattern')" name="second">
37
+ <!-- <PatternTable ref="patterntable" @onNewPatternListChange="onNewPatternListChange"/> -->
38
+ </el-tab-pane>
39
+ </el-tabs>
40
+ <Messagebox :visible="messageboxVisible" :text="$t('openatccomponents.greenwaveoptimize.confirmdownloadpattern')" @cancle="cancle" @ok="ok"/>
41
+ </div>
42
+ </template>
43
+
44
+ <script>
45
+ import PatternTable from './pattern/patternTable'
46
+ // import PlanChart from './pattern/planChart/index'
47
+ import { GetRouteInfo,
48
+ getAllPatternOfDevs, getAllPhaseOfDevs,
49
+ // getAllPatternOfRoute, getAllPhaseOfRoute,
50
+ generateRoute, updateRoutePattern, downloadRoutePattern, deleteRoutePattern } from '../../../api/route'
51
+ import Messagebox from '../../components/MessageBox/index'
52
+ import { getMessageByCode } from '../../../utils/responseMessage'
53
+ export default {
54
+ name: 'PlanContent',
55
+ data () {
56
+ return {
57
+ chooseId: 0,
58
+ timer: 0,
59
+ activeName: 'first',
60
+ activeName2: 'second',
61
+ maskVisible: false, // 引导遮罩层是否显示
62
+ configurationVisible: false, // 配置界面是否显示
63
+ messageboxVisible: false, // 关闭界面二期确认弹窗是否显示
64
+ addNum: 0,
65
+ mock: [],
66
+ agentids: [],
67
+ routeData: {}, // 单个协调路线的全部信息
68
+ patternList: [],
69
+ phaseList: [],
70
+ greenwave: []
71
+ }
72
+ },
73
+ components: {
74
+ PatternTable,
75
+ // PlanChart,
76
+ Messagebox
77
+ },
78
+ props: {
79
+ schemeData: {
80
+ type: Array
81
+ },
82
+ step: {
83
+ type: Boolean
84
+ },
85
+ zIndexObj: {
86
+ type: Object
87
+ }
88
+ },
89
+ watch: {
90
+ schemeData: {
91
+ handler: function (val) {
92
+ if (val && !val.length && this.step) {
93
+ this.maskVisible = true
94
+ // 模拟一次手动点击,触发tip显示
95
+ this.$refs.editbtn.click()
96
+ }
97
+ },
98
+ deep: true
99
+ }
100
+ },
101
+ mounted () {
102
+ },
103
+ destroyed () {
104
+ this.closeInterval()
105
+ },
106
+ methods: {
107
+ init (chooseId, editableTab, agentids) {
108
+ if (this.agentids.join('') !== agentids.join('')) {
109
+ // reset data
110
+ this.patternList = []
111
+ this.phaseList = []
112
+ }
113
+ this.agentids = agentids
114
+ this.chooseId = chooseId
115
+ // this.getRouteInfo()
116
+ this.routeData = editableTab
117
+ this.getAllPatternOfRoute()
118
+ },
119
+ getPatternListFromTab (tab, list) {
120
+ let res = []
121
+ let devs = tab.devs
122
+ for (let dev of devs) {
123
+ if (!dev.patternList || dev.patternList.length === 0) {
124
+ res = list
125
+ return res
126
+ }
127
+ }
128
+ let devPatternList = devs.map(item => {
129
+ let pattern = {
130
+ agentid: item.agentid,
131
+ feature: {
132
+ patternList: item.patternList
133
+ }
134
+ }
135
+ return pattern
136
+ })
137
+ res = devPatternList
138
+ return res
139
+ },
140
+ getPhaseListFromTab (tab) {
141
+ let res = []
142
+ return res
143
+ },
144
+ closeInterval () {
145
+ clearInterval(this.timer)
146
+ },
147
+ cancle () {
148
+ this.messageboxVisible = false
149
+ },
150
+ ok () {
151
+ this.messageboxVisible = false
152
+ this.handleDownload()
153
+ },
154
+ Download () {
155
+ this.messageboxVisible = true
156
+ },
157
+ handleClick (tab, event) {
158
+ if (tab.name === 'first') {
159
+ this.refreshChart()
160
+ }
161
+ },
162
+ refreshChart () {
163
+ let patterntable = this.$refs.patterntable
164
+ let newPatternList = patterntable.newPatternList
165
+ for (let pattern of this.patternList) {
166
+ let agentid = pattern.agentid
167
+ let newPattern = newPatternList.filter(npl => npl.agentid === agentid)[0]
168
+ let patternId = newPattern.patternId
169
+ let currPatternList = pattern.feature.patternList
170
+ let currPattern
171
+ if (Array.isArray(currPatternList)) {
172
+ currPattern = currPatternList.filter(cpl => cpl.id === patternId)[0]
173
+ } else {
174
+ currPattern = currPatternList
175
+ }
176
+ currPattern.cycle = newPattern.cycle
177
+ currPattern.offset = newPattern.offset
178
+ }
179
+ this.handlePlanChart()
180
+ },
181
+ handleEdit () {
182
+ if (this.maskVisible && this.addNum <= 1) {
183
+ if (this.addNum === 1) {
184
+ this.maskVisible = false
185
+ }
186
+ this.addNum++
187
+ }
188
+ if (!this.maskVisible) {
189
+ // 获取单个协调路线的全部信息
190
+ // (弹窗取消后,应重新获取静态数据,此处采取中间变量法重新赋值,以触发watch能监听到routeData变化,给弹窗内共有变量configData重新赋值)
191
+ const lastRouteData = JSON.parse(JSON.stringify(this.routeData))
192
+ this.routeData = []
193
+ this.routeData = lastRouteData
194
+ this.configurationVisible = true
195
+ }
196
+ },
197
+ getRouteInfo () {
198
+ if (this.chooseId === 0) return
199
+ GetRouteInfo(this.chooseId).then(res => {
200
+ if (!res.data.success) {
201
+ if (res.data.code === '4003') {
202
+ let agentid = res.data.data.agentid
203
+ this.$message.error(this.$t('openatccomponents.greenwaveoptimize.device') + agentid + this.$t('openatccomponents.greenwaveoptimize.notonline'))
204
+ return
205
+ }
206
+ this.$message.error(getMessageByCode(res.data.code, this.$i18n.locale))
207
+ return
208
+ }
209
+ this.routeData = res.data.data
210
+ this.getAllPatternOfRoute() // 获取该路线的所有方案
211
+ })
212
+ },
213
+ async handleDownload (id, routeData) {
214
+ let param = {
215
+ id: id,
216
+ continueOnfailure: routeData.continueOnfailure,
217
+ duration: routeData.duration,
218
+ optPatternList: []
219
+ }
220
+ // check
221
+ let generateData = this.getGenerateParam(routeData)
222
+ for (let dev of routeData.devs) {
223
+ if (!dev.feature) {
224
+ let feature = generateData.devs.filter(item => item.agentid === dev.agentid)[0].feature
225
+ delete feature.phase
226
+ dev.feature = feature
227
+ }
228
+ }
229
+ for (let dev of routeData.devs) {
230
+ if (!dev.feature) {
231
+ this.$message.warning(this.$t('openatccomponents.greenwaveoptimize.errDownloadParam'), dev.agentid)
232
+ return false
233
+ }
234
+ }
235
+ param.optPatternList = [routeData]
236
+ return new Promise((resolve, reject) => {
237
+ downloadRoutePattern(param).then(res => {
238
+ if (!res.data.success) {
239
+ let msg = getMessageByCode(res.data.code, this.$i18n.locale)
240
+ if (res.data.data) {
241
+ let errorCode = res.data.data.errorCode
242
+ if (errorCode) {
243
+ msg = msg + ' - ' + getMessageByCode(errorCode, this.$i18n.locale)
244
+ }
245
+ }
246
+ this.$message.error(msg)
247
+ resolve(res)
248
+ }
249
+ this.$alert(this.$t('openatccomponents.greenwaveoptimize.planissuedsucc'), { type: 'success' })
250
+ resolve(res)
251
+ }).catch(error => {
252
+ this.$message.error(error)
253
+ })
254
+ })
255
+ },
256
+ async handleDelete (param) {
257
+ return new Promise((resolve, reject) => {
258
+ deleteRoutePattern(param).then(res => {
259
+ if (!res.data.success) {
260
+ let msg = getMessageByCode(res.data.code, this.$i18n.locale)
261
+ if (res.data.data) {
262
+ let errorCode = res.data.data.errorCode
263
+ if (errorCode) {
264
+ msg = msg + ' - ' + getMessageByCode(errorCode, this.$i18n.locale)
265
+ }
266
+ }
267
+ this.$message.error(msg)
268
+ resolve(false)
269
+ }
270
+ this.$message.success(this.$t('openatc.common.deletesuccess'))
271
+ this.$parent.getAllPlan()
272
+ resolve(true)
273
+ }).catch(error => {
274
+ this.$message.error(error)
275
+ })
276
+ })
277
+ },
278
+ async handleSave (id, routeData) {
279
+ return new Promise((resolve, reject) => {
280
+ let param = this.getSaveParam(id, routeData)
281
+ updateRoutePattern(param).then(res => {
282
+ if (!res.data.success) {
283
+ let msg = getMessageByCode(res.data.code, this.$i18n.locale)
284
+ if (res.data.data) {
285
+ let errorCode = res.data.data.errorCode
286
+ if (errorCode) {
287
+ msg = msg + ' - ' + getMessageByCode(errorCode, this.$i18n.locale)
288
+ }
289
+ }
290
+ this.$message.error(msg)
291
+ resolve(false)
292
+ }
293
+ this.$message.success(this.$t('openatc.common.savesuccess'))
294
+ this.$parent.getAllPlan()
295
+ resolve(true)
296
+ }).catch(error => {
297
+ this.$message.error(error)
298
+ })
299
+ })
300
+ },
301
+ handleSaveClick (id, routeData) {
302
+ let param = this.getSaveParam(id, routeData)
303
+ updateRoutePattern(param).then(res => {
304
+ if (!res.data.success) {
305
+ let msg = getMessageByCode(res.data.code, this.$i18n.locale)
306
+ if (res.data.data) {
307
+ let errorCode = res.data.data.errorCode
308
+ if (errorCode) {
309
+ msg = msg + ' - ' + getMessageByCode(errorCode, this.$i18n.locale)
310
+ }
311
+ }
312
+ this.$message.error(msg)
313
+ return
314
+ }
315
+ this.$message.success(this.$t('openatc.common.savesuccess'))
316
+ this.$parent.getAllPlan()
317
+ })
318
+ },
319
+ getSaveParam (id, tabs, filter = false) {
320
+ let routeData = JSON.parse(JSON.stringify(tabs))
321
+ let param = {
322
+ 'id': id || 0,
323
+ 'optPatternList': routeData
324
+ }
325
+ for (let tab of routeData) {
326
+ let devs = tab.devs
327
+ for (let inter of devs) {
328
+ let patternList = inter.patternList.map(item => {
329
+ let pattern = {
330
+ 'id': item.id,
331
+ 'desc': item.desc,
332
+ 'offset': item.offset,
333
+ 'cycle': item.cycle,
334
+ 'rings': item.rings
335
+ }
336
+ return pattern
337
+ })
338
+ inter.patternList = patternList
339
+ // inter.id = param.id
340
+ // delete inter.name
341
+ // delete inter.content
342
+ let dev = {
343
+ 'id': inter.id,
344
+ 'name': inter.name,
345
+ 'isused': inter.isused,
346
+ 'agentid': inter.agentid,
347
+ 'nextDistance': inter.nextDistance,
348
+ 'distance': inter.distance,
349
+ 'type': inter.type,
350
+ 'jsonparam': inter.jsonparam,
351
+ 'description': inter.description,
352
+ 'forwardphaseDesc': inter.forwardphaseDesc,
353
+ 'backphaseDesc': inter.backphaseDesc,
354
+ 'forwardphaseid': inter.forwardphaseid,
355
+ 'forwardphasedirection': inter.forwardphasedirection,
356
+ 'backphaseid': inter.backphaseid,
357
+ 'backphasedirection': inter.backphasedirection,
358
+ 'patternList': inter.patternList
359
+ }
360
+ inter = {...dev}
361
+ }
362
+ }
363
+ if (filter) {
364
+ param.optPatternList = param.optPatternList.map(pattern => {
365
+ delete pattern.content
366
+ delete pattern.date
367
+ delete pattern.day
368
+ delete pattern.direction
369
+ delete pattern.downspeed
370
+ delete pattern.keyintsid
371
+ delete pattern.month
372
+ delete pattern.optstrategy
373
+ delete pattern.plan
374
+ delete pattern.upspeed
375
+ delete pattern.name
376
+ delete pattern.title
377
+ delete pattern.patternid
378
+ delete pattern.name
379
+ pattern.devs.map(inter => {
380
+ delete inter.allPatterns
381
+ delete inter.currPhase
382
+ delete inter.patternList
383
+ delete inter.phaseList
384
+ delete inter.ringCount
385
+ delete inter.rings
386
+ })
387
+ return pattern
388
+ })
389
+ }
390
+ return param
391
+ },
392
+ handleCreate (routeData) {
393
+ let param = this.getGenerateParam(routeData, 1)
394
+ generateRoute(param).then(res => {
395
+ if (!res.data.success) {
396
+ let msg = getMessageByCode(res.data.code, this.$i18n.locale)
397
+ if (res.data.data) {
398
+ let errorCode = res.data.data.errorCode
399
+ if (errorCode) {
400
+ msg = msg + ' - ' + getMessageByCode(errorCode, this.$i18n.locale)
401
+ }
402
+ }
403
+ this.$message.error(msg)
404
+ return
405
+ }
406
+ this.$message.success(this.$t('openatccomponents.greenwaveoptimize.generatesuedsucc'))
407
+ this.greenwave = res.data.data.greenwave
408
+ this.patternList = res.data.data.devs
409
+ for (let dev of routeData.devs) {
410
+ for (let pattern of this.patternList) {
411
+ if (dev.agentid === pattern.agentid) {
412
+ dev.feature = pattern.feature
413
+ dev.patternid = pattern.patternid
414
+ }
415
+ }
416
+ }
417
+ this.handlePlanChart()
418
+ this.handlePatternTable()
419
+ })
420
+ },
421
+ getGenerateParam (routeData, bizType = 0) { // bizType: 1 generate专用
422
+ let route = JSON.parse(JSON.stringify(routeData))
423
+ let param = {
424
+ 'id': route.id,
425
+ 'name': route.name,
426
+ 'keyintsid': route.keyintsid,
427
+ 'direction': route.direction,
428
+ 'optstrategy': route.optstrategy,
429
+ 'upspeed': route.upspeed,
430
+ 'downspeed': route.downspeed,
431
+ 'type': route.type ? route.type : 0,
432
+ 'devs': route.devs
433
+ }
434
+ let devs = route.devs
435
+ for (let inter of devs) {
436
+ let patternList = inter.patternList.map(item => {
437
+ let pattern = {
438
+ 'id': item.id,
439
+ 'desc': item.desc,
440
+ 'offset': item.offset,
441
+ 'cycle': item.cycle,
442
+ 'rings': item.rings
443
+ }
444
+ return pattern
445
+ })
446
+ let phaseList = inter.phaseList.map(item => {
447
+ let pattern = {
448
+ 'id': item.id,
449
+ 'concurrent': item.concurrent
450
+ }
451
+ return pattern
452
+ })
453
+ let feature = {
454
+ patternList: patternList,
455
+ phaseList: phaseList
456
+ }
457
+ inter.routeid = param.id
458
+ inter.feature = feature
459
+ delete inter.id
460
+ delete inter.name
461
+ }
462
+ // param = route
463
+ param.devs = param.devs.map((item, index) => {
464
+ let dev = {
465
+ 'agentid': item.agentid,
466
+ 'routeid': item.routeid,
467
+ 'forwardphaseid': item.forwardphaseid,
468
+ 'backphaseid': item.backphaseid,
469
+ 'distance': item.distance,
470
+ 'width': item.width,
471
+ 'sortid': item.sortid ? item.sortid : index + 1,
472
+ 'patternid': item.patternid,
473
+ 'feature': item.feature
474
+ }
475
+ if (bizType === 1) {
476
+ dev.feature.patternList = dev.feature.patternList.filter(pattern => pattern.id === dev.patternid)
477
+ }
478
+ return dev
479
+ })
480
+ return param
481
+ },
482
+ closeDrawer (isRefresh) {
483
+ this.configurationVisible = false
484
+ if (isRefresh === 'refresh') {
485
+ this.$emit('resetContentComponent')
486
+ }
487
+ },
488
+ clickMask () {
489
+ this.maskVisible = false
490
+ },
491
+ getAllPatternOfRoute () {
492
+ if (this.agentids.length === 0) return
493
+ getAllPatternOfDevs(this.agentids).then(res => {
494
+ if (!res.data.success) {
495
+ let agentid = res.data.data.agentid
496
+ let commomMsg = this.$t('openatccomponents.greenwaveoptimize.device') + agentid
497
+ let data = res
498
+ let parrenterror = getMessageByCode(data.data.code, this.$i18n.locale)
499
+ if (data.data.data) {
500
+ // 子类型错误
501
+ let childErrorCode = data.data.data.errorCode
502
+ if (childErrorCode) {
503
+ let childerror = getMessageByCode(data.data.data.errorCode, this.$i18n.locale)
504
+ this.$message.error(parrenterror + ',' + childerror + ',' + commomMsg)
505
+ }
506
+ } else {
507
+ this.$message.error(parrenterror + ',' + commomMsg)
508
+ }
509
+ this.$emit('ErrorOcurrred')
510
+ return
511
+ }
512
+ this.allPatternList = res.data.data.devs
513
+ let editableTab = this.routeData
514
+ let patternList = this.getPatternListFromTab(editableTab, this.allPatternList)
515
+ this.patternList = patternList
516
+ this.getAllPhaseOfRouter() // 获取改路线的所有相位
517
+ })
518
+ },
519
+ getAllPhaseOfRouter () {
520
+ if (this.agentids.length === 0) return
521
+ getAllPhaseOfDevs(this.agentids).then(res => {
522
+ if (!res.data.success) {
523
+ let agentid = res.data.data.agentid
524
+ let commomMsg = this.$t('openatccomponents.greenwaveoptimize.device') + agentid
525
+ let data = res
526
+ let parrenterror = getMessageByCode(data.data.code, this.$i18n.locale)
527
+ if (data.data.data) {
528
+ // 子类型错误
529
+ let childErrorCode = data.data.data.errorCode
530
+ if (childErrorCode) {
531
+ let childerror = getMessageByCode(data.data.data.errorCode, this.$i18n.locale)
532
+ this.$message.error(parrenterror + ',' + childerror + ',' + commomMsg)
533
+ }
534
+ } else {
535
+ this.$message.error(parrenterror + ',' + commomMsg)
536
+ }
537
+ this.$emit('ErrorOcurrred')
538
+ return
539
+ }
540
+ this.phaseList = res.data.data.devs
541
+ this.handlePatternTable()
542
+ this.handlePlanChart()
543
+ this.handleMaskVisible()
544
+ })
545
+ },
546
+ handlePatternTable () {
547
+ this.$emit('handlePatternTable', this.routeData, this.patternList, this.phaseList)
548
+ // let patterntable = this.$refs.patterntable
549
+ // patterntable.onPatternTable(this.routeData, this.patternList, this.phaseList)
550
+ },
551
+ handlePlanChart () {
552
+ this.$emit('handlePlanChart', this.routeData, this.patternList, this.greenwave, this.allPatternList)
553
+ // let planchart = this.$refs.planchart
554
+ // planchart.onPlanChart(this.routeData, this.patternList, this.greenwave)
555
+ },
556
+ handleMaskVisible () {
557
+ // 数据为空,显示蒙层
558
+ if (this.patternList && !this.patternList.length && this.step) {
559
+ this.maskVisible = true
560
+ // 模拟一次手动点击,触发tip显示
561
+ this.$refs.editbtn.click()
562
+ }
563
+ },
564
+ onNewPatternListChange (newPatternList) {
565
+ this.refreshChart()
566
+ }
567
+ }
568
+ }
569
+ </script>
570
+
571
+ <style lang="scss" scoped>
572
+ </style>