x1ongzhu 3 years ago
parent
commit
7fcf52777f

+ 8 - 0
src/main/java/com/izouma/jmrh/domain/User.java

@@ -1,6 +1,8 @@
 package com.izouma.jmrh.domain;
 
 import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.izouma.jmrh.annotations.Searchable;
 import com.izouma.jmrh.config.Constants;
@@ -30,17 +32,21 @@ import java.util.Set;
 @Builder
 @Where(clause = "enabled = 1")
 @ApiModel(value = "用户", description = "用户")
+@ExcelIgnoreUnannotated
 public class User extends BaseEntity implements Serializable {
 
     @Pattern(regexp = Constants.Regex.USERNAME)
     @Size(min = 1, max = 50)
     @Column(nullable = false, unique = true)
     @Searchable
+    @ExcelProperty("用户名")
     private String username;
 
     @Searchable
+    @ExcelProperty("昵称")
     private String nickname;
 
+    @ExcelProperty("头像")
     private String avatar;
 
     @JsonIgnore
@@ -81,9 +87,11 @@ public class User extends BaseEntity implements Serializable {
 
     @Searchable
     @Convert(converter = EncryptConverter.class)
+    @ExcelProperty("手机号")
     private String phone;
 
     @Column(unique = true)
+    @ExcelProperty("邮箱")
     private String email;
 
     @ManyToOne(fetch = FetchType.LAZY)

+ 6 - 4
src/main/java/com/izouma/jmrh/dto/ArtNeedVO.java

@@ -10,6 +10,7 @@ import org.springframework.data.annotation.CreatedDate;
 import javax.persistence.Entity;
 import java.io.Serializable;
 import java.time.LocalDateTime;
+
 @Data
 public class ArtNeedVO {
 
@@ -29,10 +30,11 @@ public class ArtNeedVO {
     @JsonProperty("count")
     private Long count;
 
-    public ArtNeedVO(LocalDateTime createdAt, Long count){
-        this.createdAt=createdAt;
-        this.count=count;
+    public ArtNeedVO(LocalDateTime createdAt, Long count) {
+        this.createdAt = createdAt;
+        this.count = count;
     }
-    public ArtNeedVO(){
+
+    public ArtNeedVO() {
     }
 }

+ 50 - 0
src/main/jmrh/src/components/AutoInput.vue

@@ -0,0 +1,50 @@
+<template>
+    <el-autocomplete
+        v-model="inputValue"
+        :fetch-suggestions="fetchSuggestions"
+        :placeholder="placeholder"
+    ></el-autocomplete>
+</template>
+<script>
+export default {
+    props: {
+        suggestions: {
+            type: Array,
+            default: () => []
+        },
+        value: {},
+        placeholder: {
+            type: String,
+            default: '请输入'
+        }
+    },
+    data() {
+        return {
+            inputValue: ''
+        };
+    },
+    created() {
+        this.inputValue = this.value;
+    },
+    methods: {
+        fetchSuggestions(queryString, cb) {
+            if (this.suggestions.length === 0) {
+                cb([]);
+                return;
+            }
+            cb(
+                this.suggestions.map(item => {
+                    return {
+                        value: item
+                    };
+                })
+            );
+        }
+    },
+    watch: {
+        inputValue(val) {
+            this.$emit('input', val);
+        }
+    }
+};
+</script>

+ 2 - 0
src/main/jmrh/src/main.js

@@ -13,6 +13,7 @@ import SingleUpload from '@/components/SingleUpload';
 import FileUpload from '@/components/FileUpload';
 import { mapState } from 'vuex';
 import Formatters from '@/mixins/formatters';
+import AutoInput from '@/components/AutoInput';
 Vue.config.productionTip = false;
 
 Vue.use(ElementUI, { size: 'small' });
@@ -23,6 +24,7 @@ Vue.component('multi-upload', MultiUpload);
 Vue.component('single-upload', SingleUpload);
 Vue.component('rich-text', RichText);
 Vue.component('file-upload', FileUpload);
+Vue.component('auto-input', AutoInput);
 Vue.mixin(Formatters);
 
 Vue.mixin({

+ 16 - 20
src/main/jmrh/src/views/mine/editInfo.vue

@@ -23,12 +23,24 @@
                 <el-input v-model="form.orgName" placeholder="请输入单位名称"></el-input>
             </el-form-item>
             <el-form-item label="单位性质" prop="orgType">
-                <el-autocomplete
-                    class="inline-input"
+                <auto-input
                     v-model="form.orgType"
-                    :fetch-suggestions="fetchOrgType"
                     placeholder="请输入单位性质"
-                ></el-autocomplete>
+                    :suggestions="[
+                        '国家行政机构',
+                        '公私合作企业',
+                        '中外合资企业',
+                        '国有企业',
+                        '集体企业',
+                        '股份合作企业',
+                        '联营企业',
+                        '有限责任公司',
+                        '股份有限公司',
+                        '私营企业',
+                        '个体工商户',
+                        '其他'
+                    ]"
+                ></auto-input>
             </el-form-item>
             <el-form-item label="上市公司" prop="publicCompany">
                 <el-radio v-model="form.publicCompany" :label="true">是</el-radio>
@@ -145,22 +157,6 @@ export default {
         };
     },
     methods: {
-        fetchOrgType(queryString, cb) {
-            cb([
-                { value: '国家行政机构' },
-                { value: '公私合作企业' },
-                { value: '中外合资企业' },
-                { value: '国有企业' },
-                { value: '集体企业' },
-                { value: '股份合作企业' },
-                { value: '联营企业' },
-                { value: '有限责任公司' },
-                { value: '股份有限公司' },
-                { value: '私营企业' },
-                { value: '个体工商户' },
-                { value: '其他' }
-            ]);
-        },
         submit() {
             this.$refs.form
                 .validate()

+ 10 - 2
src/main/jmrh/src/views/mine/releaseRequirement.vue

@@ -258,7 +258,7 @@
             <el-form-item prop="phone" label="联系方式">
                 <el-input v-model="productFormData.phone"></el-input>
             </el-form-item>
-            <el-form-item prop="address" label="联系地址">
+            <el-form-item prop="address" label="联系地址">
                 <el-input v-model="productFormData.address"></el-input>
             </el-form-item>
 
@@ -310,7 +310,14 @@ export default {
                 name: [{ required: true, message: '请输入标题', trigger: 'blur' }],
                 description: [{ required: true, message: '请输入简介', trigger: 'blur' }],
                 contact: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
-                phone: [{ required: true, message: '请输入联系方式', trigger: 'blur' }]
+                phone: [{ required: true, message: '请输入联系方式', trigger: 'blur' }],
+                dataType: [{ required: true, message: '请选择设备类型', trigger: 'blur' }],
+                techType: [{ required: true, message: '请选择技术类型', trigger: 'blur' }],
+                applicationField: [{ required: true, message: '请选择应用领域', trigger: 'blur' }],
+                money: [{ required: true, message: '请输入价格', trigger: 'blur' }],
+                stageType: [{ required: true, message: '请选择融资阶段', trigger: 'blur' }],
+                industryType: [{ required: true, message: '请选择行业类型', trigger: 'blur' }],
+                expireTime: [{ required: true, message: '请选择有效时间', trigger: 'blur' }]
             },
             applicationFieldOptions: [],
             // advancedTypeOptions: [],
@@ -329,6 +336,7 @@ export default {
                 if (valid) {
                     this.submit();
                 } else {
+                    this.$message.error('表单有误,请检查后重提交');
                     return false;
                 }
             });

+ 13 - 2
src/main/jmrh/src/views/mine/releaseSupply.vue

@@ -14,7 +14,7 @@
             size="small"
             style="max-width: 500px;"
         >
-            <el-form-item prop="supplyId" label="供应类别">
+            <el-form-item prop="type" label="供应类别">
                 <el-select v-model="productFormData.type" clearable filterable placeholder="请选择">
                     <el-option v-for="item in supplyType" :key="item.id" :label="item.name" :value="item.id">
                     </el-option>
@@ -111,7 +111,17 @@ export default {
             supplyId: '',
             saving: false,
             productFormData: {},
-            productRules: {},
+            productRules: {
+                type: [{ required: true, message: '请选择供应类别', trigger: 'change' }],
+                name: [{ required: true, message: '请输入标题', trigger: 'blur' }],
+                description: [{ required: true, message: '请输入简介', trigger: 'blur' }],
+                dataType: [{ required: true, message: '请选择设备类型', trigger: 'blur' }],
+                techType: [{ required: true, message: '请选择技术类型', trigger: 'blur' }],
+                applicationField: [{ required: true, message: '请选择应用领域', trigger: 'blur' }],
+                expireTime: [{ required: true, message: '请选择有效时间', trigger: 'blur' }],
+                contact: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
+                phone: [{ required: true, message: '请输入联系方式', trigger: 'blur' }]
+            },
             applicationFieldOptions: [],
             // advancedTypeOptions: [],
             sblxDataTypeOptions: [],
@@ -145,6 +155,7 @@ export default {
                 if (valid) {
                     this.submit();
                 } else {
+                    this.$message.error('表单有误,请检查后重提交');
                     return false;
                 }
             });

+ 1 - 1
src/main/resources/application.yaml

@@ -65,7 +65,7 @@ wx:
     notifyUrl: http://zmj.izouma.com/wx/payNotify
     refundNotifyUrl: http://zmj.izouma.com/wx/refundNotify
 storage:
-  provider: local
+  provider: aliyun
   local_path: /Users/drew/Projects/Java/jmrh/upload/
   prefix: /
 aliyun: