From 9092d1d05153111fea56a432994cbf0f5f8975ed Mon Sep 17 00:00:00 2001 From: lai <371757574@qq.com> Date: Fri, 20 Oct 2023 19:21:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=BB=84=E9=87=91=E6=8C=87?= =?UTF-8?q?=E6=A0=87,=E6=80=A7=E8=83=BD=E4=BB=BB=E5=8A=A1=E7=AE=A1?= =?UTF-8?q?=E7=90=86,=E4=BF=AE=E6=AD=A3=E5=8E=86=E5=8F=B2=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/perfManage/goldTarget.ts | 69 ++ src/api/perfManage/perfData.ts | 2 +- src/api/perfManage/taskManage.ts | 111 ++- src/i18n/locales/en-US.ts | 11 + src/i18n/locales/zh-CN.ts | 11 + src/views/faultManage/active-alarm/index.vue | 43 +- src/views/faultManage/history-alarm/index.vue | 43 +- src/views/perfManage/goldTarget/index.vue | 393 +++-------- src/views/perfManage/taskManage/index.vue | 632 +++++++++++------- 9 files changed, 725 insertions(+), 590 deletions(-) create mode 100644 src/api/perfManage/goldTarget.ts diff --git a/src/api/perfManage/goldTarget.ts b/src/api/perfManage/goldTarget.ts new file mode 100644 index 00000000..24e563ba --- /dev/null +++ b/src/api/perfManage/goldTarget.ts @@ -0,0 +1,69 @@ +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 listgoldData(query: Record) { + let totalSQL = 'select count(*) as total from gold_kpi where 1=1 '; + let rowsSQL = 'select * from gold_kpi where 1=1 '; + + // 查询 + let querySQL = ''; + if (query.neType) { + querySQL += ` and ne_type like '%${query.neType}%' `; + } + if (query.beginTime) { + querySQL += ` and start_time >= '${query.beginTime}' `; + } + if (query.endTime) { + querySQL += ` and start_time <= '${query.endTime}' `; + } + + // 排序 + let sortSql = ' order by 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, + }, + }); + + // 解析数据 + if (result.code === RESULT_CODE_SUCCESS) { + const data: DataList = { + total: 0, + rows: [], + 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.total = itemData[0]['total']; + } else { + data.rows = itemData.map(v => parseObjLineToHump(v)); + } + } + }); + return data; + } + return result; +} diff --git a/src/api/perfManage/perfData.ts b/src/api/perfManage/perfData.ts index 8c87f618..1544404f 100644 --- a/src/api/perfManage/perfData.ts +++ b/src/api/perfManage/perfData.ts @@ -37,7 +37,7 @@ export async function listperfData(query: Record) { // 发起请求 const result = await request({ - url: `/databaseManagement/v1/select/omc_db/measure_data`, + url: `/api/rest/databaseManagement/v1/select/omc_db/measure_data`, method: 'get', params: { totalSQL: totalSQL + querySQL, diff --git a/src/api/perfManage/taskManage.ts b/src/api/perfManage/taskManage.ts index 6b2820ed..b775bda8 100644 --- a/src/api/perfManage/taskManage.ts +++ b/src/api/perfManage/taskManage.ts @@ -1,6 +1,7 @@ import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; import { request } from '@/plugins/http-fetch'; import { parseObjLineToHump } from '@/utils/parse-utils'; +import { parseDateToStr } from '@/utils/date-utils'; /** * 查询任务列表 @@ -23,7 +24,7 @@ export async function listPerfTask(query: Record) { // 发起请求 const result = await request({ - url: `/databaseManagement/v1/select/omc_db/measure_task`, + url: `/api/rest/databaseManagement/v1/select/omc_db/measure_task`, method: 'get', params: { totalSQL: totalSQL + querySQL, @@ -59,48 +60,99 @@ export async function listPerfTask(query: Record) { * @param id 网元ID * @returns object */ -export async function getTraceTask(id: string | number) { +export async function getPerfTask(id: string | number) { // 发起请求 const result = await request({ - url: `/databaseManagement/v1/select/omc_db/trace_task`, + url: `/api/rest/databaseManagement/v1/select/omc_db/measure_task`, method: 'get', params: { - SQL: `select * from trace_task where id = ${id}`, + SQL: `select * from measure_task where id = ${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['trace_task'][0]), + data: parseObjLineToHump(data['measure_task'][0]), }); } return result; } /** - * 新增任务 + * 新增性能测量任务 * @param data 网元对象 * @returns object */ -export function addTraceTask(data: Record) { +export function addPerfTask(data: Record) { + var time = new Date(); + var periods: any = []; + var scheduule: any = []; + //如果没选测量计划 则选择了测量时段也要置为空。因为二者是绑定关系 + if (data.smPlan.length && data.bigPlan.length) { + data.periods.forEach((item: any) => { + periods.push({ Start: item.split(',')[0], End: item.split(',')[1] }); + }); + scheduule.push({ Type: data.bigPlan, Days: data.smPlan }); + } + + let obj: any = { + ne_type: data.neType, + ne_ids: JSON.stringify([data.neId]), + kpi_set: data.kpiSet, + schedule: JSON.stringify(scheduule), + start_time: data.startTime, + end_time: data.endTime, + granul_option: data.granulOption, + status: 'Inactive', + account_id: data.accountId, + create_time: parseDateToStr(time), + periods: JSON.stringify(periods), + comment: data.comment, + }; + return request({ - url: `/traceManagement/v1/subscriptions`, + url: `/api/rest/databaseManagement/v1/omc_db/measure_task`, method: 'post', - data: data, + data: { measure_task: [obj] }, }); } /** - * 修改任务 + * 修改性能测量任务 * @param data 网元对象 * @returns object */ -export function updateTraceTask(data: Record) { +export function updatePerfTask(data: Record) { + var time = new Date(); + var periods: any = []; + var scheduule: any = []; + //如果没选测量计划 则选择了测量时段也要置为空。因为二者是绑定关系 + if (data.smPlan.length && data.bigPlan.length) { + data.periods.forEach((item: any) => { + periods.push({ Start: item.split(',')[0], End: item.split(',')[1] }); + }); + scheduule.push({ Type: data.bigPlan, Days: data.smPlan }); + } + + let obj: any = { + ne_type: data.neType, + ne_ids: JSON.stringify([data.neId]), + kpi_set: data.kpiSet, + schedule: JSON.stringify(scheduule), + start_time: data.startTime, + end_time: data.endTime, + granul_option: data.granulOption, + status: 'Inactive', + account_id: data.accountId, + create_time: parseDateToStr(time), + periods: JSON.stringify(periods), + comment: data.comment, + }; return request({ - url: `/traceManagement/v1/subscriptions`, + url: `/api/rest/databaseManagement/v1/omc_db/measure_task?WHERE=id=${data.id}`, method: 'put', - data: data, + data: { measure_task: obj }, }); } @@ -109,9 +161,11 @@ export function updateTraceTask(data: Record) { * @param noticeId 网元ID * @returns object */ -export async function delTraceTask(id: string) { +export async function delPerfTask(data: Record) { return request({ - url: `/traceManagement/v1/subscriptions?id=${id}`, + url: `/api/rest/performanceManagement/v1/elementType/${data.neType.toLowerCase()}/objectType/measureTask?id=${ + data.id + }`, method: 'delete', }); } @@ -123,7 +177,7 @@ export async function delTraceTask(id: string) { export async function getNePerformanceList() { // 发起请求 const result = await request({ - url: `/databaseManagement/v1/elementType/omc_db/objectType/measure_title`, + url: `/api/rest/databaseManagement/v1/elementType/omc_db/objectType/measure_title`, method: 'get', params: { SQL: `SELECT * FROM measure_title`, @@ -138,3 +192,28 @@ export async function getNePerformanceList() { } return result; } + + +/** + * 激活任务 + * @param + * @returns bolb + */ +export function taskRun(data: Record) { + return request({ + url: `/api/rest/performanceManagement/v1/elementType/${data.neType.toLowerCase()}/objectType/measureTask?ne_id=${JSON.parse(data.neIds)[0]}`, + method: 'post', + }); +} + +/** + * 挂起任务 + * @param + * @returns bolb + */ +export function taskStop(data: Record) { + return request({ + url: `/api/rest/performanceManagement/v1/elementType/${data.neType.toLowerCase()}/objectType/measureTask?ne_id=${JSON.parse(data.neIds)[0]}`, + method: 'PATCH', + }); +} \ No newline at end of file diff --git a/src/i18n/locales/en-US.ts b/src/i18n/locales/en-US.ts index 61a182d9..ddafb392 100644 --- a/src/i18n/locales/en-US.ts +++ b/src/i18n/locales/en-US.ts @@ -213,6 +213,17 @@ export default { addUser: 'Creator', addTime: 'Creation time', granulOption:'Particle', + performanceList:'Performance Set', + period:'Measurement period', + plan:'Measuring plan', + performanceSelect:'Please select a performance measurement dataset', + delPerfTip: 'Are you sure to delete the data item with record number {num}', + delPerf: 'Successfully deleted task {num}', + viewTask:'View Task', + editTask:'Edit Task', + addTask:'Add Task', + stopTask:'Stop Task', + errorTaskInfo: 'Failed to obtain task information', }, }, traceManage: { diff --git a/src/i18n/locales/zh-CN.ts b/src/i18n/locales/zh-CN.ts index ec0c5847..7b1a35c2 100644 --- a/src/i18n/locales/zh-CN.ts +++ b/src/i18n/locales/zh-CN.ts @@ -213,6 +213,17 @@ export default { addUser: '创建人', addTime: '创建时间', granulOption:'测量粒度', + performanceList:'性能测量数据集', + period:'测量时段', + plan:'测量计划', + performanceSelect:'请选择性能测量数据集', + delPerfTip:'确认删除记录编号为 {num} 的数据项?', + delPerf:'成功删除任务 {num}', + viewTask:'查看任务', + editTask:'修改任务', + addTask:'新增任务', + stopTask:'挂起', + errorTaskInfo: '获取任务信息失败', }, }, traceManage: { diff --git a/src/views/faultManage/active-alarm/index.vue b/src/views/faultManage/active-alarm/index.vue index 33ba8311..82a9fb64 100644 --- a/src/views/faultManage/active-alarm/index.vue +++ b/src/views/faultManage/active-alarm/index.vue @@ -477,6 +477,7 @@ function fnModalOk() { content: t('views.faultManage.activeAlarm.ackError'), duration: 3, }); + modalState.confirmLoading = false; modalState.visibleByView = false; return false; } @@ -660,25 +661,31 @@ function fnShowSet() { * 导出全部 */ function fnExportAll() { - const key = 'exportAlarm'; - message.loading({ content: '请稍等...', key }); - exportAll(queryParams).then(res => { - if (res.code === RESULT_CODE_SUCCESS) { - message.success({ - content: `已完成导出`, - key, - duration: 3, + Modal.confirm({ + title: 'Tip', + content: `确认是否导出全部活动告警信息?`, + onOk() { + const key = 'exportAlarm'; + message.loading({ content: '请稍等...', key }); + exportAll(queryParams).then(res => { + if (res.code === RESULT_CODE_SUCCESS) { + message.success({ + content: `已完成导出`, + key, + duration: 3, + }); + writeSheet(res.data, 'alarm').then(fileBlob => + saveAs(fileBlob, `alarm_${Date.now()}.xlsx`) + ); + } else { + message.error({ + content: `${res.msg}`, + key, + duration: 3, + }); + } }); - writeSheet(res.data, 'alarm').then(fileBlob => - saveAs(fileBlob, `alarm_${Date.now()}.xlsx`) - ); - } else { - message.error({ - content: `${res.msg}`, - key, - duration: 3, - }); - } + }, }); } /** diff --git a/src/views/faultManage/history-alarm/index.vue b/src/views/faultManage/history-alarm/index.vue index 889d67d9..e5754e67 100644 --- a/src/views/faultManage/history-alarm/index.vue +++ b/src/views/faultManage/history-alarm/index.vue @@ -386,6 +386,7 @@ function fnModalOk() { content: t('views.faultManage.activeAlarm.ackError'), duration: 3, }); + modalState.confirmLoading = false; modalState.visibleByView = false; return false; } @@ -465,25 +466,31 @@ function fnCancelConfirm() { * 导出全部 */ function fnExportAll() { - const key = 'exportAlarmHis'; - message.loading({ content: '请稍等...', key }); - exportAll(queryParams).then(res => { - if (res.code === RESULT_CODE_SUCCESS) { - message.success({ - content: `已完成导出`, - key, - duration: 3, + Modal.confirm({ + title: 'Tip', + content: `确认是否导出全部历史告警信息?`, + onOk() { + const key = 'exportAlarmHis'; + message.loading({ content: '请稍等...', key }); + exportAll(queryParams).then(res => { + if (res.code === RESULT_CODE_SUCCESS) { + message.success({ + content: `已完成导出`, + key, + duration: 3, + }); + writeSheet(res.data, 'alarm').then(fileBlob => + saveAs(fileBlob, `history-alarm_${Date.now()}.xlsx`) + ); + } else { + message.error({ + content: `${res.msg}`, + key, + duration: 3, + }); + } }); - writeSheet(res.data, 'alarm').then(fileBlob => - saveAs(fileBlob, `history-alarm_${Date.now()}.xlsx`) - ); - } else { - message.error({ - content: `${res.msg}`, - key, - duration: 3, - }); - } + }, }); } diff --git a/src/views/perfManage/goldTarget/index.vue b/src/views/perfManage/goldTarget/index.vue index bd222d5b..856dad79 100644 --- a/src/views/perfManage/goldTarget/index.vue +++ b/src/views/perfManage/goldTarget/index.vue @@ -1,5 +1,6 @@