2021-07-01 RuoYi-Vue-Plus

2023-11-20

提示:https://gitee.com/JavaLionLi/RuoYi-Vue-Plus?_from=gitee_search
疯狂的狮子li
//icon
https://www.iconfont.cn/
//渐变色
http://color.oulu.me/
//uniapp 组件
https://www.uviewui.com/components/navbar.html
//vuex 状态管理,采用集中式存储,相当于全局变量
https://vuex.vuejs.org/zh/
//后端微信登录
https://github.com/binarywang
//后台小程序登录
https://github.com/binarywang/weixin-java-miniapp-demo.git
//修改项目名
https://www.icode9.com/content-4-369642.html
//activiti 表说明
https://www.jianshu.com/p/684e11224c9b


前言

update maven 可以帮组maven提示

一、项目搭建

示例:clone git - 分离vue代码
数据库导入: - Specified key was too long; max key length is 767 bytes
解决:https://cloud.tencent.com/developer/article/1005696
解决2:修改主键长度字段64
在这里插入图片描述

问题:

 'redisson' threw exception; nested exception is java.net.UnknownHostException: failed to resolve 'r-2ze4quwi2qxuc25p35pd.redis.rds.aliyuncs.com'

注意配置时:字符串用双引号 host: “r-2ze4quwi2qxuc25p35pd.redis.rds.aliyuncs.com”

redis 配置

redis:
# 地址
host: “r-2ze4quwi2qxuc25p35pd.redis.rds.aliyuncs.com”
# 端口,默认为6379
port: 9090
# 数据库索引
database: 118
# 密码
password: “pobj_redis:Root@Pbcom135789”
# 连接超时时间
timeout: 10s
# 是否开启ssl
ssl: false

二、了解框架

1)菜单
菜单对应的数据库:sys_menu menu_type => M:目录 C:菜单 F:按钮

  1. 支持多层:M 下还可以有M
  2. F:按钮权限的ID是1001开始
  3. perms:权限字段 system:user:query monitor:logininfor:list
  4. icon:无信息用#号替代
    2)菜单管理
  5. 数据库修改可以直接控制菜单,也可以直接删除
  6. 新增菜单:
    在这里插入图片描述
    显示排序:要根据数据库字段配置
    路由地址:前端组件和路由要根据该配置编写。(推荐:正向编写。也可以反向操作)

三、基本功能开发

1) 微信用户的管理
bit:为二进制

CREATE TABLE `c_user` (
  `id` char(19) NOT NULL COMMENT '用户id',
  `openid` varchar(128) NOT NULL COMMENT 'openid',
  `nickname` varchar(100) DEFAULT NULL COMMENT '昵称',
  `sex` bit(1) DEFAULT NULL COMMENT '性别',
  `avatar` varchar(255) DEFAULT NULL COMMENT '头像',
  `city` varchar(50) DEFAULT NULL COMMENT '城市',
  `sign` varchar(255) DEFAULT NULL COMMENT '用户签名',
  `disabled` bit(1) DEFAULT b'0' COMMENT '是否禁用',
  `last_login_time` datetime DEFAULT NULL COMMENT '最近一次登录时间',
  `cheats` int(10) DEFAULT NULL COMMENT '秘籍数量(用于做等级)',
  `deleted` bit(1) DEFAULT b'0' COMMENT '逻辑删除',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='微信用户';

2)页面生成代码:
在这里插入图片描述
根据实际情况修改userMenu.sql
3) 后台代码整合

  1. 新建一个module

不和框架代码混合,单独创建一个module写service,不添加到git中
在这里插入图片描述

  1. 删除项目中的git文件(后期要上传到自己的git上)、
  2. 引入依赖

<!--同城信息 -->
 <dependency>
      <groupId>com.ruoyi</groupId>
      <artifactId>service</artifactId>
      <version>2.4.0</version>
  </dependency>
        
<artifactId>service</artifactId>
    <dependencies>
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-framework</artifactId>
        </dependency>
    </dependencies>
问题:放弃长时间未接收的连接:
#discard long time none received connection
https://blog.51cto.com/u_15101595/2625323

  1. 前端代码整合
    了解文件夹:api and components
    新增自己的文件加:api/citylife and components/citylife

  2. 转码:
    前端转码:
    读取数据字典数据

后端转码:

注意在bo中也加入转码,否则validate过不去
//@JsonFormat 前端string 格式化成日期
//pattern = "yyyy-MM-dd HH:mm:ss" 前端日期字符串格式
 /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
	@JsonFormat(shape=JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

创建空的unitapp
使用uVue:
Navbar and tabBar

四、uniapp

4.1 uniapp小程序登录:vuex

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。简单说是全局变量。 ## 4.2 封装请求:

uVue 中网络组件:

4.3 小程序登录

1)搜索 微信开发文档:
小程序 - api - 开放能力:
2)uniapp登录api:uniapp -api - 第三方服务 -登录

3)配置小程序appid:manifest.json

在这里插入图片描述

在这里插入图片描述
五、去掉后台定时任务

五、使用微信用户登录后台

在这里插入图片描述

5.1授权

部分接口需要经过用户授权同意才能调用。我们把这些接口按使用范围分成多个 scope ,用户选择对 scope 来进行授权,当授权给一个 scope 之后,其对应的所有接口都可以直接使用。

此类接口调用时:

如果用户未接受或拒绝过此权限,会弹窗询问用户,用户点击同意后方可调用接口;
如果用户已授权,可以直接调用接口;
如果用户已拒绝授权,则不会出现弹窗,而是直接进入接口 fail 回调。请开发者兼容用户拒绝授权的场景。
获取用户授权设置
开发者可以使用 wx.getSetting 获取用户当前的授权状态。

5.1.1 scope 对应接口 描述

scope.userInfo wx.getUserInfo 用户信息
用户必须点击按钮,才能出发授权。

5.2 微信后端登录

# 注意:- 表示数组的意思,有多个数据项可以 在加个-
wx:
  miniapp:
    configs:
        - appid: #微信小程序的appid
          secret: #微信小程序的Secret
          token: #微信小程序消息服务器配置的token
          aesKey: #微信小程序消息服务器配置的EncodingAESKey
          msgDataFormat: JSON

5.2.1 移值代码

1)拷贝config 和 controller
2)放行url
.antMatchers("/wx/user/*/login").anonymous()

  1. 通过code获取sessionKey and openId
// 此处没有使用传入的params参数
	let login = (params = {}) => vm.$u.get(`/wx/user/${params.appid}/login`,params);

4)用户登录类型
用户未登录
用户首次登录
用户已经登录
5)通过微信登录授权后,在后台系统创建登录信息(保存在redis中)

  1. 前端uniapp路由守卫,增加是否增加token判断。
    7)前端登录请求增加token参数
    在这里插入图片描述
    用户授权:微信用户授权,授权后把用户信息返回给后端保存到数据库中,在返回一个登录成功给前端。
    前端保存token到:uni.setStorageSync(‘token’,res.token);

8)给前端一个授权按钮
9) vuex的应用

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

const store = new Vuex.Store({
	//data
	state:{
		userinfo:{
			nickname:'xxx'
		}
	},
	//computed
	getters:{
		getUserinfo(state){
			return state.userinfo;
		}
	},
	//method
	mutations:{},
})

export default store;
//2.引用
import {
		mapGetters
	} from 'vuex'
//3.动态绑定
computed: {
			...mapGetters(['getUserinfo'])
		},

//4 .全局应用
{{getUserinfo.nickname}}

10) 获取用户信息

<button @click="getUserInfo" open-type="getUserInfo">用户授权</button>

// 注意不能再   open-type="getUserInfo" 
/*uni.getUserInfo({
	provider:'weixin',
	lang:"zh_CN",
	success: res =>{
		console.log("用户",JSON.stringify(res))
	}
})*/
    <text  @click="getUserInfo">请登录</text>
    
   <script>
           getUserInfo(){
               uni.getUserProfile({
                   desc:'Wexin',     // 这个参数是必须的
                   success:res=>{
                       console.log(res)
                   },
                   fail:err=>{
                       console.log(err)
                   }
               })
          }
   </script>

六、集成activiti

排除security
@SpringBootApplication(exclude = {
DataSourceAutoConfiguration.class,
org.activiti.spring.boot.SecurityAutoConfiguration.class,
})
放行请求:
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2021-07-01 RuoYi-Vue-Plus 的相关文章

  • iOS App打包上架详细流程

    一 前言 作为一名iOS开发者 把辛辛苦苦开发出来的App上传到App Store是件必要的事 但是很多人还是不知道该怎么上传到App Store上 下面就来详细讲解一下具体流程步骤 二 准备 一个已付费的开发者账号 可分为 账号类型分为个
  • 在Qt Creator中实现Android设备调试

    在Qt Creator中实现Android设备调试 要在Qt Creator中调试和运行Android应用程序 需要先连接设备并设置Qt Creator以使用适当的工具链 本文将介绍如何在Qt Creator中连接Android设备并配置Q
  • STM32的FSMC地址线对应关系通俗易懂解读和和驱动TFT-LCD的原理

    STM32的FSMC地址线对应关系通俗易懂解读和和驱动TFT LCD的原理 当 Bank接的是 8 位宽度存储器的时候 HADDR 25 0 对应FSMC A 25 0 当 Bank接的是 16 位宽度存储器的时候 HADDR 25 1 对
  • 内聚、耦合

    一 耦合 内聚的了解 看懂就行 不用强背 那么什么是耦合 什么是内聚呢 我来做个解释 内聚性 又称块内联系 指模块的功能强度的度量 即一个模块内元素彼此之间结合的紧密程度的度量 若一个程序之间各元素之间 程序段之间 联系紧密 则内聚性就高

随机推荐

  • Maven--快照(SNAPSHOT)版本介绍

    Maven快照 SNAPSHOT 版本介绍 在 Maven 中 任何一个项目和构件都必须有自己的版本 版本的值可能是 1 0 0 1 0 alpha 4 1 3 SNAPSHOT 等 其中 1 0 0 1 0 alpha 4 是稳定的发布版
  • Python实现数值列表(数组)的逆置输出

    题目描述 输入10个数字 然后逆序输出 输入 十个整数 输出 逆序输出 空格分开 样例输入 1 2 3 4 5 6 7 8 9 0 样例输出 0 9 8 7 6 5 4 3 2 1 arr list map int input split
  • mgrid

    numpy中的一个函数叫mgrid 例子 import numpy as np X Y np mgrid 0 1 1 1 7 0 1 1 1 7 print X shape print X print Y shape print Y 生成两
  • 分配操作菜单

    目录 概述 介绍 数据库 后端 前端 效果展示 概述 在写后台管理系统时 我们可以根据不同的登录人 给予不同的功能菜单 如 给楼栋管理员登录时分配 楼栋管理 宿舍管理 所以在数据库就要创建 1 登录人与角色表 2再给角色表分配操作菜单 登录
  • va_start和va_end使用详解

    转载于 http www cnblogs com hanyonglu archive 2011 05 07 2039916 html 本文主要介绍va start和va end的使用及原理 在以前的一篇帖子Format MessageBox
  • 工作日记NO.13

    1 执行机安装Qt 2 编译精简Qt5 15 X库 3 研究liadwg项目 尝试编译
  • 元宇宙与数字孪生有区别

    在元宇宙爆红之前 有一项技术已经慢慢渗透到各行各业之中 它可以逼真 实时地还原现实世界 它就是 数字孪生 目前很多人认为元宇宙与数字孪生的区别不大 元宇宙是数字孪生在技术层面的进阶与优化 其实不然 元宇宙和数字孪生虽然都属于用数字技术构建虚
  • 【廖雪峰python入门笔记】字符串_转义字符的使用

    转义字符的使用 字符串可以用 或者 括起来表示 如果字符串本身包含 怎么办 比如我们要表示字符串 I m OK 这时 可以用 括起来表示 I m OK 类似的 如果字符串包含 我们就可以用 括起来表示 Learn Python in imo
  • Qt 教程(传智教育)

    1 一个简单的 Qt 应用程序 Qt一个类对应一个头文件 类名就是头文件名 QApplication 应用程序类 管理图形用户界面应用程序的控制流和主要设置 是 Qt 的整个后台管理的命脉 它包含主事件循环 在其中来自窗口系统和其它资源的所
  • 快速排序(三种算法实现和非递归实现)

    快速排序 Quick Sort 是对冒泡排序的一种改进 基本思想是选取一个记录作为枢轴 经过一趟排序 将整段序列分为两个部分 其中一部分的值都小于枢轴 另一部分都大于枢轴 然后继续对这两部分继续进行排序 从而使整个序列达到有序 递归实现 v
  • (转)原理到实现

    转 https mp weixin qq com s Mrr1Rnl 594Gyyn9fHekjw 1NFS介绍 NFS是Network File System的简写 即网络文件系统 NFS是FreeBSD支持的文件系统中的一种 NFS基于
  • opencv中resize错误可能导致的原因之一

    cv2 error OpenCV 4 5 5 1 error 5 Bad argument in function resize 在用resize时会产生这个错误 有可能时传入的图片不存在了 假如你是从摄像头读取的图片 需要通过 ret f
  • vue 子父组件间的那些事儿——搭建项目(一)

    一 搭建vue项目 1 环境准备 基于nodejs vue cli cnpm 搭建vue项目 由于本博主已经具备以上环境 现在直接进行项目搭建 环境准备可参考这篇博客 https blog csdn net xcymorningsun ar
  • uni-app使用CSS实现无限旋转动画

    本来想用uni createAnimation创建一个旋转动画 发现转完一圈后就不动了 没法循环旋转 后来又用setInterval每隔一个周期就把旋转角度加180度 发现运行一段时间后动画逐渐崩坏 应该是动画的周期和定时器的周期时间没有完
  • 为什么重写equals就要重写hashcode

    在学习java的时候常常提到 重写equals就要重写hashcode hashcode和equals是个绑定在一起的东西 要了解这个我们需要了解两个函数 hashCode 方法 散列码 hash code 是由对象导出的一个整型值 散列码
  • js 设置网页打印的页眉页脚和页边距

    http blog sina com cn s blog 629788b70100n9zr html
  • React 教程及其API接口文档

    React 详细中文开发文档 可以阅读 http reactjs cn react docs tutorial html 英文原文 http facebook github io react 中文论坛 http react china or
  • mmdetection No module named 'imagecorruptions'

    报错原因 imagecorruptions cpp文件需要重新编译 解决方案 mmdetection 目录下运行 python setup py develop
  • 权重计算方法_终身持续学习-可塑权重巩固(Elastic Weight Consolidation)

    回过头来梳理了一下EWC方法 在持续终身学习里面很经典的一个方法 Deepmind写的晦涩难懂x 当时折腾了好久才理解 因为自己有点菜 条件和目标 论文中 假设存在两个任务A和B 可以推广为旧任务和新任务 数据集分别为D和D 模型学习完任务
  • 2021-07-01 RuoYi-Vue-Plus

    提示 https gitee com JavaLionLi RuoYi Vue Plus from gitee search 疯狂的狮子li icon https www iconfont cn 渐变色 http color oulu me