From b245a78777b3951848de851e9d60625bd95aa122 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Mon, 18 Sep 2023 20:59:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=85=8D=E7=BD=AE=E7=AE=A1=E7=90=86>?= =?UTF-8?q?=E8=BD=AF=E4=BB=B6=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/configManage/softwareManage.ts | 154 ++++ src/i18n/locales/en-US.ts | 14 +- src/i18n/locales/zh-CN.ts | 14 +- .../components/software-history.vue | 312 +++++++++ .../configManage/softwareManage/index.vue | 662 ++++++++++++++++++ 5 files changed, 1154 insertions(+), 2 deletions(-) create mode 100644 src/api/configManage/softwareManage.ts create mode 100644 src/views/configManage/softwareManage/components/software-history.vue create mode 100644 src/views/configManage/softwareManage/index.vue diff --git a/src/api/configManage/softwareManage.ts b/src/api/configManage/softwareManage.ts new file mode 100644 index 00000000..7efd2efe --- /dev/null +++ b/src/api/configManage/softwareManage.ts @@ -0,0 +1,154 @@ +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 listNeSoftware(query: Record) { + let totalSQL = 'select count(id) as total from ne_software '; + let rowsSQL = ' select * from ne_software '; + + // 查询 + let querySQL = 'where 1=1'; + if (query.neType) { + querySQL += ` and ne_type like '%${query.neType}%' `; + } + + // 分页 + const pageNum = query.pageNum - 1; + const limtSql = ` order by update_time desc limit ${pageNum},${query.pageSize} `; + + // 发起请求 + const result = await request({ + url: `/databaseManagement/v1/select/omc_db/ne_software`, + method: 'get', + params: { + totalSQL: 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['ne_software']; + if (Array.isArray(itemData)) { + if (itemData.length === 1 && itemData[0]['total']) { + data.total = itemData[0]['total']; + } else { + data.rows = itemData.map(v => parseObjLineToHump(v)); + } + } + }); + return data; + } + return result; +} + +/** + * 删除软件信息 + * @param noticeId 网元ID + * @returns object + */ +export async function delNeSoftware(data: Record) { + return request({ + url: `/systemManagement/v1/${data.neType}/software/${data.version}`, + method: 'delete', + }); +} + +/** + * 获取软件信息文件 + * @param menuId 网元ID + * @returns object + */ +export async function downloadNeSoftware(data: Record) { + return await request({ + url: `/systemManagement/v1/${data.neType}/software/${data.version}`, + method: 'get', + responseType: 'blob', + }); +} + +/** + * 上传文件 + * @param data 表单数据对象 + * @returns object + */ +export function uploadNeSoftware(data: FormData) { + return request({ + url: `/systemManagement/v1/${data.get('nf')}/software/${data.get( + 'version' + )}`, + method: 'post', + data, + dataType: 'form-data', + }); +} + +/** + * 查询版本列表 + * @param query 查询参数 + * @returns object + */ +export async function listNeVersion(query: Record) { + let totalSQL = 'select count(id) as total from ne_version '; + let rowsSQL = ' select * from ne_version '; + + // 查询 + let querySQL = 'where 1=1'; + if (query.neType) { + querySQL += ` and ne_type like '%${query.neType}%' `; + } + if (query.status) { + querySQL += ` and status = '${query.status}' `; + } + if (query.beginTime && query.endTime) { + querySQL += ` and update_time BETWEEN '${query.beginTime}' AND '${query.endTime}' `; + } + + // 分页 + const pageNum = query.pageNum - 1; + const limtSql = ` order by update_time desc limit ${pageNum},${query.pageSize} `; + + // 发起请求 + const result = await request({ + url: `/databaseManagement/v1/select/omc_db/ne_version`, + method: 'get', + params: { + totalSQL: 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['ne_version']; + if (Array.isArray(itemData)) { + if (itemData.length === 1 && itemData[0]['total']) { + data.total = itemData[0]['total']; + } else { + data.rows = itemData.map(v => parseObjLineToHump(v)); + } + } + }); + return data; + } + return result; +} diff --git a/src/i18n/locales/en-US.ts b/src/i18n/locales/en-US.ts index d4f2e17f..3332acce 100644 --- a/src/i18n/locales/en-US.ts +++ b/src/i18n/locales/en-US.ts @@ -100,13 +100,25 @@ export default { }, configManage: { backupManage: { - SetBackupTask: 'Set automatic backup time', + setBackupTask: 'Set automatic backup time', neTypePlease: 'Query network element type', neType: 'Type', neID: 'Identifying', fileName: 'FileName', createAt: 'CreateAt', }, + softwareManage: { + uploadBtn: '上传', + downBtn: '下发', + actBtn: '激活', + historyBtn: '网元版本历史', + neTypePlease: '查询网元类型', + neType: 'Type', + fileName: 'FileName', + version: 'Version', + softwareLoadTime: '软件加载时间', + description: '功能描述', + }, }, }, }; diff --git a/src/i18n/locales/zh-CN.ts b/src/i18n/locales/zh-CN.ts index 202612c0..690aa774 100644 --- a/src/i18n/locales/zh-CN.ts +++ b/src/i18n/locales/zh-CN.ts @@ -100,13 +100,25 @@ export default { }, configManage: { backupManage: { - SetBackupTask: '设置自动备份时间', + setBackupTask: '设置自动备份时间', neTypePlease: '查询网元类型', neType: '网元类型', neID: '网元内部标识', fileName: '文件名', createAt: '创建时间', }, + softwareManage: { + uploadBtn: '上传', + downBtn: '下发', + actBtn: '激活', + historyBtn: '网元版本历史', + neTypePlease: '查询网元类型', + neType: '网元类型', + fileName: '文件名', + version: '版本', + softwareLoadTime: '软件加载时间', + description: '功能描述', + }, }, }, }; diff --git a/src/views/configManage/softwareManage/components/software-history.vue b/src/views/configManage/softwareManage/components/software-history.vue new file mode 100644 index 00000000..c1ca15e0 --- /dev/null +++ b/src/views/configManage/softwareManage/components/software-history.vue @@ -0,0 +1,312 @@ + + + + + diff --git a/src/views/configManage/softwareManage/index.vue b/src/views/configManage/softwareManage/index.vue new file mode 100644 index 00000000..5d922285 --- /dev/null +++ b/src/views/configManage/softwareManage/index.vue @@ -0,0 +1,662 @@ + + + + +