mirror of
https://github.com/apache/skywalking-booster-ui.git
synced 2025-05-12 15:52:57 +00:00
feat: add types
This commit is contained in:
parent
2549bdff37
commit
e99adebc03
13
src/types/app.d.ts
vendored
13
src/types/app.d.ts
vendored
@ -46,3 +46,16 @@ export type EventParams = {
|
||||
color: string;
|
||||
event: any;
|
||||
};
|
||||
|
||||
export interface MenuOptions {
|
||||
layer: string;
|
||||
icon: string;
|
||||
title: string;
|
||||
activate: boolean;
|
||||
subItems: {
|
||||
layer: string;
|
||||
icon: string;
|
||||
title: string;
|
||||
activate: boolean;
|
||||
}[];
|
||||
}
|
||||
|
@ -33,12 +33,13 @@ limitations under the License. -->
|
||||
<script lang="ts" setup>
|
||||
import { ref } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { MenuOptions } from "@/types/app";
|
||||
import { useAppStoreWithOut } from "@/store/modules/app";
|
||||
|
||||
const appStore = useAppStoreWithOut();
|
||||
const { t } = useI18n();
|
||||
const treeRef = ref<InstanceType<any>>();
|
||||
const activateMenus = ref<any[]>([]);
|
||||
const activateMenus = ref<MenuOptions[]>([]);
|
||||
const checkedKeys = ref<string[]>([]);
|
||||
const defaultProps = {
|
||||
children: "subItems",
|
||||
@ -56,10 +57,10 @@ limitations under the License. -->
|
||||
|
||||
async function getActivateMenus() {
|
||||
const resp = (await appStore.queryMenuItems()) || {};
|
||||
const menus = (resp.getMenuItems || []).map((d: any, index: number) => {
|
||||
const menus = (resp.getMenuItems || []).map((d: MenuOptions, index: number) => {
|
||||
d.id = String(index);
|
||||
if (d.subItems) {
|
||||
d.subItems = d.subItems.map((item: any, subIndex: number) => {
|
||||
d.subItems = d.subItems.map((item: MenuOptions, subIndex: number) => {
|
||||
item.id = `${index}-${subIndex}`;
|
||||
return item;
|
||||
});
|
||||
@ -69,9 +70,9 @@ limitations under the License. -->
|
||||
|
||||
return d;
|
||||
});
|
||||
activateMenus.value = menus.filter((d: any) => {
|
||||
activateMenus.value = menus.filter((d: MenuOptions) => {
|
||||
if (d.activate) {
|
||||
d.subItems = d.subItems.filter((item: any) => {
|
||||
d.subItems = d.subItems.filter((item: MenuOptions) => {
|
||||
if (item.activate) {
|
||||
return item;
|
||||
}
|
||||
@ -95,9 +96,9 @@ limitations under the License. -->
|
||||
}
|
||||
|
||||
function setCurrentMenus() {
|
||||
const current = activateMenus.value.filter((d: any) => {
|
||||
const current = activateMenus.value.filter((d: MenuOptions) => {
|
||||
if (checkedKeys.value.includes(d.id)) {
|
||||
d.subItems = d.subItems.filter((item: any) => {
|
||||
d.subItems = d.subItems.filter((item: MenuOptions) => {
|
||||
if (checkedKeys.value.includes(item.id)) {
|
||||
return item;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user