cnpm install --save-dev mockjs
爲了只在開發環境使用mock,而打包到生產環境時自動不使用mock,咱們能夠在env中作一個配置前端
//dev.env
module.exports = merge(prodEnv, { NODE_ENV: '"development"', MOCK: 'true', }) //prod.env
module.exports = { NODE_ENV: '"production"', MOCK: 'false', }
而後再main.js裏面引入mockjsvue
process.env.MOCK && require('@/mock') //表示配置MOCK爲true的時候,才引入mock,因此生產環境的時候就不引入mock了
mock/index.jsajax
//將全部的mock文件導入
require('./inspection') // 在這裏能夠作一些通用的配置
const Mock = require("mockjs") // 設置全部ajax請求的超時時間,模擬網絡傳輸耗時
Mock.setup({ timeout: 0-300 })
const Mock = require("mockjs") const Random = Mock.Random; Mock.mock('/api/load','get',{ 'xData|100':['@datetime'], 'series|2':[{ 'name':'@NAME', 'type':'line', 'smooth':true, 'data|100':['@integer(1,600)'] }] })
攔截ajax請求主要可使用Mock中的兩個方法:npm
Mock.mock( rurl, rtype, template )
Mock.mock( rurl, rtype, function( options ) )
{ 'data|1-10':[{}] } 表示生成生成包含 1到10個空對象的數據 '@EMAIL' 表示隨機生成一個email地址 '@CNAME' 表示隨機生成一箇中文人名
Mock.mock('/api/redo','get',function(options){ let series=[]; for(let n=1;n<18;n++){ let _obj={}; _obj.name = '05-' + (n <= 9 ? '0' + n : n); _obj.type = 'line'; _obj.data=[]; for(let i=0;i<24;i++){ let _d = Random.integer(1,10) * (i%2 == 0 ? 10 : 90); _obj.data.push(_d); } series.push(_obj); } return series; })
到此基本應用就能夠了,更詳細的使用,請看官方文檔。後端
解決:後來將路徑改爲正則就好api
//api //獲取健康模型數據 export const getRadarDataApi = (id) => ajax({url:BASEURL + 'radar/' + id}) //mock Mock.mock(/\/api\/radar/,'get',{ 'radar|5':['@integer(0, 100)'] })