Merge branch 'lichang' into lite
This commit is contained in:
@@ -1,23 +1,15 @@
|
|||||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
|
||||||
import { request } from '@/plugins/http-fetch';
|
import { request } from '@/plugins/http-fetch';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取服务器时间
|
* 服务器时间
|
||||||
* @returns object
|
* @returns object
|
||||||
*/
|
*/
|
||||||
export async function getServerTime() {
|
export async function getServerTime() {
|
||||||
// 发起请求
|
return request({
|
||||||
const result = await request({
|
url: `/time`,
|
||||||
url: `/api/rest/systemManagement/v1/elementType/OMC/objectType/time`,
|
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
|
whithToken: false,
|
||||||
});
|
});
|
||||||
// 解析数据
|
|
||||||
if (result.code === RESULT_CODE_SUCCESS && result.data) {
|
|
||||||
return Object.assign(result, {
|
|
||||||
data: result.data.data,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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<string, any>) {
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
@@ -2,80 +2,6 @@ import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
|||||||
import { request } from '@/plugins/http-fetch';
|
import { request } from '@/plugins/http-fetch';
|
||||||
import { parseObjLineToHump } from '@/utils/parse-utils';
|
import { parseObjLineToHump } from '@/utils/parse-utils';
|
||||||
|
|
||||||
/**
|
|
||||||
* Todo 废弃
|
|
||||||
* 查询黄金指标数据
|
|
||||||
* @param query 查询参数
|
|
||||||
* @returns object
|
|
||||||
*/
|
|
||||||
export async function listgoldData(query: Record<string, any>) {
|
|
||||||
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 查询参数
|
* @param query 查询参数
|
||||||
@@ -107,80 +33,3 @@ export async function getKPITitle(neType: string) {
|
|||||||
// 解析数据//
|
// 解析数据//
|
||||||
return result;
|
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 };
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -194,28 +194,25 @@ onMounted(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// ==== 服务器时间显示 start
|
// ==== 服务器时间显示 start
|
||||||
let serverTime = reactive({
|
let serverTimeInterval: any = null;
|
||||||
timestamp: 0,
|
let serverTime = 0;
|
||||||
zone: 'UTC', // 时区 UTC
|
|
||||||
interval: null as any, // 定时器
|
|
||||||
});
|
|
||||||
|
|
||||||
// 获取服务器时间
|
// 获取服务器时间
|
||||||
function fnGetServerTime() {
|
function fnGetServerTime() {
|
||||||
getServerTime().then(res => {
|
getServerTime().then(res => {
|
||||||
if (res.code === RESULT_CODE_SUCCESS && res.data) {
|
if (res.code === RESULT_CODE_SUCCESS && res.data) {
|
||||||
|
clearInterval(serverTimeInterval);
|
||||||
|
serverTimeInterval = null;
|
||||||
|
serverTime = res.data.timestamp;
|
||||||
|
// 用DOM直接修改
|
||||||
const serverTimeDom = document.getElementById('serverTimeDom');
|
const serverTimeDom = document.getElementById('serverTimeDom');
|
||||||
// 时区
|
serverTimeInterval = setInterval(() => {
|
||||||
const utcOffset = res.data.timeZone / 3600;
|
serverTime += 1000;
|
||||||
serverTime.zone = `UTC ${utcOffset}`;
|
|
||||||
// 时间戳
|
|
||||||
serverTime.timestamp = parseInt(res.data.timestamp);
|
|
||||||
serverTime.interval = setInterval(() => {
|
|
||||||
serverTime.timestamp += 1000;
|
|
||||||
// serverTimeStr.value = parseDateToStr(serverTime.timestamp);
|
|
||||||
// 用DOM直接修改
|
|
||||||
if (serverTimeDom) {
|
if (serverTimeDom) {
|
||||||
serverTimeDom.innerText = parseDateToStr(serverTime.timestamp);
|
serverTimeDom.innerText = parseDateToStr(serverTime);
|
||||||
|
} else {
|
||||||
|
clearInterval(serverTimeInterval);
|
||||||
|
serverTimeInterval = null;
|
||||||
}
|
}
|
||||||
}, 1000);
|
}, 1000);
|
||||||
}
|
}
|
||||||
@@ -226,21 +223,21 @@ function fnGetServerTime() {
|
|||||||
document.addEventListener('visibilitychange', function () {
|
document.addEventListener('visibilitychange', function () {
|
||||||
if (document.visibilityState == 'hidden') {
|
if (document.visibilityState == 'hidden') {
|
||||||
//切离该页面时执行
|
//切离该页面时执行
|
||||||
clearInterval(serverTime.interval);
|
clearInterval(serverTimeInterval);
|
||||||
serverTime.interval = null;
|
serverTimeInterval = null;
|
||||||
}
|
}
|
||||||
if (document.visibilityState == 'visible') {
|
if (document.visibilityState == 'visible') {
|
||||||
//切换到该页面时执行
|
//切换到该页面时执行
|
||||||
clearInterval(serverTime.interval);
|
clearInterval(serverTimeInterval);
|
||||||
serverTime.interval = null;
|
serverTimeInterval = null;
|
||||||
fnGetServerTime();
|
fnGetServerTime();
|
||||||
useAlarmStore().fnGetActiveAlarmInfo();
|
useAlarmStore().fnGetActiveAlarmInfo();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
clearInterval(serverTime.interval);
|
clearInterval(serverTimeInterval);
|
||||||
serverTime.interval = null;
|
serverTimeInterval = null;
|
||||||
});
|
});
|
||||||
// ==== 服务器时间显示 end
|
// ==== 服务器时间显示 end
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ import {
|
|||||||
CACHE_LOCAL_I18N,
|
CACHE_LOCAL_I18N,
|
||||||
CACHE_SESSION_CRYPTO_API,
|
CACHE_SESSION_CRYPTO_API,
|
||||||
} from '@/constants/cache-keys-constants';
|
} 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 { parseUrlPath } from '@/plugins/file-static-url';
|
||||||
import { localGet, localSet } from '@/utils/cache-local-utils';
|
import { localGet, localSet } from '@/utils/cache-local-utils';
|
||||||
import { sessionSet } from '@/utils/cache-session-utils';
|
import { sessionSet } from '@/utils/cache-session-utils';
|
||||||
@@ -131,6 +132,12 @@ const useAppStore = defineStore('app', {
|
|||||||
localSet(CACHE_LOCAL_I18N, this.i18nDefault);
|
localSet(CACHE_LOCAL_I18N, this.i18nDefault);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 网络错误时退出登录状态
|
||||||
|
if (res.code === RESULT_CODE_EXCEPTION) {
|
||||||
|
delAccessToken();
|
||||||
|
delRefreshToken();
|
||||||
|
window.location.reload();
|
||||||
|
}
|
||||||
return res;
|
return res;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import { message } from 'ant-design-vue/es';
|
|||||||
import { SizeType } from 'ant-design-vue/es/config-provider';
|
import { SizeType } from 'ant-design-vue/es/config-provider';
|
||||||
import { MenuInfo } from 'ant-design-vue/es/menu/src/interface';
|
import { MenuInfo } from 'ant-design-vue/es/menu/src/interface';
|
||||||
import { ColumnsType } from 'ant-design-vue/es/table';
|
import { ColumnsType } from 'ant-design-vue/es/table';
|
||||||
import { listUEInfoByIMS } from '@/api/neUser/ims';
|
|
||||||
import useNeInfoStore from '@/store/modules/neinfo';
|
import useNeInfoStore from '@/store/modules/neinfo';
|
||||||
import useI18n from '@/hooks/useI18n';
|
import useI18n from '@/hooks/useI18n';
|
||||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||||
|
|||||||
Reference in New Issue
Block a user