From 7e60f0dd05c4359994494e8ac7ea4f603cb099da Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Mon, 16 Dec 2024 10:23:22 +0800 Subject: [PATCH 01/16] =?UTF-8?q?chore:=20=E7=BC=96=E8=AF=91=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E6=8B=86=E5=8C=85manualChunks=E8=A1=8C=E4=B8=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/index.vue | 1 - vite.config.ts | 24 ++++++++++++++++-------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/views/index.vue b/src/views/index.vue index c7181483..fa4c97bc 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -43,7 +43,6 @@ onMounted(() => { getConfigKey('sys.homePage').then(res => { spinning.value = false; if (res.code === RESULT_CODE_SUCCESS && res.data) { - console.log(spinning); if (res.data) { const asyncComponent = findView(`${res.data}`); currentComponent.value = defineAsyncComponent(asyncComponent); diff --git a/vite.config.ts b/vite.config.ts index d0c51d7d..5651be11 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -54,14 +54,22 @@ export default defineConfig(({ mode }) => { chunkFileNames: 'js/[name].[hash].js', // 用于输出静态资源的块 assetFileNames: 'assets/[name].[hash].[ext]', - manualChunks: id => { - if (id.includes('node_modules')) { - return id - .toString() - .split('node_modules/')[1] - .split('/')[0] - .toString(); - } + manualChunks: { + vendorVue: ['vue', 'vue-router', 'pinia'], + vendorVuePlugins: ['vue-i18n', 'vue3-smooth-dnd', 'grid-layout-plus', '@vueuse/core'], + vendorAnt: ['ant-design-vue', '@ant-design/icons-vue'], + vendorAntv: ['@antv/g6'], + vendorEcharts: ['echarts'], + vendorPDF: ['@tato30/vue-pdf'], + vendorXterm: ['@xterm/xterm', '@xterm/addon-fit'], + vendorCodemirror: [ + 'codemirror', + '@codemirror/lang-yaml', + '@codemirror/lang-javascript', + '@codemirror/merge', + '@codemirror/theme-one-dark', + ], + vendorUtils: ['crypto-js', 'nprogress', 'p-queue', 'dayjs', 'xlsx'], }, }, }, From 5a704146a552d69ed3eebf65009af4e0e5abe3ee Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Mon, 16 Dec 2024 11:07:50 +0800 Subject: [PATCH 02/16] =?UTF-8?q?fix:=20=E8=A7=92=E8=89=B2=E5=88=86?= =?UTF-8?q?=E9=85=8D=E8=8F=9C=E5=8D=95=E5=8B=BE=E9=80=89=E7=88=B6=E5=AD=90?= =?UTF-8?q?=E7=BA=A7=E8=81=94=E8=BD=AC=E5=87=BA=E5=AD=90=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E5=85=B3=E8=81=94=E6=A0=B9=E8=8A=82=E7=82=B9=E6=95=B0=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/parse-tree-utils.ts | 44 +++++++++++++++++++++++++++++++-- src/views/system/role/index.vue | 27 +++++++++++++++++--- 2 files changed, 65 insertions(+), 6 deletions(-) diff --git a/src/utils/parse-tree-utils.ts b/src/utils/parse-tree-utils.ts index 0698054c..0791f050 100644 --- a/src/utils/parse-tree-utils.ts +++ b/src/utils/parse-tree-utils.ts @@ -126,7 +126,7 @@ export function parseDataToTreeExclude( } /** - * 解析树结构数据转出一维id数组 + * 解析树结构数据转出所有一维id数组 * * @param data 数组数据 * @param fieldId 读取节点字段 默认 'id' @@ -158,7 +158,7 @@ export function parseTreeKeys( } /** - * 解析树结构数据转出含子节点的一维id数组 + * 解析树结构数据转出根节点的一维id数组 * * @param data 数组数据 * @param fieldId 读取节点字段 默认 'id' @@ -221,3 +221,43 @@ export function parseDataToOptions( return options; } + +/** + * 解析树结构数据转出子节点关联根节点的一维id数组 + * + * @param data 数组数据 + * @param checkedKeys 子节点数组数据 + * @param fieldId 读取节点字段 默认 'id' + * @param fieldChildren 读取子节点字段 默认 'children' + * @returns 层级数组 + */ +export function parseTreeNodeKeysByChecked( + data: Record[], + checkedKeys: (string | number)[], + fieldId: string = 'id', + fieldChildren: string = 'children' +) { + // 节点id + let treeIds: (string | number)[] = []; + componet(data); + /**闭包递归函数 */ + function componet(data: Record[]) { + if (data.length <= 0) return false; + let hasKey = false; + for (const iterator of data) { + const key = iterator[fieldId]; + if (checkedKeys.includes(key)) { + hasKey = true; + } + let nodes = iterator[fieldChildren]; + if (Array.isArray(nodes) && nodes.length > 0) { + if (componet(nodes)) { + treeIds.push(key); + hasKey = true; + } + } + } + return hasKey; + } + return treeIds; +} diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index 8faa1cc2..3f14810f 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -23,7 +23,11 @@ import { saveAs } from 'file-saver'; import { parseDateToStr } from '@/utils/date-utils'; import useDictStore from '@/store/modules/dict'; import { DataNode } from 'ant-design-vue/es/tree'; -import { parseTreeKeys, parseTreeNodeKeys } from '@/utils/parse-tree-utils'; +import { + parseTreeKeys, + parseTreeNodeKeys, + parseTreeNodeKeysByChecked, +} from '@/utils/parse-tree-utils'; import { hasPermissions } from '@/plugins/auth-user'; import { MENU_PATH_INLINE } from '@/constants/menu-constants'; import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; @@ -328,7 +332,12 @@ function fnModalVisibleByVive(roleId: string | number) { menuTree.treeData = menus; modalState.menuTree.treeData = menus; modalState.menuTree.checkedKeys = checkedKeys; - modalState.from.menuIds = checkedKeys; + if (modalState.from.menuCheckStrictly === '1') { + const ids = parseTreeNodeKeysByChecked(menus, checkedKeys, 'id'); + modalState.from.menuIds = ids.concat(checkedKeys); + } else { + modalState.from.menuIds = checkedKeys; + } } modalState.title = t('views.system.role.roleInfo'); modalState.openByView = true; @@ -385,7 +394,12 @@ function fnModalVisibleByEdit(roleId?: string | number) { menuTree.treeData = menus; modalState.menuTree.treeData = menus; modalState.menuTree.checkedKeys = checkedKeys; - modalState.from.menuIds = checkedKeys; + if (modalState.from.menuCheckStrictly === '1') { + const ids = parseTreeNodeKeysByChecked(menus, checkedKeys, 'id'); + modalState.from.menuIds = ids.concat(checkedKeys); + } else { + modalState.from.menuIds = checkedKeys; + } } modalState.title = t('common.editText') + t('views.system.role.roleInfo'); @@ -567,7 +581,12 @@ function fnRecordDataScope(roleId: string | number) { deptTree.treeData = depts; modalState.deptTree.treeData = depts; modalState.deptTree.checkedKeys = checkedKeys; - modalState.from.deptIds = checkedKeys; + if (modalState.from.deptCheckStrictly === '1') { + const ids = parseTreeNodeKeysByChecked(depts, checkedKeys, 'id'); + modalState.from.deptIds = ids.concat(checkedKeys); + } else { + modalState.from.deptIds = checkedKeys; + } } modalState.title = t('views.system.role.distribute'); modalState.openByDataScope = true; From 09fd8bc4dc4b206c6fdffe474afbc6b23f491fbb Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Mon, 16 Dec 2024 11:25:30 +0800 Subject: [PATCH 03/16] =?UTF-8?q?style:=20smsc=E6=97=B6=E9=97=B4=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=88=97=E5=AE=BD=E5=BA=A6200px?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dashboard/smscCDR/index.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/dashboard/smscCDR/index.vue b/src/views/dashboard/smscCDR/index.vue index 2c33eb78..c2ec8bda 100644 --- a/src/views/dashboard/smscCDR/index.vue +++ b/src/views/dashboard/smscCDR/index.vue @@ -144,7 +144,7 @@ let tableColumns: ColumnsType = [ dataIndex: 'cdrJSON', key: 'callerParty', align: 'left', - width: 120, + width: 150, customRender(opt) { const cdrJSON = opt.value; return cdrJSON.callerParty; @@ -155,7 +155,7 @@ let tableColumns: ColumnsType = [ dataIndex: 'cdrJSON', key: 'calledParty', align: 'left', - width: 120, + width: 150, customRender(opt) { const cdrJSON = opt.value; return cdrJSON.calledParty; @@ -173,7 +173,7 @@ let tableColumns: ColumnsType = [ title: t('views.dashboard.cdr.time'), dataIndex: 'cdrJSON', align: 'left', - width: 150, + width: 200, customRender(opt) { const cdrJSON = opt.value; if (typeof cdrJSON.updateTime === 'number') { From 11649c3fb1db66cf52f16bf0a7c3215a897a526a Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Wed, 18 Dec 2024 15:31:27 +0800 Subject: [PATCH 04/16] =?UTF-8?q?fix:=20SMF-=E5=9C=A8=E7=BA=BF=E8=AE=A2?= =?UTF-8?q?=E9=98=85=E7=94=A8=E6=88=B7=E5=88=97=E8=A1=A8=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/neData/smf.ts | 17 +++++++++++++++-- src/views/neUser/ue/index.vue | 4 ++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/api/neData/smf.ts b/src/api/neData/smf.ts index 02b20e2f..a7d8c3c0 100644 --- a/src/api/neData/smf.ts +++ b/src/api/neData/smf.ts @@ -41,14 +41,27 @@ export function exportSMFDataCDR(data: Record) { }); } +/** + * SMF-在线订阅用户数量 + * @param query 查询参数 + * @returns object + */ +export function listSMFSubNum(neId: string) { + return request({ + url: '/neData/smf/sub/num', + method: 'get', + params: { neId }, + }); +} + /** * SMF-在线订阅用户列表信息 * @param query 查询参数 * @returns object */ -export function listSMFSubscribers(query: Record) { +export function listSMFSubList(query: Record) { return request({ - url: '/neData/smf/subscribers', + url: '/neData/smf/sub/list', method: 'get', params: query, }); diff --git a/src/views/neUser/ue/index.vue b/src/views/neUser/ue/index.vue index 29633e49..61918cfe 100644 --- a/src/views/neUser/ue/index.vue +++ b/src/views/neUser/ue/index.vue @@ -6,7 +6,7 @@ import { message } from 'ant-design-vue/es'; import { SizeType } from 'ant-design-vue/es/config-provider'; import { MenuInfo } from 'ant-design-vue/es/menu/src/interface'; import { ColumnsType } from 'ant-design-vue/es/table'; -import { listSMFSubscribers } from '@/api/neData/smf'; +import { listSMFSubList } from '@/api/neData/smf'; import useNeInfoStore from '@/store/modules/neinfo'; import useI18n from '@/hooks/useI18n'; import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; @@ -224,7 +224,7 @@ function fnGetList(pageNum?: number) { if (pageNum) { queryParams.pageNum = pageNum; } - listSMFSubscribers(toRaw(queryParams)).then(res => { + listSMFSubList(toRaw(queryParams)).then(res => { if (res.code === RESULT_CODE_SUCCESS && Array.isArray(res.rows)) { tablePagination.total = res.total; tableState.data = res.rows; From d3a18f95dbad311b7b8fc18091839be4fc7ed25e Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Wed, 18 Dec 2024 15:32:36 +0800 Subject: [PATCH 05/16] =?UTF-8?q?style:=20CDR/UE=E5=B1=95=E5=BC=80?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E5=B8=83=E5=B1=80=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dashboard/amfUE/index.vue | 108 +++++++++++++-------------- src/views/dashboard/imsCDR/index.vue | 4 +- src/views/dashboard/mmeUE/index.vue | 87 +++++++++++---------- 3 files changed, 100 insertions(+), 99 deletions(-) diff --git a/src/views/dashboard/amfUE/index.vue b/src/views/dashboard/amfUE/index.vue index 79712569..979a1d6c 100644 --- a/src/views/dashboard/amfUE/index.vue +++ b/src/views/dashboard/amfUE/index.vue @@ -654,65 +654,59 @@ onBeforeUnmount(() => { diff --git a/src/views/dashboard/imsCDR/index.vue b/src/views/dashboard/imsCDR/index.vue index 23633cb3..7fdf8ccd 100644 --- a/src/views/dashboard/imsCDR/index.vue +++ b/src/views/dashboard/imsCDR/index.vue @@ -740,7 +740,7 @@ onBeforeUnmount(() => { From 8a53ac8b9f68b28deb1b91e8ec484c0e22cfd7c6 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Wed, 18 Dec 2024 15:33:52 +0800 Subject: [PATCH 06/16] =?UTF-8?q?feat:=20=E7=BD=91=E5=85=83=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=A4=9A=E7=BD=91=E5=85=83=E5=90=8C=E6=97=B6=E9=85=8D?= =?UTF-8?q?=E7=BD=AEHA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../neConfig/components/CheckSyncNe/index.vue | 191 ++++++++++ src/views/ne/neConfig/hooks/useConfigArray.ts | 208 ++++++++--- .../ne/neConfig/hooks/useConfigArrayChild.ts | 206 ++++++++--- src/views/ne/neConfig/hooks/useConfigList.ts | 69 +++- src/views/ne/neConfig/index.vue | 346 +++++++++++++----- 5 files changed, 810 insertions(+), 210 deletions(-) create mode 100644 src/views/ne/neConfig/components/CheckSyncNe/index.vue diff --git a/src/views/ne/neConfig/components/CheckSyncNe/index.vue b/src/views/ne/neConfig/components/CheckSyncNe/index.vue new file mode 100644 index 00000000..1acf3536 --- /dev/null +++ b/src/views/ne/neConfig/components/CheckSyncNe/index.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/src/views/ne/neConfig/hooks/useConfigArray.ts b/src/views/ne/neConfig/hooks/useConfigArray.ts index b0823043..ffe3e946 100644 --- a/src/views/ne/neConfig/hooks/useConfigArray.ts +++ b/src/views/ne/neConfig/hooks/useConfigArray.ts @@ -4,19 +4,20 @@ import { editNeConfigData, } from '@/api/ne/neConfig'; import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; -import { Modal,message } from 'ant-design-vue/es'; +import { Modal, message } from 'ant-design-vue/es'; import { SizeType } from 'ant-design-vue/es/config-provider'; import { reactive, watch } from 'vue'; /** * 参数配置array类型 - * @param param 父级传入 { t, treeState, neTypeSelect, fnActiveConfigNode, ruleVerification, modalState, fnModalCancel} + * @param param 父级传入 { t, treeState, neTypeSelect, neIdSelect, fnActiveConfigNode, ruleVerification, modalState, fnModalCancel} * @returns */ export default function useConfigArray({ t, treeState, neTypeSelect, + neIdSelect, fnActiveConfigNode, ruleVerification, modalState, @@ -130,29 +131,61 @@ export default function useConfigArray({ data[key] = from[key]['value']; } - // 发送 + // 请求 + const reqArr = []; + if (neTypeSelect.value[1] !== 'SYNC') { + reqArr.push( + editNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + paramData: data, + loc: loc, + }) + ); + } else { + for (const neId of neIdSelect.value) { + reqArr.push( + editNeConfigData({ + neType: neTypeSelect.value[0], + neId: neId, + paramName: treeState.selectNode.paramName, + paramData: data, + loc: loc, + }) + ); + } + } + // 无请求提示 + if (reqArr.length === 0) { + message.warning({ + content: t('views.ne.neConfig.neIdSyncPleace'), + duration: 3, + }); + arrayEditClose(); + return; + } + const hide = message.loading(t('common.loading'), 0); - editNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - paramData: data, - loc: loc, - }) - .then(res => { - if (res.code === RESULT_CODE_SUCCESS) { + Promise.allSettled(reqArr) + .then(resArr => { + const rejected = resArr.find(res => res.status === 'rejected'); + if (rejected) { + message.warning({ + content: t('views.ne.neConfig.updateItemErr'), + duration: 3, + }); + } else { message.success({ content: t('views.ne.neConfig.updateItem', { num: modalState.title, }), duration: 3, }); + } + const fulfilled = resArr.find(res => res.status === 'fulfilled'); + if (fulfilled) { fnActiveConfigNode('#'); - } else { - message.warning({ - content: t('views.ne.neConfig.updateItemErr'), - duration: 3, - }); } }) .finally(() => { @@ -172,28 +205,65 @@ export default function useConfigArray({ num: title, }), onOk() { - delNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - loc: loc, - }).then(res => { - if (res.code === RESULT_CODE_SUCCESS) { - message.success({ - content: t('views.ne.neConfig.delItemOk', { - num: title, - }), - duration: 2, - }); - arrayEditClose(); - fnActiveConfigNode('#'); - } else { - message.error({ - content: `${res.msg}`, - duration: 2, - }); + // 请求 + const reqArr = []; + if (neTypeSelect.value[1] !== 'SYNC') { + reqArr.push( + delNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + loc: loc, + }) + ); + } else { + for (const neId of neIdSelect.value) { + reqArr.push( + delNeConfigData({ + neType: neTypeSelect.value[0], + neId: neId, + paramName: treeState.selectNode.paramName, + loc: loc, + }) + ); } - }); + } + // 无请求提示 + if (reqArr.length === 0) { + message.warning({ + content: t('views.ne.neConfig.neIdSyncPleace'), + duration: 3, + }); + arrayEditClose(); + return; + } + + const hide = message.loading(t('common.loading'), 0); + Promise.allSettled(reqArr) + .then(resArr => { + const rejected = resArr.find(res => res.status === 'rejected'); + if (rejected) { + message.error({ + content: `${rejected.reason}`, + duration: 2, + }); + } else { + message.success({ + content: t('views.ne.neConfig.delItemOk', { + num: title, + }), + duration: 2, + }); + } + const fulfilled = resArr.find(res => res.status === 'fulfilled'); + if (fulfilled) { + fnActiveConfigNode('#'); + } + }) + .finally(() => { + hide(); + arrayEditClose(); + }); }, }); } @@ -264,29 +334,61 @@ export default function useConfigArray({ data[key] = from[key]['value']; } - // 发送 + // 请求 + const reqArr = []; + if (neTypeSelect.value[1] !== 'SYNC') { + reqArr.push( + addNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + paramData: data, + loc: `${from['index']['value']}`, + }) + ); + } else { + for (const neId of neIdSelect.value) { + reqArr.push( + addNeConfigData({ + neType: neTypeSelect.value[0], + neId: neId, + paramName: treeState.selectNode.paramName, + paramData: data, + loc: `${from['index']['value']}`, + }) + ); + } + } + // 无请求提示 + if (reqArr.length === 0) { + message.warning({ + content: t('views.ne.neConfig.neIdSyncPleace'), + duration: 3, + }); + arrayEditClose(); + return; + } + const hide = message.loading(t('common.loading'), 0); - addNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - paramData: data, - loc: `${from['index']['value']}`, - }) - .then(res => { - if (res.code === RESULT_CODE_SUCCESS) { + Promise.allSettled(reqArr) + .then(resArr => { + const rejected = resArr.find(res => res.status === 'rejected'); + if (rejected) { + message.warning({ + content: t('views.ne.neConfig.addItemErr'), + duration: 3, + }); + } else { message.success({ content: t('views.ne.neConfig.addItemOk', { num: modalState.title, }), duration: 3, }); + } + const fulfilled = resArr.find(res => res.status === 'fulfilled'); + if (fulfilled) { fnActiveConfigNode('#'); - } else { - message.warning({ - content: t('views.ne.neConfig.addItemErr'), - duration: 3, - }); } }) .finally(() => { diff --git a/src/views/ne/neConfig/hooks/useConfigArrayChild.ts b/src/views/ne/neConfig/hooks/useConfigArrayChild.ts index ee58b178..24428ca9 100644 --- a/src/views/ne/neConfig/hooks/useConfigArrayChild.ts +++ b/src/views/ne/neConfig/hooks/useConfigArrayChild.ts @@ -10,13 +10,14 @@ import { nextTick, reactive } from 'vue'; /** * 参数配置array类型的嵌套array - * @param param 父级传入 { t, treeState, neTypeSelect, fnActiveConfigNode, ruleVerification, modalState, arrayState, arrayInitEdit, arrayInitAdd, arrayEditClose} + * @param param 父级传入 { t, treeState, neTypeSelect, neIdSelect, fnActiveConfigNode, ruleVerification, modalState, arrayState, arrayInitEdit, arrayInitAdd, arrayEditClose} * @returns */ export default function useConfigArrayChild({ t, treeState, neTypeSelect, + neIdSelect, fnActiveConfigNode, ruleVerification, modalState, @@ -198,29 +199,61 @@ export default function useConfigArrayChild({ data[key] = from[key]['value']; } - // 发送 + // 请求 + const reqArr = []; + if (neTypeSelect.value[1] !== 'SYNC') { + reqArr.push( + editNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + paramData: data, + loc, + }) + ); + } else { + for (const neId of neIdSelect.value) { + reqArr.push( + editNeConfigData({ + neType: neTypeSelect.value[0], + neId: neId, + paramName: treeState.selectNode.paramName, + paramData: data, + loc, + }) + ); + } + } + // 无请求提示 + if (reqArr.length === 0) { + message.warning({ + content: t('views.ne.neConfig.neIdSyncPleace'), + duration: 3, + }); + arrayEditClose(); + return; + } + const hide = message.loading(t('common.loading'), 0); - editNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - paramData: data, - loc, - }) - .then(res => { - if (res.code === RESULT_CODE_SUCCESS) { + Promise.allSettled(reqArr) + .then(resArr => { + const rejected = resArr.find(res => res.status === 'rejected'); + if (rejected) { + message.warning({ + content: t('views.ne.neConfig.updateItemErr'), + duration: 3, + }); + } else { message.success({ content: t('views.ne.neConfig.updateItem', { num: modalState.title, }), duration: 3, }); + } + const fulfilled = resArr.find(res => res.status === 'fulfilled'); + if (fulfilled) { fnActiveConfigNode('#'); - } else { - message.warning({ - content: t('views.ne.neConfig.updateItemErr'), - duration: 3, - }); } }) .finally(() => { @@ -241,28 +274,65 @@ export default function useConfigArrayChild({ num: title, }), onOk() { - delNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - loc, - }).then(res => { - if (res.code === RESULT_CODE_SUCCESS) { - message.success({ - content: t('views.ne.neConfig.delItemOk', { - num: title, - }), - duration: 2, - }); - arrayEditClose(); - fnActiveConfigNode('#'); - } else { - message.error({ - content: `${res.msg}`, - duration: 2, - }); + // 请求 + const reqArr = []; + if (neTypeSelect.value[1] !== 'SYNC') { + reqArr.push( + delNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + loc, + }) + ); + } else { + for (const neId of neIdSelect.value) { + reqArr.push( + delNeConfigData({ + neType: neTypeSelect.value[0], + neId: neId, + paramName: treeState.selectNode.paramName, + loc, + }) + ); } - }); + } + // 无请求提示 + if (reqArr.length === 0) { + message.warning({ + content: t('views.ne.neConfig.neIdSyncPleace'), + duration: 3, + }); + arrayEditClose(); + return; + } + + const hide = message.loading(t('common.loading'), 0); + Promise.allSettled(reqArr) + .then(resArr => { + const rejected = resArr.find(res => res.status === 'rejected'); + if (rejected) { + message.error({ + content: `${rejected.reason}`, + duration: 2, + }); + } else { + message.success({ + content: t('views.ne.neConfig.delItemOk', { + num: title, + }), + duration: 2, + }); + } + const fulfilled = resArr.find(res => res.status === 'fulfilled'); + if (fulfilled) { + fnActiveConfigNode('#'); + } + }) + .finally(() => { + hide(); + arrayEditClose(); + }); }, }); } @@ -309,29 +379,61 @@ export default function useConfigArrayChild({ data[key] = from[key]['value']; } - // 发送 + // 请求 + const reqArr = []; + if (neTypeSelect.value[1] !== 'SYNC') { + reqArr.push( + addNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + paramData: data, + loc, + }) + ); + } else { + for (const neId of neIdSelect.value) { + reqArr.push( + addNeConfigData({ + neType: neTypeSelect.value[0], + neId: neId, + paramName: treeState.selectNode.paramName, + paramData: data, + loc, + }) + ); + } + } + // 无请求提示 + if (reqArr.length === 0) { + message.warning({ + content: t('views.ne.neConfig.neIdSyncPleace'), + duration: 3, + }); + arrayEditClose(); + return; + } + const hide = message.loading(t('common.loading'), 0); - addNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - paramData: data, - loc, - }) - .then(res => { - if (res.code === RESULT_CODE_SUCCESS) { + Promise.allSettled(reqArr) + .then(resArr => { + const rejected = resArr.find(res => res.status === 'rejected'); + if (rejected) { + message.warning({ + content: t('views.ne.neConfig.addItemErr'), + duration: 3, + }); + } else { message.success({ content: t('views.ne.neConfig.addItemOk', { num: modalState.title, }), duration: 3, }); + } + const fulfilled = resArr.find(res => res.status === 'fulfilled'); + if (fulfilled) { fnActiveConfigNode('#'); - } else { - message.warning({ - content: t('views.ne.neConfig.addItemErr'), - duration: 3, - }); } }) .finally(() => { diff --git a/src/views/ne/neConfig/hooks/useConfigList.ts b/src/views/ne/neConfig/hooks/useConfigList.ts index 37ed3aee..143f5574 100644 --- a/src/views/ne/neConfig/hooks/useConfigList.ts +++ b/src/views/ne/neConfig/hooks/useConfigList.ts @@ -6,13 +6,14 @@ import { reactive, toRaw } from 'vue'; /** * list类型参数处理 - * @param param 父级传入 {t, treeState, neTypeSelect, ruleVerification} + * @param param 父级传入 {t, treeState, neTypeSelect, neIdSelect, ruleVerification} * @returns */ export default function useConfigList({ t, treeState, neTypeSelect, + neIdSelect, ruleVerification, }: any) { /**单列表状态类型 */ @@ -83,25 +84,64 @@ export default function useConfigList({ return; } - // 发送 + // 请求 + const reqArr = []; + if (neTypeSelect.value[1] !== 'SYNC') { + reqArr.push( + editNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + paramData: { + [from['name']]: from['value'], + }, + }) + ); + } else { + for (const neId of neIdSelect.value) { + reqArr.push( + editNeConfigData({ + neType: neTypeSelect.value[0], + neId: neId, + paramName: treeState.selectNode.paramName, + paramData: { + [from['name']]: from['value'], + }, + }) + ); + } + } + // 无请求提示 + if (reqArr.length === 0) { + message.warning({ + content: t('views.ne.neConfig.neIdSyncPleace'), + duration: 3, + }); + listState.confirmLoading = false; + listState.editRecord = {}; + return; + } + listState.confirmLoading = true; const hide = message.loading(t('common.loading'), 0); - editNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - paramData: { - [from['name']]: from['value'], - }, - }) - .then(res => { - if (res.code === RESULT_CODE_SUCCESS) { + Promise.allSettled(reqArr) + .then(resArr => { + const rejected = resArr.find(res => res.status === 'rejected'); + if (rejected) { + message.warning({ + content: t('views.ne.neConfig.updateValueErr'), + duration: 3, + }); + } else { message.success({ content: t('views.ne.neConfig.updateValue', { num: from['display'], }), duration: 3, }); + } + const fulfilled = resArr.find(res => res.status === 'fulfilled'); + if (fulfilled) { // 改变表格数据 const item = listState.data.find( (item: Record) => from['name'] === item['name'] @@ -109,11 +149,6 @@ export default function useConfigList({ if (item) { Object.assign(item, listState.editRecord); } - } else { - message.warning({ - content: t('views.ne.neConfig.updateValueErr'), - duration: 3, - }); } }) .finally(() => { diff --git a/src/views/ne/neConfig/index.vue b/src/views/ne/neConfig/index.vue index 0c8b6bf0..42abcf29 100644 --- a/src/views/ne/neConfig/index.vue +++ b/src/views/ne/neConfig/index.vue @@ -1,11 +1,20 @@ - - - - diff --git a/src/views/dashboard/overview/components/UserActivity/index.vue b/src/views/dashboard/overview/components/UserActivity/index.vue index 1a2af1eb..1cb9d6c9 100644 --- a/src/views/dashboard/overview/components/UserActivity/index.vue +++ b/src/views/dashboard/overview/components/UserActivity/index.vue @@ -77,8 +77,12 @@ onMounted(() => {
{{ t('views.dashboard.overview.userActivity.time') }}:  - - {{ parseDateToStr(item.data.releaseTime * 1000) }} + + {{ + typeof item.data.releaseTime === 'number' + ? parseDateToStr(+item.data.releaseTime * 1000) + : item.data.releaseTime + }}
@@ -203,7 +207,11 @@ onMounted(() => {
{{ t('views.dashboard.overview.userActivity.time') }}: - {{ parseDateToStr(+item.data?.timestamp * 1000) }} + {{ + typeof item.data?.timestamp === 'number' + ? parseDateToStr(+item.data?.timestamp * 1000) + : item.data?.timestamp + }}
diff --git a/src/views/dashboard/smscCDR/index.vue b/src/views/dashboard/smscCDR/index.vue index c2ec8bda..283ce1f0 100644 --- a/src/views/dashboard/smscCDR/index.vue +++ b/src/views/dashboard/smscCDR/index.vue @@ -704,58 +704,62 @@ onBeforeUnmount(() => { diff --git a/src/views/monitor/topologyArchitecture/index.vue b/src/views/monitor/topologyArchitecture/index.vue index 289a4ba1..b7f25f9b 100644 --- a/src/views/monitor/topologyArchitecture/index.vue +++ b/src/views/monitor/topologyArchitecture/index.vue @@ -92,13 +92,13 @@ const graphNodeMenu = new Menu({ ${neState.neName ?? '--'}
- > ${t('views.configManage.neManage.restart')} + > ${t('views.ne.common.restart')}
- > ${t('views.configManage.neManage.stop')} + > ${t('views.ne.common.stop')}
- > ${t('views.configManage.neManage.log')} + > ${t('views.ne.common.log')}
`; diff --git a/src/views/ne/neSoftware/components/EditModal.vue b/src/views/ne/neSoftware/components/EditModal.vue index b7439d8f..0afe1a5e 100644 --- a/src/views/ne/neSoftware/components/EditModal.vue +++ b/src/views/ne/neSoftware/components/EditModal.vue @@ -166,8 +166,8 @@ function fnBeforeUploadFile(file: FileType) { const suff = fileName.substring(fileName.lastIndexOf('.')); if (!['.deb', '.rpm'].includes(suff)) { message.error( - t('views.configManage.softwareManage.onlyAble', { - fileText: '(.deb、.rpm)', + t('views.ne.neSoftware.fileTypeNotEq', { + txt: '(.deb、.rpm)', }), 3 ); @@ -238,8 +238,8 @@ function fnBeforeUploadFileDep(file: FileType) { const suff = fileName.substring(fileName.lastIndexOf('.')); if (!['.deb', '.rpm'].includes(suff)) { message.error( - t('views.configManage.softwareManage.onlyAble', { - fileText: '(.deb、.rpm)', + t('views.ne.neSoftware.fileTypeNotEq', { + txt: '(.deb、.rpm)', }), 3 ); diff --git a/src/views/ne/neSoftware/components/UploadMoreFile.vue b/src/views/ne/neSoftware/components/UploadMoreFile.vue index ac55d5c8..f3fee8ec 100644 --- a/src/views/ne/neSoftware/components/UploadMoreFile.vue +++ b/src/views/ne/neSoftware/components/UploadMoreFile.vue @@ -171,8 +171,8 @@ function fnBeforeUploadFile(file: FileType) { const suff = fileName.substring(fileName.lastIndexOf('.')); if (!['.deb', '.rpm'].includes(suff)) { message.error( - t('views.configManage.softwareManage.onlyAble', { - fileText: '(.deb、.rpm)', + t('views.ne.neSoftware.fileTypeNotEq', { + txt: '(.deb、.rpm)', }), 3 ); @@ -286,8 +286,8 @@ function fnBeforeUploadFileDep(file: FileType) { const suff = fileName.substring(fileName.lastIndexOf('.')); if (!['.deb', '.rpm'].includes(suff)) { message.error( - t('views.configManage.softwareManage.onlyAble', { - fileText: '(.deb、.rpm)', + t('views.ne.neSoftware.fileTypeNotEq', { + txt: '(.deb、.rpm)', }), 3 ); diff --git a/src/views/perfManage/perfThreshold/index.vue b/src/views/perfManage/perfThreshold/index.vue index 898ef07f..30d13694 100644 --- a/src/views/perfManage/perfThreshold/index.vue +++ b/src/views/perfManage/perfThreshold/index.vue @@ -391,9 +391,7 @@ function fnRecordRun(row: Record) { threRun(row).then(res => { if (res.code === RESULT_CODE_SUCCESS) { message.success({ - content: t('common.msgSuccess', { - msg: t('views.configManage.softwareManage.runBtn'), - }), + content: 'Run', key, duration: 2, }); @@ -610,7 +608,7 @@ onMounted(() => { ) { taskRun(row).then(res => { if (res.code === RESULT_CODE_SUCCESS) { message.success({ - content: t('common.msgSuccess', { - msg: t('views.configManage.softwareManage.runBtn'), - }), + content: 'Run', key, duration: 2, }); @@ -861,7 +859,7 @@ onMounted(() => { > - {{ t('views.configManage.softwareManage.runBtn') }} + Run diff --git a/src/views/system/quick-start/components/NeInfoConfig.vue b/src/views/system/quick-start/components/NeInfoConfig.vue index b5cdd41c..d3457e23 100644 --- a/src/views/system/quick-start/components/NeInfoConfig.vue +++ b/src/views/system/quick-start/components/NeInfoConfig.vue @@ -230,7 +230,7 @@ function fnNeTypeChange(v: any, data: any) { function fnModalVisibleByEdit(record?: any) { if (!record) { //modalStateFrom.resetFields(); - modalState.title = t('views.configManage.neManage.addNe'); + modalState.title = t('views.ne.neInfo.addTitle'); const neId = `${new Date().getMilliseconds()}`.padStart(3, '0'); modalState.from = { id: undefined, @@ -287,7 +287,7 @@ function fnModalVisibleByEdit(record?: any) { hide(); if (res.code === RESULT_CODE_SUCCESS) { Object.assign(modalState.from, res.data); - modalState.title = t('views.configManage.neManage.editNe'); + modalState.title = t('views.ne.neInfo.editTitle'); modalState.openByEdit = true; } else { message.error(t('common.getInfoFail'), 2); From 15ac549532b5dec120efbf5ed6a11c076ff7c23d Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 19 Dec 2024 11:11:16 +0800 Subject: [PATCH 08/16] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9ESGWC-CDR?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/neData/sgwc.ts | 42 ++ src/views/dashboard/sgwcCDR/index.vue | 827 ++++++++++++++++++++++++++ 2 files changed, 869 insertions(+) create mode 100644 src/api/neData/sgwc.ts create mode 100644 src/views/dashboard/sgwcCDR/index.vue diff --git a/src/api/neData/sgwc.ts b/src/api/neData/sgwc.ts new file mode 100644 index 00000000..8b383256 --- /dev/null +++ b/src/api/neData/sgwc.ts @@ -0,0 +1,42 @@ +import { request } from '@/plugins/http-fetch'; + +/** + * 查询SGWC-CDR会话事件 + * @param query 查询参数 + * @returns object + */ +export function listSGWCDataCDR(query: Record) { + return request({ + url: '/neData/sgwc/cdr/list', + method: 'get', + params: query, + }); +} + +/** + * SGWC-CDR会话删除 + * @param id 信息ID + * @returns object + */ +export function delSGWCDataCDR(cdrIds: string | number) { + return request({ + url: `/neData/sgwc/cdr/${cdrIds}`, + method: 'delete', + timeout: 60_000, + }); +} + +/** + * SGWC-CDR会话列表导出 + * @param data 查询列表条件 + * @returns object + */ +export function exportSGWCDataCDR(data: Record) { + return request({ + url: '/neData/sgwc/cdr/export', + method: 'post', + data, + responseType: 'blob', + timeout: 60_000, + }); +} diff --git a/src/views/dashboard/sgwcCDR/index.vue b/src/views/dashboard/sgwcCDR/index.vue new file mode 100644 index 00000000..21aa22b0 --- /dev/null +++ b/src/views/dashboard/sgwcCDR/index.vue @@ -0,0 +1,827 @@ + + + + + From b64c4c66ab67819ff11ad8e71bd5a8a5dda53cca Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 19 Dec 2024 11:11:54 +0800 Subject: [PATCH 09/16] =?UTF-8?q?style:=20=E7=BD=91=E5=85=83=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=88=97=E8=A1=A8=E9=9D=99=E6=80=81=E5=8F=AF=E9=80=89?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/constants/ne-constants.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/constants/ne-constants.ts b/src/constants/ne-constants.ts index ec2282c9..cdf6b689 100644 --- a/src/constants/ne-constants.ts +++ b/src/constants/ne-constants.ts @@ -4,6 +4,7 @@ export const NE_TYPE_LIST = [ 'IMS', 'AMF', 'AUSF', + 'UDR', 'UDM', 'SMF', 'PCF', @@ -19,6 +20,8 @@ export const NE_TYPE_LIST = [ 'SMSF', 'CBC', 'CHF', + 'HLR', + 'SGWC', ]; /** From 7d470fd681fef553cc672c9b74c68ab410d72b2f Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 19 Dec 2024 11:14:55 +0800 Subject: [PATCH 10/16] =?UTF-8?q?style:=20=E7=BD=91=E5=85=83=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=8A=A0=E8=BD=BD=E5=90=8C=E6=97=B6=E6=B8=85=E9=99=A4?= =?UTF-8?q?=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ne/neInfo/index.vue | 66 +++++++++++++++++------------------ 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/src/views/ne/neInfo/index.vue b/src/views/ne/neInfo/index.vue index 7c310bb8..39d7ec1a 100644 --- a/src/views/ne/neInfo/index.vue +++ b/src/views/ne/neInfo/index.vue @@ -357,33 +357,38 @@ function fnGetList(pageNum?: number) { if (pageNum) { queryParams.pageNum = pageNum; } - listNeInfo(toRaw(queryParams)).then(res => { - if (res.code === RESULT_CODE_SUCCESS && Array.isArray(res.rows)) { - // 取消勾选 - if (tableState.selectedRowKeys.length > 0) { - tableState.selectedRowKeys = []; - } - tablePagination.total = res.total; - // 遍历处理资源情况数值 - tableState.data = res.rows.map(item => { - let resouresUsage = { - sysDiskUsage: 0, - sysMemUsage: 0, - sysCpuUsage: 0, - nfCpuUsage: 0, - }; - const neState = item.serverState; - if (neState) { - resouresUsage = parseResouresUsage(neState); - } else { - item.serverState = { online: false }; + listNeInfo(toRaw(queryParams)) + .then(res => { + if (res.code === RESULT_CODE_SUCCESS && Array.isArray(res.rows)) { + // 取消勾选 + if (tableState.selectedRowKeys.length > 0) { + tableState.selectedRowKeys = []; } - Reflect.set(item, 'resoures', resouresUsage); - return item; - }); - } - tableState.loading = false; - }); + tablePagination.total = res.total; + // 遍历处理资源情况数值 + tableState.data = res.rows.map(item => { + let resouresUsage = { + sysDiskUsage: 0, + sysMemUsage: 0, + sysCpuUsage: 0, + nfCpuUsage: 0, + }; + const neState = item.serverState; + if (neState) { + resouresUsage = parseResouresUsage(neState); + } else { + item.serverState = { online: false }; + } + Reflect.set(item, 'resoures', resouresUsage); + return item; + }); + } + tableState.loading = false; + }) + .finally(() => { + // 刷新缓存的网元信息 + useNeInfoStore().fnRefreshNelist(); + }); } /**解析网元状态携带的资源利用率 */ @@ -441,13 +446,8 @@ onMounted(() => { } }); - // 刷新缓存的网元信息 - useNeInfoStore() - .fnRefreshNelist() - .finally(() => { - // 获取列表数据 - fnGetList(); - }); + // 获取列表数据 + fnGetList(); }); From 302ea84cdebec84363c38e4f3f22e12d8860c606 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 19 Dec 2024 11:17:06 +0800 Subject: [PATCH 11/16] =?UTF-8?q?style:=20=E7=9C=8B=E6=9D=BFUDM-=E7=AD=BE?= =?UTF-8?q?=E7=BA=A6=E6=95=B0=E9=87=8F=E5=8F=82=E6=95=B0=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/dashboard/overview/index.vue | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/views/dashboard/overview/index.vue b/src/views/dashboard/overview/index.vue index 231d0588..2e1f5911 100644 --- a/src/views/dashboard/overview/index.vue +++ b/src/views/dashboard/overview/index.vue @@ -96,7 +96,6 @@ function fnGetNeState() { async function fnGetSkim() { const resArr = await Promise.allSettled([ listUDMSub({ - neid: '001', pageNum: 1, pageSize: 1, }), @@ -162,7 +161,7 @@ function loadData() { clearInterval(interval10s.value); interval10s.value = setInterval(() => { - if (!interval10s.value) return + if (!interval10s.value) return; if (upfTFActive.value === '0') { upfTFSend('7'); upfTFActive.value = '7'; @@ -177,7 +176,7 @@ function loadData() { clearInterval(interval5s.value); interval5s.value = setInterval(() => { - if (!interval5s.value) return + if (!interval5s.value) return; fnGetSkim(); // 获取概览信息 fnGetNeState(); // 获取网元状态 }, 5_000); From 6e7402fd63032286fc1056576b1461898d2ef17d Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 19 Dec 2024 20:24:29 +0800 Subject: [PATCH 12/16] =?UTF-8?q?feat:=20=E7=BD=91=E5=85=83=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=A4=9A=E7=BD=91=E5=85=83=E5=90=8C=E6=97=B6=E9=85=8D?= =?UTF-8?q?=E7=BD=AEHA=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96=E9=80=89?= =?UTF-8?q?=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/i18n/locales/en-US.ts | 7 +- src/i18n/locales/zh-CN.ts | 7 +- .../neConfig/components/CheckSyncNe/index.vue | 191 ------------------ src/views/ne/neConfig/hooks/useConfigArray.ts | 64 +++--- .../ne/neConfig/hooks/useConfigArrayChild.ts | 64 +++--- src/views/ne/neConfig/hooks/useConfigList.ts | 24 +-- src/views/ne/neConfig/index.vue | 134 ++++++------ 7 files changed, 154 insertions(+), 337 deletions(-) delete mode 100644 src/views/ne/neConfig/components/CheckSyncNe/index.vue diff --git a/src/i18n/locales/en-US.ts b/src/i18n/locales/en-US.ts index d40e3dce..2c0763b9 100644 --- a/src/i18n/locales/en-US.ts +++ b/src/i18n/locales/en-US.ts @@ -629,6 +629,7 @@ export default { neTypePleace: "Please select the network element type", neIdSyncPleace: "Please select the synchronized network element", noConfigData: "No data on configuration items", + noConfigdDisabled: "The configuration item is not normal", updateValue: "[ {num} ] parameter value modified successfully.", updateValueErr: "Attribute value modification failure", updateItem: "Modify Index to {num}.", @@ -647,12 +648,6 @@ export default { updateItemTip: "Confirm updating the data item with Index [{num}]?", delItemTip: "Confirm deleting the data item with Index [{num}]?", arrayMore: "Expand", - checkSync: { - sync: "Sync", - tip: "Synchronize regional network elements", - title: "Select All/Select None", - selectProvince: "Select", - } }, neConfigBackup: { name: "Name", diff --git a/src/i18n/locales/zh-CN.ts b/src/i18n/locales/zh-CN.ts index b0241bde..61beaaad 100644 --- a/src/i18n/locales/zh-CN.ts +++ b/src/i18n/locales/zh-CN.ts @@ -629,6 +629,7 @@ export default { neTypePleace: "请选择网元类型", neIdSyncPleace: "请选择同步网元", noConfigData: "暂无配置项数据", + noConfigdDisabled: "配置项网元未正常服务", updateValue: "【 {num} 】 属性值修改成功", updateValueErr: "属性值修改失败", updateItem: "修改 Index 为 {num} 记录成功", @@ -647,12 +648,6 @@ export default { updateItemTip: "确认更新Index为 【{num}】 的数据项?", delItemTip: "确认删除Index为 【{num}】 的数据项?", arrayMore: "展开", - checkSync: { - sync: "同步", - tip: "同步区域网元", - title: "全选/全不选", - selectProvince: "选择区域", - } }, neConfigBackup: { name: "名称", diff --git a/src/views/ne/neConfig/components/CheckSyncNe/index.vue b/src/views/ne/neConfig/components/CheckSyncNe/index.vue deleted file mode 100644 index 1acf3536..00000000 --- a/src/views/ne/neConfig/components/CheckSyncNe/index.vue +++ /dev/null @@ -1,191 +0,0 @@ - - - - - diff --git a/src/views/ne/neConfig/hooks/useConfigArray.ts b/src/views/ne/neConfig/hooks/useConfigArray.ts index ffe3e946..ea093048 100644 --- a/src/views/ne/neConfig/hooks/useConfigArray.ts +++ b/src/views/ne/neConfig/hooks/useConfigArray.ts @@ -133,17 +133,7 @@ export default function useConfigArray({ // 请求 const reqArr = []; - if (neTypeSelect.value[1] !== 'SYNC') { - reqArr.push( - editNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - paramData: data, - loc: loc, - }) - ); - } else { + if (neTypeSelect.value[1].startsWith('SYNC')) { for (const neId of neIdSelect.value) { reqArr.push( editNeConfigData({ @@ -155,6 +145,16 @@ export default function useConfigArray({ }) ); } + } else { + reqArr.push( + editNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + paramData: data, + loc: loc, + }) + ); } // 无请求提示 if (reqArr.length === 0) { @@ -207,16 +207,7 @@ export default function useConfigArray({ onOk() { // 请求 const reqArr = []; - if (neTypeSelect.value[1] !== 'SYNC') { - reqArr.push( - delNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - loc: loc, - }) - ); - } else { + if (neTypeSelect.value[1].startsWith('SYNC')) { for (const neId of neIdSelect.value) { reqArr.push( delNeConfigData({ @@ -227,6 +218,15 @@ export default function useConfigArray({ }) ); } + } else { + reqArr.push( + delNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + loc: loc, + }) + ); } // 无请求提示 if (reqArr.length === 0) { @@ -336,17 +336,7 @@ export default function useConfigArray({ // 请求 const reqArr = []; - if (neTypeSelect.value[1] !== 'SYNC') { - reqArr.push( - addNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - paramData: data, - loc: `${from['index']['value']}`, - }) - ); - } else { + if (neTypeSelect.value[1].startsWith('SYNC')) { for (const neId of neIdSelect.value) { reqArr.push( addNeConfigData({ @@ -358,6 +348,16 @@ export default function useConfigArray({ }) ); } + } else { + reqArr.push( + addNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + paramData: data, + loc: `${from['index']['value']}`, + }) + ); } // 无请求提示 if (reqArr.length === 0) { diff --git a/src/views/ne/neConfig/hooks/useConfigArrayChild.ts b/src/views/ne/neConfig/hooks/useConfigArrayChild.ts index 24428ca9..851e2df4 100644 --- a/src/views/ne/neConfig/hooks/useConfigArrayChild.ts +++ b/src/views/ne/neConfig/hooks/useConfigArrayChild.ts @@ -201,17 +201,7 @@ export default function useConfigArrayChild({ // 请求 const reqArr = []; - if (neTypeSelect.value[1] !== 'SYNC') { - reqArr.push( - editNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - paramData: data, - loc, - }) - ); - } else { + if (neTypeSelect.value[1].startsWith('SYNC')) { for (const neId of neIdSelect.value) { reqArr.push( editNeConfigData({ @@ -223,6 +213,16 @@ export default function useConfigArrayChild({ }) ); } + } else { + reqArr.push( + editNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + paramData: data, + loc, + }) + ); } // 无请求提示 if (reqArr.length === 0) { @@ -276,16 +276,7 @@ export default function useConfigArrayChild({ onOk() { // 请求 const reqArr = []; - if (neTypeSelect.value[1] !== 'SYNC') { - reqArr.push( - delNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - loc, - }) - ); - } else { + if (neTypeSelect.value[1].startsWith('SYNC')) { for (const neId of neIdSelect.value) { reqArr.push( delNeConfigData({ @@ -296,6 +287,15 @@ export default function useConfigArrayChild({ }) ); } + } else { + reqArr.push( + delNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + loc, + }) + ); } // 无请求提示 if (reqArr.length === 0) { @@ -381,17 +381,7 @@ export default function useConfigArrayChild({ // 请求 const reqArr = []; - if (neTypeSelect.value[1] !== 'SYNC') { - reqArr.push( - addNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - paramData: data, - loc, - }) - ); - } else { + if (neTypeSelect.value[1].startsWith('SYNC')) { for (const neId of neIdSelect.value) { reqArr.push( addNeConfigData({ @@ -403,6 +393,16 @@ export default function useConfigArrayChild({ }) ); } + } else { + reqArr.push( + addNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + paramData: data, + loc, + }) + ); } // 无请求提示 if (reqArr.length === 0) { diff --git a/src/views/ne/neConfig/hooks/useConfigList.ts b/src/views/ne/neConfig/hooks/useConfigList.ts index 143f5574..52a57627 100644 --- a/src/views/ne/neConfig/hooks/useConfigList.ts +++ b/src/views/ne/neConfig/hooks/useConfigList.ts @@ -86,18 +86,7 @@ export default function useConfigList({ // 请求 const reqArr = []; - if (neTypeSelect.value[1] !== 'SYNC') { - reqArr.push( - editNeConfigData({ - neType: neTypeSelect.value[0], - neId: neTypeSelect.value[1], - paramName: treeState.selectNode.paramName, - paramData: { - [from['name']]: from['value'], - }, - }) - ); - } else { + if (neTypeSelect.value[1].startsWith('SYNC')) { for (const neId of neIdSelect.value) { reqArr.push( editNeConfigData({ @@ -110,6 +99,17 @@ export default function useConfigList({ }) ); } + } else { + reqArr.push( + editNeConfigData({ + neType: neTypeSelect.value[0], + neId: neTypeSelect.value[1], + paramName: treeState.selectNode.paramName, + paramData: { + [from['name']]: from['value'], + }, + }) + ); } // 无请求提示 if (reqArr.length === 0) { diff --git a/src/views/ne/neConfig/index.vue b/src/views/ne/neConfig/index.vue index 42abcf29..224a2012 100644 --- a/src/views/ne/neConfig/index.vue +++ b/src/views/ne/neConfig/index.vue @@ -1,20 +1,11 @@