实现排序
This commit is contained in:
		
							
								
								
									
										11
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								package.json
									
									
									
									
									
								
							@@ -22,15 +22,16 @@
 | 
				
			|||||||
  "homepage": "https://github.com/InvisibleFuture/kana-bbs#readme",
 | 
					  "homepage": "https://github.com/InvisibleFuture/kana-bbs#readme",
 | 
				
			||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
    "pug": "^3.0.2",
 | 
					    "pug": "^3.0.2",
 | 
				
			||||||
 | 
					    "pug-plain-loader": "^1.0.0",
 | 
				
			||||||
    "sass": "^1.49.0",
 | 
					    "sass": "^1.49.0",
 | 
				
			||||||
    "sass-loader": "^10.1.1",
 | 
					    "sass-loader": "^10.1.1"
 | 
				
			||||||
    "pug-plain-loader": "^1.0.0"
 | 
					 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "nuxt": "2.15.8",
 | 
					    "@fortawesome/fontawesome-free": "^5.15.3",
 | 
				
			||||||
    "@nuxtjs/axios": "^5.12.0",
 | 
					    "@nuxtjs/axios": "^5.12.0",
 | 
				
			||||||
    "@nuxtjs/proxy": "^2.1.0",
 | 
					    "@nuxtjs/proxy": "^2.1.0",
 | 
				
			||||||
    "@fortawesome/fontawesome-free": "^5.15.3",
 | 
					    "marked": "^4.0.12",
 | 
				
			||||||
 | 
					    "nuxt": "2.15.8",
 | 
				
			||||||
    "three": "^0.137.4"
 | 
					    "three": "^0.137.4"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,14 +3,14 @@
 | 
				
			|||||||
  .docs.circumscription
 | 
					  .docs.circumscription
 | 
				
			||||||
    .outline
 | 
					    .outline
 | 
				
			||||||
      ul
 | 
					      ul
 | 
				
			||||||
        li 下载安装
 | 
					 | 
				
			||||||
        li 接口使用
 | 
					 | 
				
			||||||
        li 插件制作
 | 
					 | 
				
			||||||
        li 基础开发
 | 
					 | 
				
			||||||
        li(v-for="item in list", :key="item._id")
 | 
					        li(v-for="item in list", :key="item._id")
 | 
				
			||||||
          NuxtLink(:to="`/docs/${item._id}`") {{ item.name }}
 | 
					          NuxtLink(:to="`/docs/${item._id}`") {{ item.name }}
 | 
				
			||||||
      .create-doc
 | 
					          i.fas.fa-sort-numeric-up-alt(
 | 
				
			||||||
        button(@click="createin = !createin") Create
 | 
					            @click="settop(item, true)",
 | 
				
			||||||
 | 
					            v-if="account.gid"
 | 
				
			||||||
 | 
					          ) {{ item.top || 0 }}
 | 
				
			||||||
 | 
					      .create-doc(v-if="account.gid")
 | 
				
			||||||
 | 
					        button(@click="submit()") Create
 | 
				
			||||||
    .content
 | 
					    .content
 | 
				
			||||||
      Nuxt
 | 
					      Nuxt
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
@@ -26,12 +26,38 @@ export default {
 | 
				
			|||||||
      };
 | 
					      };
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  computed: {
 | 
				
			||||||
 | 
					    account() {
 | 
				
			||||||
 | 
					      return this.$store.state.account;
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  mounted() {
 | 
				
			||||||
 | 
					    this.listsort();
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  methods: {
 | 
					  methods: {
 | 
				
			||||||
    submit() {
 | 
					    submit() {
 | 
				
			||||||
      this.$axios.post("/api/docs", this.doc).then((res) => {
 | 
					      this.$axios.post("/api/docs", this.doc).then((res) => {
 | 
				
			||||||
 | 
					        if (res.status === 200) {
 | 
				
			||||||
 | 
					          this.list.push(res.data);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    settop(item, n) {
 | 
				
			||||||
 | 
					      item.top = item.top || 0;
 | 
				
			||||||
 | 
					      item.top = n ? item.top + 1 : item.top - 1;
 | 
				
			||||||
 | 
					      let data = { top: item.top };
 | 
				
			||||||
 | 
					      this.$axios.patch(`/api/docs/${item._id}`, data).then((res) => {
 | 
				
			||||||
 | 
					        if (res.status === 200) this.listsort();
 | 
				
			||||||
        console.log(res.data);
 | 
					        console.log(res.data);
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    listsort() {
 | 
				
			||||||
 | 
					      this.list.sort((x, y) => {
 | 
				
			||||||
 | 
					        x.top = x.top || 0;
 | 
				
			||||||
 | 
					        y.top = y.top || 0;
 | 
				
			||||||
 | 
					        return y.top - x.top;
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,22 +1,28 @@
 | 
				
			|||||||
<template lang="pug">
 | 
					<template lang="pug">
 | 
				
			||||||
.docs-item
 | 
					.docs-item
 | 
				
			||||||
  button.editor(@click="editor()") {{ edit ? '取消编辑' : '编辑模式' }}
 | 
					  button.editor(@click="editor()", v-if="account.gid") {{ edit ? '取消编辑' : '编辑模式' }}
 | 
				
			||||||
  button.submit(@click="submit()", v-if="edit") 保存修改
 | 
					  button.submit(@click="submit()", v-if="edit") 保存修改
 | 
				
			||||||
  .contenter(v-if="!edit")
 | 
					  .contenter(v-if="!edit")
 | 
				
			||||||
    h1.title {{ data.name }}
 | 
					    h1.title {{ data.name }}
 | 
				
			||||||
    p {{ data.data }}
 | 
					    div(v-html="markdown(data.data)")
 | 
				
			||||||
  .contenter(v-else)
 | 
					  .contenter(v-else)
 | 
				
			||||||
    input.title(v-model="doc.name")
 | 
					    input.title(v-model="doc.name")
 | 
				
			||||||
    textarea.data(v-model="doc.data", rows="32")
 | 
					    textarea.data(v-model="doc.data", rows="32")
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
 | 
					import { marked } from "marked";
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
  asyncData({ $axios, params }) {
 | 
					  asyncData({ $axios, params }) {
 | 
				
			||||||
    return $axios.get(`/api/docs/${params.id}`).then((res) => {
 | 
					    return $axios.get(`/api/docs/${params.id}`).then((res) => {
 | 
				
			||||||
      return { data: res.data, edit: false, doc: { data: "", name: "" } };
 | 
					      return { data: res.data, edit: false, doc: { data: "", name: "" } };
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  computed: {
 | 
				
			||||||
 | 
					    account() {
 | 
				
			||||||
 | 
					      return this.$store.state.account;
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
  methods: {
 | 
					  methods: {
 | 
				
			||||||
    editor() {
 | 
					    editor() {
 | 
				
			||||||
      if (!this.eidt) {
 | 
					      if (!this.eidt) {
 | 
				
			||||||
@@ -35,6 +41,9 @@ export default {
 | 
				
			|||||||
        console.log(res.data);
 | 
					        console.log(res.data);
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    markdown(data) {
 | 
				
			||||||
 | 
					      return marked.parse(data);
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								pages/docs/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								pages/docs/index.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					<template lang="pug">
 | 
				
			||||||
 | 
					.docs-index
 | 
				
			||||||
 | 
					  p Hello World!
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
@@ -4806,6 +4806,11 @@ map-visit@^1.0.0:
 | 
				
			|||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    object-visit "^1.0.0"
 | 
					    object-visit "^1.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					marked@^4.0.12:
 | 
				
			||||||
 | 
					  version "4.0.12"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.12.tgz#2262a4e6fd1afd2f13557726238b69a48b982f7d"
 | 
				
			||||||
 | 
					  integrity sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
md5.js@^1.3.4:
 | 
					md5.js@^1.3.4:
 | 
				
			||||||
  version "1.3.5"
 | 
					  version "1.3.5"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
 | 
					  resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user