- verifyStaging 硬化(services/api/src/ads/ads.service.ts):新增键前缀核验 (仅 OBJECT_KEY_ROOT/ads/staging/ 布局,防照片域任意键被提升为公开广告) 与运行时 2MB 上限(head.bytes > AD_UPLOAD_MAX_BYTES → 400 报文含限额值 ——init 申明管不住实际 PUT 体,create/update 是唯一核验点);e2e ⑰ 以 测试 storage 直接 presignPut 真实对象覆盖两分支 - 失效绑定编辑 400(admin AdsFormDialog):PATCH 仅在 albumIds 实际变化时 携带(albumIdsChanged 序敏感深比较,纯函数落 adsLogic + vitest 用例); preloadOptions 解析失败的绑定 ID 加「已失效,可移除」后缀(zh/en 新增 adsManage.form.staleAlbum)——软删绑定不再挡住其它字段保存 - 白名单去 heic(原图直出无变体兜底,Chromium/Firefox 不渲染=破图): contracts 三处 enum 收窄 [image/jpeg, image/png] 并重生成类型;dto 定义 广告域独立 AD_IMAGE_CONTENT_TYPES(与照片域 UPLOAD_CONTENT_TYPES 分离), AD_IMAGE_EXTENSIONS 由其派生;init 对 .heic 文件名以广告域集合二次核验 拒绝(共享 extOfFilename 仍认 heic,杜绝 init 放行→create 中段断裂); e2e heic 矩阵 400;admin accept/文案/类型同步收窄 - searchAlbums 补 catch(http 层已弹 toast,本地静默保持旧选项) - ActivityPage 关闭记忆测试补位(activity.spec):dismissed 不拉取不渲染、 close 写 sessionStorage 并清空轮播两用例(getPublicAds 入替身防真实 fetch) Co-Authored-By: Claude Code <noreply@anthropic.com>
Art Design Pro
A backend system template that combines design aesthetics with efficient development, helping you quickly build professional-grade applications
What makes this project special?
Interface Design: Modern UI design with smooth interactions, focusing on user experience and visual design
Quick Start: Clean architecture + comprehensive documentation, easy for backend developers to use
Rich Components: Built-in high-quality components for data display, forms, and more to meet different business scenarios
Smooth Interactions: Button clicks, theme switching, page transitions, chart animations - experience comparable to commercial products
Efficient Development: Built-in practical APIs like useTable and ArtForm to significantly improve development efficiency
Clean Scripts: Built-in one-click cleanup script to quickly remove demo data and get a ready-to-develop base project
Tech Stack
Development Framework: Vue3, TypeScript, Vite, Element-Plus, Tailwind CSS
Code Standards: Eslint, Prettier, Stylelint, Husky, Lint-staged, cz-git
Preview
Quick Access
Live Demo | Official Documentation | Changelog
Installation & Setup
# Install dependencies
pnpm install
# If pnpm install fails, try using the command below
pnpm install --ignore-scripts
# Start local development environment
pnpm dev
# Build for production
pnpm build
Clean Version
The project includes a cleanup script to quickly remove demo data and provide developers with a ready-to-develop base project
pnpm clean:dev
Technical Support
QQ Group: 1038930070 (Click the link to join the group chat)
Browser Compatibility
Supports modern mainstream browsers including Chrome, Safari, Firefox, and more.
Contributing
We sincerely welcome and appreciate the support of every contributor! Whether you have new ideas, feature suggestions, or code optimizations, you can participate in the following ways:
Submit Pull Requests: Share your code and help the project grow.
Create GitHub Issues: Provide bug feedback or new feature suggestions to help us improve together.
Every contribution you make takes this project one step further! Come join our open source community!
Continuous Optimization & Extension
The project maintains active updates, supports the latest frontend tech stack, is compatible with mainstream frameworks, and ensures long-term stability and extensibility. Community-driven feedback mechanisms allow your needs to be quickly integrated into project iterations.
Donation
If you feel this project has reduced your development costs and solved problems in your work/life, you can support us through the following ways:



