openatc-components 0.0.100 → 0.0.103
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/BoardCard/BoardCard.vue +6 -1
- package/package/kisscomps/components/Channelization/Channelization.vue +13 -10
- package/package/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +18 -11
- package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +54 -74
- package/package/kisscomps/components/DrawChannelization/drawsvg/firstImportCrossmap.vue +1 -4
- package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +11 -34
- package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorChart.vue +1 -26
- package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorIconSvg.vue +18 -37
- package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/laneIcon.vue +6 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +28 -50
- package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/pedroadIconSvg.vue +29 -53
- package/package/kisscomps/components/DrawChannelization/drawsvg/importDialog.vue +1 -4
- package/package/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +147 -130
- package/package/kisscomps/components/DrawChannelization/drawsvg/index.vue +5 -6
- package/package/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +43 -144
- package/package/kisscomps/components/DrawChannelization/drawsvg/utils/loadutils.js +1 -45
- package/package/kisscomps/components/KanBan/kanban.vue +7 -7
- package/package/kisscomps/components/PatternStatus/PatternStatus.vue +153 -38
- package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +16 -0
- package/package/kisscomps/components/SchemeConfig/priorityControl/index.vue +190 -0
- package/package/kisscomps/components/SchemeConfig/priorityControl/utils.js +163 -0
- package/package/kisscomps/components/StageStatus/StageStatus.vue +6 -2
- package/package/kisscomps/components/patternList/patternList.vue +5 -0
- package/package/kisscomps/index.js +2 -0
- package/package/kissui.min.js +1 -1
- package/package.json +13 -12
- package/src/i18n/language/en.js +32 -7
- package/src/i18n/language/zh.js +31 -6
- package/src/kisscomps/components/BoardCard/BoardCard.vue +6 -1
- package/src/kisscomps/components/Channelization/Channelization.vue +13 -10
- package/src/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +18 -11
- package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +54 -74
- package/src/kisscomps/components/DrawChannelization/drawsvg/firstImportCrossmap.vue +1 -4
- package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +11 -34
- package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorChart.vue +1 -26
- package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorIconSvg.vue +18 -37
- package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/laneIcon.vue +6 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +28 -50
- package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/pedroadIconSvg.vue +29 -53
- package/src/kisscomps/components/DrawChannelization/drawsvg/importDialog.vue +1 -4
- package/src/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +147 -130
- package/src/kisscomps/components/DrawChannelization/drawsvg/index.vue +5 -6
- package/src/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +43 -144
- package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.check.vue +191 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.syncOper.vue +331 -0
- package/src/kisscomps/components/DrawChannelization/drawsvg/utils/loadutils.js +1 -45
- package/src/kisscomps/components/KanBan/kanban.vue +7 -7
- package/src/kisscomps/components/PatternStatus/PatternStatus.vue +153 -38
- package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +16 -0
- package/src/kisscomps/components/SchemeConfig/priorityControl/index.vue +190 -0
- package/src/kisscomps/components/SchemeConfig/priorityControl/utils.js +163 -0
- package/src/kisscomps/components/StageStatus/StageStatus.vue +6 -2
- package/src/kisscomps/components/patternList/patternList.vue +5 -0
- package/src/kisscomps/index.js +2 -0
- package/src/router/index.js +2 -2
- package/src/views/intersection.vue +5 -3
- package/static/styles/channelizatioon.scss +2 -40
- package/static/styles/schemeconfig.scss +52 -0
- package/package/kisscomps/components/DrawChannelization/drawsvg/basicCoordInfo.vue +0 -113
- package/src/kisscomps/components/DrawChannelization/drawsvg/basicCoordInfo.vue +0 -113
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
:patternStatusList="patternStatusList">
|
|
9
9
|
</StageStatus>
|
|
10
10
|
<PatternStatus
|
|
11
|
+
:showBarrier="showBarrier"
|
|
11
12
|
:localPatternList="localPatternList"
|
|
12
13
|
:contrloType="contrloType"
|
|
13
14
|
:stagesChange="stagesChange"
|
|
@@ -17,7 +18,7 @@
|
|
|
17
18
|
:phaseList="phaseList"
|
|
18
19
|
:cycle="cycle"
|
|
19
20
|
:syncTime="syncTime"
|
|
20
|
-
:style="{'margin-top':cycle ? '25px':'0'}"
|
|
21
|
+
:style="{'margin-top':(cycle || !showBarrier)? '25px':'0'}"
|
|
21
22
|
:patternStatusList="patternStatusList"
|
|
22
23
|
:patternId="patternId"
|
|
23
24
|
:cycles="cycles">
|
|
@@ -52,6 +53,10 @@ export default {
|
|
|
52
53
|
stagesChange: {
|
|
53
54
|
type: Array
|
|
54
55
|
},
|
|
56
|
+
showBarrier: {
|
|
57
|
+
type: Boolean,
|
|
58
|
+
default: false
|
|
59
|
+
},
|
|
55
60
|
phaseList: {
|
|
56
61
|
type: Array
|
|
57
62
|
},
|
|
@@ -128,11 +128,6 @@ export default {
|
|
|
128
128
|
},
|
|
129
129
|
CrossMapVisible: true, // 控制底图显示隐藏
|
|
130
130
|
CrossMapData: {
|
|
131
|
-
x: 400,
|
|
132
|
-
y: 100,
|
|
133
|
-
w: 800,
|
|
134
|
-
h: 200,
|
|
135
|
-
angle: 0,
|
|
136
131
|
svgstr: '',
|
|
137
132
|
imgfilesrc: ''
|
|
138
133
|
}, // 管理底图数据
|
|
@@ -302,6 +297,19 @@ export default {
|
|
|
302
297
|
}
|
|
303
298
|
if (key === 'crossMap') {
|
|
304
299
|
this.CrossMapData = JSON.parse(JSON.stringify(value))
|
|
300
|
+
if (value.type === 'vectorgraph') {
|
|
301
|
+
// svg底图,只加载底图870*650区域范围内的元素
|
|
302
|
+
let { svgstr, ...allitem } = value
|
|
303
|
+
this.allitem = allitem
|
|
304
|
+
} else {
|
|
305
|
+
this.allitem = {
|
|
306
|
+
x: 435,
|
|
307
|
+
y: 325,
|
|
308
|
+
w: 870,
|
|
309
|
+
h: 650,
|
|
310
|
+
angle: 0
|
|
311
|
+
}
|
|
312
|
+
}
|
|
305
313
|
}
|
|
306
314
|
}
|
|
307
315
|
this.isSeletable = false
|
|
@@ -320,11 +328,6 @@ export default {
|
|
|
320
328
|
this.Pedwalk = []
|
|
321
329
|
this.Detector = []
|
|
322
330
|
this.CrossMapData = {
|
|
323
|
-
x: 400,
|
|
324
|
-
y: 100,
|
|
325
|
-
w: 800,
|
|
326
|
-
h: 200,
|
|
327
|
-
angle: 0,
|
|
328
331
|
svgstr: '',
|
|
329
332
|
imgfilesrc: ''
|
|
330
333
|
}
|
|
@@ -30,11 +30,9 @@
|
|
|
30
30
|
v-if="CrossMapVisible"
|
|
31
31
|
:UsageMode="UsageMode"
|
|
32
32
|
:CrossMapData="CrossMapData"
|
|
33
|
-
:isSeletable="
|
|
33
|
+
:isSeletable="isSeletable"
|
|
34
34
|
:pointchange="pointchange"
|
|
35
|
-
:chooseIndex="curChooseIconIndex"
|
|
36
35
|
@changeCrossMap="changeCrossMap"
|
|
37
|
-
@handleSelectIcon="handleSelectIcon"
|
|
38
36
|
/>
|
|
39
37
|
<!-- 机动车图标 -->
|
|
40
38
|
<div v-if="resetflag">
|
|
@@ -49,6 +47,18 @@
|
|
|
49
47
|
@handleSelectIcon="handleSelectIcon"
|
|
50
48
|
/>
|
|
51
49
|
</div>
|
|
50
|
+
|
|
51
|
+
<!-- 非机动车图标 -->
|
|
52
|
+
<!-- <BicyclelanesIconSvg
|
|
53
|
+
:UsageMode="UsageMode"
|
|
54
|
+
v-for="bicycleitem in Bicyclelanes"
|
|
55
|
+
:key="bicycleitem.index"
|
|
56
|
+
:chooseIndex="curChooseIconIndex"
|
|
57
|
+
:Data="bicycleitem"
|
|
58
|
+
:isSeletable="isSeletable"
|
|
59
|
+
@changeBicyclelaneItem="changeBicyclelaneItem"
|
|
60
|
+
@handleSelectIcon="handleSelectIcon"
|
|
61
|
+
/>-->
|
|
52
62
|
<!-- 文字图标 -->
|
|
53
63
|
<!-- <EditableText
|
|
54
64
|
:UsageMode="UsageMode"
|
|
@@ -95,16 +105,15 @@
|
|
|
95
105
|
@changeDetectorItem="changeDetectorItem"
|
|
96
106
|
@handleSelectIcon="handleSelectIcon"
|
|
97
107
|
/>
|
|
98
|
-
|
|
108
|
+
<DetectorChart
|
|
99
109
|
:UsageMode="UsageMode"
|
|
100
110
|
v-for="detchartitem in DetectorChart"
|
|
101
111
|
:key="'detectorchart-' + detchartitem.index"
|
|
102
112
|
:chooseIndex="curChooseIconIndex"
|
|
103
113
|
:DetectorChartData="detchartitem"
|
|
104
|
-
:Detector="Detector"
|
|
105
114
|
:isSeletable="isSeletable"
|
|
106
115
|
@changeDetectorChartItem="changeDetectorChartItem"
|
|
107
|
-
@handleSelectIcon="handleSelectIcon" />
|
|
116
|
+
@handleSelectIcon="handleSelectIcon" />
|
|
108
117
|
</drr>
|
|
109
118
|
</div>
|
|
110
119
|
</template>
|
|
@@ -124,6 +133,7 @@ export default {
|
|
|
124
133
|
CrossMap,
|
|
125
134
|
EditableText,
|
|
126
135
|
MotorwayIconSvg,
|
|
136
|
+
// BicyclelanesIconSvg,
|
|
127
137
|
CountdownIcon,
|
|
128
138
|
PedroadIconSvg,
|
|
129
139
|
DetectorIconSvg,
|
|
@@ -182,9 +192,6 @@ export default {
|
|
|
182
192
|
},
|
|
183
193
|
CurChooseIcon: {
|
|
184
194
|
type: Object
|
|
185
|
-
},
|
|
186
|
-
isLockedCrossMap: { // 是否锁定底图(是否允许编辑底图位置,角度等)
|
|
187
|
-
type: Boolean
|
|
188
195
|
}
|
|
189
196
|
},
|
|
190
197
|
data () {
|
|
@@ -199,8 +206,8 @@ export default {
|
|
|
199
206
|
changeMotorwayItem (MotorwayItem, fields) {
|
|
200
207
|
this.$emit('changeMotorwayItem', MotorwayItem, fields)
|
|
201
208
|
},
|
|
202
|
-
handleSelectIcon (iconobj
|
|
203
|
-
this.$emit('handleSelectIcon', iconobj
|
|
209
|
+
handleSelectIcon (iconobj) {
|
|
210
|
+
this.$emit('handleSelectIcon', iconobj)
|
|
204
211
|
},
|
|
205
212
|
changeText (textobj, fields) {
|
|
206
213
|
this.$emit('changeText', textobj, fields)
|
|
@@ -12,30 +12,31 @@
|
|
|
12
12
|
<template>
|
|
13
13
|
<!-- 自定义底图 -->
|
|
14
14
|
<div class="cross-map-part" ref="crossmap">
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class="cross-map" :style="{'width': crossmapitem.w + 'px', 'height': crossmapitem.h + 'px'}" v-html="CrossMapData.svgstr"></div>
|
|
33
|
-
</div>
|
|
15
|
+
<div v-if="mapreset && CrossMapData.type === 'vectorgraph'">
|
|
16
|
+
<!-- 底图可缩放 -->
|
|
17
|
+
<!-- <drr
|
|
18
|
+
id="crossmapdrr"
|
|
19
|
+
:selectable="isSeletable"
|
|
20
|
+
:x="crossmapitem.x"
|
|
21
|
+
:y="crossmapitem.y"
|
|
22
|
+
:w="crossmapitem.w"
|
|
23
|
+
:h="crossmapitem.h"
|
|
24
|
+
:angle="crossmapitem.angle"
|
|
25
|
+
:aspectRatio="true"
|
|
26
|
+
@dragstop="mapDragStop(crossmapitem, ...arguments)"
|
|
27
|
+
@resizestop="mapResizeStop(crossmapitem, ...arguments)"
|
|
28
|
+
@rotatestop="mapRotateStop(crossmapitem, ...arguments)"
|
|
29
|
+
>
|
|
30
|
+
<div class="cross-map" v-html="CrossMapData.svgstr"></div>
|
|
31
|
+
</drr> -->
|
|
34
32
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
<!-- 底图取消操作 -->
|
|
34
|
+
<div class="cross-map" :style="{'width': crossmapitem.w + 'px', 'height': crossmapitem.h + 'px'}" v-html="CrossMapData.svgstr"></div>
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
<div v-if="mapreset && CrossMapData.type === 'picture'" class="cross-map">
|
|
38
|
+
<img height="100%" :src="CrossMapData.imgfilesrc">
|
|
39
|
+
</div>
|
|
39
40
|
</div>
|
|
40
41
|
</template>
|
|
41
42
|
|
|
@@ -54,9 +55,6 @@ export default {
|
|
|
54
55
|
isSeletable: {
|
|
55
56
|
type: Boolean
|
|
56
57
|
},
|
|
57
|
-
chooseIndex: {
|
|
58
|
-
type: Number
|
|
59
|
-
},
|
|
60
58
|
pointchange: {
|
|
61
59
|
type: Boolean
|
|
62
60
|
}
|
|
@@ -64,17 +62,26 @@ export default {
|
|
|
64
62
|
watch: {
|
|
65
63
|
CrossMapData: {
|
|
66
64
|
handler: function (val) {
|
|
67
|
-
this.crossmapitem
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
65
|
+
this.crossmapitem = {
|
|
66
|
+
x: 0,
|
|
67
|
+
y: 0,
|
|
68
|
+
w: 0,
|
|
69
|
+
h: 0,
|
|
70
|
+
angle: 0
|
|
71
|
+
}
|
|
72
72
|
if (val.type === 'vectorgraph') {
|
|
73
73
|
if (val.svgstr === '') {
|
|
74
74
|
this.mapreset = false
|
|
75
75
|
return
|
|
76
76
|
}
|
|
77
77
|
this.mapreset = true
|
|
78
|
+
this.crossmapitem = {
|
|
79
|
+
x: val.x,
|
|
80
|
+
y: val.y,
|
|
81
|
+
w: val.w,
|
|
82
|
+
h: val.h,
|
|
83
|
+
angle: val.angle
|
|
84
|
+
}
|
|
78
85
|
}
|
|
79
86
|
if (val.type === 'picture') {
|
|
80
87
|
if (val.imgfilesrc === undefined || val.imgfilesrc === '') {
|
|
@@ -86,19 +93,19 @@ export default {
|
|
|
86
93
|
},
|
|
87
94
|
deep: true
|
|
88
95
|
},
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
96
|
+
crossmapitem: {
|
|
97
|
+
handler: function (newval, oldval) {
|
|
98
|
+
if ((JSON.stringify(oldval) !== '{}') && !this.isEqual(newval, oldval)) {
|
|
99
|
+
// 更改原数据的位置大小数据
|
|
100
|
+
let data = {
|
|
101
|
+
...this.CrossMapData,
|
|
102
|
+
...newval
|
|
103
|
+
}
|
|
104
|
+
let fields = Object.keys(newval)
|
|
105
|
+
this.$emit('changeCrossMap', data, fields)
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
},
|
|
102
109
|
pointchange: {
|
|
103
110
|
handler: function (val) {
|
|
104
111
|
// 解决光标样式被选区样式覆盖问题
|
|
@@ -125,32 +132,17 @@ export default {
|
|
|
125
132
|
mapDragStop (origin, final) {
|
|
126
133
|
// 底图拖动停止
|
|
127
134
|
this.crossmapitem = JSON.parse(JSON.stringify(final))
|
|
128
|
-
this.handleChangeData()
|
|
129
135
|
},
|
|
130
136
|
mapResizeStop (origin, final) {
|
|
131
137
|
// 底图改变大小停止
|
|
132
|
-
let svgdom = document.querySelector('.cross-map svg')
|
|
133
|
-
if (svgdom) {
|
|
134
|
-
// 解决svg源文件里有宽高属性,此时对svg父容器改变宽高,svg尺寸不会改变的问题
|
|
135
|
-
// 因此要修改svg文件的宽高属性
|
|
136
|
-
if (svgdom.getAttribute('width')) {
|
|
137
|
-
svgdom.setAttribute('width', final.w + 'px')
|
|
138
|
-
}
|
|
139
|
-
if (svgdom.getAttribute('height')) {
|
|
140
|
-
svgdom.setAttribute('height', final.h + 'px')
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
138
|
this.resetMapSvg()
|
|
144
139
|
this.crossmapitem = JSON.parse(JSON.stringify(final))
|
|
145
|
-
this.
|
|
140
|
+
// this.$refs.crossmap.style.height = final.w + 'px'
|
|
141
|
+
// this.$refs.crossmap.style.width = final.h + 'px'
|
|
146
142
|
},
|
|
147
143
|
mapRotateStop (origin, final) {
|
|
148
144
|
// 底图旋转停止
|
|
149
|
-
this.crossmapitem = JSON.parse(JSON.stringify(final))
|
|
150
|
-
if (this.crossmapitem.angle < 0) {
|
|
151
|
-
this.crossmapitem.angle = this.crossmapitem.angle + 360
|
|
152
|
-
}
|
|
153
|
-
this.handleChangeData()
|
|
145
|
+
this.crossmapitem = JSON.parse(JSON.stringify(final))
|
|
154
146
|
},
|
|
155
147
|
resetMapSvg () {
|
|
156
148
|
// 重绘底图svg
|
|
@@ -174,18 +166,6 @@ export default {
|
|
|
174
166
|
}
|
|
175
167
|
}
|
|
176
168
|
return true
|
|
177
|
-
},
|
|
178
|
-
handleSelectIcon (iconparams) {
|
|
179
|
-
this.$emit('handleSelectIcon', this.CrossMapData, 'crossmap')
|
|
180
|
-
},
|
|
181
|
-
handleChangeData () {
|
|
182
|
-
let data = {
|
|
183
|
-
...this.CrossMapData,
|
|
184
|
-
...this.crossmapitem
|
|
185
|
-
}
|
|
186
|
-
let fields = Object.keys(this.crossmapitem)
|
|
187
|
-
this.$emit('changeCrossMap', data, fields)
|
|
188
|
-
this.handleSelectIcon()
|
|
189
169
|
}
|
|
190
170
|
}
|
|
191
171
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
**/
|
|
12
12
|
<template>
|
|
13
13
|
<div class="first-import-crossmap">
|
|
14
|
-
<ImportDialog ref="importDialog" @loadSvgString="loadSvgString"
|
|
14
|
+
<ImportDialog ref="importDialog" @loadSvgString="loadSvgString" />
|
|
15
15
|
<div class="import-btn">
|
|
16
16
|
<el-button type="primary" @click="clickOpen">{{$t('openatccomponents.channelizationmap.importpicture')}}</el-button>
|
|
17
17
|
<div class="tip">{{$t('openatccomponents.channelizationmap.importtip')}}</div>
|
|
@@ -39,9 +39,6 @@ export default {
|
|
|
39
39
|
},
|
|
40
40
|
loadSvgString (type, imgstr) {
|
|
41
41
|
this.$emit('loadSvgString', type, imgstr)
|
|
42
|
-
},
|
|
43
|
-
loadMapSize (type, mapsize) {
|
|
44
|
-
this.$emit('loadMapSize', type, mapsize)
|
|
45
42
|
}
|
|
46
43
|
},
|
|
47
44
|
mounted () {}
|
|
@@ -21,7 +21,6 @@
|
|
|
21
21
|
:selectable="isSeletable"
|
|
22
22
|
:angle="item.angle"
|
|
23
23
|
:aspectRatio="true"
|
|
24
|
-
:rotatable="false"
|
|
25
24
|
@select="handleSelectIcon(item)"
|
|
26
25
|
@dragstop="boxDragStop(item, ...arguments)"
|
|
27
26
|
@resizestop="boxResizeStop(item, ...arguments)"
|
|
@@ -59,28 +58,18 @@ export default {
|
|
|
59
58
|
}
|
|
60
59
|
},
|
|
61
60
|
watch: {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
// }
|
|
73
|
-
// }
|
|
74
|
-
// },
|
|
75
|
-
CountdownData: {
|
|
76
|
-
handler: function (val) {
|
|
77
|
-
if (this.UsageMode === 'draw') {
|
|
78
|
-
this.item.x = val.x
|
|
79
|
-
this.item.y = val.y
|
|
80
|
-
this.item.angle = val.angle
|
|
61
|
+
item: {
|
|
62
|
+
handler: function (newval, oldval) {
|
|
63
|
+
if ((JSON.stringify(oldval) !== '{}')) {
|
|
64
|
+
// 更改原数据的位置大小数据
|
|
65
|
+
let data = {
|
|
66
|
+
...this.CountdownData,
|
|
67
|
+
...newval
|
|
68
|
+
}
|
|
69
|
+
let fields = Object.keys(newval)
|
|
70
|
+
this.$emit('changeTimeItem', data, fields)
|
|
81
71
|
}
|
|
82
|
-
}
|
|
83
|
-
deep: true
|
|
72
|
+
}
|
|
84
73
|
},
|
|
85
74
|
CountdownList: {
|
|
86
75
|
handler: function (val) {
|
|
@@ -117,16 +106,13 @@ export default {
|
|
|
117
106
|
boxDragStop (origin, final) {
|
|
118
107
|
this.item = JSON.parse(JSON.stringify(final))
|
|
119
108
|
this.$emit('handleSelectIcon', this.CountdownData)
|
|
120
|
-
this.handleChangeData()
|
|
121
109
|
},
|
|
122
110
|
boxResizeStop (origin, final) {
|
|
123
111
|
this.resetSvg()
|
|
124
112
|
this.item = JSON.parse(JSON.stringify(final))
|
|
125
|
-
this.handleChangeData()
|
|
126
113
|
},
|
|
127
114
|
boxRotateStop (origin, final) {
|
|
128
115
|
this.item = JSON.parse(JSON.stringify(final))
|
|
129
|
-
this.handleChangeData()
|
|
130
116
|
},
|
|
131
117
|
resetSvg () {
|
|
132
118
|
this.reset = false
|
|
@@ -143,15 +129,6 @@ export default {
|
|
|
143
129
|
if (this.Fontsize < 14) {
|
|
144
130
|
this.Fontsize = 14
|
|
145
131
|
}
|
|
146
|
-
},
|
|
147
|
-
handleChangeData () {
|
|
148
|
-
let data = {
|
|
149
|
-
...this.CountdownData,
|
|
150
|
-
...this.item
|
|
151
|
-
}
|
|
152
|
-
let fields = Object.keys(this.item)
|
|
153
|
-
this.$emit('changeTimeItem', data, fields)
|
|
154
|
-
this.handleSelectIcon()
|
|
155
132
|
}
|
|
156
133
|
},
|
|
157
134
|
created () {
|
|
@@ -27,11 +27,6 @@
|
|
|
27
27
|
>
|
|
28
28
|
<div v-if="UsageMode === 'draw'" class="centerText" :class="{'defaultBg': chooseIndex !== DetectorChartData.index, 'highlightBg': chooseIndex === DetectorChartData.index }" :style="{'width': item.w + 'px', 'height': item.h + 'px'}">
|
|
29
29
|
<div class="detector-statistics-echarts" :id="'detectorStatisticsEcharts' + DetectorChartData.index"></div>
|
|
30
|
-
<!-- <div>
|
|
31
|
-
<div class="detector-rect"
|
|
32
|
-
:class="{'defaultVehicleBorder': DetectorData.detectortype === 1,
|
|
33
|
-
'defaultPedBorder': DetectorData.detectortype === 2 }"></div>
|
|
34
|
-
</div> -->
|
|
35
30
|
</div>
|
|
36
31
|
<div v-if="UsageMode === 'show'" class="centerText" :class="{'defaultBg': chooseIndex !== DetectorChartData.index, 'highlightBg': chooseIndex === DetectorChartData.index }" :style="{'width': item.w + 'px', 'height': item.h + 'px'}">
|
|
37
32
|
</div>
|
|
@@ -66,20 +61,12 @@ export default {
|
|
|
66
61
|
this.$emit('changeDetectorItem', data, fields)
|
|
67
62
|
}
|
|
68
63
|
}
|
|
69
|
-
},
|
|
70
|
-
DetectorChartData: {
|
|
71
|
-
handler: function (newval, oldval) {
|
|
72
|
-
console.log(this.Detector)
|
|
73
|
-
}
|
|
74
64
|
}
|
|
75
65
|
},
|
|
76
66
|
props: {
|
|
77
67
|
DetectorChartData: {
|
|
78
68
|
type: Object
|
|
79
69
|
},
|
|
80
|
-
Detector: {
|
|
81
|
-
type: Array
|
|
82
|
-
},
|
|
83
70
|
isSeletable: {
|
|
84
71
|
type: Boolean
|
|
85
72
|
},
|
|
@@ -127,19 +114,16 @@ export default {
|
|
|
127
114
|
xAxis: {
|
|
128
115
|
type: 'category',
|
|
129
116
|
axisLabel: {
|
|
130
|
-
show: false,
|
|
131
117
|
textStyle: {
|
|
132
118
|
color: getTheme() === 'light' ? '#666666' : '#B9BABF'
|
|
133
119
|
}
|
|
134
120
|
},
|
|
135
121
|
axisTick: {
|
|
136
|
-
show: false,
|
|
137
122
|
lineStyle: {
|
|
138
123
|
color: getTheme() === 'light' ? '#D7DFE1' : '#30384D'
|
|
139
124
|
}
|
|
140
125
|
},
|
|
141
126
|
axisLine: {
|
|
142
|
-
show: false,
|
|
143
127
|
lineStyle: {
|
|
144
128
|
color: getTheme() === 'light' ? '#D7DFE1' : '#30384D'
|
|
145
129
|
}
|
|
@@ -158,7 +142,6 @@ export default {
|
|
|
158
142
|
// }
|
|
159
143
|
},
|
|
160
144
|
axisLine: {
|
|
161
|
-
show: false,
|
|
162
145
|
lineStyle: {
|
|
163
146
|
color: getTheme() === 'light' ? '#D7DFE1' : '#30384D'
|
|
164
147
|
}
|
|
@@ -176,7 +159,6 @@ export default {
|
|
|
176
159
|
// }
|
|
177
160
|
},
|
|
178
161
|
axisLabel: {
|
|
179
|
-
show: false,
|
|
180
162
|
textStyle: {
|
|
181
163
|
color: getTheme() === 'light' ? '#666666' : '#B9BABF'
|
|
182
164
|
}
|
|
@@ -186,14 +168,7 @@ export default {
|
|
|
186
168
|
type: 'bar',
|
|
187
169
|
barWidth: '10',
|
|
188
170
|
itemStyle: {
|
|
189
|
-
color: 'red'
|
|
190
|
-
borderWidth: 0,
|
|
191
|
-
shadowBlur: {
|
|
192
|
-
shadowColor: 'rgba(255,255,255,0.31)',
|
|
193
|
-
shadowBlur: 10,
|
|
194
|
-
shadowOffsetX: 0,
|
|
195
|
-
shadowOffsetY: 2
|
|
196
|
-
}
|
|
171
|
+
color: 'red'
|
|
197
172
|
},
|
|
198
173
|
data: this.flowsaturation
|
|
199
174
|
}, {
|
|
@@ -64,29 +64,26 @@ export default {
|
|
|
64
64
|
}
|
|
65
65
|
},
|
|
66
66
|
watch: {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
// }
|
|
78
|
-
// }
|
|
79
|
-
// }
|
|
80
|
-
DetectorData: {
|
|
81
|
-
handler: function (val) {
|
|
82
|
-
if (this.UsageMode === 'draw') {
|
|
83
|
-
this.item.x = val.x
|
|
84
|
-
this.item.y = val.y
|
|
85
|
-
this.item.angle = val.angle
|
|
67
|
+
item: {
|
|
68
|
+
handler: function (newval, oldval) {
|
|
69
|
+
if ((JSON.stringify(oldval) !== '{}')) {
|
|
70
|
+
// 更改原数据的位置大小数据
|
|
71
|
+
let data = {
|
|
72
|
+
...this.DetectorData,
|
|
73
|
+
...newval
|
|
74
|
+
}
|
|
75
|
+
let fields = Object.keys(newval)
|
|
76
|
+
this.$emit('changeDetectorItem', data, fields)
|
|
86
77
|
}
|
|
87
|
-
}
|
|
88
|
-
deep: true
|
|
78
|
+
}
|
|
89
79
|
}
|
|
80
|
+
// DetectorData: {
|
|
81
|
+
// 监听失效,不明原因,有时间可以看下
|
|
82
|
+
// handler: function (val) {
|
|
83
|
+
// debugger
|
|
84
|
+
// },
|
|
85
|
+
// deep: true
|
|
86
|
+
// }
|
|
90
87
|
|
|
91
88
|
// CurChooseIcon: {
|
|
92
89
|
// handler: function (data) {
|
|
@@ -117,12 +114,10 @@ export default {
|
|
|
117
114
|
boxDragStop (origin, final) {
|
|
118
115
|
this.item = JSON.parse(JSON.stringify(final))
|
|
119
116
|
this.$emit('handleSelectIcon', this.DetectorData)
|
|
120
|
-
this.handleChangeData()
|
|
121
117
|
},
|
|
122
118
|
boxResize (final) {
|
|
123
119
|
// this.resetSvg()
|
|
124
120
|
this.item = JSON.parse(JSON.stringify(final))
|
|
125
|
-
this.handleChangeData()
|
|
126
121
|
},
|
|
127
122
|
boxResizeStop (origin, final) {
|
|
128
123
|
// this.resetSvg()
|
|
@@ -130,11 +125,6 @@ export default {
|
|
|
130
125
|
},
|
|
131
126
|
boxRotateStop (origin, final) {
|
|
132
127
|
this.item = JSON.parse(JSON.stringify(final))
|
|
133
|
-
// 第四象限的角度是负值(开源组件接口返回),转化为正值便于理解
|
|
134
|
-
if (this.item.angle < 0) {
|
|
135
|
-
this.item.angle = this.item.angle + 360
|
|
136
|
-
}
|
|
137
|
-
this.handleChangeData()
|
|
138
128
|
},
|
|
139
129
|
resetSvg () {
|
|
140
130
|
this.reset = false
|
|
@@ -148,15 +138,6 @@ export default {
|
|
|
148
138
|
culculateFontsize () {
|
|
149
139
|
// 根据倒计时图标大小,动态计算内部文字大小
|
|
150
140
|
this.Fontsize = Math.floor(this.DetectorData.w / 140 * 20)
|
|
151
|
-
},
|
|
152
|
-
handleChangeData () {
|
|
153
|
-
let data = {
|
|
154
|
-
...this.DetectorData,
|
|
155
|
-
...this.item
|
|
156
|
-
}
|
|
157
|
-
let fields = Object.keys(this.item)
|
|
158
|
-
this.$emit('changeDetectorItem', data, fields)
|
|
159
|
-
this.handleSelectIcon()
|
|
160
141
|
}
|
|
161
142
|
},
|
|
162
143
|
created () {
|
|
@@ -23,6 +23,12 @@
|
|
|
23
23
|
d="M13.473,12.000 L13.473,-0.000 L16.000,-0.000 L16.000,12.000 L13.473,12.000 ZM8.982,-0.000 L11.508,-0.000 L11.508,12.000 L8.982,12.000 L8.982,-0.000 ZM4.491,-0.000 L7.017,-0.000 L7.017,12.000 L4.491,12.000 L4.491,-0.000 ZM-0.000,-0.000 L2.526,-0.000 L2.526,12.000 L-0.000,12.000 L-0.000,-0.000 Z"/>
|
|
24
24
|
</svg>
|
|
25
25
|
</div>
|
|
26
|
+
<!-- <div :class="laneicon.type === 'bicyclelane' ? '' : 'hide'">
|
|
27
|
+
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" :width="laneicon.width ? laneicon.width : iconw" :height="laneicon.height ? laneicon.height : iconh">
|
|
28
|
+
<path fill-rule="evenodd" :fill="laneicon.active === true ? highlightColor : defaultColor"
|
|
29
|
+
d="M6.994,6.074 L3.495,0.003 L-0.004,6.074 L2.091,6.074 L2.091,16.007 L4.898,16.007 L4.898,6.074 L6.994,6.074 Z"/>
|
|
30
|
+
</svg>
|
|
31
|
+
</div> -->
|
|
26
32
|
<div :class="laneicon.type === 'countdown' ? '' : 'hide'">
|
|
27
33
|
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" :width="laneicon.width ? laneicon.width : iconw" :height="laneicon.height ? laneicon.height : iconh">
|
|
28
34
|
<path fill-rule="evenodd" :fill="laneicon.active === true ? highlightColor : defaultColor"
|