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