diff --git a/src/api/faultManage/actAlarm.ts b/src/api/faultManage/actAlarm.ts index 7e4cd61e..f27636be 100644 --- a/src/api/faultManage/actAlarm.ts +++ b/src/api/faultManage/actAlarm.ts @@ -11,7 +11,7 @@ import { ConsoleSqlOutlined } from '@ant-design/icons-vue'; * @param query 查询参数 * @returns object */ -export async function listAct(query: Record,filterSQl:string) { +export async function listAct(query: Record, filterSQl: string) { let totalSQL = `select count(*) as total from alarm where alarm_status='1' ${filterSQl} `; let rowsSQL = `select * from alarm where alarm_status='1' ${filterSQl}`; // 查询 @@ -202,3 +202,48 @@ export function listSync() { method: 'get', }); } + +/** + * 活动告警导出 + * @param query 查询参数 + * @returns bolb + */ +export async function exportAll(query: Record) { + let rowsSQL = `select * from alarm where alarm_status='1'`; + // 查询 + let querySQL = ''; + querySQL += query.alarm_code + ? ` and alarm_code = '${query.alarm_code}' ` + : ''; + querySQL += query.alarm_type + ? ` and alarm_type = '${query.alarm_type}' ` + : ''; + querySQL += query.pv_flag ? ` and pv_flag = '${query.pv_flag}' ` : ''; + querySQL += query.orig_severity + ? ` and orig_severity in('${query.orig_severity}' )` + : ''; + querySQL += query.ne_id ? ` and ne_id like '%${query.ne_id}%' ` : ''; + querySQL += query.ne_name ? ` and ne_name like '%${query.ne_name}%' ` : ''; + querySQL += query.ne_type ? ` and ne_type like '%${query.ne_type}%' ` : ''; + querySQL += + query.beginTime && query.endTime + ? ` and event_time BETWEEN '${query.beginTime}' and ' ${query.endTime}'` + : ''; + + // 发起请求 + const result = await request({ + url: `/databaseManagement/v1/select/omc_db/alarm`, + method: 'get', + params: { + rowsSQL: rowsSQL + querySQL, + }, + }); + + + if (result.code === RESULT_CODE_SUCCESS) { + let v = result.data.data[0]; + const vArr = parseObjLineToHump(v['alarm']); + result.data = vArr == null ? [] : vArr; + } + return result; +} diff --git a/src/api/faultManage/faultSetting.ts b/src/api/faultManage/faultSetting.ts new file mode 100644 index 00000000..4cf983ee --- /dev/null +++ b/src/api/faultManage/faultSetting.ts @@ -0,0 +1,197 @@ +import { + RESULT_CODE_ERROR, + RESULT_CODE_SUCCESS, + RESULT_MSG_ERROR, + RESULT_MSG_SUCCESS, +} from '@/constants/result-constants'; +import { request } from '@/plugins/http-fetch'; +import { parseObjLineToHump } from '@/utils/parse-utils'; +import { toRaw } from 'vue'; + +/** + * ѯ澯 + * @param tag ID + * @returns object + */ +export async function getAlarmSet() { + let arr = []; + + // ʷ澯ʱ + const logDurationResult = await request({ + url: `/databaseManagement/v1/omc_db/config`, + method: 'get', + params: { + SQL: `SELECT * FROM config WHERE config_tag = 'historyDuration'`, + }, + }); + arr.push(logDurationResult); + // ͬ + const logCapacityResult = await request({ + url: `/databaseManagement/v1/omc_db/config`, + method: 'get', + params: { + SQL: `SELECT * FROM config WHERE config_tag = 'syncTaskPeriod'`, + }, + }); + arr.push(logCapacityResult); + + // + const result = await Promise.allSettled(arr).then(resArr => { + let resultData: any = {}; + for (const item of resArr) { + if (item.status === 'rejected') { + continue; + } + const itemV = item.value; + // + if ( itemV.code === RESULT_CODE_SUCCESS &&Array.isArray(itemV.data.data)) + { + let itemData = itemV.data.data[0]; + const v = parseObjLineToHump(itemData['config'][0]); + let vJSON:any ={}; + if(v.configTag=='syncTaskPeriod'){ + try{ + vJSON=JSON.parse(v.valueJson); + } + catch(error){ + console.error(error); + } + resultData={...resultData,...vJSON}; + }else{ + resultData[v.configTag] = parseInt(v.value); + } + } + } + if (Object.keys(resultData).length === 0) { + return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR, data: {} }; + } + return { + code: RESULT_CODE_SUCCESS, + msg: RESULT_MSG_SUCCESS, + data: resultData, + }; + }); + return result; +} + +/** + * ޸ĸ澯 + * @param data ö + * @returns object + */ +export async function updateAlarmSet(data: Record) { + let { historyDuration, ...syncTaskPeriodJson } = data; + + let historyDurationJson = { historyDuration }; + + let arr = []; + + // ʷ澯ʱ + const historyDurationResult = await request({ + url: `/databaseManagement/v1/omc_db/config?WHERE=config_tag='historyDuration'`, + method: 'put', + data: { data: { value: data.historyDuration.toString() } }, + }); + arr.push(historyDurationResult); + // ͬ + const syncTaskPeriodResult = await request({ + url: `/databaseManagement/v1/omc_db/config?WHERE=config_tag='syncTaskPeriod'`, + method: 'put', + data: { data: { value_json: JSON.stringify(syncTaskPeriodJson) } }, + }); + arr.push(syncTaskPeriodResult); + + // + const result = await Promise.allSettled(arr).then(resArr => { + let resultNum = 0; + for (const item of resArr) { + if (item.status === 'rejected') { + continue; + } + const itemV = item.value; + // + let itemData = itemV.data.data; + if (itemV.code === RESULT_CODE_SUCCESS && itemData) { + let rows = itemData.affectedRows; + if (rows) { + resultNum += rows; + } + } + } + // ޱʱ + if (resultNum === 0) { + return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR, data: 0 }; + } + return { + code: RESULT_CODE_SUCCESS, + msg: RESULT_MSG_SUCCESS, + data: resultNum, + }; + }); + return result; +} + +/** + * ѯ澯ǰתӿ + * @param tag ID + * @returns object + */ +export async function getForwardSet() { + // + const result = await request({ + url: `/databaseManagement/v1/omc_db/config`, + method: 'get', + params: { + SQL: `SELECT * FROM config WHERE config_tag = 'forwardAlarm'`, + }, + }); + // + if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) { + let data = result.data.data[0]; + const v = parseObjLineToHump(data['config'][0]); + let vJSON: any = {}; + try { + vJSON = JSON.parse(v.valueJson); + } catch (error) { + console.error(error); + } + return Object.assign(result, { + data: vJSON, + }); + } + return result; +} + +/** + * ޸ĸ澯ǰתӿ + * @param data ö + * @returns object + */ +export async function updateForwardSet(data: Record) { + // return false; + const result = await request({ + url: `/databaseManagement/v1/omc_db/config?WHERE=config_tag='forwardAlarm'`, + method: 'put', + data: { data: { value_json: JSON.stringify(data) } }, + }); + // + if (result.code === RESULT_CODE_SUCCESS && result.data.data) { + let rows = result.data.data.affectedRows; + if (rows) { + delete result.data; + return result; + } else { + return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR }; + } + } + return result; +} + + + + + + + + + diff --git a/src/api/faultManage/historyAlarm.ts b/src/api/faultManage/historyAlarm.ts new file mode 100644 index 00000000..540602a5 --- /dev/null +++ b/src/api/faultManage/historyAlarm.ts @@ -0,0 +1,169 @@ +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'; +import useUserStore from '@/store/modules/user'; +import { ConsoleSqlOutlined } from '@ant-design/icons-vue'; + +/** + * ѯб + * @param query ѯ + * @returns object + */ +export async function listAct(query: Record) { + let totalSQL = `select count(*) as total from alarm where alarm_status='0'`; + let rowsSQL = `select * from alarm where alarm_status='0'`; + // ѯ + let querySQL = ''; + querySQL += query.alarm_code + ? ` and alarm_code = '${query.alarm_code}' ` + : ''; + querySQL += query.alarm_type + ? ` and alarm_type = '${query.alarm_type}' ` + : ''; + querySQL += query.pv_flag ? ` and pv_flag = '${query.pv_flag}' ` : ''; + querySQL += query.orig_severity + ? ` and orig_severity in('${query.orig_severity}' )` + : ''; + querySQL += query.ne_id ? ` and ne_id like '%${query.ne_id}%' ` : ''; + querySQL += query.ne_name ? ` and ne_name like '%${query.ne_name}%' ` : ''; + querySQL += query.ne_type ? ` and ne_type like '%${query.ne_type}%' ` : ''; + querySQL += + query.beginTime && query.endTime + ? ` and event_time BETWEEN '${query.beginTime}' and ' ${query.endTime}'` + : ''; + + // ҳ + const pageNum = (query.pageNum - 1) * query.pageSize; + const limtSql = ` order by clear_time desc limit ${pageNum},${query.pageSize} `; + + // + const result = await request({ + url: `/databaseManagement/v1/select/omc_db/alarm`, + method: 'get', + params: { + SQL: totalSQL + querySQL, + rowsSQL: rowsSQL + querySQL + 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['alarm']; + 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; +} + +/** + * ȷϸ澯Ϣ + * @param data Ȩ + * @returns object + */ +export function updateConfirm(data: Record) { + var time = new Date(); + const userName = useUserStore().userName; + let finalData = { + alarm: { + ack_time: parseDateToStr(time), + ack_user: userName, + ack_state: '1', + }, + }; + + return request({ + url: `/databaseManagement/v1/update/omc_db/alarm?WHERE=id='${data.id}'`, + method: 'put', + data: finalData, + }); +} + +/** + * ȡȷϸ澯 + * @param data Ȩ + * @returns object + */ +export function cancelConfirm(data: (string | number)[]) { + var time = new Date(); + const userName = useUserStore().userName; + let finalData = { + alarm: { + ack_time: parseDateToStr(time), + ack_user: '', + ack_state: '0', + }, + }; + + return request({ + url: `/databaseManagement/v1/update/omc_db/alarm?WHERE=id in(${data.join( + ',' + )})`, + method: 'put', + data: finalData, + }); +} + + + + + +/** + * ʷ澯 + * @param query ѯ + * @returns bolb + */ +export async function exportAll(query: Record) { + let rowsSQL = `select * from alarm where alarm_status='0'`; + // ѯ + let querySQL = ''; + querySQL += query.alarm_code + ? ` and alarm_code = '${query.alarm_code}' ` + : ''; + querySQL += query.alarm_type + ? ` and alarm_type = '${query.alarm_type}' ` + : ''; + querySQL += query.pv_flag ? ` and pv_flag = '${query.pv_flag}' ` : ''; + querySQL += query.orig_severity + ? ` and orig_severity in('${query.orig_severity}' )` + : ''; + querySQL += query.ne_id ? ` and ne_id like '%${query.ne_id}%' ` : ''; + querySQL += query.ne_name ? ` and ne_name like '%${query.ne_name}%' ` : ''; + querySQL += query.ne_type ? ` and ne_type like '%${query.ne_type}%' ` : ''; + querySQL += + query.beginTime && query.endTime + ? ` and event_time BETWEEN '${query.beginTime}' and ' ${query.endTime}'` + : ''; + + // + const result = await request({ + url: `/databaseManagement/v1/select/omc_db/alarm`, + method: 'get', + params: { + rowsSQL: rowsSQL + querySQL, + }, + }); + + + if (result.code === RESULT_CODE_SUCCESS) { + let v = result.data.data[0]; + const vArr = parseObjLineToHump(v['alarm']); + result.data = vArr == null ? [] : vArr; + } + return result; +} + diff --git a/src/views/faultManage/active-alarm/index.vue b/src/views/faultManage/active-alarm/index.vue index c913460e..36133a99 100644 --- a/src/views/faultManage/active-alarm/index.vue +++ b/src/views/faultManage/active-alarm/index.vue @@ -16,9 +16,12 @@ import { clearAlarm, showPass, getPass, + exportAll } from '@/api/faultManage/actAlarm'; import useNeInfoStore from '@/store/modules/neinfo'; import useI18n from '@/hooks/useI18n'; +import saveAs from 'file-saver'; +import { writeSheet } from '@/utils/execl-utils'; import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; import { readLoalXlsx } from '@/utils/execl-utils'; const { t } = useI18n(); @@ -145,7 +148,7 @@ let tableColumns: ColumnsType = [ { title: t('views.faultManage.activeAlarm.origLevel'), align: 'center', - key:'origSeverity', + key: 'origSeverity', }, { title: t('views.faultManage.activeAlarm.alarmCode'), @@ -161,6 +164,7 @@ let tableColumns: ColumnsType = [ title: t('views.faultManage.activeAlarm.eventTime'), dataIndex: 'eventTime', align: 'center', + sorter: true, }, { title: t('views.faultManage.activeAlarm.alarmType'), @@ -194,11 +198,32 @@ let tableColumns: ColumnsType = [ title: t('views.faultManage.activeAlarm.clearType'), dataIndex: 'clearType', align: 'center', + customRender(opt) { + let clearType: any = { + 0: '未清除', + 1: '自动清除', + 2: '手动清除', + }; + if (clearType[opt.value]) { + return clearType[opt.value]; + } + return opt.value; + }, }, { title: t('views.faultManage.activeAlarm.ackState'), dataIndex: 'ackState', align: 'center', + customRender(opt) { + let ackState: any = { + 0: '未确认', + 1: '已确认', + }; + if (ackState[opt.value]) { + return ackState[opt.value]; + } + return opt.value; + }, }, { title: t('views.faultManage.activeAlarm.ackUser'), @@ -212,6 +237,9 @@ let tableColumns: ColumnsType = [ }, ]; +// //监听点击的是升序还是降序,还是取消排序 +// const change= (pagination, filters, sorter) => {console.log(sorter)} + /**帮助文档表格字段列 */ let alarmTableColumns: ColumnsType = [ { @@ -368,12 +396,16 @@ type ModalStateType = { visibleByEdit: boolean; /**显示过滤设置是否显示 */ visibleByShowSet: boolean; + /**个性化设置置是否显示 */ + visibleByMyselfSet: boolean; /**标题 */ title: string; /**表单数据 */ from: Record; /**表单数据 */ showSetFrom: Record; + // /**表单数据 */ + // myselfSetFrom: Record; /**确定按钮 loading */ confirmLoading: boolean; }; @@ -383,6 +415,7 @@ let modalState: ModalStateType = reactive({ visibleByView: false, visibleByEdit: false, visibleByShowSet: false, + visibleByMyselfSet: false, title: '全部信息', from: { alarmId: '', @@ -417,6 +450,9 @@ let modalState: ModalStateType = reactive({ alarm_code: '', pv_flag: '', }, + // myselfSetFrom:{ + + // } confirmLoading: false, }); @@ -541,7 +577,7 @@ const onSelectChange = ( }; /** - * 选中行后的取消确认 + * 选中行后的取消确认告警 */ function fnCancelConfirm() { Modal.confirm({ @@ -642,6 +678,34 @@ 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, + }); + writeSheet(res.data, 'alarm').then(fileBlob => + saveAs(fileBlob, `alarm_${Date.now()}.xlsx`) + ); + } else { + message.error({ + content: `${res.msg}`, + key, + duration: 3, + }); + } + }) + +} /** * 对话框弹出关闭执行函数 * 进行表达规则校验 @@ -874,6 +938,11 @@ onMounted(() => { {{ t('views.faultManage.activeAlarm.disPlayFilfter') }} + + + + {{ t('views.faultManage.activeAlarm.exportAll') }} + @@ -960,7 +1029,9 @@ onMounted(() => { >