From 410dc1ac5856ac009d2fc83a7e693eff29bb85a4 Mon Sep 17 00:00:00 2001 From: 7836246 Date: Mon, 25 Mar 2024 06:55:06 +0800 Subject: [PATCH] =?UTF-8?q?:boom:=20=E7=A0=B4=E5=9D=8F=E6=80=A7=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=20=E5=92=B1=E4=B8=8D=E6=8E=A8=E8=8D=90=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .npmrc | 4 + README.md | 9 +- app.vue | 47 +- assets/images/login-pic.png | Bin 0 -> 8599 bytes components/common/ApiChange.vue | 13 + components/common/AppPage.vue | 27 + components/common/DomainList.vue | 23 +- components/common/History.vue | 40 +- components/common/LayoutSetting.vue | 98 ++ components/common/TheFooter.vue | 23 + components/dns/ApiChanges.vue | 51 +- components/tab/list.vue | 98 +- composables/DomainFormat.ts | 43 + layouts/components/tab/ContextMenu.vue | 122 ++ layouts/components/tab/index.vue | 95 ++ layouts/default.vue | 166 +- layouts/empty.vue | 15 - layouts/empty/index.vue | 14 + layouts/full/header/index.vue | 56 + layouts/full/index.vue | 34 + layouts/full/sidebar/index.vue | 12 + nuxt.config.ts | 28 +- package.json | 17 +- pages/admin/dashboard/index.vue | 179 +++ pages/admin/user/Login.vue | 104 ++ pages/dns/[domain].html.vue | 76 +- pages/domain/[domain].html.vue | 94 ++ pages/settings/api/index.vue | 298 ++++ pages/settings/index.vue | 355 +++-- pages/whois/[domain].html.vue | 4 +- pnpm-lock.yaml | 1936 +++++++++++++----------- public/logo/aliyun.png | Bin 0 -> 490 bytes public/logo/cloudflare.png | Bin 0 -> 2472 bytes public/logo/google.png | Bin 0 -> 16590 bytes public/logo/iamwawa.png | Bin 0 -> 3879 bytes public/logo/nuxt.png | Bin 0 -> 669 bytes public/logo/tencent.png | Bin 0 -> 1460 bytes public/logo/tianhu.png | Bin 0 -> 516 bytes public/logo/whocx.png | Bin 0 -> 2524 bytes server/api/dns.post.ts | 59 +- server/api/domain.post.ts | 55 + server/api/resolve.post.ts | 61 + server/api/whois.post.ts | 41 +- settings/settings.ts | 54 + stores/admin/app.ts | 27 + stores/admin/tab.ts | 73 + stores/api.ts | 245 +++ stores/dnsData.ts | 116 ++ stores/domainData.ts | 73 + stores/settings.ts | 16 +- stores/whoisData.ts | 80 + tailwind.config.ts | 1 + 52 files changed, 3645 insertions(+), 1337 deletions(-) create mode 100644 .npmrc create mode 100644 assets/images/login-pic.png create mode 100644 components/common/ApiChange.vue create mode 100644 components/common/AppPage.vue create mode 100644 components/common/LayoutSetting.vue create mode 100644 components/common/TheFooter.vue create mode 100644 composables/DomainFormat.ts create mode 100644 layouts/components/tab/ContextMenu.vue create mode 100644 layouts/components/tab/index.vue delete mode 100644 layouts/empty.vue create mode 100644 layouts/empty/index.vue create mode 100644 layouts/full/header/index.vue create mode 100644 layouts/full/index.vue create mode 100644 layouts/full/sidebar/index.vue create mode 100644 pages/admin/dashboard/index.vue create mode 100644 pages/admin/user/Login.vue create mode 100644 pages/domain/[domain].html.vue create mode 100644 pages/settings/api/index.vue create mode 100644 public/logo/aliyun.png create mode 100644 public/logo/cloudflare.png create mode 100644 public/logo/google.png create mode 100644 public/logo/iamwawa.png create mode 100644 public/logo/nuxt.png create mode 100644 public/logo/tencent.png create mode 100644 public/logo/tianhu.png create mode 100644 public/logo/whocx.png create mode 100644 server/api/domain.post.ts create mode 100644 server/api/resolve.post.ts create mode 100644 settings/settings.ts create mode 100644 stores/admin/app.ts create mode 100644 stores/admin/tab.ts create mode 100644 stores/api.ts create mode 100644 stores/dnsData.ts create mode 100644 stores/domainData.ts create mode 100644 stores/whoisData.ts diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..3d3960d --- /dev/null +++ b/.npmrc @@ -0,0 +1,4 @@ +public-hoist-pattern[]=@css-render/vue3-ssr +public-hoist-pattern[]=vueuc +public-hoist-pattern[]=naive-ui +shamefully-hoist=true diff --git a/README.md b/README.md index f48daa1..bbd1029 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,13 @@ Nuxt-Whois 是一个基于 Nuxt3、Tailwind CSS 和 Xep-Whois 构建的Whois查 - **Dns查询**:支持Dns查询,方便用户查看域名的Dns信息。 - **自定义后缀**:支持自定义Whois服务器后缀,方便用户查询不同后缀的域名。 +## 更新说明 + +- 2024.3.25 抛弃原来 NuxtUi 改用 NaiveUi 重构中 后台增加中 当前版本无法上线使用 +- 2024.3.18 重构V2版本 预计三天内完成。 + ### 内容修改 + 大部分多语言文字都在lang文件夹下或者.env文件,可以自行修改。 ### 环境要求 @@ -59,4 +65,5 @@ pnpm dev ``` # 免责声明 - 本项目开源仅供学习使用,不得用于任何违法用途,否则后果自负,与本人无关。使用请保留项目地址谢谢。 + +本项目开源仅供学习使用,不得用于任何违法用途,否则后果自负,与本人无关。使用请保留项目地址谢谢。 diff --git a/app.vue b/app.vue index 25c2a46..31a3083 100644 --- a/app.vue +++ b/app.vue @@ -1,7 +1,44 @@ + + diff --git a/assets/images/login-pic.png b/assets/images/login-pic.png new file mode 100644 index 0000000000000000000000000000000000000000..7c29a7ea17107a19bf7af3c58205b777cf29b785 GIT binary patch literal 8599 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 n? +const localePath = useLocalePath() +const router = useRouter(); + + + diff --git a/components/common/AppPage.vue b/components/common/AppPage.vue new file mode 100644 index 0000000..edbcdda --- /dev/null +++ b/components/common/AppPage.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/components/common/DomainList.vue b/components/common/DomainList.vue index c419267..6c2e266 100644 --- a/components/common/DomainList.vue +++ b/components/common/DomainList.vue @@ -15,16 +15,17 @@ const {t} = useI18n() - - -
-
{{t('index.support')}}:
-
+ +
-
- + +
diff --git a/components/common/History.vue b/components/common/History.vue index 6c2c74e..6b488f5 100644 --- a/components/common/History.vue +++ b/components/common/History.vue @@ -1,16 +1,8 @@ @@ -25,18 +17,20 @@ const slideoverConfig = { - - -
+ +

- {{ t('history.title') }} {{ t('history.tips', { length: styleStore.getHistory.length }) }} @@ -44,7 +38,6 @@ const slideoverConfig = {
-
@@ -76,23 +69,22 @@ const slideoverConfig = { {{ item.date }}
- {{t('common.actions.delete')}} + + >{{t('common.actions.delete')}}
-

{{ t('history.empty') }}

-
-
+ + diff --git a/components/common/LayoutSetting.vue b/components/common/LayoutSetting.vue new file mode 100644 index 0000000..2c4229f --- /dev/null +++ b/components/common/LayoutSetting.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/components/common/TheFooter.vue b/components/common/TheFooter.vue new file mode 100644 index 0000000..155ed15 --- /dev/null +++ b/components/common/TheFooter.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/components/dns/ApiChanges.vue b/components/dns/ApiChanges.vue index 040ba6b..948c7de 100644 --- a/components/dns/ApiChanges.vue +++ b/components/dns/ApiChanges.vue @@ -1,29 +1,24 @@