Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add dashboard
  • Loading branch information
PanJiaChen committed Apr 21, 2017
commit a3a331bd1594f7ab8442df062125c54665763cd3
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@
"vue-router": "2.3.0",
"vuedraggable": "2.8.4",
"vuex": "2.2.1",
"xlsx": "0.8.1"
"xlsx": "0.8.1",
"vue-count-to":"1.0.5"
},
"devDependencies": {
"autoprefixer": "6.7.2",
Expand Down
25 changes: 2 additions & 23 deletions src/api/article.js
Original file line number Diff line number Diff line change
@@ -1,29 +1,8 @@
import fetch, { tpFetch } from 'utils/fetch';
import { param } from 'utils';
import { tpFetch } from 'utils/fetch';

export function getList(query) {
export function getList() {
return tpFetch({
url: '/article/list',
method: 'get'
});
}
export function upload(data) {
return tpFetch({
url: 'https://upload.qbox.me',
method: 'post',
data
});
}


/* 外部uri转七牛uri*/
export function netUpload(token, net_url) {
const imgData = {
net_url
};
return fetch({
url: '/qiniu/upload/net/async',
method: 'post',
data: imgData
});
}
1 change: 1 addition & 0 deletions src/components/Charts/barPercent.vue
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
methods: {
initBar() {
this.chart = echarts.init(document.getElementById(this.id));
this.setOptions();
},
setOptions() {
this.chart.setOption({
Expand Down
1 change: 1 addition & 0 deletions src/components/Charts/line.vue
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
},
mounted() {
this.chart = echarts.init(document.getElementById(this.id));
this.setLine(this.listData);
},
methods: {
setLine(dataList) {
Expand Down
1 change: 1 addition & 0 deletions src/mock/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ const articleList = {
'data|20': [{
id: '@id',
title: '@ctitle(10, 20)',
'status|1': ['published', 'draft'],
author: '@cname',
display_time: '@datetime',
pageviews: '@integer(300, 5000)'
Expand Down
8 changes: 6 additions & 2 deletions src/router/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import sendPWD from '../views/login/sendpwd';
import reset from '../views/login/reset';

/* components*/
const componentsIndex = resolve => require(['../views/components/index'], resolve);
const Tinymce = resolve => require(['../views/components/tinymce'], resolve);
const Markdown = resolve => require(['../views/components/markdown'], resolve);
const JsonEditor = resolve => require(['../views/components/jsoneditor'], resolve);
Expand All @@ -32,6 +33,7 @@ const Mixin = resolve => require(['../views/components/mixin'], resolve);


/* charts*/
const chartIndex = resolve => require(['../views/charts/index'], resolve);
const KeyboardChart = resolve => require(['../views/charts/keyboard'], resolve);
const KeyboardChart2 = resolve => require(['../views/charts/keyboard2'], resolve);
const LineMarker = resolve => require(['../views/charts/line'], resolve);
Expand Down Expand Up @@ -80,10 +82,11 @@ export default new Router({
{
path: '/components',
component: Layout,
redirect: 'noredirect',
redirect: '/components/index',
name: '组件',
icon: 'zujian',
children: [
{ path: 'index', component: componentsIndex, name: '介绍' },
{ path: 'tinymce', component: Tinymce, name: '富文本编辑器' },
{ path: 'markdown', component: Markdown, name: 'Markdown' },
{ path: 'jsoneditor', component: JsonEditor, name: 'JSON编辑器' },
Expand All @@ -99,10 +102,11 @@ export default new Router({
{
path: '/charts',
component: Layout,
redirect: 'noredirect',
redirect: '/charts/index',
name: '图表',
icon: 'tubiaoleixingzhengchang',
children: [
{ path: 'index', component: chartIndex, name: '介绍' },
{ path: 'keyboard', component: KeyboardChart, name: '键盘图表' },
{ path: 'keyboard2', component: KeyboardChart2, name: '键盘图表2' },
{ path: 'line', component: LineMarker, name: '折线图' },
Expand Down
5 changes: 5 additions & 0 deletions src/views/charts/index.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<template>
<div class="components-container" >
介绍
</div>
</template>
5 changes: 5 additions & 0 deletions src/views/components/index.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<template>
<div class="components-container" >
介绍
</div>
</template>
77 changes: 44 additions & 33 deletions src/views/dashboard/editor/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -7,32 +7,32 @@
<div class="info-container">
<span class="display_name">{{name}}</span>
<div class="info-wrapper">
<router-link class="info-item" :to="'/article/wscnlist?uid='+uid">
<span class="info-item-num">{{statisticsData.article_count | toThousandslsFilter}}</span>
<div class="info-item" :to="'/article/wscnlist?uid='+uid">
<countTo class="info-item-num" :startVal='0' :endVal='statisticsData.article_count' :duration='3400'></countTo>
<span class="info-item-text">文章</span>
<wscn-icon-svg icon-class="a" class="dashboard-editor-icon"/>
</router-link>
</div>
<div class="info-item" style="cursor: auto">
<span class="info-item-num"> {{statisticsData.pageviews_count | toThousandslsFilter}}</span>
<countTo class="info-item-num" :startVal='0' :endVal='statisticsData.pageviews_count' :duration='3600'></countTo>
<span class="info-item-text">浏览量</span>
<wscn-icon-svg icon-class="b" class="dashboard-editor-icon"/>
</div>
<router-link class="info-item" :to="'/comment/commentslist?res_author_id='+uid">
<span class="info-item-num">{{statisticsData.comment_count | toThousandslsFilter}}</span>
<div class="info-item" :to="'/comment/commentslist?res_author_id='+uid">
<countTo class="info-item-num" ref='countTo3' :startVal='0' :endVal='statisticsData.comment_count' :duration='3800'></countTo>
<span class="info-item-text">评论</span>
<wscn-icon-svg icon-class="c" class="dashboard-editor-icon"/>
</router-link>
</div>
</div>
</div>
</div>

<div class="btn-group">
<router-link class="pan-btn blue-btn" to="/article/create">发表文章</router-link>
<router-link class="pan-btn light-blue-btn" to="/livenews/create">发布快讯</router-link>
<router-link class="pan-btn red-btn" to="/push/create">推送</router-link>
<router-link class="pan-btn pink-btn" to="/comment/commentslist">评论管理</router-link>
<router-link class="pan-btn green-btn" to="/article/wscnlist">文章列表</router-link>
<router-link class="pan-btn tiffany-btn" to="/livenews/list">实时列表</router-link>
<router-link class="pan-btn blue-btn" to="/components/index">组价</router-link>
<router-link class="pan-btn light-blue-btn" to="/charts/index">图表</router-link>
<router-link class="pan-btn red-btn" to="/errorpage/404">错误页面</router-link>
<router-link class="pan-btn pink-btn" to="/errlog/log">错误日志</router-link>
<router-link class="pan-btn green-btn" to="/article/wscnlist">导出excel</router-link>
<router-link class="pan-btn tiffany-btn" to="/excel/download">实时列表</router-link>
</div>

<div class="clearfix main-dashboard-container">
Expand All @@ -47,20 +47,17 @@
<template v-if="recentArticles.length!=0">
<div class="recent-articles-item" v-for="item in recentArticles">
<span class="recent-articles-status">{{item.status | statusFilter}}</span>
<router-link class="recent-articles-content" :to="'/article/edit/'+item.id">
<span>{{item.title}}</span>
</router-link>
<span class="recent-articles-time"><i style="padding-right: 4px;" class="el-icon-time"></i>{{item.display_time | parseTime('{m}-{d} {h}:{i}')}}</span>
<span class="recent-articles-content" :to="'/article/edit/'+item.id">
{{item.title}}
</span>
<span class="recent-articles-time">{{item.author}}</span>
</div>
</template>
<template v-else>
<div class="recent-articles-emptyTitle">你太懒了最近都没有撸</div>
<!--<img class="emptyGif" :src="emptyGif">-->
</template>
</div>
<router-link class="recent-articles-more" :to="'/article/wscnlist?uid='+uid">
Show more
</router-link>
</div>
</div>
</div>
Expand All @@ -71,23 +68,37 @@
import PanThumb from 'components/PanThumb';
import MonthKpi from './monthKpi';
import ArticlesChart from './articlesChart';
// import { getStatistics } from 'api/article';

import { getList } from 'api/article';
import emptyGif from 'assets/compbig.gif';
import countTo from 'vue-count-to';
export default {
name: 'dashboard-editor',
components: { PanThumb, MonthKpi, ArticlesChart },
components: { PanThumb, MonthKpi, ArticlesChart, countTo },
data() {
return {
chart: null,
statisticsData: {
article_count: undefined,
comment_count: undefined,
article_count: 1024,
comment_count: 102400,
latest_article: [],
month_article_count: undefined,
pageviews_count: undefined,
week_article: []
month_article_count: 28,
pageviews_count: 1024,
week_article: [
{ count: 30, week: '201716' },
{ count: 26, week: '201715' },
{ count: 31, week: '201714' },
{ count: 28, week: '201713' },
{ count: 40, week: '201712' },
{ count: 41, week: '201711' },
{ count: 50, week: '201710' },
{ count: 42, week: '201709' },
{ count: 36, week: '201708' },
{ count: 32, week: '201707' },
{ count: 40, week: '201706' },
{ count: 41, week: '201705' }
]
},
list: [],
emptyGif
}
},
Expand All @@ -104,15 +115,15 @@
'roles'
]),
recentArticles() {
return this.statisticsData.latest_article.slice(0, 7)
return this.list.slice(0, 7)
}
},
methods: {
fetchData() {
// getStatistics().then(response => {
// this.statisticsData = response.data;
// this.statisticsData.week_article = this.statisticsData.week_article.slice().reverse();
// })
getList(this.listQuery).then(response => {
console.log(response.data)
this.list = response.data;
})
}
},
filters: {
Expand Down