tweak mock
This commit is contained in:
		@@ -27,8 +27,11 @@ for (let i = 0; i < count; i++) {
 | 
			
		||||
  }))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  '/article/list': config => {
 | 
			
		||||
export default [
 | 
			
		||||
  {
 | 
			
		||||
    url: '/article/list',
 | 
			
		||||
    type: 'get',
 | 
			
		||||
    response: config => {
 | 
			
		||||
      const { importance, type, title, page = 1, limit = 20, sort } = config.query
 | 
			
		||||
 | 
			
		||||
      let mockList = List.filter(item => {
 | 
			
		||||
@@ -48,27 +51,54 @@ export default {
 | 
			
		||||
        total: mockList.length,
 | 
			
		||||
        items: pageList
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  '/article/detail': config => {
 | 
			
		||||
 | 
			
		||||
  {
 | 
			
		||||
    url: '/article/detail',
 | 
			
		||||
    type: 'get',
 | 
			
		||||
    response: config => {
 | 
			
		||||
      const { id } = config.query
 | 
			
		||||
      for (const article of List) {
 | 
			
		||||
        if (article.id === +id) {
 | 
			
		||||
          return article
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  '/article/pv': {
 | 
			
		||||
    pvData: [
 | 
			
		||||
 | 
			
		||||
  {
 | 
			
		||||
    url: '/article/pv',
 | 
			
		||||
    type: 'get',
 | 
			
		||||
    response: _ => {
 | 
			
		||||
      return { pvData: [
 | 
			
		||||
        { key: 'PC', pv: 1024 },
 | 
			
		||||
        { key: 'mobile', pv: 1024 },
 | 
			
		||||
        { key: 'ios', pv: 1024 },
 | 
			
		||||
        { key: 'android', pv: 1024 }
 | 
			
		||||
      ]
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  '/article/create': {
 | 
			
		||||
    data: 'success'
 | 
			
		||||
  },
 | 
			
		||||
  '/article/update': {
 | 
			
		||||
 | 
			
		||||
  {
 | 
			
		||||
    url: '/article/create',
 | 
			
		||||
    type: 'post',
 | 
			
		||||
    response: _ => {
 | 
			
		||||
      return {
 | 
			
		||||
        data: 'success'
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  {
 | 
			
		||||
    url: '/article/update',
 | 
			
		||||
    type: 'post',
 | 
			
		||||
    response: _ => {
 | 
			
		||||
      return {
 | 
			
		||||
        data: 'success'
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -33,18 +33,21 @@ export function mockXHR() {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  for (const [route, respond] of Object.entries(mocks)) {
 | 
			
		||||
    Mock.mock(new RegExp(`${route}`), XHR2ExpressReqWrap(respond))
 | 
			
		||||
  for (const i of mocks) {
 | 
			
		||||
    Mock.mock(new RegExp(i.url), i.type || 'get', XHR2ExpressReqWrap(i.response))
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const responseFake = (route, respond) => (
 | 
			
		||||
  {
 | 
			
		||||
    route: new RegExp(`${MOCK_API_BASE}${route}`),
 | 
			
		||||
const responseFake = (url, type, respond) => {
 | 
			
		||||
  return {
 | 
			
		||||
    url: new RegExp(`${MOCK_API_BASE}${url}`),
 | 
			
		||||
    type: type || 'get',
 | 
			
		||||
    response(req, res) {
 | 
			
		||||
      res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond))
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default Object.keys(mocks).map(route => responseFake(route, mocks[route]))
 | 
			
		||||
export default mocks.map(route => {
 | 
			
		||||
  return responseFake(route.url, route.type, route.response)
 | 
			
		||||
})
 | 
			
		||||
 
 | 
			
		||||
@@ -15,13 +15,28 @@ const userMap = {
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  '/login/login': config => {
 | 
			
		||||
export default [
 | 
			
		||||
  {
 | 
			
		||||
    url: '/login/login',
 | 
			
		||||
    type: 'post',
 | 
			
		||||
    response: config => {
 | 
			
		||||
      const { username } = config.body
 | 
			
		||||
      return userMap[username]
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  '/login/logout': 'success',
 | 
			
		||||
  '/user/info': config => {
 | 
			
		||||
  {
 | 
			
		||||
    url: '/login/logout',
 | 
			
		||||
    type: 'post',
 | 
			
		||||
    response: _ => {
 | 
			
		||||
      return {
 | 
			
		||||
        data: 'success'
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    url: '/user/info\.*',
 | 
			
		||||
    type: 'get',
 | 
			
		||||
    response: config => {
 | 
			
		||||
      const { token } = config.query
 | 
			
		||||
      if (userMap[token]) {
 | 
			
		||||
        return userMap[token]
 | 
			
		||||
@@ -30,4 +45,4 @@ export default {
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
]
 | 
			
		||||
 
 | 
			
		||||
@@ -1,14 +1,12 @@
 | 
			
		||||
import login from './login'
 | 
			
		||||
import role from './role'
 | 
			
		||||
import article from './article'
 | 
			
		||||
import search from './remoteSearch'
 | 
			
		||||
import transaction from './transaction'
 | 
			
		||||
import role from './role'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
export default [
 | 
			
		||||
  ...login,
 | 
			
		||||
  ...role,
 | 
			
		||||
  ...article,
 | 
			
		||||
  ...search,
 | 
			
		||||
  ...transaction,
 | 
			
		||||
  ...role
 | 
			
		||||
}
 | 
			
		||||
  ...search
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,8 +10,11 @@ for (let i = 0; i < count; i++) {
 | 
			
		||||
}
 | 
			
		||||
NameList.push({ name: 'mockPan' })
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  '/search/user': config => {
 | 
			
		||||
export default [
 | 
			
		||||
  {
 | 
			
		||||
    url: '/search/user',
 | 
			
		||||
    type: 'get',
 | 
			
		||||
    response: config => {
 | 
			
		||||
      const { name } = config.query
 | 
			
		||||
      const mockNameList = NameList.filter(item => {
 | 
			
		||||
        const lowerCaseName = item.name.toLowerCase()
 | 
			
		||||
@@ -19,4 +22,22 @@ export default {
 | 
			
		||||
      })
 | 
			
		||||
      return { items: mockNameList }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    url: '/transaction/list',
 | 
			
		||||
    type: 'get',
 | 
			
		||||
    response: _ => {
 | 
			
		||||
      const count = 20
 | 
			
		||||
      return {
 | 
			
		||||
        total: count,
 | 
			
		||||
        [`items|${count}`]: [{
 | 
			
		||||
          order_no: '@guid()',
 | 
			
		||||
          timestamp: +Mock.Random.date('T'),
 | 
			
		||||
          username: '@name()',
 | 
			
		||||
          price: '@float(1000, 15000, 0, 2)',
 | 
			
		||||
          'status|1': ['success', 'pending']
 | 
			
		||||
        }]
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
 
 | 
			
		||||
@@ -35,26 +35,34 @@ const roles = [
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  '/routes': () => {
 | 
			
		||||
    return routes
 | 
			
		||||
export default [
 | 
			
		||||
  {
 | 
			
		||||
    url: '/routes',
 | 
			
		||||
    type: 'get',
 | 
			
		||||
    response: routes
 | 
			
		||||
  },
 | 
			
		||||
  '/roles': () => {
 | 
			
		||||
    return roles
 | 
			
		||||
  {
 | 
			
		||||
    url: '/roles',
 | 
			
		||||
    type: 'get',
 | 
			
		||||
    response: roles
 | 
			
		||||
  },
 | 
			
		||||
  '/roles/add': () => {
 | 
			
		||||
    return Mock.mock('@integer(300, 5000)')
 | 
			
		||||
  {
 | 
			
		||||
    url: '/roles/add',
 | 
			
		||||
    type: 'post',
 | 
			
		||||
    response: Mock.mock('@integer(300, 5000)')
 | 
			
		||||
  },
 | 
			
		||||
  '/roles/update/\/[A-Za-z0-9]': () => {
 | 
			
		||||
    const res = {
 | 
			
		||||
  {
 | 
			
		||||
    url: '/roles/update/\/[A-Za-z0-9]',
 | 
			
		||||
    type: 'put',
 | 
			
		||||
    response: {
 | 
			
		||||
      data: 'success'
 | 
			
		||||
    }
 | 
			
		||||
    return res
 | 
			
		||||
  },
 | 
			
		||||
  '/roles/delete/\/[A-Za-z0-9]'() {
 | 
			
		||||
    const res = {
 | 
			
		||||
  {
 | 
			
		||||
    url: '/roles/delete/\/[A-Za-z0-9]',
 | 
			
		||||
    type: 'delete',
 | 
			
		||||
    response: {
 | 
			
		||||
      data: 'success'
 | 
			
		||||
    }
 | 
			
		||||
    return res
 | 
			
		||||
  }
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
 
 | 
			
		||||
@@ -1,16 +0,0 @@
 | 
			
		||||
import Mock from 'mockjs'
 | 
			
		||||
 | 
			
		||||
const count = 20
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  '/transaction/list': {
 | 
			
		||||
    total: count,
 | 
			
		||||
    [`items|${count}`]: [{
 | 
			
		||||
      order_no: '@guid()',
 | 
			
		||||
      timestamp: +Mock.Random.date('T'),
 | 
			
		||||
      username: '@name()',
 | 
			
		||||
      price: '@float(1000, 15000, 0, 2)',
 | 
			
		||||
      'status|1': ['success', 'pending']
 | 
			
		||||
    }]
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -7,3 +7,11 @@ export function userSearch(name) {
 | 
			
		||||
    params: { name }
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function transactionList(query) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/transaction/list',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: query
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +0,0 @@
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
 | 
			
		||||
export function fetchList(query) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/transaction/list',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: query
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
@@ -21,7 +21,7 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { fetchList } from '@/api/transaction'
 | 
			
		||||
import { transactionList } from '@/api/remoteSearch'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  filters: {
 | 
			
		||||
@@ -46,7 +46,7 @@ export default {
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    fetchData() {
 | 
			
		||||
      fetchList().then(response => {
 | 
			
		||||
      transactionList().then(response => {
 | 
			
		||||
        this.list = response.data.items.slice(0, 8)
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -51,10 +51,9 @@ module.exports = {
 | 
			
		||||
        extended: true
 | 
			
		||||
      }))
 | 
			
		||||
 | 
			
		||||
      // import ES2015 module from common.js module
 | 
			
		||||
      const { default: mocks } = require('./mock')
 | 
			
		||||
      for (const mock of mocks) {
 | 
			
		||||
        app.all(mock.route, mock.response)
 | 
			
		||||
        app[mock.type](mock.url, mock.response)
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user