diff --git a/src/api/perfManage/goldTarget.ts b/src/api/perfManage/goldTarget.ts index d254c851..6d4c5eb0 100644 --- a/src/api/perfManage/goldTarget.ts +++ b/src/api/perfManage/goldTarget.ts @@ -123,10 +123,9 @@ export async function getGoldTitleByNE(neType: string) { * @returns object */ export async function listUPFData(timeArr: any) { - const initTime: Date = new Date(); const twentyFourHoursAgo: Date = new Date( - initTime.getTime() - 10*60 * 1000 + initTime.getTime() - 10 * 60 * 1000 ); return await Promise.allSettled([ @@ -135,7 +134,9 @@ export async function listUPFData(timeArr: any) { url: `/api/rest/databaseManagement/v1/select/omc_db/gold_kpi`, method: 'get', params: { - SQL: `SELECT gold_kpi.*,kpi_title.en_title FROM gold_kpi LEFT JOIN kpi_title on gold_kpi.kpi_id=kpi_title.kpi_id where 1=1 and gold_kpi.kpi_id ='UPF.06' and timestamp BETWEEN '${parseDateToStr(twentyFourHoursAgo)}' AND '${parseDateToStr(initTime)}' `, + SQL: `SELECT gold_kpi.*,kpi_title.en_title FROM gold_kpi LEFT JOIN kpi_title on gold_kpi.kpi_id=kpi_title.kpi_id where 1=1 and gold_kpi.kpi_id ='UPF.06' and timestamp BETWEEN '${parseDateToStr( + twentyFourHoursAgo + )}' AND '${parseDateToStr(initTime)}' `, // SQL: `SELECT gold_kpi.kpi_id, sum(gold_kpi.value) as index, kpi_title.en_title // FROM gold_kpi // LEFT JOIN kpi_title on gold_kpi.kpi_id=kpi_title.kpi_id @@ -151,7 +152,9 @@ export async function listUPFData(timeArr: any) { url: `/api/rest/databaseManagement/v1/select/omc_db/gold_kpi`, method: 'get', params: { - SQL: `SELECT gold_kpi.*,kpi_title.en_title FROM gold_kpi LEFT JOIN kpi_title on gold_kpi.kpi_id=kpi_title.kpi_id where 1=1 and gold_kpi.kpi_id ='UPF.03' and timestamp BETWEEN '${parseDateToStr(twentyFourHoursAgo)}' AND '${parseDateToStr(initTime)}' `, + SQL: `SELECT gold_kpi.*,kpi_title.en_title FROM gold_kpi LEFT JOIN kpi_title on gold_kpi.kpi_id=kpi_title.kpi_id where 1=1 and gold_kpi.kpi_id ='UPF.03' and timestamp BETWEEN '${parseDateToStr( + twentyFourHoursAgo + )}' AND '${parseDateToStr(initTime)}' `, }, timeout: 60_000, }), @@ -200,33 +203,3 @@ export async function listUPFData(timeArr: any) { return { upData, downData }; }); } - -/** - * 首页查询UPF上下行字节数 - * @param query 查询参数 - * @returns object - */ -export async function listUPFIndex() { - const initTime: Date = new Date(); - const twentyFourHoursAgo: Date = new Date( - initTime.getTime() - 24 * 60 * 60 * 1000 - ); - // 发起请求 - const result = await request({ - url: `/api/rest/databaseManagement/v1/select/omc_db/gold_kpi`, - method: 'get', - params: { - SQL: `SELECT gold_kpi.kpi_id, sum(gold_kpi.value) as Total FROM gold_kpi WHERE 1=1 AND gold_kpi.kpi_id in('UPF.06','UPF.03') AND timestamp BETWEEN '${parseDateToStr( - twentyFourHoursAgo - )}' AND '${parseDateToStr(initTime)}' GROUP BY gold_kpi.kpi_id`, - }, - }); - // 解析数据 - if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) { - let data = result.data.data[0]; - return Object.assign(result, { - data: parseObjLineToHump(data['gold_kpi']), - }); - } - return result; -} diff --git a/src/utils/parse-utils.ts b/src/utils/parse-utils.ts index b5ee9498..36876262 100644 --- a/src/utils/parse-utils.ts +++ b/src/utils/parse-utils.ts @@ -151,15 +151,25 @@ export function parseSizeFromKbs(sizeByte: number, timeInterval: number): any { /** * 字节数转换单位 - * @param sizeByte 数值大小 - * @returns + * @param bits 比特b大小 + * @returns MB */ -export function formatBytes(bytes: number): string { - if (bytes === 0) { - return '0 B'; // 处理 bytes 为 0 的情况 +export function parseSizeFromBytes(bits: number | string): string { + bits = Number(bits) || 0; + const byte = bits / 8; + const kb = byte / 1024; + const mb = kb / 1024; + const gb = mb / 1024; + const tb = gb / 1024; + + if (tb >= 1) { + return tb.toFixed(2) + ' TB'; + } else if (gb >= 1) { + return gb.toFixed(2) + ' GB'; + } else if (mb >= 1) { + return mb.toFixed(2) + ' MB'; + } else if (kb >= 1) { + return kb.toFixed(2) + ' KB'; } - const units = ['B', 'KB', 'MB', 'GB', 'TB']; - const unitIndex = Math.floor(Math.log2(bytes) / 10); - const result =(bytes / Math.pow(1024, unitIndex)).toFixed(2) + ' ' + units[unitIndex]; - return result; + return bits + ' B'; } diff --git a/src/views/dashboard/overview/hooks/useUPFTotalFlow.ts b/src/views/dashboard/overview/hooks/useUPFTotalFlow.ts new file mode 100644 index 00000000..cc9be382 --- /dev/null +++ b/src/views/dashboard/overview/hooks/useUPFTotalFlow.ts @@ -0,0 +1,38 @@ +import { parseSizeFromBytes } from '@/utils/parse-utils'; +import { reactive, ref } from 'vue'; + +type TFType = { + /**上行 N3 */ + up: string; + /**下行 N6 */ + down: string; +}; + +/**UPF-总流量数 */ +export const upfTotalFlow = ref([ + // 0天 当天24小时 + { + up: '0 B', + down: '0 B', + }, + { + up: '0 B', + down: '0 B', + }, + { + up: '0 B', + down: '0 B', + }, +]); + +/**UPF-总流量数 数据解析 */ +export function upfTFParse(data: Record) { + let { up, down } = data; + up = parseSizeFromBytes(up); + down = parseSizeFromBytes(down); + return { up, down }; +} + + +/**UPF-总流量数 选中 */ +export const upfTFActive = ref(0); \ No newline at end of file