同时获取45G基站信息
This commit is contained in:
@@ -171,7 +171,7 @@ onMounted(() => {
|
|||||||
<div class="detailsLeft">
|
<div class="detailsLeft">
|
||||||
<div
|
<div
|
||||||
class="number"
|
class="number"
|
||||||
@click="fnToRouter('Base5G_2160', { neType: 'AMF' })"
|
@click="fnToRouter('Base5G_2160', { neType: '5g' })"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
:src="svgBasefff"
|
:src="svgBasefff"
|
||||||
@@ -184,7 +184,7 @@ onMounted(() => {
|
|||||||
<div class="details">
|
<div class="details">
|
||||||
<div
|
<div
|
||||||
class="number"
|
class="number"
|
||||||
@click="fnToRouter('Base5G_2160', { neType: 'AMF' })"
|
@click="fnToRouter('Base5G_2160', { neType: '5g' })"
|
||||||
>
|
>
|
||||||
<UserOutlined class="spaceButton" />
|
<UserOutlined class="spaceButton" />
|
||||||
{{ skimState.gnbUeNum }}
|
{{ skimState.gnbUeNum }}
|
||||||
@@ -209,7 +209,7 @@ onMounted(() => {
|
|||||||
<div class="detailsLeft">
|
<div class="detailsLeft">
|
||||||
<div
|
<div
|
||||||
class="number"
|
class="number"
|
||||||
@click="fnToRouter('Base5G_2160', { neType: 'MME' })"
|
@click="fnToRouter('Base5G_2160', { neType: '4g' })"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
:src="svgBasefff"
|
:src="svgBasefff"
|
||||||
@@ -222,7 +222,7 @@ onMounted(() => {
|
|||||||
<div class="details">
|
<div class="details">
|
||||||
<div
|
<div
|
||||||
class="number"
|
class="number"
|
||||||
@click="fnToRouter('Base5G_2160', { neType: 'MME' })"
|
@click="fnToRouter('Base5G_2160', { neType: '4g' })"
|
||||||
>
|
>
|
||||||
<UserOutlined class="spaceButton" /> {{ skimState.enbUeNum }}
|
<UserOutlined class="spaceButton" /> {{ skimState.enbUeNum }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import useNeInfoStore from '@/store/modules/neinfo';
|
|||||||
import { useRoute } from 'vue-router';
|
import { useRoute } from 'vue-router';
|
||||||
import { ColumnsType } from 'ant-design-vue/lib/table';
|
import { ColumnsType } from 'ant-design-vue/lib/table';
|
||||||
import TableColumnsDnd from '@/components/TableColumnsDnd/index.vue';
|
import TableColumnsDnd from '@/components/TableColumnsDnd/index.vue';
|
||||||
import useUserStore from '@/store/modules/user';
|
|
||||||
const neInfoStore = useNeInfoStore();
|
const neInfoStore = useNeInfoStore();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
@@ -19,8 +18,12 @@ const { t } = useI18n();
|
|||||||
/**网元参数 */
|
/**网元参数 */
|
||||||
let neCascaderOptions = ref<Record<string, any>[]>([]);
|
let neCascaderOptions = ref<Record<string, any>[]>([]);
|
||||||
|
|
||||||
|
let promises = ref<any[]>([]);
|
||||||
|
|
||||||
/**查询参数 */
|
/**查询参数 */
|
||||||
let queryParams = reactive({
|
let queryParams = reactive({
|
||||||
|
/**45G类型 */
|
||||||
|
totalType: '',
|
||||||
/**网元ID */
|
/**网元ID */
|
||||||
neId: '',
|
neId: '',
|
||||||
/**网元类型 */
|
/**网元类型 */
|
||||||
@@ -46,7 +49,7 @@ function fnQueryReset() {
|
|||||||
});
|
});
|
||||||
tablePagination.current = 1;
|
tablePagination.current = 1;
|
||||||
tablePagination.pageSize = 20;
|
tablePagination.pageSize = 20;
|
||||||
fnGetList();
|
fnGet45GList();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**表格状态类型 */
|
/**表格状态类型 */
|
||||||
@@ -136,7 +139,7 @@ let tablePagination = reactive({
|
|||||||
tablePagination.pageSize = pageSize;
|
tablePagination.pageSize = pageSize;
|
||||||
queryParams.pageNum = page;
|
queryParams.pageNum = page;
|
||||||
queryParams.pageSize = pageSize;
|
queryParams.pageSize = pageSize;
|
||||||
fnGetList();
|
fnGet45GList();
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -186,6 +189,85 @@ function fnGetList(pageNum?: number) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**查询4G或者5G及45G列表, pageNum初始页数 */
|
||||||
|
function fnGet45GList(pageNum?: number) {
|
||||||
|
if (tableState.loading) return;
|
||||||
|
tableState.loading = true;
|
||||||
|
if (pageNum) {
|
||||||
|
queryParams.pageNum = pageNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
const typeArr: any = [];
|
||||||
|
const typeMapping: any = {
|
||||||
|
'4g': ['MME'],
|
||||||
|
'5g': ['AMF'],
|
||||||
|
'45g': ['AMF', 'MME'],
|
||||||
|
};
|
||||||
|
|
||||||
|
typeArr.value = typeMapping[queryParams.totalType] || ['AMF', 'MME'];
|
||||||
|
|
||||||
|
neCascaderOptions.value = neInfoStore.getNeCascaderOptions.filter(
|
||||||
|
(item: any) => {
|
||||||
|
return typeArr.value.includes(item.value);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
if (neCascaderOptions.value.length === 0) {
|
||||||
|
message.warning({
|
||||||
|
content: t('common.noData'),
|
||||||
|
duration: 2,
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
tableState.data = [];
|
||||||
|
promises.value = [];
|
||||||
|
|
||||||
|
//同时获取45G基站信息 且在每条信息中添加45G字段(原始数据没有) 已经筛选后的
|
||||||
|
neCascaderOptions.value.map((item: any) => {
|
||||||
|
item.children.forEach((child: any) => {
|
||||||
|
promises.value.push(
|
||||||
|
listBase5G({
|
||||||
|
neId: child.neId,
|
||||||
|
neType: child.neType,
|
||||||
|
nbId: queryParams.id,
|
||||||
|
tenantName: queryParams.tenantName,
|
||||||
|
pageNum: queryParams.pageNum,
|
||||||
|
pageSize: 10000,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
Promise.allSettled(promises.value).then(results => {
|
||||||
|
results.forEach(result => {
|
||||||
|
if (result.status === 'fulfilled') {
|
||||||
|
const allBaseData = result.value;
|
||||||
|
if (
|
||||||
|
allBaseData.code === RESULT_CODE_SUCCESS &&
|
||||||
|
Array.isArray(allBaseData.rows)
|
||||||
|
) {
|
||||||
|
// 处理成功结果
|
||||||
|
tablePagination.total += allBaseData.total;
|
||||||
|
tableState.data = [...tableState.data, ...allBaseData.rows];
|
||||||
|
if (
|
||||||
|
tablePagination.total <=
|
||||||
|
(queryParams.pageNum - 1) * tablePagination.pageSize &&
|
||||||
|
queryParams.pageNum !== 1
|
||||||
|
) {
|
||||||
|
tableState.loading = false;
|
||||||
|
fnGet45GList(queryParams.pageNum - 1);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//AMF返回404是代表没找到这个数据 GNB_NOT_FOUND
|
||||||
|
tablePagination.total = 0;
|
||||||
|
tableState.data = [];
|
||||||
|
}
|
||||||
|
tableState.loading = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// 获取网元网元列表
|
// 获取网元网元列表
|
||||||
neInfoStore
|
neInfoStore
|
||||||
@@ -193,31 +275,8 @@ onMounted(() => {
|
|||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.code === RESULT_CODE_SUCCESS && Array.isArray(res.data)) {
|
if (res.code === RESULT_CODE_SUCCESS && Array.isArray(res.data)) {
|
||||||
if (res.data.length > 0) {
|
if (res.data.length > 0) {
|
||||||
// 过滤不可用的网元
|
// 无查询参数neType时 默认选择AMF 监控页跳转时
|
||||||
neCascaderOptions.value = neInfoStore.getNeCascaderOptions.filter(
|
queryParams.totalType = (route.query.neType as string) || '45g';
|
||||||
(item: any) => {
|
|
||||||
return ['AMF', 'MME'].includes(item.value);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
if (neCascaderOptions.value.length === 0) {
|
|
||||||
message.warning({
|
|
||||||
content: t('common.noData'),
|
|
||||||
duration: 2,
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// 无查询参数neType时 默认选择AMF
|
|
||||||
const queryNeType = (route.query.neType as string) || 'AMF';
|
|
||||||
const item = neCascaderOptions.value.find(
|
|
||||||
s => s.value === queryNeType
|
|
||||||
);
|
|
||||||
if (item && item.children) {
|
|
||||||
const info = item.children[0];
|
|
||||||
queryParams.neType = [info.neType, info.neId];
|
|
||||||
} else {
|
|
||||||
const info = neCascaderOptions.value[0].children[0];
|
|
||||||
queryParams.neType = [info.neType, info.neId];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
message.warning({
|
message.warning({
|
||||||
@@ -227,16 +286,9 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
if (useUserStore().roles.includes('tenant')) {
|
|
||||||
const operateColumnIndex = tableColumns.findIndex(
|
|
||||||
(column: any) => column.key === 'tenantName'
|
|
||||||
);
|
|
||||||
if (operateColumnIndex !== -1) {
|
|
||||||
tableColumns.splice(operateColumnIndex, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 获取列表数据
|
// 获取列表数据
|
||||||
fnGetList();
|
// fnGetList();
|
||||||
|
fnGet45GList();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@@ -253,9 +305,13 @@ onMounted(() => {
|
|||||||
<a-row :gutter="16">
|
<a-row :gutter="16">
|
||||||
<a-col :lg="6" :md="12" :xs="24">
|
<a-col :lg="6" :md="12" :xs="24">
|
||||||
<a-form-item name="neId" :label="t('views.neUser.base5G.neType')">
|
<a-form-item name="neId" :label="t('views.neUser.base5G.neType')">
|
||||||
<a-cascader
|
<a-select
|
||||||
v-model:value="queryParams.neType"
|
v-model:value="queryParams.totalType"
|
||||||
:options="neCascaderOptions"
|
:options="[
|
||||||
|
{ label: '4G', value: '4g' },
|
||||||
|
{ label: '5G', value: '5g' },
|
||||||
|
{ label: '45G', value: '45g' },
|
||||||
|
]"
|
||||||
:allow-clear="false"
|
:allow-clear="false"
|
||||||
:placeholder="t('common.selectPlease')"
|
:placeholder="t('common.selectPlease')"
|
||||||
/>
|
/>
|
||||||
@@ -286,7 +342,7 @@ onMounted(() => {
|
|||||||
<a-col :lg="6" :md="12" :xs="24">
|
<a-col :lg="6" :md="12" :xs="24">
|
||||||
<a-form-item>
|
<a-form-item>
|
||||||
<a-space :size="8">
|
<a-space :size="8">
|
||||||
<a-button type="primary" @click.prevent="fnGetList(1)">
|
<a-button type="primary" @click.prevent="fnGet45GList(1)">
|
||||||
<template #icon><SearchOutlined /></template>
|
<template #icon><SearchOutlined /></template>
|
||||||
{{ t('common.search') }}
|
{{ t('common.search') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
@@ -319,7 +375,7 @@ onMounted(() => {
|
|||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template #title>{{ t('common.reloadText') }}</template>
|
<template #title>{{ t('common.reloadText') }}</template>
|
||||||
<a-button type="text" @click.prevent="fnGetList()">
|
<a-button type="text" @click.prevent="fnGet45GList()">
|
||||||
<template #icon><ReloadOutlined /></template>
|
<template #icon><ReloadOutlined /></template>
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import useNeInfoStore from '@/store/modules/neinfo';
|
|||||||
import { useRoute } from 'vue-router';
|
import { useRoute } from 'vue-router';
|
||||||
import { ColumnsType } from 'ant-design-vue/lib/table';
|
import { ColumnsType } from 'ant-design-vue/lib/table';
|
||||||
import TableColumnsDnd from '@/components/TableColumnsDnd/index.vue';
|
import TableColumnsDnd from '@/components/TableColumnsDnd/index.vue';
|
||||||
import useUserStore from '@/store/modules/user';
|
|
||||||
const neInfoStore = useNeInfoStore();
|
const neInfoStore = useNeInfoStore();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
@@ -19,8 +18,12 @@ const { t } = useI18n();
|
|||||||
/**网元参数 */
|
/**网元参数 */
|
||||||
let neCascaderOptions = ref<Record<string, any>[]>([]);
|
let neCascaderOptions = ref<Record<string, any>[]>([]);
|
||||||
|
|
||||||
|
let promises = ref<any[]>([]);
|
||||||
|
|
||||||
/**查询参数 */
|
/**查询参数 */
|
||||||
let queryParams = reactive({
|
let queryParams = reactive({
|
||||||
|
/**45G类型 */
|
||||||
|
totalType: '',
|
||||||
/**网元ID */
|
/**网元ID */
|
||||||
neId: '',
|
neId: '',
|
||||||
/**网元类型 */
|
/**网元类型 */
|
||||||
@@ -43,7 +46,7 @@ function fnQueryReset() {
|
|||||||
});
|
});
|
||||||
tablePagination.current = 1;
|
tablePagination.current = 1;
|
||||||
tablePagination.pageSize = 20;
|
tablePagination.pageSize = 20;
|
||||||
fnGetList();
|
fnGet45GList();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**表格状态类型 */
|
/**表格状态类型 */
|
||||||
@@ -126,7 +129,7 @@ let tablePagination = reactive({
|
|||||||
tablePagination.pageSize = pageSize;
|
tablePagination.pageSize = pageSize;
|
||||||
queryParams.pageNum = page;
|
queryParams.pageNum = page;
|
||||||
queryParams.pageSize = pageSize;
|
queryParams.pageSize = pageSize;
|
||||||
fnGetList();
|
fnGet45GList();
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -175,6 +178,84 @@ function fnGetList(pageNum?: number) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**查询4G或者5G及45G列表, pageNum初始页数 */
|
||||||
|
function fnGet45GList(pageNum?: number) {
|
||||||
|
if (tableState.loading) return;
|
||||||
|
tableState.loading = true;
|
||||||
|
if (pageNum) {
|
||||||
|
queryParams.pageNum = pageNum;
|
||||||
|
}
|
||||||
|
|
||||||
|
const typeArr: any = [];
|
||||||
|
const typeMapping: any = {
|
||||||
|
'4g': ['MME'],
|
||||||
|
'5g': ['AMF'],
|
||||||
|
'45g': ['AMF', 'MME'],
|
||||||
|
};
|
||||||
|
|
||||||
|
typeArr.value = typeMapping[queryParams.totalType] || ['AMF', 'MME'];
|
||||||
|
|
||||||
|
neCascaderOptions.value = neInfoStore.getNeCascaderOptions.filter(
|
||||||
|
(item: any) => {
|
||||||
|
return typeArr.value.includes(item.value);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
if (neCascaderOptions.value.length === 0) {
|
||||||
|
message.warning({
|
||||||
|
content: t('common.noData'),
|
||||||
|
duration: 2,
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
tableState.data = [];
|
||||||
|
promises.value = [];
|
||||||
|
|
||||||
|
//同时获取45G基站信息 且在每条信息中添加45G字段(原始数据没有) 已经筛选后的
|
||||||
|
neCascaderOptions.value.map((item: any) => {
|
||||||
|
item.children.forEach((child: any) => {
|
||||||
|
promises.value.push(
|
||||||
|
listBase5G({
|
||||||
|
neId: child.neId,
|
||||||
|
neType: child.neType,
|
||||||
|
nbId: queryParams.id,
|
||||||
|
pageNum: queryParams.pageNum,
|
||||||
|
pageSize: 10000,
|
||||||
|
})
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
Promise.allSettled(promises.value).then(results => {
|
||||||
|
results.forEach(result => {
|
||||||
|
if (result.status === 'fulfilled') {
|
||||||
|
const allBaseData = result.value;
|
||||||
|
if (
|
||||||
|
allBaseData.code === RESULT_CODE_SUCCESS &&
|
||||||
|
Array.isArray(allBaseData.rows)
|
||||||
|
) {
|
||||||
|
// 处理成功结果
|
||||||
|
tablePagination.total += allBaseData.total;
|
||||||
|
tableState.data = [...tableState.data, ...allBaseData.rows];
|
||||||
|
if (
|
||||||
|
tablePagination.total <=
|
||||||
|
(queryParams.pageNum - 1) * tablePagination.pageSize &&
|
||||||
|
queryParams.pageNum !== 1
|
||||||
|
) {
|
||||||
|
tableState.loading = false;
|
||||||
|
fnGet45GList(queryParams.pageNum - 1);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//AMF返回404是代表没找到这个数据 GNB_NOT_FOUND
|
||||||
|
tablePagination.total = 0;
|
||||||
|
tableState.data = [];
|
||||||
|
}
|
||||||
|
tableState.loading = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// 获取网元网元列表
|
// 获取网元网元列表
|
||||||
neInfoStore
|
neInfoStore
|
||||||
@@ -182,31 +263,8 @@ onMounted(() => {
|
|||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.code === RESULT_CODE_SUCCESS && Array.isArray(res.data)) {
|
if (res.code === RESULT_CODE_SUCCESS && Array.isArray(res.data)) {
|
||||||
if (res.data.length > 0) {
|
if (res.data.length > 0) {
|
||||||
// 过滤不可用的网元
|
// 无查询参数neType时 默认选择AMF 监控页跳转时
|
||||||
neCascaderOptions.value = neInfoStore.getNeCascaderOptions.filter(
|
queryParams.totalType = (route.query.neType as string) || '45g';
|
||||||
(item: any) => {
|
|
||||||
return ['AMF', 'MME'].includes(item.value);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
if (neCascaderOptions.value.length === 0) {
|
|
||||||
message.warning({
|
|
||||||
content: t('common.noData'),
|
|
||||||
duration: 2,
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// 无查询参数neType时 默认选择AMF
|
|
||||||
const queryNeType = (route.query.neType as string) || 'AMF';
|
|
||||||
const item = neCascaderOptions.value.find(
|
|
||||||
s => s.value === queryNeType
|
|
||||||
);
|
|
||||||
if (item && item.children) {
|
|
||||||
const info = item.children[0];
|
|
||||||
queryParams.neType = [info.neType, info.neId];
|
|
||||||
} else {
|
|
||||||
const info = neCascaderOptions.value[0].children[0];
|
|
||||||
queryParams.neType = [info.neType, info.neId];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
message.warning({
|
message.warning({
|
||||||
@@ -217,7 +275,8 @@ onMounted(() => {
|
|||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
// 获取列表数据
|
// 获取列表数据
|
||||||
fnGetList();
|
// fnGetList();
|
||||||
|
fnGet45GList();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@@ -234,9 +293,13 @@ onMounted(() => {
|
|||||||
<a-row :gutter="16">
|
<a-row :gutter="16">
|
||||||
<a-col :lg="6" :md="12" :xs="24">
|
<a-col :lg="6" :md="12" :xs="24">
|
||||||
<a-form-item name="neId" :label="t('views.neUser.base5G.neType')">
|
<a-form-item name="neId" :label="t('views.neUser.base5G.neType')">
|
||||||
<a-cascader
|
<a-select
|
||||||
v-model:value="queryParams.neType"
|
v-model:value="queryParams.totalType"
|
||||||
:options="neCascaderOptions"
|
:options="[
|
||||||
|
{ label: '4G', value: '4g' },
|
||||||
|
{ label: '5G', value: '5g' },
|
||||||
|
{ label: '45G', value: '45g' },
|
||||||
|
]"
|
||||||
:allow-clear="false"
|
:allow-clear="false"
|
||||||
:placeholder="t('common.selectPlease')"
|
:placeholder="t('common.selectPlease')"
|
||||||
/>
|
/>
|
||||||
@@ -251,7 +314,7 @@ onMounted(() => {
|
|||||||
<a-col :lg="6" :md="12" :xs="24">
|
<a-col :lg="6" :md="12" :xs="24">
|
||||||
<a-form-item>
|
<a-form-item>
|
||||||
<a-space :size="8">
|
<a-space :size="8">
|
||||||
<a-button type="primary" @click.prevent="fnGetList(1)">
|
<a-button type="primary" @click.prevent="fnGet45GList(1)">
|
||||||
<template #icon><SearchOutlined /></template>
|
<template #icon><SearchOutlined /></template>
|
||||||
{{ t('common.search') }}
|
{{ t('common.search') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
@@ -284,7 +347,7 @@ onMounted(() => {
|
|||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
<a-tooltip>
|
<a-tooltip>
|
||||||
<template #title>{{ t('common.reloadText') }}</template>
|
<template #title>{{ t('common.reloadText') }}</template>
|
||||||
<a-button type="text" @click.prevent="fnGetList()">
|
<a-button type="text" @click.prevent="fnGet45GList()">
|
||||||
<template #icon><ReloadOutlined /></template>
|
<template #icon><ReloadOutlined /></template>
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
|
|||||||
Reference in New Issue
Block a user