openatc-components 0.2.37 → 0.2.39

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 (42) hide show
  1. package/package/kisscomps/components/IntersectionMap/crossDirection/baseImg/PatternWalkSvg.vue +429 -0
  2. package/package/kisscomps/components/PatternStatus/PatternStatus.vue +7 -4
  3. package/package/kisscomps/components/SchemeConfig/SchemeConfig.vue +181 -28
  4. package/package/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +75 -32
  5. package/package/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +15 -4
  6. package/package/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +40 -17
  7. package/package/kisscomps/components/SchemeConfig/manualControlModalNew/index.vue +3 -3
  8. package/package/kisscomps/components/SchemeConfig/priorityControl/index.vue +22 -12
  9. package/package/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +1 -1
  10. package/package/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +23 -12
  11. package/package/kisscomps/components/StageBord/StageBord.vue +1 -0
  12. package/package/kisscomps/components/Stages/index.vue +52 -11
  13. package/package/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +30 -28
  14. package/package/kissui.min.js +1 -1
  15. package/package.json +1 -1
  16. package/src/i18n/language/en.js +6 -1
  17. package/src/i18n/language/zh.js +7 -2
  18. package/src/icons/svg/fangxiangsuoding.svg +1 -0
  19. package/src/icons/svg/jieduansuoding.svg +1 -0
  20. package/src/icons/svg/xiangweisuoding.svg +1 -0
  21. package/src/kisscomps/components/PatternStatus/PatternStatus.vue +7 -4
  22. package/src/kisscomps/components/SchemeConfig/SchemeConfig.vue +181 -28
  23. package/src/kisscomps/components/SchemeConfig/azimuthlocking/index.vue +75 -32
  24. package/src/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +15 -4
  25. package/src/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +40 -17
  26. package/src/kisscomps/components/SchemeConfig/manualControlModalNew/controlModelGroup.vue +128 -0
  27. package/src/kisscomps/components/SchemeConfig/manualControlModalNew/icon.vue +426 -0
  28. package/src/kisscomps/components/SchemeConfig/manualControlModalNew/index.vue +820 -0
  29. package/src/kisscomps/components/SchemeConfig/manualControlModalNew/othersIcon.vue +194 -0
  30. package/src/kisscomps/components/SchemeConfig/priorityControl/index.vue +22 -12
  31. package/src/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +1 -1
  32. package/src/kisscomps/components/SchemeConfig/tentativeplancontrolmodal/index.vue +23 -12
  33. package/src/kisscomps/components/StageBord/StageBord.vue +1 -0
  34. package/src/kisscomps/components/Stages/index.vue +52 -11
  35. package/src/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +30 -28
  36. package/src/views/intersection.vue +1 -1
  37. package/src/views/overView.vue +1 -1
  38. package/static/styles/commonkanban.scss +1 -0
  39. package/static/styles/light/theme/element-light.scss +4 -4
  40. package/static/styles/schemeconfig.scss +91 -59
  41. package/static/styles/stages.scss +1 -8
  42. package/src/node_modules/.package_versions.json +0 -1
@@ -11,23 +11,23 @@
11
11
  **/
12
12
  <template>
13
13
  <div class="manual-control-modal closephase-control">
14
- <div class="title" style="margin-bottom: 18px;">{{$t('openatccomponents.overview.phaseclosecontrol')}}</div>
14
+ <!-- <div class="title" style="margin-bottom: 18px;">{{$t('openatccomponents.overview.phaseclosecontrol')}}</div> -->
15
15
  <el-row>
16
16
  <el-col :span="24">
17
17
  <el-form
18
18
  ref="manual"
19
19
  label-position="left"
20
20
  :model="manualInfo"
21
- label-width="100px">
21
+ label-width="74px">
22
22
  <el-form-item
23
23
  :label="$t('openatccomponents.overview.delay') + ':'"
24
24
  prop="intersection">
25
- <el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempDelay" size="mini"></el-input-number>
25
+ <el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempDelay" size="small"></el-input-number>
26
26
  </el-form-item>
27
27
  <el-form-item
28
28
  :label="$t('openatccomponents.overview.duration') + ':'"
29
29
  prop="count">
30
- <el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempDuration" size="mini"></el-input-number>
30
+ <el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempDuration" size="small"></el-input-number>
31
31
  </el-form-item>
32
32
  </el-form>
33
33
  </el-col>
@@ -62,16 +62,20 @@
62
62
  </el-row>
63
63
  <div class="footer" v-if="realtimeStatusModalvisible">
64
64
  <el-button @click="handleClose()">{{$t('openatccomponents.button.Back')}}</el-button>
65
+ <el-button type="primary" plain @click="toAutoControl()" v-if="isHasPermission('configer:manual:renew')">{{$t('openatccomponents.overview.recovery')}}</el-button>
65
66
  <el-button type="primary" @click="handleManualControl()">{{$t('openatccomponents.overview.implement')}}</el-button>
66
67
  </div>
67
68
  <div class="footer" v-if="!realtimeStatusModalvisible">
68
69
  <el-button @click="handleClose()">{{$t('openatccomponents.button.Back')}}</el-button>
70
+ <el-button type="primary" plain @click="toAutoControl()" v-if="isHasPermission('configer:manual:renew')">{{$t('openatccomponents.overview.recovery')}}</el-button>
69
71
  <el-button type="primary" @click="handleManualControl()">{{$t('openatccomponents.overview.comfirm')}}</el-button>
70
72
  </div>
71
73
  </div>
72
74
  </template>
73
75
 
74
76
  <script>
77
+ import { hasPermission } from '../../../../utils/auth'
78
+
75
79
  export default {
76
80
  name: 'closePhaselControl',
77
81
  props: {
@@ -171,6 +175,13 @@ export default {
171
175
  this.closePhaseRings[i].phases = sortedlist
172
176
  }
173
177
  }
178
+ },
179
+ toAutoControl () {
180
+ this.$emit('toAutoControl')
181
+ },
182
+ isHasPermission (path) {
183
+ let res = hasPermission(path)
184
+ return res
174
185
  }
175
186
  },
176
187
  mounted () {
@@ -10,43 +10,56 @@
10
10
  * See the Mulan PSL v2 for more details.
11
11
  **/
12
12
  <template>
13
- <div class="manual-control-modal lockingphase-control">
14
- <div class="title" style="margin-bottom: 18px;">{{$t('openatccomponents.overview.phaselocking')}}</div>
13
+ <div class="lockingphase-control manual-control-modal">
14
+ <!-- <div class="title" style="margin-bottom: 18px;">{{$t('openatccomponents.overview.phaselocking')}}</div> -->
15
15
  <el-row>
16
- <el-col :span="24">
16
+ <el-col :span="12">
17
17
  <el-form
18
18
  :inline="true"
19
19
  ref="manual"
20
20
  label-position="left"
21
21
  :model="manualInfo"
22
- label-width="100px">
22
+ label-width="74px">
23
23
  <el-form-item
24
24
  :label="$t('openatccomponents.phase.greenclear') + ':'"
25
25
  prop="intersection">
26
- <el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempGreenflash" size="mini"></el-input-number>
27
- </el-form-item>
28
- <el-form-item
29
- :label="$t('openatccomponents.overview.duration') + ':'"
30
- prop="count">
31
- <el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempDuration" size="mini"></el-input-number>
26
+ <el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempGreenflash" size="small"></el-input-number>
32
27
  </el-form-item>
28
+
33
29
  <el-form-item
34
30
  :label="$t('openatccomponents.overview.yellowflash') + ':'"
35
31
  prop="intersection">
36
- <el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempYellow" size="mini"></el-input-number>
37
- </el-form-item>
38
- <el-form-item
39
- :label="$t('openatccomponents.overview.allred') + ':'"
40
- prop="intersection">
41
- <el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempRedclear" size="mini"></el-input-number>
32
+ <el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempYellow" size="small"></el-input-number>
42
33
  </el-form-item>
34
+
43
35
  <el-form-item
44
36
  :label="$t('openatccomponents.phase.mingreen') + ':'"
45
37
  prop="count">
46
- <el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempMingreen" size="mini"></el-input-number>
38
+ <el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempMingreen" size="small"></el-input-number>
47
39
  </el-form-item>
48
40
  </el-form>
49
41
  </el-col>
42
+ <el-col :span="12">
43
+ <el-form
44
+ :inline="true"
45
+ ref="manual"
46
+ label-position="left"
47
+ :model="manualInfo"
48
+ label-width="74px">
49
+
50
+ <el-form-item
51
+ :label="$t('openatccomponents.overview.duration') + ':'"
52
+ prop="count">
53
+ <el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempDuration" size="small"></el-input-number>
54
+ </el-form-item>
55
+
56
+ <el-form-item
57
+ :label="$t('openatccomponents.overview.allred') + ':'"
58
+ prop="intersection">
59
+ <el-input-number :min="0" :max="65535" :precision="0" :step="1" :controls="false" v-model.number="manualInfo.tempRedclear" size="small"></el-input-number>
60
+ </el-form-item>
61
+ </el-form>
62
+ </el-col>
50
63
  </el-row>
51
64
  <el-row>
52
65
  <div class="model-label">{{$t('openatccomponents.overview.mode')}}:</div>
@@ -78,6 +91,7 @@
78
91
  </el-row>
79
92
  <div class="footer">
80
93
  <el-button @click="handleClose()">{{$t('openatccomponents.button.Back')}}</el-button>
94
+ <el-button type="primary" plain @click="toAutoControl()" v-if="isHasPermission('configer:manual:renew')">{{$t('openatccomponents.overview.recovery')}}</el-button>
81
95
  <el-button type="primary" @click="handleLockPhase()">{{lockPhaseBtnName}}</el-button>
82
96
  </div>
83
97
  </div>
@@ -85,6 +99,8 @@
85
99
 
86
100
  <script>
87
101
  import RingDataModel from '../../../../utils/RingDataModel.js'
102
+ import { hasPermission } from '../../../../utils/auth'
103
+
88
104
  export default {
89
105
  name: 'LockPhaselControl',
90
106
  props: {
@@ -182,6 +198,13 @@ export default {
182
198
  this.closePhaseRings[i].phases = sortedlist
183
199
  }
184
200
  }
201
+ },
202
+ toAutoControl () {
203
+ this.$emit('toAutoControl')
204
+ },
205
+ isHasPermission (path) {
206
+ let res = hasPermission(path)
207
+ return res
185
208
  }
186
209
  }
187
210
  }
@@ -0,0 +1,128 @@
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="control-model-group">
14
+ <div :class="className" class="group-control">
15
+ <div class="control-model" v-for="(item, index) in controllist" :key="index">
16
+
17
+ <template v-if="othersControl && specialControl.indexOf(item.id) !== -1">
18
+ <div class="single-model-new"
19
+ :style="{'backgroundColor': item.bgcolor}"
20
+ @click="selectModel(item)"
21
+ v-if="isHasPermission(item.permission)">
22
+ <div class="closephase-icon">
23
+ <OthersIconSvg :type="item.type" />
24
+ </div>
25
+ <div class="single-model-name-theme">{{item.iconName}}</div>
26
+ </div>
27
+ </template>
28
+
29
+ <template v-else>
30
+ <div class="single-model-new"
31
+ :style="{'backgroundColor': item.bgcolor}"
32
+ @click="selectModel(item)"
33
+ :class="preselecttype == item.type? 'single-model-select' : ''"
34
+ v-if="isHasPermission(item.permission) && (funcSort === 'allFunc' || (funcSort === 'basicFunc'&& basicFuncControlId.indexOf(item.id) !== -1))">
35
+ <!-- <svg-icon :icon-class="item.iconClass" className="model-icon"></svg-icon> -->
36
+ <div class="model-icon">
37
+ <IconSvg :type="item.type" />
38
+ </div>
39
+ <div class="single-model-name-theme">{{item.iconName}}</div>
40
+ </div>
41
+ </template>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </template>
46
+
47
+ <script>
48
+ import { hasPermission, getTheme } from '../../../../utils/auth'
49
+
50
+ import IconSvg from './icon.vue'
51
+ import OthersIconSvg from './othersIcon.vue'
52
+
53
+ export default {
54
+ name: 'ControlModelGroup',
55
+ components: {
56
+ IconSvg,
57
+ OthersIconSvg
58
+ },
59
+ props: {
60
+ className: {
61
+ type: String
62
+ },
63
+ controlList: {
64
+ type: Array
65
+ },
66
+ funcSort: {
67
+ type: String,
68
+ default: 'allFunc'
69
+ },
70
+ othersControl: {
71
+ type: Boolean,
72
+ default: false
73
+ }
74
+ },
75
+ data () {
76
+ return {
77
+ preselecttype: '',
78
+ controllist: [],
79
+ specialControl: [23, 22, 100, 24, 25]
80
+ }
81
+ },
82
+ computed: {
83
+ },
84
+ watch: {
85
+ controlList: {
86
+ handler (newVal, oldVal) {
87
+ this.controllist = JSON.parse(JSON.stringify(newVal))
88
+ },
89
+ deep: true
90
+ }
91
+ },
92
+ methods: {
93
+ isHasPermission (path) {
94
+ let res = hasPermission(path)
95
+ return res
96
+ },
97
+ selectModel (item) {
98
+ this.preselecttype = item.type
99
+ this.clickType(item)
100
+ if (this.specialControl.indexOf(item.id) !== -1) {
101
+ this.$emit('selectSpecialModel')
102
+ }
103
+ this.$emit('selectModel', item)
104
+ },
105
+ init () {
106
+ this.selectModel(this.controllist[0])
107
+ },
108
+ clickType (item) {
109
+ this.curTypeItem = item
110
+ for (let i = 0; i < this.controllist.length; i++) {
111
+ if (this.controllist[i].clicked) {
112
+ delete this.controllist[i].clicked
113
+ this.controllist[i].bgcolor = getTheme() === 'light' ? '#edf6ff' : '#243d59'
114
+ }
115
+ }
116
+ for (let i = 0; i < this.controllist.length; i++) {
117
+ if (this.controllist[i].type === item.type) {
118
+ this.controllist[i].clicked = true
119
+ this.controllist[i].bgcolor = getTheme() === 'light' ? '#c1e0ff' : '#0082ac'
120
+ }
121
+ }
122
+ }
123
+ },
124
+ mounted () {
125
+ this.controllist = JSON.parse(JSON.stringify(this.controlList))
126
+ }
127
+ }
128
+ </script>