增加悬浮窗功能
This commit is contained in:
@@ -55,7 +55,10 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, onMounted } from "vue";
|
||||
import { useQuickStore, usePermissionStore } from "@/store";
|
||||
const quickStore = useQuickStore();
|
||||
|
||||
import { ref, reactive, onMounted, toRaw } from "vue";
|
||||
import MenuAPI from "@/api/account/menu";
|
||||
|
||||
import quickApi from "@/api/account/quick";
|
||||
@@ -64,9 +67,9 @@ import dialogAdd from "./dialog-add.vue";
|
||||
|
||||
const showAdd = ref(false);
|
||||
|
||||
const nowEditMenu = ref({});
|
||||
const nowEditMenu = ref(null);
|
||||
function editMenu(item) {
|
||||
nowEditMenu.value = item;
|
||||
nowEditMenu.value = { ...item };
|
||||
showAdd.value = true;
|
||||
}
|
||||
const tableData = reactive({
|
||||
@@ -78,6 +81,7 @@ const tableData = reactive({
|
||||
});
|
||||
|
||||
function Refresh() {
|
||||
quickStore.getQuickMenus();
|
||||
getList();
|
||||
}
|
||||
function getList() {
|
||||
@@ -86,7 +90,7 @@ function getList() {
|
||||
.getList({
|
||||
page: tableData.page,
|
||||
size: tableData.size,
|
||||
isEdit: true,
|
||||
isEdit: 1,
|
||||
})
|
||||
.then((res) => {
|
||||
tableData.list = res;
|
||||
@@ -101,25 +105,45 @@ const menus = ref([]);
|
||||
async function getMenus() {
|
||||
const res = await MenuAPI.getRoutes();
|
||||
menus.value = res;
|
||||
console.log("menus", res);
|
||||
}
|
||||
const menusIdMap = computed(() => {
|
||||
const map = getMenuMao();
|
||||
const map = getMenuMap();
|
||||
console.log("map", map);
|
||||
|
||||
return map;
|
||||
});
|
||||
function returnMenuName(item) {
|
||||
const menu = menusIdMap.value.get(`${item.menuId}`);
|
||||
return menu.title;
|
||||
console.log("menuId", item.menuId);
|
||||
console.log("menu", menu);
|
||||
|
||||
return menu ? menu.title : "";
|
||||
}
|
||||
function getMenuMao() {
|
||||
function getMenuMap() {
|
||||
// 初始化Map
|
||||
const map = new Map();
|
||||
for (const menu of menus.value) {
|
||||
map.set(menu.menuId, menu);
|
||||
if (menu.children && menu.children.length > 0) {
|
||||
for (const child of menu.children) {
|
||||
map.set(child.menuId, child);
|
||||
}
|
||||
|
||||
// 定义递归函数处理菜单节点
|
||||
function processMenuNode(menuNode) {
|
||||
// 将当前节点存入Map
|
||||
map.set(menuNode.menuId, menuNode);
|
||||
|
||||
// 如果有子节点且子节点数组不为空,则递归处理每个子节点
|
||||
if (menuNode.children && Array.isArray(menuNode.children) && menuNode.children.length > 0) {
|
||||
menuNode.children.forEach((childNode) => {
|
||||
processMenuNode(childNode);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 遍历根级菜单,逐个处理
|
||||
if (menus.value && Array.isArray(menus.value)) {
|
||||
menus.value.forEach((rootMenu) => {
|
||||
processMenuNode(rootMenu);
|
||||
});
|
||||
}
|
||||
|
||||
return map;
|
||||
}
|
||||
function isEnableChange(value, item) {
|
||||
|
||||
Reference in New Issue
Block a user