Selaa lähdekoodia

feat:添加三篇新闻

xzh 4 vuotta sitten
vanhempi
commit
d1f2fa36c8

BIN
common/data/images/news-13.jpeg


BIN
common/data/images/news-14.png


BIN
common/data/images/news-15.jpeg


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 30 - 6
common/data/newsData.js


+ 1 - 1
pc/src/components/dev/Configuration.vue

@@ -31,7 +31,7 @@
 export default {
     data() {
         return {
-            menu: [{ text: "语言设置", name: "Lang" }],
+            menu: [{ text: "语言设置", name: "Lang" }, { text: "新闻设置", name: "News" }],
             page: "Lang"
         };
     },

+ 150 - 0
pc/src/components/dev/components/News.vue

@@ -0,0 +1,150 @@
+<!--
+ * @Author: Rindy
+ * @Date: 2020-03-16 12:20:50
+ * @LastEditors: Rindy
+ * @LastEditTime: 2020-05-21 10:04:40
+ * @Description: 注释
+ -->
+<template>
+    <layout>
+        <template slot="header">
+            <span>
+                <!-- 语言选择:
+                <select v-model="curr" @change="load()">
+                    <option
+                        v-for="(item,key) in langs"
+                        :key="key"
+                        :value="item.name"
+                    >{{item.text}}</option>
+                </select> -->
+            </span>
+            <button >保存</button>
+        </template>
+        <template slot="content">
+            <ul class="menus">
+                <li v-for="(item,key) in News" :key="key">
+                  <h1>第{{key + 1}}篇</h1>
+                    <img :src="item.img" />
+                    <div>
+                      <p>标题</p>
+                      <input v-model="item.title" type="text" />
+                    </div>
+                    <div>
+                      <p>文章介绍</p>
+                      <input v-model="item.text" type="text" />
+                    </div>
+                    <div>
+                      <p>新闻网站</p>
+                      <input v-model="item.sub" type="text" />
+                    </div>
+                    <div>
+                      <p>新闻日期</p>
+                      <input v-model="item.time" type="text" />
+                    </div>
+                    <div>
+                      <p>新闻链接</p>
+                      <input v-model="item.link" type="text" />
+                    </div>
+                </li>
+            </ul>
+        </template>
+    </layout>
+</template>
+<script>
+import http from "@/util/http";
+import Layout from "./Layout";
+import { deepExtend } from '@/util/tools'
+import { News } from '@/../../common/data/newsData'
+export default {
+    components: {
+        Layout
+    },
+    data() {
+        return {
+            lang: null,
+            curr: "zh",
+            News
+        };
+    },
+    computed: {
+        langs() {
+            return 'zh#中文,en#英文'.split(",").map(item => {
+                let keypair = item.split("#");
+                return { name: keypair[0], text: keypair[1] };
+            });
+        }
+    },
+    created() {
+        this.load();
+    },
+    methods: {
+        async load(curr) {
+            const result = await http.get("../dev/lang/" + (curr || this.curr));
+            if (result.data.ok) {
+                if (this.lang == null) {
+                    this.lang = result.data.data;
+                } else {
+                    this.lang = deepExtend(this.lang, result.data.data);
+                }
+            } else {
+                if (this.curr != "zh") {
+                    this.lang = null;
+                    this.load("zh");
+                }
+            }
+        },
+        isChildren(key, value) {
+            return key !== "__name" && typeof value === "string";
+        },
+        isModule(value) {
+            return typeof value !== "string";
+        },
+        onValueChange(e, p, m, c) {
+            const value = e.target.value.trim();
+            if (value) {
+                if (!c) {
+                    p[m] = value;
+                } else {
+                }
+            }
+        },
+        onSave() {
+            // http.post(`../dev/lang/${this.curr}`, this.lang)
+            // .then(response => {
+            //     if (response.data.ok) {
+            //         this.$alert('保存成功', {
+            //             icon: 'success'
+            //         });
+            //     } else {
+            //         this.$alert('保存失败');
+            //     }
+            // })
+            // .catch(err => {
+            //     this.$alert('保存失败');
+            // });
+        }
+    }
+};
+</script>
+<style lang="less" scoped>
+select {
+    width: 80px;
+    appearance: menulist;
+}
+.menus {
+    .module {
+        margin-left: 15px;
+        
+    }
+    li {
+      margin-bottom: 10px;
+    }
+    input {
+            border: solid 1px #ccc;
+            padding: 2px 5px;
+            width: 300px;
+            display: block;
+            margin-top: 5px;
+        }
+}
+</style>