如何在若依框架中自定义添加一个页面

ops/2025/1/18 20:33:52/

 

目录

        前提条件:

1. 在 Vue 前端添加页面

2. 在 Spring Boot 后端添加页面

3. 数据交互(前后端)


再开发过程中,我们通常希望在 若依管理系统(RuoYi)中自定义添加一个页面,通常需要按照以下步骤操作。(适用于 Vue.js 前端Spring Boot 后端

前提条件:

  • 已经搭建好 若依框架 环境,并能够正常运行。
  • 已经熟悉 Vue.jsSpring Boot 的基本开发流程。

1. 在 Vue 前端添加页面

步骤 1:创建 Vue 组件

  1. src/views 目录下,创建一个新的文件夹和 Vue 文件,例如:src/views/customPage/CustomPage.vue

  2. 添加基本的 Vue 组件代码:

<template><div class="custom-page"><h1>自定义页面</h1><p>这是一个自定义的 Vue 页面。</p></div>
</template><script>
export default {name: "CustomPage"
}
</script><style scoped>
.custom-page {padding: 20px;
}
</style>

步骤 2:在路由中添加页面

  1. 打开 src/router/index.js,将新页面添加到 Vue 路由中:
import Vue from 'vue'
import Router from 'vue-router'
import Layout from '@/layout'// 引入新页面组件
import CustomPage from '@/views/customPage/CustomPage'Vue.use(Router)export const constantRoutes = [{path: '/',component: Layout,children: [{path: 'customPage',  // 新页面的路由地址name: 'CustomPage',component: CustomPage,  // 引入刚才创建的页面meta: { title: '自定义页面', icon: 'el-icon-edit' }  // 设置页面标题和图标}]}
]const createRouter = () => new Router({scrollBehavior: () => ({ y: 0 }),routes: constantRoutes
})const router = createRouter()export default router

步骤 3:在左侧菜单中添加路由

  1. 打开 src/layout/components/Sidebar.vue,在侧边栏菜单中添加自定义页面的菜单项:
<template><el-menu:default-active="activeIndex"class="el-menu-vertical-demo"background-color="#324157"text-color="#bfcbd9"active-text-color="#409EFF"><el-menu-item index="1"><router-link to="/customPage"><i class="el-icon-edit"></i><span slot="title">自定义页面</span></router-link></el-menu-item></el-menu>
</template>

步骤 4:重新编译并运行前端

在开发模式下运行 Vue 项目,使用命令:

npm run dev

然后访问 http://localhost:8080/customPage 即可查看自定义页面。


2. 在 Spring Boot 后端添加页面

步骤 1:创建 Controller

src/main/java/com/ruoyi/web/controller 下创建一个新的控制器类,例如:CustomPageController.java

package com.ruoyi.web.controller.system;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;@Controller
public class CustomPageController {@GetMapping("/customPage")public String customPage() {return "redirect:/index.html#/customPage";}
}

步骤 2:配置前端资源

如果你需要后端支持某些静态文件或前端接口,可以在 Spring Boot 中配置访问权限和静态资源的映射。

例如,在 application.ymlapplication.properties 中进行配置:

spring:resources:static-locations: classpath:/static/, file:/path/to/your/static/files/

步骤 3:后端数据接口(可选)

如果需要在自定义页面中展示动态数据,可以通过 @RestController 来实现数据接口:

package com.ruoyi.web.controller.system;import com.ruoyi.common.core.domain.AjaxResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class CustomPageDataController {@GetMapping("/api/customPageData")public AjaxResult getCustomPageData() {// 假设返回一个数据对象return AjaxResult.success("This is custom page data");}
}

3. 数据交互(前后端)

步骤 1:前端获取后端数据

  1. CustomPage.vue 中,使用 axios 请求后端接口:
<template><div class="custom-page"><h1>自定义页面</h1><p>{{ pageData }}</p></div>
</template><script>
import axios from 'axios'export default {name: "CustomPage",data() {return {pageData: ""}},created() {axios.get("/api/customPageData").then(response => {this.pageData = response.data.msg;}).catch(error => {console.log(error);})}
}
</script>

步骤 2:重新编译并运行

  1. 确保前端和后端都已经启动并正常运行。
  2. 访问自定义页面,检查数据是否正确展示。

总结

  1. 前端(Vue)

    • 创建一个新的 Vue 组件(如 CustomPage.vue)。
    • 在 Vue 路由中配置路由和菜单项。
    • 可根据需求从后端获取动态数据。
  2. 后端(Spring Boot)

    • 创建新的 Controller 类,处理页面请求。
    • 如果需要动态数据,提供 RESTful 接口。

通过这些步骤,你可以在若依框架中成功添加并自定义一个页面。


http://www.ppmy.cn/ops/151179.html

相关文章

基于单片机的智能火灾报警系统设计

【文章摘要】火灾报警器是当前社会经济生产生活中较为常用的火灾预警装置,对国民经济及人员生命财产安全起到了重要的保障作用。随着现代科学技术快速发展,智能控制芯片的应用使得火灾报警器反应灵敏度大幅提升,对早期火情发现与控制起到了重要的推动作用。为此,本文以 AT8…

Go实现设计模式

1、是什么 设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结&#xff0c;使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性。 通俗来说&#xff1a;是一个项目的代码层面设计架构&#xff0c;代码功能的排…

实战指南:使用Wireshark捕获并解密HTTPS数据包

在网络安全和数据分析领域&#xff0c;捕获和分析网络数据包是理解网络行为、诊断问题和进行安全审计的重要手段。HTTPS&#xff08;HyperText Transfer Protocol Secure&#xff09;作为现代Web通信的主要协议&#xff0c;通过SSL/TLS加密确保了数据的安全传输。然而&#xff…

[WUSTCTF2020]Cr0ssfun

[WUSTCTF2020]Cr0ssfun 一、查壳 无壳&#xff0c;64位 二、IDA分析 1.main 发现check函数是重点 2.check函数 发现可以一直点下去&#xff0c;好像是一个完整的a1数组&#xff0c;那我们就把他组合起来。 三、写脚本 #include<stdio.h>int main(){int a1[50]{0};i…

React 中hooks之useReducer使用场景和方法总结

1. useReducer 基本概念 useReducer 是 React 的一个 Hook&#xff0c;用于管理复杂的状态逻辑。它接收一个 reducer 函数和初始状态&#xff0c;返回当前状态和 dispatch 函数。 1.1 基本语法 const [state, dispatch] useReducer(reducer, initialState, init);reducer: …

【2024年华为OD机试】(B卷,100分)- 数据分类 (Java JS PythonC/C++)

一、问题描述 题目描述 对一个数据a进行分类&#xff0c;分类方法为&#xff1a; 此数据a&#xff08;四个字节大小&#xff09;的四个字节相加对一个给定的值b取模&#xff0c;如果得到的结果小于一个给定的值c&#xff0c;则数据a为有效类型&#xff0c;其类型为取模的值&…

android T 建立文件夹及文件的记录

第一&#xff1a;AndroidManifest.xml 中整体给予apk权限&#xff0c;如此加入后&#xff0c;在android的settings中&#xff0c;可以找到app.手动给予静态的权限&#xff0c;但是app不一定能使用&#xff0c;请大神指导为什么&#xff1f; <uses-permission android:name&q…

支付宝P0级重大事故!

支付宝又出事了&#xff01;支付宝发生了P0级的重大事故&#xff0c;导致了大规模的用户体验问题&#xff0c;引起了广泛关注。尽管支付宝已经是国内最成熟、最稳定的支付平台之一&#xff0c;但这次的事故再次让人感受到&#xff1a;无论多么强大的平台&#xff0c;也无法避免…