xiongzhu 5 年 前
コミット
ea9f6690a3

+ 6 - 0
src/main/java/com/izouma/dangjian/domain/Article.java

@@ -1,5 +1,6 @@
 package com.izouma.dangjian.domain;
 
+import com.izouma.dangjian.enums.ArticleType;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -7,6 +8,8 @@ import lombok.NoArgsConstructor;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
 
 @Data
 @Entity
@@ -19,4 +22,7 @@ public class Article extends BaseEntity {
 
     @Column(columnDefinition = "TEXT")
     private String content;
+
+    @Enumerated(EnumType.STRING)
+    private ArticleType type;
 }

+ 15 - 0
src/main/java/com/izouma/dangjian/enums/ArticleType.java

@@ -0,0 +1,15 @@
+package com.izouma.dangjian.enums;
+
+public enum ArticleType {
+    INTRO("优势介绍"),
+    OTHER("其他");
+    private final String description;
+
+    ArticleType(String description) {
+        this.description = description;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+}

+ 3 - 1
src/main/java/com/izouma/dangjian/service/storage/LocalStorageService.java

@@ -23,6 +23,8 @@ public class LocalStorageService implements StorageService {
 
     @Value("${storage.local_path}")
     private String localPath;
+    @Value("${general.host}")
+    private String host;
 
     @Override
     public String uploadFromInputStream(InputStream fin, String path) {
@@ -58,6 +60,6 @@ public class LocalStorageService implements StorageService {
         } catch (IOException e) {
             e.printStackTrace();
         }
-        return "/files" + "/" + path;
+        return host + "/files" + "/" + path;
     }
 }

+ 1 - 1
src/main/mobile/src/views/article.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <nav-bar :title="title" @click-left="$router.go(-1)"></nav-bar>
-        <div v-html="content"></div>
+        <div v-html="content" style="padding: 16px"></div>
     </div>
 </template>
 <script>

+ 40 - 3
src/main/mobile/src/views/home.vue

@@ -33,7 +33,23 @@
             <img src="../assets/clock.png" class="icon" />
         </div>
         <div class="article" v-html="content1"></div>
-        <div class="article" v-html="content2" id="contact"></div>
+        <div class="more">
+            <div
+                class="item"
+                v-for="item in more"
+                :key="item.id"
+                @click="$router.push({ name: 'article', query: { name: item.name } })"
+            >
+                {{ item.name }}
+            </div>
+        </div>
+        <div class="article" v-html="content2"></div>
+        <div class="article" v-html="content3" id="contact"></div>
+        <div class="more">
+            <div class="item" @click="$router.push({ name: 'article', query: { name: '关于我们' } })">关于我们</div>
+            <div class="item" @click="$router.push({ name: 'article', query: { name: '对接流程' } })">对接流程</div>
+            <div class="item" @click="$router.push({ name: 'article', query: { name: '用户反馈' } })">用户反馈</div>
+        </div>
         <div style="height: calc(50px + max(env(safe-area-inset-bottom), 0px))"></div>
         <promote-dialog :visible.sync="showDialog"></promote-dialog>
     </div>
@@ -49,6 +65,8 @@ export default {
             banners: [],
             content1: '',
             content2: '',
+            content3: '',
+            more: [],
             start: null,
             end: null,
             showDialog: false
@@ -58,12 +76,18 @@ export default {
         this.$http.post('/banner/all', { size: 1000 }, { body: 'json' }).then(res => {
             this.banners = res.content;
         });
-        this.$http.get('/article/get/name/首页介绍').then(res => {
+        this.$http.get('/article/get/name/首页介绍-上').then(res => {
             this.content1 = res.content;
         });
-        this.$http.get('/article/get/name/商务对接').then(res => {
+        this.$http.get('/article/get/name/首页介绍-下').then(res => {
             this.content2 = res.content;
         });
+        this.$http.post('/article/all', { query: { type: 'INTRO' } }, { body: 'json' }).then(res => {
+            this.more = res.content;
+        });
+        this.$http.get('/article/get/name/商务对接').then(res => {
+            this.content3 = res.content;
+        });
         this.$http.get('/sysConfig/get/start').then(res => {
             this.start = this.$dayjs(res.value, 'YYYY-MM-DD HH:mm:ss');
         });
@@ -217,4 +241,17 @@ export default {
     padding: 0 16px;
     margin-top: 20px;
 }
+.more {
+    padding: 10px 11px;
+    .flex();
+    flex-wrap: wrap;
+    justify-content: center;
+    .item {
+        margin: 0 5px;
+        font-size: 14px;
+        font-weight: bold;
+        text-decoration: underline;
+        color: @prim;
+    }
+}
 </style>

+ 4 - 4
src/main/mobile/src/views/stat.vue

@@ -96,12 +96,12 @@ export default {
             let start, end;
             switch (this.tab2) {
                 case 0:
-                    end = format(addDays(new Date(), -1), 'yyyy-MM-dd');
-                    start = format(addDays(new Date(), -7), 'yyyy-MM-dd');
+                    end = format(addDays(new Date(), 0), 'yyyy-MM-dd');
+                    start = format(addDays(new Date(), -6), 'yyyy-MM-dd');
                     break;
                 case 1:
-                    end = format(addDays(new Date(), -1), 'yyyy-MM-dd');
-                    start = format(addDays(new Date(), -30), 'yyyy-MM-dd');
+                    end = format(addDays(new Date(), 0), 'yyyy-MM-dd');
+                    start = format(addDays(new Date(), -29), 'yyyy-MM-dd');
                     break;
             }
             this.$http

+ 6 - 0
src/main/vue/src/views/ArticleEdit.vue

@@ -21,6 +21,12 @@
                     <el-form-item prop="name" label="名称">
                         <el-input v-model="formData.name"></el-input>
                     </el-form-item>
+                    <el-form-item prop="type" label="类型">
+                        <el-select v-model="formData.type">
+                            <el-option label="更多优势介绍" value="INTRO"></el-option>
+                            <el-option label="其他" value="OTHER"></el-option>
+                        </el-select>
+                    </el-form-item>
                     <el-form-item prop="content" label="内容">
                         <rich-text v-model="formData.content"></rich-text>
                     </el-form-item>

+ 4 - 4
src/test/java/com/izouma/dangjian/CommonTest.java

@@ -19,6 +19,9 @@ import java.awt.font.FontRenderContext;
 import java.awt.geom.AffineTransform;
 import java.io.IOException;
 import java.lang.reflect.Method;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Paths;
@@ -134,9 +137,6 @@ public class CommonTest {
     }
 
     @Test
-    public void password() {
-        String password = new BCryptPasswordEncoder().encode("123456");
-
-        System.out.println(password);
+    public void password() throws MalformedURLException {
     }
 }