From 936a4410b3da43d759402089fca0d7acc5c5b7f6 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Sat, 12 Oct 2024 19:10:04 +0800 Subject: [PATCH] =?UTF-8?q?del:=20=E5=88=A0=E9=99=A4=E6=97=A7=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E9=85=8D=E7=BD=AE=E9=A1=B5=E9=9D=A2=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/configManage/configParam.ts | 476 +---- .../configParamTreeTable/hooks/useOptions.ts | 165 -- .../hooks/useSMFOptions.ts | 22 - .../configParamTreeTable/index.vue | 1583 ----------------- 4 files changed, 39 insertions(+), 2207 deletions(-) delete mode 100644 src/views/configManage/configParamTreeTable/hooks/useOptions.ts delete mode 100644 src/views/configManage/configParamTreeTable/hooks/useSMFOptions.ts delete mode 100644 src/views/configManage/configParamTreeTable/index.vue diff --git a/src/api/configManage/configParam.ts b/src/api/configManage/configParam.ts index fd29a4b1..52c669e7 100644 --- a/src/api/configManage/configParam.ts +++ b/src/api/configManage/configParam.ts @@ -2,315 +2,8 @@ import { RESULT_CODE_ERROR, RESULT_CODE_SUCCESS, RESULT_MSG_ERROR, - RESULT_MSG_SUCCESS, } from '@/constants/result-constants'; import { language, request } from '@/plugins/http-fetch'; -import { parseObjLineToHump } from '@/utils/parse-utils'; - -/** - * 查询配置参数标签栏 - * @param neType 网元类型 - * @returns object - */ -export async function getParamConfigTopTab(neType: string) { - // 发起请求 - const result = await request({ - url: `/api/rest/databaseManagement/v1/elementType/omc_db/objectType/param_config`, - method: 'get', - params: { - SQL: `SELECT id,top_display,top_tag,method FROM param_config WHERE ne_type = '${neType}' ORDER BY id ASC`, - }, - }); - // 解析数据 - if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) { - let data = result.data.data[0]; - data = data['param_config']; - if (Array.isArray(data)) { - return Object.assign(result, { - data: parseObjLineToHump(data), - }); - } - return Object.assign(result, { - data: [], - }); - } - return result; -} - -/** - * 查询配置参数标签栏对应信息和规则 - * @param neType 网元类型 - * @param topTag - * @param neId - * @returns object { wrRule, dataArr } - */ -async function getParamConfigInfoAndRule( - neType: string, - topTag: string, - neId: string -) { - return await Promise.allSettled([ - // 获取参数规则 - request({ - url: `/api/rest/databaseManagement/v1/elementType/omc_db/objectType/param_config`, - method: 'get', - params: { - SQL: `SELECT param_json FROM param_config WHERE ne_type = '${neType}' AND top_tag='${topTag}'`, - }, - }), - // 获取对应信息 - request({ - url: `/api/rest/systemManagement/v1/elementType/${neType.toLowerCase()}/objectType/config/${topTag}`, - method: 'get', - params: { - ne_id: neId, - }, - }), - ]).then(resArr => { - let wrRule: Record = {}; - // 规则数据 - if (resArr[0].status === 'fulfilled') { - const itemV = resArr[0].value; - // 解析数据 - if ( - itemV.code === RESULT_CODE_SUCCESS && - Array.isArray(itemV.data?.data) - ) { - let itemData = itemV.data.data; - const data = itemData[0]['param_config']; - if (Array.isArray(data)) { - const v = data[0]['param_json']; - try { - itemData = parseObjLineToHump(JSON.parse(v)); - wrRule = itemData; - } catch (error) { - console.error(error); - } - } - } - } - let dataArr: Record[] = []; - // 对应信息 - if (resArr[1].status === 'fulfilled') { - const itemV = resArr[1].value; - // 解析数据 - if ( - itemV.code === RESULT_CODE_SUCCESS && - Array.isArray(itemV.data?.data) - ) { - let itemData = itemV.data.data; - dataArr = parseObjLineToHump(itemData); - } - } - return { wrRule, dataArr }; - }); -} - -/** - * 查询配置参数标签栏对应信息-表单结构处理 - * @param neType 网元类型 - * @param topTag - * @param neId - * @returns object - */ -export async function getParamConfigInfoForm( - neType: string, - topTag: string, - neId: string -) { - const { wrRule, dataArr } = await getParamConfigInfoAndRule( - neType, - topTag, - neId - ); - - // 拼装数据 - const result = { - code: RESULT_CODE_SUCCESS, - msg: RESULT_MSG_SUCCESS, - data: { - type: 'list' as 'list' | 'array', - data: [] as Record[], - dataRule: {}, - }, - }; - - // kv单列表 - if (Reflect.has(wrRule, 'list')) { - result.data.type = 'list'; - const ruleArr = Object.freeze(wrRule['list']); - - // 列表项数据 - const dataList = []; - for (const item of dataArr) { - for (const key in item) { - // 规则为准 - for (const rule of ruleArr) { - if (rule['name'] === key) { - const ruleItem = Object.assign({ optional: 'true' }, rule, { - value: item[key], - }); - dataList.push(ruleItem); - break; - } - } - } - } - result.data.data = dataList; - } - // 多列表 - if (Reflect.has(wrRule, 'array')) { - result.data.type = 'array'; - const ruleArr = Object.freeze(wrRule['array']); - // 列表项数据 - const dataArray = []; - for (const item of dataArr) { - const index = item['index']; - let record: Record[] = []; - for (const key in item) { - // 规则为准 - for (const rule of ruleArr) { - if (rule['name'] === key) { - const ruleItem = Object.assign({ optional: 'true' }, rule, { - value: item[key], - }); - record.push(ruleItem); - break; - } - } - } - dataArray.push({ title: `Index-${index}`, key: index, record }); - } - result.data.data = dataArray; - - // 无数据时,用于新增 - result.data.dataRule = { title: `Index-0`, key: 0, record: ruleArr }; - } - return result; -} - -/** - * 查询配置参数标签栏对应信息 - * @param neType 网元类型 - * @param topTag - * @param neId - * @returns object - */ -export async function getParamConfigInfo( - neType: string, - topTag: string, - neId: string -) { - // 发起请求 - const result = await request({ - url: `/api/rest/systemManagement/v1/elementType/${neType.toLowerCase()}/objectType/config/${topTag}`, - method: 'get', - params: { - ne_id: neId, - }, - }); - // 解析数据 - if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) { - return Object.assign(result, { - data: parseObjLineToHump(result.data.data), - }); - } - return result; -} - -/** - * 查询配置参数标签栏对应信息子节点 - * @param neType 网元类型 - * @param topTag - * @param neId - * @param loc 子节点(index/字段) 1/dnnList - * @returns - */ -export async function getParamConfigInfoChild( - neType: string, - topTag: string, - neId: string, - loc: string -) { - // 发起请求 - const result = await request({ - url: `/api/rest/systemManagement/v1/elementType/${neType.toLowerCase()}/objectType/config/${topTag}`, - method: 'get', - params: { - ne_id: neId, - loc: loc, - }, - }); - // 解析数据 - if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) { - return Object.assign(result, { - data: parseObjLineToHump(result.data.data), - }); - } - return result; -} - -/** - * 修改配置参数标签栏对应信息 - * @param args 对象 {neType,neId,topTag,loc} - * @param data 对象 {修改的数据kv} - * @returns object - */ -export function updateParamConfigInfo( - type: 'list' | 'array', - args: Record, - data: Record -) { - let url = `/api/rest/systemManagement/v1/elementType/${args.neType.toLowerCase()}/objectType/config/${ - args.topTag - }?ne_id=${args.neId}`; - - // 多列表需要loc - if (type === 'array') { - url += `&loc=${args.loc}`; - } - - return request({ - url, - method: 'put', - data: data, - }); -} - -/** - * 新增配置参数标签栏对应信息 - * @param args 对象 {neType,neId,topTag,loc} - * @param data 行记录对象 - * @returns object - */ -export function addParamConfigInfo( - args: Record, - data: Record -) { - return request({ - url: `/api/rest/systemManagement/v1/elementType/${args.neType.toLowerCase()}/objectType/config/${ - args.topTag - }?ne_id=${args.neId}&loc=${args.loc}`, - method: 'post', - data: data, - }); -} - -/** - * 删除配置参数标签栏对应信息 - * @param args 对象 {neType,neId,topTag,loc} - * loc 多层表的定位信息{index0}/{paraName1}/{index1} - * @param data 行记录对象 - * @returns object - */ -export function delParamConfigInfo(args: Record) { - return request({ - url: `/api/rest/systemManagement/v1/elementType/${args.neType.toLowerCase()}/objectType/config/${ - args.topTag - }?ne_id=${args.neId}&loc=${args.loc}`, - method: 'delete', - }); -} /** * 更新网元配置重新载入 @@ -343,141 +36,50 @@ export async function updateNeConfigReload(neType: string, neId: string) { /** * 从参数配置PCF中获取对应信息提供给PCC用户策略输入框 - * @param neType 网元类型 - * @param topTag * @param neId - * @returns object { wrRule, dataArr } + * @returns object {pccRules,sessionRules,qosTemplate,headerEnrichTemplate,serviceAreaRestriction} */ export async function getPCCRule(neId: any) { - return await Promise.allSettled([ - // 获取参数规则 - request({ - url: `/api/rest/systemManagement/v1/elementType/pcf/objectType/config/pccRules`, - method: 'get', - params: { - ne_id: neId, - }, - timeout: 1_000, - }), - // 获取对应信息 - request({ - url: `/api/rest/systemManagement/v1/elementType/pcf/objectType/config/sessionRules`, - method: 'get', - params: { - ne_id: neId, - }, - timeout: 1_000, - }), - request({ - url: `/api/rest/systemManagement/v1/elementType/pcf/objectType/config/qosTemplate`, - method: 'get', - params: { - ne_id: neId, - }, - timeout: 1_000, - }), - request({ - url: `/api/rest/systemManagement/v1/elementType/pcf/objectType/config/headerEnrichTemplate`, - method: 'get', - params: { - ne_id: neId, - }, - timeout: 1_000, - }), - request({ - url: `/api/rest/systemManagement/v1/elementType/pcf/objectType/config/serviceAreaRestriction`, - method: 'get', - params: { - ne_id: neId, - }, - timeout: 1_000, - }), - ]).then(resArr => { - let pccJson: any = new Map(); - let sessJson: any = new Map(); - let qosJson: any = new Map(); - let headerJson: any = new Map(); - let sarJson: any = new Map(); + const paramNameArr = [ + 'pccRules', + 'sessionRules', + 'qosTemplate', + 'headerEnrichTemplate', + 'serviceAreaRestriction', + ]; + const reqArr = []; + for (const paramName of paramNameArr) { + reqArr.push( + request({ + url: `/ne/config/data`, + params: { neType: 'PCF', neId, paramName }, + method: 'get', + }) + ); + } + return await Promise.allSettled(reqArr).then(resArr => { // 规则数据 - if (resArr[0].status === 'fulfilled') { - const itemV = resArr[0].value; - // 解析数据 - if ( - itemV.code === RESULT_CODE_SUCCESS && - Array.isArray(itemV.data?.data) - ) { - let itemData = itemV.data.data; - itemData.forEach((item: any) => { - pccJson.set(item.ruleId, { value: item.ruleId, label: item.ruleId }); - }); - } - } - - if (resArr[1].status === 'fulfilled') { - const itemV = resArr[1].value; - // 解析数据 - if ( - itemV.code === RESULT_CODE_SUCCESS && - Array.isArray(itemV.data?.data) - ) { - let itemData = itemV.data.data; - itemData.forEach((item: any) => { - sessJson.set(item.ruleId, { value: item.ruleId, label: item.ruleId }); - }); - } - } - - if (resArr[2].status === 'fulfilled') { - const itemV = resArr[2].value; - // 解析数据 - if ( - itemV.code === RESULT_CODE_SUCCESS && - Array.isArray(itemV.data?.data) - ) { - let itemData = itemV.data.data; - itemData.forEach((item: any) => { - qosJson.set(item.qosId, { value: item.qosId, label: item.qosId }); - }); - } - } - - if (resArr[3].status === 'fulfilled') { - const itemV = resArr[3].value; - // 解析数据 - if ( - itemV.code === RESULT_CODE_SUCCESS && - Array.isArray(itemV.data?.data) - ) { - let itemData = itemV.data.data; - itemData.forEach((item: any) => { - headerJson.set(item.templateName, { - value: item.templateName, - label: item.templateName, + const obj: any = {}; + resArr.forEach((item, i: number) => { + if (item.status === 'fulfilled') { + const res = item.value; + if (res.code === RESULT_CODE_SUCCESS && Array.isArray(res.data)) { + const key = paramNameArr[i]; + obj[key] = res.data.map((item: any) => { + if ('qosTemplate' === key) { + return { value: item.qosId, label: item.qosId }; + } + if ('headerEnrichTemplate' === key) { + return { value: item.templateName, label: item.templateName }; + } + if ('serviceAreaRestriction' === key) { + return { value: item.name, label: item.name }; + } + return { value: item.ruleId, label: item.ruleId }; }); - }); + } } - } - - if (resArr[4].status === 'fulfilled') { - const itemV = resArr[4].value; - // 解析数据 - if ( - itemV.code === RESULT_CODE_SUCCESS && - Array.isArray(itemV.data?.data) - ) { - let itemData = itemV.data.data; - itemData.forEach((item: any) => { - sarJson.set(item.name, { value: item.name, label: item.name }); - }); - } - } - - pccJson = Array.from(pccJson.values()); - sessJson = Array.from(sessJson.values()); - qosJson = Array.from(qosJson.values()); - headerJson = Array.from(headerJson.values()); - sarJson = Array.from(sarJson.values()); - - return { pccJson, sessJson, qosJson, headerJson, sarJson }; + }); + return obj; }); } diff --git a/src/views/configManage/configParamTreeTable/hooks/useOptions.ts b/src/views/configManage/configParamTreeTable/hooks/useOptions.ts deleted file mode 100644 index 3c5fce98..00000000 --- a/src/views/configManage/configParamTreeTable/hooks/useOptions.ts +++ /dev/null @@ -1,165 +0,0 @@ -import useI18n from '@/hooks/useI18n'; -import { regExpIPv4, regExpIPv6, validURL } from '@/utils/regular-utils'; - -export default function useOptions() { - const { t } = useI18n(); - - /**规则校验 */ - function ruleVerification(row: Record): (string | boolean)[] { - let result = [true, '']; - const type = row.type; - const value = row.value; - const filter = row.filter; - const display = row.display; - - // 子嵌套的不检查 - if (row.array) { - return result; - } - - // 可选的同时没有值不检查 - if (row.optional === 'true' && !value) { - return result; - } - switch (type) { - case 'int': - // filter: "0~128" - - if (filter && filter.indexOf('~') !== -1) { - const filterArr = filter.split('~'); - const minInt = parseInt(filterArr[0]); - const maxInt = parseInt(filterArr[1]); - const valueInt = parseInt(value); - if (valueInt < minInt || valueInt > maxInt) { - return [ - false, - t('views.configManage.configParamForm.requireInt', { - display, - filter, - }), - ]; - } - } - break; - case 'ipv4': - if (!regExpIPv4.test(value)) { - return [ - false, - t('views.configManage.configParamForm.requireIpv4', { display }), - ]; - } - break; - case 'ipv6': - if (!regExpIPv6.test(value)) { - return [ - false, - t('views.configManage.configParamForm.requireIpv6', { display }), - ]; - } - break; - case 'enum': - if (filter && filter.indexOf('{') === 1) { - let filterJson: Record = {}; - try { - filterJson = JSON.parse(filter); //string---json - } catch (error) { - console.error(error); - } - - if (!Object.keys(filterJson).includes(`${value}`)) { - return [ - false, - t('views.configManage.configParamForm.requireEnum', { display }), - ]; - } - } - break; - case 'bool': - // filter: '{"0":"false", "1":"true"}' - - if (filter && filter.indexOf('{') === 1) { - let filterJson: Record = {}; - try { - filterJson = JSON.parse(filter); //string---json - } catch (error) { - console.error(error); - } - - if (!Object.values(filterJson).includes(`${value}`)) { - return [ - false, - t('views.configManage.configParamForm.requireBool', { display }), - ]; - } - } - break; - case 'string': - // filter: "0~128" - - // 字符串长度判断 - if (filter && filter.indexOf('~') !== -1) { - try { - const filterArr = filter.split('~'); - let rule = new RegExp( - '^\\S{' + filterArr[0] + ',' + filterArr[1] + '}$' - ); - if (!rule.test(value)) { - return [ - false, - t('views.configManage.configParamForm.requireString', { - display, - }), - ]; - } - } catch (error) { - console.error(error); - } - } - // 字符串http判断 - if (value.startsWith('http')) { - try { - if (!validURL(value)) { - return [ - false, - t('views.configManage.configParamForm.requireString', { - display, - }), - ]; - } - } catch (error) { - console.error(error); - } - } - - break; - case 'regex': - // filter: "^[0-9]{3}$" - - if (filter) { - try { - let regex = new RegExp(filter); - if (!regex.test(value)) { - return [ - false, - t('views.configManage.configParamForm.requireString', { - display, - }), - ]; - } - } catch (error) { - console.error(error); - } - } - break; - - default: - return [ - false, - t('views.configManage.configParamForm.requireUn', { display }), - ]; - } - return result; - } - - return { ruleVerification }; -} diff --git a/src/views/configManage/configParamTreeTable/hooks/useSMFOptions.ts b/src/views/configManage/configParamTreeTable/hooks/useSMFOptions.ts deleted file mode 100644 index 2a020cfe..00000000 --- a/src/views/configManage/configParamTreeTable/hooks/useSMFOptions.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { getParamConfigInfo } from '@/api/configManage/configParam'; -import { ref } from 'vue'; - -export default function useSMFOptions() { - /**upfId可选择 */ - const optionsUPFIds = ref<{ value: string; label: string }[]>([]); - - /**初始加载upfId */ - function initUPFIds() { - getParamConfigInfo('smf', 'upfConfig', '001').then(res => { - optionsUPFIds.value = []; - for (const s of res.data) { - optionsUPFIds.value.push({ - value: s.id, - label: s.id, - }); - } - }); - } - - return { initUPFIds, optionsUPFIds }; -} diff --git a/src/views/configManage/configParamTreeTable/index.vue b/src/views/configManage/configParamTreeTable/index.vue deleted file mode 100644 index 7a767392..00000000 --- a/src/views/configManage/configParamTreeTable/index.vue +++ /dev/null @@ -1,1583 +0,0 @@ - - - - -