当前位置: 首页>移动开发>正文

若依ruoyi框架开发点滴

? ? 最近用若依(前后端集成版本)开发了一个财务系统,感觉相当的给力,功能齐全,代码量少。由于第一次使用,期间也遇到一些问题,现记录下来,希望对初次使用的朋友有所帮助。文中涉及到的操作是基于idea开发工具。

一、代码生成。

1、创建独立模块

????这个主要是方便开发和维护,特别是多人分模块开发。参考自(https://blog.csdn.net/kenkao/article/details/123349167)或者百度搜索“若依代码生成”。简单总结如下:

(1)单应用:编辑ruoyi-admin中resources目录下的application.yml

author: lzy # 开发者姓名,生成到类注释上

packageName: com.ruoyi.student # 默认生成包路径

autoRemovePre: true # 是否自动去除表前缀

tablePrefix: stu # 表前缀

(2)建表

????最好参考若依系统表创建,如固定字段:id,创建人,创建时间,修改人,修改时间,状态等;还有就是字段名和表名统一采用下划线或驼峰式,这对于后面代码的get和set可能有影响,如果列表没显示出值,要检查是否字段名引起。

(3)项目中新建模块

a.右键项目顶级-->New-->Module

b.修改项目的pom.xml加入模块dependency

<!-- 学生模块-->

<dependency>

? ? <groupId>com.ruoyi</groupId>

? ? <artifactId>ruoyi-student</artifactId>

? ? <version>${ruoyi.version}</version>

</dependency>

c.在ruoyi-admin这个模块的pom.xml中引入刚刚新建戴尔模块

<!--学生模块-->

<dependency>

? ? <groupId>com.ruoyi</groupId>

? ? <artifactId>ruoyi-student</artifactId>

</dependency>

d.将ruoyi-common引入到我们新建的模块,ruoyi-student的pom.xml加入

<dependencies>

? ? <dependency>

? ? ? ? <groupId>com.ruoyi</groupId>

? ? ? ? <artifactId>ruoyi-common</artifactId>

? ? </dependency>

</dependencies>

e.如果模块中用到系统表,如用户,角色,菜单等,还需要把ruoyi-admin引入到ruoyi-student,(后面代码会报错,也会自动引入)

(4)启动系统后在菜单管理中新建一个目录-学生管理

(5)系统工具-代码生成,导入,选择新建的表。

对表进行编辑,其中模块名可以用xxx/yyy来让生成的html创建子目录,菜单指定刚才创建的目录。

(6)执行生成的sql,自动生成菜单和权限。

(7)将生成的代码放入项目中

a.将自动生成的代码文件main目录直接复制到我们的新建模块的src下,替换原本的main目录

b.将templates目录拷贝到ruoyi-admin目录下的resources中

(8)重启项目(一定要重启),访问页面

二、开发过程可能会遇到的问题总结

1、登录后点击菜单提示无权限

? ? 解决:登录时勾选记住"记住我" 或 用谷歌的无痕模式进行访问。

2、前端无翻页的问题

(1)查看table.init方法其中的pagination 分页插件是否设置为true

(2)排查问题得出不是前端页面造成的分页失效,查看list方法中返回的list集合是否被更改数据结构,被更改数据结构后也会导致前端分页失效。中间如果有对结果list做处理,就会失效,所以处理最好放到service层,或在mapper层处理。如果非要在controller处理请自行百度。

/**正确示范**/

startPage(l);

List<T> list = Service.selectTList(T);

return? getDataTable(list);

3、页面上的功能

(1)表格底footer固定显示某些内容,如汇总等

var options = {

? ? ? ? ? ? ? ? url: prefix + "/listDto",

? ? ? ? ? ? ? ? createUrl: prefix + "/add",

? ? ? ? ? ? ? ? updateUrl: prefix + "/edit/{id}",

? ? ? ? ? ? ? ? removeUrl: prefix + "/remove",

? ? ? ? ? ? ? ? exportUrl: prefix + "/export",

? ? ? ? ? ? ? ? importUrl: prefix + "/importData",//导入

? ? ? ? ? ? ? ? modalName: "订单",

? ? ? ? ? ? ? ? showFooter: true,

? ? ? ? ? ? ? ? columns: [{

? ? ? ? ? ? ? ? ? ? field: 'id',

? ? ? ? ? ? ? ? ? ? title: 'id',

? ? ? ? ? ? ? ? ? ? visible: false

? ? ? ? ? ? ? ? },

????????????????{

? ? ? ? ? ? ? ? ? ? field: 'amount',

? ? ? ? ? ? ? ? ? ? title: '订单金额',

? ? ? ? ? ? ? ? ? ? formatter: function(value, row, index) {

? ? ? ? ? ? ? ? ? ? ? ? return toThousands(value);

? ? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? ? ? //计算此列的值

? ? ? ? ? ? ? ? ? ? footerFormatter: function(rows){

? ? ? ? ? ? ? ? ? ? ? ? var sum = 0;

? ? ? ? ? ? ? ? ? ? ? ? for (var i=0;i<rows.length;i++) {

? ? ? ? ? ? ? ? ? ? ? ? ? ? sum += rows[i].amount

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? return toThousands(sum);

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? },

(2)bootstrap 合并单元格之mergeCells属性合并

var options = {

? ? ? ? ? ? url: prefix + "/reportData",

? ? ? ? ? ? createUrl: prefix + "/add",

? ? ? ? ? ? updateUrl: prefix + "/edit/{id}",

? ? ? ? ? ? removeUrl: prefix + "/remove",

? ? ? ? ? ? exportUrl: prefix + "/export",

? ? ? ? ? ? addInvoiceUrl: prefix + "/addInvoice?ids=",

? ? ? ? ? ? modalName: "报表",

? ? ? ? ? ? // onLoadSuccess: function(data) {

? ? ? ? ? ? //? ? var data = $('#bootstrap-table').bootstrapTable('getData', true);

? ? ? ? ? ? //? ? //合并单元格

? ? ? ? ? ? //? ? mergeCells(data, $('#bootstrap-table'));

? ? ? ? ? ? // },

? ? ? ? ? ? columns: [{

? ? ? ? ? ? ? ? ? ? field: 'id',

? ? ? ? ? ? ? ? ? ? title: 'id',

? ? ? ? ? ? ? ? ? ? visible: false

? ? ? ? ? ? ? ? },

function mergeCells(data, target) {

? ? ? ? var id = "";

? ? ? ? var length = 1;

? ? ? ? var list = [];

? ? ? ? for (var i = 0; i < data.length; i++) {

? ? ? ? ? ? if(id != data[i].id){

? ? ? ? ? ? ? ? if(i > 0){

? ? ? ? ? ? ? ? ? ? list.push(length);

? ? ? ? ? ? ? ? ? ? length = 1;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? length = length + 1;

? ? ? ? ? ? }

? ? ? ? ? ? if(i == data.length -1){

? ? ? ? ? ? ? ? list.push(length);

? ? ? ? ? ? }

? ? ? ? ? ? id = data[i].id;

? ? ? ? }

? ? ? ? console.log(list);

? ? ? ? var num = 0;

? ? ? ? for(var i = 0; i < list.length; i++){

? ? ? ? ? ? if(list[i] > 1) {

? ? ? ? ? ? ? ? $(target).bootstrapTable('mergeCells', {index: num, field: 'id', colspan: 1, rowspan: list[i]});

? ? ? ? ? ? ? ? $(target).bootstrapTable('mergeCells', {

? ? ? ? ? ? ? ? ? ? index: num,

? ? ? ? ? ? ? ? ? ? field: 'invoiceDate',

? ? ? ? ? ? ? ? ? ? colspan: 1,

? ? ? ? ? ? ? ? ? ? rowspan: list[i]

? ? ? ? ? ? ? ? });

? ? ? ? ? ? ? ? $(target).bootstrapTable('mergeCells', {

? ? ? ? ? ? ? ? ? ? index: num,

? ? ? ? ? ? ? ? ? ? field: 'invoiceType',

? ? ? ? ? ? ? ? ? ? colspan: 1,

? ? ? ? ? ? ? ? ? ? rowspan: list[i]

? ? ? ? ? ? ? ? });

? ? ? ? ? ? ? ? $(target).bootstrapTable('mergeCells', {

? ? ? ? ? ? ? ? ? ? index: num,

? ? ? ? ? ? ? ? ? ? field: 'invoiceCode',

? ? ? ? ? ? ? ? ? ? colspan: 1,

? ? ? ? ? ? ? ? ? ? rowspan: list[i]

? ? ? ? ? ? ? ? });

? ? ? ? ? ? ? ? $(target).bootstrapTable('mergeCells', {

? ? ? ? ? ? ? ? ? ? index: num,

? ? ? ? ? ? ? ? ? ? field: 'invoiceAmount',

? ? ? ? ? ? ? ? ? ? colspan: 1,

? ? ? ? ? ? ? ? ? ? rowspan: list[i]

? ? ? ? ? ? ? ? });

? ? ? ? ? ? ? ? $(target).bootstrapTable('mergeCells', {index: num, field: 'remarks', colspan: 1, rowspan: list[i]});

? ? ? ? ? ? }

? ? ? ? ? ? num = num + list[i];

? ? ? ? }

? ? }

(3)bootstrap 表格文本右对齐

$(function() {

? ? ? ? ? ? var options = {

? ? ? ? ? ? ? ? url: prefix + "/list",

? ? ? ? ? ? ? ? createUrl: prefix + "/add",

? ? ? ? ? ? ? ? updateUrl: prefix + "/edit/{id}",

? ? ? ? ? ? ? ? removeUrl: prefix + "/remove",

? ? ? ? ? ? ? ? exportUrl: prefix + "/export",

? ? ? ? ? ? ? ? importUrl: prefix + "/importData",//导入

? ? ? ? ? ? ? ? modalName: "协议信息",

? ? ? ? ? ? ? ? columns: [{

? ? ? ? ? ? ? ? ? ? field: 'id',

? ? ? ? ? ? ? ? ? ? title: 'id',

? ? ? ? ? ? ? ? ? ? visible: false

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? field: 'amount',

? ? ? ? ? ? ? ? ? ? title: '协议金额',

? ? ? ? ? ? ? ? ? ? align: 'right',

? ? ? ? ? ? ? ? ? ? formatter: function(value, row, index) {

? ? ? ? ? ? ? ? ? ? ? ? return toThousands(value);

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }]

待续。。。


https://www.xamrdz.com/mobile/4tr1994348.html

相关文章: