import Mock from 'mockjs' //延时200-600毫秒请求到数据 Mock.setup({ timeout: '200-600' }) const Random = Mock.Random; // 用户总览 function countUserNum() { const a = Mock.mock({ success: true, data: { offlineNum:'@integer(1, 100)', lockNum: '@integer(1, 10)', totalNum:218 } }) a.data.onlineNum=a.data.totalNum-a.data.offlineNum-a.data.lockNum return a } // 接口,第一个参数url,第二个参数请求类型,第三个参数响应回调 Mock.mock(new RegExp('countUserNum'), 'get', countUserNum) // /设备总览 function countDeviceNum() { const a = Mock.mock({ success: true, data: { alarmNum: '@integer(100, 1000)', offlineNum: '@integer(0, 50)', totalNum:698 } }) a.data.onlineNum=a.data.totalNum-a.data.offlineNum return a } Mock.mock(new RegExp('countDeviceNum'), 'get', countDeviceNum) // /设备总览 function sbtx() { const a = Mock.mock({ success: true, data: { "list|20": [ { provinceName: "@province()", cityName: '@city()', countyName: "@county()", createTime: "@datetime('yyyy-MM-dd HH:mm:ss')", deviceId: "6c512d754bbcd6d7cd86abce0e0cac58", "gatewayno|+1": 10000, "onlineState|1": [0, 1], } ] } }) return a } Mock.mock(new RegExp('sbtx'), 'get', sbtx) //中间地图 function centermap(options) { let params = parameteUrl(options.url) if (params.regionCode && params.regionCode != 'china') { const a = Mock.mock({ success: true, data: { "dataList|30": [ { name: "@city()", value: '@integer(1, 1000)' } ], regionCode: params.regionCode,//-代表中国 } }) return a } else { const a = Mock.mock({ success: true, data: { "dataList|8": [ { name: "@province()", value: '@integer(1, 1000)' } ], regionCode: 'china', } }) return a } } Mock.mock(new RegExp('centermap'), 'get', centermap) // 报警次数 function alarmNum() { const a = Mock.mock({ success: true, data: { dateList:['2021-11', '2021-12', '2022-01', '2022-02', '2022-03',"2022-04"], "numList|6":[ '@integer(0, 1000)' ], "numList2|6":[ '@integer(0, 1000)' ] } }) return a } Mock.mock(new RegExp('alarmNum'), 'get', alarmNum) // 实时预警 function ssyj() { const a = Mock.mock({ success: true, data: { "list|40":[{ alertdetail: "@csentence(5,10)", "alertname|1": ["水浸告警","各种报警"], alertvalue: "@float(60, 200)", createtime: "2022-04-19 08:38:33", deviceid: null, "gatewayno|+1": 10000, phase: "A1", sbInfo: "@csentence(10,18)", "terminalno|+1": 100, provinceName: "@province()", cityName: '@city()', countyName: "@county()", }], } }) return a } Mock.mock(new RegExp('ssyj'), 'get', ssyj) //安装计划 function installationPlan() { let num= RandomNumBoth(26,32); const a = Mock.mock({ ["category|"+num]:["@city()"], ["barData|"+num]:["@integer(10, 100)"], }) let lineData=[],rateData=[]; for (let index = 0; index < num; index++) { let lineNum = Mock.mock('@integer(0, 100)')+a.barData[index] lineData.push(lineNum) let rate = a.barData[index] / lineNum; rateData.push((rate*100).toFixed(0)) } a.lineData=lineData a.rateData=rateData return { success: true, data:a } } Mock.mock(new RegExp('installationPlan'), 'get', installationPlan) //报警排名 function ranking() { //多生成几个避免重复 重复会报错 let num =Mock.mock({"list|48":[{ value:"@integer(50,1000)",name:"@city()"}]}).list // console.log(num); let newNum =[],numObj={} num.map(item=>{ if(!numObj[item.name] && newNum.length<8){ numObj[item.name] =true newNum.push(item) } }) let arr = newNum.sort((a,b)=>{ return b.value-a.value }) let a ={ success:true, data:arr } return a } Mock.mock(new RegExp('ranking'), 'get', ranking) /** * @description: min ≤ r ≤ max 随机数 * @param {*} Min * @param {*} Max * @return {*} */ function RandomNumBoth(Min,Max){ var Range = Max - Min; var Rand = Math.random(); var num = Min + Math.round(Rand * Range); //四舍五入 return num; } /** * @description: 获取路径参数 * @param {*} url * @return {*} */ function parameteUrl(url) { var json = {} if (/\?/.test(url)) { var urlString = url.substring(url.indexOf("?") + 1); var urlArray = urlString.split("&"); for (var i = 0; i < urlArray.length; i++) { var urlItem = urlArray[i]; var item = urlItem.split("="); console.log(item); json[item[0]] = item[1]; } return json; } return {}; }