diff --git a/src/api/index.ts b/src/api/index.ts index f7d04d31..f2ffc180 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -1,23 +1,15 @@ -import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; import { request } from '@/plugins/http-fetch'; /** - * 获取服务器时间 + * 服务器时间 * @returns object */ export async function getServerTime() { - // 发起请求 - const result = await request({ - url: `/api/rest/systemManagement/v1/elementType/OMC/objectType/time`, + return request({ + url: `/time`, method: 'GET', + whithToken: false, }); - // 解析数据 - if (result.code === RESULT_CODE_SUCCESS && result.data) { - return Object.assign(result, { - data: result.data.data, - }); - } - return result; } /** diff --git a/src/api/neUser/ims.ts b/src/api/neUser/ims.ts deleted file mode 100644 index 4f380381..00000000 --- a/src/api/neUser/ims.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; -import { request } from '@/plugins/http-fetch'; -import { parseObjLineToHump } from '@/utils/parse-utils'; - -/** - * 查询列表 - * @param query 查询参数 - * @returns object - */ -export async function listUEInfoByIMS(query: Record) { - query.nbId = query.id; - const result = await request({ - url: '/api/rest/ueManagement/v1/elementType/ims/objectType/ueInfo', - method: 'GET', - params: query, - }); - const data = { - data: { total: 0, rows: [] as any }, - code: result.code, - msg: result.msg, - }; - // 解析数据 - if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) { - const rows = parseObjLineToHump(result.data.data); - data.data.total = rows.length; - data.data.rows = rows; - } - - // 测试数据 - // data.rows = [ - // { - // activeTime: '2023-11-29 17:04:54', - // barring: 0, - // impu: 'sip:12307551232@ims.mnc000.mcc460.3gppnetwork.org', - // imsi: '460001230000002', - // msisdn: '12307551232', - // regState: 1, - // }, - // ]; - return data; -} - -/** - * 首页查询IMS在线用户数 - * @param query 查询参数 - * @returns neId - */ -export async function listUENumByIMS(neId: String) { - const result = await request({ - url: `/api/rest/ueManagement/v1/elementType/ims/objectType/ueNum?neId=${neId}`, - method: 'GET', - }); - if (result.code === RESULT_CODE_SUCCESS) { - let num = result.data['ueNum'] || 0; - if (num === 0) { - num = result.data.data['ueNum'] || 0; - } - return Object.assign(result, { data: num }); - } - - // 模拟数据 - // { "ueNum": 0 } - // result.data = 0 - return result; -} diff --git a/src/api/perfManage/goldTarget.ts b/src/api/perfManage/goldTarget.ts index e43d80f1..88a38b0e 100644 --- a/src/api/perfManage/goldTarget.ts +++ b/src/api/perfManage/goldTarget.ts @@ -2,80 +2,6 @@ import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; import { request } from '@/plugins/http-fetch'; import { parseObjLineToHump } from '@/utils/parse-utils'; -/** - * Todo 废弃 - * 查询黄金指标数据 - * @param query 查询参数 - * @returns object - */ -export async function listgoldData(query: Record) { - let totalSQL = 'select count(*) as total from gold_kpi where 1=1 '; - let rowsSQL = - '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 '; - - // 查询 - let querySQL = ''; - if (query.neType) { - querySQL += ` and gold_kpi.ne_type like '%${query.neType}%' `; - } - if (query.beginTime) { - querySQL += ` and start_time >= '${query.beginTime}' `; - } - if (query.endTime) { - querySQL += ` and end_time <= '${query.endTime}' `; - } - - // 排序 - let sortSql = ' order by '; - if (query.sortField) { - sortSql += ` ${query.sortField} `; - } else { - sortSql += ` start_time `; - } - - if (query.sortOrder === 'asc') { - sortSql += ' asc '; - } else { - sortSql += ' desc '; - } - - // 分页 - const pageNum = (query.pageNum - 1) * query.pageSize; - const limtSql = ` limit ${pageNum},${query.pageSize} `; - - // 发起请求 - const result = await request({ - url: `/api/rest/databaseManagement/v1/select/omc_db/gold_kpi`, - method: 'GET', - params: { - totalSQL: totalSQL + querySQL, - rowsSQL: rowsSQL + querySQL + sortSql + limtSql, - }, - timeout: 60_000, - }); - - // 解析数据 - if (result.code === RESULT_CODE_SUCCESS) { - const data = { - data: { total: 0, rows: [] as any }, - code: result.code, - msg: result.msg, - }; - result.data.data.forEach((item: any) => { - const itemData = item['gold_kpi']; - if (Array.isArray(itemData)) { - if (itemData.length === 1 && itemData[0]['total'] >= 0) { - data.data.total = itemData[0]['total']; - } else { - data.data.rows = itemData.map(v => parseObjLineToHump(v)); - } - } - }); - return data; - } - return result; -} - /** * 查询黄金指标数据 * @param query 查询参数 @@ -107,80 +33,3 @@ export async function getKPITitle(neType: string) { // 解析数据// return result; } - -/** - * Todo 废弃 - * 查询UPF上下行速率数据 - * @param query 查询参数 - * @returns object - */ -export async function listUPFData(timeArr: any) { - const initTime: Date = new Date(); - const twentyFourHoursAgo: Date = new Date( - initTime.getTime() - 10 * 60 * 1000 - ); - - return await Promise.allSettled([ - // 获取参数规则 - request({ - 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 DATE_SUB(NOW(), INTERVAL 10 MINUTE) AND NOW()`, - }, - timeout: 60_000, - }), - // 获取对应信息 - request({ - 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 DATE_SUB(NOW(), INTERVAL 10 MINUTE) AND NOW()`, - }, - timeout: 60_000, - }), - ]).then(resArr => { - let upData: any = []; - let downData: any = []; - - // 规则数据 - if (resArr[0].status === 'fulfilled') { - const itemV: any = resArr[0].value; - // 解析数据 - if ( - itemV.code === RESULT_CODE_SUCCESS && - Array.isArray(itemV.data?.data) - ) { - let itemData = itemV.data.data; - let data = itemData[0]['gold_kpi']; - if (Array.isArray(data)) { - try { - upData = data.map(v => parseObjLineToHump(v)); - } catch (error) { - console.error(error); - } - } - } - } - - if (resArr[1].status === 'fulfilled') { - const itemV = resArr[1].value; - // 解析数据 - if ( - itemV.code === RESULT_CODE_SUCCESS && - Array.isArray(itemV.data?.data) - ) { - let itemData = itemV.data.data; - const data = itemData[0]['gold_kpi']; - if (Array.isArray(data)) { - try { - downData = data.map(v => parseObjLineToHump(v)); - } catch (error) { - console.error(error); - } - } - } - } - return { upData, downData }; - }); -} diff --git a/src/layouts/BasicLayout.vue b/src/layouts/BasicLayout.vue index f9bd2e0d..6467211c 100644 --- a/src/layouts/BasicLayout.vue +++ b/src/layouts/BasicLayout.vue @@ -194,28 +194,25 @@ onMounted(() => { }); // ==== 服务器时间显示 start -let serverTime = reactive({ - timestamp: 0, - zone: 'UTC', // 时区 UTC - interval: null as any, // 定时器 -}); +let serverTimeInterval: any = null; +let serverTime = 0; // 获取服务器时间 function fnGetServerTime() { getServerTime().then(res => { if (res.code === RESULT_CODE_SUCCESS && res.data) { + clearInterval(serverTimeInterval); + serverTimeInterval = null; + serverTime = res.data.timestamp; + // 用DOM直接修改 const serverTimeDom = document.getElementById('serverTimeDom'); - // 时区 - const utcOffset = res.data.timeZone / 3600; - serverTime.zone = `UTC ${utcOffset}`; - // 时间戳 - serverTime.timestamp = parseInt(res.data.timestamp); - serverTime.interval = setInterval(() => { - serverTime.timestamp += 1000; - // serverTimeStr.value = parseDateToStr(serverTime.timestamp); - // 用DOM直接修改 + serverTimeInterval = setInterval(() => { + serverTime += 1000; if (serverTimeDom) { - serverTimeDom.innerText = parseDateToStr(serverTime.timestamp); + serverTimeDom.innerText = parseDateToStr(serverTime); + } else { + clearInterval(serverTimeInterval); + serverTimeInterval = null; } }, 1000); } @@ -226,21 +223,21 @@ function fnGetServerTime() { document.addEventListener('visibilitychange', function () { if (document.visibilityState == 'hidden') { //切离该页面时执行 - clearInterval(serverTime.interval); - serverTime.interval = null; + clearInterval(serverTimeInterval); + serverTimeInterval = null; } if (document.visibilityState == 'visible') { //切换到该页面时执行 - clearInterval(serverTime.interval); - serverTime.interval = null; + clearInterval(serverTimeInterval); + serverTimeInterval = null; fnGetServerTime(); useAlarmStore().fnGetActiveAlarmInfo(); } }); onUnmounted(() => { - clearInterval(serverTime.interval); - serverTime.interval = null; + clearInterval(serverTimeInterval); + serverTimeInterval = null; }); // ==== 服务器时间显示 end diff --git a/src/store/modules/app.ts b/src/store/modules/app.ts index 5c60b8ae..747f5e50 100644 --- a/src/store/modules/app.ts +++ b/src/store/modules/app.ts @@ -3,7 +3,8 @@ import { CACHE_LOCAL_I18N, CACHE_SESSION_CRYPTO_API, } from '@/constants/cache-keys-constants'; -import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; +import { RESULT_CODE_EXCEPTION, RESULT_CODE_SUCCESS } from '@/constants/result-constants'; +import { delAccessToken, delRefreshToken } from '@/plugins/auth-token'; import { parseUrlPath } from '@/plugins/file-static-url'; import { localGet, localSet } from '@/utils/cache-local-utils'; import { sessionSet } from '@/utils/cache-session-utils'; @@ -131,6 +132,12 @@ const useAppStore = defineStore('app', { localSet(CACHE_LOCAL_I18N, this.i18nDefault); } } + // 网络错误时退出登录状态 + if (res.code === RESULT_CODE_EXCEPTION) { + delAccessToken(); + delRefreshToken(); + window.location.reload(); + } return res; }, }, diff --git a/src/views/neData/ims-sub/index.vue b/src/views/neData/ims-sub/index.vue index 1777a2a7..535e3353 100644 --- a/src/views/neData/ims-sub/index.vue +++ b/src/views/neData/ims-sub/index.vue @@ -5,7 +5,6 @@ import { message } from 'ant-design-vue/es'; import { SizeType } from 'ant-design-vue/es/config-provider'; import { MenuInfo } from 'ant-design-vue/es/menu/src/interface'; import { ColumnsType } from 'ant-design-vue/es/table'; -import { listUEInfoByIMS } from '@/api/neUser/ims'; import useNeInfoStore from '@/store/modules/neinfo'; import useI18n from '@/hooks/useI18n'; import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';