Browse Source

Merge branch 'dev' of http://git.izouma.com/licailing/zhirongip into dev

xuqiang 4 năm trước cách đây
mục cha
commit
77dc76b8da

+ 3 - 3
src/main/java/com/izouma/zhirongip/converter/NumOfIpListConverter.java

@@ -1,6 +1,6 @@
 package com.izouma.zhirongip.converter;
 
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.izouma.zhirongip.domain.resource.NumOfIp;
 import org.apache.commons.lang3.StringUtils;
 
@@ -11,14 +11,14 @@ public class NumOfIpListConverter implements AttributeConverter<List<NumOfIp>, S
     @Override
     public String convertToDatabaseColumn(List<NumOfIp> list) {
         if (list != null)
-            return JSON.toJSONString(list);
+            return JSONObject.toJSONString(list);
         return null;
     }
 
     @Override
     public List<NumOfIp> convertToEntityAttribute(String s) {
         if (StringUtils.isNotEmpty(s)) {
-            return JSON.parseArray(s, NumOfIp.class);
+            return JSONObject.parseArray(s, NumOfIp.class);
         }
         return null;
     }

+ 2 - 2
src/main/java/com/izouma/zhirongip/domain/resource/NumOfIp.java

@@ -2,11 +2,11 @@ package com.izouma.zhirongip.domain.resource;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
-import java.util.Arrays;
-import java.util.List;
 
 @AllArgsConstructor
+@NoArgsConstructor
 @Data
 public class NumOfIp {
     private Long ip;

+ 8 - 1
src/main/java/com/izouma/zhirongip/domain/resource/PolicyLaw.java

@@ -3,7 +3,9 @@ package com.izouma.zhirongip.domain.resource;
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.izouma.zhirongip.annotations.Searchable;
 import com.izouma.zhirongip.annotations.SearchableOne;
+import com.izouma.zhirongip.converter.FileObjectListConverter;
 import com.izouma.zhirongip.domain.BaseEntity;
+import com.izouma.zhirongip.domain.FileObject;
 import com.izouma.zhirongip.domain.Setting;
 import com.izouma.zhirongip.enums.ResourceCategory;
 import io.swagger.annotations.ApiModel;
@@ -18,6 +20,7 @@ import org.hibernate.annotations.Where;
 
 import javax.persistence.*;
 import java.time.LocalDate;
+import java.util.List;
 
 @Data
 @AllArgsConstructor
@@ -31,7 +34,7 @@ public class PolicyLaw extends BaseEntity {
     @SearchableOne
     @ApiModelProperty(value = "名称")
     private String name;
-    
+
     /*
     setting 政策-7 新闻-8 法律-9
      */
@@ -81,6 +84,10 @@ public class PolicyLaw extends BaseEntity {
     @Enumerated(EnumType.STRING)
     private ResourceCategory category;
 
+    @Column(columnDefinition = "TEXT ")
+    @Convert(converter = FileObjectListConverter.class)
+    private List<FileObject> annex;
+
 //    @ApiModelProperty(value = "浏览量")
 //    private long view;
 }

+ 2 - 2
src/main/vue/src/main.js

@@ -18,7 +18,7 @@ import PageTitle from '@/components/PageTitle';
 import 'normalize.css/normalize.css';
 import './styles/element_theme/index.css';
 import theme from '!less-vars-loader!./styles/common/theme.less';
-import echarts from 'echarts';
+// import echarts from 'echarts';
 import ExcelUpload from '@/components/ExcelUpload';
 
 // import VueAMap from "vue-amap";
@@ -46,7 +46,7 @@ Vue.config.productionTip = false;
 Vue.use(ElementUI, { size: 'small' });
 Vue.use(http);
 Vue.use(dataExport);
-Vue.prototype.$echarts = echarts;
+// Vue.prototype.$echarts = echarts;
 Vue.component('sortable-header', SortableHeader);
 Vue.component('multi-upload', MultiUpload);
 Vue.component('single-upload', SingleUpload);

+ 2 - 2
src/main/vue/src/plugins/http.js

@@ -5,8 +5,8 @@ import qs from 'qs';
 let baseUrl = 'http://localhost:8080';
 switch (process.env.NODE_ENV) {
     case 'development':
-        // baseUrl = 'http://localhost:8080';
-        baseUrl = 'http://zhirongip.izouma.com';
+        baseUrl = 'http://localhost:8080';
+        // baseUrl = 'http://zhirongip.izouma.com';
         // baseUrl = 'http://192.168.50.127:8080';
         break;
     case 'test':

+ 31 - 3
src/main/vue/src/views/ExpertEdit.vue

@@ -25,7 +25,13 @@
                         <el-input v-model="formData.name"></el-input>
                     </el-form-item>
                     <el-form-item prop="sex" label="性别">
-                        <el-select v-model="formData.sex" clearable filterable placeholder="请选择">
+                        <el-select
+                            v-model="formData.sex"
+                            clearable
+                            filterable
+                            placeholder="请选择"
+                            @change="chageAvatar"
+                        >
                             <el-option
                                 v-for="item in sexOptions"
                                 :key="item.value"
@@ -106,6 +112,14 @@ export default {
             this.$http
                 .get('expert/get/' + this.$route.query.id)
                 .then(res => {
+                    if (!res.avatar) {
+                        res.avatar =
+                            'https://zhirongip.oss-cn-hangzhou.aliyuncs.com/image/2021-08-13-09-59-23yoEbtbgH.png';
+                        if (res.sex == '女') {
+                            res.avatar =
+                                'https://zhirongip.oss-cn-hangzhou.aliyuncs.com/image/2021-08-13-09-59-33aDGeVuix.png';
+                        }
+                    }
                     this.formData = res;
                 })
                 .catch(e => {
@@ -149,7 +163,9 @@ export default {
     data() {
         return {
             saving: false,
-            formData: {},
+            formData: {
+                avatar: 'https://zhirongip.oss-cn-hangzhou.aliyuncs.com/image/2021-08-13-09-59-23yoEbtbgH.png'
+            },
             rules: {
                 phone: [
                     {
@@ -171,7 +187,11 @@ export default {
                 { label: '女', value: '女' }
             ],
             fieldOptions: [],
-            affiliations: []
+            affiliations: [],
+            avatars: [
+                'https://zhirongip.oss-cn-hangzhou.aliyuncs.com/image/2021-08-13-09-59-23yoEbtbgH.png',
+                'https://zhirongip.oss-cn-hangzhou.aliyuncs.com/image/2021-08-13-09-59-33aDGeVuix.png'
+            ]
         };
     },
     methods: {
@@ -216,6 +236,14 @@ export default {
                         this.$message.error((e || {}).error || '删除失败');
                     }
                 });
+        },
+        chageAvatar(res) {
+            let avatar = this.formData.avatar;
+            if (res == '男' && (avatar == this.avatars[1] || avatar == '')) {
+                this.formData.avatar = this.avatars[0];
+            } else if (res == '女' && (avatar == this.avatars[0] || avatar == '')) {
+                this.formData.avatar = this.avatars[1];
+            }
         }
     }
 };

+ 10 - 1
src/main/vue/src/views/resource/ExpertEdit.vue

@@ -95,7 +95,14 @@ export default {
                     if (!res.field) {
                         res.field = [];
                     }
+                    if (!res.qualification) {
+                        res.qualification = [
+                            'https://zhirongip.oss-cn-hangzhou.aliyuncs.com/image/2021-08-13-09-59-33aDGeVuix.png'
+                        ];
+                    }
                     this.formData = res;
+                    console.log('1111');
+                    console.log(this.formData.qualification);
                 })
                 .catch(e => {
                     console.log(e);
@@ -122,7 +129,9 @@ export default {
     data() {
         return {
             saving: false,
-            formData: {},
+            formData: {
+                qualification: ['https://zhirongip.oss-cn-hangzhou.aliyuncs.com/image/2021-08-13-09-59-33aDGeVuix.png']
+            },
             rules: {
                 name: [{ required: true, message: '请输入姓名' }],
                 field: [{ required: true, message: '请选择专业领域', trigger: 'blur' }],

+ 5 - 20
src/main/vue/src/views/resource/PolicyLawEdit.vue

@@ -82,33 +82,18 @@
                     <el-form-item prop="content" label="内容">
                         <rich-text v-model="formData.content"></rich-text>
                     </el-form-item>
-                    <!-- <el-form-item prop="category" label="category">
-                        <el-select v-model="formData.category" clearable filterable placeholder="请选择">
-                            <el-option
-                                v-for="item in categoryOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value"
-                            >
-                            </el-option>
-                        </el-select>
-                    </el-form-item> -->
-                    <!-- <el-form-item class="form-submit">
-                        <el-button @click="onSave" :loading="saving" type="primary">
-                            保存
-                        </el-button>
-                        <el-button @click="onDelete" :disabled="saving" type="danger" v-if="formData.id">
-                            删除
-                        </el-button>
-                        <el-button @click="$router.go(-1)" :disabled="saving">取消</el-button>
-                    </el-form-item> -->
+                    <el-form-item label="附件" prop="annex" v-if="formData.category == 'NEWS'">
+                        <file-upload v-model="formData.annex" format="json"></file-upload>
+                    </el-form-item>
                 </el-form>
             </div>
         </div>
     </div>
 </template>
 <script>
+import FileUpload from '../../components/FileUpload.vue';
 export default {
+    components: { FileUpload },
     name: 'PolicyLawEdit',
     created() {
         if (this.$route.query.id) {

+ 2 - 2
src/main/vue/src/views/supply/TechnicalManagerEdit.vue

@@ -18,9 +18,9 @@
                     size="small"
                     style="max-width: 600px;"
                 >
-                    <el-form-item prop="avatar" label="头像">
+                    <!-- <el-form-item prop="avatar" label="头像">
                         <crop-upload v-model="formData.avatar"></crop-upload>
-                    </el-form-item>
+                    </el-form-item> -->
                     <el-form-item prop="name" label="姓名">
                         <el-input v-model="formData.name"></el-input>
                     </el-form-item>

+ 2 - 2
src/main/zhi-rong-web/src/components/MapContainer.vue

@@ -18,8 +18,8 @@ export default {
     data() {
         return {
             center: {
-                lng: 118.880955,
-                lat: 32.022434
+                lng: 118.884188,
+                lat: 32.01995
             }
         };
     }

+ 10 - 9
src/main/zhi-rong-web/src/views/Home.vue

@@ -1,17 +1,18 @@
 <template>
     <div class="home">
         <banner></banner>
-        <div class="center-content" style="padding-top: 80px">
+        <div class="center-content" style="padding-top: 80px;">
             <div class="news">
                 <div class="carousel news-item" @mouseover="autoplay = false" @mouseout="autoplay = true">
                     <el-carousel ref="carousel" height="360px" arrow="never" trigger="hover" @change="changeCarousl">
                         <el-carousel-item v-for="(item, index) in newsListIndex" :key="index">
-                            <img
-                                @click="all('/news')"
-                                style="width: 100%; height: 100%; cursor: pointer"
+                            <el-image
                                 :src="item.img"
-                                alt=""
-                            />
+                                @click="all('/news')"
+                                style="width: 100%; height: 100%; cursor: pointer;"
+                                fit="cover"
+                            ></el-image>
+
                             <p class="swiper-itemText">{{ item.name }}</p>
                         </el-carousel-item>
                     </el-carousel>
@@ -57,8 +58,8 @@
                         </router-link>
                     </div>
                     <div class="empty" v-else>
-                        <i class="el-icon-takeaway-box" style="margin-left: 24px"></i>
-                        <div style="font-size: 20px">暂无数据</div>
+                        <i class="el-icon-takeaway-box" style="margin-left: 24px;"></i>
+                        <div style="font-size: 20px;">暂无数据</div>
                     </div>
                 </div>
             </div>
@@ -187,7 +188,7 @@
                         <swiper-slide v-for="item in partners" :key="item.id">
                             <a
                                 class="link-img"
-                                :href="item.path || 'http://zhirongip.izouma.com/web'"
+                                :href="item.url || 'http://zhirongip.izouma.com/web'"
                                 target="_blank"
                                 rel="noopener noreferrer"
                             >

+ 9 - 2
src/main/zhi-rong-web/src/views/news/Index.vue

@@ -13,12 +13,19 @@
                         @change="changeCarousl"
                     >
                         <el-carousel-item v-for="(item, index) in newsListIndex" :key="index">
-                            <img
+                            <!-- <img
                                 @click="all('/newsDetail?id=' + item.id)"
                                 style="width: 100%; height: 100%; cursor: pointer"
                                 :src="item.img"
                                 alt=""
-                            />
+                            /> -->
+                            <el-image
+                                @click="all('/newsDetail?id=' + item.id)"
+                                :src="item.img"
+                                fit="cover"
+                                style="width: 100%; height: 100%; cursor: pointer;"
+                            ></el-image>
+
                             <p class="swiper-itemText">{{ item.name }}</p>
                         </el-carousel-item>
                     </el-carousel>