签入版本

This commit is contained in:
2026-10-27 16:15:53 +08:00
parent 06a855c0f4
commit de8edd1b3c
129 changed files with 141 additions and 141 deletions
@@ -22,7 +22,7 @@ export const slugify = (str: string): string =>
.replace(/^(\d)/, "_$1");
export const sharedConfig = defineConfig({
title: "小蚂蚁云",
title: "DjangoAdmin",
// 页面 <title> 后缀:「环境准备 | DjangoAdmin 开发文档」(index.md frontmatter 可覆盖)
titleTemplate: "DjangoAdmin 开发文档",
appearance: "light",
@@ -71,8 +71,8 @@ const isVideoOpen = ref(false);
target="_blank"
rel="noopener"
>
小蚂蚁云
<img src="../../../public/logo.svg" alt="小蚂蚁云" />
DjangoAdmin
<img src="../../../public/logo.svg" alt="DjangoAdmin" />
</a>
{{ translations.watchMoreB[site.lang] }}
</div>
@@ -17,7 +17,7 @@ const theme: Theme = {
{ class: "image-src" },
h("img", {
src: "/logo.png",
alt: "小蚂蚁云",
alt: "DjangoAdmin",
}),
),
"aside-ads-before": () => h(AsideSponsors),
@@ -2,7 +2,7 @@
API 接口速查表,按模块分组列出所有 RESTful 接口的请求方法、路径、说明和权限标识。
:::
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
# API 接口速查表
@@ -1,6 +1,6 @@
# API 层开发
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
前端 API 层位于 `src/api/` 目录,封装所有与后端的 HTTP 请求。底层基于 Axios 封装了 `VAxios` 类(位于 `src/utils/http/axios/`),提供请求拦截、响应解包、错误处理、重复请求取消等能力。
@@ -1,6 +1,6 @@
# 前端构建
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
前端使用 Vite 构建,支持开发服务器和生产构建。`vite.config.ts` 通过环境变量和插件系统管理构建配置,生产环境推荐使用 Nginx 部署。
@@ -1,6 +1,6 @@
# 公共组件库
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
项目提供丰富的公共组件,位于 `ui/src/components/` 目录,基于 NaiveUI 二次封装,覆盖表格、表单、弹窗、上传、富文本编辑等常见场景。组件通过 `src/plugins/` 中的 `setupCustomComponents` 全局注册,任何页面直接使用,无需单独 import。
@@ -1,6 +1,6 @@
# BasicForm 表单
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
`BasicForm` 位于 `src/components/Form/src/BasicForm.vue`,基于 NaiveUI 的 `n-form` 二次封装,通过 schemas 配置化定义表单字段,支持查询表单和业务表单两种模式。
@@ -1,6 +1,6 @@
# Hooks 组合式函数
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
项目封装了一系列组合式函数(Hooks),位于 `src/hooks/` 和 `src/utils/` 目录,提供权限检查、异步 loading、防重复提交、实时时钟、项目配置等可复用逻辑。
@@ -1,6 +1,6 @@
# 国际化
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
当前项目仅支持中文界面,NaiveUI 使用中文语言包(`zhCN`),所有界面文本直接硬编码在组件中。如需扩展多语言支持,可基于 vue-i18n 实现。
@@ -1,6 +1,6 @@
# Modal 弹窗
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
项目使用 `basicModal` 组件(`src/components/Modal/src/BasicModal.vue`)配合 `useModal` hook 实现弹窗。编辑弹窗通过 `v-if` 懒加载,减少首屏渲染负担。
@@ -1,6 +1,6 @@
# 权限指令 v-perm
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
`v-perm` 和 `v-perms` 是项目自定义的 Vue 指令,用于按钮级别的权限控制,无权限时自动从 DOM 中移除元素。底层通过 `usePermission` Hook 检查用户权限列表。
@@ -1,6 +1,6 @@
# 路由与菜单
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
前端路由基于 Vue Router 4 实现动态路由生成,菜单数据从后端获取,通过 `generator-routers.ts` 递归生成路由表,路由守卫控制登录状态和权限。
@@ -1,6 +1,6 @@
# 前端环境与结构
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
前端基于 Vue3 + NaiveUI 构建,使用 pnpm 作为包管理工具,Vite 作为构建工具,TypeScript 作为开发语言。
@@ -1,6 +1,6 @@
# Store 状态管理
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
前端使用 Pinia 进行状态管理,核心模块包括 `user`(用户信息与权限)、`asyncRoute`(动态路由与菜单)、`projectSetting`(项目配置)、`designSetting`(主题设计)等。
@@ -1,6 +1,6 @@
# 样式与主题
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
前端样式方案采用 Tailwind CSS + SCSS + NaiveUI 主题覆盖,支持深色模式切换。全局 SCSS 变量通过 Vite 的 `additionalData` 注入。
@@ -1,6 +1,6 @@
# BasicTable 表格
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
`BasicTable` 位于 `src/components/Table/src/Table.vue`,基于 NaiveUI 的 `n-data-table` 二次封装,提供列定义、数据请求、分页、操作列、多选、全屏、密度调整、列设置等能力。
@@ -1,6 +1,6 @@
# 工具函数
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
前端工具函数位于 `src/utils/` 目录,提供认证管理、本地存储、日期格式化、树结构操作、文件下载等通用能力。
@@ -1,6 +1,6 @@
# 页面视图开发
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
页面视图位于 `src/views/` 目录,每个业务模块遵循 `index.vue`(列表页)+ `edit.vue`(编辑弹窗)+ `detail.vue`(详情弹窗)的标准模式,辅以 `columns.ts`(列定义)和 `querySchemas.ts`(搜索表单)配置文件。
@@ -1,6 +1,6 @@
# 接口响应规范
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
后端所有接口统一返回 `R.ok()` / `R.failed()` 格式的 JSON 响应,前端通过 `VAxios` 的 `transformRequestData` 拦截器统一解包处理。
@@ -1,6 +1,6 @@
# 权限节点联动
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
前后端权限通过统一的权限节点字符串联动,后端 `PermissionRequired` 中间件校验权限,前端 `v-perm` 指令和 `TableAction` 的 `auth` 属性控制按钮显示。
@@ -1,6 +1,6 @@
# 代理配置
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
开发环境通过 Vite 代理转发 API 请求到后端 Django 服务,生产环境通过 Nginx 代理。代理配置由 `VITE_PROXY` 环境变量控制。
@@ -1,6 +1,6 @@
# 文件上传联调
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
文件上传涉及前端 Upload 组件、后端上传接口和 URL 拼接三个环节,需要前后端协同配置。
@@ -1,6 +1,6 @@
# 数据库与 ORM
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
项目使用 Django ORM 作为数据库访问层,数据库连接配置位于 `config/env.py` 和 `application/settings.py`。默认使用 MySQL 数据库,通过 `django.db.backends.mysql` 引擎连接。
@@ -1,6 +1,6 @@
# 导入导出
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
基于 `openpyxl` 实现 Excel 导入导出功能,支持通过 `file_template` 模块管理导入模板配置。
@@ -1,6 +1,6 @@
# IP/UA 解析
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
提供客户端 IP 获取、IP 地理位置查询和 User-Agent 解析三大能力,位于 `utils/common.py`。三者组合使用,为登录日志、操作日志等场景提供客户端身份信息。
@@ -1,6 +1,6 @@
# 日志系统
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
通过 Python 标准库 `logging` 实现结构化日志,Django 框架内置日志配置,支持控制台 + 文件双输出。各模块通过 `logging.getLogger(__name__)` 获取 logger 实例。
@@ -1,6 +1,6 @@
# 密码工具
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
密码加密使用 Django 内置的 `make_password` 和 `check_password` 函数,基于 PBKDF2 算法(默认工作因子 320000 次迭代)。用户安全信息获取工具位于 `utils/security.py`。
@@ -1,6 +1,6 @@
# 权限缓存
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
通过 Redis 实现用户权限和菜单的缓存,采用用户级缓存 + 全局版本号双层策略。权限查询函数位于 `application/menu/services.py`,供 `PermissionRequired` 中间件调用。
@@ -1,6 +1,6 @@
# 请求解析工具
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
`utils/common.py` 提供请求数据解析相关的工具函数,核心函数 `parse_request_body()` 用于解析请求体 JSON 数据。这些工具函数在各业务模块中广泛使用。
@@ -1,6 +1,6 @@
# 富文本过滤
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
富文本编辑器内容存在存储型 XSS 风险,通过 `save_content()` 函数实现 HTML 内容处理,在落盘前统一过滤危险内容并迁移嵌入图片。源码位于 `utils/common.py`,涉及富文本的模块(文章、通知公告等)均调用 `save_content()` 处理。
@@ -1,6 +1,6 @@
# 文件上传完整流程
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
本章从配置到使用,完整说明文件上传功能的实现方式,包括后端接口、前端组件、安全机制和最佳实践。
@@ -1,6 +1,6 @@
# 文件上传
<!-- Copyright (c) 2021-2026 小蚂蚁云团队 版权所有 -->
:::tip 说明
提供本地文件上传功能,支持图片和通用文件上传,内置扩展名白名单校验。服务层位于 `application/upload/services.py`,视图层位于 `application/upload/views.py`。