基于javaweb+mysql的springboot销售团队后台管理系统(java+springboot+freemarker+bootstrap+echarts+mysql+maven)

基于javaweb+mysql的springboot销售团队后台管理系统(java+springboot+freemarker+bootstrap+echarts+mysql+maven)

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb的SpringBoot销售团队后台管理系统(java+springboot+freemarker+bootstrap+echarts+mysql+maven)

项目介绍

该项目为后管系统,主要功能包括:

看板、业务机会管理、客户管理、联系人管理、我的日报、团队日报、主数据管理:组织架构管理;系统管理:用户管理、角色管理、菜单管理等;

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;

3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;

4.数据库:MySql 5.7版本;

技术栈

  1. 后端:SpringBoot+mybatis

  2. 前端:FreeMarker+Angular+bootstrap+echarts+jQuery

使用说明

前台访问路径:http://localhost:8080/

登录账号:admin 登录密码:123456

    public Contacts findById(@RequestBody Contacts contacts) {
        return contactsService.findById(contacts.getContactsId());
    }

    @RequestMapping(value = "/update", method = RequestMethod.POST)
    @ResponseBody
    public Result update(@RequestBody Contacts contacts) {
        return contactsService.update(contacts);
    }
}

@Controller
public class HomeController {

    @Autowired
    private HttpSession session;

    @Autowired
    private UserService userService;

    @Autowired
    private PowerTeamConfig powerTeamConfig;

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String signIn() {
        return "sys/home";
    }

    @RequestMapping(value = "/signIn", method = RequestMethod.POST)
    @ResponseBody

@Controller
@RequestMapping("/district")
public class DistrictController {

    @Autowired
    private DistrictService districtService;

    @RequestMapping(value = "/findAllProvince", method = RequestMethod.POST)
    @ResponseBody
    public List<District> findAllProvince() {
        return districtService.findAllProvince();
    }

    @RequestMapping(value = "/findCity", method = RequestMethod.POST)
    @ResponseBody
    public List<District> findCity(@RequestBody int provinceId) {
        return districtService.findCity(provinceId);
    }

    @RequestMapping(value = "/findCounty", method = RequestMethod.POST)
    @ResponseBody
    public List<District> findCounty(@RequestBody int cityId) {
        return districtService.findCounty(cityId);
    }
}


@Controller
public class DailyReportController extends AuthorizedController {

    @RequestMapping(value = "/dailyReport", method = RequestMethod.GET)
    public String dailyReport() {
        return "crm/dailyReport";
    }

    @RequestMapping(value = "/teamDailyReport", method = RequestMethod.GET)
    public String teamDailyReport() {
        return "crm/teamDailyReport";
    }
}

@Controller
@RequestMapping("/dashboard")
public class DashboardController extends AuthorizedController {

    @RequestMapping(value = "", method = RequestMethod.GET)
    public String dashboard() {
        return "sys/dashboard";
    }

}


@Controller
@RequestMapping("/user")
public class UserController extends AuthorizedController {

    @Autowired
    private UserService userService;

    @Autowired
    private HttpSession session;

    @RequestMapping(value = "", method = RequestMethod.GET)
    public String index() {
        return "sys/user";
    }

    @RequestMapping(value = "/find", method = RequestMethod.POST)
    @ResponseBody
    public PageInfo<User> find(@RequestBody QueryUserVo vo) {
        return userService.find(vo);
    }

    @RequestMapping(value = "/add", method = RequestMethod.POST)
    @ResponseBody
    public Result add(@RequestBody User user) {
        return userService.insert(user);
    }

    @RequestMapping(value = "/remove", method = RequestMethod.POST)
    @ResponseBody
    public Result delete(@RequestBody List<Integer> ids) {
        return userService.deleteByIds(ids);
    }

    @RequestMapping(value = "/findById", method = RequestMethod.POST)
    @ResponseBody
    public User findById(@RequestBody User user) {
    @ResponseBody
    public Result update(@RequestBody OrgUnit orgUnit) {
        return orgUnitService.update(orgUnit);
    }

    @RequestMapping(value = "/remove", method = RequestMethod.POST)
    @ResponseBody
    public Result remove(@RequestBody OrgUnit orgUnit) {
        return orgUnitService.delete(orgUnit.getOrgUnitId());
    }

    @RequestMapping(value = "/up", method = RequestMethod.POST)
    @ResponseBody
    public Result up(@RequestBody OrgUnit orgUnit) {
        return orgUnitService.up(orgUnit.getOrgUnitId());
    }

    @RequestMapping(value = "/down", method = RequestMethod.POST)
    @ResponseBody
    public Result down(@RequestBody OrgUnit orgUnit) {
        return orgUnitService.down(orgUnit.getOrgUnitId());
    }

    @RequestMapping(value = "/orgUser", method = RequestMethod.GET)
    public String orgUser() {
        return "masterData/orgUser";
    }

    @RequestMapping(value = "/orgUser/findUserNotInOrgUnit", method = RequestMethod.POST)
    @ResponseBody
    public PageInfo<User> findUserNotInOrgUnit(@RequestBody QueryOrgUnitUserVo vo) {
        return orgUnitService.findUserNotInOrgUnit(vo);
    }

    @RequestMapping(value = "/orgUser/findUserInOrgUnit", method = RequestMethod.POST)
    @ResponseBody
    public PageInfo<OrgUnitUser> findUserInOrgUnit(@RequestBody QueryOrgUnitUserVo vo) {
        return orgUnitService.findUserInOrgUnit(vo);
    }

    @RequestMapping(value = "/orgUser/add", method = RequestMethod.POST)
    @ResponseBody
    public Result addOrgUser(@RequestBody OrgUnitUser orgUnitUser) {
        return orgUnitService.insertOrgUnitUser(orgUnitUser);
    }

    @RequestMapping(value = "/orgUser/remove", method = RequestMethod.POST)
    @ResponseBody
    public Result removeOrgUser(@RequestBody OrgUnitUser orgUnitUser) {

@Controller
@RequestMapping("/customer")
public class CustomerController extends AuthorizedController {

    @Autowired
    private CustomerService customerService;

    @RequestMapping(value = "", method = RequestMethod.GET)
    public String customer() {
        return "crm/customer";
    }

    @RequestMapping(value = "/find", method = RequestMethod.POST)
    @ResponseBody
    public PageInfo<Customer> find(@RequestBody QueryCustomerVo vo) {
        return customerService.find(vo);
    }

    @RequestMapping(value = "/findAllCustomerCategory", method = RequestMethod.POST)
    @ResponseBody
    public List<CustomerCategory> findAllCustomerCategory() {
        return customerService.findAllCustomerCategory();
    }

    @RequestMapping(value = "/findAllIndustry", method = RequestMethod.POST)
    @ResponseBody
    public List<Industry> findAllIndustry() {
        return customerService.findAllIndustry();
    }

    @RequestMapping(value = "/findAllSource", method = RequestMethod.POST)
    @ResponseBody
    public List<Source> findAllSource() {
        return customerService.findAllSource();
    }

    @RequestMapping(value = "/add", method = RequestMethod.POST)
    @ResponseBody
    public Result add(@RequestBody Customer customer) {
        customer.setCreateBy(getUser().getUserId());
        return customerService.insert(customer);
    }
    public String index() {
        return "sys/menu";
    }

    @RequestMapping(value = "/findAllMenu", method = RequestMethod.POST)
    @ResponseBody
    public List<Menu> findAllMenu() {
        return menuService.findAllMenu();
    }

    @RequestMapping(value = "/findAllMenuTree", method = RequestMethod.POST)
    @ResponseBody
    public List<TreeNode<Menu>> findAllMenuTree() {
        return menuService.findAllMenuTree();
    }

    @RequestMapping(value = "/findUserMenuTree", method = RequestMethod.POST)
    @ResponseBody
    public List<TreeNode<Menu>> findUserMenuTree() {
        return menuService.findUserMenuTree(getUser().getUserId());
    }

    @RequestMapping(value = "/findRoleMenu", method = RequestMethod.POST)
    @ResponseBody
    public List<Menu> findRoleMenu(@RequestBody Role role) {
        return menuService.findRoleMenu(role.getRoleId());
    }

    @RequestMapping(value = "/checkMenuName", method = RequestMethod.POST)
    @ResponseBody
    public Result checkMenuName(@RequestBody Menu menu) {
        return menuService.checkMenuName(menu);
    }

    @RequestMapping(value = "/checkMenuCode", method = RequestMethod.POST)
    @ResponseBody
    public Result checkMenuCode(@RequestBody Menu menu) {
        return menuService.checkMenuCode(menu);
    }

    }

    @RequestMapping(value = "/orgUser/findUserInOrgUnit", method = RequestMethod.POST)
    @ResponseBody
    public PageInfo<OrgUnitUser> findUserInOrgUnit(@RequestBody QueryOrgUnitUserVo vo) {
        return orgUnitService.findUserInOrgUnit(vo);
    }

    @RequestMapping(value = "/orgUser/add", method = RequestMethod.POST)
    @ResponseBody
    public Result addOrgUser(@RequestBody OrgUnitUser orgUnitUser) {
        return orgUnitService.insertOrgUnitUser(orgUnitUser);
    }

    @RequestMapping(value = "/orgUser/remove", method = RequestMethod.POST)
    @ResponseBody
    public Result removeOrgUser(@RequestBody OrgUnitUser orgUnitUser) {
        return orgUnitService.deleteOrgUnitUser(orgUnitUser);
    }

    @RequestMapping(value = "/orgUser/setUnitHead", method = RequestMethod.POST)
    @ResponseBody
    public Result setUnitHead(@RequestBody OrgUnitUser orgUnitUser) {
        return orgUnitService.setUnitHead(orgUnitUser);
    }

    @RequestMapping(value = "/orgUser/removeUnitHead", method = RequestMethod.POST)
    @ResponseBody
    public Result removeUnitHead(@RequestBody OrgUnitUser orgUnitUser) {
        return orgUnitService.removeUnitHead(orgUnitUser);
    }
}

    }

    @RequestMapping(value = "/updateContactsRole", method = RequestMethod.POST)
    @ResponseBody
    public Result updateContactsRole(@RequestBody ContactsRole contactsRole) {
        return opportunityService.updateContactsRole(contactsRole);
    }

    @RequestMapping(value = "/removeContactsRole", method = RequestMethod.POST)
    @ResponseBody
    public Result removeContactsRole(@RequestBody ContactsRole contactsRole) {
        return opportunityService.deleteContactsRole(contactsRole);
    }

    @RequestMapping(value = "/remove", method = RequestMethod.POST)
    @ResponseBody
    public Result remove(@RequestBody Opportunity opportunity) {
        return opportunityService.delete(opportunity);
    }

    @RequestMapping(value = "/history", method = RequestMethod.GET)
    public String history() {
        return "crm/opportunityHistory";
    }

    @RequestMapping(value = "/history/view/{opportunityId}", method = RequestMethod.GET)
    public ModelAndView view(@PathVariable int opportunityId) {
        ModelAndView vm = new ModelAndView("crm/opportunityView");
        vm.addObject("opportunityId", opportunityId);
        return vm;
    }

    @RequestMapping(value = "/findMonthlyFunnel", method = RequestMethod.POST)
    @ResponseBody
    public List<Map> findMonthlyFunnel(@RequestBody QueryOpportunityVo vo) {
        List<Integer> userIdList = new ArrayList<>();
        userIdList.add(getUser().getUserId());
        vo.setUserIdList(userIdList);
        return opportunityService.findMonthlyFunnel(vo);
    }

    @RequestMapping(value = "/findMonthlyConversion", method = RequestMethod.POST)
    @ResponseBody

    @RequestMapping(value = "/menu/saveMenu", method = RequestMethod.POST)
    @ResponseBody
    public Result saveMenu(@RequestBody Map map) {
        return roleService.saveRoleMenu((Integer) map.get("roleId"), (List<Integer>) map.get("menuIdList"));
    }

    @RequestMapping(value = "/fun/{roleId}", method = RequestMethod.GET)
    public ModelAndView roleFun(@PathVariable int roleId) {
        ModelAndView vm = new ModelAndView("sys/roleFun");
        vm.addObject("roleId", roleId);
        return vm;
    }
}

@Controller
@RequestMapping("/orgUnit")
public class OrgUnitController extends AuthorizedController {

    @Autowired
    private OrgUnitService orgUnitService;

    @RequestMapping(value = "", method = RequestMethod.GET)
    public String index() {
        return "masterData/orgUnit";
    }

    @RequestMapping(value = "/findAllOrgUnit", method = RequestMethod.POST)
    @ResponseBody
    public List<OrgUnit> findAllOrgUnit() {
        return orgUnitService.findAllOrgUnit();
    }

                        Object value = field.get(item);
                        if (value != null) {
                            cell.setCellValue((Byte) value);
                        }
                    } else if (fieldType == Long.class) {
                        Object value = field.get(item);
                        if (value != null) {
                            cell.setCellValue((Long) value);
                        }
                    } else if (fieldType == Short.class) {
                        Object value = field.get(item);
                        if (value != null) {
                            cell.setCellValue((Short) value);
                        }
                    }
                }
            }

            response.setContentType("application/vnd.ms-excel");
            response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
            workbook.write(response.getOutputStream());
            response.flushBuffer();

        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

    @ResponseBody
    public Result add(@RequestBody Customer customer) {
        customer.setCreateBy(getUser().getUserId());
        return customerService.insert(customer);
    }

    @RequestMapping(value = "/checkCustomerName", method = RequestMethod.POST)
    @ResponseBody
    public Result checkCustomerName(@RequestBody Customer customer) {
        return customerService.checkCustomerName(customer);
    }

    @RequestMapping(value = "/findById", method = RequestMethod.POST)
    @ResponseBody
    public Customer findById(@RequestBody Customer customer) {
        return customerService.findById(customer.getCustomerId());
    }

    @RequestMapping(value = "/update", method = RequestMethod.POST)
    @ResponseBody
    public Result update(@RequestBody Customer customer) {
        return customerService.update(customer);
    }

    @RequestMapping(value = "/dashboard/{customerId}", method = RequestMethod.GET)
    public ModelAndView dashboard(@PathVariable int customerId) {
        ModelAndView vm = new ModelAndView("crm/customerDashboard");
        vm.addObject("customerId", customerId);
        return vm;
    }

    @RequestMapping(value = "/updateStar", method = RequestMethod.POST)
    @ResponseBody
    public Result updateStar(@RequestBody Customer customer) {
        return customerService.updateStar(customer);
    }

    @RequestMapping(value = "/updateLocation", method = RequestMethod.POST)
    @ResponseBody
    public Result updateLocation(@RequestBody Customer customer) {
        return customerService.updateLocation(customer);
    }
}


@Controller
@RequestMapping("/orgUnit")
public class OrgUnitController extends AuthorizedController {

    @Autowired
    private OrgUnitService orgUnitService;

    @RequestMapping(value = "", method = RequestMethod.GET)
    public String index() {
        return "masterData/orgUnit";
    }

    @RequestMapping(value = "/findAllOrgUnit", method = RequestMethod.POST)
    @ResponseBody
    public List<OrgUnit> findAllOrgUnit() {
        return orgUnitService.findAllOrgUnit();
    }

    @RequestMapping(value = "/add", method = RequestMethod.POST)
    @ResponseBody
    public Result add(@RequestBody OrgUnit orgUnit) {
        return orgUnitService.insert(orgUnit);
    }

    @RequestMapping(value = "/update", method = RequestMethod.POST)
    @ResponseBody
    public Result update(@RequestBody OrgUnit orgUnit) {
        return orgUnitService.update(orgUnit);
    }

    @RequestMapping(value = "/remove", method = RequestMethod.POST)
    @ResponseBody
    public Result remove(@RequestBody OrgUnit orgUnit) {
        return orgUnitService.delete(orgUnit.getOrgUnitId());
    }

    @RequestMapping(value = "/up", method = RequestMethod.POST)
    @ResponseBody
    public Result up(@RequestBody OrgUnit orgUnit) {
        return orgUnitService.up(orgUnit.getOrgUnitId());
    }

    @RequestMapping(value = "/down", method = RequestMethod.POST)
    @ResponseBody
    public Result down(@RequestBody OrgUnit orgUnit) {
        return orgUnitService.down(orgUnit.getOrgUnitId());

@Controller
@RequestMapping("/orgUnit")
public class OrgUnitController extends AuthorizedController {

    @Autowired
    private OrgUnitService orgUnitService;

    @RequestMapping(value = "", method = RequestMethod.GET)
    public String index() {
        return "masterData/orgUnit";
    }

    @RequestMapping(value = "/findAllOrgUnit", method = RequestMethod.POST)
    @ResponseBody
    public List<OrgUnit> findAllOrgUnit() {
        return orgUnitService.findAllOrgUnit();
    }

    @RequestMapping(value = "/add", method = RequestMethod.POST)
    @ResponseBody
    public Result add(@RequestBody OrgUnit orgUnit) {
        return orgUnitService.insert(orgUnit);
    }

    @RequestMapping(value = "/update", method = RequestMethod.POST)
    @ResponseBody
    public Result remove(@RequestBody OrgUnit orgUnit) {
        return orgUnitService.delete(orgUnit.getOrgUnitId());
    }

    @RequestMapping(value = "/up", method = RequestMethod.POST)
    @ResponseBody
    public Result up(@RequestBody OrgUnit orgUnit) {
        return orgUnitService.up(orgUnit.getOrgUnitId());
    }

    @RequestMapping(value = "/down", method = RequestMethod.POST)
    @ResponseBody
    public Result down(@RequestBody OrgUnit orgUnit) {
        return orgUnitService.down(orgUnit.getOrgUnitId());
    }

    @RequestMapping(value = "/orgUser", method = RequestMethod.GET)
    public String orgUser() {
        return "masterData/orgUser";
    }

    @RequestMapping(value = "/orgUser/findUserNotInOrgUnit", method = RequestMethod.POST)
    @ResponseBody
    public PageInfo<User> findUserNotInOrgUnit(@RequestBody QueryOrgUnitUserVo vo) {
        return orgUnitService.findUserNotInOrgUnit(vo);
    }

    @RequestMapping(value = "/orgUser/findUserInOrgUnit", method = RequestMethod.POST)
    @ResponseBody
    public PageInfo<OrgUnitUser> findUserInOrgUnit(@RequestBody QueryOrgUnitUserVo vo) {
        return orgUnitService.findUserInOrgUnit(vo);
    }

    @RequestMapping(value = "/orgUser/add", method = RequestMethod.POST)
    @ResponseBody
    public Result addOrgUser(@RequestBody OrgUnitUser orgUnitUser) {
        return orgUnitService.insertOrgUnitUser(orgUnitUser);
    }

    @RequestMapping(value = "/orgUser/remove", method = RequestMethod.POST)
    @ResponseBody
    public Result removeOrgUser(@RequestBody OrgUnitUser orgUnitUser) {
        return orgUnitService.deleteOrgUnitUser(orgUnitUser);
    }

    @RequestMapping(value = "/orgUser/setUnitHead", method = RequestMethod.POST)

@Controller
@RequestMapping("/role")
public class RoleController extends AuthorizedController {

    @Autowired
    private RoleService roleService;

    @RequestMapping(value = "", method = RequestMethod.GET)
    public String index() {
        return "sys/role";
    }

    @RequestMapping(value = "/findAll", method = RequestMethod.POST)
    @ResponseBody
    public List<Role> findAll() {
        return roleService.findAll();
    }

    @RequestMapping(value = "/checkRoleName", method = RequestMethod.POST)
    @ResponseBody
    public Result existRoleName(@RequestBody Role role) {
        return roleService.checkRoleName(role);
    }

    @RequestMapping(value = "/add", method = RequestMethod.POST)
    @ResponseBody
    public Result add(@RequestBody Role role) {
        return roleService.insert(role);
    }

        return userService.deleteByIds(ids);
    }

    @RequestMapping(value = "/findById", method = RequestMethod.POST)
    @ResponseBody
    public User findById(@RequestBody User user) {
        return userService.findById(user.getUserId());
    }

    @RequestMapping(value = "/update", method = RequestMethod.POST)
    @ResponseBody
    public Result update(@RequestBody User user) {
        Result result = userService.update(user);
        if (result.isSuccess() && user.getUserId() == getUser().getUserId()) {
            session.setAttribute("User", userService.findById(getUser().getUserId()));
        }
        return result;
    }

    @RequestMapping(value = "/updateStatus", method = RequestMethod.POST)
    @ResponseBody
    public Result updateStatus(@RequestBody User user) {
        return userService.updateStatus(user);
    }

    @RequestMapping(value = "/checkUserName", method = RequestMethod.POST)
    @ResponseBody
    public Result checkUserName(@RequestBody User user) {
        return userService.checkUserName(user);
    }

    @RequestMapping(value = "/resetPassword", method = RequestMethod.POST)
    @ResponseBody
    public Result resetPassword(@RequestBody User user) {
        return userService.resetPassword(user);
    }

    @RequestMapping(value = "/profile", method = RequestMethod.GET)
    public String profile() {
        return "sys/profile";
    }

    @RequestMapping(value = "/updatePassword", method = RequestMethod.POST)
    @ResponseBody
    public Result updatePassword(@RequestBody UpdatePasswordVo vo) {
        return userService.updatePassword(vo);
    }
}


@Controller
@RequestMapping("/role")
public class RoleController extends AuthorizedController {

    @Autowired
    private RoleService roleService;

    @RequestMapping(value = "", method = RequestMethod.GET)
    public String index() {
        return "sys/role";
    }

    @RequestMapping(value = "/findAll", method = RequestMethod.POST)
    @ResponseBody
    public List<Role> findAll() {
        return roleService.findAll();
    }

    @RequestMapping(value = "/checkRoleName", method = RequestMethod.POST)
    @ResponseBody
    public Result existRoleName(@RequestBody Role role) {
        return roleService.checkRoleName(role);
    }

    @RequestMapping(value = "/add", method = RequestMethod.POST)
    @ResponseBody
    public Result add(@RequestBody Role role) {
        return roleService.insert(role);
    }

    @RequestMapping(value = "/remove", method = RequestMethod.POST)
    @ResponseBody
    public Result delete(@RequestBody List<Integer> ids) {
        return roleService.deleteByIds(ids);

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

系统包含项目的源码和搭建的详细文档,以及数据库脚本 系统功能模块(开发时可取舍) 1. 权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限 角色(基础权限): 分角色组和角色,独立分配菜单权限和增删改查权限。 按钮权限: 给角色分配按钮权限。 2. 按钮管理:自定义按钮管理,维护按钮权限标识等 3. 菜单管理:无限级别自定义菜单,自定义菜单图标,业务菜单和系统菜单分离,菜单状态显示隐藏(递归处理) 4. 数据字典:无限级别,支持多级别无限分类。内设编号,排序等 5. 组织机构:无限级别,公司or部门管理 6. 在线管理:websocket技术,实时检测在线用户列表,统计在线人数,可强制用户下线 同一用户只能在一个客户端登录 7. 系统用户:对各个基本的用户增删改查,单发、群发站内信邮件短信,导入导出excel表格,批量删除 8. 会员管理:对前台用户管理,分配会员级别,到期时间,状态,联系信息等资料 9. 代码生成:生成完整的模块代码,并保留生成记录模版,可复用 (超强悍开发利器) 正向生成: 生成完整的模块,页面、处理类、service层、myabaits的xml 建表的sql脚本等 反向生成: 任意连接其它数据库(mysql、oracle、sqlserver),根据表反射生成本系统的模块 10. 性能监控:监控整个系统的性能,SQL监控,SQL防火墙,URL监控,SPRING监控,SESSION监控等 11. 接口测试:POST or GET 方式检测系统接口,参数加密,json返回结果,计算服务器响应时间 12. 发送邮件:单发,群发邮件 13. 置二维码:生成二维码图表保存到服务器 or 解析读取二维码内信息 14. 图表报表:柱状图、饼状图、折线图、各种图表大全 15. 地图工具:打开地图, 鼠标点击地图某位置获取经纬度坐标,根据经纬度计算两点距离 16. 打印测试:页面打印预览测试 17. 图片管理:对批量上传的图片统一管理 ,点击放大,可打开多个,自由切换,绚丽预览效果 18. 图片爬虫:输入某网址,爬出其图片显示在页面上,可以放大预览。可保存到服务器上,到图片管理里面 19. 站内信:收信箱和发信箱, websocket技术通讯技术做的及时收信提醒,可配置语音提示来信 20. 系统设置:修改系统名称,邮件服务器配置,短信账号设置,图片水印配置,微信配置 21. 及时聊天:打开聊天窗口,可群聊、一对一聊天 22. 表单构建:拖拽式快速自定义构建表单,组建元素丰富,有富文本、上传控件、下拉框等等 23. 主附结构:提供一个主表和明细表模块的例子(用本代码生成器生成的) 24. 员工管理:和组织机构部门管理,可以绑定登录系统用户,授权数据权限 -------------------------------------------------------------------------------------------------------------------------数据库管理 25. 数据库备份:可备份单表、整库,支持本地和远程数据库备份(java界面编程技术,socket编程技术) 26. 备份定时器:quartz 2.2 强大的任务调度,多线程备份数据库,任务启动关闭异步操作 27. 数据库还原:历史备份记录,还原数据库 or 单表 ,统计备份时间和文件大小 28. SQL编辑器:强大的SQL编辑器,支持编辑语句复杂查询语句,生成动态报表,可导出excel ------------------------------------------------------------------------------------------------------------------------- 菜单权限:分配给每个角色不同的菜单权限, 每个角色看到的菜单不同,无限级别菜单 按钮权限:独立分配不同的角色不同的功能权限,增删改查权限分配具体到不同的菜单,自定义按钮管理 支持多用户分权限管理后台, 权限具体到不同的菜单不同的按钮
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值