commit
					1eb389223d
				
				 273 changed files with 24265 additions and 0 deletions
			
			
		| @ -0,0 +1,8 @@ | ||||
| # 页面标题 | ||||
| VITE_APP_TITLE = 若依管理系统 | ||||
| 
 | ||||
| # 开发环境配置 | ||||
| VITE_APP_ENV = 'development' | ||||
| 
 | ||||
| # 若依管理系统/开发环境 | ||||
| VITE_APP_BASE_API = '/api' | ||||
| @ -0,0 +1,11 @@ | ||||
| # 页面标题 | ||||
| VITE_APP_TITLE = 若依管理系统 | ||||
| 
 | ||||
| # 生产环境配置 | ||||
| VITE_APP_ENV = 'production' | ||||
| 
 | ||||
| # 若依管理系统/生产环境 | ||||
| VITE_APP_BASE_API = '/prod-api' | ||||
| 
 | ||||
| # 是否在打包时开启压缩,支持 gzip 和 brotli | ||||
| VITE_BUILD_COMPRESS = gzip | ||||
| @ -0,0 +1,11 @@ | ||||
| # 页面标题 | ||||
| VITE_APP_TITLE = 若依管理系统 | ||||
| 
 | ||||
| # 生产环境配置 | ||||
| VITE_APP_ENV = 'staging' | ||||
| 
 | ||||
| # 若依管理系统/生产环境 | ||||
| VITE_APP_BASE_API = '/stage-api' | ||||
| 
 | ||||
| # 是否在打包时开启压缩,支持 gzip 和 brotli | ||||
| VITE_BUILD_COMPRESS = gzip | ||||
| @ -0,0 +1,23 @@ | ||||
| .DS_Store | ||||
| node_modules/ | ||||
| dist/ | ||||
| npm-debug.log* | ||||
| yarn-debug.log* | ||||
| yarn-error.log* | ||||
| **/*.log | ||||
| 
 | ||||
| tests/**/coverage/ | ||||
| tests/e2e/reports | ||||
| selenium-debug.log | ||||
| 
 | ||||
| # Editor directories and files | ||||
| .idea | ||||
| .vscode | ||||
| *.suo | ||||
| *.ntvs* | ||||
| *.njsproj | ||||
| *.sln | ||||
| *.local | ||||
| 
 | ||||
| package-lock.json | ||||
| yarn.lock | ||||
| @ -0,0 +1,20 @@ | ||||
| The MIT License (MIT) | ||||
| 
 | ||||
| Copyright (c) 2018 RuoYi | ||||
| 
 | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy of | ||||
| this software and associated documentation files (the "Software"), to deal in | ||||
| the Software without restriction, including without limitation the rights to | ||||
| use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | ||||
| the Software, and to permit persons to whom the Software is furnished to do so, | ||||
| subject to the following conditions: | ||||
| 
 | ||||
| The above copyright notice and this permission notice shall be included in all | ||||
| copies or substantial portions of the Software. | ||||
| 
 | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | ||||
| FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||||
| COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||||
| IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||||
| CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
| @ -0,0 +1,108 @@ | ||||
| <p align="center"> | ||||
| 	<img alt="logo" src="https://oscimg.oschina.net/oscnet/up-d3d0a9303e11d522a06cd263f3079027715.png"> | ||||
| </p> | ||||
| <h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">RuoYi v3.8.9</h1> | ||||
| <h4 align="center">基于SpringBoot+Vue3前后端分离的Java快速开发框架</h4> | ||||
| <p align="center"> | ||||
| 	<a href="https://gitee.com/y_project/RuoYi-Vue/stargazers"><img src="https://gitee.com/y_project/RuoYi-Vue/badge/star.svg?theme=dark"></a> | ||||
| 	<a href="https://gitee.com/y_project/RuoYi-Vue"><img src="https://img.shields.io/badge/RuoYi-v3.8.9-brightgreen.svg"></a> | ||||
| 	<a href="https://gitee.com/y_project/RuoYi-Vue/blob/master/LICENSE"><img src="https://img.shields.io/github/license/mashape/apistatus.svg"></a> | ||||
| </p> | ||||
| 
 | ||||
| ## 平台简介 | ||||
| 
 | ||||
| * 本仓库为前端技术栈 [Vue3](https://v3.cn.vuejs.org) + [Element Plus](https://element-plus.org/zh-CN) + [Vite](https://cn.vitejs.dev) 版本。 | ||||
| * 配套后端代码仓库地址[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) 或 [RuoYi-Vue-fast](https://gitcode.com/yangzongzhuan/RuoYi-Vue-fast) 版本。 | ||||
| * 前端技术栈([Vue2](https://cn.vuejs.org) + [Element](https://github.com/ElemeFE/element) + [Vue CLI](https://cli.vuejs.org/zh)),请移步[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue/tree/master/ruoyi-ui)。 | ||||
| * 阿里云折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip)   | ||||
| 
 | ||||
| ## 前端运行 | ||||
| 
 | ||||
| ```bash | ||||
| # 克隆项目 | ||||
| git clone https://github.com/yangzongzhuan/RuoYi-Vue3.git | ||||
| 
 | ||||
| # 进入项目目录 | ||||
| cd RuoYi-Vue3 | ||||
| 
 | ||||
| # 安装依赖 | ||||
| yarn --registry=https://registry.npmmirror.com | ||||
| 
 | ||||
| # 启动服务 | ||||
| yarn dev | ||||
| 
 | ||||
| # 构建测试环境 yarn build:stage | ||||
| # 构建生产环境 yarn build:prod | ||||
| # 前端访问地址 http://localhost:80 | ||||
| ``` | ||||
| 
 | ||||
| ## 内置功能 | ||||
| 
 | ||||
| 1.  用户管理:用户是系统操作者,该功能主要完成系统用户配置。 | ||||
| 2.  部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 | ||||
| 3.  岗位管理:配置系统用户所属担任职务。 | ||||
| 4.  菜单管理:配置系统菜单,操作权限,按钮权限标识等。 | ||||
| 5.  角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 | ||||
| 6.  字典管理:对系统中经常使用的一些较为固定的数据进行维护。 | ||||
| 7.  参数管理:对系统动态配置常用参数。 | ||||
| 8.  通知公告:系统通知公告信息发布维护。 | ||||
| 9.  操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 | ||||
| 10. 登录日志:系统登录日志记录查询包含登录异常。 | ||||
| 11. 在线用户:当前系统中活跃用户状态监控。 | ||||
| 12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 | ||||
| 13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。 | ||||
| 14. 系统接口:根据业务代码自动生成相关的api接口文档。 | ||||
| 15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。 | ||||
| 16. 缓存监控:对系统的缓存信息查询,命令统计等。 | ||||
| 17. 在线构建器:拖动表单元素生成相应的HTML代码。 | ||||
| 18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 | ||||
| 
 | ||||
| ## 在线体验 | ||||
| 
 | ||||
| - admin/admin123   | ||||
| - 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。 | ||||
| 
 | ||||
| 演示地址:http://vue.ruoyi.vip   | ||||
| 文档地址:http://doc.ruoyi.vip | ||||
| 
 | ||||
| ## 演示图 | ||||
| 
 | ||||
| <table> | ||||
|     <tr> | ||||
|         <td><img src="https://oscimg.oschina.net/oscnet/cd1f90be5f2684f4560c9519c0f2a232ee8.jpg"/></td> | ||||
|         <td><img src="https://oscimg.oschina.net/oscnet/1cbcf0e6f257c7d3a063c0e3f2ff989e4b3.jpg"/></td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|         <td><img src="https://oscimg.oschina.net/oscnet/up-8074972883b5ba0622e13246738ebba237a.png"/></td> | ||||
|         <td><img src="https://oscimg.oschina.net/oscnet/up-9f88719cdfca9af2e58b352a20e23d43b12.png"/></td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|         <td><img src="https://oscimg.oschina.net/oscnet/up-39bf2584ec3a529b0d5a3b70d15c9b37646.png"/></td> | ||||
|         <td><img src="https://oscimg.oschina.net/oscnet/up-936ec82d1f4872e1bc980927654b6007307.png"/></td> | ||||
|     </tr> | ||||
| 	<tr> | ||||
|         <td><img src="https://oscimg.oschina.net/oscnet/up-b2d62ceb95d2dd9b3fbe157bb70d26001e9.png"/></td> | ||||
|         <td><img src="https://oscimg.oschina.net/oscnet/up-d67451d308b7a79ad6819723396f7c3d77a.png"/></td> | ||||
|     </tr>	  | ||||
|     <tr> | ||||
|         <td><img src="https://oscimg.oschina.net/oscnet/5e8c387724954459291aafd5eb52b456f53.jpg"/></td> | ||||
|         <td><img src="https://oscimg.oschina.net/oscnet/644e78da53c2e92a95dfda4f76e6d117c4b.jpg"/></td> | ||||
|     </tr> | ||||
| 	<tr> | ||||
|         <td><img src="https://oscimg.oschina.net/oscnet/up-8370a0d02977eebf6dbf854c8450293c937.png"/></td> | ||||
|         <td><img src="https://oscimg.oschina.net/oscnet/up-49003ed83f60f633e7153609a53a2b644f7.png"/></td> | ||||
|     </tr> | ||||
| 	<tr> | ||||
|         <td><img src="https://oscimg.oschina.net/oscnet/up-d4fe726319ece268d4746602c39cffc0621.png"/></td> | ||||
|         <td><img src="https://oscimg.oschina.net/oscnet/up-c195234bbcd30be6927f037a6755e6ab69c.png"/></td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|         <td><img src="https://oscimg.oschina.net/oscnet/b6115bc8c31de52951982e509930b20684a.jpg"/></td> | ||||
|         <td><img src="https://oscimg.oschina.net/oscnet/up-5e4daac0bb59612c5038448acbcef235e3a.png"/></td> | ||||
|     </tr> | ||||
| </table> | ||||
| 
 | ||||
| 
 | ||||
| ## 若依前后端分离交流群 | ||||
| 
 | ||||
| QQ群: [](https://jq.qq.com/?_wv=1027&k=5bVB1og) [](https://jq.qq.com/?_wv=1027&k=5eiA4DH) [](https://jq.qq.com/?_wv=1027&k=5AxMKlC) [](https://jq.qq.com/?_wv=1027&k=51G72yr) [](https://jq.qq.com/?_wv=1027&k=VvjN2nvu) [](https://jq.qq.com/?_wv=1027&k=5vYAqA05) [](https://jq.qq.com/?_wv=1027&k=kOIINEb5) [](https://jq.qq.com/?_wv=1027&k=UKtX5jhs) [](https://jq.qq.com/?_wv=1027&k=EI9an8lJ) [](https://jq.qq.com/?_wv=1027&k=SWCtLnMz) [](https://jq.qq.com/?_wv=1027&k=96Dkdq0k) [](https://jq.qq.com/?_wv=1027&k=0fsNiYZt) [](https://jq.qq.com/?_wv=1027&k=7xw4xUG1) [](https://jq.qq.com/?_wv=1027&k=eCx8eyoJ) [](https://jq.qq.com/?_wv=1027&k=SpyH2875) [](https://jq.qq.com/?_wv=1027&k=tKEt51dz) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=0vBbSb0ztbBgVtn3kJS-Q4HUNYwip89G&authKey=8irq5PhutrZmWIvsUsklBxhj57l%2F1nOZqjzigkXZVoZE451GG4JHPOqW7AW6cf0T&noverify=0&group_code=143961921) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ZFAPAbp09S2ltvwrJzp7wGlbopsc0rwi&authKey=HB2cxpxP2yspk%2Bo3WKTBfktRCccVkU26cgi5B16u0KcAYrVu7sBaE7XSEqmMdFQp&noverify=0&group_code=174951577) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Fn2aF5IHpwsy8j6VlalNJK6qbwFLFHat&authKey=uyIT%2B97x2AXj3odyXpsSpVaPMC%2Bidw0LxG5MAtEqlrcBcWJUA%2FeS43rsF1Tg7IRJ&noverify=0&group_code=161281055) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XIzkm_mV2xTsUtFxo63bmicYoDBA6Ifm&authKey=dDW%2F4qsmw3x9govoZY9w%2FoWAoC4wbHqGal%2BbqLzoS6VBarU8EBptIgPKN%2FviyC8j&noverify=0&group_code=138988063) [](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DkugnCg68PevlycJSKSwjhFqfIgrWWwR&authKey=pR1Pa5lPIeGF%2FFtIk6d%2FGB5qFi0EdvyErtpQXULzo03zbhopBHLWcuqdpwY241R%2F&noverify=0&group_code=151450850) 点击按钮入群。 | ||||
| @ -0,0 +1,12 @@ | ||||
| @echo off | ||||
| echo. | ||||
| echo [信息] 打包Web工程,生成dist文件。 | ||||
| echo. | ||||
| 
 | ||||
| %~d0 | ||||
| cd %~dp0 | ||||
| 
 | ||||
| cd .. | ||||
| yarn build:prod | ||||
| 
 | ||||
| pause | ||||
| @ -0,0 +1,12 @@ | ||||
| @echo off | ||||
| echo. | ||||
| echo [信息] 安装Web工程,生成node_modules文件。 | ||||
| echo. | ||||
| 
 | ||||
| %~d0 | ||||
| cd %~dp0 | ||||
| 
 | ||||
| cd .. | ||||
| yarn --registry=https://registry.npmmirror.com | ||||
| 
 | ||||
| pause | ||||
| @ -0,0 +1,12 @@ | ||||
| @echo off | ||||
| echo. | ||||
| echo [信息] 使用 Vite 命令运行 Web 工程。 | ||||
| echo. | ||||
| 
 | ||||
| %~d0 | ||||
| cd %~dp0 | ||||
| 
 | ||||
| cd .. | ||||
| yarn dev | ||||
| 
 | ||||
| pause | ||||
									
										
											File diff suppressed because one or more lines are too long
										
									
								
							
						| @ -0,0 +1,215 @@ | ||||
| <!DOCTYPE html> | ||||
| <html> | ||||
| 
 | ||||
| <head> | ||||
|   <meta charset="utf-8"> | ||||
|   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> | ||||
|   <meta name="renderer" content="webkit"> | ||||
|   <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> | ||||
|   <link rel="icon" href="/favicon.ico"> | ||||
|   <title>若依管理系统</title> | ||||
|   <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]--> | ||||
|   <style> | ||||
|     html, | ||||
|     body, | ||||
|     #app { | ||||
|       height: 100%; | ||||
|       margin: 0px; | ||||
|       padding: 0px; | ||||
|     } | ||||
| 
 | ||||
|     .chromeframe { | ||||
|       margin: 0.2em 0; | ||||
|       background: #ccc; | ||||
|       color: #000; | ||||
|       padding: 0.2em 0; | ||||
|     } | ||||
| 
 | ||||
|     #loader-wrapper { | ||||
|       position: fixed; | ||||
|       top: 0; | ||||
|       left: 0; | ||||
|       width: 100%; | ||||
|       height: 100%; | ||||
|       z-index: 999999; | ||||
|     } | ||||
| 
 | ||||
|     #loader { | ||||
|       display: block; | ||||
|       position: relative; | ||||
|       left: 50%; | ||||
|       top: 50%; | ||||
|       width: 150px; | ||||
|       height: 150px; | ||||
|       margin: -75px 0 0 -75px; | ||||
|       border-radius: 50%; | ||||
|       border: 3px solid transparent; | ||||
|       border-top-color: #FFF; | ||||
|       -webkit-animation: spin 2s linear infinite; | ||||
|       -ms-animation: spin 2s linear infinite; | ||||
|       -moz-animation: spin 2s linear infinite; | ||||
|       -o-animation: spin 2s linear infinite; | ||||
|       animation: spin 2s linear infinite; | ||||
|       z-index: 1001; | ||||
|     } | ||||
| 
 | ||||
|     #loader:before { | ||||
|       content: ""; | ||||
|       position: absolute; | ||||
|       top: 5px; | ||||
|       left: 5px; | ||||
|       right: 5px; | ||||
|       bottom: 5px; | ||||
|       border-radius: 50%; | ||||
|       border: 3px solid transparent; | ||||
|       border-top-color: #FFF; | ||||
|       -webkit-animation: spin 3s linear infinite; | ||||
|       -moz-animation: spin 3s linear infinite; | ||||
|       -o-animation: spin 3s linear infinite; | ||||
|       -ms-animation: spin 3s linear infinite; | ||||
|       animation: spin 3s linear infinite; | ||||
|     } | ||||
| 
 | ||||
|     #loader:after { | ||||
|       content: ""; | ||||
|       position: absolute; | ||||
|       top: 15px; | ||||
|       left: 15px; | ||||
|       right: 15px; | ||||
|       bottom: 15px; | ||||
|       border-radius: 50%; | ||||
|       border: 3px solid transparent; | ||||
|       border-top-color: #FFF; | ||||
|       -moz-animation: spin 1.5s linear infinite; | ||||
|       -o-animation: spin 1.5s linear infinite; | ||||
|       -ms-animation: spin 1.5s linear infinite; | ||||
|       -webkit-animation: spin 1.5s linear infinite; | ||||
|       animation: spin 1.5s linear infinite; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     @-webkit-keyframes spin { | ||||
|       0% { | ||||
|         -webkit-transform: rotate(0deg); | ||||
|         -ms-transform: rotate(0deg); | ||||
|         transform: rotate(0deg); | ||||
|       } | ||||
| 
 | ||||
|       100% { | ||||
|         -webkit-transform: rotate(360deg); | ||||
|         -ms-transform: rotate(360deg); | ||||
|         transform: rotate(360deg); | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     @keyframes spin { | ||||
|       0% { | ||||
|         -webkit-transform: rotate(0deg); | ||||
|         -ms-transform: rotate(0deg); | ||||
|         transform: rotate(0deg); | ||||
|       } | ||||
| 
 | ||||
|       100% { | ||||
|         -webkit-transform: rotate(360deg); | ||||
|         -ms-transform: rotate(360deg); | ||||
|         transform: rotate(360deg); | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     #loader-wrapper .loader-section { | ||||
|       position: fixed; | ||||
|       top: 0; | ||||
|       width: 51%; | ||||
|       height: 100%; | ||||
|       background: #7171C6; | ||||
|       z-index: 1000; | ||||
|       -webkit-transform: translateX(0); | ||||
|       -ms-transform: translateX(0); | ||||
|       transform: translateX(0); | ||||
|     } | ||||
| 
 | ||||
|     #loader-wrapper .loader-section.section-left { | ||||
|       left: 0; | ||||
|     } | ||||
| 
 | ||||
|     #loader-wrapper .loader-section.section-right { | ||||
|       right: 0; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     .loaded #loader-wrapper .loader-section.section-left { | ||||
|       -webkit-transform: translateX(-100%); | ||||
|       -ms-transform: translateX(-100%); | ||||
|       transform: translateX(-100%); | ||||
|       -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); | ||||
|       transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); | ||||
|     } | ||||
| 
 | ||||
|     .loaded #loader-wrapper .loader-section.section-right { | ||||
|       -webkit-transform: translateX(100%); | ||||
|       -ms-transform: translateX(100%); | ||||
|       transform: translateX(100%); | ||||
|       -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); | ||||
|       transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); | ||||
|     } | ||||
| 
 | ||||
|     .loaded #loader { | ||||
|       opacity: 0; | ||||
|       -webkit-transition: all 0.3s ease-out; | ||||
|       transition: all 0.3s ease-out; | ||||
|     } | ||||
| 
 | ||||
|     .loaded #loader-wrapper { | ||||
|       visibility: hidden; | ||||
|       -webkit-transform: translateY(-100%); | ||||
|       -ms-transform: translateY(-100%); | ||||
|       transform: translateY(-100%); | ||||
|       -webkit-transition: all 0.3s 1s ease-out; | ||||
|       transition: all 0.3s 1s ease-out; | ||||
|     } | ||||
| 
 | ||||
|     .no-js #loader-wrapper { | ||||
|       display: none; | ||||
|     } | ||||
| 
 | ||||
|     .no-js h1 { | ||||
|       color: #222222; | ||||
|     } | ||||
| 
 | ||||
|     #loader-wrapper .load_title { | ||||
|       font-family: 'Open Sans'; | ||||
|       color: #FFF; | ||||
|       font-size: 19px; | ||||
|       width: 100%; | ||||
|       text-align: center; | ||||
|       z-index: 9999999999999; | ||||
|       position: absolute; | ||||
|       top: 60%; | ||||
|       opacity: 1; | ||||
|       line-height: 30px; | ||||
|     } | ||||
| 
 | ||||
|     #loader-wrapper .load_title span { | ||||
|       font-weight: normal; | ||||
|       font-style: italic; | ||||
|       font-size: 13px; | ||||
|       color: #FFF; | ||||
|       opacity: 0.5; | ||||
|     } | ||||
|   </style> | ||||
| </head> | ||||
| 
 | ||||
| <body> | ||||
|   <div id="app"> | ||||
|     <div id="loader-wrapper"> | ||||
|       <div id="loader"></div> | ||||
|       <div class="loader-section section-left"></div> | ||||
|       <div class="loader-section section-right"></div> | ||||
|       <div class="load_title">正在加载系统资源,请耐心等待</div> | ||||
|     </div> | ||||
|   </div> | ||||
|   <script type="module" src="/src/main.js"></script> | ||||
| </body> | ||||
| 
 | ||||
| </html> | ||||
| @ -0,0 +1,48 @@ | ||||
| { | ||||
|   "name": "ruoyi", | ||||
|   "version": "3.8.9", | ||||
|   "description": "若依管理系统", | ||||
|   "author": "若依", | ||||
|   "license": "MIT", | ||||
|   "type": "module", | ||||
|   "scripts": { | ||||
|     "dev": "vite", | ||||
|     "build:prod": "vite build", | ||||
|     "build:stage": "vite build --mode staging", | ||||
|     "preview": "vite preview" | ||||
|   }, | ||||
|   "repository": { | ||||
|     "type": "git", | ||||
|     "url": "https://gitee.com/y_project/RuoYi-Vue.git" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "@element-plus/icons-vue": "2.3.1", | ||||
|     "@vueup/vue-quill": "1.2.0", | ||||
|     "@vueuse/core": "10.11.0", | ||||
|     "axios": "0.28.1", | ||||
|     "clipboard": "2.0.11", | ||||
|     "echarts": "5.5.1", | ||||
|     "element-plus": "2.7.6", | ||||
|     "file-saver": "2.0.5", | ||||
|     "fuse.js": "6.6.2", | ||||
|     "js-beautify": "1.14.11", | ||||
|     "js-cookie": "3.0.5", | ||||
|     "jsencrypt": "3.3.2", | ||||
|     "nprogress": "0.2.0", | ||||
|     "pinia": "2.1.7", | ||||
|     "splitpanes": "3.1.5", | ||||
|     "vue": "3.4.31", | ||||
|     "vue-cropper": "1.1.1", | ||||
|     "vue-router": "4.4.0", | ||||
|     "vuedraggable": "4.1.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@vitejs/plugin-vue": "5.0.5", | ||||
|     "sass": "1.77.5", | ||||
|     "unplugin-auto-import": "0.17.6", | ||||
|     "unplugin-vue-setup-extend-plus": "1.0.1", | ||||
|     "vite": "5.3.2", | ||||
|     "vite-plugin-compression": "0.5.1", | ||||
|     "vite-plugin-svg-icons": "2.0.1" | ||||
|   } | ||||
| } | ||||
| After Width: | Height: | Size: 5.5 KiB | 
| @ -0,0 +1,15 @@ | ||||
| <template> | ||||
|   <router-view /> | ||||
| </template> | ||||
| 
 | ||||
| <script setup> | ||||
| import useSettingsStore from '@/store/modules/settings' | ||||
| import { handleThemeStyle } from '@/utils/theme' | ||||
| 
 | ||||
| onMounted(() => { | ||||
|   nextTick(() => { | ||||
|     // 初始化主题样式 | ||||
|     handleThemeStyle(useSettingsStore().theme) | ||||
|   }) | ||||
| }) | ||||
| </script> | ||||
| @ -0,0 +1,60 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 登录方法
 | ||||
| export function login(username, password, code, uuid) { | ||||
|   const data = { | ||||
|     username, | ||||
|     password, | ||||
|     code, | ||||
|     uuid | ||||
|   } | ||||
|   return request({ | ||||
|     url: '/login', | ||||
|     headers: { | ||||
|       isToken: false, | ||||
|       repeatSubmit: false | ||||
|     }, | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 注册方法
 | ||||
| export function register(data) { | ||||
|   return request({ | ||||
|     url: '/register', | ||||
|     headers: { | ||||
|       isToken: false | ||||
|     }, | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 获取用户详细信息
 | ||||
| export function getInfo() { | ||||
|   return request({ | ||||
|     url: '/getInfo', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 退出方法
 | ||||
| export function logout() { | ||||
|   return request({ | ||||
|     url: '/logout', | ||||
|     method: 'post' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 获取验证码
 | ||||
| export function getCodeImg() { | ||||
|   return request({ | ||||
|     url: '/captchaImage', | ||||
|     headers: { | ||||
|       isToken: false | ||||
|     }, | ||||
|     method: 'get', | ||||
|     timeout: 20000 | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,9 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 获取路由
 | ||||
| export const getRouters = () => { | ||||
|   return request({ | ||||
|     url: '/getRouters', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,57 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 查询缓存详细
 | ||||
| export function getCache() { | ||||
|   return request({ | ||||
|     url: '/monitor/cache', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询缓存名称列表
 | ||||
| export function listCacheName() { | ||||
|   return request({ | ||||
|     url: '/monitor/cache/getNames', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询缓存键名列表
 | ||||
| export function listCacheKey(cacheName) { | ||||
|   return request({ | ||||
|     url: '/monitor/cache/getKeys/' + cacheName, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询缓存内容
 | ||||
| export function getCacheValue(cacheName, cacheKey) { | ||||
|   return request({ | ||||
|     url: '/monitor/cache/getValue/' + cacheName + '/' + cacheKey, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 清理指定名称缓存
 | ||||
| export function clearCacheName(cacheName) { | ||||
|   return request({ | ||||
|     url: '/monitor/cache/clearCacheName/' + cacheName, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 清理指定键名缓存
 | ||||
| export function clearCacheKey(cacheKey) { | ||||
|   return request({ | ||||
|     url: '/monitor/cache/clearCacheKey/' + cacheKey, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 清理全部缓存
 | ||||
| export function clearCacheAll() { | ||||
|   return request({ | ||||
|     url: '/monitor/cache/clearCacheAll', | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,71 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 查询定时任务调度列表
 | ||||
| export function listJob(query) { | ||||
|   return request({ | ||||
|     url: '/monitor/job/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询定时任务调度详细
 | ||||
| export function getJob(jobId) { | ||||
|   return request({ | ||||
|     url: '/monitor/job/' + jobId, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 新增定时任务调度
 | ||||
| export function addJob(data) { | ||||
|   return request({ | ||||
|     url: '/monitor/job', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 修改定时任务调度
 | ||||
| export function updateJob(data) { | ||||
|   return request({ | ||||
|     url: '/monitor/job', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 删除定时任务调度
 | ||||
| export function delJob(jobId) { | ||||
|   return request({ | ||||
|     url: '/monitor/job/' + jobId, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 任务状态修改
 | ||||
| export function changeJobStatus(jobId, status) { | ||||
|   const data = { | ||||
|     jobId, | ||||
|     status | ||||
|   } | ||||
|   return request({ | ||||
|     url: '/monitor/job/changeStatus', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| // 定时任务立即执行一次
 | ||||
| export function runJob(jobId, jobGroup) { | ||||
|   const data = { | ||||
|     jobId, | ||||
|     jobGroup | ||||
|   } | ||||
|   return request({ | ||||
|     url: '/monitor/job/run', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,26 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 查询调度日志列表
 | ||||
| export function listJobLog(query) { | ||||
|   return request({ | ||||
|     url: '/monitor/jobLog/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 删除调度日志
 | ||||
| export function delJobLog(jobLogId) { | ||||
|   return request({ | ||||
|     url: '/monitor/jobLog/' + jobLogId, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 清空调度日志
 | ||||
| export function cleanJobLog() { | ||||
|   return request({ | ||||
|     url: '/monitor/jobLog/clean', | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,34 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 查询登录日志列表
 | ||||
| export function list(query) { | ||||
|   return request({ | ||||
|     url: '/monitor/logininfor/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 删除登录日志
 | ||||
| export function delLogininfor(infoId) { | ||||
|   return request({ | ||||
|     url: '/monitor/logininfor/' + infoId, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 解锁用户登录状态
 | ||||
| export function unlockLogininfor(userName) { | ||||
|   return request({ | ||||
|     url: '/monitor/logininfor/unlock/' + userName, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 清空登录日志
 | ||||
| export function cleanLogininfor() { | ||||
|   return request({ | ||||
|     url: '/monitor/logininfor/clean', | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,18 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 查询在线用户列表
 | ||||
| export function list(query) { | ||||
|   return request({ | ||||
|     url: '/monitor/online/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 强退用户
 | ||||
| export function forceLogout(tokenId) { | ||||
|   return request({ | ||||
|     url: '/monitor/online/' + tokenId, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,26 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 查询操作日志列表
 | ||||
| export function list(query) { | ||||
|   return request({ | ||||
|     url: '/monitor/operlog/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 删除操作日志
 | ||||
| export function delOperlog(operId) { | ||||
|   return request({ | ||||
|     url: '/monitor/operlog/' + operId, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 清空操作日志
 | ||||
| export function cleanOperlog() { | ||||
|   return request({ | ||||
|     url: '/monitor/operlog/clean', | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,9 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 获取服务信息
 | ||||
| export function getServer() { | ||||
|   return request({ | ||||
|     url: '/monitor/server', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,60 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 查询参数列表
 | ||||
| export function listConfig(query) { | ||||
|   return request({ | ||||
|     url: '/system/config/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询参数详细
 | ||||
| export function getConfig(configId) { | ||||
|   return request({ | ||||
|     url: '/system/config/' + configId, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 根据参数键名查询参数值
 | ||||
| export function getConfigKey(configKey) { | ||||
|   return request({ | ||||
|     url: '/system/config/configKey/' + configKey, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 新增参数配置
 | ||||
| export function addConfig(data) { | ||||
|   return request({ | ||||
|     url: '/system/config', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 修改参数配置
 | ||||
| export function updateConfig(data) { | ||||
|   return request({ | ||||
|     url: '/system/config', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 删除参数配置
 | ||||
| export function delConfig(configId) { | ||||
|   return request({ | ||||
|     url: '/system/config/' + configId, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 刷新参数缓存
 | ||||
| export function refreshCache() { | ||||
|   return request({ | ||||
|     url: '/system/config/refreshCache', | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,52 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 查询部门列表
 | ||||
| export function listDept(query) { | ||||
|   return request({ | ||||
|     url: '/system/dept/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询部门列表(排除节点)
 | ||||
| export function listDeptExcludeChild(deptId) { | ||||
|   return request({ | ||||
|     url: '/system/dept/list/exclude/' + deptId, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询部门详细
 | ||||
| export function getDept(deptId) { | ||||
|   return request({ | ||||
|     url: '/system/dept/' + deptId, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 新增部门
 | ||||
| export function addDept(data) { | ||||
|   return request({ | ||||
|     url: '/system/dept', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 修改部门
 | ||||
| export function updateDept(data) { | ||||
|   return request({ | ||||
|     url: '/system/dept', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 删除部门
 | ||||
| export function delDept(deptId) { | ||||
|   return request({ | ||||
|     url: '/system/dept/' + deptId, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,52 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 查询字典数据列表
 | ||||
| export function listData(query) { | ||||
|   return request({ | ||||
|     url: '/system/dict/data/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询字典数据详细
 | ||||
| export function getData(dictCode) { | ||||
|   return request({ | ||||
|     url: '/system/dict/data/' + dictCode, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 根据字典类型查询字典数据信息
 | ||||
| export function getDicts(dictType) { | ||||
|   return request({ | ||||
|     url: '/system/dict/data/type/' + dictType, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 新增字典数据
 | ||||
| export function addData(data) { | ||||
|   return request({ | ||||
|     url: '/system/dict/data', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 修改字典数据
 | ||||
| export function updateData(data) { | ||||
|   return request({ | ||||
|     url: '/system/dict/data', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 删除字典数据
 | ||||
| export function delData(dictCode) { | ||||
|   return request({ | ||||
|     url: '/system/dict/data/' + dictCode, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,60 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 查询字典类型列表
 | ||||
| export function listType(query) { | ||||
|   return request({ | ||||
|     url: '/system/dict/type/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询字典类型详细
 | ||||
| export function getType(dictId) { | ||||
|   return request({ | ||||
|     url: '/system/dict/type/' + dictId, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 新增字典类型
 | ||||
| export function addType(data) { | ||||
|   return request({ | ||||
|     url: '/system/dict/type', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 修改字典类型
 | ||||
| export function updateType(data) { | ||||
|   return request({ | ||||
|     url: '/system/dict/type', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 删除字典类型
 | ||||
| export function delType(dictId) { | ||||
|   return request({ | ||||
|     url: '/system/dict/type/' + dictId, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 刷新字典缓存
 | ||||
| export function refreshCache() { | ||||
|   return request({ | ||||
|     url: '/system/dict/type/refreshCache', | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 获取字典选择框列表
 | ||||
| export function optionselect() { | ||||
|   return request({ | ||||
|     url: '/system/dict/type/optionselect', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,44 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 查询企业列表
 | ||||
| export function listEnterprises(query) { | ||||
|   return request({ | ||||
|     url: '/system/enterprises/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询企业详细
 | ||||
| export function getEnterprises(id) { | ||||
|   return request({ | ||||
|     url: '/system/enterprises/' + id, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 新增企业
 | ||||
| export function addEnterprises(data) { | ||||
|   return request({ | ||||
|     url: '/system/enterprises', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 修改企业
 | ||||
| export function updateEnterprises(data) { | ||||
|   return request({ | ||||
|     url: '/system/enterprises', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 删除企业
 | ||||
| export function delEnterprises(id) { | ||||
|   return request({ | ||||
|     url: '/system/enterprises/' + id, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,60 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 查询菜单列表
 | ||||
| export function listMenu(query) { | ||||
|   return request({ | ||||
|     url: '/system/menu/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询菜单详细
 | ||||
| export function getMenu(menuId) { | ||||
|   return request({ | ||||
|     url: '/system/menu/' + menuId, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询菜单下拉树结构
 | ||||
| export function treeselect() { | ||||
|   return request({ | ||||
|     url: '/system/menu/treeselect', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 根据角色ID查询菜单下拉树结构
 | ||||
| export function roleMenuTreeselect(roleId) { | ||||
|   return request({ | ||||
|     url: '/system/menu/roleMenuTreeselect/' + roleId, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 新增菜单
 | ||||
| export function addMenu(data) { | ||||
|   return request({ | ||||
|     url: '/system/menu', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 修改菜单
 | ||||
| export function updateMenu(data) { | ||||
|   return request({ | ||||
|     url: '/system/menu', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 删除菜单
 | ||||
| export function delMenu(menuId) { | ||||
|   return request({ | ||||
|     url: '/system/menu/' + menuId, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,44 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 查询公告列表
 | ||||
| export function listNotice(query) { | ||||
|   return request({ | ||||
|     url: '/system/notice/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询公告详细
 | ||||
| export function getNotice(noticeId) { | ||||
|   return request({ | ||||
|     url: '/system/notice/' + noticeId, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 新增公告
 | ||||
| export function addNotice(data) { | ||||
|   return request({ | ||||
|     url: '/system/notice', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 修改公告
 | ||||
| export function updateNotice(data) { | ||||
|   return request({ | ||||
|     url: '/system/notice', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 删除公告
 | ||||
| export function delNotice(noticeId) { | ||||
|   return request({ | ||||
|     url: '/system/notice/' + noticeId, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,44 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 查询岗位列表
 | ||||
| export function listPost(query) { | ||||
|   return request({ | ||||
|     url: '/system/post/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询岗位详细
 | ||||
| export function getPost(postId) { | ||||
|   return request({ | ||||
|     url: '/system/post/' + postId, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 新增岗位
 | ||||
| export function addPost(data) { | ||||
|   return request({ | ||||
|     url: '/system/post', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 修改岗位
 | ||||
| export function updatePost(data) { | ||||
|   return request({ | ||||
|     url: '/system/post', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 删除岗位
 | ||||
| export function delPost(postId) { | ||||
|   return request({ | ||||
|     url: '/system/post/' + postId, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,119 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 查询角色列表
 | ||||
| export function listRole(query) { | ||||
|   return request({ | ||||
|     url: '/system/role/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询角色详细
 | ||||
| export function getRole(roleId) { | ||||
|   return request({ | ||||
|     url: '/system/role/' + roleId, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 新增角色
 | ||||
| export function addRole(data) { | ||||
|   return request({ | ||||
|     url: '/system/role', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 修改角色
 | ||||
| export function updateRole(data) { | ||||
|   return request({ | ||||
|     url: '/system/role', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 角色数据权限
 | ||||
| export function dataScope(data) { | ||||
|   return request({ | ||||
|     url: '/system/role/dataScope', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 角色状态修改
 | ||||
| export function changeRoleStatus(roleId, status) { | ||||
|   const data = { | ||||
|     roleId, | ||||
|     status | ||||
|   } | ||||
|   return request({ | ||||
|     url: '/system/role/changeStatus', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 删除角色
 | ||||
| export function delRole(roleId) { | ||||
|   return request({ | ||||
|     url: '/system/role/' + roleId, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询角色已授权用户列表
 | ||||
| export function allocatedUserList(query) { | ||||
|   return request({ | ||||
|     url: '/system/role/authUser/allocatedList', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询角色未授权用户列表
 | ||||
| export function unallocatedUserList(query) { | ||||
|   return request({ | ||||
|     url: '/system/role/authUser/unallocatedList', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 取消用户授权角色
 | ||||
| export function authUserCancel(data) { | ||||
|   return request({ | ||||
|     url: '/system/role/authUser/cancel', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 批量取消用户授权角色
 | ||||
| export function authUserCancelAll(data) { | ||||
|   return request({ | ||||
|     url: '/system/role/authUser/cancelAll', | ||||
|     method: 'put', | ||||
|     params: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 授权用户选择
 | ||||
| export function authUserSelectAll(data) { | ||||
|   return request({ | ||||
|     url: '/system/role/authUser/selectAll', | ||||
|     method: 'put', | ||||
|     params: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 根据角色ID查询部门树结构
 | ||||
| export function deptTreeSelect(roleId) { | ||||
|   return request({ | ||||
|     url: '/system/role/deptTree/' + roleId, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,145 @@ | ||||
| import request from '@/utils/request' | ||||
| import { parseStrEmpty } from "@/utils/ruoyi"; | ||||
| 
 | ||||
| // 查询用户列表
 | ||||
| export function listUser(query) { | ||||
|   return request({ | ||||
|     url: '/system/user/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询用户列表
 | ||||
| export function listDeptUser(query) { | ||||
|   return request({ | ||||
|     url: '/system/user/listDeptUser', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询用户详细
 | ||||
| export function getUser(userId) { | ||||
|   return request({ | ||||
|     url: '/system/user/' + parseStrEmpty(userId), | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 新增用户
 | ||||
| export function addUser(data) { | ||||
|   return request({ | ||||
|     url: '/system/user', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 修改用户
 | ||||
| export function updateUser(data) { | ||||
|   return request({ | ||||
|     url: '/system/user', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 删除用户
 | ||||
| export function delUser(userId) { | ||||
|   return request({ | ||||
|     url: '/system/user/' + userId, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 用户密码重置
 | ||||
| export function resetUserPwd(userId, password) { | ||||
|   const data = { | ||||
|     userId, | ||||
|     password | ||||
|   } | ||||
|   return request({ | ||||
|     url: '/system/user/resetPwd', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 用户状态修改
 | ||||
| export function changeUserStatus(userId, status) { | ||||
|   const data = { | ||||
|     userId, | ||||
|     status | ||||
|   } | ||||
|   return request({ | ||||
|     url: '/system/user/changeStatus', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询用户个人信息
 | ||||
| export function getUserProfile() { | ||||
|   return request({ | ||||
|     url: '/system/user/profile', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 修改用户个人信息
 | ||||
| export function updateUserProfile(data) { | ||||
|   return request({ | ||||
|     url: '/system/user/profile', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 用户密码重置
 | ||||
| export function updateUserPwd(oldPassword, newPassword) { | ||||
|   const data = { | ||||
|     oldPassword, | ||||
|     newPassword | ||||
|   } | ||||
|   return request({ | ||||
|     url: '/system/user/profile/updatePwd', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 用户头像上传
 | ||||
| export function uploadAvatar(data) { | ||||
|   return request({ | ||||
|     url: '/system/user/profile/avatar', | ||||
|     method: 'post', | ||||
|     headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询授权角色
 | ||||
| export function getAuthRole(userId) { | ||||
|   return request({ | ||||
|     url: '/system/user/authRole/' + userId, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 保存授权角色
 | ||||
| export function updateAuthRole(data) { | ||||
|   return request({ | ||||
|     url: '/system/user/authRole', | ||||
|     method: 'put', | ||||
|     params: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询部门下拉树结构
 | ||||
| export function deptTreeSelect() { | ||||
|   return request({ | ||||
|     url: '/system/user/deptTree', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| @ -0,0 +1,85 @@ | ||||
| import request from '@/utils/request' | ||||
| 
 | ||||
| // 查询生成表数据
 | ||||
| export function listTable(query) { | ||||
|   return request({ | ||||
|     url: '/tool/gen/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| // 查询db数据库列表
 | ||||
| export function listDbTable(query) { | ||||
|   return request({ | ||||
|     url: '/tool/gen/db/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 查询表详细信息
 | ||||
| export function getGenTable(tableId) { | ||||
|   return request({ | ||||
|     url: '/tool/gen/' + tableId, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 修改代码生成信息
 | ||||
| export function updateGenTable(data) { | ||||
|   return request({ | ||||
|     url: '/tool/gen', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 导入表
 | ||||
| export function importTable(data) { | ||||
|   return request({ | ||||
|     url: '/tool/gen/importTable', | ||||
|     method: 'post', | ||||
|     params: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 创建表
 | ||||
| export function createTable(data) { | ||||
|   return request({ | ||||
|     url: '/tool/gen/createTable', | ||||
|     method: 'post', | ||||
|     params: data | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 预览生成代码
 | ||||
| export function previewTable(tableId) { | ||||
|   return request({ | ||||
|     url: '/tool/gen/preview/' + tableId, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 删除表数据
 | ||||
| export function delTable(tableId) { | ||||
|   return request({ | ||||
|     url: '/tool/gen/' + tableId, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 生成代码(自定义路径)
 | ||||
| export function genCode(tableName) { | ||||
|   return request({ | ||||
|     url: '/tool/gen/genCode/' + tableName, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| 
 | ||||
| // 同步数据库
 | ||||
| export function synchDb(tableName) { | ||||
|   return request({ | ||||
|     url: '/tool/gen/synchDb/' + tableName, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
| After Width: | Height: | Size: 160 KiB | 
| After Width: | Height: | Size: 96 KiB | 
| After Width: | Height: | Size: 4.7 KiB | 
| After Width: | Height: | Size: 1.8 KiB | 
Some files were not shown because too many files have changed in this diff Show More
					Loading…
					
					
				
		Reference in new issue