From 2b93a9d010dc5f43eaf62cd1667fe1630f8736ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AF=97=E7=AC=BA?= <2954700422@qq.com> Date: Wed, 16 Apr 2025 02:00:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=A7=8B=E9=87=8D=E6=9E=84=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E8=BF=99=E4=B8=80=E5=9D=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- noname/ui/create/menu/index.js | 38 ++++ noname/ui/create/menu/views/menu.vue | 214 ++++++++++++++++++++ noname/ui/create/menu/views/menuButton.vue | 160 +++++++++++++++ noname/ui/create/menu/views/menuContent.vue | 116 +++++++++++ noname/ui/create/menu/views/menuTabBar.vue | 26 +++ noname/ui/create/menu/views/menuTabs.vue | 85 ++++++++ 6 files changed, 639 insertions(+) create mode 100644 noname/ui/create/menu/views/menu.vue create mode 100644 noname/ui/create/menu/views/menuButton.vue create mode 100644 noname/ui/create/menu/views/menuContent.vue create mode 100644 noname/ui/create/menu/views/menuTabBar.vue create mode 100644 noname/ui/create/menu/views/menuTabs.vue diff --git a/noname/ui/create/menu/index.js b/noname/ui/create/menu/index.js index 7c3cda7cc7..4911b394ab 100644 --- a/noname/ui/create/menu/index.js +++ b/noname/ui/create/menu/index.js @@ -1,4 +1,6 @@ import { ui, game, get, lib, _status } from "../../../../noname.js"; +import { createApp } from "../../../../game/vue.esm-browser.js"; +import Menu from "./views/menu.vue"; export function openMenu(node, e, onclose) { popupContainer.innerHTML = ""; @@ -530,3 +532,39 @@ export function menu(connectMenu) { localStorage.removeItem(lib.configprefix + "disable_extension", true); } } + +/** + * @param { boolean } [connectMenu] + */ +export function newMenu(connectMenu) { + const cacheMenuContainer = (menuContainer = ui.create.div(".menu-container.hidden", ui.window, () => { + clickContainer.call(cacheMenuContainer, connectMenu); + })); + const cachePopupContainer = (popupContainer = ui.create.div( + ".popup-container.hidden", + ui.window, + function closeMenu() { + // @ts-ignore + if (cachePopupContainer.noclose) { + // @ts-ignore + cachePopupContainer.noclose = false; + return; + } + cachePopupContainer.classList.add("hidden"); + if (typeof cachePopupContainer.onclose == "function") { + // @ts-ignore + cachePopupContainer.onclose(); + } + } + )); + // 使用vue的createApp来创建 + const app = createApp(Menu, { + connectMenu + }); + + app.mount(cacheMenuContainer); + cacheMenuContainer.firstElementChild.listen(e => { + e.stopPropagation(); + }) + cacheMenuContainer.show(); +} \ No newline at end of file diff --git a/noname/ui/create/menu/views/menu.vue b/noname/ui/create/menu/views/menu.vue new file mode 100644 index 0000000000..b9f57056c9 --- /dev/null +++ b/noname/ui/create/menu/views/menu.vue @@ -0,0 +1,214 @@ + + + + + diff --git a/noname/ui/create/menu/views/menuButton.vue b/noname/ui/create/menu/views/menuButton.vue new file mode 100644 index 0000000000..ac2d56d0f1 --- /dev/null +++ b/noname/ui/create/menu/views/menuButton.vue @@ -0,0 +1,160 @@ + + + + + \ No newline at end of file diff --git a/noname/ui/create/menu/views/menuContent.vue b/noname/ui/create/menu/views/menuContent.vue new file mode 100644 index 0000000000..334401ed19 --- /dev/null +++ b/noname/ui/create/menu/views/menuContent.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/noname/ui/create/menu/views/menuTabBar.vue b/noname/ui/create/menu/views/menuTabBar.vue new file mode 100644 index 0000000000..9576a457f7 --- /dev/null +++ b/noname/ui/create/menu/views/menuTabBar.vue @@ -0,0 +1,26 @@ + + + + + \ No newline at end of file diff --git a/noname/ui/create/menu/views/menuTabs.vue b/noname/ui/create/menu/views/menuTabs.vue new file mode 100644 index 0000000000..c5f4f24692 --- /dev/null +++ b/noname/ui/create/menu/views/menuTabs.vue @@ -0,0 +1,85 @@ + + + + + \ No newline at end of file