licailing 4 anni fa
parent
commit
e8ef7002c1

+ 16 - 6
src/main/java/com/izouma/wenlvju/domain/Performance.java

@@ -21,13 +21,23 @@ import java.time.LocalDate;
 @ApiModel(value = "展演管理")
 public class Performance extends BaseEntity {
     @ApiModelProperty(value = "名称")
-    private String            name;
-    @ApiModelProperty(value = "时间")
-    private LocalDate         startTime;
-    @ApiModelProperty(value = "时间")
-    private LocalDate         endTime;
+    private String name;
+
+    @ApiModelProperty(value = "报名时间")
+    private LocalDate startTime;
+
+    @ApiModelProperty(value = "报名时间")
+    private LocalDate endTime;
+
+    @ApiModelProperty(value = "活动时间")
+    private LocalDate eventStartTime;
+
+    @ApiModelProperty(value = "活动时间")
+    private LocalDate eventEndTime;
+
     @ApiModelProperty(value = "地点")
-    private String            address;
+    private String address;
+
     @ApiModelProperty(value = "状态")
     @Enumerated(EnumType.STRING)
     private PerformanceStatus status;

+ 7 - 1
src/main/java/com/izouma/wenlvju/domain/PerformanceApply.java

@@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
 import javax.persistence.Entity;
 import javax.persistence.EnumType;
 import javax.persistence.Enumerated;
+import javax.persistence.Transient;
 import java.time.LocalDateTime;
 
 @Data
@@ -24,7 +25,7 @@ public class PerformanceApply extends BaseEntity {
     @ApiModelProperty(value = "作品名称")
     private String        composition;
     @ApiModelProperty(value = "专业")
-    private String        professional;
+    private Long          artTypeId;
     @ApiModelProperty(value = "指导老师")
     private String        teacher;
     @ApiModelProperty(value = "选送机构")
@@ -41,5 +42,10 @@ public class PerformanceApply extends BaseEntity {
     @ApiModelProperty(value = "奖项")
     private String        awards;
     private Integer       score;
+    @ApiModelProperty(value = "排序")
+    private int           sort;
+
+    @Transient
+    private String artType;
 
 }

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

@@ -154,10 +154,6 @@ public class Rate extends BaseEntity {
     @Transient
     private String address;
 
-//    @Column(columnDefinition = "TEXT")
-//    @Convert(converter = RateAuditListConverter.class)
-//    private List<RateAudit> rateAudits = new ArrayList<>();
-
     @Column(columnDefinition = "TEXT")
     @Convert(converter = ReviewTimeListConverter.class)
     private List<ReviewTime> reviewTimes = new ArrayList<>();

+ 5 - 2
src/main/java/com/izouma/wenlvju/web/PerformanceApplyController.java

@@ -1,6 +1,7 @@
 package com.izouma.wenlvju.web;
 
 import com.izouma.wenlvju.domain.PerformanceApply;
+import com.izouma.wenlvju.repo.ArtTypeRepo;
 import com.izouma.wenlvju.service.PerformanceApplyService;
 import com.izouma.wenlvju.dto.PageQuery;
 import com.izouma.wenlvju.exception.BusinessException;
@@ -21,8 +22,9 @@ import java.util.List;
 @RequestMapping("/performanceApply")
 @AllArgsConstructor
 public class PerformanceApplyController extends BaseController {
-    private PerformanceApplyService performanceApplyService;
-    private PerformanceApplyRepo    performanceApplyRepo;
+    private final PerformanceApplyService performanceApplyService;
+    private final PerformanceApplyRepo performanceApplyRepo;
+    private final ArtTypeRepo          artTypeRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
@@ -40,6 +42,7 @@ public class PerformanceApplyController extends BaseController {
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/all")
     public Page<PerformanceApply> all(@RequestBody PageQuery pageQuery) {
+
         return performanceApplyService.all(pageQuery);
     }
 

+ 40 - 3
src/main/vue/src/views/PerformanceApplyEdit.vue

@@ -12,8 +12,17 @@
             <el-form-item prop="composition" label="作品名称">
                 <el-input v-model="formData.composition"></el-input>
             </el-form-item>
-            <el-form-item prop="professional" label="专业">
-                <el-input v-model="formData.professional"></el-input>
+            <el-form-item prop="artTypeId" label="专业">
+                <el-cascader
+                    ref="artCascader"
+                    style="width: 100%"
+                    v-model="formData.artTypeId"
+                    :props="optionProps"
+                    :options="artTypes"
+                    :show-all-levels="false"
+                    placeholder="请选择专业"
+                >
+                </el-cascader>
             </el-form-item>
             <el-form-item prop="teacher" label="指导老师">
                 <el-input v-model="formData.teacher"></el-input>
@@ -65,6 +74,14 @@ export default {
                     this.$message.error(e.error);
                 });
         }
+        this.$http
+            .post('/artType/allList')
+            .then(res => {
+                this.artTypes = this.delChild(res);
+            })
+            .catch(e => {
+                console.log(e);
+            });
     },
     data() {
         return {
@@ -75,7 +92,17 @@ export default {
                 { label: '审核中', value: 'PENDING' },
                 { label: '通过', value: 'PASS' },
                 { label: '拒绝', value: 'DENY' }
-            ]
+            ],
+            optionProps: {
+                value: 'id',
+                label: 'name',
+                children: 'children',
+                multiple: false,
+                emitPath: false,
+                checkStrictly: true,
+                expandTrigger: 'hover'
+            },
+            artTypes: []
         };
     },
     methods: {
@@ -121,6 +148,16 @@ export default {
                         this.$message.error((e || {}).error || '删除失败');
                     }
                 });
+        },
+        delChild(list) {
+            return list.map(item => {
+                const info = {
+                    ...item,
+                    ['children']:
+                        item['children'] && item['children'].length > 0 ? this.delChild(item['children']) : null
+                };
+                return info;
+            });
         }
     }
 };

+ 1 - 1
src/main/vue/src/views/PerformanceApplyList2.vue

@@ -8,7 +8,7 @@
             </el-button>
             <el-button @click="distribute('已成功通知')" type="primary" class="filter-item">一键通知 </el-button>
             <el-button @click="autoAwards()" type="primary" class="filter-item">自动评奖 </el-button>
-            <el-button @click="distribute('已生成证书')" type="primary" class="filter-item">生成证书 </el-button>
+            <!-- <el-button @click="distribute('已生成证书')" type="primary" class="filter-item">生成证书 </el-button> -->
             <!-- <el-button
                 @click="download"
                 type="primary"

+ 21 - 21
src/main/vue/src/views/PerformanceEdit.vue

@@ -4,34 +4,29 @@
             :model="formData"
             :rules="rules"
             ref="form"
-            label-width="52px"
+            label-width="90px"
             label-position="right"
             size="small"
-            style="max-width: 500px;"
+            style="max-width: 550px;"
         >
             <el-form-item prop="name" label="名称">
                 <el-input v-model="formData.name"></el-input>
             </el-form-item>
-            <el-form-item prop="startTime" label="时间">
-                <!-- <el-date-picker
-                    v-model="formData.startTime"
-                    type="date"
-                    value-format="yyyy-MM-dd"
-                    placeholder="选择日期"
-                    style="width: 190px; margin-right: 20px"
-                >
-                </el-date-picker>
-                至
+            <el-form-item label="报名时间">
                 <el-date-picker
-                    v-model="formData.endTime"
-                    type="date"
+                    v-model="dateRange"
+                    type="daterange"
                     value-format="yyyy-MM-dd"
-                    placeholder="选择日期"
-                    style="width: 190px; margin-left: 20px"
+                    start-placeholder="请选择开始时间"
+                    end-placeholder="请选择结束时间"
+                    range-separator="至"
+                    style="width: 100%"
                 >
-                </el-date-picker> -->
+                </el-date-picker>
+            </el-form-item>
+            <el-form-item label="活动时间">
                 <el-date-picker
-                    v-model="dateRange"
+                    v-model="eventDateRange"
                     type="daterange"
                     value-format="yyyy-MM-dd"
                     start-placeholder="请选择开始时间"
@@ -41,8 +36,8 @@
                 >
                 </el-date-picker>
             </el-form-item>
-            <el-form-item prop="address" label="地点">
-                <el-input v-model="formData.address"></el-input>
+            <el-form-item prop="address" label="活动地点">
+                <el-input type="textarea" :rows="3" v-model="formData.address"></el-input>
             </el-form-item>
             <el-form-item prop="status" label="状态">
                 <el-select v-model="formData.status" clearable filterable placeholder="请选择">
@@ -67,6 +62,8 @@ export default {
                 .get('performance/get/' + this.$route.query.id)
                 .then(res => {
                     this.formData = res;
+                    this.dateRange = [res.startTime, res.endTime];
+                    this.eventDateRange = [res.eventStartTime, res.eventEndTime];
                 })
                 .catch(e => {
                     console.log(e);
@@ -83,7 +80,8 @@ export default {
                 { label: '报名中', value: 'APPLY' },
                 { label: '已结束', value: 'END' }
             ],
-            dateRange: ''
+            dateRange: [],
+            eventDateRange: []
         };
     },
     methods: {
@@ -100,6 +98,8 @@ export default {
             let data = { ...this.formData };
             data.startTime = this.dateRange[0];
             data.endTime = this.dateRange[1];
+            data.eventStartTime = this.eventDateRange[0];
+            data.eventEndTime = this.eventDateRange[1];
             this.saving = true;
             this.$http
                 .post('/performance/save', data, { body: 'json' })

+ 14 - 8
src/main/vue/src/views/PerformanceList.vue

@@ -28,20 +28,26 @@
             <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="startTime" label="开始时间"> </el-table-column>
-            <el-table-column prop="endTime" label="结束时间"> </el-table-column>
+            <el-table-column label="报名时间" show-overflow-tooltip min-width="100">
+                <template slot-scope="{ row }"> {{ row.startTime }} 至 {{ row.endTime }} </template>
+            </el-table-column>
+            <el-table-column label="活动时间"
+                ><template slot-scope="{ row }">
+                    {{ row.eventStartTime }} 至 {{ row.eventEndTime }}
+                </template></el-table-column
+            >
             <el-table-column prop="address" label="地点"> </el-table-column>
-            <el-table-column prop="status" label="状态" :formatter="statusFormatter"> </el-table-column>
-            <el-table-column label="操作" align="center" fixed="right" min-width="150">
+            <el-table-column prop="status" label="状态" :formatter="statusFormatter" width="80"> </el-table-column>
+            <el-table-column label="操作" align="center" fixed="right" min-width="130">
                 <template slot-scope="{ row }">
-                    <el-button @click="handleCommand(row)" type="primary" size="mini" plain v-if="!display"
+                    <el-button @click="handleCommand(row)" type="success" size="mini" plain v-if="!display"
                         ><span v-if="row.status === 'APPLY'">报名入口</span> <span v-else>查看节目</span></el-button
                     >
-                    <el-button @click="handleCommand1(row)" type="primary" size="mini" plain v-else
+                    <el-button @click="handleCommand1(row)" type="success" size="mini" plain v-else
                         ><span v-if="row.status === 'APPLY'">报名入口</span> <span v-else>查看节目</span></el-button
                     >
-                    <!-- <el-button @click="editRow(row)" type="primary" size="mini" plain>编辑</el-button>
-                    <el-button @click="deleteRow(row)" type="danger" size="mini" plain>删除</el-button> -->
+                    <el-button @click="editRow(row)" type="primary" size="mini" plain>编辑</el-button>
+                    <!-- <el-button @click="deleteRow(row)" type="danger" size="mini" plain>删除</el-button> -->
                 </template>
             </el-table-column>
         </el-table>

+ 0 - 17
src/main/vue/src/views/record/RecordEdit.vue

@@ -13,23 +13,6 @@
                 <el-input v-model="formData.examinationName"></el-input>
             </el-form-item>
             <el-form-item prop="examinationStartTime" label="考级活动时间">
-                <!-- <el-date-picker
-                    v-model="formData.examinationStartTime"
-                    type="date"
-                    value-format="yyyy-MM-dd"
-                    placeholder="选择日期"
-                    style="width: 200px; margin-right: 20px"
-                >
-                </el-date-picker>
-                至
-                <el-date-picker
-                    v-model="formData.examinationEndTime"
-                    type="date"
-                    value-format="yyyy-MM-dd"
-                    placeholder="选择日期"
-                    style="width: 200px; margin-left: 20px"
-                >
-                </el-date-picker> -->
                 <el-date-picker
                     v-model="dateRange"
                     type="daterange"