commit
dd80a7967f
19
README.md
19
README.md
@ -1,4 +1,7 @@
|
|||||||
# nebula
|
# nebula
|
||||||
|
|
||||||
|
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Frymcu%2Fnebula.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Frymcu%2Fnebula?ref=badge_shield)
|
||||||
|
|
||||||
## 💡 简介
|
## 💡 简介
|
||||||
nebula([ˈnebyələ],n.星云)是一款现代化的知识社区项目,使用 Vue + NuxtJS + Element-UI 实现
|
nebula([ˈnebyələ],n.星云)是一款现代化的知识社区项目,使用 Vue + NuxtJS + Element-UI 实现
|
||||||
|
|
||||||
@ -90,12 +93,15 @@ nebula([ˈnebyələ],n.星云)是一款现代化的知识社区项目,
|
|||||||
在提功能建议前可以先看一下 [计划表](https://rymcu.com/article/29) ,避免重复提议
|
在提功能建议前可以先看一下 [计划表](https://rymcu.com/article/29) ,避免重复提议
|
||||||
|
|
||||||
## 鸣谢
|
## 鸣谢
|
||||||
- 感谢 `JetBrains` 对本项目的帮助,为作者提供了开源许可版 `JetBrains` 全家桶
|
- 感谢以下开发者对 Nebula 作出的贡献:
|
||||||
|
|
||||||
|
|
||||||
![JetBrains](assets/jb_beam.svg)
|
|
||||||
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Frymcu%2Fnebula.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Frymcu%2Fnebula?ref=badge_shield)
|
|
||||||
|
|
||||||
|
<a href="https://github.com/rymcu/nebula/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=rymcu/nebula&max=1000" />
|
||||||
|
</a>
|
||||||
|
|
||||||
|
- 感谢 `JetBrains` 对本项目的帮助,为作者提供了开源许可版 `JetBrains` 全家桶
|
||||||
|
|
||||||
|
![JetBrains](assets/jb_beam.svg)
|
||||||
## Build Setup
|
## Build Setup
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@ -128,6 +134,5 @@ $ npm generate
|
|||||||
|
|
||||||
For detailed explanation on how things work, check out [Nuxt.js docs](https://nuxtjs.org).
|
For detailed explanation on how things work, check out [Nuxt.js docs](https://nuxtjs.org).
|
||||||
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Frymcu%2Fnebula.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Frymcu%2Fnebula?ref=badge_large)
|
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Frymcu%2Fnebula.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Frymcu%2Fnebula?ref=badge_large)
|
||||||
|
@ -54,7 +54,7 @@
|
|||||||
<el-table-column label="标签" prop="articleTitle">
|
<el-table-column label="标签" prop="articleTitle">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-tag style="margin-left: 0.5rem;" v-for="tag in scope.row.tags" :key="tag.idTag" size="mini"
|
<el-tag style="margin-left: 0.5rem;" v-for="tag in scope.row.tags" :key="tag.idTag" size="mini"
|
||||||
effect="plain">
|
effect="plain">
|
||||||
# {{ tag.tagTitle }}
|
# {{ tag.tagTitle }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
@ -64,13 +64,14 @@
|
|||||||
<el-table-column label="操作">
|
<el-table-column label="操作">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button v-if="scope.row.articlePerfect === '1'" size="mini"
|
<el-button v-if="scope.row.articlePerfect === '1'" size="mini"
|
||||||
@click="cancelPreference(scope.$index, scope.row.idArticle)" plain>取消优选</el-button>
|
@click="cancelPreference(scope.$index, scope.row.idArticle)" plain>取消优选
|
||||||
|
</el-button>
|
||||||
<el-button v-else size="mini" @click="setPreference(scope.$index, scope.row.idArticle)" plain>设为优选
|
<el-button v-else size="mini" @click="setPreference(scope.$index, scope.row.idArticle)" plain>设为优选
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button size="mini" type="primary" @click="updateTags(scope.$index, scope.row)" plain>编辑标签
|
<el-button size="mini" type="primary" @click="updateTags(scope.$index, scope.row)" plain>编辑标签
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-if="scope.row.articleStatus === '0'" size="mini" type="danger"
|
<el-button v-if="scope.row.articleStatus === '0'" size="mini" type="danger"
|
||||||
@click="toggleStatus(scope.$index, scope.row)" plain>下架
|
@click="toggleStatus(scope.$index, scope.row)" plain>下架
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button v-else size="mini" type="success" @click="toggleStatus(scope.$index, scope.row)" plain>上架
|
<el-button v-else size="mini" type="success" @click="toggleStatus(scope.$index, scope.row)" plain>上架
|
||||||
</el-button>
|
</el-button>
|
||||||
@ -80,9 +81,9 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col>
|
<el-col>
|
||||||
<el-pagination :hide-on-single-page="true" @size-change="handleArticleSizeChange"
|
<el-pagination :hide-on-single-page="true" @size-change="handleArticleSizeChange"
|
||||||
@current-change="handleArticleCurrentChange" :current-page="articles.pageNum"
|
@current-change="handleArticleCurrentChange" :current-page="articles.pageNum"
|
||||||
:page-sizes="[10, 20, 50, 100]" :page-size="articles.pageSize"
|
:page-sizes="[10, 20, 50, 100]" :page-size="articles.pageSize"
|
||||||
layout="total, sizes, prev, pager, next, jumper" :total="articles.total">
|
layout="total, sizes, prev, pager, next, jumper" :total="articles.total">
|
||||||
</el-pagination>
|
</el-pagination>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
@ -111,8 +112,10 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col>
|
<el-col>
|
||||||
<el-pagination :hide-on-single-page="true" @size-change="handleUserSizeChange"
|
<el-pagination :hide-on-single-page="true" @size-change="handleUserSizeChange"
|
||||||
@current-change="handleUserCurrentChange" :current-page="users.pageNum" :page-sizes="[10, 20, 50, 100]"
|
@current-change="handleUserCurrentChange" :current-page="users.pageNum"
|
||||||
:page-size="users.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="users.total">
|
:page-sizes="[10, 20, 50, 100]"
|
||||||
|
:page-size="users.pageSize" layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
:total="users.total">
|
||||||
</el-pagination>
|
</el-pagination>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
@ -137,9 +140,9 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col>
|
<el-col>
|
||||||
<el-pagination :hide-on-single-page="true" @size-change="handleBankAccountSizeChange"
|
<el-pagination :hide-on-single-page="true" @size-change="handleBankAccountSizeChange"
|
||||||
@current-change="handleBankAccountCurrentChange" :current-page="bankAccounts.pageNum"
|
@current-change="handleBankAccountCurrentChange" :current-page="bankAccounts.pageNum"
|
||||||
:page-sizes="[10, 20, 50, 100]" :page-size="bankAccounts.pageSize"
|
:page-sizes="[10, 20, 50, 100]" :page-size="bankAccounts.pageSize"
|
||||||
layout="total, sizes, prev, pager, next, jumper" :total="bankAccounts.total">
|
layout="total, sizes, prev, pager, next, jumper" :total="bankAccounts.total">
|
||||||
</el-pagination>
|
</el-pagination>
|
||||||
</el-col>
|
</el-col>
|
||||||
</div>
|
</div>
|
||||||
@ -181,7 +184,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import { mapState } from 'vuex';
|
import {mapState} from 'vuex';
|
||||||
import echarts from 'echarts';
|
import echarts from 'echarts';
|
||||||
import EditTags from '~/components/widget/tags';
|
import EditTags from '~/components/widget/tags';
|
||||||
|
|
||||||
@ -192,12 +195,11 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
EditTags
|
EditTags
|
||||||
},
|
},
|
||||||
fetch() {
|
asyncData({store, params, error}) {
|
||||||
let { store, params, error } = this.$nuxt.context
|
|
||||||
return Promise.all([
|
return Promise.all([
|
||||||
store
|
store
|
||||||
.dispatch('dashboard/fetchDashboard', params)
|
.dispatch('dashboard/fetchDashboard', params)
|
||||||
.catch(err => error({ statusCode: 404 })),
|
.catch(err => error({statusCode: 404})),
|
||||||
store.dispatch("dashboard/fetchLastThirtyDays", params),
|
store.dispatch("dashboard/fetchLastThirtyDays", params),
|
||||||
store.dispatch("dashboard/fetchHistory", params),
|
store.dispatch("dashboard/fetchHistory", params),
|
||||||
store.dispatch("dashboard/fetchNewUsers", params),
|
store.dispatch("dashboard/fetchNewUsers", params),
|
||||||
@ -480,7 +482,7 @@ export default {
|
|||||||
_ts.$set(_ts, 'articleTags', article.articleTags);
|
_ts.$set(_ts, 'articleTags', article.articleTags);
|
||||||
_ts.$set(_ts, 'tagsDialogVisible', true);
|
_ts.$set(_ts, 'tagsDialogVisible', true);
|
||||||
},
|
},
|
||||||
toggleStatus() { },
|
toggleStatus() {},
|
||||||
closeTagsDialog() {
|
closeTagsDialog() {
|
||||||
this.$set(this, 'tagsDialogVisible', false);
|
this.$set(this, 'tagsDialogVisible', false);
|
||||||
},
|
},
|
||||||
@ -529,10 +531,8 @@ export default {
|
|||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.$store.commit("setActiveMenu", "admin-dashboard");
|
this.$store.commit("setActiveMenu", "admin-dashboard");
|
||||||
setTimeout(() => {
|
this.initLastThirtyDaysCharts(this.lastThirtyDays)
|
||||||
this.initLastThirtyDaysCharts(this.lastThirtyDays)
|
this.initHistoryCharts(this.history)
|
||||||
this.initHistoryCharts(this.history)
|
|
||||||
}, 5000);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -136,7 +136,7 @@ export default {
|
|||||||
}
|
}
|
||||||
return params.tag_id && !isNaN(Number(params.tag_id))
|
return params.tag_id && !isNaN(Number(params.tag_id))
|
||||||
},
|
},
|
||||||
fetch({store, params, error}) {
|
asyncData({store, params, error}) {
|
||||||
return Promise.all([
|
return Promise.all([
|
||||||
store.dispatch('tag/fetchPostDetail', params)
|
store.dispatch('tag/fetchPostDetail', params)
|
||||||
.catch(err => error({statusCode: 404}))
|
.catch(err => error({statusCode: 404}))
|
||||||
|
@ -70,8 +70,7 @@
|
|||||||
}
|
}
|
||||||
return params.article_id && !isNaN(Number(params.article_id))
|
return params.article_id && !isNaN(Number(params.article_id))
|
||||||
},
|
},
|
||||||
fetch() {
|
asyncData({store, params, error}) {
|
||||||
let {store, params, error} = this.$nuxt.context
|
|
||||||
return Promise.all([
|
return Promise.all([
|
||||||
store.dispatch('article/fetchPostDetail', params)
|
store.dispatch('article/fetchPostDetail', params)
|
||||||
.catch(err => error({statusCode: 404}))
|
.catch(err => error({statusCode: 404}))
|
||||||
|
@ -54,8 +54,7 @@ import gzh from "assets/rymcugzh.jpg";
|
|||||||
Vue.prototype.$echarts = echarts;
|
Vue.prototype.$echarts = echarts;
|
||||||
export default {
|
export default {
|
||||||
name: "openData",
|
name: "openData",
|
||||||
fetch() {
|
asyncData({store, params, error}) {
|
||||||
let { store, params, error } = this.$nuxt.context
|
|
||||||
return Promise.all([
|
return Promise.all([
|
||||||
store
|
store
|
||||||
.dispatch('open-data/fetchLastThirtyDays', params)
|
.dispatch('open-data/fetchLastThirtyDays', params)
|
||||||
@ -155,9 +154,7 @@ export default {
|
|||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.$store.commit("setActiveMenu", "open-data");
|
this.$store.commit("setActiveMenu", "open-data");
|
||||||
setTimeout(() => {
|
this.initLastThirtyDaysCharts(this.lastThirtyDays)
|
||||||
this.initLastThirtyDaysCharts(this.lastThirtyDays)
|
|
||||||
}, 2000);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -109,7 +109,7 @@ export default {
|
|||||||
}
|
}
|
||||||
return params.portfolio_id && !isNaN(Number(params.portfolio_id))
|
return params.portfolio_id && !isNaN(Number(params.portfolio_id))
|
||||||
},
|
},
|
||||||
fetch({store, params, error}) {
|
asyncData({store, params, error}) {
|
||||||
return Promise.all([
|
return Promise.all([
|
||||||
store.dispatch('portfolio/fetchPostDetail', params)
|
store.dispatch('portfolio/fetchPostDetail', params)
|
||||||
.catch(err => error({statusCode: 404}))
|
.catch(err => error({statusCode: 404}))
|
||||||
|
Loading…
Reference in New Issue
Block a user