AI+RuoYi

news2024/11/15 9:43:20

1.RuoYi-Vue入门

采用了前后端分离的单体架构设计

1.1运行后端项目

1.Git下载

打开gitee - 点击克隆 -复制https - 打开IDEA关闭project - get vcs - 粘贴

通过idea克隆若依源码,仓库地址:RuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本

2.导入SQL并配置

导入:新建scheme(ry-vue) - 右键ry-vue选择run sql script - 选择sql文件

配置:

对数据库账号密码等配置

3.Redis启动与配置

启动:

(1)找到redis的目录 - 右键在终端打开 - 输入.\redis-server.exe redis.windows.conf

(2)或者双击

配置:application.yml

4.项目运行

ruoyi-admin模块下,运行com.ruoyi.RuoYiApplication.java

1.2运行前端项目

1.克隆vue3项目

新建一个文件夹 - 右键终端打开 - 输入git clone (复制gitee上的克隆)
git clone https://gitee.com/ys-gitee/RuoYi-Vue3.git

2.通过vscode打开项目

黑窗口直接输入code ./RuoYi-Vue3

然后点击右上角的切换面板 - 如果路径不在当前目录路径则换种方式导入

找到克隆的代码中的RuoYi-ui - 拖进vscode中间 - 再打开控制面板就行了

3.安装依赖

npm install

4.启动项目

npm run dev

5.小结

1.3入门案例

实现CRM系统中的课程管理功能,涵盖增加、删除、修改和查询课程信息的完整前后端代码。

1、准备课程表结构和数据sql文件,导入到数据库中(资料中有)

2、登录前端Ruoyi系统(系统工具 -> 代码生成 -> 导入课程表)

3、代码生成列表中找到课程表(可预览、编辑、同步、删除生成配置),注意功能与接口设计一致

4、点击生成代码会得到一个ruoyi.zip

5、执行sql文件导入菜单,按照包内目录结构复制到自己的项目中即可

2.若依的通用功能详解

2.1系统管理

1.权限系统

  • demo账号(超级管理员),可以查看所有功能菜单

  • zhangsan账号(市场专员),可以查看线索管理菜单

  • yueyue账号(销售专员),可以查看商机、合同等菜单

RBAC(基于角色的访问控制)是一种广泛使用的访问控制模型,通过角色来分配和管理用户的菜单权限。

案例:创建新用户小智并关联课研人员角色,仅限课程管理和统计分析菜单访问。

实现步骤:

①创建菜单

前面已经做过课程管理菜单,修改即可在菜单管理中找到系统工具-课程管理-修改为主类目,目录

②创建角色,并分配权限

③创建用户,并关联角色

2.数据字典

若依内置的数据字典,用于维护系统中常见的静态数据。例如:性别、状态…

功能包括:字典类型管理(性别)、字典数据管理(男,女)

表关系说明:

案例:将课程管理的学科字段改为数据字典维护。

实现步骤:

①添加字典类型和数据

②修改代码生成信息

③下载代码,导入前端

注意别导错了文件夹

3.参数设置

参数设置:对系统中的参数进行动态维护。(无需修改代码)

4.通知公告

系统将信息发送给指定的用户、部门或角色。用户可以通过系统界面或电子邮件接收通知,从而确保信息及时传达(这部分需要自己开发)。

5.日志管理

登录日志  操作日志

2.2系统监控

1.监控相关

2.定时任务

案例:每间隔5秒,控制台输出系统时间。

实现步骤:

①创建任务类(IDEA中)

②添加任务规则

执行策略:如果在某个时间段服务器宕机,那么这个时间段的任务在服务器恢复之后的执行策略

是否并发:是否需要多个任务间同时执行

③启动任务

观察IDEA控制台即可

2.3系统工具

1.表单构建(前端)

  • 允许用户通过拖放等可视化操作创建表单,比如用来收集数据的表格或调查问卷。

  • 可以自定义表单的各个部分,比如添加不同的输入项和设置验证规则,无需编写代码。

  • 提供了导出数据、导入数据、分享表单和设置权限的功能,方便数据管理和共享。

案例:通过表单构建工具,单独制作一个添加课程的表单页面。

实现步骤:

①制作表单并导出

②复制到前端工程(还要重命名)

③创建动态菜单

2.代码生成

  • 自动化工具,可以快速生成项目中常用的代码,如数据库操作类、后端控制器、前端页面等。

  • 支持根据数据库的表结构反向生成代码,减少手动编写的工作量。

  • 提供三种生成模板:单表、 树表、主子表(一对多),可以生成适用于Spring Boot、MyBatis等流行框架的代码,提高开发效率和代码质量。

  • 树表是一种展示层级数据的表格,能展开折叠,清晰呈现父子关系,便于管理。

3.系统接口

  • Swagger,能够自动生成 API 的同步在线文档,并提供Web界面进行接口调用和测试。

3.项目结构

3.1后端结构

项目中的配置文件都在ruoyi-admin模块下

模块依赖关系(运行admin就能直间或间接运行所有模块)

小结:

3.2前端结构

3.3表结构

3.4源码阅读

BaseController

Controller继承了BaseController

TableDataInfo

分页查询统一返回对象:表格分页数据对象

AjaxResult(不需要分页)

增删改查统一返回对象:操作消息提醒

BaseEntity

所有实体类默认继承的BaseEntity基类

权限注解

@PreAuthorize 注解是 Spring Security 框架中用来做权限检查的。

它在运行方法前先验证权限,权限够就放行,不够就拦截。

3.5前后端交互

跨域

在前端开发中,跨域是一个常见的问题,特别是在使用Vue框架进行开发时。跨域是指在浏览器中发送的AJAX请求的目标地址与当前页面的地址不在同一个域下,这会导致浏览器的同源策略产生限制,从而阻止了跨域请求的发送。然而,我们可以通过代理服务器来解决这个问题。

代理服务器是位于客户端和目标服务器之间的一台服务器,它接收客户端发送的请求,并将请求转发给目标服务器。通过在代理服务器上进行请求转发,可以绕过浏览器的同源策略限制,从而实现跨域请求。

4.二次开发

4.1模块定制

若依框架修改器

若依框架修改器是一个可以一键修改RuoYi框架包名、项目名等的工具。

地址:RuoYi-MT 发行版 - Gitee.com

资料中已提供,将项目打成压缩包,再双击工具选择项目压缩包直接修改即可:

再用IDEA的open打开即可

如果出现pom.xml变成橙色而运行无异常,可右键pom文件 - git - add

(因为修改的代码是在git的暂存区,而我们push到远程仓库时git读取的是本地仓库,所以需要将暂存区的数据add到本地仓库)

4.2新建业务模块

新建子模块

sky父工程下(右键maven)创建sky-merchant子模块,在pom.xml中导入核心模块依赖(从admin中复制即可)(就是3.1中的核心模块AOP系统设置什么的)

版本锁定

RuoYi-Vue父工程pom.xml中进行版本锁定

添加模块依赖

ruoyi-admin模块pom.xml中添加模块依赖(服务入口添加依赖,服务启动能够调用)

4.3菜品管理

1.代码生成

①准备SQL并导入数据库(右键数据库-run sql script)

②配置代码生成信息(代码生成器)

③下载代码并导入项目

2.升级改造

(1)通义灵码

IDEA中:Settings - plugins - Tong

vsCode中:左边的扩展-tongyi

(2)前端页面改造:

在vscode中,选中代码,右键Tongling,进行代码解释以及使用vue语法在价格前面加上¥

修改之后 Ctrl + s进行保存,然后刷新浏览器即可

(3)图片上传组件

由于之前的图片访问是本地的路径和服务,需要发起请求(拼接前缀http://localhost/dev)才能获取图片,现在我们使用了OSS,图片可直接访问,无需再次访问后端服务(无需拼接前缀),所以前端的图片访问逻辑我们需要修改

  • 修改文件位置:src/components/imageUpload/index.vue

  • 如果图片路径是以http开头的,则不走后台服务访问,直接访问OSS,之前的不变

1.按住Ctrl+单击(没反应需要下载vue peek插件)

2.定义baseUrl,用于拼接

3.前面有baseUrl和http的都不加前缀

(4)口味文本框改下拉框+联动

(4)页面调整

浏览器标签页icon、标题

找到资料中的logo图标,替换前端项目中的public文件夹,删除原有的favicon.ico(后面加上.bak),把新拷贝过来的logo更名为favicon.ico即可

找到根目录下的index.html文件,把title更换为自己想要的内容即可

系统页面中的logo、标题

找到资料中的logo文件,替换 src/assets/logo/logo.png文件

若依的系统页面标题引用的是开发环境的配置,我们只需要修改开发的环境的VITE_APP_TITLE属性即可

去除源码 & 文档

主题和自定义图标

在目前的前端项目中,已经提供了非常便利的操作方式,可以切换主题的风格

操作:点击右上角的头像,可以找到布局设置

在前端代码中也有对应的操作,更好主题风格文件位置:src/setting.js

在前端代码中也有对应的操作,更好主题风格文件位置:src/setting.js

访问阿里巴巴矢量图库,搜索图标:iconfont-阿里巴巴矢量图标库

将下载好的图标复制到src/assets/icons/svg目录下,就可以给指定菜单设置图标了

登录页面中标题、背景图

登录名称和背景图,我们可以直接找到登录的组件进行修改即可

组件位置:src/views/login.vue

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2109036.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

屎记·大夏王本纪

大夏王,古遂州人氏。公元 2023 年冬,君临绵州,是为称王,国号 CW,建元 BK,意为可递万世而为君。以颈上常年绿光,自以为祥瑞,故又自号“森林”。其人方头大耳,幼时则谓富贵…

【学术会议征稿】第二届人工智能、系统与网络安全国际学术会议 (AISNS 2024)

第二届人工智能、系统与网络安全国际学术会议 (AISNS 2024) 2024 2nd International Conference on Artificial Intelligence, Systems and Network Security 由湖南工程学院主办的第二届人工智能、系统与网络安全国际学术会议 (AISNS 2024)将于2024年…

docker部署nginx、docker常用命令

1、安装nginx 未加版本号,默认最新版 docker pull nginxdocker pull nginx:版本号2、查看是否拉取成功 2-1、查看镜像 docker images2-2、镜像打包->可给他人使用 docker save -o nginx.tar nginx:latest2-3、读取打包的镜像 记得先走第三步删除镜像&#x…

Redis安装步骤——离线安装与在线安装详解

Linux环境下Redis的离线安装与在线安装详细步骤 环境信息一、离线安装1、安装环境2、下载redis安装包3、上传到服务器并解压4、编译redis5、安装redis6、配置redis(基础配置)7、启动redis8、本机访问redis9、远程访问redis 二、在线安装1、更新yum源2、安…

【全网最全】《2024高教社杯/国赛》 B题 思路+代码+文献 优化算法+决策树 第一问 生产过程中的决策问题

领取压缩包 问题 1 建模思路 问题描述 企业需要购买零配件1和零配件2,供应商声称一批零配件(零配件1或零配件2)的次品率不超过某个标称值(例如10%)。企业希望通过抽样检测来决定是否接收这批零配件,同时希…

跨域问题(CORS)

介绍 跨域资源共享(CORS, Cross-Origin Resource Sharing)是浏览器的一个安全机制,用来防止来自一个域的网页对另一个域下的资源进行请求。仅允许向 同域名、同端口 的服务器发送请求。 对于前后端分离的项目,往往会有跨域问题。…

SQL必知必会51题

※食用指南:文章内容为牛客网《SQL必知必会》51道题重点笔记,用于重复思考错题,加深印象。 本文章涉及题目也是《SQL必知必会》书中“挑战题”,题目及答案:《SQL必知必会》随书习题答案 练习传送门:SQL必…

java重点学习-Springcloud+业务相关

五 springcloud,业务,消息中间件 5.1 Spring Cloud 5大组件有哪些 5.2 服务注册和发现是什么意思? Sprin Cloud如何实现服务注册发现? 我们当时项目采用的eureka作为注册中心,这个也是spring cloud体系中的一个核心组件服务注册: 服务提供…

Javaweb开发——maven

一、概述 介绍:Apache Maven是- -个项目管理和构建工具,它基于项目对象模型 (POM Project Object Model)的概念,通过一小段描述信息来管理项目的构建。 作用: ➢方便的依赖管理 ➢…

仕考网:公务员笔试和面试哪个难?

公务员笔试和面试哪个难?二者之间考察的方向不同,难度也是不同的。 笔试部分因其广泛的知识点和有限的考试时间显得难度更高一些,在笔试环节中,考生需在有限的时间内应对各种问题,而且同时还要面对激烈的竞争,在众多…

LabVIEW程序升级改造注意问题

在对别人编写的LabVIEW程序进行升级改造时,尤其是要更换硬件或增加新功能时,需要从多个方面进行细致评估和规划,以确保顺利完成升级。以下是关键注意事项和评估方法: 1. 理解原有设计: 深入理解原有系统的架构、功能逻…

记录下Linux宝塔安装java后无法执行命令,mysql和redis外网无法连接的问题。

新服务器的到来,先把环境整整,。 问题1:java安装成功,想执行命令 java -version测试一下,报错未找到命令。 这个通常意味着尽管你已经在宝塔面板上安装了Java,但是系统无法识别Java的路径,因此…

STM32G474之模拟比较器

STM32G474之模拟比较器测试方法:PA1的附加功能为COMP1_INP,无需映射,直接将它配置为模拟功能,然后将COMP1_OUT引脚映射到PA0,采用DAC1_OUT1输出电压给比较器同向输入COMP1_INP引脚,因此在测试时&#xff0c…

【python】—— Python爬虫实战:爬取珠海市2011-2023年天气数据并保存为CSV文件

目录 目标 准备工作 爬取数据的开始时间和结束时间 爬取数据并解析 将数据转换为DataFrame并保存为CSV文件 本文将介绍如何使用Python编写一个简单的爬虫程序,以爬取珠海市2011年至2023年的天气数据,并将这些数据保存为CSV文件。我们将涉及到以下知识点: 使用r…

UnityShader自定义属性特性

前言: 在编写UnityShader时,我们常常会使用特性来更换材质球面板的属性外观,除此之外,还可以使用自定义的扩展脚本来实现自定义的材质球界面,参考我之前的文章UnityShaderUI编辑器扩展 但是自定义扩展每次都要单独写…

JavaScript接下来的小项目

前言 ● 接下来,我们将学习如下所示的一个小项目,这个项目是一个地图的项目,我们可以在地图上标记一些我们运动的位置进行记录,并且浏览器在本地会帮我们记录他们,其他一些功能后面慢慢阐述并实现 启动代码 JS代码…

基于SSM+Vue+MySQL的出租车管理系统

系统背景 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本出租车管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

phpstorm格式化代码

快捷键:Ctrl Alt L 1.代码按等号按键值对自动对齐 第一步:点击左上角File,点击Settings 第二步:

Unity界面、组件以及脚本

Unity界面 菜单栏 菜单栏:位于屏幕顶部,包含文件、编辑、资产、游戏对象、组件、地形、动画、图形、AI、窗口、工具和帮助等菜单项。 工具栏 工具栏:位于菜单栏下方,提供了快速访问常用功能的按钮,如播放、暂停、停止…

【14.1运行版】C++俄罗斯方块-实现欢迎界面

实现欢迎界面 #include <stdio.h>//C语言形式的输入输出 #include <graphics.h>//图形库的头文件//实现欢迎界面 void welcome(void);int main(void) {welcome();//colsegraph();return 0; }void welcome(void) {//初始化画布initgraph(550, 660);//设置窗口标题H…