feat: 网元参数配置smf选择upfId

This commit is contained in:
TsMask
2024-05-30 17:08:55 +08:00
parent 0b7a198235
commit 7714d506c4
3 changed files with 89 additions and 16 deletions

View File

@@ -38,13 +38,13 @@ export async function getParamConfigTopTab(neType: string) {
} }
/** /**
* 查询配置参数标签栏对应信息 * 查询配置参数标签栏对应信息和规则
* @param neType 网元类型 * @param neType 网元类型
* @param topTag * @param topTag
* @param neId * @param neId
* @returns object { wrRule, dataArr } * @returns object { wrRule, dataArr }
*/ */
async function getParamConfigInfo( async function getParamConfigInfoAndRule(
neType: string, neType: string,
topTag: string, topTag: string,
neId: string neId: string
@@ -57,7 +57,6 @@ async function getParamConfigInfo(
params: { params: {
SQL: `SELECT param_json FROM param_config WHERE ne_type = '${neType}' AND top_tag='${topTag}'`, SQL: `SELECT param_json FROM param_config WHERE ne_type = '${neType}' AND top_tag='${topTag}'`,
}, },
timeout: 1_000,
}), }),
// 获取对应信息 // 获取对应信息
request({ request({
@@ -66,7 +65,6 @@ async function getParamConfigInfo(
params: { params: {
ne_id: neId, ne_id: neId,
}, },
timeout: 1_000,
}), }),
]).then(resArr => { ]).then(resArr => {
let wrRule: Record<string, any> = {}; let wrRule: Record<string, any> = {};
@@ -120,7 +118,11 @@ export async function getParamConfigInfoForm(
topTag: string, topTag: string,
neId: string neId: string
) { ) {
const { wrRule, dataArr } = await getParamConfigInfo(neType, topTag, neId); const { wrRule, dataArr } = await getParamConfigInfoAndRule(
neType,
topTag,
neId
);
// 拼装数据 // 拼装数据
const result = { const result = {
@@ -187,6 +189,35 @@ export async function getParamConfigInfoForm(
return result; 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 neType 网元类型

View File

@@ -0,0 +1,22 @@
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 };
}

View File

@@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { reactive, ref, onMounted, watch, toRaw, nextTick } from 'vue'; import { reactive, ref, onMounted, watchEffect, toRaw, nextTick } from 'vue';
import { PageContainer } from 'antdv-pro-layout'; import { PageContainer } from 'antdv-pro-layout';
import { Modal, message } from 'ant-design-vue/lib'; import { Modal, message } from 'ant-design-vue/lib';
import useI18n from '@/hooks/useI18n'; import useI18n from '@/hooks/useI18n';
@@ -14,11 +14,13 @@ import {
} from '@/api/configManage/configParam'; } from '@/api/configManage/configParam';
import useNeInfoStore from '@/store/modules/neinfo'; import useNeInfoStore from '@/store/modules/neinfo';
import useOptions from './hooks/useOptions'; import useOptions from './hooks/useOptions';
import useSMFOptions from './hooks/useSMFOptions';
import { SizeType } from 'ant-design-vue/lib/config-provider'; import { SizeType } from 'ant-design-vue/lib/config-provider';
import { DataNode } from 'ant-design-vue/lib/tree'; import { DataNode } from 'ant-design-vue/lib/tree';
const neInfoStore = useNeInfoStore(); const neInfoStore = useNeInfoStore();
const { t } = useI18n(); const { t } = useI18n();
const { ruleVerification } = useOptions(); const { ruleVerification } = useOptions();
const { initUPFIds, optionsUPFIds } = useSMFOptions();
/**网元参数 */ /**网元参数 */
let neCascaderOptions = ref<Record<string, any>[]>([]); let neCascaderOptions = ref<Record<string, any>[]>([]);
@@ -342,14 +344,6 @@ let arrayState: ArrayStateType = reactive({
dataRule: {}, dataRule: {},
}); });
/**监听表格字段列排序变化关闭展开 */
watch(
() => arrayState.columnsDnd,
() => {
arrayEditClose();
}
);
/**多列表编辑 */ /**多列表编辑 */
function arrayEdit(rowIndex: Record<string, any>) { function arrayEdit(rowIndex: Record<string, any>) {
const item = arrayState.data.find((s: any) => s.key === rowIndex.value); const item = arrayState.data.find((s: any) => s.key === rowIndex.value);
@@ -1015,6 +1009,18 @@ function fnModalCancel() {
modalState.data = []; modalState.data = [];
} }
watchEffect(() => {
// 监听表格字段列排序变化关闭展开
if (arrayState.columnsDnd) {
arrayEditClose();
}
// SMF需要选择配置的UPF id
if (modalState.visible && neTypeSelect.value[0] === 'SMF') {
initUPFIds();
}
});
onMounted(() => { onMounted(() => {
// 获取网元网元列表 // 获取网元网元列表
neInfoStore.fnNelist().then(res => { neInfoStore.fnNelist().then(res => {
@@ -1062,7 +1068,7 @@ onMounted(() => {
:md="6" :md="6"
:xs="24" :xs="24"
style="margin-bottom: 24px" style="margin-bottom: 24px"
v-if="collapsible" v-show="collapsible"
> >
<!-- 网元类型 --> <!-- 网元类型 -->
<a-card <a-card
@@ -1481,8 +1487,22 @@ onMounted(() => {
modalState.from[item.name] !== undefined modalState.from[item.name] !== undefined
" "
> >
<!-- 特殊SMF-upfid选择 -->
<a-select
v-if="
neTypeSelect[0] === 'SMF' &&
modalState.from[item.name]['name'] === 'upfId'
"
v-model:value="modalState.from[item.name]['value']"
:options="optionsUPFIds"
:disabled="['read-only', 'read', 'ro'].includes(item.access)"
:allow-clear="true"
style="width: 100%"
>
</a-select>
<!-- 常规 -->
<a-input-number <a-input-number
v-if="item['type'] === 'int'" v-else-if="item['type'] === 'int'"
v-model:value="modalState.from[item.name]['value']" v-model:value="modalState.from[item.name]['value']"
:disabled="['read-only', 'read', 'ro'].includes(item.access)" :disabled="['read-only', 'read', 'ro'].includes(item.access)"
style="width: 100%" style="width: 100%"