悟空crm前端php,悟空CRM(基于Jfinal+vue+ElementUI)核心代码讲解

悟空CRM是一个基于jfinal的开源CRM系统,采用前后端分离,集成Vue.js和Element-UI。本文将讲解其核心代码,包括Jfinal3.8框架、缓存策略、数据库连接池、权限控制和AOP等技术的应用。项目具备分层设计、数据验证、自定义JSON工厂和文件上传等功能。
摘要由CSDN通过智能技术生成

悟空CRM采用全新的前后端分离模式,本仓库代码中已集成前端vue打包后文件,可免去打包操作

如需调整前端代码,请单独下载前端代码,前端代码在根目录的ux文件夹中

主要技术栈

核心框架:jfinal3.8

缓存:redis caffeine

数据库连接池:Druid

工具类:hutool,fastjson,poi-ooxml

定时任务:jfinal-cron

项目构建工具:maven

Web容器:tomcat,undertow(默认)

前端MVVM框架:Vue.JS 2.5.x

路由:Vue-Router 3.x

数据交互:Axios

UI框架:Element-UI 2.6.3

悟空CRM是一个基于jfinal的开源crm系统,采用前后端分离的开发模式,提供了Aop,查询缓存,数据库连接池,定时器,excel导入导出等功能。

项目中主要有CRM,OA,项目管理,BI等模块,通过角色,部门,菜单实现了按钮级的功能权限控制和数据权限控制,通过将用户登录信息保存至redis来实现支持项目的热重启和分布式部署。

项目还拥有如下特性:

项目通过jfinal强大的AOP将权限判断从代码中抽离出来,用户无需手动判断登陆角色是否拥有权限,以下为通过权限注解在拦截器判断用户是否拥有访问权限

@Override

public void interce

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于jfinal+element ui+vue的简单示例代码: 后端JFinal代码: ``` public class UserController extends Controller { public void index() { render("index.html"); } public void getUsers() { List<User> userList = UserService.getAllUsers(); renderJson(userList); } public void addUser() { User user = getModel(User.class); boolean result = UserService.addUser(user); renderJson(result); } public void deleteUser() { int id = getParaToInt("id"); boolean result = UserService.deleteUser(id); renderJson(result); } } ``` 前端Vue代码: ``` <template> <div> <el-button type="primary" @click="addUser">Add User</el-button> <el-table :data="userList"> <el-table-column prop="id" label="ID"></el-table-column> <el-table-column prop="name" label="Name"></el-table-column> <el-table-column prop="age" label="Age"></el-table-column> <el-table-column label="Operation"> <template slot-scope="scope"> <el-button type="danger" @click="deleteUser(scope.row.id)">Delete</el-button> </template> </el-table-column> </el-table> </div> </template> <script> import axios from 'axios' export default { name: 'User', data() { return { userList: [] } }, mounted() { this.getUsers() }, methods: { getUsers() { axios.get('/user/getUsers').then(response => { this.userList = response.data }) }, addUser() { axios.post('/user/addUser', { name: 'John', age: 25 }).then(response => { if (response.data) { this.getUsers() } }) }, deleteUser(id) { axios.delete(`/user/deleteUser?id=${id}`).then(response => { if (response.data) { this.getUsers() } }) } } } </script> ``` 以上示例代码仅供参考,具体实现方式可以根据自己的需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值