openatc-components 0.4.88 → 0.4.89

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 (51) hide show
  1. package/config/index.js +137 -137
  2. package/package/kisscomps/components/BoardCard/BoardCard.vue +4 -0
  3. package/package/kisscomps/components/DirectionListConfiguration/DirectionListConfiguration.vue +2 -2
  4. package/package/kisscomps/components/IntersectionDirectionSelection/IntersectionDirectionSelection.vue +9 -6
  5. package/package/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +49 -16
  6. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.json +0 -16
  7. package/package/kisscomps/components/IntersectionMap/crossDirection/posJson/sidePos.json +0 -16
  8. package/package/kisscomps/components/IntersectionMap/intersectionmap.vue +5 -0
  9. package/package/kisscomps/components/IntersectionMapDirSelect/customCrossDiagram.vue +5 -0
  10. package/package/kisscomps/components/OverLap/OverLap.vue +1 -22
  11. package/package/kisscomps/components/OverviewComponent/index.vue +33 -7
  12. package/package/kisscomps/components/PatternStatus/PatternStatus.vue +84 -46
  13. package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +30 -7
  14. package/package/kisscomps/components/SchemeConfig/manualControlModalNew/icon.vue +1 -5
  15. package/package/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +19 -0
  16. package/package/kisscomps/components/overView/index.vue +30 -7
  17. package/package/kisscomps/components/patternList/patternList.vue +4 -0
  18. package/package/kisscomps/index.js +2 -6
  19. package/package/kissui.min.js +1 -1
  20. package/package.json +1 -1
  21. package/src/App.vue +24 -20
  22. package/src/i18n/language/en.js +0 -78
  23. package/src/i18n/language/index.js +25 -31
  24. package/src/i18n/language/zh.js +0 -78
  25. package/src/kisscomps/components/BoardCard/BoardCard.vue +4 -0
  26. package/src/kisscomps/components/DirectionListConfiguration/DirectionListConfiguration.vue +2 -2
  27. package/src/kisscomps/components/IntersectionDirectionSelection/IntersectionDirectionSelection.vue +9 -6
  28. package/src/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +49 -16
  29. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/phasePos.json +0 -16
  30. package/src/kisscomps/components/IntersectionMap/crossDirection/posJson/sidePos.json +0 -16
  31. package/src/kisscomps/components/IntersectionMap/intersectionmap.vue +5 -0
  32. package/src/kisscomps/components/IntersectionMapDirSelect/customCrossDiagram.vue +5 -0
  33. package/src/kisscomps/components/OverLap/OverLap.vue +1 -22
  34. package/src/kisscomps/components/OverviewComponent/index.vue +33 -7
  35. package/src/kisscomps/components/PatternStatus/PatternStatus.vue +84 -46
  36. package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +30 -7
  37. package/src/kisscomps/components/SchemeConfig/manualControlModalNew/icon.vue +1 -5
  38. package/src/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +19 -0
  39. package/src/kisscomps/components/overView/index.vue +30 -7
  40. package/src/kisscomps/components/patternList/patternList.vue +4 -0
  41. package/src/kisscomps/index.js +2 -6
  42. package/src/utils/ControlFormat.js +36 -14
  43. package/src/utils/auth.js +199 -199
  44. package/src/utils/conflct.js +268 -266
  45. package/src/utils/fault.js +72 -20
  46. package/src/utils/faultcode.js +182 -130
  47. package/src/utils/responseMessage.js +21 -24
  48. package/src/views/intersection.vue +8 -7
  49. package/src/views/patternConfig.vue +2 -2
  50. package/src/views/schemeconfig.vue +1 -1
  51. package/src/i18n/language/ru.js +0 -1555
@@ -1,266 +1,268 @@
1
- // import store from '../store'
2
- import { getIntersectionInfo } from '../api/template.js'
3
- import { Message } from 'element-ui'
4
- import { getMessageByCode } from '../utils/responseMessage'
5
- import i18n from '../i18n/index'
6
- export async function computedRelation (id) {
7
- let uploadData = await UploadTscParam(id)
8
- console.log('computedRelation', uploadData)
9
- if (!uploadData) return
10
- let results = []
11
- let channel = uploadData.channelList
12
- // let channel = store.getters.globalParamModel.getParamsByType('channelList')
13
- let tableData = channel.map(item => {
14
- return {
15
- id: item.id,
16
- peddirection: item.realtype && item.realtype === 'peddirection' ? item.realdir : [],
17
- phasedirection: item.realtype && item.realtype === 'direction' ? item.realdir : []
18
- }
19
- })
20
- let colorArray = getDefaul(uploadData)
21
- tableData.forEach(itemA => {
22
- (uploadData.channelGreenConflictInfo.length > 0 ? uploadData.channelGreenConflictInfo : colorArray).forEach(itemB => {
23
- if (itemA.id === itemB.channelid) {
24
- // 处理peddirection
25
- if (itemA.peddirection !== undefined) {
26
- itemA.peddirection.forEach(pedDir => {
27
- if (pedDir > 0) {
28
- results.push({
29
- direction: pedDir,
30
- type: 'pedphase',
31
- laneConflictList: [],
32
- conflictchannel: itemB.greenconflict,
33
- pedConflictList: []
34
- })
35
- }
36
- })
37
- }
38
-
39
- // 处理phasedirection
40
- if (itemA.phasedirection !== undefined) {
41
- itemA.phasedirection.forEach(phaseDir => {
42
- if (phaseDir > 0) {
43
- results.push({
44
- direction: phaseDir,
45
- type: 'phase',
46
- conflictchannel: itemB.greenconflict,
47
- laneConflictList: [],
48
- pedConflictList: []
49
- })
50
- }
51
- })
52
- }
53
- }
54
- })
55
- })
56
- results.forEach(item => {
57
- item.conflictchannel.forEach(aaaValue => {
58
- channel.forEach(cha => {
59
- if (cha.id === aaaValue) {
60
- if (cha.realtype === 'direction') {
61
- if (cha.realdir) {
62
- item.laneConflictList.push(...cha.realdir)
63
- }
64
- } else if (cha.realtype === 'peddirection') {
65
- if (cha.realdir) {
66
- item.pedConflictList.push(...cha.realdir)
67
- }
68
- }
69
- }
70
- })
71
- })
72
- delete item.conflictchannel
73
- })
74
- // const uniqueDirections = new Set()
75
- // const doChange = results.filter(obj => {
76
- // if (uniqueDirections.has(obj.direction)) {
77
- // return false
78
- // }
79
- // uniqueDirections.add(obj.direction)
80
- // return true
81
- // })
82
- const uniqueDirectionsAndTypes = new Set()
83
- const filteredResults = results.filter(obj => {
84
- const key = `${obj.direction}_${obj.type}`
85
- if (uniqueDirectionsAndTypes.has(key)) {
86
- return false
87
- }
88
- uniqueDirectionsAndTypes.add(key)
89
- return true
90
- })
91
- let result = filteredResults.map(item => {
92
- let uniqueLaneConflictList = [...new Set(item.laneConflictList)]
93
- let uniquePedConflictList = [...new Set(item.pedConflictList)]
94
- return {
95
- ...item,
96
- laneConflictList: uniqueLaneConflictList,
97
- pedConflictList: uniquePedConflictList
98
- }
99
- })
100
- console.log('result', result)
101
- return result
102
- }
103
- export function getDefaul (data) {
104
- let phaseList = data.phaseList
105
- let overlaplList = data.overlaplList
106
- let channel = data.channelList
107
- let newPhase = phaseList.map(item => {
108
- return {
109
- id: item.id,
110
- concurrent: item.concurrent ? item.concurrent : []
111
- }
112
- })
113
- let newOverlap = overlaplList.map(item => {
114
- return {
115
- id: item.id,
116
- includedphases: item.includedphases
117
- }
118
- })
119
- let newChannel = channel.map(item => {
120
- return {
121
- id: item.id,
122
- controltype: item.controltype,
123
- controlsource: item.controlsource
124
- }
125
- })
126
- let defaultList = newChannel.map(cha => {
127
- if (cha.controltype === 2 || cha.controltype === 3) {
128
- for (let i = 0; i < newPhase.length; i++) {
129
- if (cha.controlsource === newPhase[i].id) {
130
- return {
131
- id: cha.id,
132
- controlsource: cha.controlsource,
133
- newCurren: newPhase[i].concurrent
134
- }
135
- }
136
- }
137
- } else if (cha.controltype === 4 || cha.controltype === 5) {
138
- let newLap = newOverlap.map(item => {
139
- let phaList = []
140
- if (item.id === cha.controlsource) {
141
- phaList.push(...item.includedphases)
142
- }
143
- // for (let h = 0; h < item.includedphases.length; h++) {
144
- // for (let k = 0; k < newPhase.length; k++) {
145
- // if (item.includedphases[h] === newPhase[k].id) {
146
- // phaList.push(...newPhase[k].concurrent)
147
- // }
148
- // }
149
- // }
150
- return {
151
- id: item.id,
152
- concurrent: Array.from(new Set(phaList))
153
- }
154
- })
155
- for (let i = 0; i < newLap.length; i++) {
156
- if (cha.controlsource === newLap[i].id) {
157
- return {
158
- id: cha.id,
159
- controlsource: newLap[i].concurrent,
160
- newCurren: newLap[i].concurrent
161
- }
162
- }
163
- }
164
- } else {
165
- return {
166
- id: cha.id,
167
- controlsource: cha.controlsource,
168
- newCurren: []
169
- }
170
- }
171
- })
172
- // this.colorArray = this.transform(defaultList)
173
- const ret = defaultList.map((i, idx) => {
174
- const result = []
175
- let greenconflict = []
176
- defaultList.forEach((j, jdx) => {
177
- if (idx !== jdx) {
178
- const ic = Array.isArray(i.controlsource) ? i.controlsource : [i.controlsource]
179
- const jc = Array.isArray(j.controlsource) ? j.controlsource : [j.controlsource]
180
- let hasDuplicate = false
181
- for (let i = 0; i < ic.length; i++) {
182
- for (let j = 0; j < jc.length; j++) {
183
- if (ic[i] === jc[j]) {
184
- hasDuplicate = true
185
- break
186
- }
187
- }
188
- if (hasDuplicate) {
189
- break
190
- }
191
- }
192
- const isRelation = ic.some(x => jc.some(y => newPhase.find(m => m.id === x && m.concurrent.includes(y))))
193
- if (isRelation || hasDuplicate) {
194
- result.push(j.id)
195
- } else {
196
- greenconflict.push(j.id)
197
- }
198
- }
199
- })
200
- i.result = result
201
- i.greenconflict = greenconflict
202
- return i
203
- })
204
- let newFlict = ret.map(r => {
205
- return {
206
- channelid: r.id,
207
- greenOther: r.result,
208
- greenconflict: r.greenconflict
209
- }
210
- })
211
- return newFlict
212
- }
213
- export function UploadTscParam (id) {
214
- return getIntersectionInfo(id).then(res => {
215
- if (!res.data.success) {
216
- let commomMsg = i18n.t('openatccomponents.overview.signalID') + ' : ' + id
217
- let msg = getMessageByCode(res.data.code, i18n.locale)
218
- if (res.data.data) {
219
- // 子类型错误
220
- let childErrorCode = res.data.data.errorCode
221
- if (childErrorCode) {
222
- let childerror = getMessageByCode(res.data.data.errorCode, i18n.locale)
223
- msg = msg + ' - ' + childerror
224
- }
225
- }
226
- msg = msg + ' - ' + commomMsg
227
- Message.error(msg)
228
- return
229
- }
230
- const param = res.data.data.param
231
-
232
- if (Object.keys(param).length === 0) {
233
- Message.error(i18n.t('edge.errorTip.noSchemeUpload'))
234
- return
235
- }
236
- let allTscParam = param
237
- if (allTscParam.manualpanel === undefined) {
238
- allTscParam.manualpanel = {}
239
- }
240
- if (allTscParam.channellock === undefined) {
241
- allTscParam.channellock = []
242
- }
243
- if (allTscParam.channelList === undefined) {
244
- allTscParam.channelList = []
245
- }
246
- if (allTscParam.overlaplList === undefined) {
247
- allTscParam.overlaplList = []
248
- }
249
- if (allTscParam.detectorList === undefined) {
250
- allTscParam.detectorList = []
251
- }
252
- if (allTscParam.pedestrainDetectorList === undefined) {
253
- allTscParam.pedestrainDetectorList = []
254
- }
255
- if (allTscParam.preemptList === undefined) {
256
- allTscParam.preemptList = []
257
- }
258
- if (allTscParam.channelGreenConflictInfo === undefined) {
259
- allTscParam.channelGreenConflictInfo = []
260
- }
261
- if (allTscParam.singleoptim === undefined) {
262
- allTscParam.singleoptim = []
263
- }
264
- return allTscParam
265
- })
266
- }
1
+ // import store from '../store'
2
+ import { uploadTscParams } from '../api/param'
3
+ import { Message } from 'element-ui'
4
+ import { getMessageByCode } from '../utils/responseMessage'
5
+ import i18n from '../i18n/index'
6
+ export async function computedRelation (id) {
7
+ let uploadData = await UploadTscParam(id)
8
+ if (!uploadData) return
9
+ let results = []
10
+ let channel = uploadData.channelList
11
+ // let channel = store.getters.globalParamModel.getParamsByType('channelList')
12
+ let tableData = channel.map(item => {
13
+ return {
14
+ id: item.id,
15
+ peddirection: item.realtype && item.realtype === 'peddirection' ? item.realdir : [],
16
+ phasedirection: item.realtype && item.realtype === 'direction' ? item.realdir : []
17
+ }
18
+ })
19
+ let colorArray = getDefaul(uploadData)
20
+ tableData.forEach(itemA => {
21
+ (uploadData.channelGreenConflictInfo.length > 0 ? uploadData.channelGreenConflictInfo : colorArray).forEach(itemB => {
22
+ if (itemA.id === itemB.channelid) {
23
+ // 处理peddirection
24
+ if (itemA.peddirection !== undefined) {
25
+ itemA.peddirection.forEach(pedDir => {
26
+ if (pedDir > 0) {
27
+ results.push({
28
+ direction: pedDir,
29
+ type: 'pedphase',
30
+ laneConflictList: [],
31
+ conflictchannel: itemB.greenconflict,
32
+ pedConflictList: []
33
+ })
34
+ }
35
+ })
36
+ }
37
+
38
+ // 处理phasedirection
39
+ if (itemA.phasedirection !== undefined) {
40
+ itemA.phasedirection.forEach(phaseDir => {
41
+ if (phaseDir > 0) {
42
+ results.push({
43
+ direction: phaseDir,
44
+ type: 'phase',
45
+ conflictchannel: itemB.greenconflict,
46
+ laneConflictList: [],
47
+ pedConflictList: []
48
+ })
49
+ }
50
+ })
51
+ }
52
+ }
53
+ })
54
+ })
55
+ results.forEach(item => {
56
+ item.conflictchannel.forEach(aaaValue => {
57
+ channel.forEach(cha => {
58
+ if (cha.id === aaaValue) {
59
+ if (cha.realtype === 'direction') {
60
+ if (cha.realdir) {
61
+ item.laneConflictList.push(...cha.realdir)
62
+ }
63
+ } else if (cha.realtype === 'peddirection') {
64
+ if (cha.realdir) {
65
+ item.pedConflictList.push(...cha.realdir)
66
+ }
67
+ }
68
+ }
69
+ })
70
+ })
71
+ delete item.conflictchannel
72
+ })
73
+ // const uniqueDirections = new Set()
74
+ // const doChange = results.filter(obj => {
75
+ // if (uniqueDirections.has(obj.direction)) {
76
+ // return false
77
+ // }
78
+ // uniqueDirections.add(obj.direction)
79
+ // return true
80
+ // })
81
+ const uniqueDirectionsAndTypes = new Set()
82
+ const filteredResults = results.filter(obj => {
83
+ const key = `${obj.direction}_${obj.type}`
84
+ if (uniqueDirectionsAndTypes.has(key)) {
85
+ return false
86
+ }
87
+ uniqueDirectionsAndTypes.add(key)
88
+ return true
89
+ })
90
+ let result = filteredResults.map(item => {
91
+ let uniqueLaneConflictList = [...new Set(item.laneConflictList)]
92
+ let uniquePedConflictList = [...new Set(item.pedConflictList)]
93
+ return {
94
+ ...item,
95
+ laneConflictList: uniqueLaneConflictList,
96
+ pedConflictList: uniquePedConflictList
97
+ }
98
+ })
99
+ console.log('result', result)
100
+ return result
101
+ }
102
+ export function getDefaul (data) {
103
+ let phaseList = data.phaseList
104
+ let overlaplList = data.overlaplList
105
+ let channel = data.channelList
106
+ let newPhase = phaseList.map(item => {
107
+ return {
108
+ id: item.id,
109
+ concurrent: item.concurrent ? item.concurrent : []
110
+ }
111
+ })
112
+ let newOverlap = overlaplList.map(item => {
113
+ return {
114
+ id: item.id,
115
+ includedphases: item.includedphases
116
+ }
117
+ })
118
+ let newChannel = channel.map(item => {
119
+ return {
120
+ id: item.id,
121
+ controltype: item.controltype,
122
+ controlsource: item.controlsource
123
+ }
124
+ })
125
+ let defaultList = newChannel.map(cha => {
126
+ if (cha.controltype === 2 || cha.controltype === 3) {
127
+ for (let i = 0; i < newPhase.length; i++) {
128
+ if (cha.controlsource === newPhase[i].id) {
129
+ return {
130
+ id: cha.id,
131
+ controlsource: cha.controlsource,
132
+ newCurren: newPhase[i].concurrent
133
+ }
134
+ }
135
+ }
136
+ } else if (cha.controltype === 4 || cha.controltype === 5) {
137
+ let newLap = newOverlap.map(item => {
138
+ let phaList = []
139
+ if (item.id === cha.controlsource) {
140
+ phaList.push(...item.includedphases)
141
+ }
142
+ // for (let h = 0; h < item.includedphases.length; h++) {
143
+ // for (let k = 0; k < newPhase.length; k++) {
144
+ // if (item.includedphases[h] === newPhase[k].id) {
145
+ // phaList.push(...newPhase[k].concurrent)
146
+ // }
147
+ // }
148
+ // }
149
+ return {
150
+ id: item.id,
151
+ concurrent: Array.from(new Set(phaList))
152
+ }
153
+ })
154
+ for (let i = 0; i < newLap.length; i++) {
155
+ if (cha.controlsource === newLap[i].id) {
156
+ return {
157
+ id: cha.id,
158
+ controlsource: newLap[i].concurrent,
159
+ newCurren: newLap[i].concurrent
160
+ }
161
+ }
162
+ }
163
+ } else {
164
+ return {
165
+ id: cha.id,
166
+ controlsource: cha.controlsource,
167
+ newCurren: []
168
+ }
169
+ }
170
+ })
171
+ // this.colorArray = this.transform(defaultList)
172
+ const ret = defaultList.map((i, idx) => {
173
+ const result = []
174
+ let greenconflict = []
175
+ defaultList.forEach((j, jdx) => {
176
+ if (idx !== jdx) {
177
+ const ic = Array.isArray(i.controlsource) ? i.controlsource : [i.controlsource]
178
+ const jc = Array.isArray(j.controlsource) ? j.controlsource : [j.controlsource]
179
+ let hasDuplicate = false
180
+ for (let i = 0; i < ic.length; i++) {
181
+ for (let j = 0; j < jc.length; j++) {
182
+ if (ic[i] === jc[j]) {
183
+ hasDuplicate = true
184
+ break
185
+ }
186
+ }
187
+ if (hasDuplicate) {
188
+ break
189
+ }
190
+ }
191
+ const isRelation = ic.some(x => jc.some(y => newPhase.find(m => m.id === x && m.concurrent.includes(y))))
192
+ if (isRelation || hasDuplicate) {
193
+ result.push(j.id)
194
+ } else {
195
+ greenconflict.push(j.id)
196
+ }
197
+ }
198
+ })
199
+ i.result = result
200
+ i.greenconflict = greenconflict
201
+ return i
202
+ })
203
+ let newFlict = ret.map(r => {
204
+ return {
205
+ channelid: r.id,
206
+ greenOther: r.result,
207
+ greenconflict: r.greenconflict
208
+ }
209
+ })
210
+ return newFlict
211
+ }
212
+ export function UploadTscParam (id) {
213
+ return uploadTscParams(id).then(data => {
214
+ if (!data.data.success) {
215
+ if (data.data.code === '4002' && data.data.data.errorCode === '4209') {
216
+ let success = data.data.data.content.success
217
+ if (success !== 0) {
218
+ let errormsg = 'openatccomponents.overview.putTscControlError' + success
219
+ Message.error(this.$t(errormsg))
220
+ return
221
+ }
222
+ }
223
+ if (data.data.code === '4002') { // 错误应答
224
+ // 子类型错误
225
+ let childErrorCode = data.data.data.errorCode
226
+ if (childErrorCode) {
227
+ Message.error(getMessageByCode(data.data.data.errorCode, i18n.locale))
228
+ return
229
+ }
230
+ }
231
+ Message.error(getMessageByCode(data.data.code, i18n.locale))
232
+ return
233
+ }
234
+ if (Object.keys(data.data.data.data).length === 0) {
235
+ Message.error(this.$t('edge.errorTip.noSchemeUpload'))
236
+ return
237
+ }
238
+ let {customInfo, ...allTscParam} = data.data.data.data
239
+ if (allTscParam.manualpanel === undefined) {
240
+ allTscParam.manualpanel = {}
241
+ }
242
+ if (allTscParam.channellock === undefined) {
243
+ allTscParam.channellock = []
244
+ }
245
+ if (allTscParam.channelList === undefined) {
246
+ allTscParam.channelList = []
247
+ }
248
+ if (allTscParam.overlaplList === undefined) {
249
+ allTscParam.overlaplList = []
250
+ }
251
+ if (allTscParam.detectorList === undefined) {
252
+ allTscParam.detectorList = []
253
+ }
254
+ if (allTscParam.pedestrainDetectorList === undefined) {
255
+ allTscParam.pedestrainDetectorList = []
256
+ }
257
+ if (allTscParam.preemptList === undefined) {
258
+ allTscParam.preemptList = []
259
+ }
260
+ if (allTscParam.channelGreenConflictInfo === undefined) {
261
+ allTscParam.channelGreenConflictInfo = []
262
+ }
263
+ if (allTscParam.singleoptim === undefined) {
264
+ allTscParam.singleoptim = []
265
+ }
266
+ return allTscParam
267
+ })
268
+ }