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.
- package/package/kisscomps/components/CommonKanban/CommonKanban.vue +8 -4
- package/package/kisscomps/components/DrawChannelization/drawsvg/overlapAssociatedComponent.vue +1 -1
- package/package/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.vue +1 -1
- package/package/kisscomps/components/ExpendConfig/ExpendConfig.vue +1 -1
- package/package/kisscomps/components/KanBan/kanban.vue +1 -1
- package/package/kisscomps/components/OverLap/OverLap.vue +2 -2
- package/package/kisscomps/components/PatternOptimize/PatternOptimize.vue +1 -1
- package/package/kisscomps/components/PatternStatus/PatternStatus.vue +21 -20
- package/package/kisscomps/components/PhaseMarker/phasemarker.vue +1 -1
- package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +1 -1
- package/package/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +54 -13
- package/package/kisscomps/components/SchemeConfig/azimuthlocking/utils.js +8 -8
- package/package/kisscomps/components/SchemeConfig/manualControlModal/index.vue +2 -0
- package/package/kisscomps/components/SchemeConfig/priorityControl/index.vue +1 -1
- package/package/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +1 -1
- package/package/kisscomps/components/Stages/index.vue +32 -2
- package/package/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +458 -626
- package/package/kisscomps/components/XiaoKanban/DirSelector.vue +356 -0
- package/package/kisscomps/components/XiaoKanban/index.vue +102 -0
- package/package/kisscomps/components/patternConfig/index.js +2 -0
- package/package/kisscomps/components/patternConfig/index.vue +1010 -0
- package/package/kisscomps/components/patternConfig/pattern/patternTable.vue +349 -0
- package/package/kisscomps/components/patternConfig/pattern/planChart/model/coordinationModel.js +665 -0
- package/package/kisscomps/components/patternConfig/planContent.vue +572 -0
- package/package/kisscomps/components/patternConfig/planMenu.vue +329 -0
- package/package/kisscomps/components/patternConfig/utils.js +152 -0
- package/package/kisscomps/index.js +4 -0
- package/package/kissui.min.js +1 -1
- package/package.json +14 -13
- package/src/api/control.js +19 -0
- package/src/api/device.js +135 -0
- package/src/api/route.js +171 -0
- package/src/i18n/language/en.js +149 -0
- package/src/i18n/language/zh.js +133 -0
- package/src/kisscomps/components/CommonKanban/CommonKanban.vue +8 -4
- package/src/kisscomps/components/DrawChannelization/drawsvg/overlapAssociatedComponent.vue +1 -1
- package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.vue +1 -1
- package/src/kisscomps/components/ExpendConfig/ExpendConfig.vue +1 -1
- package/src/kisscomps/components/KanBan/kanban.vue +1 -1
- package/src/kisscomps/components/OverLap/OverLap.vue +2 -2
- package/src/kisscomps/components/PatternOptimize/PatternOptimize.vue +1 -1
- package/src/kisscomps/components/PatternStatus/PatternStatus.vue +21 -20
- package/src/kisscomps/components/PhaseMarker/phasemarker.vue +1 -1
- package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +1 -1
- package/src/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +54 -13
- package/src/kisscomps/components/SchemeConfig/azimuthlocking/utils.js +8 -8
- package/src/kisscomps/components/SchemeConfig/manualControlModal/index.vue +2 -0
- package/src/kisscomps/components/SchemeConfig/priorityControl/index.vue +1 -1
- package/src/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +1 -1
- package/src/kisscomps/components/Stages/index.vue +32 -2
- package/src/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +458 -626
- package/src/kisscomps/components/XiaoKanban/DirSelector.vue +356 -0
- package/src/kisscomps/components/XiaoKanban/index.vue +102 -0
- package/src/kisscomps/components/patternConfig/index.js +2 -0
- package/src/kisscomps/components/patternConfig/index.vue +1010 -0
- package/src/kisscomps/components/patternConfig/pattern/patternTable.vue +349 -0
- package/src/kisscomps/components/patternConfig/pattern/planChart/model/coordinationModel.js +665 -0
- package/src/kisscomps/components/patternConfig/planContent.vue +572 -0
- package/src/kisscomps/components/patternConfig/planMenu.vue +329 -0
- package/src/kisscomps/components/patternConfig/utils.js +152 -0
- package/src/kisscomps/index.js +4 -0
- package/src/lib/publicjs/KissApi.js +2 -2
- package/src/router/index.js +7 -0
- package/src/utils/auth.js +24 -3
- package/src/views/intersection.vue +1 -1
- package/src/views/patternConfig.vue +1468 -0
- package/static/apiconfig.json +85 -0
- package/static/styles/common.scss +2 -0
- package/static/styles/patternConfig.scss +57 -0
- 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>
|