openatc-components 0.4.89 → 0.4.91

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 (21) hide show
  1. package/config/index.js +1 -1
  2. package/package/kisscomps/components/IntersectionDirectionSelection/IntersectionDirectionSelection.vue +4 -0
  3. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkClickSvg.vue +4 -2
  4. package/package/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +12 -4
  5. package/package/kisscomps/components/IntersectionMap/intersectionmap.vue +5 -0
  6. package/package/kisscomps/components/IntersectionMapDirSelect/customCrossDiagram.vue +0 -5
  7. package/package/kisscomps/components/OverLap/OverLap.vue +22 -1
  8. package/package/kisscomps/components/PatternStatus/PatternStatus.vue +45 -3
  9. package/package/kisscomps/components/SchemeConfig/manualControlModalNew/icon.vue +5 -1
  10. package/package/kissui.min.js +1 -1
  11. package/package.json +1 -1
  12. package/src/kisscomps/components/IntersectionDirectionSelection/IntersectionDirectionSelection.vue +4 -0
  13. package/src/kisscomps/components/IntersectionMap/crossDirection/baseImg/SidewalkClickSvg.vue +4 -2
  14. package/src/kisscomps/components/IntersectionMap/crossDirection/crossDiagram.vue +12 -4
  15. package/src/kisscomps/components/IntersectionMap/intersectionmap.vue +5 -0
  16. package/src/kisscomps/components/IntersectionMapDirSelect/customCrossDiagram.vue +0 -5
  17. package/src/kisscomps/components/OverLap/OverLap.vue +22 -1
  18. package/src/kisscomps/components/PatternStatus/PatternStatus.vue +45 -3
  19. package/src/kisscomps/components/SchemeConfig/manualControlModalNew/icon.vue +5 -1
  20. package/src/utils/conflct.js +266 -268
  21. package/src/views/intersection.vue +16 -11
@@ -1,268 +1,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
- }
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
+ }
@@ -11,7 +11,7 @@
11
11
  <h2>基础路口图方向显示、选择组件</h2>
12
12
  <!-- channelType是按通道显示方向;不传按相位显示方向 -->
13
13
  <!-- clickMode是否开启方向选择功能 -->
14
- <el-button @click="clear"></el-button>
14
+ <el-button @click="clear" style="color: #fff;">清空</el-button>
15
15
  <!-- <custom-intersection-base-map
16
16
  ref="intersectionMap3"
17
17
  clickMode
@@ -51,14 +51,14 @@
51
51
  :choosedPedDirection="[3,4]"
52
52
  :roadDirection="roadDirection" /> -->
53
53
  <el-button @click="refresh">刷新特勤路口底图</el-button>
54
+ <el-button @click="changeChoosedDir" style="color: #fff;">重置所选方向</el-button>
54
55
  <intersection-direction-selection
55
56
  ref="selectMap"
56
- agentId="16005-20999"
57
- :clickMode="true"
58
- :choosedDirection="[14,6,13,8]"
59
- :choosedPedDirection="[1]"
60
- :roadDirection="roadDirection"
61
- @handleClickCrossIcon="handleClickCrossIcon" />
57
+ agentId="16005"
58
+ :clickMode="false"
59
+ :choosedDirection="choosedDirection"
60
+ :choosedPedDirection="choosedPedDirection"
61
+ :roadDirection="roadDirection" />
62
62
 
63
63
  <!-- <button @click="lockPhase" >相位锁定</button><br/>
64
64
  <button @click="unlockPhase" >解锁相位</button><br/>
@@ -182,7 +182,7 @@ export default {
182
182
  // agentId: '12007_390',
183
183
  // agentId: '12014',
184
184
  reqUrl: 'http://192.168.13.103:10003/openatc',
185
- Token: 'eyJraWQiOiIxNzYwMzE4NDkyODY1IiwidHlwIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTc2MDMyMjA5MiwiaWF0IjoxNzYwMzE0ODkyfQ.aiWcnWTGZRD70rPcZYW4k9dFvQ2mYCHCjIo2aE-IPYg',
185
+ Token: 'eyJraWQiOiIxNzYwNjkyMjE3ODM1IiwidHlwIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJhZG1pbiIsImV4cCI6MTc2MDY5NTgxNywiaWF0IjoxNzYwNjg4NjE3fQ.ZOhFCKr7YjVJ-b7mD2G9EE34Pi3XBkdk73rMT0QdP8E',
186
186
  // agentId: '30003-352',
187
187
  // reqUrl: 'https://kints-dev.devdolphin.com/openatc',
188
188
  // Token: 'eyJraWQiOiIxNjUwNTA5MDI2ODk2IiwidHlwIjoiSldUIiwiYWxnIjoiSFMyNTYifQ.eyJzdWIiOiJ4aWFvbWluZyIsImV4cCI6MTczNjkwOTAyNiwiaWF0IjoxNjUwNTA5MDI2fQ.-s4T-uMRmB2zf9yer87USKQXLY1a12Zq5lCOnqjNmfA',
@@ -472,9 +472,14 @@ export default {
472
472
  this.$refs.selectMap.refresh()
473
473
  },
474
474
  clear () {
475
- this.choosedDirection = []
476
- this.choosedPedDirection = []
477
- this.$refs.intersectionMap3.resetCrossDiagram()
475
+ // this.choosedDirection = []
476
+ // this.choosedPedDirection = []
477
+ // this.$refs.intersectionMap3.resetCrossDiagram()
478
+ },
479
+ changeChoosedDir () {
480
+ this.choosedDirection = [2]
481
+ this.choosedPedDirection = [4]
482
+ this.$refs.selectMap.refreshArrow()
478
483
  }
479
484
  },
480
485
  created () {