fix: 根据协议列表展示数据采集菜单
This commit is contained in:
parent
1ce92713c1
commit
151ecb9fa7
|
@ -197,6 +197,7 @@ import { FormValidate, FormState } from '../data';
|
||||||
import type { FormInstance } from 'ant-design-vue';
|
import type { FormInstance } from 'ant-design-vue';
|
||||||
import type { FormDataType } from '../type.d';
|
import type { FormDataType } from '../type.d';
|
||||||
import { cloneDeep, isArray } from 'lodash-es';
|
import { cloneDeep, isArray } from 'lodash-es';
|
||||||
|
import { protocolList } from '@/utils/consts';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
data: {
|
data: {
|
||||||
|
@ -281,17 +282,13 @@ const getCertificateList = async () => {
|
||||||
const getProvidersList = async () => {
|
const getProvidersList = async () => {
|
||||||
const resp: any = await getProviders();
|
const resp: any = await getProviders();
|
||||||
if (resp.status === 200) {
|
if (resp.status === 200) {
|
||||||
const list = [
|
|
||||||
{ label: 'OPC UA', value: 'OPC_UA' },
|
|
||||||
{ label: 'Modbus TCP', value: 'MODBUS_TCP' },
|
|
||||||
];
|
|
||||||
const arr = resp.result
|
const arr = resp.result
|
||||||
.filter(
|
.filter(
|
||||||
(item: any) => item.id === 'modbus-tcp' || item.id === 'opc-ua',
|
(item: any) => item.id === 'modbus-tcp' || item.id === 'opc-ua',
|
||||||
)
|
)
|
||||||
.map((it: any) => (it?.id === 'opc-ua' ? 'OPC_UA' : 'MODBUS_TCP'));
|
.map((it: any) => it.id);
|
||||||
const providers: any = list.filter((item: any) =>
|
const providers: any = protocolList.filter((item: any) =>
|
||||||
arr.includes(item.value),
|
arr.includes(item.alias),
|
||||||
);
|
);
|
||||||
providersList.value = providers;
|
providersList.value = providers;
|
||||||
if (arr.includes('OPC_UA')) {
|
if (arr.includes('OPC_UA')) {
|
||||||
|
|
|
@ -14,6 +14,8 @@
|
||||||
import { getImage } from '@/utils/comm';
|
import { getImage } from '@/utils/comm';
|
||||||
import BaseMenu, { USER_CENTER_MENU_DATA } from '../data/baseMenu'
|
import BaseMenu, { USER_CENTER_MENU_DATA } from '../data/baseMenu'
|
||||||
import { getSystemPermission, updateMenus } from '@/api/initHome';
|
import { getSystemPermission, updateMenus } from '@/api/initHome';
|
||||||
|
import { protocolList } from '@/utils/consts';
|
||||||
|
import { getProviders } from '@/api/data-collect/channel';
|
||||||
/**
|
/**
|
||||||
* 获取菜单数据
|
* 获取菜单数据
|
||||||
*/
|
*/
|
||||||
|
@ -36,6 +38,18 @@ const getSystemPermissionData = async () => {
|
||||||
menuDatas.count = _count;
|
menuDatas.count = _count;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询支持的协议
|
||||||
|
*/
|
||||||
|
let filterProtocolList: any[] = [];
|
||||||
|
const getProvidersFn = async () => {
|
||||||
|
const res: any = await getProviders();
|
||||||
|
filterProtocolList = protocolList.filter((item) => {
|
||||||
|
return res.result?.find((val: any) => item.alias == val.id);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
getProvidersFn();
|
||||||
/**
|
/**
|
||||||
* 过滤菜单
|
* 过滤菜单
|
||||||
*/
|
*/
|
||||||
|
@ -50,6 +64,9 @@ const filterMenu = (permissions: string[], menus: any[]) => {
|
||||||
if (item.children) {
|
if (item.children) {
|
||||||
item.children = filterMenu(permissions, item.children);
|
item.children = filterMenu(permissions, item.children);
|
||||||
}
|
}
|
||||||
|
if (!filterProtocolList.length && item.code == 'link/DataCollect') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return isShow || !!item.children?.length;
|
return isShow || !!item.children?.length;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -71,6 +88,7 @@ const menuCount = (menus: any[]) => {
|
||||||
const initMenu = async () => {
|
const initMenu = async () => {
|
||||||
return new Promise(async (resolve) => {
|
return new Promise(async (resolve) => {
|
||||||
// 用户中心
|
// 用户中心
|
||||||
|
console.log([...menuDatas.current!, USER_CENTER_MENU_DATA]);
|
||||||
const res = await updateMenus([...menuDatas.current!, USER_CENTER_MENU_DATA]);
|
const res = await updateMenus([...menuDatas.current!, USER_CENTER_MENU_DATA]);
|
||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
resolve(true);
|
resolve(true);
|
||||||
|
|
|
@ -81,6 +81,8 @@ import { onlyMessage } from '@/utils/comm';
|
||||||
import {
|
import {
|
||||||
USER_CENTER_MENU_CODE,
|
USER_CENTER_MENU_CODE,
|
||||||
} from '@/utils/consts';
|
} from '@/utils/consts';
|
||||||
|
import { protocolList } from '@/utils/consts';
|
||||||
|
import { getProviders } from '@/api/data-collect/channel';
|
||||||
|
|
||||||
const selectedKeys: any = ref([]);
|
const selectedKeys: any = ref([]);
|
||||||
const treeData = ref<any>([]);
|
const treeData = ref<any>([]);
|
||||||
|
@ -111,6 +113,17 @@ const params = {
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询支持的协议
|
||||||
|
*/
|
||||||
|
let filterProtocolList: any[] = [];
|
||||||
|
const getProvidersFn = async () => {
|
||||||
|
const res: any = await getProviders();
|
||||||
|
filterProtocolList = protocolList.filter((item) => {
|
||||||
|
return res.result?.find((val: any) => item.alias == val.id);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
getProvidersFn();
|
||||||
function filterTree(nodes: Array<any>, selectedKeys: Array<any>) {
|
function filterTree(nodes: Array<any>, selectedKeys: Array<any>) {
|
||||||
const filtered = [];
|
const filtered = [];
|
||||||
for (let i = 0; i < nodes.length; i++) {
|
for (let i = 0; i < nodes.length; i++) {
|
||||||
|
@ -206,17 +219,29 @@ onMounted(() => {
|
||||||
const systemMenuData = initData(systemMenu.value);
|
const systemMenuData = initData(systemMenu.value);
|
||||||
selectedKeys.value = systemMenuData.checkedKeys;
|
selectedKeys.value = systemMenuData.checkedKeys;
|
||||||
|
|
||||||
const AllMenu = mergeArr(
|
const AllMenu = filterMenus(mergeArr(
|
||||||
cloneDeep(filterBaseMenu),
|
cloneDeep(filterBaseMenu),
|
||||||
cloneDeep(systemMenu.value),
|
cloneDeep(systemMenu.value),
|
||||||
);
|
))
|
||||||
|
console.log(AllMenu);
|
||||||
// 处理排序
|
// 处理排序
|
||||||
treeData.value = handleSortsArr(AllMenu);
|
treeData.value = handleSortsArr(AllMenu);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
const filterMenus = (menus: any[]) => {
|
||||||
|
return menus.filter((item) => {
|
||||||
|
if (item.children) {
|
||||||
|
item.children = filterMenus(item.children);
|
||||||
|
}
|
||||||
|
if (!filterProtocolList.length && item.code == 'link/DataCollect') {
|
||||||
|
debugger
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return item
|
||||||
|
});
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
Loading…
Reference in New Issue