Skip to content

Latest commit

 

History

History
170 lines (133 loc) · 5.14 KB

若依.md

File metadata and controls

170 lines (133 loc) · 5.14 KB

若依

前后端分离版:RuoYi-Vue 介绍 | RuoYi

运行:环境部署 | RuoYi

关闭表单 tab 刷新当前页

原理:带页码参数打开表单带,关闭时带参数打开已被缓存的路由,通过生命周期函数activated刷新列表

  • 当列表页组件被缓存时,关闭表单 tab 会回到原状态
  • 当列表页组件没有被缓存时,关闭表单 tab 会重新打开列表页组件(视觉上回到第一页)

而关闭表单时,我们希望刷新当前页,更新数据。

可以参考系统工具 - 代码生成 - 修改,此处就是在新 tab 中打开表单,保存/关闭后刷新列表。

列表页
export default {
  name: 'Info',
  activated() {
    console.log(this.$route.query, this.uniqueId)
    const time = this.$route.query.t;
    if (time != null && time != this.uniqueId) {
      this.uniqueId = time;
      this.queryParams.pageNum = Number(this.$route.query.pageNum);
      this.getList();
    }
  },
  ...
}

Note

此处最为关键,组件name需要需菜单配置的路由地址一致,列表页组件才会被缓存,参看下表。

组件要被缓存,name必须与路由地址完全一致(除了一个字母大写),而只有组件被缓存,回到列表时才不会重刷页面、activated方法才会被调用以刷新数据

name 路由地址 被缓存
Info info
Info mine/info
Mineinfo mine/mineinfo
MineInfo mine/mineinfo
添加表单路由
// 动态路由,基于用户权限动态去加载
export const dynamicRoutes = [
  ...
  {
    path: '/info/info-edit',
    component: Layout,
    hidden: true,
    permissions: ['mine:info:add', 'mine:info:edit'],
    children: [
      {
        path: 'index/:id(\\d+)',
        component: () => import('@/views/mine/info/edit'),
        name: 'MineInfoEdit',
        meta: { title: '上传信息', activeMenu: '/info' }
      }
    ]
  }
]
表单

调用此方法关闭表单,同时将页码参数传回列表页,实现刷新当前页。

    /** 关闭按钮 */
    close() {
      const obj = { path: "/info", query: { t: Date.now(), pageNum: this.$route.query.pageNum } };
      this.$tab.closeOpenPage(obj);
    }

增加字段

若依没有集成 mybatis plus,查询、更新方法使用代码生成器生成 sql,所以增加字段要在表单、列表生效需要在 xml 查询、更新、列表等 sql 中加上字段

增加不须登录的首页

路由配置:ruoyi-ui/src/router/index.js

export const constantRoutes = [
  // 添加首页路由
  {
    path: '/portal',
    component: () => import('@/views/portal'),
    hidden: true
  },
  // 修改原来的默认路由
  {
    path: '',
    redirect: '/portal',
    hidden: true
  },
}

在路由拦截中添加首页路由白名单:ruoyi-ui/src/permission.js

const whiteList = ['/login', '/register', '/portal']

war 部署

环境部署 | RuoYi

通常 war 部署主要为了方便修改配置文件。

启动类com.ruoyi.RuoYiApplication和配置文件都在ruoyi-admin模块,说明这个模块就是 spring boot 后台服务。

修改ruoyi-admin的 pom.xml

<packaging>war</packaging>

测试发现启动报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ruoyi.system.mapper.SysConfigMapper.selectConfigList

这个报错是 mapper 层的接口找不到 xml,难道是 xml 在ruoyi-system的 jar 中无法扫描到,尝试手动拷贝 mapper 文件夹到WEB-INF/classes目录,可以正常启动。

使用maven-resources-plugin插件在打包的时候拷贝 mapper xml
<build>
    <plugins>
        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.3.1</version>
            <executions>
                <execution>
                    <id>copy-xmls</id>
                    <phase>process-sources</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/target/classes</outputDirectory>
                        <resources>
                            <resource>
<!--                                    <directory>${basedir}/src/main/java</directory>-->
                                <directory>../ruoyi-system/src/main/resources</directory>
                                <includes>
                                    <include>**/*.xml</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

maven 打包xml到war包中-CSDN博客