Skip to content

Commit a60509b

Browse files
committed
完成部分
还有很多小细节需要完成
1 parent 3126521 commit a60509b

25 files changed

+1921
-265
lines changed

build/superagent-mock-config.js

Lines changed: 1067 additions & 1 deletion
Large diffs are not rendered by default.

src/App.vue

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ let request = require('superagent')
1111
let config = require('../build//superagent-mock-config')
1212
let superagentMock = require('superagent-mock')(request, config)
1313
14-
request.get('https://api.local/hero')
15-
.send({superhero: 'superman'})
16-
.end(function(err, res){
17-
console.log(res.body)
18-
})
14+
// request.get('https://api.local/hero')
15+
// .send({superhero: 'superman'})
16+
// .end(function(err, res){
17+
// console.log(res.body)
18+
// })
1919
2020
2121
export default {

src/api/getAllCity.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import request from 'superagent'
2+
import config from '../../build/superagent-mock-config'
3+
import mock from 'superagent-mock'
4+
5+
mock(request, config)
6+
7+
export function getAllCity(callback , url = 'https://api.local/get_all_city') {
8+
request.get(url)
9+
.end(function(err, res){
10+
11+
if(!res.ok&&err){
12+
console.log(err)
13+
}else{
14+
15+
callback(res.body)
16+
}
17+
18+
})
19+
}
20+

src/api/getAllNode.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import request from 'superagent'
2+
import config from '../../build/superagent-mock-config'
3+
import mock from 'superagent-mock'
4+
5+
mock(request, config)
6+
7+
export function getAllNode(callback , url = 'https://api.local/get_all_node') {
8+
request.get(url)
9+
.end(function(err, res){
10+
11+
if(!res.ok&&err){
12+
console.log(err)
13+
}else{
14+
15+
callback(res.body)
16+
}
17+
18+
})
19+
}
20+

src/api/getIndexHot.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import request from 'superagent'
2+
import config from '../../build/superagent-mock-config'
3+
import mock from 'superagent-mock'
4+
5+
mock(request, config)
6+
7+
export function getHot(callback , url = 'https://api.local/index/hot') {
8+
request.get(url)
9+
.end(function(err, res){
10+
11+
if(!res.ok&&err){
12+
console.log(err)
13+
}else{
14+
15+
callback(res.body)
16+
}
17+
18+
})
19+
}
20+

src/api/getList.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import request from 'superagent'
2+
import config from '../../build/superagent-mock-config'
3+
import mock from 'superagent-mock'
4+
5+
mock(request, config)
6+
7+
export function getList(callback, page = 1 , url = 'https://api.local/article/list', category = 'all') {
8+
9+
// 假如分类是数字,说明传入是节点 ID
10+
if (typeof category == 'number') {
11+
request.get(url)
12+
.set('page',page)
13+
.set('node',category)
14+
.end(function(err, res){
15+
16+
if(!res.ok&&err){
17+
18+
console.log(err)
19+
}else{
20+
21+
callback(res.body)
22+
}
23+
24+
})
25+
}else{
26+
request.get(url)
27+
.set('page',page)
28+
.set('category',category)
29+
.end(function(err, res){
30+
31+
if(!res.ok&&err){
32+
33+
console.log(err)
34+
}else{
35+
36+
callback(res.body)
37+
}
38+
39+
})
40+
}
41+
42+
}
43+

src/api/getOtherWiki.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import request from 'superagent'
2+
import config from '../../build/superagent-mock-config'
3+
import mock from 'superagent-mock'
4+
5+
mock(request, config)
6+
7+
export function getOtherWiki(callback , url = 'https://api.local/other_wiki') {
8+
request.get(url)
9+
.end(function(err, res){
10+
11+
if(!res.ok&&err){
12+
console.log(err)
13+
}else{
14+
callback(res.body)
15+
}
16+
17+
})
18+
}
19+

src/components/Ad.vue

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<div class="card-block text-center">
44
<!-- <span class="f1rem">点击看看吧</span> -->
55
<a href="https://www.wilddog.com/?utm_source=v2ex&amp;utm_medium=banner&amp;utm_content=homepageright&amp;utm_campaign=suzhoucodingcamp" target="_blank">
6-
<img src="//cdn.wilddog.com/images/ads/v2ex/v2ex-500x500-1.jpg" border="0" width="250" height="250" alt="100offer">
6+
<img src="https://d13yacurqjgara.cloudfront.net/users/566817/screenshots/2868858/lagifathon29_dribbble.gif" border="0" width="250" height="250" alt="100offer">
77
</a>
88
</div>
99
</div>
@@ -12,6 +12,9 @@
1212

1313

1414
<style lang="stylus" scoped>
15+
.card
16+
border-left none
17+
border-right none
1518
.card-block
1619
padding 0
1720

src/components/Category.vue

Lines changed: 18 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -4,59 +4,34 @@
44
节点导航
55
</div>
66
<div class="card-block">
7-
<div class="item">
8-
<div class="pull-left cate_dad ofade">Mobile</div>
7+
<div class="item" v-for="item in category">
8+
<div class="pull-left cate_dad ofade">{{item.name}}</div>
99
<div class="content">
10-
<a href="#" class="cate">IOS</a>
11-
<a href="#" class="cate">Android</a>
12-
<a href="#" class="cate">黑莓</a>
13-
<a href="#" class="cate">WinPhone</a>
10+
<a v-for="cate in item.content" v-link="{ name: 'node',params: {node_id : cate.id}}" class="cate">{{ cate.name }}</a>
1411
</div>
1512
</div>
1613

17-
<div class="item">
18-
<div class="pull-left cate_dad ofade">Front-End</div>
19-
<div class="content">
20-
<a href="#" class="cate">CSS</a>
21-
<a href="#" class="cate">JavaScript</a>
22-
<a href="#" class="cate">JQuery</a>
23-
<a href="#" class="cate">React</a>
24-
<a href="#" class="cate">Vue</a>
25-
<a href="#" class="cate">Gulp</a>
26-
<a href="#" class="cate">Grunt</a>
27-
<a href="#" class="cate">Angular</a>
28-
<a href="#" class="cate">Typescript</a>
29-
<a href="#" class="cate">Dart</a>
30-
<a href="#" class="cate">EmberJS</a>
31-
<a href="#" class="cate">绝对不会屈服</a>
32-
<a href="#" class="cate">@IT</a>
33-
34-
</div>
35-
</div>
36-
37-
<div class="item">
38-
<div class="pull-left cate_dad ofade">Mobile</div>
39-
<div class="content">
40-
<a href="#" class="cate">IOS</a>
41-
<a href="#" class="cate">Android</a>
42-
<a href="#" class="cate">黑莓</a>
43-
<a href="#" class="cate">WinPhone</a>
44-
</div>
45-
</div>
46-
47-
<div class="item">
48-
<div class="pull-left cate_dad ofade">活动</div>
49-
<div class="content">
50-
<a href="#" class="cate">友谊小船</a>
51-
<a href="#" class="cate">面向对象</a>
52-
</div>
53-
</div>
5414
</div>
5515

5616

5717
</div>
5818
</template>
5919

20+
<script>
21+
import { getAllNode } from '../api/getAllNode'
22+
23+
export default {
24+
data(){
25+
let source
26+
getAllNode((ret) => {
27+
source = ret
28+
})
29+
return {
30+
category: source.content
31+
}
32+
}
33+
}
34+
</script>
6035

6136
<style lang="stylus" scoped>
6237
@import '../assets/variables.styl'

src/components/City.vue

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,28 @@
44
热门城市
55
</div>
66
<div class="card-block">
7-
<div class="text-left">
8-
<a href="#">上海</a>
9-
<a href="#">北京</a>
10-
<a href="#">西安</a>
11-
<a href="#">杭州</a>
12-
<a href="#">深圳</a>
13-
<a href="#">广州</a>
14-
<a href="#">厦门</a>
15-
<a href="#">其他城市</a>
7+
<div class="text-left" >
8+
<a v-for="item in city" v-link="{ name: 'node',params: {node_id: item.id} }">{{item.name}}</a>
169
</div>
1710
</div>
1811
</div>
1912
</template>
13+
<script>
2014
15+
import { getAllCity } from '../api/getAllCity'
16+
17+
export default {
18+
data(){
19+
let source
20+
getAllCity((ret) => {
21+
source = ret
22+
})
23+
return {
24+
city: source.content
25+
}
26+
}
27+
}
28+
</script>
2129

2230
<style lang="stylus" scoped>
2331
@import '../assets/variables.styl'

src/components/Hot.vue

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<template>
2+
<div class="hot-post">
3+
4+
<div class="post animated fadeInLeft">
5+
<a class="title" v-link="{ name: 'article', params: {article_id: source[0].id}}">
6+
<span class="label label-g" v-if="source[0].label.g">G</span><span class="label label-j" v-if="source[0].label.j">J</span><span class="label label-r" v-if="source[0].label.r">R</span><span class="label label-t" v-if="source[0].label.t">T</span>
7+
8+
{{ source[0].title }}
9+
10+
</a>
11+
<div class="description"><a href="#">{{ source[0].category }}</a> · 由 <a href="">{{ source[0].last_comment.user_name }}</a> 于 {{ source[0].last_comment.last_time }}回复
12+
</div>
13+
</div>
14+
15+
<div class="post animated fadeInRight">
16+
<a class="title" v-link="{ name: 'article', params: {article_id: source[1].id}}">
17+
<span class="label label-g" v-if="source[1].label.g">G</span><span class="label label-j" v-if="source[1].label.j">J</span><span class="label label-r" v-if="source[1].label.r">R</span><span class="label label-t" v-if="source[1].label.t">T</span>
18+
19+
{{ source[1].title }}
20+
21+
</a>
22+
<div class="description"><a href="#">{{ source[1].category }}</a> · 由 <a href="">{{ source[1].last_comment.user_name }}</a> 于 {{ source[1].last_comment.last_time }}回复
23+
</div>
24+
</div>
25+
26+
</div>
27+
28+
</template>
29+
30+
<script>
31+
import { getHot } from '../api/getIndexHot'
32+
33+
export default {
34+
35+
data () {
36+
let source
37+
getHot((response) => {
38+
source = response.content
39+
})
40+
41+
return {
42+
source: source
43+
}
44+
}
45+
}
46+
47+
</script>
48+
49+
<style lang="stylus" scoped>
50+
.hot-post
51+
height 70px
52+
position absolute
53+
bottom 0
54+
left 0
55+
right 0
56+
background-color rgba(255,255,255,.25)
57+
text-align center
58+
overflow hidden
59+
@media screen and (max-width: 600px)
60+
display none
61+
.post
62+
z-index 5
63+
text-align left
64+
padding-right 2em
65+
padding-top .7em
66+
display inline-block
67+
color #3A2F2E
68+
a
69+
color #fff
70+
.title
71+
display inline-block
72+
overflow: hidden;
73+
text-overflow: ellipsis;
74+
white-space: nowrap;
75+
width: 300px;
76+
.description
77+
font-size .9rem
78+
display block
79+
text-align center
80+
overflow: hidden;
81+
text-overflow: ellipsis;
82+
white-space: nowrap;
83+
width: 300px;
84+
85+
</style>

0 commit comments

Comments
 (0)