From 42146aedf4e68ff21e05891b13974c468ee61644 Mon Sep 17 00:00:00 2001 From: liRQ <813144884@qq.com> Date: Wed, 1 Jul 2026 18:22:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=A4=9A=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E5=9B=BE=E6=A0=87=E7=94=9F=E6=88=90=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E4=B8=8E=E8=A7=86=E5=9B=BE=E5=88=87=E6=8D=A2=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96=E5=88=86=E9=A1=B5=E4=B8=8E=E6=9A=97?= =?UTF-8?q?=E9=BB=91=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 新增Python/JS版图标生成脚本,批量创建标准化SVG图标 2. 重构页面视图切换逻辑,添加平滑过渡动画 3. 升级登录日志分页系统,支持页码跳转与页大小调整 4. 完善暗黑模式样式适配,覆盖更多UI组件 5. 优化海报展示适配,根据图片比例自动调整布局 --- create_icons.py | Bin 0 -> 178 bytes gen_icons.js | 20 + gen_icons.py | 175 +++++++++ src/App.vue | 255 ++++++++++--- src/style.css | 947 +++++++++++++++++++++++++++++++++++++++++++++++- 5 files changed, 1343 insertions(+), 54 deletions(-) create mode 100644 create_icons.py create mode 100644 gen_icons.js create mode 100644 gen_icons.py diff --git a/create_icons.py b/create_icons.py new file mode 100644 index 0000000000000000000000000000000000000000..08704a9b85839482ebc4563c8430da6db93dd1a3 GIT binary patch literal 178 zcmXYqJqp4=5Jq1uc!yx6AbJ81U~d_as414HSvDI;F0Vc|HZ#ok^XB^ryomH9GL?H^ z&8qB!PD4k_gP=dKWn(5Xa^tCX=U8UXTeoJf+cK#Q(ymfEPF(Dc>bpXYUcr2pR&$oI Vw5$J@Rwb(?W@*V@qcfXb`aeT9Amji5 literal 0 HcmV?d00001 diff --git a/gen_icons.js b/gen_icons.js new file mode 100644 index 0000000..f6b3893 --- /dev/null +++ b/gen_icons.js @@ -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' }, diff --git a/gen_icons.py b/gen_icons.py new file mode 100644 index 0000000..800d5ce --- /dev/null +++ b/gen_icons.py @@ -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 = ''' +{} +'''.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', [ + '', + '' +]) + +# Search icon +create_svg('search.svg', [ + '', + '' +]) + +# Settings icon +create_svg('settings.svg', [ + '', + '' +]) + +# User icon +create_svg('user.svg', [ + '', + '' +]) + +# Folder icon (filled) +create_svg('folder.svg', [ + '' +], fill=True) + +# File icon +create_svg('file.svg', [ + '', + '' +]) + +# Download icon +create_svg('download.svg', [ + '', + '', + '' +]) + +# Upload icon +create_svg('upload.svg', [ + '', + '', + '' +]) + +# Share icon +create_svg('share.svg', [ + '', + '', + '', + '', + '' +]) + +# Favorite/Like icon (filled) +create_svg('favorite.svg', [ + '' +], fill=True) + +# Delete icon +create_svg('delete.svg', [ + '', + '' +], color=DANGER_COLOR) + +# Edit icon +create_svg('edit.svg', [ + '', + '' +]) + +# Add icon +create_svg('add.svg', [ + '', + '', + '' +]) + +# Back/Arrow Left icon +create_svg('back.svg', [ + '', + '' +]) + +# More/Options icon (three dots) +create_svg('more.svg', [ + '', + '', + '' +], fill=True) + +# Cloud icon +create_svg('cloud.svg', [ + '' +]) + +# Drive/Server icon +create_svg('drive.svg', [ + '', + '', + '' +]) + +# Log/File Text icon +create_svg('log.svg', [ + '', + '', + '', + '', + '' +]) + +# Close icon +create_svg('close.svg', [ + '', + '' +]) + +# Check/Verify icon +create_svg('check.svg', [ + '' +], color=SUCCESS_COLOR) + +# Play icon +create_svg('play.svg', [ + '' +], fill=True) + +# Pause icon +create_svg('pause.svg', [ + '', + '' +]) + +# Eye icon +create_svg('eye.svg', [ + '', + '' +]) + +# Eye Off icon +create_svg('eye-off.svg', [ + '', + '' +]) + +print(f'\nTotal icons created: {len(os.listdir(icons_dir)) - 1}') # Exclude test.txt +print('Icon generation complete!') \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index 640b408..acc023a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -179,13 +179,10 @@
- -