Compare commits
10 Commits
bacbe1871c
...
6faaa7984b
| Author | SHA1 | Date | |
|---|---|---|---|
| 6faaa7984b | |||
| 42146aedf4 | |||
| a889b83959 | |||
| d9f87f72b5 | |||
| fe27fb4399 | |||
| 3fb7f45789 | |||
| a9066b9046 | |||
| e4a0ac71cc | |||
| 83e23b7365 | |||
| 69494434e9 |
0
vue/.gitignore → .gitignore
vendored
@ -1,112 +0,0 @@
|
||||
# 知识卡导出索引文件
|
||||
schema_version: 1
|
||||
locale: zh-CN
|
||||
branch: Q0DeR-MaG1C-BrAnCh-Fo2-NoN-GiT-Or-No-C0MmIt
|
||||
exported_at: "2026-06-12T08:09:05Z"
|
||||
modules:
|
||||
"":
|
||||
dir_name: 网盘管理跨端应用
|
||||
title: 网盘管理跨端应用
|
||||
scope:
|
||||
- vue\.gitignore
|
||||
- vue\.vscode\extensions.json
|
||||
- vue\APK_BUILD_OPTIONS.md
|
||||
- vue\APP_GUIDE.md
|
||||
- vue\PACKAGING_SUMMARY.md
|
||||
- vue\README.md
|
||||
- vue\android\.gitignore
|
||||
- vue\android\app\.gitignore
|
||||
- vue\android\app\build.gradle
|
||||
- vue\android\app\capacitor.build.gradle
|
||||
- vue\android\app\proguard-rules.pro
|
||||
- vue\android\app\src\androidTest\java\com\getcapacitor\myapp\ExampleInstrumentedTest.java
|
||||
- vue\android\app\src\main\AndroidManifest.xml
|
||||
- vue\android\app\src\main\assets\capacitor.config.json
|
||||
- vue\android\app\src\main\assets\capacitor.plugins.json
|
||||
- vue\android\app\src\main\assets\public\assets\index-DrjxTYTT.css
|
||||
- vue\android\app\src\main\assets\public\assets\index-xOoYtVTp.js
|
||||
- vue\android\app\src\main\assets\public\cordova.js
|
||||
- vue\android\app\src\main\assets\public\cordova_plugins.js
|
||||
- vue\android\app\src\main\assets\public\index.html
|
||||
- vue\android\app\src\main\assets\public\logo.png
|
||||
- vue\android\app\src\main\assets\public\vite.svg
|
||||
- vue\android\app\src\main\java\com\wangpan\app\MainActivity.java
|
||||
- vue\android\app\src\main\res\drawable-land-hdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-land-mdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-land-xhdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-land-xxhdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-land-xxxhdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-port-hdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-port-mdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-port-xhdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-port-xxhdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-port-xxxhdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-v24\ic_launcher_foreground.xml
|
||||
- vue\android\app\src\main\res\drawable\ic_launcher_background.xml
|
||||
- vue\android\app\src\main\res\drawable\splash.png
|
||||
- vue\android\app\src\main\res\layout\activity_main.xml
|
||||
- vue\android\app\src\main\res\mipmap-anydpi-v26\ic_launcher.xml
|
||||
- vue\android\app\src\main\res\mipmap-anydpi-v26\ic_launcher_round.xml
|
||||
- vue\android\app\src\main\res\mipmap-hdpi\ic_launcher.png
|
||||
- vue\android\app\src\main\res\mipmap-hdpi\ic_launcher_foreground.png
|
||||
- vue\android\app\src\main\res\mipmap-hdpi\ic_launcher_round.png
|
||||
- vue\android\app\src\main\res\mipmap-mdpi\ic_launcher.png
|
||||
- vue\android\app\src\main\res\mipmap-mdpi\ic_launcher_foreground.png
|
||||
- vue\android\app\src\main\res\mipmap-mdpi\ic_launcher_round.png
|
||||
- vue\android\app\src\main\res\mipmap-xhdpi\ic_launcher.png
|
||||
- vue\android\app\src\main\res\mipmap-xhdpi\ic_launcher_foreground.png
|
||||
- vue\android\app\src\main\res\mipmap-xhdpi\ic_launcher_round.png
|
||||
- vue\android\app\src\main\res\mipmap-xxhdpi\ic_launcher.png
|
||||
- vue\android\app\src\main\res\mipmap-xxhdpi\ic_launcher_foreground.png
|
||||
- vue\android\app\src\main\res\mipmap-xxhdpi\ic_launcher_round.png
|
||||
- vue\android\app\src\main\res\mipmap-xxxhdpi\ic_launcher.png
|
||||
- vue\android\app\src\main\res\mipmap-xxxhdpi\ic_launcher_foreground.png
|
||||
- vue\android\app\src\main\res\mipmap-xxxhdpi\ic_launcher_round.png
|
||||
- vue\android\app\src\main\res\values\ic_launcher_background.xml
|
||||
- vue\android\app\src\main\res\values\strings.xml
|
||||
- vue\android\app\src\main\res\values\styles.xml
|
||||
- vue\android\app\src\main\res\xml\config.xml
|
||||
- vue\android\app\src\main\res\xml\file_paths.xml
|
||||
- vue\android\app\src\test\java\com\getcapacitor\myapp\ExampleUnitTest.java
|
||||
- vue\android\build.gradle
|
||||
- vue\android\capacitor-cordova-android-plugins\build.gradle
|
||||
- vue\android\capacitor-cordova-android-plugins\cordova.variables.gradle
|
||||
- vue\android\capacitor-cordova-android-plugins\src\main\AndroidManifest.xml
|
||||
- vue\android\capacitor-cordova-android-plugins\src\main\java\.gitkeep
|
||||
- vue\android\capacitor-cordova-android-plugins\src\main\res\.gitkeep
|
||||
- vue\android\capacitor.settings.gradle
|
||||
- vue\android\gradle.properties
|
||||
- vue\android\gradle\wrapper\gradle-wrapper.jar
|
||||
- vue\android\gradle\wrapper\gradle-wrapper.properties
|
||||
- vue\android\gradlew
|
||||
- vue\android\gradlew.bat
|
||||
- vue\android\settings.gradle
|
||||
- vue\android\variables.gradle
|
||||
- vue\build-apk.bat
|
||||
- vue\capacitor.config.json
|
||||
- vue\index.html
|
||||
- vue\package-lock.json
|
||||
- vue\package.json
|
||||
- vue\public\logo.png
|
||||
- vue\public\vite.svg
|
||||
- vue\src\App.vue
|
||||
- vue\src\api\index.js
|
||||
- vue\src\assets\vue.svg
|
||||
- vue\src\components\DriveManageDialog.vue
|
||||
- vue\src\components\FolderTree.vue
|
||||
- vue\src\components\LoginView.vue
|
||||
- vue\src\components\PosterCard.vue
|
||||
- vue\src\components\RecordDialog.vue
|
||||
- vue\src\components\SimpleDialog.vue
|
||||
- vue\src\components\TreeNode.vue
|
||||
- vue\src\components\UserManageDialog.vue
|
||||
- vue\src\main.js
|
||||
- vue\src\style.css
|
||||
- vue\src\utils\captcha.js
|
||||
- vue\src\utils\data.js
|
||||
- vue\src\utils\storage.js
|
||||
- vue\vite.config.js
|
||||
source_files: []
|
||||
children: []
|
||||
depends_on: []
|
||||
related_to: []
|
||||
@ -1,105 +0,0 @@
|
||||
schema_version: 1
|
||||
module_path: ""
|
||||
title: 网盘管理跨端应用
|
||||
scope:
|
||||
- vue\.gitignore
|
||||
- vue\.vscode\extensions.json
|
||||
- vue\APK_BUILD_OPTIONS.md
|
||||
- vue\APP_GUIDE.md
|
||||
- vue\PACKAGING_SUMMARY.md
|
||||
- vue\README.md
|
||||
- vue\android\.gitignore
|
||||
- vue\android\app\.gitignore
|
||||
- vue\android\app\build.gradle
|
||||
- vue\android\app\capacitor.build.gradle
|
||||
- vue\android\app\proguard-rules.pro
|
||||
- vue\android\app\src\androidTest\java\com\getcapacitor\myapp\ExampleInstrumentedTest.java
|
||||
- vue\android\app\src\main\AndroidManifest.xml
|
||||
- vue\android\app\src\main\assets\capacitor.config.json
|
||||
- vue\android\app\src\main\assets\capacitor.plugins.json
|
||||
- vue\android\app\src\main\assets\public\assets\index-DrjxTYTT.css
|
||||
- vue\android\app\src\main\assets\public\assets\index-xOoYtVTp.js
|
||||
- vue\android\app\src\main\assets\public\cordova.js
|
||||
- vue\android\app\src\main\assets\public\cordova_plugins.js
|
||||
- vue\android\app\src\main\assets\public\index.html
|
||||
- vue\android\app\src\main\assets\public\logo.png
|
||||
- vue\android\app\src\main\assets\public\vite.svg
|
||||
- vue\android\app\src\main\java\com\wangpan\app\MainActivity.java
|
||||
- vue\android\app\src\main\res\drawable-land-hdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-land-mdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-land-xhdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-land-xxhdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-land-xxxhdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-port-hdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-port-mdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-port-xhdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-port-xxhdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-port-xxxhdpi\splash.png
|
||||
- vue\android\app\src\main\res\drawable-v24\ic_launcher_foreground.xml
|
||||
- vue\android\app\src\main\res\drawable\ic_launcher_background.xml
|
||||
- vue\android\app\src\main\res\drawable\splash.png
|
||||
- vue\android\app\src\main\res\layout\activity_main.xml
|
||||
- vue\android\app\src\main\res\mipmap-anydpi-v26\ic_launcher.xml
|
||||
- vue\android\app\src\main\res\mipmap-anydpi-v26\ic_launcher_round.xml
|
||||
- vue\android\app\src\main\res\mipmap-hdpi\ic_launcher.png
|
||||
- vue\android\app\src\main\res\mipmap-hdpi\ic_launcher_foreground.png
|
||||
- vue\android\app\src\main\res\mipmap-hdpi\ic_launcher_round.png
|
||||
- vue\android\app\src\main\res\mipmap-mdpi\ic_launcher.png
|
||||
- vue\android\app\src\main\res\mipmap-mdpi\ic_launcher_foreground.png
|
||||
- vue\android\app\src\main\res\mipmap-mdpi\ic_launcher_round.png
|
||||
- vue\android\app\src\main\res\mipmap-xhdpi\ic_launcher.png
|
||||
- vue\android\app\src\main\res\mipmap-xhdpi\ic_launcher_foreground.png
|
||||
- vue\android\app\src\main\res\mipmap-xhdpi\ic_launcher_round.png
|
||||
- vue\android\app\src\main\res\mipmap-xxhdpi\ic_launcher.png
|
||||
- vue\android\app\src\main\res\mipmap-xxhdpi\ic_launcher_foreground.png
|
||||
- vue\android\app\src\main\res\mipmap-xxhdpi\ic_launcher_round.png
|
||||
- vue\android\app\src\main\res\mipmap-xxxhdpi\ic_launcher.png
|
||||
- vue\android\app\src\main\res\mipmap-xxxhdpi\ic_launcher_foreground.png
|
||||
- vue\android\app\src\main\res\mipmap-xxxhdpi\ic_launcher_round.png
|
||||
- vue\android\app\src\main\res\values\ic_launcher_background.xml
|
||||
- vue\android\app\src\main\res\values\strings.xml
|
||||
- vue\android\app\src\main\res\values\styles.xml
|
||||
- vue\android\app\src\main\res\xml\config.xml
|
||||
- vue\android\app\src\main\res\xml\file_paths.xml
|
||||
- vue\android\app\src\test\java\com\getcapacitor\myapp\ExampleUnitTest.java
|
||||
- vue\android\build.gradle
|
||||
- vue\android\capacitor-cordova-android-plugins\build.gradle
|
||||
- vue\android\capacitor-cordova-android-plugins\cordova.variables.gradle
|
||||
- vue\android\capacitor-cordova-android-plugins\src\main\AndroidManifest.xml
|
||||
- vue\android\capacitor-cordova-android-plugins\src\main\java\.gitkeep
|
||||
- vue\android\capacitor-cordova-android-plugins\src\main\res\.gitkeep
|
||||
- vue\android\capacitor.settings.gradle
|
||||
- vue\android\gradle.properties
|
||||
- vue\android\gradle\wrapper\gradle-wrapper.jar
|
||||
- vue\android\gradle\wrapper\gradle-wrapper.properties
|
||||
- vue\android\gradlew
|
||||
- vue\android\gradlew.bat
|
||||
- vue\android\settings.gradle
|
||||
- vue\android\variables.gradle
|
||||
- vue\build-apk.bat
|
||||
- vue\capacitor.config.json
|
||||
- vue\index.html
|
||||
- vue\package-lock.json
|
||||
- vue\package.json
|
||||
- vue\public\logo.png
|
||||
- vue\public\vite.svg
|
||||
- vue\src\App.vue
|
||||
- vue\src\api\index.js
|
||||
- vue\src\assets\vue.svg
|
||||
- vue\src\components\DriveManageDialog.vue
|
||||
- vue\src\components\FolderTree.vue
|
||||
- vue\src\components\LoginView.vue
|
||||
- vue\src\components\PosterCard.vue
|
||||
- vue\src\components\RecordDialog.vue
|
||||
- vue\src\components\SimpleDialog.vue
|
||||
- vue\src\components\TreeNode.vue
|
||||
- vue\src\components\UserManageDialog.vue
|
||||
- vue\src\main.js
|
||||
- vue\src\style.css
|
||||
- vue\src\utils\captcha.js
|
||||
- vue\src\utils\data.js
|
||||
- vue\src\utils\storage.js
|
||||
- vue\vite.config.js
|
||||
source_files: []
|
||||
depends_on: []
|
||||
related_to: []
|
||||
@ -1 +0,0 @@
|
||||
Vue 3.5, Vite 7, Capacitor 8, Android Gradle Plugin
|
||||
@ -1,4 +0,0 @@
|
||||
- **前端架构**:采用 Vite + Vue 3 (Composition API) 技术栈,通过 `src/api/index.js` 封装 RESTful 请求并处理 Token 鉴权。
|
||||
- **跨端桥接**:利用 Capacitor 8 将 Web 应用(`dist` 目录)嵌入原生 Android Shell (`BridgeActivity`),实现从 Web 到 Native 的无缝转换。
|
||||
- **配置管理**:通过 `capacitor.config.json` 定义应用 ID、启动屏及状态栏样式,并通过 `vite.config.js` 代理后端 API 请求。
|
||||
- **构建流程**:遵循“Vite 构建 Web -> Cap sync 同步资源 -> Gradle 编译 APK”的标准化流水线,由 `build-apk.bat` 脚本自动化执行。
|
||||
@ -1 +0,0 @@
|
||||
基于 Vue 3 与 Capacitor 构建的网盘资源管理与海报展示跨端应用,支持 Android APK 打包。
|
||||
@ -1 +0,0 @@
|
||||
- **APK 打包**:运行根目录下的 `build-apk.bat` 脚本,自动完成 Web 资源构建、Capacitor 同步并唤起 Android Studio 进行最终编译。
|
||||
@ -1,2 +0,0 @@
|
||||
- API 模块统一在 `src/api/index.js` 中导出,使用自定义 `request` 包装器处理全局认证头与 401/403 状态分发。
|
||||
- 组件采用 `<script setup>` 语法糖编写,逻辑复用通过 `src/utils` 下的纯函数(如 `data.js`, `storage.js`)实现。
|
||||
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
0
vue/android/gradlew → android/gradlew
vendored
BIN
create_icons.py
Normal file
20
gen_icons.js
Normal file
@ -0,0 +1,20 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const iconsDir = path.join(__dirname, 'public', 'icons');
|
||||
if (!fs.existsSync(iconsDir)) fs.mkdirSync(iconsDir, { recursive: true });
|
||||
const icons = {
|
||||
home: { path: 'M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z M9 22v-10l6 6v-10', label: 'Home' },
|
||||
search: { d: 'circle cx=11 cy=11 r=8 line x1=21 y1=21 x2=16.65 y2=16.65', label: 'Search' },
|
||||
user: { d: 'path d=M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2 circle cx=12 cy=7 r=4', label: 'User' },
|
||||
folder: { d: 'path d=M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z', fill: true, label: 'Folder' },
|
||||
file: { d: 'path d=M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z polyline points=14 2 14 8 20 8', label: 'File' },
|
||||
settings: { d: 'circle cx=12 cy=12 r=3 path d=M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0', label: 'Settings' },
|
||||
close: { d: 'line x1=18 y1=6 x2=6 y2=18 line x1=6 y1=6 x2=18 y2=18', label: 'Close' },
|
||||
check: { d: 'polyline points=20 6 9 17 4 12', color: '#22c55e', label: 'Check' },
|
||||
delete: { d: 'polyline points=3 6 5 6 21 6 path d=M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2', color: '#ef4444', label: 'Delete' },
|
||||
add: { d: 'circle cx=12 cy=12 r=10 line x1=12 y1=8 x2=12 y2=16 line x1=8 y1=12 x2=16 y2=12', label: 'Add' },
|
||||
download: { d: 'path d=M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4 polyline points=7 10 12 15 17 10 line x1=12 y1=15 x2=12 y2=3', label: 'Download' },
|
||||
upload: { d: 'path d=M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4 polyline points=17 8 12 3 7 8 line x1=12 y1=3 x2=12 y2=15', label: 'Upload' },
|
||||
share: { d: 'circle cx=18 cy=5 r=3 circle cx=6 cy=12 r=3 circle cx=18 cy=19 r=3 line x1=8.59 y1=13.51 x2=15.42 y2=17.49 line x1=15.41 y1=6.51 x2=8.59 y2=10.49', label: 'Share' },
|
||||
favorite: { d: 'path d=M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z', fill: true, label: 'Favorite' },
|
||||
cloud: { d: 'path d=M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z', label: 'Cloud' },
|
||||
175
gen_icons.py
Normal file
@ -0,0 +1,175 @@
|
||||
# Icon Generator Script
|
||||
import os
|
||||
|
||||
icons_dir = 'public/icons'
|
||||
os.makedirs(icons_dir, exist_ok=True)
|
||||
|
||||
# Color scheme
|
||||
PRIMARY_COLOR = '#6366f1'
|
||||
SUCCESS_COLOR = '#22c55e'
|
||||
DANGER_COLOR = '#ef4444'
|
||||
|
||||
def create_svg(filename, elements, color=PRIMARY_COLOR, fill=False):
|
||||
"""Create an SVG icon file"""
|
||||
fill_attr = 'fill "{}"'.format(color) if fill else 'fill="none"'
|
||||
svg_content = '''<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" {} stroke="{}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
{}
|
||||
</svg>'''.format(fill_attr, color, '\n'.join(elements))
|
||||
|
||||
filepath = os.path.join(icons_dir, filename)
|
||||
with open(filepath, 'w', encoding='utf-8') as f:
|
||||
f.write(svg_content)
|
||||
print(f'Created: {filename}')
|
||||
|
||||
# Home icon
|
||||
create_svg('home.svg', [
|
||||
'<path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>',
|
||||
'<polyline points="9 22 9 12 15 12 15 22"/>'
|
||||
])
|
||||
|
||||
# Search icon
|
||||
create_svg('search.svg', [
|
||||
'<circle cx="11" cy="11" r="8"/>',
|
||||
'<line x1="21" y1="21" x2="16.65" y2="16.65"/>'
|
||||
])
|
||||
|
||||
# Settings icon
|
||||
create_svg('settings.svg', [
|
||||
'<circle cx="12" cy="12" r="3"/>',
|
||||
'<path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"/>'
|
||||
])
|
||||
|
||||
# User icon
|
||||
create_svg('user.svg', [
|
||||
'<path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/>',
|
||||
'<circle cx="12" cy="7" r="4"/>'
|
||||
])
|
||||
|
||||
# Folder icon (filled)
|
||||
create_svg('folder.svg', [
|
||||
'<path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/>'
|
||||
], fill=True)
|
||||
|
||||
# File icon
|
||||
create_svg('file.svg', [
|
||||
'<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/>',
|
||||
'<polyline points="14 2 14 8 20 8"/>'
|
||||
])
|
||||
|
||||
# Download icon
|
||||
create_svg('download.svg', [
|
||||
'<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>',
|
||||
'<polyline points="7 10 12 15 17 10"/>',
|
||||
'<line x1="12" y1="15" x2="12" y2="3"/>'
|
||||
])
|
||||
|
||||
# Upload icon
|
||||
create_svg('upload.svg', [
|
||||
'<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>',
|
||||
'<polyline points="17 8 12 3 7 8"/>',
|
||||
'<line x1="12" y1="3" x2="12" y2="15"/>'
|
||||
])
|
||||
|
||||
# Share icon
|
||||
create_svg('share.svg', [
|
||||
'<circle cx="18" cy="5" r="3"/>',
|
||||
'<circle cx="6" cy="12" r="3"/>',
|
||||
'<circle cx="18" cy="19" r="3"/>',
|
||||
'<line x1="8.59" y1="13.51" x2="15.42" y2="17.49"/>',
|
||||
'<line x1="15.41" y1="6.51" x2="8.59" y2="10.49"/>'
|
||||
])
|
||||
|
||||
# Favorite/Like icon (filled)
|
||||
create_svg('favorite.svg', [
|
||||
'<path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/>'
|
||||
], fill=True)
|
||||
|
||||
# Delete icon
|
||||
create_svg('delete.svg', [
|
||||
'<polyline points="3 6 5 6 21 6"/>',
|
||||
'<path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/>'
|
||||
], color=DANGER_COLOR)
|
||||
|
||||
# Edit icon
|
||||
create_svg('edit.svg', [
|
||||
'<path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/>',
|
||||
'<path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/>'
|
||||
])
|
||||
|
||||
# Add icon
|
||||
create_svg('add.svg', [
|
||||
'<circle cx="12" cy="12" r="10"/>',
|
||||
'<line x1="12" y1="8" x2="12" y2="16"/>',
|
||||
'<line x1="8" y1="12" x2="16" y2="12"/>'
|
||||
])
|
||||
|
||||
# Back/Arrow Left icon
|
||||
create_svg('back.svg', [
|
||||
'<line x1="19" y1="12" x2="5" y2="12"/>',
|
||||
'<polyline points="12 19 5 12 12 5"/>'
|
||||
])
|
||||
|
||||
# More/Options icon (three dots)
|
||||
create_svg('more.svg', [
|
||||
'<circle cx="12" cy="12" r="1"/>',
|
||||
'<circle cx="19" cy="12" r="1"/>',
|
||||
'<circle cx="5" cy="12" r="1"/>'
|
||||
], fill=True)
|
||||
|
||||
# Cloud icon
|
||||
create_svg('cloud.svg', [
|
||||
'<path d="M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z"/>'
|
||||
])
|
||||
|
||||
# Drive/Server icon
|
||||
create_svg('drive.svg', [
|
||||
'<rect x="2" y="6" width="20" height="12" rx="2"/>',
|
||||
'<circle cx="12" cy="12" r="2"/>',
|
||||
'<path d="M6 12h.01 M18 12h.01"/>'
|
||||
])
|
||||
|
||||
# Log/File Text icon
|
||||
create_svg('log.svg', [
|
||||
'<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/>',
|
||||
'<polyline points="14 2 14 8 20 8"/>',
|
||||
'<line x1="16" y1="13" x2="8" y2="13"/>',
|
||||
'<line x1="16" y1="17" x2="8" y2="17"/>',
|
||||
'<polyline points="10 9 9 9 8 9"/>'
|
||||
])
|
||||
|
||||
# Close icon
|
||||
create_svg('close.svg', [
|
||||
'<line x1="18" y1="6" x2="6" y2="18"/>',
|
||||
'<line x1="6" y1="6" x2="18" y2="18"/>'
|
||||
])
|
||||
|
||||
# Check/Verify icon
|
||||
create_svg('check.svg', [
|
||||
'<polyline points="20 6 9 17 4 12"/>'
|
||||
], color=SUCCESS_COLOR)
|
||||
|
||||
# Play icon
|
||||
create_svg('play.svg', [
|
||||
'<polygon points="5 3 19 12 5 21 5 3"/>'
|
||||
], fill=True)
|
||||
|
||||
# Pause icon
|
||||
create_svg('pause.svg', [
|
||||
'<rect x="6" y="4" width="4" height="16"/>',
|
||||
'<rect x="14" y="4" width="4" height="16"/>'
|
||||
])
|
||||
|
||||
# Eye icon
|
||||
create_svg('eye.svg', [
|
||||
'<path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/>',
|
||||
'<circle cx="12" cy="12" r="3"/>'
|
||||
])
|
||||
|
||||
# Eye Off icon
|
||||
create_svg('eye-off.svg', [
|
||||
'<path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"/>',
|
||||
'<line x1="1" y1="1" x2="23" y2="23"/>'
|
||||
])
|
||||
|
||||
print(f'\nTotal icons created: {len(os.listdir(icons_dir)) - 1}') # Exclude test.txt
|
||||
print('Icon generation complete!')
|
||||
0
vue/package-lock.json → package-lock.json
generated
8
public/icon/add-file.svg
Normal file
@ -0,0 +1,8 @@
|
||||
<!-- 添加文件图标:文档+加号 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/>
|
||||
<polyline points="14 2 14 8 20 8"/>
|
||||
<!-- 加号(青绿色) -->
|
||||
<line x1="12" y1="13" x2="12" y2="19" stroke="#2dd4bf" stroke-width="2"/>
|
||||
<line x1="9" y1="16" x2="15" y2="16" stroke="#2dd4bf" stroke-width="2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 525 B |
7
public/icon/add-folder.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<!-- 添加文件夹图标:文件夹+加号 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/>
|
||||
<!-- 加号(青绿色) -->
|
||||
<line x1="12" y1="11" x2="12" y2="17" stroke="#2dd4bf" stroke-width="2"/>
|
||||
<line x1="9" y1="14" x2="15" y2="14" stroke="#2dd4bf" stroke-width="2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 510 B |
10
public/icon/batch-delete.svg
Normal file
@ -0,0 +1,10 @@
|
||||
<!-- 批量删除图标:垃圾桶+列表 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M3 6h18"/>
|
||||
<path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"/>
|
||||
<path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/>
|
||||
<!-- 列表线(青绿色) -->
|
||||
<line x1="10" y1="11" x2="10" y2="17" stroke="#2dd4bf" stroke-width="1.5"/>
|
||||
<line x1="14" y1="11" x2="14" y2="17" stroke="#2dd4bf" stroke-width="1.5"/>
|
||||
<line x1="9" y1="9" x2="15" y2="9" stroke="#2dd4bf" stroke-width="1"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 628 B |
13
public/icon/batch-scrape.svg
Normal file
@ -0,0 +1,13 @@
|
||||
<!-- 批量刮削图标:电影+列表 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="3" y="6" width="18" height="14" rx="1"/>
|
||||
<path d="M3 10h18"/>
|
||||
<path d="M7 6V3"/>
|
||||
<path d="M12 6V3"/>
|
||||
<path d="M17 6V3"/>
|
||||
<!-- 场记板条纹(青绿色) -->
|
||||
<line x1="5" y1="8" x2="7" y2="8" stroke="#2dd4bf" stroke-width="1.5"/>
|
||||
<line x1="9" y1="8" x2="11" y2="8" stroke="#2dd4bf" stroke-width="1.5"/>
|
||||
<line x1="13" y1="8" x2="15" y2="8" stroke="#2dd4bf" stroke-width="1.5"/>
|
||||
<line x1="17" y1="8" x2="19" y2="8" stroke="#2dd4bf" stroke-width="1.5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 713 B |
8
public/icon/cast.svg
Normal file
@ -0,0 +1,8 @@
|
||||
<!-- 主演图标:面具/戏剧 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M2 12c0-5 4-9 10-9s10 4 10 9"/>
|
||||
<path d="M2 12c0 3 2 5 4 5s3-2 4-5"/>
|
||||
<path d="M14 12c1 3 2 5 4 5s4-2 4-5"/>
|
||||
<!-- 面具高亮(青绿色) -->
|
||||
<path d="M2 12c0 3 2 5 4 5s3-2 4-5" fill="#2dd4bf" stroke="#2dd4bf" stroke-width="0.3" opacity="0.2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 492 B |
5
public/icon/checkbox.svg
Normal file
@ -0,0 +1,5 @@
|
||||
<!-- 多选图标:复选框+对勾 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="3" y="3" width="18" height="18" rx="3"/>
|
||||
<path d="M7 12l3.5 3.5L17 9" stroke="#2dd4bf" stroke-width="2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 346 B |
7
public/icon/close.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<!-- 关闭图标:X -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<line x1="18" y1="6" x2="6" y2="18"/>
|
||||
<line x1="6" y1="6" x2="18" y2="18"/>
|
||||
<!-- 关闭线高亮(青绿色) -->
|
||||
<line x1="18" y1="6" x2="6" y2="18" stroke="#2dd4bf" stroke-width="1.2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 410 B |
10
public/icon/delete.svg
Normal file
@ -0,0 +1,10 @@
|
||||
<!-- 删除图标:垃圾桶 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M3 6h18"/>
|
||||
<path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"/>
|
||||
<path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/>
|
||||
<line x1="10" y1="11" x2="10" y2="17"/>
|
||||
<line x1="14" y1="11" x2="14" y2="17"/>
|
||||
<!-- 桶身高亮(青绿色) -->
|
||||
<path d="M9 6v12a1 1 0 0 0 1 1h4a1 1 0 0 0 1-1V6" stroke="#2dd4bf" stroke-width="0.8" opacity="0.3"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 577 B |
7
public/icon/description.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<!-- 简介图标:打开的书 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/>
|
||||
<path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/>
|
||||
<!-- 书页高亮(青绿色) -->
|
||||
<path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" fill="#2dd4bf" stroke="#2dd4bf" stroke-width="0.3" opacity="0.15"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 495 B |
10
public/icon/detail.svg
Normal file
@ -0,0 +1,10 @@
|
||||
<!-- 详情图标:文档+放大镜 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/>
|
||||
<polyline points="14 2 14 8 20 8"/>
|
||||
<line x1="8" y1="13" x2="16" y2="13"/>
|
||||
<line x1="8" y1="17" x2="12" y2="17"/>
|
||||
<!-- 放大镜(青绿色) -->
|
||||
<circle cx="17" cy="17" r="3" stroke="#2dd4bf" stroke-width="1.5"/>
|
||||
<line x1="19.5" y1="19.5" x2="22" y2="22" stroke="#2dd4bf" stroke-width="1.5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 608 B |
7
public/icon/edit.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<!-- 编辑图标:铅笔 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/>
|
||||
<path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"/>
|
||||
<!-- 铅笔尖高亮(青绿色) -->
|
||||
<path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4z" fill="#2dd4bf" stroke="#2dd4bf" stroke-width="0.3" opacity="0.2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 529 B |
8
public/icon/export.svg
Normal file
@ -0,0 +1,8 @@
|
||||
<!-- 导出图标:上传箭头 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>
|
||||
<polyline points="17 8 12 3 7 8"/>
|
||||
<line x1="12" y1="3" x2="12" y2="15"/>
|
||||
<!-- 箭头高亮(青绿色) -->
|
||||
<polyline points="17 8 12 3 7 8" stroke="#2dd4bf" stroke-width="1.2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 469 B |
7
public/icon/eye-off.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<!-- 隐藏图标:眼睛+斜线 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"/>
|
||||
<line x1="1" y1="1" x2="23" y2="23"/>
|
||||
<!-- 斜线高亮(青绿色) -->
|
||||
<line x1="1" y1="1" x2="23" y2="23" stroke="#2dd4bf" stroke-width="1.2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 574 B |
7
public/icon/eye.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<!-- 显示图标:眼睛 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/>
|
||||
<circle cx="12" cy="12" r="3"/>
|
||||
<!-- 眼睛高亮(青绿色) -->
|
||||
<circle cx="12" cy="12" r="1.5" fill="#2dd4bf" stroke="#2dd4bf" stroke-width="0.5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 436 B |
9
public/icon/fail.svg
Normal file
@ -0,0 +1,9 @@
|
||||
<!-- 失败图标:叉号圆圈 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="9"/>
|
||||
<line x1="9" y1="9" x2="15" y2="15"/>
|
||||
<line x1="15" y1="9" x2="9" y2="15"/>
|
||||
<!-- 叉号高亮(青绿色) -->
|
||||
<line x1="9" y1="9" x2="15" y2="15" stroke="#2dd4bf" stroke-width="1.5"/>
|
||||
<line x1="15" y1="9" x2="9" y2="15" stroke="#2dd4bf" stroke-width="1.5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 528 B |
9
public/icon/file.svg
Normal file
@ -0,0 +1,9 @@
|
||||
<!-- 文件图标:文档 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/>
|
||||
<polyline points="14 2 14 8 20 8"/>
|
||||
<line x1="8" y1="13" x2="16" y2="13"/>
|
||||
<line x1="8" y1="17" x2="13" y2="17"/>
|
||||
<!-- 文件折角高亮(青绿色) -->
|
||||
<polyline points="14 2 14 8 20 8" stroke="#2dd4bf" stroke-width="1" opacity="0.5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 541 B |
7
public/icon/folder-open.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<!-- 打开的文件夹图标 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/>
|
||||
<path d="M2 10h20"/>
|
||||
<!-- 文件夹内部高亮(青绿色) -->
|
||||
<path d="M4 10h16v7a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-7z" fill="#2dd4bf" stroke="#2dd4bf" stroke-width="0.3" opacity="0.15"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 506 B |
7
public/icon/folder-refresh.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<!-- 刷新文件夹图标:文件夹+刷新箭头 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/>
|
||||
<!-- 刷新箭头(青绿色) -->
|
||||
<path d="M14 13a3 3 0 1 1-1-2.2L14 12" stroke="#2dd4bf" stroke-width="1.5"/>
|
||||
<polyline points="12 10 14 12 16 10" stroke="#2dd4bf" stroke-width="1.5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 527 B |
6
public/icon/folder.svg
Normal file
@ -0,0 +1,6 @@
|
||||
<!-- 文件夹图标:关闭状态 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/>
|
||||
<!-- 文件夹标签高亮(青绿色) -->
|
||||
<path d="M4 5h5l2 3h9" stroke="#2dd4bf" stroke-width="1" opacity="0.4"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 439 B |
8
public/icon/globe.svg
Normal file
@ -0,0 +1,8 @@
|
||||
<!-- 网络图标:地球 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="10"/>
|
||||
<line x1="2" y1="12" x2="22" y2="12"/>
|
||||
<path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/>
|
||||
<!-- 地球高亮(青绿色) -->
|
||||
<path d="M12 2a15.3 15.3 0 0 1 4 10" stroke="#2dd4bf" stroke-width="1.2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 514 B |
8
public/icon/info.svg
Normal file
@ -0,0 +1,8 @@
|
||||
<!-- 信息图标:圆圈i -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="10"/>
|
||||
<line x1="12" y1="16" x2="12" y2="12"/>
|
||||
<line x1="12" y1="8" x2="12.01" y2="8"/>
|
||||
<!-- 信息符号高亮(青绿色) -->
|
||||
<line x1="12" y1="16" x2="12" y2="12" stroke="#2dd4bf" stroke-width="1.5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 461 B |
7
public/icon/link.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<!-- 链接图标:链条 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/>
|
||||
<path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/>
|
||||
<!-- 链条连接处高亮(青绿色) -->
|
||||
<path d="M10 13a5 5 0 0 0 2 1.5" stroke="#2dd4bf" stroke-width="1.2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 487 B |
10
public/icon/log.svg
Normal file
@ -0,0 +1,10 @@
|
||||
<!-- 日志图标:剪贴板 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/>
|
||||
<rect x="8" y="2" width="8" height="4" rx="1" ry="1"/>
|
||||
<line x1="8" y1="10" x2="16" y2="10"/>
|
||||
<line x1="8" y1="14" x2="16" y2="14"/>
|
||||
<line x1="8" y1="18" x2="12" y2="18"/>
|
||||
<!-- 日志条目高亮(青绿色) -->
|
||||
<line x1="8" y1="10" x2="11" y2="10" stroke="#2dd4bf" stroke-width="1.5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 609 B |
8
public/icon/logout.svg
Normal file
@ -0,0 +1,8 @@
|
||||
<!-- 退出图标:门+箭头 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/>
|
||||
<polyline points="16 17 21 12 16 7"/>
|
||||
<line x1="21" y1="12" x2="9" y2="12"/>
|
||||
<!-- 箭头高亮(青绿色) -->
|
||||
<polyline points="16 17 21 12 16 7" stroke="#2dd4bf" stroke-width="1.2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 471 B |
11
public/icon/movie.svg
Normal file
@ -0,0 +1,11 @@
|
||||
<!-- 电影图标:场记板 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="3" y="6" width="18" height="14" rx="1"/>
|
||||
<path d="M3 10h18"/>
|
||||
<path d="M7 6V3"/>
|
||||
<path d="M12 6V3"/>
|
||||
<path d="M17 6V3"/>
|
||||
<!-- 场记板条纹高亮(青绿色) -->
|
||||
<line x1="5" y1="8" x2="7" y2="8" stroke="#2dd4bf" stroke-width="1.5"/>
|
||||
<line x1="9" y1="8" x2="11" y2="8" stroke="#2dd4bf" stroke-width="1.5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 557 B |
10
public/icon/network.svg
Normal file
@ -0,0 +1,10 @@
|
||||
<!-- 内外网切换图标:双向箭头 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="#374151" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<line x1="4" y1="8" x2="20" y2="8"/>
|
||||
<polyline points="16 4 20 8 16 12"/>
|
||||
<line x1="20" y1="16" x2="4" y2="16"/>
|
||||
<polyline points="8 12 4 16 8 20"/>
|
||||
<!-- 箭头高亮(青绿色) -->
|
||||
<polyline points="16 4 20 8 16 12" stroke="#2dd4bf" stroke-width="1.2"/>
|
||||
<polyline points="8 12 4 16 8 20" stroke="#2dd4bf" stroke-width="1.2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 577 B |