Skip to content

Commit 686d0ac

Browse files
committed
tweak mock
1 parent 05ca5ca commit 686d0ac

File tree

11 files changed

+169
-112
lines changed

11 files changed

+169
-112
lines changed

mock/article.js

Lines changed: 63 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -27,48 +27,78 @@ for (let i = 0; i < count; i++) {
2727
}))
2828
}
2929

30-
export default {
31-
'/article/list': config => {
32-
const { importance, type, title, page = 1, limit = 20, sort } = config.query
30+
export default [
31+
{
32+
url: '/article/list',
33+
type: 'get',
34+
response: config => {
35+
const { importance, type, title, page = 1, limit = 20, sort } = config.query
3336

34-
let mockList = List.filter(item => {
35-
if (importance && item.importance !== +importance) return false
36-
if (type && item.type !== type) return false
37-
if (title && item.title.indexOf(title) < 0) return false
38-
return true
39-
})
37+
let mockList = List.filter(item => {
38+
if (importance && item.importance !== +importance) return false
39+
if (type && item.type !== type) return false
40+
if (title && item.title.indexOf(title) < 0) return false
41+
return true
42+
})
4043

41-
if (sort === '-id') {
42-
mockList = mockList.reverse()
43-
}
44+
if (sort === '-id') {
45+
mockList = mockList.reverse()
46+
}
4447

45-
const pageList = mockList.filter((item, index) => index < limit * page && index >= limit * (page - 1))
48+
const pageList = mockList.filter((item, index) => index < limit * page && index >= limit * (page - 1))
4649

47-
return {
48-
total: mockList.length,
49-
items: pageList
50+
return {
51+
total: mockList.length,
52+
items: pageList
53+
}
5054
}
5155
},
52-
'/article/detail': config => {
53-
const { id } = config.query
54-
for (const article of List) {
55-
if (article.id === +id) {
56-
return article
56+
57+
{
58+
url: '/article/detail',
59+
type: 'get',
60+
response: config => {
61+
const { id } = config.query
62+
for (const article of List) {
63+
if (article.id === +id) {
64+
return article
65+
}
5766
}
5867
}
5968
},
60-
'/article/pv': {
61-
pvData: [
62-
{ key: 'PC', pv: 1024 },
63-
{ key: 'mobile', pv: 1024 },
64-
{ key: 'ios', pv: 1024 },
65-
{ key: 'android', pv: 1024 }
66-
]
69+
70+
{
71+
url: '/article/pv',
72+
type: 'get',
73+
response: _ => {
74+
return { pvData: [
75+
{ key: 'PC', pv: 1024 },
76+
{ key: 'mobile', pv: 1024 },
77+
{ key: 'ios', pv: 1024 },
78+
{ key: 'android', pv: 1024 }
79+
]
80+
}
81+
}
6782
},
68-
'/article/create': {
69-
data: 'success'
83+
84+
{
85+
url: '/article/create',
86+
type: 'post',
87+
response: _ => {
88+
return {
89+
data: 'success'
90+
}
91+
}
7092
},
71-
'/article/update': {
72-
data: 'success'
93+
94+
{
95+
url: '/article/update',
96+
type: 'post',
97+
response: _ => {
98+
return {
99+
data: 'success'
100+
}
101+
}
73102
}
74-
}
103+
]
104+

mock/index.js

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,21 @@ export function mockXHR() {
3333
}
3434
}
3535

36-
for (const [route, respond] of Object.entries(mocks)) {
37-
Mock.mock(new RegExp(`${route}`), XHR2ExpressReqWrap(respond))
36+
for (const i of mocks) {
37+
Mock.mock(new RegExp(i.url), i.type || 'get', XHR2ExpressReqWrap(i.response))
3838
}
3939
}
4040

41-
const responseFake = (route, respond) => (
42-
{
43-
route: new RegExp(`${MOCK_API_BASE}${route}`),
41+
const responseFake = (url, type, respond) => {
42+
return {
43+
url: new RegExp(`${MOCK_API_BASE}${url}`),
44+
type: type || 'get',
4445
response(req, res) {
4546
res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond))
4647
}
4748
}
48-
)
49+
}
4950

50-
export default Object.keys(mocks).map(route => responseFake(route, mocks[route]))
51+
export default mocks.map(route => {
52+
return responseFake(route.url, route.type, route.response)
53+
})

mock/login.js

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,34 @@ const userMap = {
1515
}
1616
}
1717

18-
export default {
19-
'/login/login': config => {
20-
const { username } = config.body
21-
return userMap[username]
18+
export default [
19+
{
20+
url: '/login/login',
21+
type: 'post',
22+
response: config => {
23+
const { username } = config.body
24+
return userMap[username]
25+
}
26+
},
27+
{
28+
url: '/login/logout',
29+
type: 'post',
30+
response: _ => {
31+
return {
32+
data: 'success'
33+
}
34+
}
2235
},
23-
'/login/logout': 'success',
24-
'/user/info': config => {
25-
const { token } = config.query
26-
if (userMap[token]) {
27-
return userMap[token]
28-
} else {
29-
return false
36+
{
37+
url: '/user/info\.*',
38+
type: 'get',
39+
response: config => {
40+
const { token } = config.query
41+
if (userMap[token]) {
42+
return userMap[token]
43+
} else {
44+
return false
45+
}
3046
}
3147
}
32-
}
33-
48+
]

mock/mocks.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
import login from './login'
2+
import role from './role'
23
import article from './article'
34
import search from './remoteSearch'
4-
import transaction from './transaction'
5-
import role from './role'
65

7-
export default {
6+
export default [
87
...login,
8+
...role,
99
...article,
10-
...search,
11-
...transaction,
12-
...role
13-
}
10+
...search
11+
]
1412

mock/remoteSearch.js

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,34 @@ for (let i = 0; i < count; i++) {
1010
}
1111
NameList.push({ name: 'mockPan' })
1212

13-
export default {
14-
'/search/user': config => {
15-
const { name } = config.query
16-
const mockNameList = NameList.filter(item => {
17-
const lowerCaseName = item.name.toLowerCase()
18-
return !(name && lowerCaseName.indexOf(name.toLowerCase()) < 0)
19-
})
20-
return { items: mockNameList }
13+
export default [
14+
{
15+
url: '/search/user',
16+
type: 'get',
17+
response: config => {
18+
const { name } = config.query
19+
const mockNameList = NameList.filter(item => {
20+
const lowerCaseName = item.name.toLowerCase()
21+
return !(name && lowerCaseName.indexOf(name.toLowerCase()) < 0)
22+
})
23+
return { items: mockNameList }
24+
}
25+
},
26+
{
27+
url: '/transaction/list',
28+
type: 'get',
29+
response: _ => {
30+
const count = 20
31+
return {
32+
total: count,
33+
[`items|${count}`]: [{
34+
order_no: '@guid()',
35+
timestamp: +Mock.Random.date('T'),
36+
username: '@name()',
37+
price: '@float(1000, 15000, 0, 2)',
38+
'status|1': ['success', 'pending']
39+
}]
40+
}
41+
}
2142
}
22-
}
43+
]

mock/role/index.js

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,26 +35,34 @@ const roles = [
3535
}
3636
]
3737

38-
export default {
39-
'/routes': () => {
40-
return routes
38+
export default [
39+
{
40+
url: '/routes',
41+
type: 'get',
42+
response: routes
4143
},
42-
'/roles': () => {
43-
return roles
44+
{
45+
url: '/roles',
46+
type: 'get',
47+
response: roles
4448
},
45-
'/roles/add': () => {
46-
return Mock.mock('@integer(300, 5000)')
49+
{
50+
url: '/roles/add',
51+
type: 'post',
52+
response: Mock.mock('@integer(300, 5000)')
4753
},
48-
'/roles/update/\/[A-Za-z0-9]': () => {
49-
const res = {
54+
{
55+
url: '/roles/update/\/[A-Za-z0-9]',
56+
type: 'put',
57+
response: {
5058
data: 'success'
5159
}
52-
return res
5360
},
54-
'/roles/delete/\/[A-Za-z0-9]'() {
55-
const res = {
61+
{
62+
url: '/roles/delete/\/[A-Za-z0-9]',
63+
type: 'delete',
64+
response: {
5665
data: 'success'
5766
}
58-
return res
5967
}
60-
}
68+
]

mock/transaction.js

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/api/remoteSearch.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,11 @@ export function userSearch(name) {
77
params: { name }
88
})
99
}
10+
11+
export function transactionList(query) {
12+
return request({
13+
url: '/transaction/list',
14+
method: 'get',
15+
params: query
16+
})
17+
}

src/api/transaction.js

Lines changed: 0 additions & 9 deletions
This file was deleted.

src/views/dashboard/admin/components/TransactionTable.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
</template>
2222

2323
<script>
24-
import { fetchList } from '@/api/transaction'
24+
import { transactionList } from '@/api/remoteSearch'
2525
2626
export default {
2727
filters: {
@@ -46,7 +46,7 @@ export default {
4646
},
4747
methods: {
4848
fetchData() {
49-
fetchList().then(response => {
49+
transactionList().then(response => {
5050
this.list = response.data.items.slice(0, 8)
5151
})
5252
}

0 commit comments

Comments
 (0)