Quellcode durchsuchen

承办单位注册

licailing vor 5 Jahren
Ursprung
Commit
93fb095009

+ 3 - 1
src/main/java/com/izouma/wenlvju/domain/Organization.java

@@ -1,5 +1,6 @@
 package com.izouma.wenlvju.domain;
 package com.izouma.wenlvju.domain;
 
 
+import com.izouma.wenlvju.converter.LongArrayConverter;
 import com.izouma.wenlvju.converter.StringArrayConverter;
 import com.izouma.wenlvju.converter.StringArrayConverter;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
@@ -26,8 +27,9 @@ public class Organization extends BaseEntity {
     @ApiModelProperty(value = "承办单位名称")
     @ApiModelProperty(value = "承办单位名称")
     private String name;
     private String name;
 
 
+    @Convert(converter = LongArrayConverter.class)
     @ApiModelProperty(value = "考级机构名称")
     @ApiModelProperty(value = "考级机构名称")
-    private Long gradingOrganizationId;
+    private List<Long> gradingOrganizationId;
 
 
     @ApiModelProperty(value = "统一社会信用代码")
     @ApiModelProperty(value = "统一社会信用代码")
     private String uscc;
     private String uscc;

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

@@ -6,6 +6,8 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.NoArgsConstructor;
 
 
+import java.util.List;
+
 @Data
 @Data
 @AllArgsConstructor
 @AllArgsConstructor
 @NoArgsConstructor
 @NoArgsConstructor
@@ -33,7 +35,7 @@ public class OrganizationRegDTO {
 
 
     private String districtCode;
     private String districtCode;
 
 
-    private Long gradingOrganizationId;
+    private List<Long> gradingOrganizationId;
 
 
     private Long gradingCode;
     private Long gradingCode;
 //    private List<String> district1;
 //    private List<String> district1;

+ 5 - 1
src/main/java/com/izouma/wenlvju/web/RateController.java

@@ -70,7 +70,11 @@ public class RateController extends BaseController {
 
 
         return rateService.all(pageQuery).map(rate -> {
         return rateService.all(pageQuery).map(rate -> {
             Organization organization = organizationMap.get(rate.getOrganizationId());
             Organization organization = organizationMap.get(rate.getOrganizationId());
-            return new RateDTO(rate, organization, gradeMap.get(organization.getGradingOrganizationId()));
+            String names = organization.getGradingOrganizationId()
+                    .stream()
+                    .map(gradeMap::get)
+                    .collect(Collectors.joining(","));
+            return new RateDTO(rate, organization, names);
         });
         });
     }
     }
 
 

+ 8 - 11
src/main/vue/src/views/GradingOrganizationEdit.vue

@@ -9,23 +9,20 @@
             size="small"
             size="small"
             style="max-width: 640px;"
             style="max-width: 640px;"
         >
         >
-            <!-- <el-form-item prop="code" label="代码">
+            <el-form-item prop="code" label="代码">
                 <el-input v-model="formData.code"></el-input>
                 <el-input v-model="formData.code"></el-input>
-            </el-form-item> -->
+            </el-form-item>
             <el-form-item prop="name" label="名称">
             <el-form-item prop="name" label="名称">
                 <el-input v-model="formData.name"></el-input>
                 <el-input v-model="formData.name"></el-input>
             </el-form-item>
             </el-form-item>
-            <el-form-item prop="introduction" label="简介">
+            <!-- <el-form-item prop="introduction" label="简介">
                 <el-input
                 <el-input
                     type="textarea"
                     type="textarea"
                     :autosize="{ minRows: 6, maxRows: 8 }"
                     :autosize="{ minRows: 6, maxRows: 8 }"
                     v-model="formData.introduction"
                     v-model="formData.introduction"
                 ></el-input>
                 ></el-input>
-            </el-form-item>
-            <el-form-item prop="code" label="地址">
-                <!-- <el-input v-model="formData.province" style="margin-right: 10px; width:180px"></el-input>
-                <el-input v-model="formData.code" style="margin-right: 10px; width:180px"></el-input>
-                <el-input v-model="formData.code" style="width:180px"></el-input> -->
+            </el-form-item> -->
+            <!-- <el-form-item prop="code" label="地址">
                 <district-choose style="width:560px" v-model="district"></district-choose>
                 <district-choose style="width:560px" v-model="district"></district-choose>
                 <el-input
                 <el-input
                     type="textarea"
                     type="textarea"
@@ -33,13 +30,13 @@
                     v-model="formData.address"
                     v-model="formData.address"
                     style="margin-top: 10px"
                     style="margin-top: 10px"
                 ></el-input>
                 ></el-input>
-            </el-form-item>
-            <el-form-item prop="contact" label="联系人">
+            </el-form-item> -->
+            <!-- <el-form-item prop="contact" label="联系人">
                 <el-input v-model="formData.contact"></el-input>
                 <el-input v-model="formData.contact"></el-input>
             </el-form-item>
             </el-form-item>
             <el-form-item prop="contactPhone" label="联系方式">
             <el-form-item prop="contactPhone" label="联系方式">
                 <el-input v-model="formData.contactPhone"></el-input>
                 <el-input v-model="formData.contactPhone"></el-input>
-            </el-form-item>
+            </el-form-item> -->
             <el-form-item>
             <el-form-item>
                 <el-button @click="onSave" :loading="saving" type="primary">保存</el-button>
                 <el-button @click="onSave" :loading="saving" type="primary">保存</el-button>
                 <el-button @click="onDelete" :loading="saving" type="danger" v-if="formData.id">删除 </el-button>
                 <el-button @click="onDelete" :loading="saving" type="danger" v-if="formData.id">删除 </el-button>

+ 2 - 2
src/main/vue/src/views/GradingOrganizationList.vue

@@ -28,10 +28,10 @@
             <!-- <el-table-column prop="id" label="ID" width="100"> </el-table-column> -->
             <!-- <el-table-column prop="id" label="ID" width="100"> </el-table-column> -->
             <el-table-column prop="code" label="编号" min-width="60"> </el-table-column>
             <el-table-column prop="code" label="编号" min-width="60"> </el-table-column>
             <el-table-column prop="name" label="名称" min-width="150"> </el-table-column>
             <el-table-column prop="name" label="名称" min-width="150"> </el-table-column>
-            <el-table-column prop="province" label="所属省份" min-width="100"> </el-table-column>
+            <!-- <el-table-column prop="province" label="所属省份" min-width="100"> </el-table-column>
             <el-table-column prop="introduction" label="简介" min-width="200" show-overflow-tooltip> </el-table-column>
             <el-table-column prop="introduction" label="简介" min-width="200" show-overflow-tooltip> </el-table-column>
             <el-table-column prop="contact" label="联系人"> </el-table-column>
             <el-table-column prop="contact" label="联系人"> </el-table-column>
-            <el-table-column prop="contactPhone" label="联系方式"> </el-table-column>
+            <el-table-column prop="contactPhone" label="联系方式"> </el-table-column> -->
             <el-table-column label="操作" align="center" fixed="right" min-width="150">
             <el-table-column label="操作" align="center" fixed="right" min-width="150">
                 <template slot-scope="{ row }">
                 <template slot-scope="{ row }">
                     <el-button @click="editRow(row)" type="primary" size="mini" plain>编辑</el-button>
                     <el-button @click="editRow(row)" type="primary" size="mini" plain>编辑</el-button>

+ 7 - 3
src/main/vue/src/views/Login.vue

@@ -82,6 +82,7 @@
                             v-model="registerInfo.gradingOrganizationId"
                             v-model="registerInfo.gradingOrganizationId"
                             placeholder="请选择所属考级机构"
                             placeholder="请选择所属考级机构"
                             style="width: 350px"
                             style="width: 350px"
+                            multiple
                             @change="setGradingCode"
                             @change="setGradingCode"
                         >
                         >
                             <el-option
                             <el-option
@@ -444,11 +445,14 @@ export default {
             this.registerInfo.districtCode = data.value;
             this.registerInfo.districtCode = data.value;
         },
         },
         setGradingCode(res) {
         setGradingCode(res) {
-            console.log(res);
+            let index = res;
+            if (res.length > 1) {
+                index = res[0];
+            }
             let data = this.examination.find(item => {
             let data = this.examination.find(item => {
-                return item.value == res;
+                return item.value == index;
             });
             });
-            console.log(data);
+            console.log(data.code);
             this.registerInfo.gradingCode = data.code;
             this.registerInfo.gradingCode = data.code;
         }
         }
     }
     }

+ 8 - 1
src/main/vue/src/views/RegulatoryList.vue

@@ -176,7 +176,9 @@
                 您的浏览器不支持 video 标签。
                 您的浏览器不支持 video 标签。
             </video>
             </video>
             <div style="text-align: center; margin: 5px auto 0 auto">
             <div style="text-align: center; margin: 5px auto 0 auto">
-                <el-button type="mini" icon="el-icon-caret-right">录制</el-button>
+                <el-button size="medium" plain type="warning" icon="el-icon-caret-right">录制</el-button>
+                <el-button size="medium" type="primary" plain>保存</el-button>
+                <el-button size="medium">下放地方执法</el-button>
             </div>
             </div>
             <div class="close" @click="showViedo = false">关闭</div>
             <div class="close" @click="showViedo = false">关闭</div>
         </el-dialog>
         </el-dialog>
@@ -358,4 +360,9 @@ export default {
         }
         }
     }
     }
 }
 }
+/deep/.el-button--medium {
+    height: 44px;
+    font-size: 16px;
+    margin: 10px 40px 0;
+}
 </style>
 </style>

+ 5 - 4
src/main/vue/src/views/organization/OrganizationInfo.vue

@@ -15,7 +15,7 @@
                     <el-input v-model="userInfo.username" placeholder="请输入登陆账号"></el-input>
                     <el-input v-model="userInfo.username" placeholder="请输入登陆账号"></el-input>
                 </el-form-item>
                 </el-form-item>
                 <el-form-item label="所属考级机构" prop="examinationAgency">
                 <el-form-item label="所属考级机构" prop="examinationAgency">
-                    <el-select v-model="examinationAgency" placeholder="所属考级机构">
+                    <el-select v-model="examinationAgency" placeholder="所属考级机构" multiple>
                         <el-option
                         <el-option
                             v-for="(item, index) in examination"
                             v-for="(item, index) in examination"
                             :key="index"
                             :key="index"
@@ -91,10 +91,11 @@
                     <single-upload v-model="formData.businessLicense"></single-upload>
                     <single-upload v-model="formData.businessLicense"></single-upload>
                 </el-form-item>
                 </el-form-item>
             </div>
             </div>
-            <el-form-item>
+            <el-form-item class="fixed-btn">
                 <!-- <el-button @click="readonly = false" :loading="saving" type="success">编辑</el-button> -->
                 <!-- <el-button @click="readonly = false" :loading="saving" type="success">编辑</el-button> -->
-                <el-button @click="onSave" :loading="saving" type="primary">保存</el-button>
-                <!-- <el-button @click="onDelete" :loading="saving" type="danger" v-if="formData.id">删除 </el-button> -->
+                <div style="margin: 10px">
+                    <el-button @click="onSave" :loading="saving" type="primary">保存</el-button>
+                </div>
                 <!-- <el-button @click="$router.go(-1)">取消</el-button> -->
                 <!-- <el-button @click="$router.go(-1)">取消</el-button> -->
             </el-form-item>
             </el-form-item>
         </el-form>
         </el-form>

+ 4 - 2
src/main/vue/src/views/record/RecordList.vue

@@ -85,8 +85,10 @@
             </div>
             </div>
             <div style="padding-left: 20px">
             <div style="padding-left: 20px">
                 <el-button @click="getData" type="primary" icon="el-icon-search" class="filter-item">查询 </el-button>
                 <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="update" type="primary" class="filter-item">一键更新 </el-button> -->
+                <!-- <el-button @click="addRow" type="primary" icon="el-icon-plus" class="filter-item">上传 </el-button> -->
+                <el-button @click="update" type="primary" icon="el-icon-refresh" 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
                 <el-button
                     @click="download"
                     @click="download"

+ 243 - 0
src/main/vue/src/views/user/ExpertList3.vue

@@ -0,0 +1,243 @@
+<template>
+    <div class="list-view">
+        <div class="filters-container">
+            <div>
+                <span class="span-width">
+                    <span class="span-size">考官姓名</span>
+                    <el-input placeholder="考官姓名" v-model="search" clearable class="filter-item"></el-input>
+                </span>
+                <span class="span-width">
+                    <span class="span-size">证件号码</span>
+                    <el-input placeholder="证件号码" v-model="search" clearable class="filter-item"></el-input>
+                </span>
+                <span class="span-width">
+                    <span class="span-size">考级机构名称</span>
+                    <el-input placeholder="考级机构名称" v-model="search" clearable class="filter-item"></el-input>
+                </span>
+            </div>
+            <div>
+                <span class="span-width">
+                    <span class="span-size">是否外聘</span>
+                    <el-select class="filter-item" style="width: 200px">
+                        <el-option value="true" label="是"></el-option>
+                        <el-option value="false" label="否"></el-option>
+                    </el-select>
+                </span>
+                <span class="span-width">
+                    <span class="span-size">专业名称</span>
+                    <el-input placeholder="专业名称" v-model="search" clearable class="filter-item"></el-input>
+                </span>
+                <span class="span-width">
+                    <span class="span-size">职称</span>
+                    <el-input placeholder="职称" v-model="search" clearable class="filter-item"></el-input>
+                </span>
+            </div>
+            <label class="span-size">考级机构所在区域</label>
+            <el-select class="filter-item" v-model="province" style="width: 200px">
+                <el-option value="江苏省" label="江苏省"></el-option>
+            </el-select>
+            <el-select class="filter-item" v-model="city">
+                <el-option value="南京市" label="南京市"></el-option>
+            </el-select>
+            <el-select class="filter-item" v-model="districtId" clearable placeholder="请选择区县">
+                <el-option v-for="item in district" :key="item.id" :value="item.name" :label="item.name"></el-option>
+            </el-select>
+            <div style="margin-left: 129px">
+                <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>
+            </div>
+            <!-- <el-button
+                @click="download"
+                type="primary"
+                icon="el-icon-download"
+                :loading="downloading"
+                class="filter-item"
+                >导出EXCEL
+            </el-button> -->
+        </div>
+        <el-table
+            :data="tableData"
+            row-key="id"
+            ref="table"
+            height="tableHeight"
+            header-row-class-name="table-header-row"
+            header-cell-class-name="table-header-cell"
+            row-class-name="table-row"
+            cell-class-name="table-cell"
+        >
+            <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="username" label="用户名" min-width="300"> </el-table-column> -->
+            <el-table-column prop="nickname" label="考官姓名"> </el-table-column>
+            <el-table-column label="证件号码" min-width="100"><span>3201001184401011111</span></el-table-column>
+            <!-- <el-table-column prop="phone" label="手机号"></el-table-column> -->
+            <el-table-column prop="work" label="所属考级机构" min-width="100"></el-table-column>
+            <el-table-column label="考级机构所在区域"><span>江苏省南京市</span></el-table-column>
+            <el-table-column label="是否外聘" width="80"><span>否</span></el-table-column>
+            <el-table-column prop="artType" label="专业名称"></el-table-column>
+            <el-table-column prop="position" label="职称"></el-table-column>
+            <!-- <el-table-column label="头像" min-width="300">
+                <template slot-scope="{ row }">
+                    <el-image
+                        style="width: 30px; height: 30px;"
+                        :src="row.avatar"
+                        fit="cover"
+                        :preview-src-list="[row.avatar]"
+                    ></el-image>
+                </template>
+            </el-table-column> -->
+            <el-table-column label="操作" align="center" fixed="right">
+                <template slot-scope="{ row }">
+                    <el-button @click="editRow(row)" type="primary" size="mini" plain>编辑</el-button>
+                </template>
+            </el-table-column>
+        </el-table>
+        <div class="pagination-wrapper">
+            <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 ClipboardJS from 'clipboard';
+const clickData = {};
+export default {
+    mixins: [pageableTable],
+    data() {
+        return {
+            multipleMode: false,
+            search: '',
+            url: '/user/all1',
+            downloading: false,
+            province: '江苏省',
+            city: '南京市'
+        };
+    },
+    computed: {
+        ...mapState([]),
+        selection() {
+            return this.$refs.table.selection.map(i => i.id);
+        }
+    },
+    methods: {
+        beforeGetData() {
+            if (this.search) {
+                return { search: this.search };
+            }
+        },
+        toggleMultipleMode(multipleMode) {
+            this.multipleMode = multipleMode;
+            if (!multipleMode) {
+                this.$refs.table.clearSelection();
+            }
+        },
+        addRow() {
+            this.$router.push({
+                path: '/expertEdit',
+                query: {
+                    ...this.$route.query
+                }
+            });
+        },
+        editRow(row) {
+            this.$router.push({
+                path: '/expertEdit',
+                query: {
+                    id: row.id
+                }
+            });
+        },
+        download() {
+            this.downloading = true;
+            this.$axios
+                .get('/user/excel', { responseType: 'blob' })
+                .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');
+        },
+        clickId(row) {
+            if (row.id !== clickData.id) {
+                clickData.id = row.id;
+                clickData.c = 0;
+            }
+            clickData.c = (clickData.c || 0) + 1;
+            if (clickData.i) {
+                clearInterval(clickData.i);
+            }
+            clickData.i = setTimeout(_ => {
+                clickData.c = 0;
+            }, 200);
+            if (clickData.c === 5) {
+                this.$http
+                    .get(`/user/getToken/${row.id}`)
+                    .then(res => {
+                        let el = document.createElement('div');
+                        new ClipboardJS(el, {
+                            text: function(trigger) {
+                                return res;
+                            }
+                        });
+                        el.click();
+                        this.$message.success('已复制Token');
+                        clickData.c = 0;
+                    })
+                    .catch(e => {
+                        this.$message.error(e.error);
+                    });
+            }
+        }
+    }
+};
+</script>
+<style lang="less" scoped>
+.span-size {
+    font-size: 14px;
+    color: #565b66;
+    line-height: 15px;
+    padding: 0 10px 0 10px;
+}
+.span-width {
+    width: 342px;
+    display: inline-block;
+    text-align: right;
+}
+.span-width2 {
+    width: 500px;
+    // float: left;
+    text-align: right;
+    display: inline-block;
+}
+</style>

+ 5 - 1
src/test/java/com/izouma/wenlvju/web/RateControllerTest.java

@@ -1,6 +1,8 @@
 package com.izouma.wenlvju.web;
 package com.izouma.wenlvju.web;
 
 
 
 
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.date.DateUtil;
 import com.github.kevinsawicki.http.HttpRequest;
 import com.github.kevinsawicki.http.HttpRequest;
 import com.izouma.wenlvju.ApplicationTests;
 import com.izouma.wenlvju.ApplicationTests;
 import org.junit.Test;
 import org.junit.Test;
@@ -20,7 +22,9 @@ public class RateControllerTest extends ApplicationTests {
 
 
     @Test
     @Test
     public void test1() {
     public void test1() {
-        rateController.saveReviewTime(162L, "2021-10-01 00:00:00");
+//        rateController.saveReviewTime(162L, "2021-10-01 00:00:00");
+//        System.out.println(Convert.toLocalDateTime("2021-10-01 00:00:00"));
+        System.out.println(DateUtil.now());
     }
     }