Merge remote-tracking branch 'origin/main-v2' into main-v2
This commit is contained in:
@@ -92,8 +92,8 @@ let tableColumns: ColumnsType = [
|
||||
},
|
||||
{
|
||||
title: t('views.perfManage.customTarget.expression'),
|
||||
dataIndex: 'exprAlias',
|
||||
align: 'center',
|
||||
dataIndex: 'expression',
|
||||
align: 'left',
|
||||
},
|
||||
{
|
||||
title: t('views.perfManage.customTarget.description'),
|
||||
@@ -354,7 +354,6 @@ function fnModalVisibleByEdit(row?: any, id?: any) {
|
||||
} else {
|
||||
fnSelectPerformanceInit(row.neType);
|
||||
modalState.from = Object.assign(modalState.from, row);
|
||||
modalState.from.expression = modalState.from.exprAlias;
|
||||
modalState.title = t('views.perfManage.customTarget.editCustom');
|
||||
modalState.openByEdit = true;
|
||||
}
|
||||
|
||||
@@ -166,13 +166,14 @@ let queryParams: any = reactive({
|
||||
/**网元标识 */
|
||||
neId: '',
|
||||
/**开始时间 */
|
||||
startTime: '',
|
||||
beginTime: '',
|
||||
/**结束时间 */
|
||||
endTime: '',
|
||||
/**排序字段 */
|
||||
sortField: 'created_at',
|
||||
sortField: 'timeGroup',
|
||||
/**排序方式 */
|
||||
sortOrder: 'desc',
|
||||
interval: 60,
|
||||
});
|
||||
|
||||
/**表格分页、排序、筛选变化时触发操作, 排序方式,取值为 ascend descend */
|
||||
@@ -306,7 +307,21 @@ function fnRecordExport() {
|
||||
for (const key of keys) {
|
||||
if (tableColumnsKeyArr[i] === key) {
|
||||
const title = tableColumnsTitleArr[i];
|
||||
kpiData[title] = item[key];
|
||||
if (key == 'timeGroup') {
|
||||
kpiData[title] = parseDateToStr(item[key]);
|
||||
} else if (key === 'neName' || key === 'startIndex') {
|
||||
kpiData[title] = item[key];
|
||||
} else {
|
||||
const v = parseFloat(item[key]);
|
||||
let kpiV = v.toFixed(3); // 有小数部分,保留 3 位小数
|
||||
// 判断数字是否有小数部分
|
||||
if (Math.abs(v) < 0.001) {
|
||||
kpiV = '0'; // 如果数字非常小,返回 0
|
||||
} else if (v % 1 === 0) {
|
||||
kpiV = v.toFixed(0); // 没有小数部分,保留 0 位小数
|
||||
}
|
||||
kpiData[title] = kpiV;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -335,7 +350,7 @@ function fnGetListTitle() {
|
||||
if (!state.neType[0]) return false;
|
||||
|
||||
// 获取表头文字
|
||||
listCustom({ neType: state.neType[0], status: '1' })
|
||||
listCustom({ neType: state.neType[0], status: '1', pageNum: 1, pageSize: 50 })
|
||||
.then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
if (res.data.rows.length === 0) {
|
||||
@@ -367,6 +382,16 @@ function fnGetListTitle() {
|
||||
width: 100,
|
||||
minWidth: 150,
|
||||
maxWidth: 300,
|
||||
customRender: (opt: any) => {
|
||||
const num = parseFloat(opt.text);
|
||||
// 判断数字是否有小数部分
|
||||
if (Math.abs(num) < 0.001) {
|
||||
return '0'; // 如果数字非常小,返回 0
|
||||
} else if (num % 1 === 0) {
|
||||
return num.toFixed(0); // 没有小数部分,保留 0 位小数
|
||||
}
|
||||
return num.toFixed(3); // 有小数部分,保留 3 位小数
|
||||
},
|
||||
});
|
||||
}
|
||||
columns.push({
|
||||
@@ -384,6 +409,9 @@ function fnGetListTitle() {
|
||||
key: 'timeGroup',
|
||||
sorter: true,
|
||||
width: 100,
|
||||
customRender: (opt: any) => {
|
||||
return parseDateToStr(opt.text);
|
||||
},
|
||||
});
|
||||
|
||||
nextTick(() => {
|
||||
@@ -409,7 +437,7 @@ function fnGetList() {
|
||||
tableState.loading = true;
|
||||
queryParams.neType = state.neType[0];
|
||||
queryParams.neId = state.neType[1];
|
||||
queryParams.startTime = queryRangePicker.value[0];
|
||||
queryParams.beginTime = queryRangePicker.value[0];
|
||||
queryParams.endTime = queryRangePicker.value[1];
|
||||
listCustomData(toRaw(queryParams))
|
||||
.then(res => {
|
||||
@@ -452,20 +480,53 @@ function fnGetList() {
|
||||
});
|
||||
|
||||
// 计算总值
|
||||
const total = Number(
|
||||
values.reduce((sum, val) => sum + val, 0).toFixed(2)
|
||||
);
|
||||
const totalV = values.reduce((sum, val) => sum + val, 0);
|
||||
let total = totalV.toFixed(3);
|
||||
// 判断数字是否有小数部分
|
||||
if (Math.abs(totalV) < 0.001) {
|
||||
total = '0'; // 如果数字非常小,返回 0
|
||||
} else if (totalV % 1 === 0) {
|
||||
total = totalV.toFixed(0); // 没有小数部分,保留 0 位小数
|
||||
}
|
||||
|
||||
// 计算平均值
|
||||
const avg =
|
||||
values.length > 0 ? Number((total / values.length).toFixed(2)) : 0;
|
||||
const avgV = values.length > 0 ? totalV / values.length : 0;
|
||||
let avg = avgV.toFixed(3);
|
||||
// 判断数字是否有小数部分
|
||||
if (Math.abs(avgV) < 0.001) {
|
||||
avg = '0'; // 如果数字非常小,返回 0
|
||||
} else if (avgV % 1 === 0) {
|
||||
avg = avgV.toFixed(0); // 没有小数部分,保留 0 位小数
|
||||
}
|
||||
|
||||
// 计算最大值
|
||||
const maxV = values.length > 0 ? Math.max(...values) : 0;
|
||||
let max = maxV.toFixed(3);
|
||||
// 判断数字是否有小数部分
|
||||
if (Math.abs(maxV) < 0.001) {
|
||||
max = '0'; // 如果数字非常小,返回 0
|
||||
} else if (maxV % 1 === 0) {
|
||||
max = maxV.toFixed(0); // 没有小数部分,保留 0 位小数
|
||||
}
|
||||
|
||||
// 计算最小值
|
||||
const minV = values.length > 0 ? Math.min(...values) : 0;
|
||||
let min = minV.toFixed(3);
|
||||
// 判断数字是否有小数部分
|
||||
if (Math.abs(minV) < 0.001) {
|
||||
min = '0'; // 如果数字非常小,返回 0
|
||||
} else if (minV % 1 === 0) {
|
||||
min = minV.toFixed(0); // 没有小数部分,保留 0 位小数
|
||||
}
|
||||
|
||||
kpiStats.value.push({
|
||||
kpiId: columns.key,
|
||||
title: columns.title,
|
||||
unit: columns.unit,
|
||||
max: values.length > 0 ? Math.max(...values) : 0,
|
||||
min: values.length > 0 ? Math.min(...values) : 0,
|
||||
max,
|
||||
min,
|
||||
avg,
|
||||
total: total,
|
||||
total,
|
||||
});
|
||||
}
|
||||
} else {
|
||||
@@ -638,8 +699,17 @@ function fnRanderChartData() {
|
||||
for (const y of chartDataYSeriesData) {
|
||||
for (const key of keys) {
|
||||
if (y.key === key) {
|
||||
y.data.push(+item[key]);
|
||||
chartDataXAxisData.push(item['timeGroup']);
|
||||
// 计算最小值
|
||||
const v = parseFloat(item[key]);
|
||||
let kpiV = v.toFixed(3);
|
||||
// 判断数字是否有小数部分
|
||||
if (Math.abs(v) < 0.001) {
|
||||
kpiV = '0'; // 如果数字非常小,返回 0
|
||||
} else if (v % 1 === 0) {
|
||||
kpiV = v.toFixed(0); // 没有小数部分,保留 0 位小数
|
||||
}
|
||||
y.data.push(kpiV);
|
||||
chartDataXAxisData.push(parseDateToStr(item['timeGroup']));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -749,7 +819,7 @@ function wsMessage(res: Record<string, any>) {
|
||||
// x轴
|
||||
if (key === 'timeGroup') {
|
||||
// chartDataXAxisData.shift();
|
||||
chartDataXAxisData.push(v);
|
||||
chartDataXAxisData.push(parseDateToStr(v));
|
||||
continue;
|
||||
}
|
||||
// y轴
|
||||
@@ -879,7 +949,7 @@ watch(
|
||||
onMounted(() => {
|
||||
// 目前支持的 AMF AUSF MME MOCNGW NSSF SMF UDM UPF PCF
|
||||
// 获取网元网元列表
|
||||
listCustom({ status: '1' }).then((res: any) => {
|
||||
listCustom({ status: '1', pageNum: 1, pageSize: 200 }).then((res: any) => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
if (!res.data.rows.length) {
|
||||
message.warning({
|
||||
@@ -925,9 +995,9 @@ onMounted(() => {
|
||||
const now = new Date();
|
||||
now.setMinutes(0, 0, 0);
|
||||
// 设置起始时间为整点前一小时
|
||||
const startTime = new Date(now);
|
||||
startTime.setHours(now.getHours() - 1);
|
||||
queryRangePicker.value[0] = `${startTime.getTime()}`;
|
||||
const beginTime = new Date(now);
|
||||
beginTime.setHours(now.getHours() - 1);
|
||||
queryRangePicker.value[0] = `${beginTime.getTime()}`;
|
||||
// 设置结束时间为整点
|
||||
const endTime = new Date(now);
|
||||
endTime.setMinutes(59, 59, 59);
|
||||
|
||||
Reference in New Issue
Block a user