3 Commits

Author SHA1 Message Date
jiangrui
3c656eb880 feat:增加pwa支持 2025-03-06 11:27:31 +08:00
jiangrui
89879e8c05 fix:解决ios设备弹窗被tabbar遮挡问题 2025-03-06 10:58:53 +08:00
jiangrui1994
7c7ad6ba1f 更新 README.md 2025-03-06 08:33:46 +08:00
23 changed files with 12694 additions and 2906 deletions

View File

@@ -95,7 +95,7 @@
1. 克隆项目 1. 克隆项目
```bash ```bash
git clone https://github.com/your-username/CloudSaver.git git clone https://github.com/jiangrui1994/CloudSaver.git
cd CloudSaver cd CloudSaver
``` ```
@@ -213,25 +213,6 @@ docker-compose up -d
- 管理员230713 - 管理员230713
- 普通用户9527 - 普通用户9527
## 特别声明
1. 本项目仅供学习交流使用,请勿用于非法用途
2. 仅支持个人使用,不支持任何形式的商业使用
3. 禁止在项目页面进行任何形式的广告宣传
4. 所有搜索到的资源均来自第三方,本项目不对其真实性、合法性做出任何保证
## 贡献指南
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 提交 Pull Request
## 开源协议
本项目基于 MIT 协议开源 - 查看 [LICENSE](LICENSE) 文件了解更多细节
## 联系方式 ## 联系方式
<div align="center"> <div align="center">
@@ -258,6 +239,26 @@ docker-compose up -d
</div> </div>
</div> </div>
## 特别声明
1. 本项目仅供学习交流使用,请勿用于非法用途
2. 仅支持个人使用,不支持任何形式的商业使用
3. 禁止在项目页面进行任何形式的广告宣传
4. 所有搜索到的资源均来自第三方,本项目不对其真实性、合法性做出任何保证
## 贡献指南
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 提交 Pull Request
## 开源协议
本项目基于 MIT 协议开源 - 查看 [LICENSE](LICENSE) 文件了解更多细节
## 鸣谢 ## 鸣谢
- 👨‍💻 感谢所有为这个项目做出贡献的开发者们! - 👨‍💻 感谢所有为这个项目做出贡献的开发者们!

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 824 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

View File

@@ -8,7 +8,6 @@ export {}
declare module 'vue' { declare module 'vue' {
export interface GlobalComponents { export interface GlobalComponents {
AsideMenu: typeof import('./src/components/AsideMenu.vue')['default'] AsideMenu: typeof import('./src/components/AsideMenu.vue')['default']
DoubanMovie: typeof import('./src/components/Home/DoubanMovie.vue')['default']
ElAside: typeof import('element-plus/es')['ElAside'] ElAside: typeof import('element-plus/es')['ElAside']
ElBacktop: typeof import('element-plus/es')['ElBacktop'] ElBacktop: typeof import('element-plus/es')['ElBacktop']
ElButton: typeof import('element-plus/es')['ElButton'] ElButton: typeof import('element-plus/es')['ElButton']
@@ -26,11 +25,9 @@ declare module 'vue' {
ElInput: typeof import('element-plus/es')['ElInput'] ElInput: typeof import('element-plus/es')['ElInput']
ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
ElLink: typeof import('element-plus/es')['ElLink'] ElLink: typeof import('element-plus/es')['ElLink']
ElLoadingIcon: typeof import('element-plus/es')['ElLoadingIcon']
ElMain: typeof import('element-plus/es')['ElMain'] ElMain: typeof import('element-plus/es')['ElMain']
ElMenu: typeof import('element-plus/es')['ElMenu'] ElMenu: typeof import('element-plus/es')['ElMenu']
ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
ElSpace: typeof import('element-plus/es')['ElSpace']
ElSubMenu: typeof import('element-plus/es')['ElSubMenu'] ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElSwitch: typeof import('element-plus/es')['ElSwitch']
ElTable: typeof import('element-plus/es')['ElTable'] ElTable: typeof import('element-plus/es')['ElTable']
@@ -39,7 +36,6 @@ declare module 'vue' {
ElTabs: typeof import('element-plus/es')['ElTabs'] ElTabs: typeof import('element-plus/es')['ElTabs']
ElTag: typeof import('element-plus/es')['ElTag'] ElTag: typeof import('element-plus/es')['ElTag']
ElTooltip: typeof import('element-plus/es')['ElTooltip'] ElTooltip: typeof import('element-plus/es')['ElTooltip']
ElTree: typeof import('element-plus/es')['ElTree']
FolderSelect: typeof import('./src/components/Home/FolderSelect.vue')['default'] FolderSelect: typeof import('./src/components/Home/FolderSelect.vue')['default']
ResourceCard: typeof import('./src/components/Home/ResourceCard.vue')['default'] ResourceCard: typeof import('./src/components/Home/ResourceCard.vue')['default']
ResourceSelect: typeof import('./src/components/Home/ResourceSelect.vue')['default'] ResourceSelect: typeof import('./src/components/Home/ResourceSelect.vue')['default']

View File

@@ -8,6 +8,30 @@
name="viewport" name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"
/> />
<meta name="keywords" content="网盘,资源搜索,云存储" />
<!-- SEO关键词 -->
<meta name="description" content="网盘资源搜索工具" />
<!-- 设置Web App描述 -->
<meta name="theme-color" content="#ffffff" />
<!-- 设置主题颜色 -->
<meta property="og:title" content="CloudSaver" />
<!-- 社交媒体分享标题 -->
<meta property="og:description" content="网盘资源搜索工具" />
<!-- 社交媒体分享描述 -->
<meta property="og:url" content="https://github.com/jiangrui1994/CloudSaver" />
<!-- 社交媒体分享链接 -->
<meta name="twitter:card" content="summary" />
<!-- Twitter卡片类型 -->
<meta name="apple-mobile-web-app-capable" content="yes" />
<!-- 开启Web App功能 -->
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<!-- 设置状态栏样式 -->
<meta name="apple-mobile-web-app-title" content="CloudSaver" />
<!-- 设置Web App标题 -->
<link rel="apple-touch-icon" href="/logo-1.png" />
<!-- 设置Web App图标 -->
<link rel="mask-icon" href="/logo.svg" color="transparent" />
<!-- 设置Web App图标遮罩 -->
<meta name="referrer" content="no-referrer" /> <meta name="referrer" content="no-referrer" />
<title>CloudSaver</title> <title>CloudSaver</title>
</head> </head>

BIN
frontend/logo-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

3751
frontend/logo.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 282 KiB

View File

@@ -1,7 +1,7 @@
{ {
"name": "cloud-saver-web", "name": "cloud-saver-web",
"private": true, "private": true,
"version": "0.2.0", "version": "0.2.1",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite --host", "dev": "vite --host",
@@ -28,6 +28,7 @@
"unplugin-auto-import": "^0.17.8", "unplugin-auto-import": "^0.17.8",
"unplugin-vue-components": "^0.26.0", "unplugin-vue-components": "^0.26.0",
"vite": "^5.1.5", "vite": "^5.1.5",
"vite-plugin-pwa": "^0.21.1",
"vue-tsc": "^2.0.6" "vue-tsc": "^2.0.6"
} }
} }

View File

@@ -46,7 +46,7 @@
round round
closeable closeable
position="bottom" position="bottom"
:style="{ height: '80%' }" :style="{ height: '80%', transform: 'translateZ(1px)' }"
class="save-popup" class="save-popup"
> >
<div class="save-popup__container"> <div class="save-popup__container">
@@ -338,6 +338,7 @@ watch(currentTab, () => {
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
padding-bottom: calc(env(safe-area-inset-bottom) + 50px);
} }
&__header { &__header {
@@ -380,6 +381,7 @@ watch(currentTab, () => {
padding: 12px 16px 16px; padding: 12px 16px 16px;
background: var(--theme-other_background); background: var(--theme-other_background);
border-top: 0.5px solid var(--van-gray-3); border-top: 0.5px solid var(--van-gray-3);
padding-bottom: calc(16px + env(safe-area-inset-bottom));
.footer__path { .footer__path {
margin: 0 0 12px; margin: 0 0 12px;
@@ -447,6 +449,10 @@ watch(currentTab, () => {
font-weight: 500; font-weight: 500;
} }
} }
:deep(.van-popup) {
z-index: 2001 !important;
}
} }
// 全局样式优化 // 全局样式优化

View File

@@ -5,12 +5,43 @@ import AutoImport from "unplugin-auto-import/vite";
import Components from "unplugin-vue-components/vite"; import Components from "unplugin-vue-components/vite";
import { ElementPlusResolver } from "unplugin-vue-components/resolvers"; import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
import { VantResolver } from "@vant/auto-import-resolver"; import { VantResolver } from "@vant/auto-import-resolver";
import { VitePWA } from "vite-plugin-pwa";
import { resolve } from "path"; import { resolve } from "path";
export default defineConfig({ export default defineConfig({
base: "/", base: "/",
plugins: [ plugins: [
vue(), vue(),
VitePWA({
registerType: "autoUpdate",
includeAssets: ["logo-1.png", "logo.svg"],
injectRegister: "auto",
workbox: {
globPatterns: ["**/*.{js,css,html,png,svg}"],
},
manifest: {
name: "CloudSaver",
short_name: "CloudSaver",
description: "网盘资源搜索工具",
theme_color: "#ffffff",
background_color: "#ffffff",
display: "standalone",
scope: "/",
start_url: "/",
icons: [
{
src: "logo-1.png",
sizes: "192x192",
type: "image/png",
},
{
src: "logo.svg",
sizes: "192x192",
type: "image/svg+xml",
},
],
},
}),
AutoImport({ AutoImport({
resolvers: [ElementPlusResolver(), VantResolver()], resolvers: [ElementPlusResolver(), VantResolver()],
}), }),

3110
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{ {
"name": "cloud-saver", "name": "cloud-saver",
"version": "0.2.0", "version": "0.2.1",
"private": true, "private": true,
"workspaces": [ "workspaces": [
"frontend", "frontend",

8626
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff