licailing 4 лет назад
Родитель
Сommit
b17b0ae663

+ 0 - 4
src/main/java/com/izouma/wenlvju/domain/performance/Programme.java

@@ -62,8 +62,4 @@ public class Programme extends BaseEntity {
     @ApiModelProperty(value = "节目视频")
     private String video;
 
-    @Transient
-    @ApiModelProperty(value = "参赛人数")
-    private int quantity;
-
 }

+ 78 - 0
src/main/java/com/izouma/wenlvju/dto/ProgrammeDTO.java

@@ -0,0 +1,78 @@
+package com.izouma.wenlvju.dto;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.izouma.wenlvju.domain.performance.Programme;
+import com.izouma.wenlvju.enums.CompetitionGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.Transient;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel(value = "节目安排")
+public class ProgrammeDTO {
+    private Long id;
+
+    private Long performanceId;
+
+    @ApiModelProperty(value = "节目名称")
+    private String name;
+
+    @ApiModelProperty(value = "参赛专业")
+    private Long specialtyId;
+
+    private String specialty;
+
+    @Enumerated(EnumType.STRING)
+    @ApiModelProperty(value = "参赛组别")
+    private CompetitionGroup competitionGroup;
+
+    @ApiModelProperty(value = "参赛级别")
+    private Long levelSettingId;
+
+    private String level;
+
+    @ApiModelProperty(value = "作品时长")
+    private int durationOfWork;
+
+    @ApiModelProperty(value = "指导老师")
+    private String instructor;
+
+    @ApiModelProperty(value = "联系人")
+    private String contact;
+
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "考级机构")
+    private Long gradingOrganizationId;
+
+    private String gradingOrganization;
+
+    @ApiModelProperty(value = "承办单位")
+    private Long organizationId;
+
+    private String organization;
+
+    @ApiModelProperty(value = "考级点")
+    private String examPoint;
+
+    @ApiModelProperty(value = "节目视频")
+    private String video;
+
+    @ApiModelProperty(value = "参赛人数")
+    private long quantity;
+
+    public ProgrammeDTO(Programme programme) {
+        BeanUtil.copyProperties(programme, this);
+    }
+}

+ 3 - 0
src/main/java/com/izouma/wenlvju/repo/performance/ParticipantRepo.java

@@ -7,10 +7,13 @@ import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 
 import javax.transaction.Transactional;
+import java.util.List;
 
 public interface ParticipantRepo extends JpaRepository<Participant, Long>, JpaSpecificationExecutor<Participant> {
     @Query("update Participant t set t.del = true where t.id = ?1")
     @Modifying
     @Transactional
     void softDelete(Long id);
+
+    List<Participant> findAllByProgrammeIdIn(Iterable<Long> ids);
 }

+ 66 - 1
src/main/java/com/izouma/wenlvju/service/performance/ProgrammeService.java

@@ -1,20 +1,85 @@
 package com.izouma.wenlvju.service.performance;
 
+import cn.hutool.core.collection.CollUtil;
+import com.izouma.wenlvju.domain.ArtType;
+import com.izouma.wenlvju.domain.GradingOrganization;
+import com.izouma.wenlvju.domain.Organization;
+import com.izouma.wenlvju.domain.Setting;
+import com.izouma.wenlvju.domain.performance.Participant;
 import com.izouma.wenlvju.domain.performance.Programme;
 import com.izouma.wenlvju.dto.PageQuery;
+import com.izouma.wenlvju.dto.ProgrammeDTO;
+import com.izouma.wenlvju.repo.ArtTypeRepo;
+import com.izouma.wenlvju.repo.GradingOrganizationRepo;
+import com.izouma.wenlvju.repo.OrganizationRepo;
+import com.izouma.wenlvju.repo.SettingRepo;
+import com.izouma.wenlvju.repo.performance.ParticipantRepo;
 import com.izouma.wenlvju.repo.performance.ProgrammeRepo;
 import com.izouma.wenlvju.utils.JpaUtils;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 @Service
 @AllArgsConstructor
 public class ProgrammeService {
 
-    private ProgrammeRepo programmeRepo;
+    private ProgrammeRepo           programmeRepo;
+    private ParticipantRepo         participantRepo;
+    private GradingOrganizationRepo gradingOrganizationRepo;
+    private OrganizationRepo        organizationRepo;
+    private ArtTypeRepo             artTypeRepo;
+    private SettingRepo             settingRepo;
 
     public Page<Programme> all(PageQuery pageQuery) {
         return programmeRepo.findAll(JpaUtils.toSpecification(pageQuery, Programme.class), JpaUtils.toPageRequest(pageQuery));
     }
+
+    public Page<ProgrammeDTO> backAll(PageQuery pageQuery) {
+        Page<Programme> all = programmeRepo.findAll(JpaUtils.toSpecification(pageQuery, Programme.class), JpaUtils.toPageRequest(pageQuery));
+        List<Long> ids = new ArrayList<>();
+        List<Long> settingIds = new ArrayList<>();
+        List<Programme> content = all.getContent();
+        if (CollUtil.isEmpty(content)) {
+            return all.map(ProgrammeDTO::new);
+        }
+
+        content.forEach(programme -> {
+            ids.add(programme.getId());
+            settingIds.add(programme.getLevelSettingId());
+        });
+
+        Map<Long, String> organizationMap = organizationRepo.findAll()
+                .stream()
+                .collect(Collectors.toMap(Organization::getId, Organization::getName));
+        Map<Long, String> gradingOrganizationMap = gradingOrganizationRepo.findAll()
+                .stream()
+                .collect(Collectors.toMap(GradingOrganization::getId, GradingOrganization::getName));
+        Map<Long, String> artTypeMap = artTypeRepo.findAll()
+                .stream()
+                .collect(Collectors.toMap(ArtType::getId, ArtType::getName));
+        Map<Long, String> settingMap = settingRepo.findAllById(settingIds)
+                .stream()
+                .collect(Collectors.toMap(Setting::getId, Setting::getName));
+
+        Map<Long, Long> participantMap = participantRepo.findAllByProgrammeIdIn(ids)
+                .stream()
+                .collect(Collectors.groupingBy(Participant::getProgrammeId, Collectors.counting()));
+        return all.map(programme -> {
+            ProgrammeDTO dto = new ProgrammeDTO(programme);
+            dto.setOrganization(organizationMap.get(programme.getOrganizationId()));
+            dto.setGradingOrganization(gradingOrganizationMap.get(programme.getGradingOrganizationId()));
+            dto.setSpecialty(artTypeMap.get(programme.getSpecialtyId()));
+            dto.setLevel(settingMap.get(programme.getLevelSettingId()));
+            if (participantMap.containsKey(programme.getId())) {
+                dto.setQuantity(participantMap.get(programme.getId()));
+            }
+            return dto;
+        });
+    }
 }

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

@@ -1,5 +1,6 @@
 package com.izouma.wenlvju.web.performance;
 
+import com.izouma.wenlvju.dto.ProgrammeDTO;
 import com.izouma.wenlvju.web.BaseController;
 import com.izouma.wenlvju.domain.performance.Programme;
 import com.izouma.wenlvju.service.performance.ProgrammeService;
@@ -44,6 +45,11 @@ public class ProgrammeController extends BaseController {
         return programmeService.all(pageQuery);
     }
 
+    @PostMapping("/backAll")
+    public Page<ProgrammeDTO> backAll(@RequestBody PageQuery pageQuery) {
+        return programmeService.backAll(pageQuery);
+    }
+
     @GetMapping("/get/{id}")
     public Programme get(@PathVariable Long id) {
         return programmeRepo.findById(id).orElseThrow(new BusinessException("无记录"));

+ 9 - 0
src/main/vue/src/router.js

@@ -275,6 +275,15 @@ const router = new Router({
                         title: '展演管理'
                     }
                 },
+                {
+                    path: '/performanceListShow',
+                    name: 'PerformanceListShow',
+                    component: () =>
+                        import(/* webpackChunkName: "performanceList" */ '@/views/performance/PerformanceListShow.vue'),
+                    meta: {
+                        title: '展演列表'
+                    }
+                },
                 {
                     path: '/performanceShow',
                     name: 'PerformanceShow',

+ 0 - 11
src/main/vue/src/views/performance/PerformanceList.vue

@@ -125,10 +125,6 @@ export default {
             search: '',
             url: '/performance/backAll',
             downloading: false,
-            statusOptions: [
-                { label: '报名中', value: 'APPLY' },
-                { label: '已结束', value: 'END' }
-            ],
             currentTime: ''
         };
     },
@@ -143,13 +139,6 @@ export default {
         ...mapState(['userInfo'])
     },
     methods: {
-        statusFormatter(row, column, cellValue, index) {
-            let selectedOption = this.statusOptions.find(i => i.value === cellValue);
-            if (selectedOption) {
-                return selectedOption.label;
-            }
-            return '';
-        },
         beforeGetData() {
             return {
                 search: this.search,

+ 240 - 0
src/main/vue/src/views/performance/PerformanceListShow.vue

@@ -0,0 +1,240 @@
+<template>
+    <div class="list-view">
+        <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"
+        >
+            <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="name" label="活动名称" min-width="190"> </el-table-column>
+            <el-table-column prop="year" label="年度"> </el-table-column>
+            <el-table-column label="报名起始时间" min-width="160">
+                <template slot-scope="{ row }">
+                    <span>{{ row.startDate }} 至 {{ row.endDate }}</span>
+                </template>
+            </el-table-column>
+            <el-table-column prop="status" label="活动状态" width="80">
+                <template slot-scope="{ row }">
+                    <el-link style="font-size: 13px" :underline="false" type="info" v-if="currentTime < row.startDate"
+                        >未开始</el-link
+                    >
+                    <el-link
+                        style="font-size: 13px"
+                        :underline="false"
+                        type="info"
+                        v-else-if="currentTime > row.endDate"
+                        >已结束</el-link
+                    >
+                    <el-link
+                        style="font-size: 13px"
+                        :underline="false"
+                        type="success"
+                        v-else-if="currentTime <= row.endDate"
+                        >报名中</el-link
+                    >
+                </template>
+            </el-table-column>
+            <el-table-column label="发布状态">
+                <template slot-scope="{ row }">
+                    <span v-if="row.publish">已发布</span>
+                    <span v-else>未发布</span>
+                </template>
+            </el-table-column>
+            <!-- <el-table-column label="推送节目数量" prop="programmeNum">
+                <template slot-scope="{ row }">
+                    <el-link @click="programmeRow(row)">{{ row.programmeNum }}</el-link>
+                </template>
+            </el-table-column> -->
+            <el-table-column label="操作" align="left" fixed="right" min-width="160">
+                <template slot-scope="{ row }">
+                    <el-button @click="showRow(row)" size="mini" plain>
+                        查看
+                    </el-button>
+                    <el-button
+                        @click="showRow(row)"
+                        type="primary"
+                        size="mini"
+                        plain
+                        v-if="currentTime >= row.startDate && currentTime <= row.endDate"
+                    >
+                        报名
+                    </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 { mapState } from 'vuex';
+import pageableTable from '@/mixins/pageableTable';
+import { format } from 'date-fns';
+
+export default {
+    name: 'PerformanceListShow',
+    mixins: [pageableTable],
+    data() {
+        return {
+            multipleMode: false,
+            search: '',
+            url: '/performance/all',
+            downloading: false,
+            currentTime: ''
+        };
+    },
+    created() {
+        this.currentTime = format(new Date(), 'yyyy-MM-dd');
+        console.log(this.currentTime);
+    },
+    computed: {
+        selection() {
+            return this.$refs.table.selection.map(i => i.id);
+        },
+        ...mapState(['userInfo'])
+    },
+    methods: {
+        beforeGetData() {
+            return {
+                search: this.search,
+                sort: 'createdAt,desc',
+                query: {
+                    publish: true
+                }
+            };
+        },
+        toggleMultipleMode(multipleMode) {
+            this.multipleMode = multipleMode;
+            if (!multipleMode) {
+                this.$refs.table.clearSelection();
+            }
+        },
+        addRow() {
+            this.$router.push({
+                path: '/performanceEdit',
+                query: {
+                    ...this.$route.query
+                }
+            });
+        },
+        showRow(row) {
+            this.$router.push({
+                path: '/performanceShow',
+                query: {
+                    id: row.id
+                }
+            });
+        },
+        editRow(row) {
+            this.$router.push({
+                path: '/performanceEdit',
+                query: {
+                    id: row.id
+                }
+            });
+        },
+        programmeRow(row) {
+            this.$router.push({
+                path: '/programmeList',
+                query: {
+                    pid: row.id
+                }
+            });
+        },
+        download() {
+            this.downloading = true;
+            this.$axios
+                .get('/performance/excel', {
+                    responseType: 'blob',
+                    params: { size: 10000 }
+                })
+                .then(res => {
+                    console.log(res);
+                    this.downloading = false;
+                    const downloadUrl = window.URL.createObjectURL(new Blob([res.data]));
+                    const link = document.createElement('a');
+                    link.href = downloadUrl;
+                    link.setAttribute('download', res.headers['content-disposition'].split('filename=')[1]);
+                    document.body.appendChild(link);
+                    link.click();
+                    link.remove();
+                })
+                .catch(e => {
+                    console.log(e);
+                    this.downloading = false;
+                    this.$message.error(e.error);
+                });
+        },
+        operation1() {
+            this.$notify({
+                title: '提示',
+                message: this.selection
+            });
+        },
+        operation2() {
+            this.$message('操作2');
+        },
+        deleteRow(row) {
+            this.$alert('删除将无法恢复,确认要删除么?', '警告', { type: 'error' })
+                .then(() => {
+                    return this.$http.post(`/performance/del/${row.id}`);
+                })
+                .then(() => {
+                    this.$message.success('删除成功');
+                    this.getData();
+                })
+                .catch(e => {
+                    if (e !== 'cancel') {
+                        this.$message.error(e.error);
+                    }
+                });
+        },
+        handleCommand(command) {
+            if (command) {
+                this.$router.push(command);
+            }
+        },
+        publish(row, publish) {
+            this.$confirm('确认发布此展演活动吗?', '发布提示', { type: 'primary' })
+                .then(() => {
+                    return this.$http.post('/performance/publish', { id: row.id, publish: publish });
+                })
+                .then(() => {
+                    this.$message.success('发布成功');
+                    this.getData();
+                })
+                .catch(e => {
+                    if (e !== 'cancel') {
+                        this.$message.error(e.error);
+                    }
+                });
+        }
+    }
+};
+</script>
+<style lang="less" scoped></style>

+ 0 - 1
src/main/vue/src/views/performance/PerformanceShow.vue

@@ -163,7 +163,6 @@ export default {
                     this.$message.error(e.error);
                 });
         }
-        this.getAdmin();
     },
     data() {
         return {

+ 112 - 34
src/main/vue/src/views/performance/ProgrammeList.vue

@@ -1,27 +1,46 @@
 <template>
     <div class="list-view">
         <div class="filters-container">
-            <!-- <el-input placeholder="输入关键字" v-model="search" clearable class="filter-item"></el-input>
-            <el-button @click="getData" type="primary" icon="el-icon-search" class="filter-item">搜索 </el-button>
-            <el-button @click="addRow" type="primary" icon="el-icon-plus" class="filter-item">添加 </el-button>
-            <el-button
-                @click="download"
-                type="primary"
-                icon="el-icon-download"
-                :loading="downloading"
-                class="filter-item"
-                >导出EXCEL
-            </el-button> -->
             <el-form :model="form" inline size="mini">
                 <el-row>
-                    <el-col :span="8"
-                        ><el-form-item label="考级机构名称">
-                            <el-input placeholder="考级机构名称" v-model="search" clearable></el-input> </el-form-item
-                    ></el-col>
-                    <el-col :span="8"
-                        ><el-form-item label="承办单位名称">
-                            <el-input placeholder="承办单位名称" v-model="search" clearable></el-input> </el-form-item
-                    ></el-col>
+                    <el-col :span="8">
+                        <el-form-item label="考级机构名称">
+                            <el-select
+                                v-model="gradingOrganizationId"
+                                clearable
+                                filterable
+                                placeholder="考级机构"
+                                style="width: 100%"
+                            >
+                                <el-option
+                                    v-for="item in gradingOrganizationIdOptions"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value"
+                                >
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="8">
+                        <el-form-item label="承办单位名称">
+                            <el-select
+                                v-model="organizationId"
+                                clearable
+                                filterable
+                                placeholder="承办单位"
+                                style="width: 100%"
+                            >
+                                <el-option
+                                    v-for="item in organizationIdOptions"
+                                    :key="item.value"
+                                    :label="item.label"
+                                    :value="item.value"
+                                >
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
                     <el-col :span="8"
                         ><el-form-item label="考级点名称">
                             <el-input placeholder="考级点名称" v-model="search" clearable></el-input> </el-form-item
@@ -29,12 +48,12 @@
                 </el-row>
                 <el-row>
                     <el-col :span="8"
-                        ><el-form-item label="参赛专业">
+                        ><el-form-item label="节目参赛专业">
                             <el-input placeholder="参赛专业" v-model="search" clearable></el-input> </el-form-item
                     ></el-col>
                     <el-col :span="8"
-                        ><el-form-item label="参赛组别">
-                            <el-select v-model="competitionGroup" clearable filterable placeholder="请选择">
+                        ><el-form-item label="节目参赛组别">
+                            <el-select v-model="competitionGroup" clearable filterable placeholder="参赛组别">
                                 <el-option
                                     v-for="item in competitionGroupOptions"
                                     :key="item.value"
@@ -50,7 +69,7 @@
                                 v-model="levelSettingId"
                                 clearable
                                 filterable
-                                placeholder="请选择"
+                                placeholder="参赛级别"
                                 style="width: 100%"
                                 v-if="competitionGroup == 'SINGLE'"
                             >
@@ -85,13 +104,13 @@
                         </el-form-item></el-col
                     >
                 </el-row>
-                <br />
                 <el-form-item>
                     <el-button @click="getData" type="primary" icon="el-icon-search">搜索 </el-button>
-                    <el-button @click="addRow" type="primary" icon="el-icon-plus">添加 </el-button>
-                    <!-- <el-button @click="download" type="primary" icon="el-icon-download" :loading="downloading"
+                    <el-button @click="clearSearch" type="primary">清空 </el-button>
+                    <!-- <el-button @click="addRow" type="primary" icon="el-icon-plus">添加 </el-button> -->
+                    <el-button @click="download" type="primary" icon="el-icon-download" :loading="downloading"
                         >导出EXCEL
-                    </el-button> -->
+                    </el-button>
                 </el-form-item>
             </el-form>
         </div>
@@ -108,16 +127,16 @@
             <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="name" label="节目名称"> </el-table-column>
-            <el-table-column prop="specialtyId" label="参赛专业"> </el-table-column>
+            <el-table-column prop="specialty" label="参赛专业"> </el-table-column>
             <el-table-column prop="competitionGroup" label="参赛组别" :formatter="competitionGroupFormatter">
             </el-table-column>
-            <el-table-column prop="levelSettingId" label="参赛级别"> </el-table-column>
+            <el-table-column prop="level" label="参赛级别"> </el-table-column>
             <el-table-column prop="durationOfWork" label="作品时长"> </el-table-column>
             <el-table-column prop="quantity" label="参赛人数"> </el-table-column>
             <el-table-column prop="contact" label="联系人"> </el-table-column>
             <el-table-column prop="phone" label="联系电话"> </el-table-column>
-            <el-table-column prop="gradingOrganizationId" label="考级机构"> </el-table-column>
-            <el-table-column prop="gradingOrganizationId" label="承办单位"> </el-table-column>
+            <el-table-column prop="gradingOrganization" label="考级机构"> </el-table-column>
+            <el-table-column prop="organization" label="承办单位"> </el-table-column>
             <el-table-column prop="examPoint" label="考级点"> </el-table-column>
             <el-table-column prop="video" label="节目视频"> </el-table-column>
             <el-table-column label="操作" align="center" fixed="right" min-width="280">
@@ -170,7 +189,7 @@ export default {
         return {
             multipleMode: false,
             search: '',
-            url: '/programme/all',
+            url: '/programme/backAll',
             downloading: false,
             competitionGroupOptions: [
                 { label: '个人', value: 'SINGLE' },
@@ -182,7 +201,11 @@ export default {
             levelCollectiveOptions: [],
             levelSettingId: '',
             dialogUrl: '',
-            dialogCode: false
+            dialogCode: false,
+            gradingOrganizationIdOptions: [],
+            organizationIdOptions: [],
+            gradingOrganizationId: '',
+            organizationId: ''
         };
     },
     created() {
@@ -220,6 +243,38 @@ export default {
                 console.log(e);
                 this.$message.error(e.error);
             });
+        this.$http
+            .post('/gradingOrganization/all', { size: 1000, query: { del: false } }, { body: 'json' })
+            .then(res => {
+                if (res.content.length > 0) {
+                    res.content.forEach(item => {
+                        this.gradingOrganizationIdOptions.push({
+                            label: item.name,
+                            value: item.id
+                        });
+                    });
+                }
+            })
+            .catch(e => {
+                console.log(e);
+                this.$message.error(e.error);
+            });
+        this.$http
+            .post('/organization/all', { size: 1000, query: { del: false } }, { body: 'json' })
+            .then(res => {
+                if (res.content.length > 0) {
+                    res.content.forEach(item => {
+                        this.organizationIdOptions.push({
+                            label: item.name,
+                            value: item.id
+                        });
+                    });
+                }
+            })
+            .catch(e => {
+                console.log(e);
+                this.$message.error(e.error);
+            });
     },
     components: {
         QrcodeVue
@@ -238,7 +293,23 @@ export default {
             return '';
         },
         beforeGetData() {
-            return { search: this.search };
+            let data = {
+                sort: 'createdAt,desc',
+                query: {}
+            };
+            if (this.competitionGroup) {
+                data.query.competitionGroup = this.competitionGroup;
+            }
+            if (this.levelSettingId) {
+                data.query.levelSettingId = this.levelSettingId;
+            }
+            if (this.gradingOrganizationId) {
+                data.query.gradingOrganizationId = this.gradingOrganizationId;
+            }
+            if (this.organizationId) {
+                data.query.organizationId = this.organizationId;
+            }
+            return data;
         },
         toggleMultipleMode(multipleMode) {
             this.multipleMode = multipleMode;
@@ -317,6 +388,13 @@ export default {
                 row.performanceId +
                 '&performanceApplyId=' +
                 row.id;
+        },
+        clearSearch() {
+            this.competitionGroup = '';
+            this.levelSettingId = '';
+            this.gradingOrganizationId = '';
+            this.organizationId = '';
+            this.getData();
         }
     }
 };

+ 0 - 37
src/main/vue/src/views/rate/RateList.vue

@@ -103,24 +103,6 @@
                     >
                     </el-date-picker>
                 </el-col>
-                <!-- <el-col :span="8">
-                    <span class="span-size">考级机构</span>
-                    <el-select
-                        v-model="agency"
-                        placeholder="所属考级机构"
-                        multiple
-                        class="filter-item"
-                        style="width: 220px"
-                        @change="getData"
-                    >
-                        <el-option
-                            v-for="(item, index) in examination"
-                            :key="index"
-                            :value="item.value"
-                            :label="item.label"
-                        ></el-option>
-                    </el-select>
-                </el-col> -->
             </div>
             <div>
                 <el-col :span="7">
@@ -198,7 +180,6 @@
             :height="tableHeight"
         >
             <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="name" label="承办单位"> </el-table-column>
             <el-table-column prop="createdAt" label="申请时间" min-width="100"></el-table-column>
             <el-table-column prop="year" label="年度" min-width="60"> </el-table-column>
@@ -348,21 +329,6 @@ export default {
         };
     },
     created() {
-        // this.$http
-        //     .post('/gradingOrganization/all', { size: 1000 }, { body: 'json' })
-        //     .then(res => {
-        //         if (res.content.length > 0) {
-        //             res.content.forEach(item => {
-        //                 this.examination.push({
-        //                     label: item.name,
-        //                     value: item.id
-        //                 });
-        //             });
-        //         }
-        //     })
-        //     .catch(e => {
-        //         console.log(e);
-        //     });
         this.$http
             .post('/setting/byFlag', { flag: 2 })
             .then(res => {
@@ -589,8 +555,6 @@ export default {
                     id: id
                 }
             });
-            // this.dialogVisible = true;
-            // this.rateId = id;
         },
         addRegulatory(id) {
             this.$http
@@ -628,7 +592,6 @@ export default {
                 .then(res => {
                     this.$message.success('OK');
                     this.dialogScore = false;
-                    // this.scoreInfo = '';
                     this.getData();
                 })
                 .catch(e => {

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

@@ -8,17 +8,15 @@
                 <el-form-item label="考级机构名称">
                     <el-input placeholder="输入考级机构名称" v-model="agency" clearable class="filter-item"></el-input>
                 </el-form-item>
-                <el-form-item label="考级活动时间">
-                    <el-date-picker
-                        v-model="dateRange"
-                        type="daterange"
-                        value-format="yyyy-MM-dd"
-                        start-placeholder="请选择开始时间"
-                        end-placeholder="请选择结束时间"
-                        range-separator="至"
-                        class="filter-item"
-                    >
-                    </el-date-picker>
+                <el-form-item label="考级活动状态">
+                    <el-select v-model="status" class="filter-item" clearable>
+                        <el-option
+                            v-for="item in statusOptions"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value"
+                        ></el-option>
+                    </el-select>
                 </el-form-item>
                 <el-form-item label="考级活动地址">
                     <el-select
@@ -39,15 +37,17 @@
                 <el-form-item label="考级详细地址">
                     <el-input style="width: 200px" placeholder="输入考级详细地址" class="filter-item"></el-input>
                 </el-form-item>
-                <el-form-item label="考级活动状态">
-                    <el-select v-model="status" class="filter-item" clearable>
-                        <el-option
-                            v-for="item in statusOptions"
-                            :key="item.value"
-                            :label="item.label"
-                            :value="item.value"
-                        ></el-option>
-                    </el-select>
+                <el-form-item label="考级活动时间">
+                    <el-date-picker
+                        v-model="dateRange"
+                        type="daterange"
+                        value-format="yyyy-MM-dd"
+                        start-placeholder="请选择开始时间"
+                        end-placeholder="请选择结束时间"
+                        range-separator="至"
+                        class="filter-item"
+                    >
+                    </el-date-picker>
                 </el-form-item>
                 <el-col :span="24">
                     <el-button @click="getData" type="primary" icon="el-icon-search" class="filter-item"