diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..23f5a47 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,10 @@ +# Django-Vue3-Admin 更新日志 + +## 正式发布v3.0.0版本 +### 1.新增:列权限管理与授权; +### 2.新增:代码新版本发布后,进行升级提醒; +### 3.优化:角色管理中按钮权限的操作; +### 4.优化:websocket 连接状态显示; +### 5.优化:初始化获取系统配置与字典配置,进行动态渲染登录页面; +### 6.修复:登录页面中系统配置不生效问题; +### 7.其他优化 \ No newline at end of file diff --git a/README.en.md b/README.en.md index c1c742b..684b078 100644 --- a/README.en.md +++ b/README.en.md @@ -1,14 +1,14 @@ # Django-Vue3-Admin -[![img](https://img.shields.io/badge/license-MIT-blue.svg)](https://gitee.com/liqianglog/django-vue-admin/blob/master/LICENSE) [![img](https://img.shields.io/badge/python-%3E=3.7.x-green.svg)](https://python.org/) [![PyPI - Django Version badge](https://img.shields.io/badge/django%20versions-3.2-blue)](https://docs.djangoproject.com/zh-hans/3.2/) [![img](https://img.shields.io/badge/node-%3E%3D%2012.0.0-brightgreen)](https://nodejs.org/zh-cn/) [![img](https://gitee.com/liqianglog/django-vue-admin/badge/star.svg?theme=dark)](https://gitee.com/liqianglog/django-vue-admin) +[![img](https://img.shields.io/badge/license-MIT-blue.svg)](https://gitee.com/huge-dream/django-vue3-admin/blob/master/LICENSE) [![img](https://img.shields.io/badge/python-%3E=3.7.x-green.svg)](https://python.org/) [![PyPI - Django Version badge](https://img.shields.io/badge/django%20versions-3.2-blue)](https://docs.djangoproject.com/zh-hans/3.2/) [![img](https://img.shields.io/badge/node-%3E%3D%2012.0.0-brightgreen)](https://nodejs.org/zh-cn/) [![img](https://gitee.com/huge-dream/django-vue3-admin/badge/star.svg?theme=dark)](https://gitee.com/huge-dream/django-vue3-admin) [preview](https://demo.dvadmin.com) | [Official website document](https://www.django-vue-admin.com) | [qq group](https://qm.qq.com/cgi-bin/qm/qr?k=fOdnHhC8DJlRHGYSnyhoB8P5rgogA6Vs&jump_from=webapi) | [community](https://bbs.django-vue-admin.com) | [plugins market](https://bbs.django-vue-admin.com/plugMarket.html) | [Github](https://github.com/liqianglog/django-vue-admin) 💡 **「About」** -We are a group of young people who love Code. In this hot era, we hope to calm down and bring some of our colors and colors through code. +It is a completely open-source rapid development platform, provided free for personal use and authorized for group use. +Django-Vue3-Admin is a comprehensive basic development platform based on the RBAC (Role-Based Access Control) model for permission control, with column-level granularity. It follows a frontend-backend separation architecture, with Django and Django Rest Framework used for the backend, and Vue3, Composition API, TypeScript, Vite, and Element Plus used for the frontend. -Because of love, so embrace the future ## framework introduction @@ -18,12 +18,13 @@ Because of love, so embrace the future * 👭The backend uses the Python language Django framework as well as the powerful[Django REST Framework](https://pypi.org/project/djangorestframework)。 * 👫Permission authentication use[Django REST Framework SimpleJWT](https://pypi.org/project/djangorestframework-simplejwt),Supports the multi-terminal authentication system. * 👬Support loading dynamic permission menu, multi - way easy permission control. -* 💏 Special thanks: [vue-next-admin](https://lyt-top.gitee.io/vue-next-admin-doc-preview/). -* 💡 💏 Special thanks:[jetbrains](https://www.jetbrains.com/) To provide a free IntelliJ IDEA license for this open source project. +* 👬Enhanced Column Permission Control, with granularity down to each column. +* 💏Special thanks: [vue-next-admin](https://lyt-top.gitee.io/vue-next-admin-doc-preview/). +* 💡Special thanks:[jetbrains](https://www.jetbrains.com/) To provide a free IntelliJ IDEA license for this open source project. ## Online experience -👩‍👧‍👦👩‍👧‍👦 demo address:[http://demo.django-vue-admin.com](http://demo.django-vue-admin.com) +👩‍👧‍👦👩‍👧‍👦 demo address:[https://demo.dvadmin.com](https://demo.dvadmin.com) * demo account:superadmin @@ -39,57 +40,61 @@ Because of love, so embrace the future ## source code url: -gitee(Main push):[https://gitee.com/liqianglog/django-vue-admin](https://gitee.com/liqianglog/django-vue-admin)👩‍👦‍👦 +gitee(Main push):[https://gitee.com/huge-dream/django-vue3-admin](https://gitee.com/huge-dream/django-vue3-admin)👩‍👦‍👦 -github:[https://github.com/liqianglog/django-vue-admin](https://github.com/liqianglog/django-vue-admin)👩‍👦‍👦 +github:[https://github.com/huge-dream/django-vue3-admin](https://github.com/huge-dream/django-vue3-admin)👩‍👦‍👦 ## core function -1. 👨‍⚕️ Menu management: Configure the system menu, operation permissions, button permissions, back-end interface permissions, etc. -2. 🧑‍⚕️ Department management: Configure the system organization (company, department, role). -3. 👩‍⚕️ Role management: role menu permission allocation, data permission allocation, set roles according to the department for data range permission division. -4. 🧑‍🎓 Rights Specifies the rights of the authorization role. -5. 👨‍🎓 User management: The user is the system operator, this function mainly completes the system user configuration. -6. 👬 Interface whitelist: specifies the interface that does not need permission verification. -7. 🧑‍🔧 Dictionary management: Maintenance of some fixed data frequently used in the system. -8. 🧑‍🔧 Regional management: to manage provinces, cities, counties and regions. -9. 📁 Attachment management: Unified management of all files and pictures on the platform. -10. 🗓 ️operation logs: log and query the system normal operation; Log and query system exception information. -11.🔌 [plugins market] () : based on the Django framework - Vue - Admin application and plug-in development. +1. 👨‍⚕️Menu Management: Configure system menus, operation permissions, button permission flags, backend interface permissions, etc. +2. 🧑‍⚕️Department Management: Configure system organizational structure (company, department, role). +3. 👩‍⚕️Role Management: Role menu permission assignment, data permission assignment, set role-based data scope permissions by department. +4. 🧑‍🎓Button Permission Control: Authorize role-specific button permissions and interface permissions, enabling authorization of data scope for each interface. +5. 🧑‍🎓Field Column Permission Control: Authorize page field display permissions, specifically for the display permissions of a certain column. +6. 👨‍🎓User Management: Users are system operators, and this function is mainly used for system user configuration. +7. 👬API Whitelist: Configure interfaces that do not require permission verification. +8. 🧑‍🔧Dictionary Management: Maintain frequently used and relatively fixed data in the system. +9. 🧑‍🔧Region Management: Manage provinces, cities, counties, and districts. +10. 📁File Management: Unified management of all files, images, etc., on the platform. +11. 🗓️Operation Logs: Record and query logs for normal system operations and exceptional system information. +12. 🔌[Plugin Market](https://bbs.django-vue-admin.com/plugMarket.html): Applications and plugins developed based on the Django-Vue-Admin framework. ## plugins market 🔌 -* Celery Asynchronous task:[dvadmin-celery](https://gitee.com/huge-dream/dvadmin-celery) -* Upgrade center backend:[dvadmin-upgrade-center](https://gitee.com/huge-dream/dvadmin-upgrade-center) -* Upgrade center front:[dvadmin-upgrade-center-web](https://gitee.com/huge-dream/dvadmin-upgrade-center-web) +Updating... + +## Repository Branch Explanation 💈 +Main Branch: master (stable version) +Development Branch: develop ## before start project you need: ~~~ -Python >= 3.8.0 -nodejs >= 14.0 -Mysql >= 5.7.0 (Optional. The default database is sqlite3. 8.0 is recommended) -Redis(Optional, the latest edition) +Python >= 3.11.0 (Minimum version 3.9+) +Node.js >= 16.0 +Mysql >= 8.0 (Optional, default database: SQLite3, supports 5.7+, recommended version: 8.0) +Redis (Optional, latest version) ~~~ ## frontend♝ ```bash # clone code -git clone https://gitee.com/liqianglog/django-vue-admin.git +git clone https://gitee.com/huge-dream/django-vue3-admin.git # enter code dir cd web # install dependence -npm install --registry=https://registry.npm.taobao.org +npm install yarn +yarn install --registry=https://registry.npm.taobao.org # Start service -npm run dev +yarn run dev # Visit http://localhost:8080 in your browser # Parameters such as boot port can be configured in the #.env.development file # Build the production environment -# npm run build +# yarn run build ``` ## backend💈 @@ -111,8 +116,8 @@ npm run dev python3 manage.py init_area 8. start backend python3 manage.py runserver 0.0.0.0:8000 -or daphne : - daphne -b 0.0.0.0 -p 8000 application.asgi:application +or uvicorn : + uvicorn application.asgi:application --port 8000 --host 0.0.0.0 --workers 8 ~~~ ### visit backend swagger @@ -120,12 +125,12 @@ or daphne : * visit url:[http://localhost:8080](http://localhost:8080) (The default address is this one. If you want to change it, follow the configuration file) * account:`superadmin` password:`admin123456` -### docker-compose +### docker-compose ~~~shell docker-compose up -d # Initialize backend data (first execution only) -docker exec -ti dvadmin-django bash +docker exec -ti dvadmin3-django bash python manage.py makemigrations python manage.py migrate python manage.py init_area @@ -147,22 +152,24 @@ docker-compose up -d --build ## Demo screenshot✅ -![image-01](https://images.gitee.com/uploads/images/2022/0530/234137_b58c8f98_5074988.png) +![image-01](https://foruda.gitee.com/images/1701348994587355489/1bc749e7_5074988.png) -![image-02](https://images.gitee.com/uploads/images/2022/0530/234240_39834603_5074988.png) +![image-02](https://foruda.gitee.com/images/1701349037811908960/80d361db_5074988.png) -![image-03](https://images.gitee.com/uploads/images/2022/0530/234339_35e728a0_5074988.png) +![image-03](https://foruda.gitee.com/images/1701349224478845203/954f0a7b_5074988.png) -![image-04](https://images.gitee.com/uploads/images/2022/0530/234426_957036b0_5074988.png) +![image-04](https://foruda.gitee.com/images/1701349248928658877/64926724_5074988.png) -![image-05](https://images.gitee.com/uploads/images/2022/0530/234458_898be492_5074988.png) +![image-05](https://foruda.gitee.com/images/1701349259068943299/1306ba40_5074988.png) -![image-06](https://images.gitee.com/uploads/images/2022/0530/234521_35b40076_5074988.png) +![image-06](https://foruda.gitee.com/images/1701349294894429495/e3b3a8cf_5074988.png) -![image-07](https://images.gitee.com/uploads/images/2022/0530/234615_c2325639_5074988.png) +![image-07](https://foruda.gitee.com/images/1701350432536247561/3b26685e_5074988.png) -![image-08](https://images.gitee.com/uploads/images/2022/0530/234639_1ed6cc93_5074988.png) +![image-08](https://foruda.gitee.com/images/1701350455264771992/b364c57f_5074988.png) + +![image-09](https://foruda.gitee.com/images/1701350479266000753/e4e4f7c5_5074988.png) + +![image-10](https://foruda.gitee.com/images/1701350501421625746/f8dd215e_5074988.png) -![image-09](https://images.gitee.com/uploads/images/2022/0530/234815_cea2c53f_5074988.png) -![image-10](https://images.gitee.com/uploads/images/2022/0530/234840_5f3e5f53_5074988.png) diff --git a/README.md b/README.md index 08f6d41..511caf9 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![img](https://img.shields.io/badge/license-MIT-blue.svg)](https://gitee.com/liqianglog/django-vue-admin/blob/master/LICENSE) [![img](https://img.shields.io/badge/python-%3E=3.7.x-green.svg)](https://python.org/) [![PyPI - Django Version badge](https://img.shields.io/badge/django%20versions-3.2-blue)](https://docs.djangoproject.com/zh-hans/3.2/) [![img](https://img.shields.io/badge/node-%3E%3D%2012.0.0-brightgreen)](https://nodejs.org/zh-cn/) [![img](https://gitee.com/liqianglog/django-vue-admin/badge/star.svg?theme=dark)](https://gitee.com/liqianglog/django-vue-admin) -[预 览](https://demo.dvadmin.com) | [官网文档](https://www.django-vue-admin.com) | [群聊](https://qm.qq.com/cgi-bin/qm/qr?k=fOdnHhC8DJlRHGYSnyhoB8P5rgogA6Vs&jump_from=webapi) | [社区](https://bbs.django-vue-admin.com) | [插件市场](https://bbs.django-vue-admin.com/plugMarket.html) | [Github](https://github.com/liqianglog/django-vue-admin) +[预 览](https://demo.dvadmin.com) | [官网文档](https://www.django-vue-admin.com) | [群聊](https://qm.qq.com/cgi-bin/qm/qr?k=fOdnHhC8DJlRHGYSnyhoB8P5rgogA6Vs&jump_from=webapi) | [社区](https://bbs.django-vue-admin.com) | [插件市场](https://bbs.django-vue-admin.com/plugMarket.html) | [Github](https://github.com/liqianglog/django-vue-admin) @@ -10,11 +10,14 @@ 我们是一群热爱代码的青年,在这个炙热的时代下,我们希望静下心来通过Code带来一点我们的色彩和颜色。 -因为热爱,所以拥抱未来 +因为热爱,所以拥抱未来! + ## 平台简介 -💡 [django-vue3-admin](https://gitee.com/huge-dream/django-vue3-admin.git) 是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。 +💡 [django-vue3-admin](https://gitee.com/huge-dream/django-vue3-admin.git) 是一套全部开源的快速开发平台,毫无保留给个人免费使用、团体授权使用。 + django-vue3-admin 基于RBAC模型的权限控制的一整套基础开发平台,权限粒度达到列级别,前后端分离,后端采用django + django-rest-framework,前端采用基于 vue3 + CompositionAPI + typescript + vite + element plus + @@ -22,20 +25,29 @@ * 👭后端采用 Python 语言 Django 框架以及强大的 [Django REST Framework](https://pypi.org/project/djangorestframework)。 * 👫权限认证使用[Django REST Framework SimpleJWT](https://pypi.org/project/djangorestframework-simplejwt),支持多终端认证系统。 * 👬支持加载动态权限菜单,多方式轻松权限控制。 +* 👬全新的列权限管控,粒度细化到每一列。 * 💏特别鸣谢:[vue-next-admin](https://lyt-top.gitee.io/vue-next-admin-doc-preview/)。 -* 💡 特别感谢[jetbrains](https://www.jetbrains.com/) 为本开源项目提供免费的 IntelliJ IDEA 授权。 +* 💡特别感谢[jetbrains](https://www.jetbrains.com/) 为本开源项目提供免费的 IntelliJ IDEA 授权。 + +#### 🏭 环境支持 + +| Edge | Firefox | Chrome | Safari | +| --------- | ------------ | ----------- | ----------- | +| Edge ≥ 79 | Firefox ≥ 78 | Chrome ≥ 64 | Safari ≥ 12 | + +> 由于 Vue3 不再支持 IE11,故而 ElementPlus 也不支持 IE11 及之前版本。 ## 在线体验 -👩‍👧‍👦演示地址:[http://demo.django-vue-admin.com](http://demo.django-vue-admin.com) +👩‍👧‍👦演示地址:[https://demo.dvadmin.com](https://demo.dvadmin.com) -- 账号:superadmin +- 账号:superadmin - 密码:admin123456 -👩‍👦‍👦文档地址:[https://django-vue-admin.com](https://django-vue-admin.com) +👩‍👦‍👦文档地址:[coding](https://dvadmin-private.coding.net/share/km/cec69f3d-30fe-47d5-bd97-e9e851f0b776/K-2) @@ -46,7 +58,8 @@ - 插件市场:[戳我](https://bbs.django-vue-admin.com/plugMarket.html)👩‍👦‍👦 - django-vue-admin交流01群(已满):812482043 [点击链接加入群聊](https://qm.qq.com/cgi-bin/qm/qr?k=aJVwjDvH-Es4MPJQuoO32N0SucK22TE5&jump_from=webapi) -- django-vue-admin交流02群:687252418 [点击链接加入群聊](https://qm.qq.com/cgi-bin/qm/qr?k=4jJN4IjWGfxJ8YJXbb_gTsuWjR34WLdc&jump_from=webapi) +- django-vue-admin交流02群(已满):687252418 [点击链接加入群聊](https://qm.qq.com/cgi-bin/qm/qr?k=4jJN4IjWGfxJ8YJXbb_gTsuWjR34WLdc&jump_from=webapi) +- django-vue-admin交流03群:442108213 [点击链接加入群聊](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=wsm5oSz3K8dElBYUDtLTcQSEPhINFkl8&authKey=M6sbER0z59ZakgBr5erFeZyFZU15CI52bErNZa%2FxSvvGIuVAbY0N5866v89hm%2FK4&noverify=0&group_code=442108213) - 二维码 @@ -54,10 +67,9 @@ ## 源码地址 -gitee地址(主推):[https://gitee.com/liqianglog/django-vue-admin](https://gitee.com/liqianglog/django-vue-admin)👩‍👦‍👦 - -github地址:[https://github.com/liqianglog/django-vue-admin](https://github.com/liqianglog/django-vue-admin)👩‍👦‍👦 +gitee地址(主推):[https://gitee.com/huge-dream/django-vue3-admin](https://gitee.com/huge-dream/django-vue3-admin)👩‍👦‍👦 +github地址:[https://github.com/huge-dream/django-vue3-admin](https://github.com/huge-dream/django-vue3-admin)👩‍👦‍👦 ## 内置功能 @@ -65,47 +77,51 @@ github地址:[https://github.com/liqianglog/django-vue-admin](https://github.c 1. 👨‍⚕️菜单管理:配置系统菜单,操作权限,按钮权限标识、后端接口权限等。 2. 🧑‍⚕️部门管理:配置系统组织机构(公司、部门、角色)。 3. 👩‍⚕️角色管理:角色菜单权限分配、数据权限分配、设置角色按部门进行数据范围权限划分。 -4. 🧑‍🎓权限权限:授权角色的权限范围。 -5. 👨‍🎓用户管理:用户是系统操作者,该功能主要完成系统用户配置。 -6. 👬接口白名单:配置不需要进行权限校验的接口。 -7. 🧑‍🔧字典管理:对系统中经常使用的一些较为固定的数据进行维护。 -8. 🧑‍🔧地区管理:对省市县区域进行管理。 -9. 📁附件管理:对平台上所有文件、图片等进行统一管理。 -10. 🗓️操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 -11. 🔌[插件市场 ](https://bbs.django-vue-admin.com/plugMarket.html):基于Django-Vue-Admin框架开发的应用和插件。 +4. 🧑‍🎓按钮权限控制:授权角色的按钮权限和接口权限,可做到每一个接口都能授权数据范围。 +5. 🧑‍🎓字段列权限控制:授权页面的字段显示权限,具体到某一列的显示权限。 +7. 👨‍🎓用户管理:用户是系统操作者,该功能主要完成系统用户配置。 +8. 👬接口白名单:配置不需要进行权限校验的接口。 +9. 🧑‍🔧字典管理:对系统中经常使用的一些较为固定的数据进行维护。 +10. 🧑‍🔧地区管理:对省市县区域进行管理。 +11. 📁附件管理:对平台上所有文件、图片等进行统一管理。 +12. 🗓️操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 +13. 🔌[插件市场 ](https://bbs.django-vue-admin.com/plugMarket.html):基于Django-Vue-Admin框架开发的应用和插件。 ## 插件市场 🔌 +更新中... + +## 仓库分支说明 💈 +主分支:master(稳定版本) +开发分支:develop -- Celery异步任务:[dvadmin-celery](https://gitee.com/huge-dream/dvadmin-celery) -- 升级中心后端:[dvadmin-upgrade-center](https://gitee.com/huge-dream/dvadmin-upgrade-center) -- 升级中心前端:[dvadmin-upgrade-center-web](https://gitee.com/huge-dream/dvadmin-upgrade-center-web) ## 准备工作 ~~~ -Python >= 3.8.0 (推荐3.8+版本) -nodejs >= 14.0 (推荐最新) -Mysql >= 5.7.0 (可选,默认数据库sqlite3,推荐8.0版本) -Redis(可选,最新版) +Python >= 3.11.0 (最低3.9+版本) +nodejs >= 16.0 +Mysql >= 8.0 (可选,默认数据库sqlite3,支持5.7+,推荐8.0版本) +Redis (可选,最新版) ~~~ ## 前端♝ ```bash # 克隆项目 -git clone https://gitee.com/liqianglog/django-vue-admin.git +git clone https://gitee.com/huge-dream/django-vue3-admin.git # 进入项目目录 cd web # 安装依赖 -npm install --registry=https://registry.npm.taobao.org +npm install yarn +yarn install --registry=https://registry.npm.taobao.org # 启动服务 -npm run dev +yarn build # 浏览器访问 http://localhost:8080 # .env.development 文件中可配置启动端口等参数 # 构建生产环境 -# npm run build +# yarn run build ``` @@ -129,9 +145,11 @@ npm run dev python3 manage.py init_area 8. 启动项目 python3 manage.py runserver 0.0.0.0:8000 -或使用 daphne : - daphne -b 0.0.0.0 -p 8000 application.asgi:application +或使用 uvicorn : + uvicorn application.asgi:application --port 8000 --host 0.0.0.0 --workers 8 ~~~ +## 开发建议 +前后端backend与web各自单独一个窗口打开进行开发 ### 访问项目 @@ -148,7 +166,7 @@ npm run dev # 先安装docker-compose (自行百度安装),执行此命令等待安装,如有使用celery插件请打开docker-compose.yml中celery 部分注释 docker-compose up -d # 初始化后端数据(第一次执行即可) -docker exec -ti dvadmin-django bash +docker exec -ti dvadmin3-django bash python manage.py makemigrations python manage.py migrate python manage.py init_area @@ -172,25 +190,25 @@ docker-compose up -d --build ## 演示图✅ -![image-01](https://images.gitee.com/uploads/images/2022/0530/234137_b58c8f98_5074988.png) +![image-01](https://foruda.gitee.com/images/1701348994587355489/1bc749e7_5074988.png) -![image-02](https://images.gitee.com/uploads/images/2022/0530/234240_39834603_5074988.png) +![image-02](https://foruda.gitee.com/images/1701349037811908960/80d361db_5074988.png) -![image-03](https://images.gitee.com/uploads/images/2022/0530/234339_35e728a0_5074988.png) +![image-03](https://foruda.gitee.com/images/1701349224478845203/954f0a7b_5074988.png) -![image-04](https://images.gitee.com/uploads/images/2022/0530/234426_957036b0_5074988.png) +![image-04](https://foruda.gitee.com/images/1701349248928658877/64926724_5074988.png) -![image-05](https://images.gitee.com/uploads/images/2022/0530/234458_898be492_5074988.png) +![image-05](https://foruda.gitee.com/images/1701349259068943299/1306ba40_5074988.png) -![image-06](https://images.gitee.com/uploads/images/2022/0530/234521_35b40076_5074988.png) +![image-06](https://foruda.gitee.com/images/1701349294894429495/e3b3a8cf_5074988.png) -![image-07](https://images.gitee.com/uploads/images/2022/0530/234615_c2325639_5074988.png) +![image-07](https://foruda.gitee.com/images/1701350432536247561/3b26685e_5074988.png) -![image-08](https://images.gitee.com/uploads/images/2022/0530/234639_1ed6cc93_5074988.png) +![image-08](https://foruda.gitee.com/images/1701350455264771992/b364c57f_5074988.png) -![image-09](https://images.gitee.com/uploads/images/2022/0530/234815_cea2c53f_5074988.png) +![image-09](https://foruda.gitee.com/images/1701350479266000753/e4e4f7c5_5074988.png) -![image-10](https://images.gitee.com/uploads/images/2022/0530/234840_5f3e5f53_5074988.png) +![image-10](https://foruda.gitee.com/images/1701350501421625746/f8dd215e_5074988.png) diff --git a/backend/application/settings.py b/backend/application/settings.py index 699b77a..590c144 100644 --- a/backend/application/settings.py +++ b/backend/application/settings.py @@ -43,10 +43,8 @@ sys.path.insert(0, os.path.join(PLUGINS_PATH)) DEBUG = locals().get("DEBUG", True) ALLOWED_HOSTS = locals().get("ALLOWED_HOSTS", ["*"]) -# Application definition -CUSTOM_APPS = [ - "dvadmin.system", -] +# 列权限需要排除的App应用 +COLUMN_EXCLUDE_APPS = ['channels', 'captcha'] + locals().get("COLUMN_EXCLUDE_APPS", []) INSTALLED_APPS = [ "django.contrib.auth", @@ -60,8 +58,8 @@ INSTALLED_APPS = [ "corsheaders", # 注册跨域app "drf_yasg", "captcha", - 'channels', - *CUSTOM_APPS, + "channels", + "dvadmin.system", ] MIDDLEWARE = [ diff --git a/backend/conf/env.example.py b/backend/conf/env.example.py index ffc6afa..03e8c1b 100644 --- a/backend/conf/env.example.py +++ b/backend/conf/env.example.py @@ -44,4 +44,5 @@ LOGIN_NO_CAPTCHA_AUTH = True # ================================================= # ALLOWED_HOSTS = ["*"] -CUSTOM_APPS = [] +# 列权限中排除App应用 +COLUMN_EXCLUDE_APPS = [] diff --git a/backend/dvadmin/system/fixtures/init_systemconfig.json b/backend/dvadmin/system/fixtures/init_systemconfig.json index c32606e..c2326aa 100644 --- a/backend/dvadmin/system/fixtures/init_systemconfig.json +++ b/backend/dvadmin/system/fixtures/init_systemconfig.json @@ -130,7 +130,7 @@ "parent": 1, "title": "版权信息", "key": "copyright", - "value": "2021-2022 django-vue-admin.com 版权所有", + "value": "2021-2024 django-vue-admin.com 版权所有", "sort": 4, "status": true, "data_options": null, diff --git a/backend/dvadmin/utils/models.py b/backend/dvadmin/utils/models.py index e331528..fb0c2ba 100644 --- a/backend/dvadmin/utils/models.py +++ b/backend/dvadmin/utils/models.py @@ -13,6 +13,7 @@ from django.db import models from django.conf import settings from application import settings + table_prefix = settings.TABLE_PREFIX # 数据库表名前缀 @@ -71,10 +72,13 @@ class CoreModel(models.Model): id = models.BigAutoField(primary_key=True, help_text="Id", verbose_name="Id") description = models.CharField(max_length=255, verbose_name="描述", null=True, blank=True, help_text="描述") creator = models.ForeignKey(to=settings.AUTH_USER_MODEL, related_query_name='creator_query', null=True, - verbose_name='创建人', help_text="创建人", on_delete=models.SET_NULL, db_constraint=False) + verbose_name='创建人', help_text="创建人", on_delete=models.SET_NULL, + db_constraint=False) modifier = models.CharField(max_length=255, null=True, blank=True, help_text="修改人", verbose_name="修改人") - dept_belong_id = models.CharField(max_length=255, help_text="数据归属部门", null=True, blank=True, verbose_name="数据归属部门") - update_datetime = models.DateTimeField(auto_now=True, null=True, blank=True, help_text="修改时间", verbose_name="修改时间") + dept_belong_id = models.CharField(max_length=255, help_text="数据归属部门", null=True, blank=True, + verbose_name="数据归属部门") + update_datetime = models.DateTimeField(auto_now=True, null=True, blank=True, help_text="修改时间", + verbose_name="修改时间") create_datetime = models.DateTimeField(auto_now_add=True, null=True, blank=True, help_text="创建时间", verbose_name="创建时间") @@ -136,12 +140,23 @@ def get_model_from_app(app_name): def get_custom_app_models(app_name=None): - """获取所有项目下的app里的models""" + """ + 获取所有项目下的app里的models + """ if app_name: return get_model_from_app(app_name) + all_apps = apps.get_app_configs() res = [] - for app in settings.CUSTOM_APPS: - all_models = get_model_from_app(app) - for model in all_models: - res.append(model) + for app in all_apps: + if app.name.startswith('django'): + continue + if app.name in settings.COLUMN_EXCLUDE_APPS: + continue + try: + all_models = get_model_from_app(app.name) + if all_models: + for model in all_models: + res.append(model) + except Exception as e: + pass return res diff --git a/backend/requirements.txt b/backend/requirements.txt index d4b0ded..d433efb 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -1,4 +1,4 @@ -Django==4.2.6 +Django==4.2.7 django-comment-migrate==0.1.7 django-cors-headers==4.3.0 django-filter==23.3 diff --git a/web/index.html b/web/index.html index 2fcf37b..9515e84 100644 --- a/web/index.html +++ b/web/index.html @@ -10,23 +10,22 @@ /> - django-vue3-admin + django-vue-admin -
- - - +
+ + diff --git a/web/package.json b/web/package.json index 43b7cb8..28b837f 100644 --- a/web/package.json +++ b/web/package.json @@ -1,7 +1,7 @@ { "name": "django-vue3-admin", - "version": "1.0.0", - "description": "django-vue3-admin,基于 vue3 + CompositionAPI + typescript + vite + element plus, 是一款全栈,快速,开源的后台管理系统!", + "version": "3.0.0", + "description": "是一套全部开源的快速开发平台,毫无保留给个人免费使用、团体授权使用。\n django-vue3-admin 基于RBAC模型的权限控制的一整套基础开发平台,权限粒度达到列级别,前后端分离,后端采用django + django-rest-framework,前端采用基于 vue3 + CompositionAPI + typescript + vite + element plus", "license": "MIT", "scripts": { "dev": "vite --force", @@ -10,10 +10,10 @@ }, "dependencies": { "@element-plus/icons-vue": "^2.0.10", - "@fast-crud/fast-crud": "^1.18.3", - "@fast-crud/fast-extends": "^1.18.3", - "@fast-crud/ui-element": "^1.18.3", - "@fast-crud/ui-interface": "^1.18.3", + "@fast-crud/fast-crud": "^1.19.2", + "@fast-crud/fast-extends": "^1.19.2", + "@fast-crud/ui-element": "^1.19.2", + "@fast-crud/ui-interface": "^1.19.2", "@vitejs/plugin-vue-jsx": "^3.0.0", "@wangeditor/editor": "^5.1.23", "@wangeditor/editor-for-vue": "^5.1.12", diff --git a/web/src/views/system/config/components/formContent.vue b/web/src/views/system/config/components/formContent.vue index 845e90f..b4a2141 100644 --- a/web/src/views/system/config/components/formContent.vue +++ b/web/src/views/system/config/components/formContent.vue @@ -118,7 +118,7 @@ list-type="picture-card" > -
选取图片后,需手动上传到服务器,并且只能上传jpg/png文件
+
请选取图片,并且只能上传jpg/png文件
@@ -150,7 +150,7 @@ list-type="picture-card" > -
选取图片后,需手动上传到服务器,并且只能上传jpg/png文件
+
请选取图片,并且只能上传jpg/png文件
@@ -506,4 +506,8 @@ watch( ); - + diff --git a/web/src/views/system/login/index.vue b/web/src/views/system/login/index.vue index 1b0904d..69b2926 100644 --- a/web/src/views/system/login/index.vue +++ b/web/src/views/system/login/index.vue @@ -42,7 +42,7 @@ - +
保存菜单授权 @@ -20,15 +20,16 @@
- +