/* * @Author: donghao donghao@supervision.ltd * @Date: 2024-03-01 16:34:06 * @LastEditors: donghao donghao@supervision.ltd * @LastEditTime: 2024-05-10 15:23:17 * @FilePath: \General-AI-Platform-Web\mock\pools\serverData.ts * @Description: mock服务器数据 */ import { generateRandomString } from '../utils/mockHash'; import { generateRandomDateTimeByYear } from '../utils/mockMoment'; const generateRandomTwoDecimal = () => { // 生成一个在 [0, 1) 范围内的随机数 const randomFraction = Math.random(); // 乘以一个倍数,例如 100,以增加小数位数 const multipliedValue = randomFraction * 100; // 使用 Math.round() 进行四舍五入,并将结果除以倍数,得到两位小数 return Math.round(multipliedValue) / 100; }; const progressData = () => { const finalArr = [ { label: 'CPU', percent: generateRandomTwoDecimal(), strokeColor: 'rgb(243,48,5)', usedColors: ['#FFAB00', '#FF4409'], freeColors: ['#477BFF', '#0048FE'], }, { label: '内存', percent: (15 + Math.floor(Math.random() * 85)) / 100, strokeColor: 'rgb(33,169,122)', usedColors: ['#47A3FF', '#0D6EFF'], freeColors: ['#00C45A ', '#4AE003'], }, { label: '存储', percent: (15 + Math.floor(Math.random() * 85)) / 100, strokeColor: 'rgb(33,169,122)', usedColors: ['#FF8110', '#EB0404'], freeColors: ['#4200FF', '#9520F0'], }, { label: 'GPU', percent: (85 + Math.floor(Math.random() * 15)) / 100, strokeColor: 'rgb(250,173,20)', usedColors: ['#AE47FF', '#F008AF'], freeColors: ['#FF4D00', '#F2B721'], }, ]; return finalArr; }; // 服务器状态列表生成数据 const fetchServerList = () => { const currList: Record[] = []; const count = 30; const baseVersion = 'V' + Math.floor(Math.random() * 10); const currFileTime = new Date().getTime(); const randomString = generateRandomString(20); const ip1 = Math.floor(Math.random() * 255); const ip2 = Math.floor(Math.random() * 255); let onlineCount = 0; let outlineCount = 0; for (let i = 0; i < count; i++) { const currState = Math.floor(Math.random() * 8) % 2 === 0 ? '1' : '2'; if (currState === '1') { onlineCount++; } else { outlineCount++; } currList.push({ id: i + '1', createTime: generateRandomDateTimeByYear(2022), updateTime: generateRandomDateTimeByYear(2023), isEnable: Math.floor(Math.random() * 8) % 2 === 0, deviceSort: '服务器' + (i + 1), index: i, provider: '苏胜天', type: 4, banner: 'https://tdesign.gtimg.com/tdesign-pro/cloud-server.jpg', state: currState, IP: `192.168.${ip1}.${ip2}`, port: 80, userName: 'admin', pwd: '123456', description: 'SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部', progressData: progressData(), }); } return { count, data: currList, onlineCount, outlineCount, }; }; // 设备状态列表生成数据 const fetchDeviceList = () => { const currList: Record[] = []; const count = 120; const baseVersion = 'V' + Math.floor(Math.random() * 10); const currFileTime = new Date().getTime(); const randomString = generateRandomString(20); const ip1 = Math.floor(Math.random() * 255); const ip2 = Math.floor(Math.random() * 255); let onlineCount = 0; let outlineCount = 0; let processCount = 0; let errorCount = 0; for (let i = 0; i < count; i++) { const currState = 1 + (Math.floor(Math.random() * 30) % 4) + ''; switch (currState) { case '1': onlineCount++; break; case '2': outlineCount++; break; case '3': processCount++; break; default: errorCount++; break; } currList.push({ id: i + '1', createTime: generateRandomDateTimeByYear(2022), updateTime: generateRandomDateTimeByYear(2023), isEnable: Math.floor(Math.random() * 8) % 2 === 0, name: '设备' + (i + 1), groupName: '设备组0' + ((Math.floor(Math.random() * 8) % 3) + 1), deviceType: '设备分类' + ((Math.floor(Math.random() * 8) % 4) + 1), index: i, provider: '苏胜天', type: 4, banner: 'https://tdesign.gtimg.com/tdesign-pro/cloud-server.jpg', state: currState, IP: `192.168.${ip1}.${ip2}`, port: 80, remark: '暂无', description: 'SSL证书又叫服务器证书,腾讯云为您提供证书的一站式服务,包括免费、付费证书的申请、管理及部', progressData: progressData(), }); } return { count, data: currList, onlineCount, outlineCount, processCount, errorCount, }; }; // 服务器日志列表数据生成 const fetchServerStateLogList = () => { const count = 1 + Math.floor(Math.random() * 80); let currList = []; for (let i = 0; i < count; i++) { const ip1 = Math.floor(Math.random() * 255); const ip2 = Math.floor(Math.random() * 255); const port = 80; currList.push({ id: i + '1', createTime: generateRandomDateTimeByYear(2022), updateTime: generateRandomDateTimeByYear(2023), IP: `192.168.${ip1}.${ip2}`, port, deviceSort: '服务器', provider: '苏胜天', }); } return { count: currList.length, data: currList, }; }; // 设备日志列表数据生成 const fetchDeviceStateLogList = () => { const count = 1 + Math.floor(Math.random() * 80); let currList = []; for (let i = 0; i < count; i++) { const ip1 = Math.floor(Math.random() * 255); const ip2 = Math.floor(Math.random() * 255); const port = 80; currList.push({ id: i + '1', createTime: generateRandomDateTimeByYear(2022), updateTime: generateRandomDateTimeByYear(2023), IP: `192.168.${ip1}.${ip2}`, port, deviceSort: '设备', provider: '苏胜天', runTime: `${Math.floor(Math.random() * 100)}天${Math.floor(Math.random() * 24)}小时`, }); } return { count: currList.length, data: currList, }; }; /**服务器 */ export const serverListData = { data: { ...fetchServerList(), }, }; export const serverParamsListData = { data: { data: progressData(), }, }; export const serverStateLogListData = { data: { ...fetchServerStateLogList(), }, }; /**设备 */ export const deviceListData = { data: { ...fetchDeviceList(), }, }; export const deviceStateLogListData = { data: { ...fetchDeviceStateLogList(), }, };