import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; import { request } from '@/plugins/http-fetch'; /** * 网元参数配置可用属性值列表指定网元类型全部无分页 * @param query 查询参数 * @returns object */ export function getAllNeConfig(neType: string, neId: string) { return request({ url: `/ne/config/list/${neType}`, method: 'GET', params: { neId }, timeout: 60_000, }); } /** * 网元参数配置数据信息 * @param params 数据 {neType,neId,paramName} * @returns object */ export function getNeConfigData(params: Record) { return request({ url: `/ne/config/data`, params, method: 'GET', }); } /** * 网元参数配置数据更新 * @param data 数据 {neType,neId,paramName:"参数名",paramData:{参数},loc:"层级index仅array"} * @returns object */ export function editNeConfigData(data: Record) { return request({ url: `/ne/config/data`, method: 'PUT', data: data, }); } /** * 网元参数配置数据新增(array) * @param data 数据 {neType,neId,paramName:"参数名",paramData:{参数},loc:"层级index"} * @returns object */ export function addNeConfigData(data: Record) { return request({ url: `/ne/config/data`, method: 'POST', data: data, }); } /** * 网元参数配置数据删除(array) * @param params 数据 {neType,neId,paramName:"参数名",loc:"层级index"} * @returns object */ export function delNeConfigData(params: Record) { return request({ url: `/ne/config/data`, method: 'DELETE', params, }); } /** * 从参数配置PCF中获取对应信息提供给PCF用户策略输入框 * @param neId * @returns object {pccRules,sessionRules,qosTemplate,headerEnrichTemplate,serviceAreaRestriction} */ export async function getPCFRule(neId: any) { 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 => { // 规则数据 const obj: any = {}; resArr.forEach((item, i: number) => { if (item.status === 'fulfilled') { const res = item.value; if (res.code === RESULT_CODE_SUCCESS) { 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 }; }); } } }); return obj; }); }