92 lines
1.8 KiB
JavaScript
92 lines
1.8 KiB
JavaScript
/**
|
||
* 公共工具函数
|
||
*/
|
||
|
||
/**
|
||
* 生成随机浮点数参数(rfm)
|
||
* 用于接口请求的防重复参数
|
||
* @returns {number} 0到1之间的随机浮点数
|
||
*/
|
||
export function generateRfm() {
|
||
return Math.random();
|
||
}
|
||
|
||
/**
|
||
* 获取当前时间戳
|
||
* @returns {number} 当前时间戳
|
||
*/
|
||
export function getTimestamp() {
|
||
return Date.now();
|
||
}
|
||
|
||
/**
|
||
* 生成带时间戳的随机参数
|
||
* @returns {number} 带时间戳的随机数
|
||
*/
|
||
export function generateTimestampRfm() {
|
||
return Math.random() + Date.now() / 1000000;
|
||
}
|
||
|
||
/**
|
||
* 构建通用请求参数
|
||
* @param {Object} customParams - 自定义参数
|
||
* @returns {Object} 包含通用参数的对象
|
||
*/
|
||
export function buildCommonParams(customParams = {}) {
|
||
return {
|
||
rfm: generateRfm(),
|
||
...customParams
|
||
};
|
||
}
|
||
/*
|
||
* 转换成GB
|
||
* */
|
||
export function convertToGB(value, type) {
|
||
if (type === 'flowSize') {
|
||
// flowSize 单位是 MB,转换为 GB
|
||
return (value / 1024).toFixed(2);
|
||
} else if (type === 'totalBytesCnt') {
|
||
// totalBytesCnt 单位是 MB,转换为 GB
|
||
return (value / 1024).toFixed(2);
|
||
}
|
||
return value;
|
||
}
|
||
|
||
/**
|
||
* 秒转时间字符串
|
||
* @param {number} seconds 秒
|
||
* @returns {string} HH:mm:ss
|
||
*/
|
||
export function formatSecondsToTime(seconds) {
|
||
if (!seconds && seconds !== 0) return '00:00:00';
|
||
|
||
const h = Math.floor(seconds / 3600);
|
||
const m = Math.floor((seconds % 3600) / 60);
|
||
const s = seconds % 60;
|
||
|
||
return (
|
||
String(h).padStart(2, '0') + ':' +
|
||
String(m).padStart(2, '0') + ':' +
|
||
String(s).padStart(2, '0')
|
||
);
|
||
}
|
||
|
||
/**
|
||
* 根据信号强度(dBm)返回信号等级与体验描述
|
||
* @param {number} dbm 信号强度(负数,如 -65)
|
||
* @returns {string}
|
||
*/
|
||
export function getSignalText(dbm) {
|
||
if (!dbm) {
|
||
return '未知'
|
||
}
|
||
if (dbm >= -50) {
|
||
return '极强'
|
||
}
|
||
|
||
if (dbm >= -70) {
|
||
return '良好'
|
||
}
|
||
|
||
return '一般'
|
||
} |