openatc-components 0.0.1 → 0.0.2

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 (154) hide show
  1. package/.babelrc +18 -18
  2. package/.editorconfig +9 -9
  3. package/.eslintignore +5 -5
  4. package/.eslintrc.js +29 -29
  5. package/.postcssrc.js +10 -10
  6. package/README.md +30 -30
  7. package/build/build.js +41 -41
  8. package/build/check-versions.js +54 -54
  9. package/build/package.config.js +58 -58
  10. package/build/package.dev.config.js +25 -25
  11. package/build/package.prod.config.js +60 -60
  12. package/build/utils.js +101 -101
  13. package/build/vue-loader.conf.js +22 -22
  14. package/build/webpack.base.conf.js +109 -109
  15. package/build/webpack.dev.conf.js +95 -95
  16. package/build/webpack.prod.conf.js +149 -149
  17. package/config/dev.env.js +7 -7
  18. package/config/index.js +76 -76
  19. package/config/prod.env.js +4 -4
  20. package/config/test.env.js +7 -7
  21. package/index.html +12 -12
  22. package/package/kisscomps/components/CircleMenu/KissCircleMenu.vue +398 -398
  23. package/package/kisscomps/components/CircleMenu/index.js +2 -2
  24. package/package/kisscomps/components/DashBoard/MakeGradientColor.js +84 -84
  25. package/package/kisscomps/components/DashBoard/dashboard.js +471 -471
  26. package/package/kisscomps/components/DashBoard/dashboard.vue +57 -57
  27. package/package/kisscomps/components/DashBoard/index.js +2 -2
  28. package/package/kisscomps/components/Horizontal/KissHorizontal.vue +146 -146
  29. package/package/kisscomps/components/Horizontal/index.js +2 -2
  30. package/package/kisscomps/components/HorizontalChildren/KissHorizontalChildren.vue +196 -196
  31. package/package/kisscomps/components/HorizontalChildren/index.js +2 -2
  32. package/package/kisscomps/components/KissCircleMenu/CircleMenu.vue +113 -113
  33. package/package/kisscomps/components/KissCircleMenu/index.js +2 -2
  34. package/package/kisscomps/components/KissCircleMenu/style/index.less +1 -1
  35. package/package/kisscomps/components/KissCircleMenu/style/main/core.less +161 -161
  36. package/package/kisscomps/components/KissCircleMenu/style/main/other.less +94 -94
  37. package/package/kisscomps/components/KissCircleMenu/style/mixin/mixin.less +36 -36
  38. package/package/kisscomps/components/KissCircleMenu/style/var/var.less +21 -21
  39. package/package/kisscomps/components/KissCircleMenu/utils/colorRE.js +5 -5
  40. package/package/kisscomps/components/KissMessageBox/KissMessageBox.vue +108 -108
  41. package/package/kisscomps/components/KissMessageBox/index.js +2 -2
  42. package/package/kisscomps/components/KissSearchInput/index.js +2 -2
  43. package/package/kisscomps/components/KissSearchInput/kisssearchinput.vue +77 -77
  44. package/package/kisscomps/components/KissSimulationProgress/KissSimulationProgress.vue +294 -294
  45. package/package/kisscomps/components/KissSimulationProgress/index.js +2 -2
  46. package/package/kisscomps/components/StatusBar/StatusBar.vue +222 -222
  47. package/package/kisscomps/components/StatusBar/index.js +2 -2
  48. package/package/kisscomps/components/TragResize/index.js +2 -2
  49. package/package/kisscomps/components/TragResize/kissdragresize.vue +536 -536
  50. package/package/kisscomps/components/TragResize/util/dom.js +23 -23
  51. package/package/kisscomps/components/TragResize/util/fns.js +3 -3
  52. package/package/kisscomps/components/XRDDirSelector/XRDDirSelector.1.vue +320 -320
  53. package/package/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +345 -345
  54. package/package/kisscomps/components/XRDDirSelector/index.js +2 -2
  55. package/package/kisscomps/components/button/index.js +2 -2
  56. package/package/kisscomps/components/button/kissbutton.vue +168 -168
  57. package/package/kisscomps/components/compass3D/compass.vue +180 -180
  58. package/package/kisscomps/components/compass3D/index.js +2 -2
  59. package/package/kisscomps/components/header/index.js +2 -2
  60. package/package/kisscomps/components/header/kissHead.vue +83 -83
  61. package/package/kisscomps/components/horizontalMenu/index.js +2 -2
  62. package/package/kisscomps/components/horizontalMenu/kissHorizontalMenu.vue +254 -254
  63. package/package/kisscomps/components/input/index.js +2 -2
  64. package/package/kisscomps/components/input/kissinput.vue +57 -57
  65. package/package/kisscomps/components/menu/index.js +2 -2
  66. package/package/kisscomps/components/menu/kissmenu.vue +324 -324
  67. package/package/kisscomps/components/mutipletips/Tdrag.js +585 -585
  68. package/package/kisscomps/components/mutipletips/index.js +2 -2
  69. package/package/kisscomps/components/mutipletips/kissmutipletips.vue +192 -192
  70. package/package/kisscomps/components/panel/index.js +2 -2
  71. package/package/kisscomps/components/panel/kissPanel.vue +151 -151
  72. package/package/kisscomps/components/select/chosen.jquery.min.js +3 -3
  73. package/package/kisscomps/components/select/index.js +2 -2
  74. package/package/kisscomps/components/select/kissselect.vue +527 -527
  75. package/package/kisscomps/components/tablebutton/index.js +2 -2
  76. package/package/kisscomps/components/tablebutton/tablebutton.vue +97 -97
  77. package/package/kisscomps/components/timectrl/KissTimeCtrl.vue +67 -67
  78. package/package/kisscomps/components/timectrl/index.js +2 -2
  79. package/package/kisscomps/components/timectrl/timectrl.css +851 -851
  80. package/package/kisscomps/components/tip/Tdrag.js +585 -585
  81. package/package/kisscomps/components/tip/index.js +2 -2
  82. package/package/kisscomps/components/tip/kisstips.1.vue +154 -154
  83. package/package/kisscomps/components/tip/kisstips.vue +154 -154
  84. package/package/kisscomps/components/tip/kisstips.vue.bak +211 -211
  85. package/package/kisscomps/index.js +71 -71
  86. package/package/kissui.js +203 -203
  87. package/package/kissui.min.js +203 -203
  88. package/package.json +1 -1
  89. package/src/App.vue +25 -25
  90. package/src/kisscomps/components/CircleMenu/KissCircleMenu.vue +398 -398
  91. package/src/kisscomps/components/CircleMenu/index.js +2 -2
  92. package/src/kisscomps/components/DashBoard/MakeGradientColor.js +84 -84
  93. package/src/kisscomps/components/DashBoard/dashboard.js +471 -471
  94. package/src/kisscomps/components/DashBoard/dashboard.vue +57 -57
  95. package/src/kisscomps/components/DashBoard/index.js +2 -2
  96. package/src/kisscomps/components/KissCircleMenu/CircleMenu.vue +113 -113
  97. package/src/kisscomps/components/KissCircleMenu/index.js +2 -2
  98. package/src/kisscomps/components/KissCircleMenu/style/index.less +1 -1
  99. package/src/kisscomps/components/KissCircleMenu/style/main/core.less +161 -161
  100. package/src/kisscomps/components/KissCircleMenu/style/main/other.less +94 -94
  101. package/src/kisscomps/components/KissCircleMenu/style/mixin/mixin.less +36 -36
  102. package/src/kisscomps/components/KissCircleMenu/style/var/var.less +21 -21
  103. package/src/kisscomps/components/KissCircleMenu/utils/colorRE.js +5 -5
  104. package/src/kisscomps/components/KissSearchInput/index.js +2 -2
  105. package/src/kisscomps/components/KissSearchInput/kisssearchinput.vue +77 -77
  106. package/src/kisscomps/components/SchemeConfig/closePhaselControlModal/index.vue +193 -0
  107. package/src/kisscomps/components/SchemeConfig/index.js +2 -0
  108. package/src/kisscomps/components/SchemeConfig/lockingPhaselControlModal/index.vue +214 -0
  109. package/src/kisscomps/components/SchemeConfig/manualControlModal/index.vue +176 -0
  110. package/src/kisscomps/components/SchemeConfig/realtimeStatusModal/index.vue +294 -0
  111. package/src/kisscomps/components/SchemeConfig/schemeconfig.vue +711 -0
  112. package/src/kisscomps/components/StatusBar/StatusBar.vue +222 -222
  113. package/src/kisscomps/components/StatusBar/index.js +2 -2
  114. package/src/kisscomps/components/TragResize/index.js +2 -2
  115. package/src/kisscomps/components/TragResize/kissdragresize.vue +536 -536
  116. package/src/kisscomps/components/XRDDirSelector/XRDDirSelector.1.vue +320 -320
  117. package/src/kisscomps/components/XRDDirSelector/XRDDirSelector.vue +345 -345
  118. package/src/kisscomps/components/XRDDirSelector/index.js +2 -2
  119. package/src/kisscomps/components/button/index.js +2 -2
  120. package/src/kisscomps/components/button/kissbutton.vue +168 -168
  121. package/src/kisscomps/components/compass3D/compass.vue +180 -180
  122. package/src/kisscomps/components/compass3D/index.js +2 -2
  123. package/src/kisscomps/components/horizontalMenu/index.js +2 -2
  124. package/src/kisscomps/components/horizontalMenu/kissHorizontalMenu.vue +254 -254
  125. package/src/kisscomps/components/input/index.js +2 -2
  126. package/src/kisscomps/components/input/kissinput.vue +57 -57
  127. package/src/kisscomps/components/menu/index.js +2 -2
  128. package/src/kisscomps/components/menu/kissmenu.vue +324 -324
  129. package/src/kisscomps/components/mutipletips/Tdrag.js +585 -585
  130. package/src/kisscomps/components/mutipletips/index.js +2 -2
  131. package/src/kisscomps/components/mutipletips/kissmutipletips.vue +192 -192
  132. package/src/kisscomps/components/select/chosen.jquery.min.js +3 -3
  133. package/src/kisscomps/components/select/index.js +2 -2
  134. package/src/kisscomps/components/select/kissselect.vue +527 -527
  135. package/src/kisscomps/components/timectrl/KissTimeCtrl.vue +67 -67
  136. package/src/kisscomps/components/timectrl/index.js +2 -2
  137. package/src/kisscomps/components/tip/Tdrag.js +585 -585
  138. package/src/kisscomps/components/tip/index.js +2 -2
  139. package/src/kisscomps/components/tip/kisstips.1.vue +154 -154
  140. package/src/kisscomps/components/tip/kisstips.vue +154 -154
  141. package/src/kisscomps/components/tip/kisstips.vue.bak +211 -211
  142. package/src/kisscomps/index.js +73 -71
  143. package/src/main.js +23 -23
  144. package/src/router/index.js +15 -15
  145. package/src/views/home.1.vue +479 -479
  146. package/src/views/home.vue +196 -196
  147. package/test/e2e/custom-assertions/elementCount.js +27 -27
  148. package/test/e2e/nightwatch.conf.js +46 -46
  149. package/test/e2e/runner.js +48 -48
  150. package/test/e2e/specs/test.js +19 -19
  151. package/test/unit/.eslintrc +7 -7
  152. package/test/unit/jest.conf.js +30 -30
  153. package/test/unit/setup.js +3 -3
  154. package/test/unit/specs/HelloWorld.spec.js +11 -11
@@ -1,294 +1,294 @@
1
- <template>
2
- <div id="progressBar">
3
- <!-- 进度条 -->
4
- <div class="bar">
5
- <span class="curProcess" :style="{width:percentage+'%'}"></span>
6
- </div>
7
- <!-- 圆 -->
8
- <span v-for="(item, index) in circleNomal" class="circle" :key="`circleNomal-${index}`" :class="item.className" :style="{left:item.left}"></span>
9
- <!-- 菱形 -->
10
- <span v-for="(item, index) in timeLine" class="diamond" :key="`timeLine-${index}`" :class="item.className" :style="{left:item.left}"></span>
11
- <!-- 当前时间标记 -->
12
- <div id="curTime" :style="{left:percentage+'%'}">
13
- <div>{{curTime}}</div>
14
- <span class="curTimeIcon"></span>
15
- </div>
16
- <!-- 时间节点 -->
17
- <div style="width: 100%; position: relative;">
18
- <span v-for="(item, index) in timeLine" :key="index" class="time" :style="{left:item.left}">
19
- {{item.time}}
20
- </span>
21
- </div>
22
- <div class="curText">已完成:{{percentage}}%</div>
23
- </div>
24
- </template>
25
- <script>
26
- import moment from 'moment'
27
- export default {
28
- name: 'kiss-simulation-progress',
29
- data () {
30
- return {
31
- timeLine: [{ // 目前时间写死为一天五等分
32
- left: '0%',
33
- className: 'normalDiamond'
34
- }, {
35
- left: '25%',
36
- className: 'normalDiamond'
37
- }, {
38
- left: '50%',
39
- className: 'normalDiamond'
40
- }, {
41
- left: '75%',
42
- className: 'normalDiamond'
43
- }, {
44
- left: '100%',
45
- className: 'normalDiamond'
46
- }],
47
- circleNomal: [],
48
- percentage: 0,
49
- curTime: 0
50
- }
51
- },
52
- props: {
53
- totalseconds: {
54
- type: Number,
55
- default: 0
56
- },
57
- curseconds: {
58
- type: Number,
59
- default: 0
60
- },
61
- starttime: {
62
- type: String,
63
- default: '2019-01-01 00:00:00'
64
- },
65
- endtime: {
66
- type: String,
67
- default: '2019-01-01 00:00:00'
68
- }
69
- },
70
- watch: {
71
- curseconds: function (val) {
72
- let mseconds = val + '000'
73
- this.curstamp = Number(this.startstamp) + Number(mseconds)
74
- this.curTime = this.stampToTime(this.curstamp)
75
- this.percentage = (this.curseconds / this.totalseconds * 100).toFixed(0)
76
- // this.createCircle()
77
- this.changeProgressStyle()
78
- }
79
- },
80
- directives: {
81
- drag: function (el) {
82
- let dragBox = el
83
- dragBox.onmousedown = e => {
84
- // 算出鼠标相对元素的位置
85
- let disX = e.clientX - dragBox.offsetLeft
86
- document.onmousemove = e => {
87
- // 用鼠标的位置减去鼠标相对元素的位置,得到元素的位置
88
- let left = e.clientX - disX
89
- // 移动当前元素
90
- dragBox.style.left = left + 'px'
91
- }
92
- document.onmouseup = e => {
93
- // 鼠标弹起来的时候不再移动
94
- document.onmousemove = null
95
- // 预防鼠标弹起来后还会循环(即预防鼠标放上去的时候还会移动)
96
- document.onmouseup = null
97
- }
98
- }
99
- }
100
- },
101
- methods: {
102
- createCircle () {
103
- this.circleNomal = []
104
- let curCircleLeft = 0
105
- while (curCircleLeft < 100) {
106
- if (curCircleLeft % 25 !== 0) {
107
- this.circleNomal.push({
108
- left: `${curCircleLeft}%`,
109
- className: 'normalCircle'
110
- })
111
- }
112
- curCircleLeft = curCircleLeft + 6.25
113
- }
114
- },
115
- changeProgressStyle () {
116
- this.circleNomal.forEach(ele => {
117
- if (Number(ele.left.split('%')[0]) > this.percentage) {
118
- ele.className = 'abnormalCircle'
119
- } else {
120
- ele.className = 'normalCircle'
121
- }
122
- })
123
- this.timeLine.forEach(ele => {
124
- if (Number(ele.left.split('%')[0]) >= this.percentage) {
125
- ele.className = 'abnormalDiamond'
126
- } else {
127
- ele.className = 'normalDiamond'
128
- }
129
- })
130
- },
131
- createTimeLine () {
132
- // 根据起始时间,计算时间线(默认5个时间节点)
133
- this.startstamp = this.timeToStamp(this.starttime)
134
- this.endstamp = this.timeToStamp(this.endtime)
135
- const step = (this.endstamp - this.startstamp) / 4
136
- for (let i = 0; i < 5; i++) {
137
- this.timeLine[i].time = this.computedDateTime(this.startstamp, step * i)
138
- }
139
- },
140
- computedDateTime (startstamp, step) {
141
- // 根据开始时间戳和可变步长,计算当前时间
142
- const nowstamp = Number(startstamp) + Number(step)
143
- const nowTime = this.stampToTime(nowstamp)
144
- return nowTime
145
- },
146
- timeToStamp (timeString) {
147
- // 将日期格式字符串转换为时间戳
148
- const time = new Date(timeString)
149
- return moment(time).valueOf()
150
- },
151
- stampToTime (stamp) {
152
- // 将时间戳转为日期格式字符串
153
- return moment(stamp).format('MM-DD HH:mm:ss')
154
- // return moment(stamp).format('HH:mm:ss')
155
- }
156
- },
157
- mounted () {
158
- this.createTimeLine()
159
- this.createCircle()
160
- }
161
- }
162
- </script>
163
- <style scoped>
164
- #progressBar{
165
- width: 80%;
166
- height: 50px;
167
- position: relative;
168
- margin: 20px 0 0 30px;
169
- }
170
- #progressBar .bar{
171
- width: 100%;
172
- height: 3px;
173
- position: absolute;
174
- top:50%;
175
- left: 0;
176
- margin-top:-30px;
177
- background: #0096ba;
178
- z-index: 1;
179
- }
180
- #progressBar .bar .curProcess{
181
- position: absolute;
182
- display: inline-block;
183
- background: #42daff;
184
- height: 3px;
185
- z-index: 1;
186
- transition: width 700ms linear;
187
- -moz-transition: width 700ms linear; /* Firefox 4 */
188
- -webkit-transition: width 700ms linear; /* Safari 和 Chrome */
189
- -o-transition: width 700ms linear; /* Opera */
190
- }
191
-
192
- /* 圆 */
193
- .circle {
194
- position: absolute;
195
- top:0;
196
- margin-top: -9px;
197
- width: 11px;
198
- height: 11px;
199
- border-radius: 50%;
200
- margin-left: -5px;
201
- color:#fff;
202
- z-index: 9;
203
- box-sizing: border-box;
204
- transition: background 600ms;
205
- -moz-transition: background 600ms; /* Firefox 4 */
206
- -webkit-transition: background 600ms; /* Safari 和 Chrome */
207
- -o-transition: background 600ms; /* Opera */
208
- }
209
- .normalCircle{
210
- border:2px solid #42daff;
211
- background: #42daff;
212
- }
213
- .abnormalCircle {
214
- border: 2px solid #0096ba;
215
- background:#181818;
216
- }
217
- /* 菱形 */
218
- #progressBar>.diamond {
219
- position: absolute;
220
- top:0;
221
- z-index: 10;
222
- width: 10px;
223
- height: 10px;
224
- /* Rotate */
225
- -webkit-transform: rotate(-45deg);
226
- transform: rotate(-45deg);
227
- -webkit-transform-origin: 0 100%;
228
- transform-origin: 0 100%;
229
- border-radius: 0;
230
- border: none;
231
- margin-top: -7px;
232
- margin-left: 0px;
233
- transition: background 700ms linear;
234
- -moz-transition: background 700ms linear; /* Firefox 4 */
235
- -webkit-transition: background 700ms linear; /* Safari 和 Chrome */
236
- -o-transition: background 700ms linear; /* Opera */
237
- }
238
- #progressBar>.normalDiamond {
239
- background: #42daff;
240
- }
241
- #progressBar>.abnormalDiamond {
242
- background: #0096ba;
243
- }
244
- /* 时间节点 */
245
- #progressBar .time {
246
- position: absolute;
247
- top: 0;
248
- width: 48px;
249
- height: 11px;
250
- font-size: 12px;
251
- font-family: 'MicrosoftYaHei';
252
- line-height: 35px;
253
- color: #999;
254
- width: 100px;
255
- white-space: nowrap;
256
- height: 40px;
257
- transform: translateX(-50%);
258
- }
259
- /* 当前时间 */
260
- #progressBar #curTime {
261
- position: absolute;
262
- top: -52px;
263
- z-index: 20;
264
- line-height: 35px;
265
- color: #fff;
266
- font-size: 14px;
267
- transition: left 700ms linear;
268
- -moz-transition: left 700ms linear; /* Firefox 4 */
269
- -webkit-transition: left 700ms linear; /* Safari 和 Chrome */
270
- -o-transition: left 700ms linear; /* Opera */
271
- }
272
- #progressBar #curTime>div {
273
- /* min-width: 100px; */
274
- transform: translateX(-50%);
275
- white-space: nowrap;
276
- }
277
- #progressBar .curTimeIcon {
278
- display: inline-block;
279
- width: 22px;
280
- height: 22px;
281
- border-radius: 50%;
282
- background: #42daff;
283
- border: 2px solid #0096ba;
284
- transform: translateX(-50%);
285
- }
286
- #progressBar .curText {
287
- position: absolute;
288
- top: -16px;
289
- right: -100px;
290
- font-size: 14px;
291
- color: #fff;
292
- font-family: 'MicrosoftYaHei';
293
- }
294
- </style>
1
+ <template>
2
+ <div id="progressBar">
3
+ <!-- 进度条 -->
4
+ <div class="bar">
5
+ <span class="curProcess" :style="{width:percentage+'%'}"></span>
6
+ </div>
7
+ <!-- 圆 -->
8
+ <span v-for="(item, index) in circleNomal" class="circle" :key="`circleNomal-${index}`" :class="item.className" :style="{left:item.left}"></span>
9
+ <!-- 菱形 -->
10
+ <span v-for="(item, index) in timeLine" class="diamond" :key="`timeLine-${index}`" :class="item.className" :style="{left:item.left}"></span>
11
+ <!-- 当前时间标记 -->
12
+ <div id="curTime" :style="{left:percentage+'%'}">
13
+ <div>{{curTime}}</div>
14
+ <span class="curTimeIcon"></span>
15
+ </div>
16
+ <!-- 时间节点 -->
17
+ <div style="width: 100%; position: relative;">
18
+ <span v-for="(item, index) in timeLine" :key="index" class="time" :style="{left:item.left}">
19
+ {{item.time}}
20
+ </span>
21
+ </div>
22
+ <div class="curText">已完成:{{percentage}}%</div>
23
+ </div>
24
+ </template>
25
+ <script>
26
+ import moment from 'moment'
27
+ export default {
28
+ name: 'kiss-simulation-progress',
29
+ data () {
30
+ return {
31
+ timeLine: [{ // 目前时间写死为一天五等分
32
+ left: '0%',
33
+ className: 'normalDiamond'
34
+ }, {
35
+ left: '25%',
36
+ className: 'normalDiamond'
37
+ }, {
38
+ left: '50%',
39
+ className: 'normalDiamond'
40
+ }, {
41
+ left: '75%',
42
+ className: 'normalDiamond'
43
+ }, {
44
+ left: '100%',
45
+ className: 'normalDiamond'
46
+ }],
47
+ circleNomal: [],
48
+ percentage: 0,
49
+ curTime: 0
50
+ }
51
+ },
52
+ props: {
53
+ totalseconds: {
54
+ type: Number,
55
+ default: 0
56
+ },
57
+ curseconds: {
58
+ type: Number,
59
+ default: 0
60
+ },
61
+ starttime: {
62
+ type: String,
63
+ default: '2019-01-01 00:00:00'
64
+ },
65
+ endtime: {
66
+ type: String,
67
+ default: '2019-01-01 00:00:00'
68
+ }
69
+ },
70
+ watch: {
71
+ curseconds: function (val) {
72
+ let mseconds = val + '000'
73
+ this.curstamp = Number(this.startstamp) + Number(mseconds)
74
+ this.curTime = this.stampToTime(this.curstamp)
75
+ this.percentage = (this.curseconds / this.totalseconds * 100).toFixed(0)
76
+ // this.createCircle()
77
+ this.changeProgressStyle()
78
+ }
79
+ },
80
+ directives: {
81
+ drag: function (el) {
82
+ let dragBox = el
83
+ dragBox.onmousedown = e => {
84
+ // 算出鼠标相对元素的位置
85
+ let disX = e.clientX - dragBox.offsetLeft
86
+ document.onmousemove = e => {
87
+ // 用鼠标的位置减去鼠标相对元素的位置,得到元素的位置
88
+ let left = e.clientX - disX
89
+ // 移动当前元素
90
+ dragBox.style.left = left + 'px'
91
+ }
92
+ document.onmouseup = e => {
93
+ // 鼠标弹起来的时候不再移动
94
+ document.onmousemove = null
95
+ // 预防鼠标弹起来后还会循环(即预防鼠标放上去的时候还会移动)
96
+ document.onmouseup = null
97
+ }
98
+ }
99
+ }
100
+ },
101
+ methods: {
102
+ createCircle () {
103
+ this.circleNomal = []
104
+ let curCircleLeft = 0
105
+ while (curCircleLeft < 100) {
106
+ if (curCircleLeft % 25 !== 0) {
107
+ this.circleNomal.push({
108
+ left: `${curCircleLeft}%`,
109
+ className: 'normalCircle'
110
+ })
111
+ }
112
+ curCircleLeft = curCircleLeft + 6.25
113
+ }
114
+ },
115
+ changeProgressStyle () {
116
+ this.circleNomal.forEach(ele => {
117
+ if (Number(ele.left.split('%')[0]) > this.percentage) {
118
+ ele.className = 'abnormalCircle'
119
+ } else {
120
+ ele.className = 'normalCircle'
121
+ }
122
+ })
123
+ this.timeLine.forEach(ele => {
124
+ if (Number(ele.left.split('%')[0]) >= this.percentage) {
125
+ ele.className = 'abnormalDiamond'
126
+ } else {
127
+ ele.className = 'normalDiamond'
128
+ }
129
+ })
130
+ },
131
+ createTimeLine () {
132
+ // 根据起始时间,计算时间线(默认5个时间节点)
133
+ this.startstamp = this.timeToStamp(this.starttime)
134
+ this.endstamp = this.timeToStamp(this.endtime)
135
+ const step = (this.endstamp - this.startstamp) / 4
136
+ for (let i = 0; i < 5; i++) {
137
+ this.timeLine[i].time = this.computedDateTime(this.startstamp, step * i)
138
+ }
139
+ },
140
+ computedDateTime (startstamp, step) {
141
+ // 根据开始时间戳和可变步长,计算当前时间
142
+ const nowstamp = Number(startstamp) + Number(step)
143
+ const nowTime = this.stampToTime(nowstamp)
144
+ return nowTime
145
+ },
146
+ timeToStamp (timeString) {
147
+ // 将日期格式字符串转换为时间戳
148
+ const time = new Date(timeString)
149
+ return moment(time).valueOf()
150
+ },
151
+ stampToTime (stamp) {
152
+ // 将时间戳转为日期格式字符串
153
+ return moment(stamp).format('MM-DD HH:mm:ss')
154
+ // return moment(stamp).format('HH:mm:ss')
155
+ }
156
+ },
157
+ mounted () {
158
+ this.createTimeLine()
159
+ this.createCircle()
160
+ }
161
+ }
162
+ </script>
163
+ <style scoped>
164
+ #progressBar{
165
+ width: 80%;
166
+ height: 50px;
167
+ position: relative;
168
+ margin: 20px 0 0 30px;
169
+ }
170
+ #progressBar .bar{
171
+ width: 100%;
172
+ height: 3px;
173
+ position: absolute;
174
+ top:50%;
175
+ left: 0;
176
+ margin-top:-30px;
177
+ background: #0096ba;
178
+ z-index: 1;
179
+ }
180
+ #progressBar .bar .curProcess{
181
+ position: absolute;
182
+ display: inline-block;
183
+ background: #42daff;
184
+ height: 3px;
185
+ z-index: 1;
186
+ transition: width 700ms linear;
187
+ -moz-transition: width 700ms linear; /* Firefox 4 */
188
+ -webkit-transition: width 700ms linear; /* Safari 和 Chrome */
189
+ -o-transition: width 700ms linear; /* Opera */
190
+ }
191
+
192
+ /* 圆 */
193
+ .circle {
194
+ position: absolute;
195
+ top:0;
196
+ margin-top: -9px;
197
+ width: 11px;
198
+ height: 11px;
199
+ border-radius: 50%;
200
+ margin-left: -5px;
201
+ color:#fff;
202
+ z-index: 9;
203
+ box-sizing: border-box;
204
+ transition: background 600ms;
205
+ -moz-transition: background 600ms; /* Firefox 4 */
206
+ -webkit-transition: background 600ms; /* Safari 和 Chrome */
207
+ -o-transition: background 600ms; /* Opera */
208
+ }
209
+ .normalCircle{
210
+ border:2px solid #42daff;
211
+ background: #42daff;
212
+ }
213
+ .abnormalCircle {
214
+ border: 2px solid #0096ba;
215
+ background:#181818;
216
+ }
217
+ /* 菱形 */
218
+ #progressBar>.diamond {
219
+ position: absolute;
220
+ top:0;
221
+ z-index: 10;
222
+ width: 10px;
223
+ height: 10px;
224
+ /* Rotate */
225
+ -webkit-transform: rotate(-45deg);
226
+ transform: rotate(-45deg);
227
+ -webkit-transform-origin: 0 100%;
228
+ transform-origin: 0 100%;
229
+ border-radius: 0;
230
+ border: none;
231
+ margin-top: -7px;
232
+ margin-left: 0px;
233
+ transition: background 700ms linear;
234
+ -moz-transition: background 700ms linear; /* Firefox 4 */
235
+ -webkit-transition: background 700ms linear; /* Safari 和 Chrome */
236
+ -o-transition: background 700ms linear; /* Opera */
237
+ }
238
+ #progressBar>.normalDiamond {
239
+ background: #42daff;
240
+ }
241
+ #progressBar>.abnormalDiamond {
242
+ background: #0096ba;
243
+ }
244
+ /* 时间节点 */
245
+ #progressBar .time {
246
+ position: absolute;
247
+ top: 0;
248
+ width: 48px;
249
+ height: 11px;
250
+ font-size: 12px;
251
+ font-family: 'MicrosoftYaHei';
252
+ line-height: 35px;
253
+ color: #999;
254
+ width: 100px;
255
+ white-space: nowrap;
256
+ height: 40px;
257
+ transform: translateX(-50%);
258
+ }
259
+ /* 当前时间 */
260
+ #progressBar #curTime {
261
+ position: absolute;
262
+ top: -52px;
263
+ z-index: 20;
264
+ line-height: 35px;
265
+ color: #fff;
266
+ font-size: 14px;
267
+ transition: left 700ms linear;
268
+ -moz-transition: left 700ms linear; /* Firefox 4 */
269
+ -webkit-transition: left 700ms linear; /* Safari 和 Chrome */
270
+ -o-transition: left 700ms linear; /* Opera */
271
+ }
272
+ #progressBar #curTime>div {
273
+ /* min-width: 100px; */
274
+ transform: translateX(-50%);
275
+ white-space: nowrap;
276
+ }
277
+ #progressBar .curTimeIcon {
278
+ display: inline-block;
279
+ width: 22px;
280
+ height: 22px;
281
+ border-radius: 50%;
282
+ background: #42daff;
283
+ border: 2px solid #0096ba;
284
+ transform: translateX(-50%);
285
+ }
286
+ #progressBar .curText {
287
+ position: absolute;
288
+ top: -16px;
289
+ right: -100px;
290
+ font-size: 14px;
291
+ color: #fff;
292
+ font-family: 'MicrosoftYaHei';
293
+ }
294
+ </style>
@@ -1,2 +1,2 @@
1
- import KissSimulationProgress from './KissSimulationProgress.vue'
2
- export default KissSimulationProgress
1
+ import KissSimulationProgress from './KissSimulationProgress.vue'
2
+ export default KissSimulationProgress