openatc-components 0.0.103 → 0.0.104

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 (50) hide show
  1. package/package/kisscomps/components/Channelization/Channelization.vue +10 -13
  2. package/package/kisscomps/components/ChannelizationFlowStatistic/ChannelizationFlowStatistic.vue +349 -0
  3. package/package/kisscomps/components/ChannelizationFlowStatistic/index.js +2 -0
  4. package/package/kisscomps/components/DrawChannelization/drawsvg/basicCoordInfo.vue +113 -0
  5. package/package/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +24 -18
  6. package/package/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +72 -54
  7. package/package/kisscomps/components/DrawChannelization/drawsvg/firstImportCrossmap.vue +4 -1
  8. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +56 -14
  9. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorChart.vue +26 -1
  10. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorIconSvg.vue +37 -18
  11. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/laneIcon.vue +0 -6
  12. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +50 -28
  13. package/package/kisscomps/components/DrawChannelization/drawsvg/iconSvg/pedroadIconSvg.vue +53 -29
  14. package/package/kisscomps/components/DrawChannelization/drawsvg/importDialog.vue +4 -1
  15. package/package/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +213 -164
  16. package/package/kisscomps/components/DrawChannelization/drawsvg/index.vue +6 -5
  17. package/package/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +144 -43
  18. package/package/kisscomps/components/DrawChannelization/drawsvg/utils/loadutils.js +52 -8
  19. package/package/kisscomps/index.js +2 -0
  20. package/package/kissui.min.js +1 -1
  21. package/package.json +1 -1
  22. package/src/i18n/language/en.js +6 -3
  23. package/src/i18n/language/zh.js +5 -2
  24. package/src/kisscomps/components/Channelization/Channelization.vue +10 -13
  25. package/src/kisscomps/components/ChannelizationFlowStatistic/ChannelizationFlowStatistic.vue +349 -0
  26. package/src/kisscomps/components/ChannelizationFlowStatistic/index.js +2 -0
  27. package/src/kisscomps/components/DrawChannelization/drawsvg/basicCoordInfo.vue +113 -0
  28. package/src/kisscomps/components/DrawChannelization/drawsvg/channelizationElements.vue +24 -18
  29. package/src/kisscomps/components/DrawChannelization/drawsvg/drawElement/crossMap.vue +72 -54
  30. package/src/kisscomps/components/DrawChannelization/drawsvg/firstImportCrossmap.vue +4 -1
  31. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/countdownSvg.vue +56 -14
  32. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorChart.vue +26 -1
  33. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/detectorIconSvg.vue +37 -18
  34. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/laneIcon.vue +0 -6
  35. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/motorwayIconSvg.vue +50 -28
  36. package/src/kisscomps/components/DrawChannelization/drawsvg/iconSvg/pedroadIconSvg.vue +53 -29
  37. package/src/kisscomps/components/DrawChannelization/drawsvg/importDialog.vue +4 -1
  38. package/src/kisscomps/components/DrawChannelization/drawsvg/index.draw.vue +213 -164
  39. package/src/kisscomps/components/DrawChannelization/drawsvg/index.vue +6 -5
  40. package/src/kisscomps/components/DrawChannelization/drawsvg/laneEditPanel.vue +144 -43
  41. package/src/kisscomps/components/DrawChannelization/drawsvg/utils/loadutils.js +52 -8
  42. package/src/kisscomps/index.js +2 -0
  43. package/src/router/index.js +9 -10
  44. package/src/views/customchannelization.vue +1 -1
  45. package/src/views/intersection.vue +67 -45
  46. package/src/views/schemeconfig.vue +2 -2
  47. package/static/styles/channelizatioon.scss +49 -2
  48. package/static/styles/commonkanban.scss +27 -27
  49. package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.check.vue +0 -191
  50. package/src/kisscomps/components/DrawChannelization/drawsvg/phaseAssociatedComponent.syncOper.vue +0 -331
@@ -67,6 +67,16 @@
67
67
  width: 90PX;
68
68
  height: 32PX;
69
69
  }
70
+ .lock-map {
71
+ cursor: pointer;
72
+ margin: 0 5PX;
73
+ }
74
+ .el-icon-lock {
75
+ color: $--color-text-secondary;
76
+ }
77
+ .el-icon-unlock {
78
+ color: rgb(242, 121, 121);
79
+ }
70
80
  }
71
81
  .draw-to-sketchpad {
72
82
  float: right;
@@ -105,6 +115,14 @@
105
115
  .channelization-elements-components {
106
116
  border: 1px solid $--border-color-base;
107
117
  margin: 0 auto;
118
+ .detector-chart-icon {
119
+ .detector-rect {
120
+ width: 20PX;
121
+ height: 20PX;
122
+ border: 2px solid #0080FF;
123
+ margin: 0 auto;
124
+ }
125
+ }
108
126
  }
109
127
  }
110
128
  .draw-end-function {
@@ -200,6 +218,8 @@
200
218
  }
201
219
  .lane-edit-panel {
202
220
  position: relative;
221
+ max-height: 87vh;
222
+ overflow-y: auto;
203
223
  .edit-id {
204
224
  position: absolute;
205
225
  right: 30PX;
@@ -214,9 +234,27 @@
214
234
  .delete-drawed-item {
215
235
  text-align: center;
216
236
  margin-top: 57PX;
237
+ margin-bottom: 39PX;
238
+ button {
239
+ width: 90PX;
240
+ height: 32PX;
241
+ padding: 0;
242
+ }
217
243
  }
218
- .detector-threshold-formtext {
219
- color: $--color-text-regular;
244
+ .detector-threshold {
245
+ margin-bottom: 55px;
246
+ .detector-threshold-formtext {
247
+ color: $--color-text-regular;
248
+ }
249
+ .flow-separator {
250
+ color: $--color-text-regular;
251
+ }
252
+ .el-select {
253
+ width: 120PX;
254
+ }
255
+ }
256
+ .overlap-associated {
257
+ margin-bottom: 30px;
220
258
  }
221
259
  }
222
260
  .phase-associated-component {
@@ -361,5 +399,14 @@
361
399
  height: 14PX;
362
400
  font-size: 14PX;
363
401
  }
402
+ .customText {
403
+ position: absolute;
404
+ left: 50%;
405
+ top: 50%;
406
+ transform: translateX(-50%) translateY(-50%);
407
+ z-index: 9;
408
+ align-items: center;
409
+ color: #fff;
410
+ }
364
411
  }
365
412
  }
@@ -1,86 +1,86 @@
1
1
  // 公共面板组件通用样式
2
2
  .common-board-column {
3
- min-width: 180px;
4
- min-height: 100px;
5
- max-width: 350px;
3
+ min-width: 180PX;
4
+ min-height: 100PX;
5
+ max-width: 350PX;
6
6
  height: auto;
7
7
  overflow: hidden;
8
8
  // background: #f0f0f0;
9
- // border: 1px solid $--border-color-base;
9
+ // border: 1PX solid $--border-color-base;
10
10
  .common-phase-description {
11
11
  position: relative;
12
12
  background: rgb(217, 236, 255);
13
- width: 42px;
14
- height: 40px;
13
+ width: 42PX;
14
+ height: 40PX;
15
15
  }
16
16
 
17
17
 
18
18
  .common-board-column-header {
19
- line-height: 40px;
19
+ line-height: 40PX;
20
20
  overflow: hidden;
21
21
  text-align: center;
22
22
  background: $--color-primary;
23
23
  color: #FFFFFF;
24
- height: 40px;
24
+ height: 40PX;
25
25
  }
26
26
  .common-board-table-header {
27
- height: 42px;
27
+ height: 42PX;
28
28
  overflow: hidden;
29
29
  text-align: center;
30
- margin-bottom: -20px;
31
- font-size: 14px;
30
+ margin-bottom: -20PX;
31
+ font-size: 14PX;
32
32
  color: $--color-info;
33
33
  background-color: $--color-black;
34
- border: 20px solid transparent;
35
- border-bottom-width: 0px;
34
+ border: 20PX solid transparent;
35
+ border-bottom-width: 0PX;
36
36
  .common-titlecolumn {
37
37
  float: left;
38
38
  text-align: left;
39
39
  }
40
40
  .phase {
41
- width: 50px;
41
+ width: 50PX;
42
42
  }
43
43
  .mode {
44
- width: calc(100% - 50px)
44
+ width: calc(100% - 50PX)
45
45
  }
46
46
  }
47
47
 
48
48
  .common-board-column-content {
49
49
  height: auto;
50
50
  overflow: hidden;
51
- border: 10px solid transparent;
52
- min-height: 60px;
51
+ border: 10PX solid transparent;
52
+ min-height: 60PX;
53
53
  display: flex;
54
54
  justify-content: flex-start;
55
55
  flex-direction: column;
56
56
  align-items: center;
57
57
  background-color: $--color-black;
58
- border-width: 20px;
59
- border-top-width: 16px;
60
- border-bottom-width: 15px;
58
+ border-width: 20PX;
59
+ border-top-width: 16PX;
60
+ border-bottom-width: 15PX;
61
61
  .common-contentcolumn {
62
62
  float: left;
63
63
  }
64
64
  .phase {
65
- width: 40px;
65
+ width: 40PX;
66
66
  }
67
67
  .mode {
68
- margin-left: 10px;
69
- width: calc(100% - 50px);
68
+ margin-left: 10PX;
69
+ width: calc(100% - 50PX);
70
70
  }
71
71
 
72
72
  .common-board-item {
73
73
  cursor: pointer;
74
74
  width: 100%;
75
- height: 40px;
76
- margin-top: 10px;
75
+ height: 40PX;
76
+ margin-top: 10PX;
77
77
  text-align: left;
78
78
  box-sizing: border-box;
79
79
  .el-input {
80
80
  width: 100%;
81
81
  .el-input__inner {
82
- height: 40px;
83
- line-height: 40px;
82
+ height: 40PX;
83
+ line-height: 40PX;
84
84
  }
85
85
  }
86
86
  }
@@ -1,191 +0,0 @@
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="phase-associated-component">
14
- <div class="phase-box" v-for="(item, index) in assophaseList" :key="index">
15
- <div class="single-phase" :class="preselectPhase == item.id ? 'single-phase-select' : ''">
16
- <!-- <div class="ped-icon">
17
- <div v-for="(side, index) in item.peddirection" :key="'peddir-' + index">
18
- <PatternWalkSvg :Data="getshowped(side)" Width="42" Height="44" />
19
- </div>
20
- </div> -->
21
-
22
- <div class="phase-icon" @click="selectPhase(index, item)" v-if="item.direction">
23
- <xdr-dir-selector Width="44px" Height="44px" :showlist="getShowlist(item.direction)" :roadDirection="roadDirection"></xdr-dir-selector>
24
- </div>
25
- <div class="delete-phase-icon" @click="handleDeletePhase(index, item)">
26
- <i class="el-icon-close"></i>
27
- </div>
28
- </div>
29
- <div class="single-phase-name">{{$t('openatccomponents.channelizationmap.phase') + item.id}}</div>
30
- </div>
31
- <div class="phase-box">
32
- <div class="single-phase add-phase" @click="handleAddPhase()">
33
- <i class="iconfont icon-fangda" :class="{'add-disabled': !isCanAdd}"></i>
34
- </div>
35
- </div>
36
- </div>
37
- </template>
38
- <script>
39
- import { mapState } from 'vuex'
40
- import PhaseDataModel from '../../IntersectionMap/crossDirection/utils.js'
41
- export default {
42
- name: 'phase-associated-component',
43
- data () {
44
- return {
45
- assophaseList: [], // 渠化界面的相位列表
46
- preselectPhase: -1,
47
- id: 1,
48
- isCanAdd: true
49
- }
50
- },
51
- props: {
52
- editData: {
53
- type: Object
54
- },
55
- Motorways: {
56
- type: Array
57
- }
58
- },
59
- computed: {
60
- ...mapState({
61
- associatedphaselist: state => state.globalParam.associatedPhaseList,
62
- roadDirection: state => state.globalParam.roadDirection,
63
- PhaseDataMgr: state => state.globalParam.PhaseDataMgr
64
- })
65
- },
66
- watch: {
67
- associatedphaselist: {
68
- handler: function (list) {
69
- this.assophaseList = JSON.parse(JSON.stringify(list))
70
- },
71
- deep: true
72
- },
73
- assophaseList: {
74
- handler: function (list) {
75
- if (list.length >= 40) {
76
- this.isCanAdd = false
77
- } else {
78
- this.isCanAdd = true
79
- }
80
- },
81
- deep: true
82
- },
83
- editData: {
84
- handler: function (editobj) {
85
- if (editobj.phaseid !== undefined) {
86
- this.preselectPhase = editobj.phaseid
87
- } else {
88
- this.preselectPhase = -1
89
- }
90
- },
91
- deep: true
92
- }
93
- },
94
- methods: {
95
- selectPhase (index, item) {
96
- let direction = this.PhaseDataMgr.editDirPosToPhaseDireaciton(this.editData.icondireid, this.editData.lanePosition)
97
- // 校验同方位车道不能关联不同相位
98
- if (this.PhaseDataMgr.checkSameDirectionPhase(direction, item.id, this.editData.phaseid, this.Motorways, this.editData) === false) {
99
- this.$message.error(this.$t('openatccomponents.channelizationmap.associatedphaseerror'))
100
- return
101
- }
102
- // 关联相位
103
- this.preselectPhase = item.id
104
- let alldirection = direction
105
- this.$emit('selectPhase', this.preselectPhase, alldirection)
106
- },
107
- changeDirection (choosedicon) {
108
- for (let i = 0; i < this.assophaseList.length; i++) {
109
- if (this.assophaseList[i].id === choosedicon.phaseid) {
110
- let direction = this.PhaseDataMgr.editDirPosToPhaseDireaciton(choosedicon.icondireid, choosedicon.lanePosition, this.preselectPhase)
111
- // 校验同方位车道不能关联不同相位
112
- if (this.PhaseDataMgr.checkSameDirectionPhase(direction, choosedicon.phaseid) === false) {
113
- this.$message.error(this.$t('openatccomponents.channelizationmap.associatedphaseerror'))
114
- return
115
- }
116
- let alldirection = direction
117
- this.$emit('selectPhase', this.preselectPhase, alldirection)
118
- }
119
- }
120
- },
121
- getShowlist (direction) {
122
- return direction.map(dir => {
123
- return {
124
- id: dir,
125
- color: '#606266'
126
- }
127
- })
128
- },
129
- getshowped (peddirection) {
130
- return {
131
- id: peddirection,
132
- name: this.PhaseDataModel.getSidePos(peddirection).name
133
- }
134
- },
135
- handleDeletePhase (index, row) {
136
- // 更新模型内初始相位列表数据
137
- this.PhaseDataMgr.deleteOriginPhase(index)
138
- // 删除关联此相位的所有车道相位id
139
- this.handleDisassociatePhase(row.id)
140
- if (row.id === this.preselectPhase) {
141
- this.preselectPhase = -1
142
- }
143
- },
144
- handleDisassociatePhase (deletePhaseid) {
145
- // 删除相位后,解除相位关联
146
- this.$emit('handleDisassociatePhase', deletePhaseid)
147
- },
148
- handleAddPhase () {
149
- if (this.assophaseList.length >= 40) {
150
- this.$message.error(
151
- this.$t('openatccomponents.phase.mostdata')
152
- )
153
- return
154
- }
155
- // 更新模型内初始相位列表数据
156
- this.PhaseDataMgr.addOriginPhase()
157
- },
158
- getPedPhasePos () {
159
- // 行人相位信息
160
- this.sidewalkPhaseData = []
161
- this.assophaseList.forEach((ele, i) => {
162
- if (ele.peddirection) {
163
- ele.peddirection.forEach((dir, index) => {
164
- // 行人相位
165
- if (this.PhaseDataModel.getSidePos(dir)) {
166
- this.sidewalkPhaseData.push({
167
- key: this.CrossDiagramMgr.getUniqueKey('pedphase'),
168
- phaseid: ele.id, // 相位id,用于对应相位状态
169
- id: dir,
170
- name: this.PhaseDataModel.getSidePos(dir).name
171
- })
172
- }
173
- })
174
- }
175
- })
176
- return this.sidewalkPhaseData
177
- }
178
- },
179
- created () {
180
- this.globalParamModel = this.$store.getters.globalParamModel
181
- this.PhaseDataModel = new PhaseDataModel()
182
- },
183
- mounted () {
184
- this.assophaseList = JSON.parse(JSON.stringify(this.associatedphaselist))
185
- },
186
- destroyed () {
187
- }
188
- }
189
- </script>
190
- <style lang="scss">
191
- </style>