Răsfoiți Sursa

修改样式

licailing 4 ani în urmă
părinte
comite
0976c7377c

+ 7 - 3
src/main/java/com/izouma/wenlvju/dto/ProgScoreAdminDTO.java

@@ -2,6 +2,7 @@ package com.izouma.wenlvju.dto;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.izouma.wenlvju.domain.performance.Programme;
 import io.swagger.annotations.ApiModelProperty;
@@ -39,19 +40,22 @@ public class ProgScoreAdminDTO {
     @ExcelProperty(value = "参演人数")
     private int quantity;
 
-    @ApiModelProperty(value = "参演人员")
+    @ExcelIgnore
     private List<String> participant;
 
-    @ApiModelProperty(value = "节目视频")
+    @ExcelIgnore
     private String video;
 
-    @ApiModelProperty(value = "节目文件附件")
+    @ExcelIgnore
     private String annex;
 
+    @ExcelProperty(value = "分数")
     private Double score;
 
+    @ExcelProperty(value = "专家平均分")
     private Double myScore;
 
+    @ExcelIgnore
     private boolean second;
 
     public ProgScoreAdminDTO(Programme programme) {

+ 3 - 3
src/main/java/com/izouma/wenlvju/dto/ProgrammeResultDTO.java

@@ -34,6 +34,9 @@ public class ProgrammeResultDTO {
     @ExcelProperty(value = "参演人数")
     private int quantity;
 
+    @ExcelProperty(value = "分数")
+    private Double score;
+
     @ExcelProperty(value = "奖项")
     private String award;
 
@@ -44,9 +47,6 @@ public class ProgrammeResultDTO {
     @ExcelIgnore
     private String annex;
 
-    @ExcelIgnore
-    private Double score;
-
     @ExcelIgnore
     private Long awardId;
 

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

@@ -190,6 +190,13 @@ public class ProgrammeController extends BaseController {
         return programmeService.toDTOPage(all);
     }
 
+    @GetMapping("/excelScore")
+    @ResponseBody
+    public void excelScore(HttpServletResponse response, PageQuery pageQuery) throws IOException {
+        List<ProgScoreAdminDTO> data = this.byScoreAdmin(pageQuery).getContent();
+        ExcelUtils.export(response, data);
+    }
+
     @PostMapping("/getDTO/{id}")
     @ApiOperation("专家手机端查看详情")
     public ProgrammeScoreDTO getDTO(@PathVariable Long id) {

+ 52 - 10
src/main/vue/src/views/performance/ProgScoreAdminList.vue

@@ -116,9 +116,15 @@
                 </el-form-item>
                 <el-form-item>
                     <el-button @click="editRow(performanceId)">设置复审</el-button>
+                    <el-button
+                        @click="download"
+                        type="primary"
+                        icon="el-icon-download"
+                        :loading="downloading"
+                        :disabled="totalElements < 1"
+                        >导出节目
+                    </el-button>
                 </el-form-item>
-                <!-- </el-col> -->
-                <!-- </el-row> -->
             </el-form>
         </div>
         <el-table
@@ -443,27 +449,36 @@ export default {
             }
             return '';
         },
-        beforeGetData() {
+        getBefore() {
             let data = {
                 sort: 'score,desc',
-                query: {
-                    programmeStatus: ['SUBMIT']
-                }
+                query: {}
             };
-            if (this.performanceId) {
-                data.query.performanceId = this.performanceId;
+            if (this.form.gradingOrganizationId) {
+                data.query.gradingOrganizationId = this.form.gradingOrganizationId;
             }
-            if (!this.review) {
-                data.query.programmeStatus.push('REVIEW_FAILED');
+            if (this.form.organizationId) {
+                data.query.organizationId = this.form.organizationId;
             }
             if (this.form.specialtyId) {
                 data.query.code = this.getCode(this.form.specialtyId);
             }
+            if (this.performanceId) {
+                data.query.performanceId = this.performanceId;
+            }
+            if (this.form.name) {
+                data.query.name = this.form.name;
+            }
             if (this.form.id) {
                 data.query.id = this.form.id;
             }
             return data;
         },
+        beforeGetData() {
+            let data = this.getBefore();
+            data.query.programmeStatus = 'SUBMIT';
+            return data;
+        },
         toggleMultipleMode(multipleMode) {
             this.multipleMode = multipleMode;
             if (!multipleMode) {
@@ -609,6 +624,33 @@ export default {
                 }
             }
             return result;
+        },
+        download() {
+            this.downloading = true;
+
+            let data = this.getBefore();
+            data.size = 2000;
+            this.$axios
+                .get('/programme/excelScore', {
+                    responseType: 'blob',
+                    params: data
+                })
+                .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);
+                });
         }
     }
 };

+ 8 - 1
src/main/vue/src/views/performance/ProgrammeList.vue

@@ -101,6 +101,12 @@
                             ></el-col>
                         </el-row>
                         <el-row>
+                            <el-col :span="8">
+                                <el-form-item label="节目编号">
+                                    <el-input placeholder="节目编号" v-model="form.id" clearable></el-input>
+                                </el-form-item>
+                            </el-col>
+
                             <el-col :span="8">
                                 <el-form-item label="节目名称">
                                     <el-input placeholder="节目名称" v-model="form.name" clearable></el-input>
@@ -123,7 +129,8 @@
                                         </el-option>
                                     </el-select> </el-form-item
                             ></el-col>
-
+                        </el-row>
+                        <el-row>
                             <el-col :span="8"
                                 ><el-form-item label="参赛级别" v-if="form.competitionGroup">
                                     <el-select

+ 6 - 25
src/main/vue/src/views/performance/ProgrammeResultList.vue

@@ -390,7 +390,7 @@ export default {
             }
             return '';
         },
-        beforeGetData() {
+        getBefore() {
             let data = {
                 sort: 'awardId,asc;score,desc',
                 query: {
@@ -420,6 +420,9 @@ export default {
             }
             return data;
         },
+        beforeGetData() {
+            return this.getBefore();
+        },
         toggleMultipleMode(multipleMode) {
             this.multipleMode = multipleMode;
             if (!multipleMode) {
@@ -437,30 +440,8 @@ export default {
         download() {
             this.downloading = true;
 
-            let data = {
-                size: 2000,
-                query: {
-                    programmeStatus: 'SUBMIT'
-                }
-            };
-            if (this.form.gradingOrganizationId) {
-                data.query.gradingOrganizationId = this.form.gradingOrganizationId;
-            }
-            if (this.form.organizationId) {
-                data.query.organizationId = this.form.organizationId;
-            }
-            if (this.form.specialtyId) {
-                data.query.code = this.getCode(this.form.specialtyId);
-            }
-            if (this.performanceId) {
-                data.query.performanceId = this.performanceId;
-            }
-            if (this.form.name) {
-                data.query.name = this.form.name;
-            }
-            if (this.form.awardId) {
-                data.query.awardId = this.form.awardId;
-            }
+            let data = this.getBefore();
+            data.size = 2000;
             this.$axios
                 .get('/programme/excelResult', {
                     responseType: 'blob',