licailing 5 лет назад
Родитель
Сommit
e7778232a1

+ 78 - 0
src/main/java/com/izouma/wenlvju/domain/Organizer.java

@@ -0,0 +1,78 @@
+package com.izouma.wenlvju.domain;
+
+import com.izouma.wenlvju.converter.StringArrayConverter;
+import com.izouma.wenlvju.enums.RateStatus;
+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.Convert;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel(value = "承办单位")
+public class Organizer extends BaseEntity {
+    private Long userId;
+
+    @ApiModelProperty(value = "承办单位名称")
+    private String name;
+
+    private String district;
+
+    @ApiModelProperty(value = "营业执照")
+    private String businessLicense;
+
+    @ApiModelProperty(value = "负责人")
+    private String owner;
+
+    @ApiModelProperty(value = "法人姓名")
+    private String privacyPolicy;
+
+    @ApiModelProperty(value = "证件号码")
+    private String IDNo;
+
+
+    /*
+    评星定级
+     */
+    private LocalDateTime applyTime;
+
+    private RateStatus status;
+
+    @ApiModelProperty(value = "是否承办考级活动")
+    private Boolean undertakeExamination;
+
+    @Convert(converter = StringArrayConverter.class)
+    @ApiModelProperty(value = "承办过的考级机构名称")
+    private List<String> examination;
+
+    @ApiModelProperty(value = "简介")
+    private String introduction;
+
+    @Convert(converter = StringArrayConverter.class)
+    private List<String> img;
+
+    @ApiModelProperty(value = "专家组长")
+    private Long expertUserId;
+
+    @ApiModelProperty(value = "专家组员")
+    private List<Long> expertMemberUserId;
+
+    @ApiModelProperty(value = "审核开始时间")
+    private LocalDate reviewStartTime;
+
+    @ApiModelProperty(value = "审核结束时间")
+    private LocalDate reviewEndTime;
+
+    private int score;
+
+
+}

+ 17 - 3
src/main/java/com/izouma/wenlvju/domain/Rate.java

@@ -21,11 +21,25 @@ import java.util.List;
 @Entity
 @ApiModel(value = "评星定级")
 public class Rate extends BaseEntity {
-    @ApiModelProperty(value = "申请人")
-    private Long userId;
+    @ApiModelProperty(value = "是否承办考级活动")
+    private Boolean undertakeExamination;
+
+    @Convert(converter = StringArrayConverter.class)
+    @ApiModelProperty(value = "承办过的考级机构名称")
+    private List<String> examination;
+
+    @ApiModelProperty(value = "简介")
+    private String introduction;
+
+    @Convert(converter = StringArrayConverter.class)
+    private List<String> img;
+
+//    @ApiModelProperty(value = "申请人")
+//    private Long userId;
 
     @ApiModelProperty(value = "承办单位名称")
-    private String organizer;
+//    private String organizer;
+    private Long organizerId;
 
     @ApiModelProperty(value = "年度")
     private String year;

+ 1 - 0
src/main/java/com/izouma/wenlvju/domain/Record.java

@@ -42,6 +42,7 @@ public class Record extends BaseEntity {
 
     @ApiModelProperty(value = "承办单位名称")
     private String organizer;
+//    private Long organizerId;
 
     @ApiModelProperty(value = "统一社会信用代码")
     private String creditCode;

+ 16 - 0
src/main/java/com/izouma/wenlvju/domain/ReviewOrganizer.java

@@ -0,0 +1,16 @@
+package com.izouma.wenlvju.domain;
+
+import java.time.LocalDateTime;
+
+public class ReviewOrganizer extends BaseEntity {
+    private Long userId;
+
+    private Long organizerId;
+
+    private int score;
+
+    private LocalDateTime reviewTime;
+
+
+
+}

+ 10 - 0
src/main/java/com/izouma/wenlvju/domain/User.java

@@ -4,8 +4,10 @@ import com.alibaba.excel.annotation.ExcelIgnore;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.izouma.wenlvju.annotations.Searchable;
 import com.izouma.wenlvju.config.Constants;
+import com.izouma.wenlvju.enums.ArtType;
 import com.izouma.wenlvju.security.Authority;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -64,8 +66,16 @@ public class User extends BaseEntity implements Serializable {
 
     private String country;
 
+    private String district;
+
     @Searchable
     private String phone;
 
     private String email;
+
+    private int age;
+
+    @ApiModelProperty(value = "艺术分类")
+    @Enumerated(EnumType.STRING)
+    private ArtType artType;
 }

+ 5 - 0
src/main/java/com/izouma/wenlvju/enums/ArtType.java

@@ -0,0 +1,5 @@
+package com.izouma.wenlvju.enums;
+
+public enum ArtType {
+
+}

+ 5 - 1
src/main/java/com/izouma/wenlvju/enums/RateStatus.java

@@ -14,5 +14,9 @@ public enum RateStatus {
     专家通过
      */
     EXPERT_PASS,
-    EXPERT_DENY
+    EXPERT_DENY,
+    /*
+    提交纸质材料
+     */
+    SUBMIT_PAPER_MATERIALS
 }

+ 47 - 29
src/main/vue/src/views/RegulatoryList.vue

@@ -29,61 +29,83 @@
             <el-table-column prop="record.district" label="通讯地址"> </el-table-column>
             <el-table-column prop="supervisorUser.nickname" label="监管人员"> </el-table-column>
             <el-table-column prop="time" label="时间"> </el-table-column>
-            <el-table-column prop="isRecord" label="是否考前备案">
+            <el-table-column prop="isRecord" label="考前备案" min-width="65">
                 <template slot-scope="{ row }">
-                    <el-tag :type="row.isRecord ? '' : 'info'">{{ row.isRecord }}</el-tag>
+                    <!-- <el-tag :type="row.isRecord ? '' : 'info'">{{ row.isRecord }}</el-tag> -->
+                    <i class="el-icon-check" v-if="row.isRecord"></i>
+                    <i class="el-icon-close" v-else-if="!row.isRecord"></i>
+                    <i class="el-icon-minus" v-else></i>
                 </template>
             </el-table-column>
-            <el-table-column prop="isPostExamGuide" label="《考试简章》">
+            <el-table-column prop="isPostExamGuide" label="考试简章" min-width="65">
                 <template slot-scope="{ row }">
-                    <el-tag :type="row.isPostExamGuide ? '' : 'info'">{{ row.isPostExamGuide }}</el-tag>
+                    <!-- <el-tag :type="row.isPostExamGuide ? '' : 'info'">{{ row.isPostExamGuide }}</el-tag> -->
+                    <i class="el-icon-check" v-if="row.isPostExamGuide"></i>
+                    <i class="el-icon-close" v-else-if="!row.isPostExamGuide"></i>
+                    <i class="el-icon-minus" v-else></i>
                 </template>
             </el-table-column>
-            <el-table-column prop="isPerfectDeviceServices" label="考场服务设备">
+            <el-table-column prop="isPerfectDeviceServices" label="服务设备" min-width="65">
                 <template slot-scope="{ row }">
-                    <el-tag :type="row.isPerfectDeviceServices ? '' : 'info'">{{ row.isPerfectDeviceServices }}</el-tag>
+                    <!-- <el-tag :type="row.isPerfectDeviceServices ? '' : 'info'">{{ row.isPerfectDeviceServices }}</el-tag> -->
+                    <i class="el-icon-check" v-if="row.isPerfectDeviceServices"></i>
+                    <i class="el-icon-close" v-else-if="!row.isPerfectDeviceServices"></i>
+                    <i class="el-icon-minus" v-else></i>
                 </template>
             </el-table-column>
-            <el-table-column prop="isHaveTheSameTime" label="考试时间">
+            <!-- <el-table-column prop="isHaveTheSameTime" label="考试时间">
                 <template slot-scope="{ row }">
                     <el-tag :type="row.isHaveTheSameTime ? '' : 'info'">{{ row.isHaveTheSameTime }}</el-tag>
+                    <i class="el-icon-check" v-if="row.isRecord"></i>
+                    <i class="el-icon-close" v-else-if="!row.isRecord"></i>
                 </template>
-            </el-table-column>
-            <el-table-column prop="isSameAddress" label="考试地点">
+            </el-table-column> -->
+            <!-- <el-table-column prop="isSameAddress" label="考试地点">
                 <template slot-scope="{ row }">
+                    <i class="el-icon-check" v-if="row.isRecord"></i>
+                    <i class="el-icon-close" v-else-if="!row.isRecord"></i>
                     <el-tag :type="row.isSameAddress ? '' : 'info'">{{ row.isSameAddress }}</el-tag>
                 </template>
-            </el-table-column>
-            <el-table-column prop="isExaminer" label="考官证">
+            </el-table-column> -->
+            <el-table-column prop="isExaminer" label="考官证" min-width="65">
                 <template slot-scope="{ row }">
-                    <el-tag :type="row.isExaminer ? '' : 'info'">{{ row.isExaminer }}</el-tag>
+                    <i class="el-icon-check" v-if="row.isExaminer"></i>
+                    <i class="el-icon-close" v-else-if="!row.isExaminer"></i>
+                    <i class="el-icon-minus" v-else></i>
+                    <!-- <el-tag :type="row.isExaminer ? '' : 'info'">{{ row.isExaminer }}</el-tag> -->
                 </template>
             </el-table-column>
-            <el-table-column prop="isRate" label="做出评定">
+            <!-- <el-table-column prop="isRate" label="做出评定">
                 <template slot-scope="{ row }">
                     <el-tag :type="row.isRate ? '' : 'info'">{{ row.isRate }}</el-tag>
                 </template>
-            </el-table-column>
-            <el-table-column prop="isSureContent" label="考级内容">
+            </el-table-column> -->
+            <!-- <el-table-column prop="isSureContent" label="考级内容">
                 <template slot-scope="{ row }">
                     <el-tag :type="row.isSureContent ? '' : 'info'">{{ row.isSureContent }}</el-tag>
                 </template>
-            </el-table-column>
-            <el-table-column prop="isPostPoster" label="《疫情防控指南》海报">
+            </el-table-column> -->
+            <el-table-column prop="isPostPoster" label="疫情防控指南" min-width="65">
                 <template slot-scope="{ row }">
-                    <el-tag :type="row.isPostPoster ? '' : 'info'">{{ row.isPostPoster }}</el-tag>
+                    <!-- <el-tag :type="row.isPostPoster ? '' : 'info'">{{ row.isPostPoster }}</el-tag> -->
+                    <i class="el-icon-check" v-if="row.isPostPoster"></i>
+                    <i class="el-icon-close" v-else-if="!row.isPostPoster"></i>
+                    <i class="el-icon-minus" v-else></i>
                 </template>
             </el-table-column>
-            <el-table-column prop="isHaveThermometer" label="测量体温设备">
+            <el-table-column prop="isHaveThermometer" label="体温设备">
                 <template slot-scope="{ row }">
-                    <el-tag :type="row.isHaveThermometer ? '' : 'info'">{{ row.isHaveThermometer }}</el-tag>
+                    <!-- <el-tag :type="row.isHaveThermometer ? '' : 'info'">{{ row.isHaveThermometer }}</el-tag> -->
+                    <i class="el-icon-check" v-if="row.isHaveThermometer"></i>
+                    <i class="el-icon-close" v-else-if="!row.isHaveThermometer"></i>
+                    <i class="el-icon-minus" v-else></i>
                 </template>
             </el-table-column>
-            <el-table-column prop="isSchedule" label="预约限流">
+            <!-- <el-table-column prop="isSchedule" label="预约限流">
                 <template slot-scope="{ row }">
                     <el-tag :type="row.isSchedule ? '' : 'info'">{{ row.isSchedule }}</el-tag>
                 </template>
-            </el-table-column>
+            </el-table-column> -->
             <el-table-column prop="other" label="其他"> </el-table-column>
             <el-table-column label="视频" min-width="100">
                 <el-button type="primary" size="mini" plain @click="dialogVisible = true">查看视频</el-button>
@@ -91,7 +113,7 @@
             <el-table-column label="直播" min-width="100">
                 <el-button type="primary" size="mini" plain @click="showViedo = true">查看直播</el-button>
             </el-table-column>
-            <el-table-column label="操作" align="center" fixed="right" min-width="150">
+            <el-table-column label="操作" align="center" fixed="right" min-width="85">
                 <template slot-scope="{ row }">
                     <el-button @click="editRow(row)" type="primary" size="mini" plain>详情</el-button>
                     <!-- <el-button @click="deleteRow(row)" type="danger" size="mini" plain>删除</el-button> -->
@@ -148,6 +170,8 @@
                 onmouseleave="leaveVideo(this)"
                 ref="video"
                 v-if="showViedo"
+                autoplay="autoplay"
+                loop
             >
                 您的浏览器不支持 video 标签。
             </video>
@@ -196,12 +220,6 @@ export default {
         selection() {
             return this.$refs.table.selection.map(i => i.id);
         }
-        // videoUrl() {
-        //     return 'https://ticket-exchange.oss-cn-hangzhou.aliyuncs.com/video/2021-03-19-14-33-40dhjGRCso.mp4';
-        //     // return 'https://ticket-exchange.oss-cn-hangzhou.aliyuncs.com/video/2021-03-19-14-33-40dhjGRCso.mp4';
-        //     // return 'https://ticket-exchange.oss-cn-hangzhou.aliyuncs.com/video/2021-03-19-14-33-40dhjGRCso.mp4';
-        //     // return 'https://ticket-exchange.oss-cn-hangzhou.aliyuncs.com/video/2021-03-19-14-33-40dhjGRCso.mp4';
-        // }
     },
     methods: {
         beforeGetData() {

+ 36 - 1
src/main/vue/src/views/UserEdit.vue

@@ -33,11 +33,22 @@
                     placeholder="请选择"
                     value-key="name"
                     style="width:100%"
+                    @change="getDistrct"
                 >
                     <el-option v-for="item in authorities" :key="item.name" :label="item.description" :value="item">
                     </el-option>
                 </el-select>
             </el-form-item>
+            <el-form-item prop="district" label="地点" v-if="districtDisplay">
+                <el-select v-model="formData.district" style="width:100%">
+                    <el-option
+                        v-for="item in districts"
+                        :key="item.id"
+                        :value="item.name"
+                        :label="item.name"
+                    ></el-option>
+                </el-select>
+            </el-form-item>
             <el-form-item>
                 <el-button @click="onSave" :loading="$store.state.fetchingData" type="primary">保存</el-button>
                 <el-button @click="del" :loading="$store.state.fetchingData" type="danger" v-if="formData.id"
@@ -70,6 +81,15 @@ export default {
             .catch(e => {
                 console.log(e);
             });
+        this.$http
+            .get('/district/NJ')
+            .then(res => {
+                this.districts = res;
+            })
+            .catch(e => {
+                console.log(e);
+                this.$message.error(e.error);
+            });
     },
     data() {
         return {
@@ -98,7 +118,10 @@ export default {
                 ],
                 authorities: [{ required: true, message: '请选择角色', trigger: 'blur' }]
             },
-            authorities: []
+            authorities: [],
+            districts: [],
+            districtDisplay: false,
+            artTypeDisplay: false
         };
     },
     methods: {
@@ -166,6 +189,18 @@ export default {
                     }
                 })
                 .catch(() => {});
+        },
+        getDistrct() {
+            let authorities = this.formData.authorities;
+            this.districtDisplay = false;
+            this.artTypeDisplay = false;
+            authorities.forEach(element => {
+                if ('ROLE_DISTRICT' === element.name) {
+                    this.districtDisplay = true;
+                } else if ('ROLE_EXPERT' === element.name) {
+                    this.artTypeDisplay = true;
+                }
+            });
         }
     }
 };