From e1c28921470ca2a82403ef5a7bc07f1c48619b36 Mon Sep 17 00:00:00 2001
From: 刘嘉威 <daidaibg@163.com>
Date: 星期三, 26 十月 2022 16:51:43 +0800
Subject: [PATCH] feat: 增加右上 右中图表

---
 src/mock/mock-index.ts |  160 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 154 insertions(+), 6 deletions(-)

diff --git a/src/mock/mock-index.ts b/src/mock/mock-index.ts
index b9ebfe2..72f33fb 100644
--- a/src/mock/mock-index.ts
+++ b/src/mock/mock-index.ts
@@ -1,6 +1,28 @@
 import Mock from "mockjs";
-import {parameteUrl} from "@/utils/query-param"
-//宸︿笂
+//澶勭悊璺緞浼犲弬
+import { parameteUrl } from "@/utils/query-param"
+
+function ArrSet(Arr: any[], id: string): any[] {
+    let obj: any = {}
+    const arrays = Arr.reduce((setArr, item) => {
+        obj[item[id]] ? '' : (obj[item[id]] = true && setArr.push(item))
+        return setArr
+    }, [])
+    return arrays
+}
+/**
+* @description: min 鈮� r 鈮� max  闅忔満鏁�
+* @param {*} Min
+* @param {*} Max
+* @return {*}
+*/
+function RandomNumBoth(Min: any, Max: any) {
+    var Range = Max - Min;
+    var Rand = Math.random();
+    var num = Min + Math.round(Rand * Range); //鍥涜垗浜斿叆
+    return num;
+}
+//宸︿腑
 export default [
     {
         url: "/bigscreen/countUserNum",
@@ -9,14 +31,140 @@
             const a = Mock.mock({
                 success: true,
                 data: {
-                    offlineNum: '@integer(1, 100)',
-                    lockNum: '@integer(1, 10)',
-                    totalNum: 218
+                    offlineNum: '@integer(50, 100)',
+                    alarmNum: '@integer(20, 100)',
+                    lockNum: '@integer(10, 50)',
+                    totalNum: 368
                 }
             })
-            a.data.onlineNum = a.data.totalNum - a.data.offlineNum - a.data.lockNum
+            a.data.onlineNum = a.data.totalNum - a.data.offlineNum - a.data.lockNum - a.data.alarmNum
             return a
         },
     },
+    {
+        url: "/bigscreen/countDeviceNum",
+        type: "get",
+        response: () => {
+            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
+        }
+    },
+    //鍙充笂
+    {
+        url: "/bigscreen/alarmNum",
+        type: "get",
+        response: () => {
+            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
+        }
+    },
+    //鍙充腑
+    {
+        url: "/bigscreen/ranking",
+        type: "get",
+        response: () => {
+            let num =Mock.mock({"list|80":[{ value:"@integer(50,1000)",name:"@city()"}]}).list
+            //   console.log("ranking",num);
+              let newNum:any =[],numObj:any ={}
+              num.map((item:any )=>{
+                if(!numObj[item.name] && newNum.length<8){
+                    numObj[item.name] =true
+                    newNum.push(item)
+                }
+              })
+              let arr = newNum.sort((a:any ,b:any )=>{
+                return b.value-a.value
+              })
+              let a ={
+                  success:true,
+                  data:arr
+              }
+              return a
+        }
+    },
+    //瀹夎璁″垝
+    {
+        url: "/bigscreen/installationPlan",
+        type: "get",
+        response: () => {
 
+            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
+            }
+        }
+    },
+    {
+        url: "/bigscreen/centerMap",
+        type: "get",
+        response: (options: any) => {
+            let params = parameteUrl(options.url)
+            //涓嶆槸涓浗鐨勬椂鍊�
+            if (params.regionCode && !["china"].includes(params.regionCode)) {
+                const a = Mock.mock({
+                    success: true,
+                    data: {
+                        "dataList|100": [
+                            {
+                                name: "@city()",
+                                value: '@integer(1, 1000)'
+                            }
+                        ],
+                        regionCode: params.regionCode,//-浠h〃涓浗
+                    }
+                })
+                return a
+            } else {
+                const a = Mock.mock({
+                    success: true,
+                    data: {
+                        "dataList|12": [
+                            {
+                                name: "@province()",
+                                value: '@integer(1, 1100)'
+                            }
+                        ],
+                        regionCode: 'china',
+                    }
+                })
+                // 鍘婚噸
+                a.data.dataList = ArrSet(a.data.dataList, "name")
+                return a
+            }
+        }
+    }
 ];
+

--
Gitblit v1.8.0