openatc-components 0.0.29 → 0.0.32

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.
@@ -72,7 +72,7 @@
72
72
  :key="n" class="closephasekanban"
73
73
  :index="n"
74
74
  :options="patternOne.length===0?allPatternList[0].options:patternOne[0].options"
75
- :list="patternOne.length===0?allPatternList[0].rings[n-1]:patternOne[0].rings[n-1]"
75
+ :list="patternOne.length===0?planPattern[n-1]:patternOne[0].rings[n-1]"
76
76
  :phaseList="phaseList"
77
77
  :header-text="$t('openatccomponents.pattern.ring')+n"
78
78
  @handleSplit="handleSplit">
@@ -115,20 +115,20 @@
115
115
  </expend-config>
116
116
  <!-- </el-col> -->
117
117
  <!-- <el-col :span="12"> -->
118
- <el-row style="width: 60%;margin: 10px auto;">
118
+ <div style="width: 60%;margin: 10px auto;color:#ffffff">
119
119
  {{$t('openatccomponents.pattern.forbiddenstage')}}
120
120
  <el-input class="stage-value" size="small" v-model="forbiddenstage"></el-input>
121
- </el-row>
122
- <el-row style="width: 60%;margin: 10px auto;">
121
+ </div>
122
+ <div style="width: 60%;margin: 10px auto;color:#ffffff">
123
123
  {{$t('openatccomponents.pattern.screenstage')}}
124
124
  <el-input class="stage-value" size="small" v-model="screenstage"></el-input>
125
- </el-row>
126
- <el-row style="width: 60%;margin: 10px auto;">
125
+ </div>
126
+ <div style="width: 60%;margin: 10px auto;color:#ffffff">
127
127
  <!-- <el-col :span="8"> -->
128
128
  {{$t('openatccomponents.pattern.coordinatestage')}}
129
129
  <el-input class="stage-value" size="small" v-model="coordinatestage"></el-input>
130
130
  <!-- </el-col> -->
131
- </el-row>
131
+ </div>
132
132
  <!-- </el-col> -->
133
133
  </el-row>
134
134
  </el-tab-pane>
@@ -136,7 +136,7 @@
136
136
  <el-row :gutter="20">
137
137
  <el-col :span="24" >
138
138
  <over-lap
139
- :stageList="patternOne.length===0?allPatternList[0].stagesList:patternOne[0].stagesList"
139
+ :stageList="stagesList"
140
140
  :overlap="overlap"
141
141
  :checked="true"
142
142
  :tentative="true"
@@ -164,19 +164,22 @@ export default {
164
164
  },
165
165
  phaseList: {
166
166
  type: Array
167
- },
168
- overlap: {
169
- type: Array
170
- },
171
- allPatternList: {
172
- type: Array
173
- },
167
+ }
168
+ // overlap: {
169
+ // type: Array
170
+ // },
171
+ // allPatternList: {
172
+ // type: Array
173
+ // },
174
174
  // phaseRings: {
175
175
  // type: Array
176
176
  // }
177
- patternSelect: {
178
- type: Array
179
- }
177
+ // planPattern: {
178
+ // type: Array
179
+ // },
180
+ // patternSelect: {
181
+ // type: Array
182
+ // }
180
183
  },
181
184
  computed: {
182
185
  offset () {
@@ -194,14 +197,972 @@ export default {
194
197
  },
195
198
  data () {
196
199
  return {
200
+ stagesList: [],
201
+ patternSelect: [{
202
+ value: 1
203
+ }, {
204
+ value: 2
205
+ }, {
206
+ value: 3
207
+ }],
197
208
  options: {
198
209
  group: 'pattern'
199
210
  },
211
+ overlap: [
212
+ {
213
+ 'id': 1,
214
+ 'desc': '东方向南半测行人相位',
215
+ 'includedphases': [
216
+ 1,
217
+ 8
218
+ ],
219
+ 'peddirection': [
220
+ 6
221
+ ]
222
+ },
223
+ {
224
+ 'id': 2,
225
+ 'desc': '东方向北半测行人相位',
226
+ 'includedphases': [
227
+ 1,
228
+ 2
229
+ ],
230
+ 'peddirection': [
231
+ 5
232
+ ]
233
+ },
234
+ {
235
+ 'id': 3,
236
+ 'desc': '西方向南半测行人相位',
237
+ 'includedphases': [
238
+ 5,
239
+ 6
240
+ ],
241
+ 'peddirection': [
242
+ 8
243
+ ]
244
+ },
245
+ {
246
+ 'id': 4,
247
+ 'desc': '西方向北半测行人相位',
248
+ 'includedphases': [
249
+ 4,
250
+ 5
251
+ ],
252
+ 'peddirection': [
253
+ 7
254
+ ]
255
+ },
256
+ {
257
+ 'id': 5,
258
+ 'desc': '南方向东半测行人相位',
259
+ 'includedphases': [
260
+ 7,
261
+ 8
262
+ ],
263
+ 'peddirection': [
264
+ 10
265
+ ]
266
+ },
267
+ {
268
+ 'id': 6,
269
+ 'desc': '南方向西半测行人相位',
270
+ 'includedphases': [
271
+ 6,
272
+ 7
273
+ ],
274
+ 'peddirection': [
275
+ 9
276
+ ]
277
+ },
278
+ {
279
+ 'id': 7,
280
+ 'desc': '北方向东半测行人相位',
281
+ 'includedphases': [
282
+ 2,
283
+ 3
284
+ ],
285
+ 'peddirection': [
286
+ 12
287
+ ]
288
+ },
289
+ {
290
+ 'id': 8,
291
+ 'desc': '北方向西半测行人相位',
292
+ 'includedphases': [
293
+ 3,
294
+ 4
295
+ ],
296
+ 'peddirection': [
297
+ 11
298
+ ]
299
+ }
300
+ ],
200
301
  activeList: 'ring',
201
302
  ringCount: 1,
202
303
  ringCounts: 1,
203
304
  coordphaseOption: [],
204
305
  patternOne: [],
306
+ planPattern: [
307
+ [
308
+ {
309
+ 'name': 'Phase 1',
310
+ 'desc': [
311
+ {
312
+ 'id': 13,
313
+ 'color': '#454545'
314
+ }
315
+ ],
316
+ 'id': 1,
317
+ 'value': 30,
318
+ 'mode': 2,
319
+ 'options': [],
320
+ 'delaystart': 0,
321
+ 'advanceend': 0
322
+ },
323
+ {
324
+ 'name': 'Phase 2',
325
+ 'desc': [
326
+ {
327
+ 'id': 3,
328
+ 'color': '#454545'
329
+ },
330
+ {
331
+ 'id': 12,
332
+ 'color': '#454545'
333
+ }
334
+ ],
335
+ 'id': 2,
336
+ 'value': 30,
337
+ 'mode': 2,
338
+ 'options': [],
339
+ 'delaystart': 0,
340
+ 'advanceend': 0
341
+ },
342
+ {
343
+ 'name': 'Phase 3',
344
+ 'desc': [
345
+ {
346
+ 'id': 1,
347
+ 'color': '#454545'
348
+ }
349
+ ],
350
+ 'id': 3,
351
+ 'value': 30,
352
+ 'mode': 2,
353
+ 'options': [],
354
+ 'delaystart': 0,
355
+ 'advanceend': 0
356
+ },
357
+ {
358
+ 'name': 'Phase 4',
359
+ 'desc': [
360
+ {
361
+ 'id': 6,
362
+ 'color': '#454545'
363
+ },
364
+ {
365
+ 'id': 8,
366
+ 'color': '#454545'
367
+ }
368
+ ],
369
+ 'id': 4,
370
+ 'value': 30,
371
+ 'mode': 2,
372
+ 'options': [],
373
+ 'delaystart': 0,
374
+ 'advanceend': 0
375
+ }
376
+ ],
377
+ [
378
+ {
379
+ 'name': 'Phase 5',
380
+ 'desc': [
381
+ {
382
+ 'id': 9,
383
+ 'color': '#454545'
384
+ }
385
+ ],
386
+ 'id': 5,
387
+ 'value': 30,
388
+ 'mode': 2,
389
+ 'options': [],
390
+ 'delaystart': 0,
391
+ 'advanceend': 0
392
+ },
393
+ {
394
+ 'name': 'Phase 6',
395
+ 'desc': [
396
+ {
397
+ 'id': 14,
398
+ 'color': '#454545'
399
+ },
400
+ {
401
+ 'id': 16,
402
+ 'color': '#454545'
403
+ }
404
+ ],
405
+ 'id': 6,
406
+ 'value': 30,
407
+ 'mode': 2,
408
+ 'options': [],
409
+ 'delaystart': 0,
410
+ 'advanceend': 0
411
+ },
412
+ {
413
+ 'name': 'Phase 7',
414
+ 'desc': [],
415
+ 'id': 7,
416
+ 'value': 30,
417
+ 'mode': 2,
418
+ 'options': [],
419
+ 'delaystart': 0,
420
+ 'advanceend': 0
421
+ },
422
+ {
423
+ 'name': 'Phase 8',
424
+ 'desc': [
425
+ {
426
+ 'id': 2,
427
+ 'color': '#454545'
428
+ },
429
+ {
430
+ 'id': 4,
431
+ 'color': '#454545'
432
+ }
433
+ ],
434
+ 'id': 8,
435
+ 'value': 30,
436
+ 'mode': 2,
437
+ 'options': [],
438
+ 'delaystart': 0,
439
+ 'advanceend': 0
440
+ }
441
+ ],
442
+ [],
443
+ []
444
+ ],
445
+ allPatternList: [
446
+ {
447
+ 'id': 1,
448
+ 'desc': '',
449
+ 'offset': 10,
450
+ 'cycle': 120,
451
+ 'rings': [
452
+ [
453
+ {
454
+ 'name': 'phase1',
455
+ 'id': 1,
456
+ 'value': 30,
457
+ 'mode': 2,
458
+ 'options': [],
459
+ 'minSplit': 20,
460
+ 'desc': [
461
+ {
462
+ 'id': 13,
463
+ 'color': '#454545'
464
+ }
465
+ ]
466
+ },
467
+ {
468
+ 'name': 'phase2',
469
+ 'id': 2,
470
+ 'value': 30,
471
+ 'mode': 2,
472
+ 'options': [],
473
+ 'minSplit': 20,
474
+ 'desc': [
475
+ {
476
+ 'id': 10,
477
+ 'color': '#454545'
478
+ },
479
+ {
480
+ 'id': 12,
481
+ 'color': '#454545'
482
+ }
483
+ ]
484
+ },
485
+ {
486
+ 'name': 'phase3',
487
+ 'id': 3,
488
+ 'value': 30,
489
+ 'mode': 2,
490
+ 'options': [],
491
+ 'minSplit': 20,
492
+ 'desc': [
493
+ {
494
+ 'id': 1,
495
+ 'color': '#454545'
496
+ }
497
+ ]
498
+ },
499
+ {
500
+ 'name': 'phase4',
501
+ 'id': 4,
502
+ 'value': 30,
503
+ 'mode': 2,
504
+ 'options': [],
505
+ 'minSplit': 20,
506
+ 'desc': [
507
+ {
508
+ 'id': 6,
509
+ 'color': '#454545'
510
+ },
511
+ {
512
+ 'id': 8,
513
+ 'color': '#454545'
514
+ }
515
+ ]
516
+ }
517
+ ],
518
+ [
519
+ {
520
+ 'name': 'phase5',
521
+ 'id': 5,
522
+ 'value': 30,
523
+ 'mode': 2,
524
+ 'options': [],
525
+ 'minSplit': 20,
526
+ 'desc': [
527
+ {
528
+ 'id': 9,
529
+ 'color': '#454545'
530
+ }
531
+ ]
532
+ },
533
+ {
534
+ 'name': 'phase6',
535
+ 'id': 6,
536
+ 'value': 30,
537
+ 'mode': 2,
538
+ 'options': [],
539
+ 'minSplit': 20,
540
+ 'desc': [
541
+ {
542
+ 'id': 14,
543
+ 'color': '#454545'
544
+ },
545
+ {
546
+ 'id': 16,
547
+ 'color': '#454545'
548
+ }
549
+ ]
550
+ },
551
+ {
552
+ 'name': 'phase7',
553
+ 'id': 7,
554
+ 'value': 30,
555
+ 'mode': 2,
556
+ 'options': [],
557
+ 'minSplit': 20,
558
+ 'desc': [
559
+ {
560
+ 'id': 5,
561
+ 'color': '#454545'
562
+ }
563
+ ]
564
+ },
565
+ {
566
+ 'name': 'phase8',
567
+ 'id': 8,
568
+ 'value': 30,
569
+ 'mode': 2,
570
+ 'options': [],
571
+ 'minSplit': 20,
572
+ 'desc': [
573
+ {
574
+ 'id': 2,
575
+ 'color': '#454545'
576
+ },
577
+ {
578
+ 'id': 4,
579
+ 'color': '#454545'
580
+ }
581
+ ]
582
+ }
583
+ ],
584
+ [],
585
+ []
586
+ ],
587
+ 'barriers': [
588
+ {
589
+ 'barrier': 1,
590
+ 'length': 60,
591
+ 'items': [
592
+ {
593
+ 'ring': 2,
594
+ 'data': [
595
+ 5,
596
+ 6
597
+ ]
598
+ },
599
+ {
600
+ 'ring': 1,
601
+ 'data': [
602
+ 1,
603
+ 2
604
+ ]
605
+ }
606
+ ]
607
+ },
608
+ {
609
+ 'barrier': 2,
610
+ 'length': 60,
611
+ 'items': [
612
+ {
613
+ 'ring': 2,
614
+ 'data': [
615
+ 7,
616
+ 8
617
+ ]
618
+ },
619
+ {
620
+ 'ring': 1,
621
+ 'data': [
622
+ 3,
623
+ 4
624
+ ]
625
+ }
626
+ ]
627
+ }
628
+ ],
629
+ 'stagesList': [
630
+ {
631
+ 'split': 30,
632
+ 'stages': [
633
+ 1,
634
+ 5
635
+ ]
636
+ },
637
+ {
638
+ 'split': 30,
639
+ 'stages': [
640
+ 2,
641
+ 6
642
+ ]
643
+ },
644
+ {
645
+ 'split': 30,
646
+ 'stages': [
647
+ 3,
648
+ 7
649
+ ]
650
+ },
651
+ {
652
+ 'split': 30,
653
+ 'stages': [
654
+ 4,
655
+ 8
656
+ ]
657
+ }
658
+ ],
659
+ 'stages': [
660
+ [
661
+ 1,
662
+ 5
663
+ ],
664
+ [
665
+ 2,
666
+ 6
667
+ ],
668
+ [
669
+ 3,
670
+ 7
671
+ ],
672
+ [
673
+ 4,
674
+ 8
675
+ ]
676
+ ]
677
+ },
678
+ {
679
+ 'id': 2,
680
+ 'desc': '方案2',
681
+ 'offset': 0,
682
+ 'cycle': 110,
683
+ 'rings': [
684
+ [
685
+ {
686
+ 'name': 'phase1',
687
+ 'id': 1,
688
+ 'value': 20,
689
+ 'mode': 2,
690
+ 'options': [
691
+ 0,
692
+ 0,
693
+ 0
694
+ ],
695
+ 'minSplit': 13,
696
+ 'delaystart': 0,
697
+ 'advanceend': 0
698
+ },
699
+ {
700
+ 'name': 'phase2',
701
+ 'id': 2,
702
+ 'value': 35,
703
+ 'mode': 2,
704
+ 'options': [
705
+ 0,
706
+ 0,
707
+ 0
708
+ ],
709
+ 'minSplit': 13,
710
+ 'delaystart': 0,
711
+ 'advanceend': 0
712
+ },
713
+ {
714
+ 'name': 'phase3',
715
+ 'id': 3,
716
+ 'value': 30,
717
+ 'mode': 2,
718
+ 'options': [
719
+ 0,
720
+ 0,
721
+ 0
722
+ ],
723
+ 'minSplit': 13,
724
+ 'delaystart': 0,
725
+ 'advanceend': 0
726
+ },
727
+ {
728
+ 'name': 'phase4',
729
+ 'id': 4,
730
+ 'value': 25,
731
+ 'mode': 2,
732
+ 'options': [
733
+ 0,
734
+ 0,
735
+ 0
736
+ ],
737
+ 'minSplit': 13,
738
+ 'delaystart': 0,
739
+ 'advanceend': 0
740
+ }
741
+ ],
742
+ [
743
+ {
744
+ 'name': 'Phase 5',
745
+ 'id': 5,
746
+ 'value': 27,
747
+ 'mode': 2,
748
+ 'options': [
749
+ 0,
750
+ 0,
751
+ 0
752
+ ],
753
+ 'minSplit': 13,
754
+ 'delaystart': 0,
755
+ 'advanceend': 0
756
+ },
757
+ {
758
+ 'name': 'Phase 6',
759
+ 'id': 6,
760
+ 'value': 28,
761
+ 'mode': 2,
762
+ 'options': [
763
+ 0,
764
+ 0,
765
+ 0
766
+ ],
767
+ 'minSplit': 13,
768
+ 'delaystart': 0,
769
+ 'advanceend': 0
770
+ },
771
+ {
772
+ 'name': 'Phase 7',
773
+ 'id': 7,
774
+ 'value': 35,
775
+ 'mode': 2,
776
+ 'options': [
777
+ 0,
778
+ 0,
779
+ 0
780
+ ],
781
+ 'minSplit': 13,
782
+ 'delaystart': 0,
783
+ 'advanceend': 0
784
+ },
785
+ {
786
+ 'name': 'Phase 8',
787
+ 'id': 8,
788
+ 'value': 20,
789
+ 'mode': 2,
790
+ 'options': [
791
+ 0,
792
+ 0,
793
+ 0
794
+ ],
795
+ 'minSplit': 13,
796
+ 'delaystart': 0,
797
+ 'advanceend': 0
798
+ }
799
+ ],
800
+ [],
801
+ []
802
+ ],
803
+ 'stagesList': [
804
+ {
805
+ 'split': 20,
806
+ 'stages': [
807
+ 1,
808
+ 5
809
+ ],
810
+ 'delaystart': 0,
811
+ 'advanceend': 0
812
+ },
813
+ {
814
+ 'split': 7,
815
+ 'stages': [
816
+ 2,
817
+ 5
818
+ ],
819
+ 'delaystart': 0,
820
+ 'advanceend': 0
821
+ },
822
+ {
823
+ 'split': 28,
824
+ 'stages': [
825
+ 2,
826
+ 6
827
+ ],
828
+ 'delaystart': 0,
829
+ 'advanceend': 0
830
+ },
831
+ {
832
+ 'split': 30,
833
+ 'stages': [
834
+ 3,
835
+ 7
836
+ ],
837
+ 'delaystart': 0,
838
+ 'advanceend': 0
839
+ },
840
+ {
841
+ 'split': 5,
842
+ 'stages': [
843
+ 4,
844
+ 7
845
+ ],
846
+ 'delaystart': 0,
847
+ 'advanceend': 0
848
+ },
849
+ {
850
+ 'split': 20,
851
+ 'stages': [
852
+ 4,
853
+ 8
854
+ ],
855
+ 'delaystart': 0,
856
+ 'advanceend': 0
857
+ }
858
+ ],
859
+ 'stages': [
860
+ [
861
+ 1,
862
+ 5
863
+ ],
864
+ [
865
+ 2,
866
+ 5
867
+ ],
868
+ [
869
+ 2,
870
+ 6
871
+ ],
872
+ [
873
+ 3,
874
+ 7
875
+ ],
876
+ [
877
+ 4,
878
+ 7
879
+ ],
880
+ [
881
+ 4,
882
+ 8
883
+ ]
884
+ ],
885
+ 'barriers': [
886
+ {
887
+ 'barrier': 1,
888
+ 'length': 55,
889
+ 'items': [
890
+ {
891
+ 'ring': 2,
892
+ 'data': [
893
+ 5,
894
+ 6
895
+ ]
896
+ },
897
+ {
898
+ 'ring': 1,
899
+ 'data': [
900
+ 1,
901
+ 2
902
+ ]
903
+ }
904
+ ]
905
+ },
906
+ {
907
+ 'barrier': 2,
908
+ 'length': 55,
909
+ 'items': [
910
+ {
911
+ 'ring': 2,
912
+ 'data': [
913
+ 7,
914
+ 8
915
+ ]
916
+ },
917
+ {
918
+ 'ring': 1,
919
+ 'data': [
920
+ 3,
921
+ 4
922
+ ]
923
+ }
924
+ ]
925
+ }
926
+ ]
927
+ },
928
+ {
929
+ 'id': 3,
930
+ 'desc': '方案3',
931
+ 'offset': 0,
932
+ 'cycle': 120,
933
+ 'rings': [
934
+ [
935
+ {
936
+ 'name': 'phase1',
937
+ 'id': 1,
938
+ 'value': 40,
939
+ 'mode': 2,
940
+ 'options': [
941
+ 0,
942
+ 0,
943
+ 0
944
+ ],
945
+ 'minSplit': 13,
946
+ 'delaystart': 0,
947
+ 'advanceend': 0
948
+ },
949
+ {
950
+ 'name': 'phase2',
951
+ 'id': 2,
952
+ 'value': 20,
953
+ 'mode': 2,
954
+ 'options': [
955
+ 0,
956
+ 0,
957
+ 0
958
+ ],
959
+ 'minSplit': 13,
960
+ 'delaystart': 0,
961
+ 'advanceend': 0
962
+ },
963
+ {
964
+ 'name': 'phase3',
965
+ 'id': 3,
966
+ 'value': 30,
967
+ 'mode': 2,
968
+ 'options': [
969
+ 0,
970
+ 0,
971
+ 0
972
+ ],
973
+ 'minSplit': 13,
974
+ 'delaystart': 0,
975
+ 'advanceend': 0
976
+ },
977
+ {
978
+ 'name': 'phase4',
979
+ 'id': 4,
980
+ 'value': 30,
981
+ 'mode': 2,
982
+ 'options': [
983
+ 0,
984
+ 0,
985
+ 0
986
+ ],
987
+ 'minSplit': 13,
988
+ 'delaystart': 0,
989
+ 'advanceend': 0
990
+ }
991
+ ],
992
+ [
993
+ {
994
+ 'name': 'Phase 5',
995
+ 'id': 5,
996
+ 'value': 20,
997
+ 'mode': 2,
998
+ 'options': [
999
+ 0,
1000
+ 0,
1001
+ 0
1002
+ ],
1003
+ 'minSplit': 13,
1004
+ 'delaystart': 0,
1005
+ 'advanceend': 0
1006
+ },
1007
+ {
1008
+ 'name': 'Phase 6',
1009
+ 'id': 6,
1010
+ 'value': 40,
1011
+ 'mode': 2,
1012
+ 'options': [
1013
+ 0,
1014
+ 0,
1015
+ 0
1016
+ ],
1017
+ 'minSplit': 13,
1018
+ 'delaystart': 0,
1019
+ 'advanceend': 0
1020
+ },
1021
+ {
1022
+ 'name': 'Phase 7',
1023
+ 'id': 7,
1024
+ 'value': 30,
1025
+ 'mode': 2,
1026
+ 'options': [
1027
+ 0,
1028
+ 0,
1029
+ 0
1030
+ ],
1031
+ 'minSplit': 13,
1032
+ 'delaystart': 0,
1033
+ 'advanceend': 0
1034
+ },
1035
+ {
1036
+ 'name': 'Phase 8',
1037
+ 'id': 8,
1038
+ 'value': 30,
1039
+ 'mode': 2,
1040
+ 'options': [
1041
+ 0,
1042
+ 0,
1043
+ 0
1044
+ ],
1045
+ 'minSplit': 13,
1046
+ 'delaystart': 0,
1047
+ 'advanceend': 0
1048
+ }
1049
+ ],
1050
+ [],
1051
+ []
1052
+ ],
1053
+ 'stagesList': [
1054
+ {
1055
+ 'split': 20,
1056
+ 'stages': [
1057
+ 1,
1058
+ 5
1059
+ ],
1060
+ 'delaystart': 0,
1061
+ 'advanceend': 0
1062
+ },
1063
+ {
1064
+ 'split': 20,
1065
+ 'stages': [
1066
+ 1,
1067
+ 6
1068
+ ],
1069
+ 'delaystart': 0,
1070
+ 'advanceend': 0
1071
+ },
1072
+ {
1073
+ 'split': 20,
1074
+ 'stages': [
1075
+ 2,
1076
+ 6
1077
+ ],
1078
+ 'delaystart': 0,
1079
+ 'advanceend': 0
1080
+ },
1081
+ {
1082
+ 'split': 30,
1083
+ 'stages': [
1084
+ 3,
1085
+ 7
1086
+ ],
1087
+ 'delaystart': 0,
1088
+ 'advanceend': 0
1089
+ },
1090
+ {
1091
+ 'split': 30,
1092
+ 'stages': [
1093
+ 4,
1094
+ 8
1095
+ ],
1096
+ 'delaystart': 0,
1097
+ 'advanceend': 0
1098
+ }
1099
+ ],
1100
+ 'stages': [
1101
+ [
1102
+ 1,
1103
+ 5
1104
+ ],
1105
+ [
1106
+ 1,
1107
+ 6
1108
+ ],
1109
+ [
1110
+ 2,
1111
+ 6
1112
+ ],
1113
+ [
1114
+ 3,
1115
+ 7
1116
+ ],
1117
+ [
1118
+ 4,
1119
+ 8
1120
+ ]
1121
+ ],
1122
+ 'barriers': [
1123
+ {
1124
+ 'barrier': 1,
1125
+ 'length': 60,
1126
+ 'items': [
1127
+ {
1128
+ 'ring': 2,
1129
+ 'data': [
1130
+ 5,
1131
+ 6
1132
+ ]
1133
+ },
1134
+ {
1135
+ 'ring': 1,
1136
+ 'data': [
1137
+ 1,
1138
+ 2
1139
+ ]
1140
+ }
1141
+ ]
1142
+ },
1143
+ {
1144
+ 'barrier': 2,
1145
+ 'length': 60,
1146
+ 'items': [
1147
+ {
1148
+ 'ring': 2,
1149
+ 'data': [
1150
+ 7,
1151
+ 8
1152
+ ]
1153
+ },
1154
+ {
1155
+ 'ring': 1,
1156
+ 'data': [
1157
+ 3,
1158
+ 4
1159
+ ]
1160
+ }
1161
+ ]
1162
+ }
1163
+ ]
1164
+ }
1165
+ ],
205
1166
  manualInfo: {
206
1167
  tempPatternid: '',
207
1168
  offset: 0,
@@ -212,6 +1173,9 @@ export default {
212
1173
  }
213
1174
  },
214
1175
  created () {
1176
+ if (this.patternOne.length === 0) {
1177
+ this.handleStageData(this.planPattern)
1178
+ }
215
1179
  this.initData()
216
1180
  },
217
1181
  methods: {
@@ -279,6 +1243,121 @@ export default {
279
1243
  this.patternOne = this.allPatternList.filter(item => {
280
1244
  return item.id === this.manualInfo.tempPatternid
281
1245
  })
1246
+ for (let rings of this.patternOne[0].rings) {
1247
+ if (rings.length === 0) continue
1248
+ for (let ring of rings) {
1249
+ if (ring.value === 0) continue
1250
+ let currPhase = this.phaseList.filter((item) => {
1251
+ return item.id === ring.id
1252
+ })[0]
1253
+ ring.desc = currPhase.direction.map(item => {
1254
+ return {
1255
+ id: item,
1256
+ color: '#454545'
1257
+ }
1258
+ })
1259
+ }
1260
+ }
1261
+ this.handleStageData(this.patternOne[0].rings)
1262
+ },
1263
+ handleStageData (rings) { // stagesList
1264
+ let phaseList = []
1265
+ let stagesList = []
1266
+ // rings = JSON.parse(JSON.stringify(rings))
1267
+ if (rings.length === 0) return
1268
+ let mapAdd = rings.map(item => {
1269
+ return item.map(val => {
1270
+ return val.value + (val.sum ? val.sum : 0)
1271
+ })
1272
+ })
1273
+ let maxCycle = mapAdd.length > 0 ? mapAdd.map(item => {
1274
+ return item.length > 0 ? item.reduce((a, b) => {
1275
+ return a + b
1276
+ }) : 0
1277
+ }) : 0
1278
+ this.max = Math.max(...maxCycle)// 每个环的周期最大值
1279
+ this.stateList = [0]
1280
+ this.narr = []
1281
+ let currentIds = ''
1282
+ let lastCurrentIds = ''
1283
+ for (let j = 0; j <= this.max; j++) { // 指针长度
1284
+ for (let i = 0; i < rings.length; i++) { // 环列表
1285
+ let ring = rings[i]// 每个环对象
1286
+ let sum = 0
1287
+ for (let n = 0; n < ring.length; n++) { // 相位累计长度
1288
+ if (ring[n].mode !== 7) {
1289
+ sum = sum + ring[n].value + (ring[n].sum ? ring[n].sum : 0)
1290
+ if (j < sum) {
1291
+ let phaseId = ring[n].id
1292
+ currentIds = currentIds + '-' + phaseId
1293
+ break
1294
+ }
1295
+ }
1296
+ }
1297
+ }
1298
+ if (lastCurrentIds !== currentIds && lastCurrentIds !== '') { // 当前相位id和上一个相比不同说明相位变化了
1299
+ phaseList.push(lastCurrentIds)
1300
+ this.stateList.push(j)// 阶段累计长度的集合
1301
+ }
1302
+ lastCurrentIds = currentIds
1303
+ currentIds = ''
1304
+ }
1305
+ let newPhaselist = []
1306
+ phaseList.forEach(i => {
1307
+ let rangeArr = i.split('-').map(Number)
1308
+ if (rangeArr.length > 2) {
1309
+ newPhaselist.push([
1310
+ JSON.parse(JSON.stringify(rangeArr[1])),
1311
+ JSON.parse(JSON.stringify(rangeArr[2]))
1312
+ ])
1313
+ } else {
1314
+ newPhaselist.push([
1315
+ JSON.parse(JSON.stringify(rangeArr[1]))
1316
+ ])
1317
+ }
1318
+ })
1319
+ for (let i = this.stateList.length - 1; i >= 1; i--) {
1320
+ this.narr.push(this.stateList[i] - this.stateList[i - 1])
1321
+ }
1322
+ // newPhaselist
1323
+ this.narr.reverse()// 阶段差
1324
+ for (let i = 0; i < newPhaselist.length; i++) {
1325
+ let stage = JSON.parse(JSON.stringify(newPhaselist[i]))
1326
+ let stageItem = this.getStageItem(stage, rings, i)
1327
+ stagesList.push(JSON.parse(JSON.stringify(stageItem)))
1328
+ }
1329
+ this.stagesList = JSON.parse(JSON.stringify(stagesList))
1330
+ },
1331
+ getStageItem (stageArr, ringsList, i) {
1332
+ let res = {
1333
+ key: i,
1334
+ split: this.narr[i], // 阶段绿性比
1335
+ stages: stageArr,
1336
+ delaystart: 0,
1337
+ advanceend: 0
1338
+ }
1339
+ // let splitArr = []
1340
+ let delaystartArr = []
1341
+ let advanceendArr = []
1342
+ for (let rings of ringsList) {
1343
+ for (let ring of rings) {
1344
+ if (stageArr.includes(ring.id)) {
1345
+ // let split = ring.value
1346
+ let delaystart = ring.delaystart
1347
+ let advanceend = ring.advanceend
1348
+ // splitArr.push(split)
1349
+ delaystartArr.push(delaystart)
1350
+ advanceendArr.push(advanceend)
1351
+ }
1352
+ }
1353
+ }
1354
+ // splitArr.sort(function (a, b) { return a - b })
1355
+ delaystartArr.sort(function (a, b) { return b - a })
1356
+ advanceendArr.sort(function (a, b) { return a - b })
1357
+ // res.split = splitArr.length > 0 ? splitArr[0] : 0
1358
+ res.delaystart = delaystartArr.length > 0 ? delaystartArr[0] : 0
1359
+ res.advanceend = advanceendArr.length > 0 ? advanceendArr[0] : 0
1360
+ return res
282
1361
  },
283
1362
  initData () {
284
1363
  // 判断有几个环,就创建几个看板