Просмотр исходного кода

Merge branch 'Regulation' of licailing/wenlvju into master

licailing 4 лет назад
Родитель
Сommit
08ab0d8c15
34 измененных файлов с 577 добавлено и 868 удалено
  1. 2 0
      src/main/java/com/izouma/wenlvju/domain/performance/Arrange.java
  2. 1 1
      src/main/java/com/izouma/wenlvju/domain/performance/ArrangeJudge.java
  3. 5 2
      src/main/java/com/izouma/wenlvju/repo/performance/ArrangeJudgeRepo.java
  4. 4 0
      src/main/java/com/izouma/wenlvju/repo/performance/ProgrammeRepo.java
  5. 4 2
      src/main/java/com/izouma/wenlvju/service/performance/ArrangeJudgeService.java
  6. 5 2
      src/main/java/com/izouma/wenlvju/service/performance/ArrangeService.java
  7. 47 11
      src/main/java/com/izouma/wenlvju/service/performance/ProgrammeService.java
  8. 0 1
      src/main/java/com/izouma/wenlvju/web/performance/ProgrammeController.java
  9. 3 2
      src/main/vue/src/components/ArrangeLog.vue
  10. 4 9
      src/main/vue/src/components/OrganLog.vue
  11. 1 1
      src/main/vue/src/components/RecordLogs.vue
  12. 4 1
      src/main/vue/src/mixins/formatters.js
  13. 312 335
      src/main/vue/src/router.js
  14. 18 12
      src/main/vue/src/views/performance/ArrangeJudgeList.vue
  15. 40 21
      src/main/vue/src/views/performance/ArrangeList.vue
  16. 7 1
      src/main/vue/src/views/performance/ProgScoreAdminList.vue
  17. 23 11
      src/main/vue/src/views/performance/ProgrammeGroupList.vue
  18. 0 432
      src/main/vue/src/views/performance/ProgrammeScoreList copy.vue
  19. 20 6
      src/main/vue/src/views/performance/ProgrammeScoreList.vue
  20. 19 8
      src/main/vue/src/views/performance/ProgrammeSignList.vue
  21. 12 0
      src/main/vue/src/views/performance/review/ArrangeJudgeList.vue
  22. 12 0
      src/main/vue/src/views/performance/review/ProgScoreAdminList.vue
  23. 12 0
      src/main/vue/src/views/performance/review/ProgrammeScoreList.vue
  24. 12 0
      src/main/vue/src/views/performance/review/ProgrammeSignList.vue
  25. 1 1
      src/main/vue/src/views/record/RecordAdd.vue
  26. 1 1
      src/main/vue/src/views/record/RecordDistrictList2.vue
  27. 1 1
      src/main/vue/src/views/record/RecordEdit.vue
  28. 1 1
      src/main/vue/src/views/record/RecordList.vue
  29. 1 1
      src/main/vue/src/views/record/RecordOrganizationList.vue
  30. 1 1
      src/main/vue/src/views/record/RecordRegulationHistory.vue
  31. 1 1
      src/main/vue/src/views/record/RecordRegulationList.vue
  32. 1 1
      src/main/vue/src/views/record/VideoList.vue
  33. 1 1
      src/main/vue/src/views/record/VideoOrganizationList.vue
  34. 1 1
      src/test/java/com/izouma/wenlvju/repo/UserRepoTest.java

+ 2 - 0
src/main/java/com/izouma/wenlvju/domain/performance/Arrange.java

@@ -1,5 +1,6 @@
 package com.izouma.wenlvju.domain.performance;
 
+import com.izouma.wenlvju.annotations.SearchableOne;
 import com.izouma.wenlvju.converter.LongArrayConverter;
 import com.izouma.wenlvju.domain.BaseEntity;
 import com.izouma.wenlvju.enums.PerformanceStatus;
@@ -28,6 +29,7 @@ public class Arrange extends BaseEntity {
 
     private String name;
 
+    @SearchableOne
     @ApiModelProperty(value = "活动地点")
     private String address;
 

+ 1 - 1
src/main/java/com/izouma/wenlvju/domain/performance/ArrangeJudge.java

@@ -30,5 +30,5 @@ public class ArrangeJudge extends BaseEntity {
     private Long expertId;
 
     @ApiModelProperty(value = "审核状态")
-    private int status;
+    private int auditTimes;
 }

+ 5 - 2
src/main/java/com/izouma/wenlvju/repo/performance/ArrangeJudgeRepo.java

@@ -19,14 +19,17 @@ public interface ArrangeJudgeRepo extends JpaRepository<ArrangeJudge, Long>, Jpa
 
     List<ArrangeJudge> findAllByDateAndMorning(LocalDate date, boolean morning);
 
-    @Query("select distinct expertId from ArrangeJudge where date = ?1 and morning = ?2")
-    List<Long> findExpertByDateAndMorning(LocalDate date, boolean morning);
+    @Query("select distinct expertId from ArrangeJudge where date = ?1 and morning = ?2 and arrangeId not in ?3")
+    List<Long> findExpertByDateAndMorningAndArrangeIdNot(LocalDate date, boolean morning, Collection<Long> arrangeIds);
 
     @Query("update ArrangeJudge t set t.del = true where t.arrangeId in ?1")
     @Modifying
     @Transactional
     void cancelJudge(Collection<Long> arrangeIds);
 
+    @Query("select arrangeId from ArrangeJudge where expertId = ?1 and auditTimes = ?2")
+    List<Long> findArrangeIdByExpertIdAndAuditTimes(Long expertId, int auditTimes);
+
     @Query("select arrangeId from ArrangeJudge where expertId = ?1")
     List<Long> findArrangeIdByExpertId(Long expertId);
 

+ 4 - 0
src/main/java/com/izouma/wenlvju/repo/performance/ProgrammeRepo.java

@@ -51,8 +51,12 @@ public interface ProgrammeRepo extends JpaRepository<Programme, Long>, JpaSpecif
 
     List<Programme> findAllByPerformanceIdAndArrangeIdIsNull(Long performanceId);
 
+    List<Programme> findAllByPerformanceIdAndProgrammeStatusAndArrangeIdIsNull(Long performanceId, ProgrammeStatus programmeStatus);
+
     List<Programme> findAllByPerformanceIdAndReviewArrangeIdIsNull(Long performanceId);
 
+    List<Programme> findAllByPerformanceIdAndProgrammeStatusAndReviewArrangeIdIsNull(Long performanceId, ProgrammeStatus programmeStatus);
+
     List<Programme> findAllByArrangeId(Long arrangeId);
 
     List<Programme> findAllByReviewArrangeId(Long arrangeId);

+ 4 - 2
src/main/java/com/izouma/wenlvju/service/performance/ArrangeJudgeService.java

@@ -43,13 +43,14 @@ public class ArrangeJudgeService {
         List<Long> expertIds = converter.convertToEntityAttribute(experts);
         List<Long> arrangeIds = converter.convertToEntityAttribute(arranges);
         Arrange arrange = arrangeRepo.findById(arrangeIds.get(0)).orElseThrow(new BusinessException("无分组"));
+        // 取消分配
+        this.cancelAssign(arranges);
 
         LocalDate date = arrange.getDate();
         Boolean morning = arrange.getMorning();
         if (ObjectUtil.isNotNull(date)) {
             // 线上需要时间段判断
-
-            List<Long> arrangeJudges = arrangeJudgeRepo.findExpertByDateAndMorning(date, morning);
+            List<Long> arrangeJudges = arrangeJudgeRepo.findExpertByDateAndMorningAndArrangeIdNot(date, morning, arrangeIds);
             if (CollUtil.isNotEmpty(arrangeJudges)) {
                 expertIds.forEach(id -> {
                     if (arrangeJudges.contains(id)) {
@@ -68,6 +69,7 @@ public class ArrangeJudgeService {
                                 .date(date)
                                 .morning(morning)
                                 .expertId(expertId)
+                                .auditTimes(arrange.getAuditTimes())
                                 .build())));
 
         arrangeJudgeRepo.saveAll(save);

+ 5 - 2
src/main/java/com/izouma/wenlvju/service/performance/ArrangeService.java

@@ -101,10 +101,13 @@ public class ArrangeService {
         }
         PerformanceStatus status = performance.getStatus();
         // 第一次分组
-        if (performance.getAuditTimes() == 0 && PerformanceStatus.UNDER_REVIEW.equals(status)) {
+        if (PerformanceStatus.UNDER_REVIEW.equals(status)) {
             performance.setStatus(PerformanceStatus.ARRANGE);
             status = PerformanceStatus.ARRANGE;
-            performance.setAuditTimes(1);
+            if (performance.getAuditTimes() == 0) {
+                performance.setAuditTimes(1);
+            }
+
             performanceRepo.save(performance);
         }
 

+ 47 - 11
src/main/java/com/izouma/wenlvju/service/performance/ProgrammeService.java

@@ -545,14 +545,14 @@ public class ProgrammeService {
     public List<ProgrammeShowDTO> ungrouped(Long performanceId) {
         Performance performance = performanceRepo.findById(performanceId).orElseThrow(new BusinessException("无展演"));
         if (performance.getAuditTimes() > 1) {
-            List<Programme> programmes = programmeRepo.findAllByPerformanceIdAndReviewArrangeIdIsNull(performanceId);
+            List<Programme> programmes = programmeRepo.findAllByPerformanceIdAndProgrammeStatusAndReviewArrangeIdIsNull(performanceId, ProgrammeStatus.SUBMIT);
             if (CollUtil.isNotEmpty(programmes)) {
                 this.sort(programmes);
                 return this.toShowDTOList(programmes, performance.getName());
             }
             return null;
         }
-        List<Programme> programmes = programmeRepo.findAllByPerformanceIdAndArrangeIdIsNull(performanceId);
+        List<Programme> programmes = programmeRepo.findAllByPerformanceIdAndProgrammeStatusAndArrangeIdIsNull(performanceId, ProgrammeStatus.SUBMIT);
         if (CollUtil.isNotEmpty(programmes)) {
             this.sort(programmes);
             return this.toShowDTOList(programmes, performance.getName());
@@ -592,13 +592,32 @@ public class ProgrammeService {
     查看按分组查看节目
      */
     public Page<ArrangeProgrammeDTO> byArrange(PageQuery pageQuery) {
+        Map<String, Object> query = pageQuery.getQuery();
+        Boolean review = Convert.convert(Boolean.class, query.get("review"));
+        query.remove("review");
+        if (review) {
+            pageQuery.setSort("allSigned,asc;reviewArrangeId,desc;gradingOrganizationId,asc;organizationId,asc;");
+        } else {
+            pageQuery.setSort("allSigned,asc;arrangeId,desc;gradingOrganizationId,asc;organizationId,asc;");
+        }
         Page<Programme> all = programmeRepo.findAll((root, criteriaQuery, criteriaBuilder) -> {
             List<Predicate> and = JpaUtils.toPredicates(pageQuery, Programme.class, root, criteriaQuery, criteriaBuilder);
-            and.add(criteriaBuilder.isNotNull(root.get("arrangeId")));
+            if (review) {
+                and.add(criteriaBuilder.isNotNull(root.get("reviewArrangeId")));
+            } else {
+                and.add(criteriaBuilder.isNotNull(root.get("arrangeId")));
+            }
+
             return criteriaBuilder.and(and.toArray(new Predicate[0]));
         }, JpaUtils.toPageRequest(pageQuery));
 
-        Set<Long> arrangeIds = all.getContent().stream().map(Programme::getArrangeId).collect(Collectors.toSet());
+        Set<Long> arrangeIds = all.getContent().stream().map(programme -> {
+            if (review) {
+                return programme.getReviewArrangeId();
+            }
+            return programme.getArrangeId();
+        }).collect(Collectors.toSet());
+
         Map<Long, Arrange> arrangeMap = arrangeRepo.findAllById(arrangeIds)
                 .stream()
                 .collect(Collectors.toMap(Arrange::getId, arrange -> arrange));
@@ -610,7 +629,7 @@ public class ProgrammeService {
                 .collect(Collectors.toMap(GradingOrganization::getId, GradingOrganization::getName));
         return all.map(programme -> {
             ArrangeProgrammeDTO dto = new ArrangeProgrammeDTO(programme);
-            Arrange arrange = arrangeMap.get(programme.getArrangeId());
+            Arrange arrange = arrangeMap.get(review ? programme.getReviewArrangeId() : programme.getArrangeId());
             dto.setArrangeName(arrange.getName());
             dto.setWriterDirector(arrange.getWriterDirector());
             dto.setWriterPhone(arrange.getPhone());
@@ -630,7 +649,8 @@ public class ProgrammeService {
         programmeRepo.save(programme);
 
         //该状态
-        Performance performance = performanceRepo.findById(programme.getId()).orElseThrow(new BusinessException("无活动"));
+        Performance performance = performanceRepo.findById(programme.getPerformanceId())
+                .orElseThrow(new BusinessException("无活动"));
         if (PerformanceStatus.ARRANGE_JUDGE.equals(performance.getStatus())) {
             performance.setStatus(PerformanceStatus.SIGN_IN);
             performanceRepo.save(performance);
@@ -673,14 +693,25 @@ public class ProgrammeService {
     专家查看并打分
      */
     public Page<ProgrammeScoreDTO> byScore(PageQuery pageQuery, Long userId) {
-        List<Long> arrangeId = arrangeJudgeRepo.findArrangeIdByExpertId(userId);
+        // 是否复审
+        Map<String, Object> query = pageQuery.getQuery();
+        Integer auditTimes = Convert.convert(Integer.class, query.get("auditTimes"));
+        query.remove("auditTimes");
+
+        List<Long> arrangeId = arrangeJudgeRepo.findArrangeIdByExpertIdAndAuditTimes(userId, auditTimes);
         if (CollUtil.isEmpty(arrangeId)) {
             return new PageImpl<>(new ArrayList<>(), JpaUtils.toPageRequest(pageQuery), 0);
         }
+
         pageQuery.setSort("allScore,asc;arrangeId,asc;showBegin,asc;");
         Page<Programme> all = programmeRepo.findAll(((root, criteriaQuery, criteriaBuilder) -> {
             List<Predicate> and = JpaUtils.toPredicates(pageQuery, Programme.class, root, criteriaQuery, criteriaBuilder);
-            and.add(root.get("arrangeId").in(arrangeId));
+            if (auditTimes > 1) {
+                and.add(root.get("reviewArrangeId").in(arrangeId));
+            } else {
+                and.add(root.get("arrangeId").in(arrangeId));
+            }
+
             return criteriaBuilder.and(and.toArray(new Predicate[0]));
         }), JpaUtils.toPageRequest(pageQuery));
 
@@ -727,9 +758,10 @@ public class ProgrammeService {
                 .stream()
                 .collect(Collectors.toMap(ArtType::getId, ArtType::getName));
 
-        Map<Long, String> arrangeMap = arrangeRepo.findAllById(arrangeId)
+        List<Arrange> arranges = arrangeRepo.findAllById(arrangeId);
+        Map<Long, Arrange> arrangeMap = arranges
                 .stream()
-                .collect(Collectors.toMap(Arrange::getId, Arrange::getName));
+                .collect(Collectors.toMap(Arrange::getId, arrange -> arrange));
 
         Map<Long, ProgrammeScore> scoreMap = programmeScoreRepo.findByProgrammeIdInAndExpertId(ids, userId)
                 .stream()
@@ -738,7 +770,11 @@ public class ProgrammeService {
         return all.map(programme -> {
             ProgrammeScoreDTO dto = new ProgrammeScoreDTO(programme);
             dto.setSpecialty(artTypeMap.get(programme.getSpecialtyId()));
-            dto.setArrangeName(arrangeMap.get(programme.getArrangeId()));
+            // 初审/复审
+            Arrange arrange = arranges.get(0);
+            dto.setArrangeName(arrangeMap.get(arrange.getAuditTimes() > 1 ? programme.getReviewArrangeId() : programme.getArrangeId())
+                    .getName());
+
             ProgrammeScore programmeScore = scoreMap.get(programme.getId());
             if (ObjectUtil.isNotNull(programmeScore)) {
                 dto.setMyScore(programmeScore.getScore());

+ 0 - 1
src/main/java/com/izouma/wenlvju/web/performance/ProgrammeController.java

@@ -128,7 +128,6 @@ public class ProgrammeController extends BaseController {
     @ApiOperation("签到列表")
     @PostMapping("/byArrange")
     public Page<ArrangeProgrammeDTO> byArrange(@RequestBody PageQuery pageQuery) {
-        pageQuery.setSort("allSigned,asc;arrangeId,desc;gradingOrganizationId,asc;organizationId,asc;");
         return programmeService.byArrange(pageQuery);
     }
 

+ 3 - 2
src/main/vue/src/components/ArrangeLog.vue

@@ -117,9 +117,10 @@ export default {
                 .then(res => {
                     this.saving = false;
                     this.$message.success('成功');
-                    this.getData();
+                    this.$parent.getData();
                     this.$forceUpdate();
-                    this.dialogVisible = false;
+                    // this.dialogVisible = false;
+                    this.closeDialog();
                 })
                 .catch(e => {
                     console.log(e);

+ 4 - 9
src/main/vue/src/components/OrganLog.vue

@@ -94,7 +94,8 @@ export default {
         },
         onSave() {
             let ids = this.id;
-            if (this.id.length > 1) {
+            // console.log(this.id instanceof Array);
+            if (this.id instanceof Array) {
                 ids = this.id.join(',');
             }
             if (this.userIds.length > 0) {
@@ -104,7 +105,7 @@ export default {
                         this.$message.success('添加成功');
                         this.dialogVisible = false;
                         setTimeout(() => {
-                            this.getData();
+                            this.$parent.getData();
                         }, 1000);
                         // console.log(res);
                     });
@@ -130,13 +131,7 @@ export default {
         },
         init(row) {
             this.id = row;
-            // this.emps = this.tableData.map(item => {
-            //     console.log(item);
-            //     return {
-            //         label: item.phone + '--' + item.specialtyName
-            //     };
-            // });
-            // });
+            this.expert = [];
             this.$http
                 .post('/user/all1', { query: { del: false }, size: 1000, sort: '' }, { body: 'json' })
                 .then(res => {

+ 1 - 1
src/main/vue/src/components/RecordLogs.vue

@@ -283,7 +283,7 @@ export default {
                     });
             }
             this.$http
-                .get('/district/NJ')
+                .post('/setting/byFlag', { flag: 2 })
                 .then(res => {
                     this.district = res;
                 })

+ 4 - 1
src/main/vue/src/mixins/formatters.js

@@ -15,7 +15,10 @@ export default {
             }
         },
         getTime(value, format1 = 'HH:mm:ss', format2 = 'HH:mm') {
-            return format(parse(value, format1, new Date()), format2);
+            // return format(parse(value, format1, new Date()), format2);
+            if (value) {
+                return format(parse(value, format1, new Date()), format2);
+            }
         }
     }
 };

+ 312 - 335
src/main/vue/src/router.js

@@ -72,6 +72,14 @@ const router = new Router({
                         title: '菜单权限'
                     }
                 },
+                {
+                    path: '/upload',
+                    name: 'upload',
+                    component: () => import(/* webpackChunkName: "upload" */ '@/views/Upload.vue'),
+                    meta: {
+                        title: '上传'
+                    }
+                },
                 {
                     path: '/userEdit',
                     name: 'userEdit',
@@ -93,84 +101,92 @@ const router = new Router({
                     name: 'StaffList',
                     component: () => import(/* webpackChunkName: "staffList" */ '@/views/user/StaffList.vue'),
                     meta: {
-                        title: '用户管理'
+                        title: '工作人员'
                     }
                 },
                 {
-                    path: '/echarts',
-                    name: 'echarts',
-                    component: () => import('@/views/Echarts.vue'),
+                    path: '/expertList',
+                    name: 'expertList',
+                    component: () => import(/* webpackChunkName: "expertList" */ '@/views/user/ExpertList.vue'),
                     meta: {
-                        title: '地图图表'
+                        title: '专家管理'
                     }
                 },
                 {
-                    path: '/video',
-                    name: 'video',
-                    component: () => import(/* webpackChunkName: "video" */ '@/views/Video.vue'),
+                    path: '/expertEdit',
+                    name: 'expertEdit',
+                    component: () => import(/* webpackChunkName: "expertEdit" */ '@/views/user/ExpertEdit.vue'),
                     meta: {
-                        title: '监控平台'
+                        title: '专家编辑'
                     }
                 },
                 {
-                    path: '/assignExpert',
-                    name: 'assignExpert',
-                    component: () => import(/* webpackChunkName: "assignExpert" */ '@/views/rate/AssignExpert.vue'),
+                    path: '/organizationEdit',
+                    name: 'OrganizationEdit',
+                    component: () =>
+                        import(/* webpackChunkName: "organizationEdit" */ '@/views/organization/OrganizationEdit.vue'),
                     meta: {
-                        title: '分配专家组'
+                        title: '承办单位编辑'
                     }
                 },
                 {
-                    path: '/arrangeAssignExpert',
-                    name: 'arrangeAssignExpert',
+                    path: '/organizationList',
+                    name: 'OrganizationList',
                     component: () =>
-                        import(
-                            /* webpackChunkName: "arrangeAssignExpert" */ '@/views/performance/ArrangeAssignExpert.vue'
-                        ),
+                        import(/* webpackChunkName: "organizationList" */ '@/views/organization/OrganizationList.vue'),
                     meta: {
-                        title: '分配评委'
+                        title: '承办单位'
                     }
                 },
                 {
-                    path: '/gradeList',
-                    name: 'gradeList',
-                    component: () => import(/* webpackChunkName: "gradeList" */ '@/views/rate/GradeList.vue'),
+                    path: '/gradingOrganizationEdit',
+                    name: 'GradingOrganizationEdit',
+                    component: () =>
+                        import(/* webpackChunkName: "gradingOrganizationEdit" */ '@/views/GradingOrganizationEdit.vue'),
                     meta: {
-                        title: '评分'
+                        title: '考级机构编辑'
                     }
                 },
                 {
-                    path: '/organization',
-                    name: 'organization',
+                    path: '/gradingOrganizationList',
+                    name: 'GradingOrganizationList',
                     component: () =>
-                        import(/* webpackChunkName: "organization" */ '@/views/organization/Organization.vue'),
+                        import(/* webpackChunkName: "gradingOrganizationList" */ '@/views/GradingOrganizationList.vue'),
                     meta: {
-                        title: '等级评定'
+                        title: '考级机构'
                     }
                 },
                 {
-                    path: '/organization1',
-                    name: 'organization1',
-                    component: () =>
-                        import(/* webpackChunkName: "organization1" */ '@/views/organization/Organization1.vue'),
+                    path: '/operationLogList',
+                    name: 'OperationLogList',
+                    component: () => import(/* webpackChunkName: "operationLogList" */ '@/views/OperationLogList.vue'),
                     meta: {
-                        title: '等级评定'
+                        title: '操作日志'
                     }
                 },
                 {
-                    path: '/expertList',
-                    name: 'expertList',
-                    component: () => import(/* webpackChunkName: "expertList" */ '@/views/user/ExpertList.vue'),
+                    path: '/exceptionLogList',
+                    name: 'ExceptionLogList',
+                    component: () => import(/* webpackChunkName: "exceptionLogList" */ '@/views/ExceptionLogList.vue'),
                     meta: {
-                        title: '专家管理'
+                        title: '异常日志'
                     }
                 },
+                /**通用设置 */
                 {
-                    path: '/expertEdit',
-                    name: 'expertEdit',
-                    component: () => import(/* webpackChunkName: "expertEdit" */ '@/views/user/ExpertEdit.vue'),
+                    path: '/settings',
+                    name: 'Settings',
+                    component: () => import(/* webpackChunkName: "settingList" */ '@/views/Settings.vue'),
                     meta: {
-                        title: '专家编辑'
+                        title: '设置'
+                    }
+                },
+                {
+                    path: '/artTypes',
+                    name: 'ArtTypes',
+                    component: () => import(/* webpackChunkName: "artTypes" */ '@/views/ArtTypes.vue'),
+                    meta: {
+                        title: '艺术分类'
                     }
                 },
                 {
@@ -182,13 +198,22 @@ const router = new Router({
                     }
                 },
                 {
-                    path: '/upload',
-                    name: 'upload',
-                    component: () => import(/* webpackChunkName: "upload" */ '@/views/Upload.vue'),
+                    path: '/awardEdit',
+                    name: 'AwardEdit',
+                    component: () => import(/* webpackChunkName: "awardEdit" */ '@/views/AwardEdit.vue'),
                     meta: {
-                        title: '上传'
+                        title: '奖项类别设置编辑'
                     }
                 },
+                {
+                    path: '/awardList',
+                    name: 'AwardList',
+                    component: () => import(/* webpackChunkName: "awardList" */ '@/views/AwardList.vue'),
+                    meta: {
+                        title: '奖项类别设置'
+                    }
+                },
+                /**备案 */
                 {
                     path: '/recordEdit',
                     name: 'RecordEdit',
@@ -206,57 +231,29 @@ const router = new Router({
                     }
                 },
                 {
-                    path: '/recordOrganizationList',
-                    name: 'RecordOrganizationList',
-                    component: () =>
-                        import(/* webpackChunkName: "recordList" */ '@/views/record/RecordOrganizationList.vue'),
+                    path: '/recordInfo',
+                    name: 'RecordInfo',
+                    component: () => import(/* webpackChunkName: "recordInfo" */ '@/views/record/RecordInfo.vue'),
                     meta: {
                         title: '备案管理'
                     }
                 },
                 {
-                    path: '/recordCheck',
-                    name: 'RecordCheck',
-                    component: () => import(/* webpackChunkName: "recordCheck" */ '@/views/record/RecordCheck.vue'),
-                    meta: {
-                        title: '检查记录'
-                    }
-                },
-                {
-                    path: '/recordRegulationList',
-                    name: 'RecordRegulationList',
-                    component: () =>
-                        import(/* webpackChunkName: "recordList" */ '@/views/record/RecordRegulationList.vue'),
-                    meta: {
-                        title: '监管管理'
-                    }
-                },
-                {
-                    path: '/recordRegulationHistory',
-                    name: 'RecordRegulationHistory',
+                    path: '/recordOrganizationList',
+                    name: 'RecordOrganizationList',
                     component: () =>
-                        import(/* webpackChunkName: "recordList" */ '@/views/record/RecordRegulationHistory.vue'),
-                    meta: {
-                        title: '监管管理'
-                    }
-                },
-                {
-                    path: '/videoList',
-                    name: 'VideoList',
-                    component: () => import(/* webpackChunkName: "videoList" */ '@/views/record/VideoList.vue'),
+                        import(/* webpackChunkName: "recordList" */ '@/views/record/RecordOrganizationList.vue'),
                     meta: {
-                        title: '视频监控'
+                        title: '备案管理'
                     }
                 },
                 {
-                    path: '/videoOrganizationList',
-                    name: 'VideoOrganizationList',
+                    path: '/recordDistrictList',
+                    name: 'RecordList',
                     component: () =>
-                        import(
-                            /* webpackChunkName: "videoOrganizationList" */ '@/views/record/VideoOrganizationList.vue'
-                        ),
+                        import(/* webpackChunkName: "recordList" */ '@/views/record/RecordDistrictList.vue'),
                     meta: {
-                        title: '视频监控'
+                        title: '备案管理'
                     }
                 },
                 {
@@ -268,15 +265,6 @@ const router = new Router({
                         title: '监管管理'
                     }
                 },
-                {
-                    path: '/recordDistrictList',
-                    name: 'RecordList',
-                    component: () =>
-                        import(/* webpackChunkName: "recordList" */ '@/views/record/RecordDistrictList.vue'),
-                    meta: {
-                        title: '备案管理'
-                    }
-                },
                 {
                     path: '/recordList',
                     name: 'RecordList',
@@ -285,139 +273,120 @@ const router = new Router({
                         title: '备案管理'
                     }
                 },
+                /**监管 */
                 {
-                    path: '/performanceEdit',
-                    name: 'PerformanceEdit',
+                    path: '/recordRegulationList',
+                    name: 'RecordRegulationList',
                     component: () =>
-                        import(/* webpackChunkName: "performanceEdit" */ '@/views/performance/PerformanceEdit.vue'),
+                        import(/* webpackChunkName: "recordList" */ '@/views/record/RecordRegulationList.vue'),
                     meta: {
-                        title: '展演管理编辑'
+                        title: '监管管理'
                     }
                 },
                 {
-                    path: '/performanceList',
-                    name: 'PerformanceList',
-                    component: () =>
-                        import(/* webpackChunkName: "performanceList" */ '@/views/performance/PerformanceList.vue'),
+                    path: '/videoList',
+                    name: 'VideoList',
+                    component: () => import(/* webpackChunkName: "videoList" */ '@/views/record/VideoList.vue'),
                     meta: {
-                        title: '展演管理'
+                        title: '视频监控'
                     }
                 },
                 {
-                    path: '/performanceListShow',
-                    name: 'PerformanceListShow',
+                    path: '/recordRegulationHistory',
+                    name: 'RecordRegulationHistory',
                     component: () =>
-                        import(/* webpackChunkName: "performanceList" */ '@/views/performance/PerformanceListShow.vue'),
+                        import(/* webpackChunkName: "recordList" */ '@/views/record/RecordRegulationHistory.vue'),
                     meta: {
-                        title: '展演列表'
+                        title: '监管管理'
                     }
                 },
                 {
-                    path: '/performanceShow',
-                    name: 'PerformanceShow',
+                    path: '/historyRoomList',
+                    name: 'HistoryRoomList',
                     component: () =>
-                        import(/* webpackChunkName: "performanceShow" */ '@/views/performance/PerformanceShow.vue'),
-                    meta: {
-                        title: '展演详情'
-                    }
-                },
-                {
-                    path: '/rateEdit',
-                    name: 'RateEdit',
-                    component: () => import(/* webpackChunkName: "rateEdit" */ '@/views/rate/RateEdit.vue'),
-                    meta: {
-                        title: '等级评定申请'
-                    }
-                },
-                {
-                    path: '/rateOrganizerList',
-                    name: 'RateOrganizerList',
-                    component: () => import(/* webpackChunkName: "rateList" */ '@/views/rate/RateOrganizerList.vue'),
-                    meta: {
-                        title: '等级评定'
-                    }
-                },
-                {
-                    path: '/rateExpertList',
-                    name: 'RateExpertList',
-                    component: () => import(/* webpackChunkName: "rateList" */ '@/views/rate/RateExpertList.vue'),
+                        import(/* webpackChunkName: "historyRoomList" */ '@/views/video/HistoryRoomList.vue'),
                     meta: {
-                        title: '等级评定'
+                        title: '视频管理'
                     }
                 },
                 {
-                    path: '/rateAudit',
-                    name: 'RateAudit',
-                    component: () => import(/* webpackChunkName: "rateAudit" */ '@/views/rate/RateAudit.vue'),
+                    path: '/recordCheck',
+                    name: 'RecordCheck',
+                    component: () => import(/* webpackChunkName: "recordCheck" */ '@/views/record/RecordCheck.vue'),
                     meta: {
-                        title: '等级评定申请'
+                        title: '检查记录'
                     }
                 },
                 {
-                    path: '/rateGrade',
-                    name: 'RateGrade',
-                    component: () => import(/* webpackChunkName: "rateGrade" */ '@/views/rate/RateGrade.vue'),
+                    path: '/echarts',
+                    name: 'echarts',
+                    component: () => import('@/views/Echarts.vue'),
                     meta: {
-                        title: '打分'
+                        title: '地图图表'
                     }
                 },
                 {
-                    path: '/rateDistrictList',
-                    name: 'RateDistrictList',
-                    component: () => import(/* webpackChunkName: "rateList" */ '@/views/rate/RateDistrictList.vue'),
+                    path: '/videoOrganizationList',
+                    name: 'VideoOrganizationList',
+                    component: () =>
+                        import(
+                            /* webpackChunkName: "videoOrganizationList" */ '@/views/record/VideoOrganizationList.vue'
+                        ),
                     meta: {
-                        title: '等级评定'
+                        title: '视频监控'
                     }
                 },
                 {
-                    path: '/rateDistrictListPending',
-                    name: 'RateDistrictListPending',
-                    component: () =>
-                        import(/* webpackChunkName: "rateList" */ '@/views/rate/RateDistrictListPending.vue'),
+                    path: '/examRoomEdit',
+                    name: 'ExamRoomEdit',
+                    component: () => import(/* webpackChunkName: "examRoomEdit" */ '@/views/ExamRoomEdit.vue'),
                     meta: {
-                        title: '申请待办'
+                        title: '考场管理编辑'
                     }
                 },
                 {
-                    path: '/rateDistrictListDone',
-                    name: 'RateDistrictListDone',
-                    component: () => import(/* webpackChunkName: "rateList" */ '@/views/rate/RateDistrictListDone.vue'),
+                    path: '/examRoomList',
+                    name: 'ExamRoomList',
+                    component: () => import(/* webpackChunkName: "examRoomList" */ '@/views/ExamRoomList.vue'),
                     meta: {
-                        title: '申请已办'
+                        title: '考场管理'
                     }
                 },
                 {
-                    path: '/rateList',
-                    name: 'RateList',
-                    component: () => import(/* webpackChunkName: "rateList" */ '@/views/rate/RateList.vue'),
+                    path: '/showRoomList',
+                    name: 'ShowRoomList',
+                    component: () => import(/* webpackChunkName: "showRoomList" */ '@/views/video/ShowRoomList.vue'),
                     meta: {
-                        title: '等级评定'
+                        title: '监控列表'
                     }
                 },
+                /**咨询投诉 */
                 {
-                    path: '/rateListPending',
-                    name: 'RateListPending',
-                    component: () => import(/* webpackChunkName: "rateList" */ '@/views/rate/RateListPending.vue'),
+                    path: '/complainEdit',
+                    name: 'ComplainEdit',
+                    component: () => import(/* webpackChunkName: "complainEdit" */ '@/views/ComplainEdit.vue'),
                     meta: {
-                        title: '申请待办'
+                        title: '咨询投诉编辑'
                     }
                 },
                 {
-                    path: '/rateListDone',
-                    name: 'RateListDone',
-                    component: () => import(/* webpackChunkName: "rateList" */ '@/views/rate/RateListDone.vue'),
+                    path: '/complainShow',
+                    name: 'ComplainShow',
+                    component: () => import(/* webpackChunkName: "complainShow" */ '@/views/ComplainShow.vue'),
                     meta: {
-                        title: '申请完成'
+                        title: '咨询投诉详情'
                     }
                 },
                 {
-                    path: '/rateListRejected',
-                    name: 'RateListRejected',
-                    component: () => import(/* webpackChunkName: "rateList" */ '@/views/rate/RateListRejected.vue'),
+                    path: '/complainList',
+                    name: 'ComplainList',
+                    component: () => import(/* webpackChunkName: "complainList" */ '@/views/ComplainList.vue'),
                     meta: {
-                        title: '驳回记录'
+                        title: '咨询投诉'
                     }
                 },
+                /**等级评定 */
+                /**承办单位 */
                 {
                     path: '/organizationInfo',
                     name: 'OrganizationInfo',
@@ -428,63 +397,46 @@ const router = new Router({
                     }
                 },
                 {
-                    path: '/organizationEdit',
-                    name: 'OrganizationEdit',
+                    path: '/organization',
+                    name: 'organization',
                     component: () =>
-                        import(/* webpackChunkName: "organizationEdit" */ '@/views/organization/OrganizationEdit.vue'),
+                        import(/* webpackChunkName: "organization" */ '@/views/organization/Organization.vue'),
                     meta: {
-                        title: '承办单位编辑'
+                        title: '等级评定'
                     }
                 },
                 {
-                    path: '/organizationList',
-                    name: 'OrganizationList',
+                    path: '/organization1',
+                    name: 'organization1',
                     component: () =>
-                        import(/* webpackChunkName: "organizationList" */ '@/views/organization/OrganizationList.vue'),
-                    meta: {
-                        title: '承办单位'
-                    }
-                },
-                {
-                    path: '/artTypes',
-                    name: 'ArtTypes',
-                    component: () => import(/* webpackChunkName: "artTypes" */ '@/views/ArtTypes.vue'),
-                    meta: {
-                        title: '艺术分类'
-                    }
-                },
-                {
-                    path: '/artTypeEdit',
-                    name: 'ArtTypeEdit',
-                    component: () => import(/* webpackChunkName: "artTypeEdit" */ '@/views/ArtTypeEdit.vue'),
+                        import(/* webpackChunkName: "organization1" */ '@/views/organization/Organization1.vue'),
                     meta: {
-                        title: '艺术分类编辑'
+                        title: '等级评定'
                     }
                 },
+                /**等级评定流程 */
                 {
-                    path: '/artTypeList',
-                    name: 'ArtTypeList',
-                    component: () => import(/* webpackChunkName: "artTypeList" */ '@/views/ArtTypeList.vue'),
+                    path: '/rateEdit',
+                    name: 'RateEdit',
+                    component: () => import(/* webpackChunkName: "rateEdit" */ '@/views/rate/RateEdit.vue'),
                     meta: {
-                        title: '艺术分类'
+                        title: '等级评定申请'
                     }
                 },
                 {
-                    path: '/gradingOrganizationEdit',
-                    name: 'GradingOrganizationEdit',
-                    component: () =>
-                        import(/* webpackChunkName: "gradingOrganizationEdit" */ '@/views/GradingOrganizationEdit.vue'),
+                    path: '/rateAudit',
+                    name: 'RateAudit',
+                    component: () => import(/* webpackChunkName: "rateAudit" */ '@/views/rate/RateAudit.vue'),
                     meta: {
-                        title: '考级机构编辑'
+                        title: '等级评定申请'
                     }
                 },
                 {
-                    path: '/gradingOrganizationList',
-                    name: 'GradingOrganizationList',
-                    component: () =>
-                        import(/* webpackChunkName: "gradingOrganizationList" */ '@/views/GradingOrganizationList.vue'),
+                    path: '/assignExpert',
+                    name: 'assignExpert',
+                    component: () => import(/* webpackChunkName: "assignExpert" */ '@/views/rate/AssignExpert.vue'),
                     meta: {
-                        title: '考级机构'
+                        title: '分配专家组'
                     }
                 },
                 {
@@ -499,117 +451,141 @@ const router = new Router({
                     }
                 },
                 {
-                    path: '/settingEdit',
-                    name: 'SettingEdit',
-                    component: () => import(/* webpackChunkName: "settingEdit" */ '@/views/SettingEdit.vue'),
+                    path: '/gradeList',
+                    name: 'gradeList',
+                    component: () => import(/* webpackChunkName: "gradeList" */ '@/views/rate/GradeList.vue'),
                     meta: {
-                        title: '设置编辑'
+                        title: '评分'
                     }
                 },
                 {
-                    path: '/settings',
-                    name: 'Settings',
-                    component: () => import(/* webpackChunkName: "settingList" */ '@/views/Settings.vue'),
+                    path: '/rateExpertList',
+                    name: 'RateExpertList',
+                    component: () => import(/* webpackChunkName: "rateList" */ '@/views/rate/RateExpertList.vue'),
                     meta: {
-                        title: '设置'
+                        title: '等级评定'
                     }
                 },
                 {
-                    path: '/operationLogList',
-                    name: 'OperationLogList',
-                    component: () => import(/* webpackChunkName: "operationLogList" */ '@/views/OperationLogList.vue'),
+                    path: '/rateGrade',
+                    name: 'RateGrade',
+                    component: () => import(/* webpackChunkName: "rateGrade" */ '@/views/rate/RateGrade.vue'),
                     meta: {
-                        title: '操作日志'
+                        title: '打分'
                     }
                 },
+                /**等级评定列表 */
                 {
-                    path: '/exceptionLogList',
-                    name: 'ExceptionLogList',
-                    component: () => import(/* webpackChunkName: "exceptionLogList" */ '@/views/ExceptionLogList.vue'),
+                    path: '/rateOrganizerList',
+                    name: 'RateOrganizerList',
+                    component: () => import(/* webpackChunkName: "rateList" */ '@/views/rate/RateOrganizerList.vue'),
                     meta: {
-                        title: '异常日志'
+                        title: '等级评定'
                     }
                 },
                 {
-                    path: '/examRoomEdit',
-                    name: 'ExamRoomEdit',
-                    component: () => import(/* webpackChunkName: "examRoomEdit" */ '@/views/ExamRoomEdit.vue'),
+                    path: '/rateDistrictList',
+                    name: 'RateDistrictList',
+                    component: () => import(/* webpackChunkName: "rateList" */ '@/views/rate/RateDistrictList.vue'),
                     meta: {
-                        title: '考场管理编辑'
+                        title: '等级评定'
                     }
                 },
                 {
-                    path: '/examRoomList',
-                    name: 'ExamRoomList',
-                    component: () => import(/* webpackChunkName: "examRoomList" */ '@/views/ExamRoomList.vue'),
+                    path: '/rateDistrictListPending',
+                    name: 'RateDistrictListPending',
+                    component: () =>
+                        import(/* webpackChunkName: "rateList" */ '@/views/rate/RateDistrictListPending.vue'),
                     meta: {
-                        title: '考场管理'
+                        title: '申请待办'
                     }
                 },
                 {
-                    path: '/historyRoomList',
-                    name: 'HistoryRoomList',
-                    component: () =>
-                        import(/* webpackChunkName: "historyRoomList" */ '@/views/video/HistoryRoomList.vue'),
+                    path: '/rateDistrictListDone',
+                    name: 'RateDistrictListDone',
+                    component: () => import(/* webpackChunkName: "rateList" */ '@/views/rate/RateDistrictListDone.vue'),
                     meta: {
-                        title: '视频管理'
+                        title: '申请已办'
                     }
                 },
                 {
-                    path: '/showRoomList',
-                    name: 'ShowRoomList',
-                    component: () => import(/* webpackChunkName: "showRoomList" */ '@/views/video/ShowRoomList.vue'),
+                    path: '/rateList',
+                    name: 'RateList',
+                    component: () => import(/* webpackChunkName: "rateList" */ '@/views/rate/RateList.vue'),
                     meta: {
-                        title: '监控列表'
+                        title: '等级评定'
                     }
                 },
                 {
-                    path: '/recordInfo',
-                    name: 'RecordInfo',
-                    component: () => import(/* webpackChunkName: "recordInfo" */ '@/views/record/RecordInfo.vue'),
+                    path: '/rateListPending',
+                    name: 'RateListPending',
+                    component: () => import(/* webpackChunkName: "rateList" */ '@/views/rate/RateListPending.vue'),
                     meta: {
-                        title: '备案管理'
+                        title: '申请待办'
                     }
                 },
                 {
-                    path: '/complainEdit',
-                    name: 'ComplainEdit',
-                    component: () => import(/* webpackChunkName: "complainEdit" */ '@/views/ComplainEdit.vue'),
+                    path: '/rateListDone',
+                    name: 'RateListDone',
+                    component: () => import(/* webpackChunkName: "rateList" */ '@/views/rate/RateListDone.vue'),
                     meta: {
-                        title: '咨询投诉编辑'
+                        title: '申请已办'
                     }
                 },
                 {
-                    path: '/complainShow',
-                    name: 'ComplainShow',
-                    component: () => import(/* webpackChunkName: "complainShow" */ '@/views/ComplainShow.vue'),
+                    path: '/rateListRejected',
+                    name: 'RateListRejected',
+                    component: () => import(/* webpackChunkName: "rateList" */ '@/views/rate/RateListRejected.vue'),
                     meta: {
-                        title: '咨询投诉详情'
+                        title: '驳回记录'
                     }
                 },
+                /**展演 */
+                /**活动信息 */
                 {
-                    path: '/complainList',
-                    name: 'ComplainList',
-                    component: () => import(/* webpackChunkName: "complainList" */ '@/views/ComplainList.vue'),
+                    path: '/performanceEdit',
+                    name: 'PerformanceEdit',
+                    component: () =>
+                        import(/* webpackChunkName: "performanceEdit" */ '@/views/performance/PerformanceEdit.vue'),
                     meta: {
-                        title: '咨询投诉'
+                        title: '展演管理编辑'
+                    }
+                },
+                {
+                    path: '/performanceList',
+                    name: 'PerformanceList',
+                    component: () =>
+                        import(/* webpackChunkName: "performanceList" */ '@/views/performance/PerformanceList.vue'),
+                    meta: {
+                        title: '展演管理'
                     }
                 },
                 {
-                    path: '/recordExpertEdit',
-                    name: 'RecordExpertEdit',
-                    component: () => import(/* webpackChunkName: "recordExpertEdit" */ '@/views/RecordExpertEdit.vue'),
+                    path: '/performanceListShow',
+                    name: 'PerformanceListShow',
+                    component: () =>
+                        import(/* webpackChunkName: "performanceList" */ '@/views/performance/PerformanceListShow.vue'),
                     meta: {
-                        title: '考级专业考官编辑'
+                        title: '展演列表'
                     }
                 },
                 {
-                    path: '/programmeShow',
-                    name: 'ProgrammeShow',
+                    path: '/performanceShow',
+                    name: 'PerformanceShow',
                     component: () =>
-                        import(/* webpackChunkName: "programmeShow" */ '@/views/performance/ProgrammeShow.vue'),
+                        import(/* webpackChunkName: "performanceShow" */ '@/views/performance/PerformanceShow.vue'),
                     meta: {
-                        title: '节目详情'
+                        title: '展演详情'
+                    }
+                },
+                /**节目初审 */
+                {
+                    path: '/programmeOrgList',
+                    name: 'ProgrammeOrgList',
+                    component: () =>
+                        import(/* webpackChunkName: "programmeOrgList" */ '@/views/performance/ProgrammeOrgList.vue'),
+                    meta: {
+                        title: '节目管理'
                     }
                 },
                 {
@@ -631,47 +607,54 @@ const router = new Router({
                     }
                 },
                 {
-                    path: '/programmeResultList',
-                    name: 'ProgrammeResultList',
+                    path: '/programmeShow',
+                    name: 'ProgrammeShow',
                     component: () =>
-                        import(
-                            /* webpackChunkName: "programmeResultList" */ '@/views/performance/ProgrammeResultList.vue'
-                        ),
+                        import(/* webpackChunkName: "programmeShow" */ '@/views/performance/ProgrammeShow.vue'),
                     meta: {
-                        title: '节目获奖'
+                        title: '节目详情'
                     }
                 },
                 {
-                    path: '/programmeOrgList',
-                    name: 'ProgrammeOrgList',
+                    path: '/arrangeList',
+                    name: 'ArrangeList',
                     component: () =>
-                        import(/* webpackChunkName: "programmeOrgList" */ '@/views/performance/ProgrammeOrgList.vue'),
+                        import(/* webpackChunkName: "arrangeList" */ '@/views/performance/ArrangeList.vue'),
                     meta: {
-                        title: '节目管理'
+                        title: '节目编排'
                     }
                 },
                 {
-                    path: '/programmeGroupList',
-                    name: 'ProgrammeGroupList',
+                    path: '/progGroupOnlineList',
+                    name: 'ProgGroupOnlineList',
                     component: () =>
                         import(
-                            /* webpackChunkName: "programmeGroupList" */ '@/views/performance/ProgrammeGroupList.vue'
+                            /* webpackChunkName: "progGroupOnlineList" */ '@/views/performance/ProgGroupOnlineList.vue'
                         ),
                     meta: {
                         title: '节目分组'
                     }
                 },
                 {
-                    path: '/progGroupOnlineList',
-                    name: 'ProgGroupOnlineList',
+                    path: '/programmeGroupList',
+                    name: 'ProgrammeGroupList',
                     component: () =>
                         import(
-                            /* webpackChunkName: "progGroupOnlineList" */ '@/views/performance/ProgGroupOnlineList.vue'
+                            /* webpackChunkName: "programmeGroupList" */ '@/views/performance/ProgrammeGroupList.vue'
                         ),
                     meta: {
                         title: '节目分组'
                     }
                 },
+                {
+                    path: '/arrangeJudgeList',
+                    name: 'ArrangeJudgeList',
+                    component: () =>
+                        import(/* webpackChunkName: "arrangeJudgeList" */ '@/views/performance/ArrangeJudgeList.vue'),
+                    meta: {
+                        title: '分配评委'
+                    }
+                },
                 {
                     path: '/programmeSignList',
                     name: 'ProgrammeSignList',
@@ -700,109 +683,103 @@ const router = new Router({
                             /* webpackChunkName: "progScoreAdminList" */ '@/views/performance/ProgScoreAdminList.vue'
                         ),
                     meta: {
-                        title: '得分列表'
+                        title: '节目评审'
                     }
                 },
                 {
-                    path: '/participantEdit',
-                    name: 'ParticipantEdit',
+                    path: '/programmeAwardEdit',
+                    name: 'ProgrammeAwardEdit',
                     component: () =>
-                        import(/* webpackChunkName: "participantEdit" */ '@/views/performance/ParticipantEdit.vue'),
+                        import(
+                            /* webpackChunkName: "programmeAwardEdit" */ '@/views/performance/ProgrammeAwardEdit.vue'
+                        ),
                     meta: {
-                        title: '参演人员编辑'
+                        title: '奖项设置编辑'
                     }
                 },
                 {
-                    path: '/participantList',
-                    name: 'ParticipantList',
+                    path: '/programmeAwardList',
+                    name: 'ProgrammeAwardList',
                     component: () =>
-                        import(/* webpackChunkName: "participantList" */ '@/views/performance/ParticipantList.vue'),
+                        import(
+                            /* webpackChunkName: "programmeAwardList" */ '@/views/performance/ProgrammeAwardList.vue'
+                        ),
                     meta: {
-                        title: '参演人员'
+                        title: '奖项设置'
                     }
                 },
                 {
-                    path: '/arrangeEdit',
-                    name: 'ArrangeEdit',
+                    path: '/programmeResultList',
+                    name: 'ProgrammeResultList',
                     component: () =>
-                        import(/* webpackChunkName: "arrangeEdit" */ '@/views/performance/ArrangeEdit.vue'),
+                        import(
+                            /* webpackChunkName: "programmeResultList" */ '@/views/performance/ProgrammeResultList.vue'
+                        ),
                     meta: {
-                        title: '节目编排编辑'
+                        title: '节目获奖'
                     }
                 },
+                /**展演复审 */
                 {
-                    path: '/arrangeList',
-                    name: 'ArrangeList',
+                    path: '/programmeReviewList',
+                    name: 'ProgrammeList',
                     component: () =>
-                        import(/* webpackChunkName: "arrangeList" */ '@/views/performance/ArrangeList.vue'),
+                        import(/* webpackChunkName: "programmeList" */ '@/views/performance/review/ProgrammeList.vue'),
                     meta: {
-                        title: '节目编排'
+                        title: '节目列表'
                     }
                 },
                 {
-                    path: '/arrangeJudgeList',
-                    name: 'ArrangeJudgeList',
+                    path: '/arrangeReviewList',
+                    name: 'ArrangeList',
                     component: () =>
-                        import(/* webpackChunkName: "arrangeJudgeList" */ '@/views/performance/ArrangeJudgeList.vue'),
-                    meta: {
-                        title: '分配评委'
-                    }
-                },
-                {
-                    path: '/awardEdit',
-                    name: 'AwardEdit',
-                    component: () => import(/* webpackChunkName: "awardEdit" */ '@/views/AwardEdit.vue'),
-                    meta: {
-                        title: '奖项类别设置编辑'
-                    }
-                },
-                {
-                    path: '/awardList',
-                    name: 'AwardList',
-                    component: () => import(/* webpackChunkName: "awardList" */ '@/views/AwardList.vue'),
+                        import(/* webpackChunkName: "arrangeList" */ '@/views/performance/review/ArrangeList.vue'),
                     meta: {
-                        title: '奖项类别设置'
+                        title: '节目编排'
                     }
                 },
                 {
-                    path: '/programmeAwardEdit',
-                    name: 'ProgrammeAwardEdit',
+                    path: '/judgeReviewList',
+                    name: 'ArrangeJudgeList',
                     component: () =>
                         import(
-                            /* webpackChunkName: "programmeAwardEdit" */ '@/views/performance/ProgrammeAwardEdit.vue'
+                            /* webpackChunkName: "arrangeJudgeList" */ '@/views/performance/review/ArrangeJudgeList.vue'
                         ),
                     meta: {
-                        title: '奖项设置编辑'
+                        title: '分配评委'
                     }
                 },
                 {
-                    path: '/programmeAwardList',
-                    name: 'ProgrammeAwardList',
+                    path: '/signReviewList',
+                    name: 'ProgrammeSignList',
                     component: () =>
                         import(
-                            /* webpackChunkName: "programmeAwardList" */ '@/views/performance/ProgrammeAwardList.vue'
+                            /* webpackChunkName: "programmeSignList" */ '@/views/performance/review/ProgrammeSignList.vue'
                         ),
                     meta: {
-                        title: '奖项设置'
+                        title: '节目签到'
                     }
                 },
-                /**复审 */
                 {
-                    path: '/programmeReviewList',
-                    name: 'ProgrammeList',
+                    path: '/scoreReviewList',
+                    name: 'ProgrammeScoreList',
                     component: () =>
-                        import(/* webpackChunkName: "programmeList" */ '@/views/performance/review/ProgrammeList.vue'),
+                        import(
+                            /* webpackChunkName: "programmeScoreList" */ '@/views/performance/review/ProgrammeScoreList.vue'
+                        ),
                     meta: {
-                        title: '节目列表'
+                        title: '节目评审'
                     }
                 },
                 {
-                    path: '/arrangeReviewList',
-                    name: 'ArrangeList',
+                    path: '/scoreAdminReviewList',
+                    name: 'ProgScoreAdminList',
                     component: () =>
-                        import(/* webpackChunkName: "arrangeList" */ '@/views/performance/review/ArrangeList.vue'),
+                        import(
+                            /* webpackChunkName: "progScoreAdminList" */ '@/views/performance/review/ProgScoreAdminList.vue'
+                        ),
                     meta: {
-                        title: '节目编排'
+                        title: '节目评审'
                     }
                 }
                 /**INSERT_LOCATION**/

+ 18 - 12
src/main/vue/src/views/performance/ArrangeJudgeList.vue

@@ -22,7 +22,7 @@
                 <el-form-item>
                     <el-button type="primary" @click="getData">查询</el-button>
                 </el-form-item>
-                <div v-if="!onlines">
+                <div v-if="!online">
                     <el-collapse-transition>
                         <div v-show="showMore">
                             <el-card shadow="hover" :body-style="{ padding: '20px' }" style="margin-bottom: 20px">
@@ -42,15 +42,16 @@
                                         </el-form-item>
                                     </el-col>
                                     <el-col :span="12" :offset="0">
-                                        <el-form-item prop="address" class="flex" label="活动地点" style="width: 100%">
-                                            <el-select v-model="form.address">
+                                        <el-form-item prop="address" class="flex" label="活动地点">
+                                            <!-- <el-select v-model="form.address">
                                                 <el-option
                                                     v-for="(item, index) in addresses"
                                                     :key="index"
                                                     :value="item.value"
                                                     :label="item.value"
                                                 ></el-option>
-                                            </el-select>
+                                            </el-select> -->
+                                            <el-input v-model="form.address" style="width: 316px"></el-input>
                                         </el-form-item>
                                     </el-col>
                                     <el-col :span="12" :offset="0">
@@ -78,7 +79,7 @@
             </el-form>
         </div>
         <el-table
-            v-if="!onlines"
+            v-if="!online"
             :data="tableData"
             empty-text="暂无数据"
             row-key="id"
@@ -115,7 +116,7 @@
         </el-table>
 
         <el-table
-            v-if="onlines"
+            v-if="online"
             :data="tableData"
             style="margin-top:20px"
             empty-text="暂无数据"
@@ -179,6 +180,7 @@ import delChild from '@/mixins/delChild';
 export default {
     name: 'ArrangeJudgeList',
     mixins: [pageableTable, delChild],
+    props: ['review'],
     components: { OrganLog },
     data() {
         return {
@@ -190,7 +192,7 @@ export default {
             downloading: false,
             form: {},
             performances: [],
-            onlines: '',
+            online: true,
             addresses: [],
             dateRange: '',
             rules: {
@@ -205,8 +207,7 @@ export default {
                 { label: '集体', value: 'COLLECTIVE' }
             ],
             columnKeys: ['date', 'morning', 'address'],
-            addressList: [],
-            activeNames: []
+            addressList: []
         };
     },
     created() {
@@ -223,8 +224,10 @@ export default {
                 { body: 'json' }
             )
             .then(res => {
-                this.onlines = res.content[0].online;
-                // console.log(this.onlines);
+                this.online = res.content[0].online;
+                if (this.review) {
+                    this.online = res.content[0].reviewOnline;
+                }
                 if (res.content.length > 0) {
                     res.content.forEach(item => {
                         this.performances.push({
@@ -325,7 +328,7 @@ export default {
             let data = {
                 search: this.search,
                 sort: 'date,asc;startTime,asc',
-                query: { performanceId: this.form.performanceId }
+                query: { performanceId: this.form.performanceId, auditTimes: 1 }
             };
             if (this.form.address) {
                 data.query.address = this.form.address;
@@ -338,6 +341,9 @@ export default {
             } else if (this.form.afternoon && !this.form.morning) {
                 data.query.morning = false;
             }
+            if (this.review) {
+                data.query.auditTimes = 2;
+            }
             return data;
         },
         toggleMultipleMode(multipleMode) {

+ 40 - 21
src/main/vue/src/views/performance/ArrangeList.vue

@@ -52,7 +52,8 @@
                                             <el-checkbox v-model="form.morning" disabled>上午</el-checkbox>
                                             <el-time-select
                                                 placeholder="起始时间"
-                                                format="HH:mm"
+                                                format="HH:mm:ss"
+                                                value-format="HH:mm:ss"
                                                 v-model="timeRange[0]"
                                                 :picker-options="{
                                                     start: '08:30',
@@ -64,7 +65,7 @@
                                             </el-time-select>
                                             <el-time-select
                                                 placeholder="结束时间"
-                                                format="HH:mm"
+                                                format="HH:mm:ss"
                                                 v-model="timeRange[1]"
                                                 :picker-options="{
                                                     start: '08:30',
@@ -96,7 +97,7 @@
 
                                             <el-time-select
                                                 placeholder="起始时间"
-                                                format="HH:mm"
+                                                format="HH:mm:ss"
                                                 value-format="HH:mm:ss"
                                                 v-model="afterTimeRange[0]"
                                                 :picker-options="{
@@ -109,6 +110,7 @@
                                             </el-time-select>
                                             <el-time-select
                                                 placeholder="结束时间"
+                                                format="HH:mm:ss"
                                                 v-model="afterTimeRange[1]"
                                                 :picker-options="{
                                                     start: '13:00',
@@ -295,7 +297,6 @@ import pageableTable from '@/mixins/pageableTable';
 import ArrangeLog from '../../components/ArrangeLog';
 import { time } from 'echarts';
 import delChild from '@/mixins/delChild';
-import { format, parse } from 'date-fns';
 
 export default {
     name: 'ArrangeList',
@@ -333,7 +334,7 @@ export default {
     watch: {
         timeRange(value) {
             let checked = value.includes(null);
-            console.log(value[0]);
+            // console.log(value[0] + ':00');
             this.form.morning = !checked;
             this.$refs.form.validateField('afternoon');
         },
@@ -491,19 +492,37 @@ export default {
         },
         programme(row) {
             if (this.online) {
-                this.$router.push({
-                    path: '/progGroupOnlineList',
-                    query: {
-                        aid: row.id
-                    }
-                });
+                if (this.review) {
+                    this.$router.push({
+                        path: '/progGroupOnlineList',
+                        query: {
+                            arid: row.id
+                        }
+                    });
+                } else {
+                    this.$router.push({
+                        path: '/progGroupOnlineList',
+                        query: {
+                            aid: row.id
+                        }
+                    });
+                }
             } else {
-                this.$router.push({
-                    path: '/programmeGroupList',
-                    query: {
-                        aid: row.id
-                    }
-                });
+                if (this.review) {
+                    this.$router.push({
+                        path: '/programmeGroupList',
+                        query: {
+                            arid: row.id
+                        }
+                    });
+                } else {
+                    this.$router.push({
+                        path: '/programmeGroupList',
+                        query: {
+                            aid: row.id
+                        }
+                    });
+                }
             }
         },
         download() {
@@ -567,10 +586,10 @@ export default {
             let data = { ...this.form };
             data.startDate = this.dateRange[0];
             data.endDate = this.dateRange[1];
-            data.morningStartTime = this.timeRange[0];
-            data.morningEndTime = this.timeRange[1];
-            data.afternoonStartTime = this.afterTimeRange[0];
-            data.afternoonEndTime = this.afterTimeRange[1];
+            data.morningStartTime = this.timeRange[0] + ':00';
+            data.morningEndTime = this.timeRange[1] + ':00';
+            data.afternoonStartTime = this.afterTimeRange[0] + ':00';
+            data.afternoonEndTime = this.afterTimeRange[1] + ':00';
 
             this.saving = true;
             this.$http

+ 7 - 1
src/main/vue/src/views/performance/ProgScoreAdminList.vue

@@ -206,6 +206,7 @@ import ReviewLog from '../../components/ReviewLog';
 export default {
     name: 'ProgScoreAdminList',
     mixins: [pageableTable, delChild],
+    props: ['review'],
     components: { ReviewLog },
     data() {
         return {
@@ -303,11 +304,16 @@ export default {
         beforeGetData() {
             let data = {
                 sort: 'score,desc',
-                query: {}
+                query: {
+                    programmeStatus: ['SUBMIT']
+                }
             };
             if (this.performanceId) {
                 data.query.performanceId = this.performanceId;
             }
+            if (!this.review) {
+                data.query.programmeStatus.push('REVIEW_FAILED');
+            }
             return data;
         },
         toggleMultipleMode(multipleMode) {

+ 23 - 11
src/main/vue/src/views/performance/ProgrammeGroupList.vue

@@ -175,13 +175,17 @@ export default {
             arrange: [],
             showProgramme: false,
             unGrouped: [],
-            performanceId: ''
+            performanceId: '',
+            arrangeId: ''
         };
     },
     created() {
         if (this.$route.query.aid) {
-            this.getArrange(this.$route.query.aid);
+            this.arrangeId = this.$route.query.aid;
+        } else if (this.$route.query.arid) {
+            this.arrangeId = this.$route.query.arid;
         }
+        this.getArrange(this.arrangeId);
     },
     computed: {
         selection() {
@@ -199,10 +203,14 @@ export default {
         beforeGetData() {
             let data = {
                 sort: 'gradingOrganizationId,asc;organizationId,asc;',
-                query: {
-                    arrangeId: Number(this.$route.query.aid)
-                }
+                query: {}
             };
+            if (this.$route.query.aid) {
+                data.query.arrangeId = Number(this.$route.query.aid);
+            }
+            if (this.$route.query.arid) {
+                data.query.reviewArrangeId = Number(this.$route.query.arid);
+            }
             return data;
         },
         toggleMultipleMode(multipleMode) {
@@ -224,10 +232,14 @@ export default {
 
             let data = {
                 sort: 'gradingOrganizationId,asc;organizationId,asc;',
-                query: {
-                    arrangeId: Number(this.$route.query.aid)
-                }
+                query: {}
             };
+            if (this.$route.query.aid) {
+                data.query.arrangeId = Number(this.$route.query.aid);
+            }
+            if (this.$route.query.arid) {
+                data.query.reviewArrangeId = Number(this.$route.query.arid);
+            }
 
             this.$axios
                 .get('/programme/excel', {
@@ -267,7 +279,7 @@ export default {
                 })
                 .then(() => {
                     this.$message.success('移除成功');
-                    this.getArrange(this.$route.query.aid);
+                    this.getArrange(this.arrangeId);
                     this.getData();
                 })
                 .catch(e => {
@@ -328,11 +340,11 @@ export default {
         },
         choose(row) {
             this.$http
-                .post('/programme/intoGroup', { id: row.id, arrangeId: this.$route.query.aid })
+                .post('/programme/intoGroup', { id: row.id, arrangeId: this.arrangeId })
                 .then(res => {
                     this.showProgramme = false;
                     this.$message.success('添加成功');
-                    this.getArrange(this.$route.query.aid);
+                    this.getArrange(this.arrangeId);
                     this.getData();
                 })
                 .catch(e => {

+ 0 - 432
src/main/vue/src/views/performance/ProgrammeScoreList copy.vue

@@ -1,432 +0,0 @@
-<template>
-    <div class="list-view">
-        <div class="filters-container">
-            <el-form :model="form" size="mini" inline>
-                <el-row>
-                    <el-col :span="24">
-                        <el-form-item label="活动名称">
-                            <el-select
-                                v-model="performanceId"
-                                clearable
-                                filterable
-                                placeholder="活动名称"
-                                style="width: 300px"
-                                @change="changeAddress"
-                            >
-                                <el-option
-                                    v-for="item in performances"
-                                    :key="item.value"
-                                    :label="item.label"
-                                    :value="item.value"
-                                >
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item>
-                            <el-button @click="getData" type="primary" icon="el-icon-search">查询 </el-button>
-                        </el-form-item>
-                    </el-col>
-                    <el-form-item label="活动日期">
-                        <el-date-picker v-model="date" type="date" placeholder="选择日期" class="filter-item">
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item label="时间">
-                        <el-radio-group v-model="morning" @change="getData" class="filter-item">
-                            <el-radio-button :label="true">上午</el-radio-button>
-                            <el-radio-button :label="false">下午</el-radio-button>
-                        </el-radio-group>
-                    </el-form-item>
-                    <el-form-item label="活动地点">
-                        <el-select v-model="form.address" class="filter-item">
-                            <el-option
-                                v-for="(item, index) in addresses"
-                                :key="index"
-                                :value="item.value"
-                                :label="item.value"
-                            ></el-option>
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item label="评审专家"></el-form-item>
-                </el-row>
-            </el-form>
-        </div>
-        <el-table
-            :data="tableData"
-            row-key="id"
-            ref="table"
-            header-row-class-name="table-header-row"
-            header-cell-class-name="table-header-cell"
-            row-class-name="table-row"
-            cell-class-name="table-cell"
-            :height="tableHeight"
-            :span-method="objectSpanMethod"
-        >
-            <el-table-column v-if="multipleMode" align="center" type="selection" width="50"> </el-table-column>
-            <!-- <el-table-column prop="id" label="ID" width="100"> </el-table-column> -->
-            <el-table-column prop="arrangeName" label="分组" min-width="160"> </el-table-column>
-            <el-table-column prop="name" label="节目名称" min-width="70"> </el-table-column>
-            <el-table-column prop="specialty" label="参赛专业"> </el-table-column>
-            <el-table-column prop="participant" label="参赛人员" show-overflow-tooltip>
-                <template slot-scope="{ row }">{{ row.participant.join(',') }}</template>
-            </el-table-column>
-            <el-table-column prop="quantity" label="表演人数" min-width="70"> </el-table-column>
-            <el-table-column prop="signedIn" label="状态" :formatter="signedInFormatter"> </el-table-column>
-            <el-table-column prop="score" label="成绩"> </el-table-column>
-            <el-table-column prop="myScore" label="评分" align="center" min-width="120">
-                <template slot-scope="{ row }">
-                    <span v-if="row.second">{{ row.myScore }}</span>
-                    <el-input-number
-                        v-else
-                        v-model="row.myScore"
-                        size="mini"
-                        label=""
-                        :min="0"
-                        :max="100"
-                        :step="1"
-                        :controls="true"
-                        controls-position="both"
-                        @change="saveScore(row)"
-                    >
-                    </el-input-number>
-                </template>
-            </el-table-column>
-            <el-table-column prop="remark" label="备注" align="center" min-width="120">
-                <template slot-scope="{ row }">
-                    <span v-if="row.second">{{ row.myScore }}</span>
-                    <el-input
-                        v-else
-                        size="mini"
-                        @change="saveScore(row)"
-                        v-model="row.remark"
-                        placeholder="请输入备注"
-                        clearable
-                    ></el-input>
-                </template>
-            </el-table-column>
-            <!-- <el-table-column label="操作" align="left" fixed="right" min-width="100">
-                <template slot-scope="{ row }">
-                    <el-button @click="showSign(row)" size="mini" plain type="primary">签到处理</el-button>
-                </template>
-            </el-table-column> -->
-        </el-table>
-        <div class="pagination-wrapper">
-            <!-- <div class="multiple-mode-wrapper">
-                <el-button v-if="!multipleMode" @click="toggleMultipleMode(true)">批量编辑</el-button>
-                <el-button-group v-else>
-                    <el-button @click="operation1">批量操作1</el-button>
-                    <el-button @click="operation2">批量操作2</el-button>
-                    <el-button @click="toggleMultipleMode(false)">取消</el-button>
-                </el-button-group>
-            </div> -->
-            <el-pagination
-                background
-                @size-change="onSizeChange"
-                @current-change="onCurrentChange"
-                :current-page="page"
-                :page-sizes="[10, 20, 30, 40, 50]"
-                :page-size="pageSize"
-                layout="total, sizes, prev, pager, next, jumper"
-                :total="totalElements"
-            >
-            </el-pagination>
-        </div>
-    </div>
-</template>
-<script>
-import delChild from '@/mixins/delChild';
-import { mapState } from 'vuex';
-import pageableTable from '@/mixins/pageableTable';
-import QrcodeVue from 'qrcode.vue';
-import { format, isSameDay, startOfDay } from 'date-fns';
-import endOfDay from 'date-fns/endOfDay';
-import addHours from 'date-fns/addHours';
-
-export default {
-    name: 'ProgrammeScoreList',
-    mixins: [pageableTable, delChild],
-    data() {
-        return {
-            multipleMode: false,
-            search: '',
-            url: '/programme/byScore',
-            downloading: false,
-            form: {},
-            dialogSign: false,
-            performanceId: '',
-            performances: [],
-            signedInOptions: [
-                { label: '已签到', value: 'SIGNED_IN' },
-                { label: '未签到', value: 'UNSIGNED' },
-                { label: '已调整', value: 'ADJUSTED' }
-            ],
-            signForm: {},
-            addresses: [],
-            morning: true,
-            date: new Date(),
-            columnKeys: ['arrangeName'],
-            addressList: []
-        };
-    },
-    created() {
-        this.morning = isSameDay(addHours(new Date(), 12), new Date());
-
-        this.$http
-            .post(
-                '/performance/all',
-                {
-                    size: 1000,
-                    sort: 'year,desc',
-                    query: {
-                        publish: true
-                    }
-                },
-                { body: 'json' }
-            )
-            .then(res => {
-                if (res.content.length > 0) {
-                    res.content.forEach(item => {
-                        this.performances.push({
-                            label: item.name,
-                            value: item.id
-                        });
-                    });
-                    this.$http
-                        .post('/performanceSchedule/all', { size: 100 }, { body: 'json' })
-                        .then(res => {
-                            if (res.content.length > 0) {
-                                res.content.forEach(item => {
-                                    this.addressList.push({
-                                        value: item.address,
-                                        pid: item.performanceId
-                                    });
-                                });
-                            }
-                        })
-                        .catch(e => {
-                            console.log(e);
-                            this.$message.error(e.error);
-                        });
-                }
-            })
-            .catch(e => {
-                console.log(e);
-                this.$message.error(e.error);
-            });
-    },
-    computed: {
-        selection() {
-            return this.$refs.table.selection.map(i => i.id);
-        },
-        showTable() {
-            return this.backMap(this.tableData);
-        }
-    },
-    methods: {
-        signedInFormatter(row, column, cellValue, index) {
-            let selectedOption = this.signedInOptions.find(i => i.value === cellValue);
-            if (selectedOption) {
-                return selectedOption.label;
-            }
-            return '';
-        },
-        beforeGetData() {
-            let data = {
-                query: {}
-            };
-            if (this.performanceId) {
-                data.query.performanceId = this.performanceId;
-            }
-            if (this.date) {
-                if (this.morning) {
-                    data.query.showBegin = [
-                        format(startOfDay(this.date), 'yyyy-MM-dd HH:mm:ss'),
-                        format(this.date, 'yyyy-MM-dd') + ' 12:00:00'
-                    ].join(',');
-                } else {
-                    data.query.showBegin = [
-                        format(this.date, 'yyyy-MM-dd') + ' 12:00:00',
-                        format(endOfDay(this.date), 'yyyy-MM-dd HH:mm:ss')
-                    ].join(',');
-                }
-            }
-
-            return data;
-        },
-        toggleMultipleMode(multipleMode) {
-            this.multipleMode = multipleMode;
-            if (!multipleMode) {
-                this.$refs.table.clearSelection();
-            }
-        },
-        showSign(row) {
-            this.dialogSign = true;
-            this.signForm.id = row.id;
-        },
-        operation1() {
-            this.$notify({
-                title: '提示',
-                message: this.selection
-            });
-        },
-        operation2() {
-            this.$message('操作2');
-        },
-        signIn() {
-            this.$alert('确认签到?', '提示', { type: 'primary' })
-                .then(() => {
-                    return this.$http.post('/programme/signIn', {
-                        id: this.signForm.id,
-                        signedIn: this.signForm.signedIn,
-                        description: this.signForm.description
-                    });
-                })
-                .then(() => {
-                    this.$message.success('签到成功');
-                    this.dialogSign = false;
-                    this.getData();
-                })
-                .catch(e => {
-                    if (e !== 'cancel') {
-                        this.$message.error(e.error);
-                    }
-                });
-        },
-        saveScore(row) {
-            if (!row.myScore) {
-                this.$message.warning('请输入评分');
-                return;
-            }
-            this.$http
-                .post('/programmeScore/saveScore?programmeId=' + row.id, {
-                    score: row.myScore,
-                    remark: row.remark
-                })
-                .then(res => {
-                    this.$message.success('评分成功');
-                    this.getData();
-                })
-                .catch(e => {
-                    this.$message.error(e.error);
-                });
-        },
-        backMap(list, key = 'arrangeName', preActive = 0) {
-            let _map = new Map();
-            list.forEach((item, index) => {
-                let info = {
-                    active: index + preActive,
-                    childNum: 1,
-                    list: []
-                };
-                if (_map.has(item[key])) {
-                    info = _map.get(item[key]);
-                    info.list.push(item);
-                    info.childNum = info.list.length;
-                } else {
-                    info.list.push(item);
-                }
-
-                _map.set(item[key], info);
-            });
-
-            let keyIndex = this.columnKeys.indexOf(key);
-            if (keyIndex !== this.columnKeys.length - 1) {
-                [..._map.keys()].forEach(item => {
-                    let info = _map.get(item);
-                    let childMap = this.backMap(info.list, this.columnKeys[keyIndex + 1], info.active);
-                    _map.set(item, {
-                        ...info,
-                        childMap: childMap
-                    });
-                });
-            }
-
-            return _map;
-        },
-        getInfo(mapInfo = new Map(), keys = ['date']) {
-            let info = {};
-            keys.forEach(item => {
-                if (mapInfo.has(item)) {
-                    info = mapInfo.get(item);
-                    mapInfo = mapInfo.get(item).childMap;
-                }
-            });
-            return info;
-        },
-        objectSpanMethod({ row, column, rowIndex, columnIndex }) {
-            let keyIndex = columnIndex;
-            // if (column.label === '操作') {
-            //     keyIndex = 2;
-            // }
-
-            if (keyIndex < this.columnKeys.length) {
-                let keys = [...this.columnKeys].slice(0, keyIndex + 1).map(item => {
-                    return row[item];
-                });
-                let info = this.getInfo(this.showTable, keys);
-                if (rowIndex === info.active) {
-                    return {
-                        rowspan: info.childNum,
-                        colspan: 1
-                    };
-                } else {
-                    return {
-                        rowspan: 0,
-                        colspan: 0
-                    };
-                }
-            }
-        }
-    }
-};
-</script>
-<style lang="less" scoped>
-.right {
-    float: right;
-}
-/deep/.el-form-item--mini.el-form-item,
-.el-form-item--small.el-form-item {
-    margin-bottom: 10px;
-}
-.videoDialog {
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    .el-dialog {
-        max-width: 900px;
-        margin-top: 0px;
-
-        .close {
-            position: absolute;
-            right: 0px;
-            top: -42px;
-            width: 71px;
-            height: 32px;
-            background: #00000015;
-
-            font-size: 12px;
-            color: #fdffff;
-            line-height: 32px;
-            text-align: center;
-            cursor: pointer;
-
-            &:hover {
-                background: #00000055;
-            }
-        }
-    }
-    .el-dialog__header {
-        display: none;
-    }
-
-    .el-dialog__body {
-        padding: 0;
-
-        video {
-            display: block;
-            height: auto;
-            width: 100%;
-            outline: none;
-        }
-    }
-}
-</style>

+ 20 - 6
src/main/vue/src/views/performance/ProgrammeScoreList.vue

@@ -26,7 +26,7 @@
                             <el-button @click="getData" type="primary" icon="el-icon-search">查询 </el-button>
                         </el-form-item>
                     </el-col>
-                    <div v-if="!performance.online">
+                    <div v-if="!online">
                         <el-form-item label="活动日期">
                             <el-date-picker v-model="date" type="date" placeholder="选择日期" class="filter-item">
                             </el-date-picker>
@@ -72,7 +72,7 @@
                 <template slot-scope="{ row }">{{ row.participant.join(',') }}</template>
             </el-table-column>
             <el-table-column prop="quantity" label="表演人数" min-width="70"> </el-table-column>
-            <el-table-column prop="signedIn" label="状态" :formatter="signedInFormatter" v-if="!performance.online">
+            <el-table-column prop="signedIn" label="状态" :formatter="signedInFormatter" v-if="!online">
             </el-table-column>
             <el-table-column prop="score" label="成绩"> </el-table-column>
             <el-table-column prop="myScore" label="评分" align="center" min-width="120">
@@ -215,6 +215,7 @@ import addHours from 'date-fns/addHours';
 export default {
     name: 'ProgrammeScoreList',
     mixins: [pageableTable, delChild],
+    props: ['review'],
     data() {
         return {
             multipleMode: false,
@@ -239,7 +240,8 @@ export default {
             addressList: [],
             showViedo: false,
             programme: {},
-            index: 0
+            index: 0,
+            online: true
         };
     },
     created() {
@@ -265,8 +267,7 @@ export default {
                             value: item.id
                         });
                     });
-                    this.performanceId = res.content[0].id;
-                    this.performance = res.content[0];
+                    this.setPerformance(res.content[0]);
                     this.getData();
                     this.$http
                         .post('/performanceSchedule/all', { size: 100 }, { body: 'json' })
@@ -309,11 +310,16 @@ export default {
         },
         beforeGetData() {
             let data = {
-                query: {}
+                query: {
+                    auditTimes: 1
+                }
             };
             if (this.performanceId) {
                 data.query.performanceId = this.performanceId;
             }
+            if (this.review) {
+                data.query.auditTimes = this.performance.auditTimes || 1;
+            }
             // if (this.date) {
             //     if (this.morning) {
             //         data.query.showBegin = [
@@ -469,6 +475,14 @@ export default {
             const end = direction + this.index;
             this.programme = { ...this.tableData[end] };
             this.index = end;
+        },
+        setPerformance(row) {
+            this.form.performanceId = row.id;
+            this.performance = row;
+            this.online = row.online;
+            if (this.review) {
+                this.online = this.reviewOnline;
+            }
         }
     }
 };

+ 19 - 8
src/main/vue/src/views/performance/ProgrammeSignList.vue

@@ -69,15 +69,15 @@
             </el-table-column>
             <el-table-column prop="organization" label="承办单位" min-width="160"> </el-table-column>
             <el-table-column prop="name" label="节目名称" min-width="70"> </el-table-column>
-            <el-table-column label="表演时间" min-width="70" v-if="!performance.online"> </el-table-column>
+            <el-table-column label="表演时间" min-width="70" v-if="!online"> </el-table-column>
             <el-table-column prop="quantity" label="表演人数" min-width="70"> </el-table-column>
             <el-table-column prop="contact" label="联系人" min-width="68"> </el-table-column>
             <el-table-column prop="phone" label="联系电话" min-width="95"> </el-table-column>
             <el-table-column prop="writerDirector" label="编导姓名"> </el-table-column>
             <el-table-column prop="writerPhone" label="联系电话"> </el-table-column>
-            <el-table-column prop="signedIn" label="状态" :formatter="signedInFormatter" v-if="!performance.online">
+            <el-table-column prop="signedIn" label="状态" :formatter="signedInFormatter" v-if="!online">
             </el-table-column>
-            <el-table-column label="操作" align="left" fixed="right" min-width="100" v-if="!performance.online">
+            <el-table-column label="操作" align="left" fixed="right" min-width="100" v-if="!online">
                 <template slot-scope="{ row }">
                     <el-button @click="showSign(row)" size="mini" plain type="primary">签到处理</el-button>
                 </template>
@@ -140,6 +140,7 @@ import endOfDay from 'date-fns/endOfDay';
 export default {
     name: 'ProgrammeSignList',
     mixins: [pageableTable, delChild],
+    props: ['review'],
     data() {
         return {
             multipleMode: false,
@@ -160,7 +161,8 @@ export default {
             signForm: {},
             addresses: [],
             columnKeys: ['arrangeName', 'gradingOrganization', 'organization'],
-            addressList: []
+            addressList: [],
+            online: true
         };
     },
     created() {
@@ -185,9 +187,7 @@ export default {
                             value: item.id
                         });
                     });
-                    // this.form.performanceId = res.content[0].id;
-                    this.form.performanceId = res.content[0].id;
-                    this.performance = res.content[0];
+                    this.setPerformance(res.content[0]);
                     this.getData();
                     this.$http
                         .post('/performanceSchedule/all', { size: 100 }, { body: 'json' })
@@ -264,7 +264,10 @@ export default {
         beforeGetData() {
             let data = {
                 search: this.search,
-                query: { performanceId: this.form.performanceId }
+                query: {
+                    performanceId: this.form.performanceId,
+                    review: this.review || false
+                }
             };
             if (this.form.address) {
                 data.query.address = this.form.address;
@@ -356,6 +359,14 @@ export default {
             this.performance = this.performances.find(item => {
                 return item.id == this.form.performanceId;
             });
+        },
+        setPerformance(row) {
+            this.form.performanceId = row.id;
+            this.performance = row;
+            this.online = row.online;
+            if (this.review) {
+                this.online = this.reviewOnline;
+            }
         }
     }
 };

+ 12 - 0
src/main/vue/src/views/performance/review/ArrangeJudgeList.vue

@@ -0,0 +1,12 @@
+<template>
+    <arrange-judge-list :review="true"></arrange-judge-list>
+</template>
+<script>
+import ArrangeJudgeList from '@/views/performance/ArrangeJudgeList';
+export default {
+    components: {
+        ArrangeJudgeList
+    }
+};
+</script>
+<style lang="less" scoped></style>

+ 12 - 0
src/main/vue/src/views/performance/review/ProgScoreAdminList.vue

@@ -0,0 +1,12 @@
+<template>
+    <prog-score-admin-list :review="true"></prog-score-admin-list>
+</template>
+<script>
+import ProgScoreAdminList from '@/views/performance/ProgScoreAdminList';
+export default {
+    components: {
+        ProgScoreAdminList
+    }
+};
+</script>
+<style lang="less" scoped></style>

+ 12 - 0
src/main/vue/src/views/performance/review/ProgrammeScoreList.vue

@@ -0,0 +1,12 @@
+<template>
+    <programme-score-list :review="true"></programme-score-list>
+</template>
+<script>
+import ProgrammeScoreList from '@/views/performance/ProgrammeScoreList';
+export default {
+    components: {
+        ProgrammeScoreList
+    }
+};
+</script>
+<style lang="less" scoped></style>

+ 12 - 0
src/main/vue/src/views/performance/review/ProgrammeSignList.vue

@@ -0,0 +1,12 @@
+<template>
+    <programme-sign-list :review="true"></programme-sign-list>
+</template>
+<script>
+import ProgrammeSignList from '@/views/performance/ProgrammeSignList';
+export default {
+    components: {
+        ProgrammeSignList
+    }
+};
+</script>
+<style lang="less" scoped></style>

+ 1 - 1
src/main/vue/src/views/record/RecordAdd.vue

@@ -217,7 +217,7 @@ export default {
                 });
         }
         this.$http
-            .get('/district/NJ')
+            .post('/setting/byFlag', { flag: 2 })
             .then(res => {
                 this.district = res;
             })

+ 1 - 1
src/main/vue/src/views/record/RecordDistrictList2.vue

@@ -85,7 +85,7 @@ export default {
     mixins: [pageableTable],
     created() {
         this.$http
-            .get('/district/NJ')
+            .post('/setting/byFlag', { flag: 2 })
             .then(res => {
                 this.district = res;
             })

+ 1 - 1
src/main/vue/src/views/record/RecordEdit.vue

@@ -234,7 +234,7 @@ export default {
                 });
         }
         this.$http
-            .get('/district/NJ')
+            .post('/setting/byFlag', { flag: 2 })
             .then(res => {
                 this.district = res;
             })

+ 1 - 1
src/main/vue/src/views/record/RecordList.vue

@@ -130,7 +130,7 @@ export default {
     created() {
         this.uploadUrl = resolveUrl(this.$baseUrl, 'record/upload');
         this.$http
-            .get('/district/NJ')
+            .post('/setting/byFlag', { flag: 2 })
             .then(res => {
                 this.district = res;
             })

+ 1 - 1
src/main/vue/src/views/record/RecordOrganizationList.vue

@@ -167,7 +167,7 @@ export default {
     mixins: [pageableTable],
     created() {
         this.$http
-            .get('/district/NJ')
+            .post('/setting/byFlag', { flag: 2 })
             .then(res => {
                 this.district = res;
             })

+ 1 - 1
src/main/vue/src/views/record/RecordRegulationHistory.vue

@@ -212,7 +212,7 @@ export default {
     components: { RecordLogs, RecordLog },
     created() {
         this.$http
-            .get('/district/NJ')
+            .post('/setting/byFlag', { flag: 2 })
             .then(res => {
                 this.districts = res;
             })

+ 1 - 1
src/main/vue/src/views/record/RecordRegulationList.vue

@@ -176,7 +176,7 @@ export default {
     components: { RecordLog, RecordLogs },
     created() {
         this.$http
-            .get('/district/NJ')
+            .post('/setting/byFlag', { flag: 2 })
             .then(res => {
                 this.districts = res;
             })

+ 1 - 1
src/main/vue/src/views/record/VideoList.vue

@@ -107,7 +107,7 @@ export default {
     },
     created() {
         this.$http
-            .get('/district/NJ')
+            .post('/setting/byFlag', { flag: 2 })
             .then(res => {
                 this.districts = res;
             })

+ 1 - 1
src/main/vue/src/views/record/VideoOrganizationList.vue

@@ -36,7 +36,7 @@ export default {
     },
     created() {
         this.$http
-            .get('/district/NJ')
+            .post('/setting/byFlag', { flag: 2 })
             .then(res => {
                 this.districts = res;
             })

+ 1 - 1
src/test/java/com/izouma/wenlvju/repo/UserRepoTest.java

@@ -74,7 +74,7 @@ public class UserRepoTest {
 
     @Test
     public void test3() {
-        System.out.println(jwtTokenUtil.generateToken(JwtUserFactory.create(userRepo.findById(10847L)
+        System.out.println(jwtTokenUtil.generateToken(JwtUserFactory.create(userRepo.findById(281L)
                 .orElseThrow(new BusinessException("用户不存在")))));
     }