提交 be282a48 编写于 作者: Mr.奇淼('s avatar Mr.奇淼(

拼写错误修改 updata->update regist->register 更新需更新数据库 建议更新数据库文件 数据库将单表数据录入 方便选择性更新

上级 aef29b13
......@@ -13,7 +13,7 @@ import (
// @Summary 获取用户动态路由
// @Security ApiKeyAuth
// @Produce application/json
// @Param data body api.RegistAndLoginStuct true "可以什么都不填"
// @Param data body api.RegisterAndLoginStuct true "可以什么都不填"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"返回成功"}"
// @Router /menu/getMenu [post]
func GetMenu(c *gin.Context) {
......@@ -74,7 +74,7 @@ func AddBaseMenu(c *gin.Context) {
// @Summary 获取用户动态路由
// @Security ApiKeyAuth
// @Produce application/json
// @Param data body api.RegistAndLoginStuct true "可以什么都不填"
// @Param data body api.RegisterAndLoginStuct true "可以什么都不填"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"返回成功"}"
// @Router /menu/getBaseMenuTree [post]
func GetBaseMenuTree(c *gin.Context) {
......
......@@ -21,7 +21,7 @@ var (
USER_HEADER_BUCKET string = "qm-plus-img"
)
type RegistAndLoginStuct struct {
type RegisterAndLoginStuct struct {
Username string `json:"username"`
Password string `json:"password"`
Captcha string `json:"captcha"`
......@@ -41,12 +41,12 @@ type RegestStuct struct {
// @Produce application/json
// @Param data body sysModel.SysUser true "用户注册接口"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"注册成功"}"
// @Router /base/regist [post]
func Regist(c *gin.Context) {
// @Router /base/register [post]
func Register(c *gin.Context) {
var R RegestStuct
_ = c.ShouldBindJSON(&R)
user := &sysModel.SysUser{Username: R.Username, NickName: R.NickName, Password: R.Password, HeaderImg: R.HeaderImg, AuthorityId: R.AuthorityId}
err, user := user.Regist()
err, user := user.Register()
if err != nil {
servers.ReportFormat(c, false, fmt.Sprintf("%v", err), gin.H{
"user": user,
......@@ -61,11 +61,11 @@ func Regist(c *gin.Context) {
// @Tags Base
// @Summary 用户登录
// @Produce application/json
// @Param data body api.RegistAndLoginStuct true "用户登录接口"
// @Param data body api.RegisterAndLoginStuct true "用户登录接口"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"登陆成功"}"
// @Router /base/login [post]
func Login(c *gin.Context) {
var L RegistAndLoginStuct
var L RegisterAndLoginStuct
_ = c.ShouldBindJSON(&L)
if captcha.VerifyString(L.CaptchaId, L.Captcha) {
U := &sysModel.SysUser{Username: L.Username, Password: L.Password}
......
......@@ -95,7 +95,7 @@ CREATE TABLE `apis` (
-- Records of apis
-- ----------------------------
INSERT INTO `apis` VALUES (1, '2019-09-28 11:23:49', '2019-09-28 17:06:16', NULL, NULL, '/base/login', '用户登录', 'base');
INSERT INTO `apis` VALUES (2, '2019-09-28 11:32:46', '2019-09-28 17:06:11', NULL, NULL, '/base/regist', '用户注册', 'base');
INSERT INTO `apis` VALUES (2, '2019-09-28 11:32:46', '2019-09-28 17:06:11', NULL, NULL, '/base/register', '用户注册', 'base');
INSERT INTO `apis` VALUES (3, '2019-09-28 11:33:41', '2019-09-28 17:06:04', NULL, NULL, '/api/createApi', '创建api', 'api');
INSERT INTO `apis` VALUES (4, '2019-09-28 14:09:04', '2019-09-28 17:05:59', NULL, NULL, '/api/getApiList', '获取api列表', 'api');
INSERT INTO `apis` VALUES (5, '2019-09-28 14:15:50', '2019-09-28 17:05:53', NULL, NULL, '/api/getApiById', '获取api详细信息', 'api');
......@@ -212,7 +212,7 @@ CREATE TABLE `casbin_rule` (
-- Records of casbin_rule
-- ----------------------------
INSERT INTO `casbin_rule` VALUES ('p', '8881', '/base/login', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '8881', '/base/regist', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '8881', '/base/register', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '8881', '/api/createApi', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '8881', '/api/getApiList', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '8881', '/api/getApiById', 'POST', '', '', '');
......@@ -251,7 +251,7 @@ INSERT INTO `casbin_rule` VALUES ('p', '8881', '/customer/deleteExaCustomer', 'P
INSERT INTO `casbin_rule` VALUES ('p', '8881', '/customer/getExaCustomer', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '8881', '/customer/getExaCustomerList', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '9528', '/base/login', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '9528', '/base/regist', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '9528', '/base/register', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '9528', '/api/createApi', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '9528', '/api/getApiList', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '9528', '/api/getApiById', 'POST', '', '', '');
......@@ -291,7 +291,7 @@ INSERT INTO `casbin_rule` VALUES ('p', '9528', '/customer/getExaCustomer', 'POST
INSERT INTO `casbin_rule` VALUES ('p', '9528', '/customer/getExaCustomerList', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '9528', '/autoCode/createTemp', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '888', '/base/login', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '888', '/base/regist', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '888', '/base/register', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '888', '/api/createApi', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '888', '/api/getApiList', 'POST', '', '', '');
INSERT INTO `casbin_rule` VALUES ('p', '888', '/api/getApiById', 'POST', '', '', '');
......@@ -4154,7 +4154,7 @@ CREATE TABLE `sys_apis` (
-- Records of sys_apis
-- ----------------------------
INSERT INTO `sys_apis` VALUES (1, '2019-09-28 11:23:49', '2019-09-28 17:06:16', NULL, NULL, '/base/login', '用户登录', 'base', 'POST');
INSERT INTO `sys_apis` VALUES (2, '2019-09-28 11:32:46', '2019-09-28 17:06:11', NULL, NULL, '/base/regist', '用户注册', 'base', 'POST');
INSERT INTO `sys_apis` VALUES (2, '2019-09-28 11:32:46', '2019-09-28 17:06:11', NULL, NULL, '/base/register', '用户注册', 'base', 'POST');
INSERT INTO `sys_apis` VALUES (3, '2019-09-28 11:33:41', '2019-12-11 16:51:41', NULL, NULL, '/api/createApi', '创建api', 'api', 'POST');
INSERT INTO `sys_apis` VALUES (4, '2019-09-28 14:09:04', '2019-09-28 17:05:59', NULL, NULL, '/api/getApiList', '获取api列表', 'api', 'POST');
INSERT INTO `sys_apis` VALUES (5, '2019-09-28 14:15:50', '2019-09-28 17:05:53', NULL, NULL, '/api/getApiById', '获取api详细信息', 'api', 'POST');
......
......@@ -475,7 +475,7 @@ var doc = `{
"required": true,
"schema": {
"type": "object",
"$ref": "#/definitions/api.RegistAndLoginStuct"
"$ref": "#/definitions/api.RegisterAndLoginStuct"
}
}
],
......@@ -489,7 +489,7 @@ var doc = `{
}
}
},
"/base/regist": {
"/base/register": {
"post": {
"produces": [
"application/json"
......@@ -1256,7 +1256,7 @@ var doc = `{
"required": true,
"schema": {
"type": "object",
"$ref": "#/definitions/api.RegistAndLoginStuct"
"$ref": "#/definitions/api.RegisterAndLoginStuct"
}
}
],
......@@ -1292,7 +1292,7 @@ var doc = `{
"required": true,
"schema": {
"type": "object",
"$ref": "#/definitions/api.RegistAndLoginStuct"
"$ref": "#/definitions/api.RegisterAndLoginStuct"
}
}
],
......@@ -1752,7 +1752,7 @@ var doc = `{
}
}
},
"api.RegistAndLoginStuct": {
"api.RegisterAndLoginStuct": {
"type": "object",
"properties": {
"captcha": {
......
......@@ -458,7 +458,7 @@
"required": true,
"schema": {
"type": "object",
"$ref": "#/definitions/api.RegistAndLoginStuct"
"$ref": "#/definitions/api.RegisterAndLoginStuct"
}
}
],
......@@ -472,7 +472,7 @@
}
}
},
"/base/regist": {
"/base/register": {
"post": {
"produces": [
"application/json"
......@@ -1239,7 +1239,7 @@
"required": true,
"schema": {
"type": "object",
"$ref": "#/definitions/api.RegistAndLoginStuct"
"$ref": "#/definitions/api.RegisterAndLoginStuct"
}
}
],
......@@ -1275,7 +1275,7 @@
"required": true,
"schema": {
"type": "object",
"$ref": "#/definitions/api.RegistAndLoginStuct"
"$ref": "#/definitions/api.RegisterAndLoginStuct"
}
}
],
......@@ -1735,7 +1735,7 @@
}
}
},
"api.RegistAndLoginStuct": {
"api.RegisterAndLoginStuct": {
"type": "object",
"properties": {
"captcha": {
......
......@@ -52,7 +52,7 @@ definitions:
id:
type: number
type: object
api.RegistAndLoginStuct:
api.RegisterAndLoginStuct:
properties:
captcha:
type: string
......@@ -580,7 +580,7 @@ paths:
name: data
required: true
schema:
$ref: '#/definitions/api.RegistAndLoginStuct'
$ref: '#/definitions/api.RegisterAndLoginStuct'
type: object
produces:
- application/json
......@@ -592,7 +592,7 @@ paths:
summary: 用户登录
tags:
- Base
/base/regist:
/base/register:
post:
parameters:
- description: 用户注册接口
......@@ -1058,7 +1058,7 @@ paths:
name: data
required: true
schema:
$ref: '#/definitions/api.RegistAndLoginStuct'
$ref: '#/definitions/api.RegisterAndLoginStuct'
type: object
produces:
- application/json
......@@ -1080,7 +1080,7 @@ paths:
name: data
required: true
schema:
$ref: '#/definitions/api.RegistAndLoginStuct'
$ref: '#/definitions/api.RegisterAndLoginStuct'
type: object
produces:
- application/json
......
package registTable
package registerTable
import (
"gin-vue-admin/init/initlog"
......@@ -8,7 +8,7 @@ import (
)
//注册数据库表专用
func RegistTable(db *gorm.DB) {
func RegisterTable(db *gorm.DB) {
db.AutoMigrate(sysModel.SysUser{},
sysModel.SysAuthority{},
sysModel.SysMenu{},
......
......@@ -7,7 +7,7 @@ import (
"gin-vue-admin/init/initRouter"
"gin-vue-admin/init/initlog/qmlog"
"gin-vue-admin/init/qmsql"
"gin-vue-admin/init/registTable"
"gin-vue-admin/init/registTerable"
"os"
//"runtime"
)
......@@ -42,7 +42,7 @@ func main() {
_ = initRedis.InitRedis()
}
// 注册数据库表
registTable.RegistTable(db)
registerTable.RegisterTable(db)
// 程序结束前关闭数据库链接
defer qmsql.DEFAULTDB.Close()
// 注册路由
......
......@@ -26,7 +26,7 @@ type SysUser struct {
//}
//注册接口model方法
func (u *SysUser) Regist() (err error, userInter *SysUser) {
func (u *SysUser) Register() (err error, userInter *SysUser) {
var user SysUser
//判断用户名是否注册
notResigt := qmsql.DEFAULTDB.Where("username = ?", u.Username).First(&user).RecordNotFound()
......
......@@ -8,10 +8,10 @@ import (
func InitBaseRouter(Router *gin.RouterGroup) (R gin.IRoutes) {
BaseRouter := Router.Group("base")
{
BaseRouter.POST("regist", api.Regist)
BaseRouter.POST("register", api.Register)
BaseRouter.POST("login", api.Login)
BaseRouter.POST("captcha",api.Captcha)
BaseRouter.GET("captcha/:captchaId",api.CaptchaImg)
BaseRouter.POST("captcha", api.Captcha)
BaseRouter.GET("captcha/:captchaId", api.CaptchaImg)
}
return BaseRouter
}
代码解压后把fe的api文件内容粘贴进前端api文件夹下并修改为自己想要的名字即可
后端代码解压后同理,放到自己想要的 mvc对应路径 并且到 initRouter中注册自动生成的路由 到registTable中注册自动生成的model
后端代码解压后同理,放到自己想要的 mvc对应路径 并且到 initRouter中注册自动生成的路由 到registerTable中注册自动生成的model
项目github:"https://github.com/piexlmax/gin-vue-admin"
......
......@@ -28,9 +28,9 @@ export const captcha = (data) => {
// @Produce application/json
// @Param data body {username:"string",password:"string"}
// @Router /base/resige [post]
export const regist = (data) => {
export const register = (data) => {
return service({
url: "/base/regist",
url: "/base/register",
method: 'post',
data: data
})
......
......@@ -3,7 +3,7 @@ import { store } from '@/store/index'
let asyncRouterFlag = 0
const whiteList = ['login', 'regist']
const whiteList = ['login', 'register']
router.beforeEach(async(to, from, next) => {
const token = store.getters['user/token']
......
......@@ -14,10 +14,10 @@ const baseRouters = [{
import ('@/view/login/login.vue')
},
{
path: '/regist',
name: 'regist',
path: '/register',
name: 'register',
component: () =>
import ('@/view/login/regist.vue')
import ('@/view/login/register.vue')
},
{
path: "/404",
......
<template>
<el-container class="login-regist-box">
<el-container class="login-register-box">
<vue-particle-line></vue-particle-line>
<el-main class="login-box">
<h1 class="title-1">
......@@ -111,7 +111,7 @@ export default {
</script>
<style scoped lang="scss">
.login-regist-box {
.login-register-box {
background: #fff;
height: 100vh;
.login-box {
......
<template>
<el-container class="login-regist-box">
<vue-particle-line></vue-particle-line>
<el-main class="login-box">
<h1 class="title-1">
<img class="logo" :src="require('@/assets/logo.png')">
</h1>
<el-form :model="registForm" :rules="rules" ref="registForm">
<el-form-item prop="username">
<el-input placeholder="请输入用户名" v-model="registForm.username"></el-input>
</el-form-item>
<el-form-item prop="password">
<el-input
:type="lock==='lock'?'password':'text'"
placeholder="请输入密码"
v-model="registForm.password"
>
<i :class="'el-input__icon el-icon-' + lock" @click="changeLock" slot="suffix"></i>
</el-input>
</el-form-item>
<el-form-item prop="rePassword">
<el-input
:type="lock==='lock'?'password':'text'"
placeholder="请再次输入密码"
v-model="registForm.rePassword"
>
<i :class="'el-input__icon el-icon-' + lock" @click="changeLock" slot="suffix"></i>
</el-input>
</el-form-item>
<el-form-item>
<el-button @click="submitForm" style="width:100%">注 册</el-button>
</el-form-item>
</el-form>
</el-main>
</el-container>
</template>
<script>
import { mapActions } from 'vuex'
import { regist } from '@/api/user'
export default {
name: 'Regist',
data() {
const ratioPassword = (rule, value, callback) => {
if (value != this.registForm.password) {
return callback(new Error('两次密码不同'))
} else {
callback()
}
}
const checkUsername = (rule, value, callback) => {
if (value.length < 5 || value.length > 12) {
return callback(new Error('请输入正确的用户名'))
} else {
callback()
}
}
const checkPassword = (rule, value, callback) => {
if (value.length < 6 || value.length > 12) {
return callback(new Error('请输入正确的密码'))
} else {
callback()
}
}
return {
lock: 'lock',
registForm: {
username: '',
password: '',
rePassword: ''
},
rules: {
username: [{ validator: checkUsername, trigger: 'blur' }],
password: [{ validator: checkPassword, trigger: 'blur' }],
rePassword: [{ validator: ratioPassword, trigger: 'blur' }]
}
}
},
methods: {
...mapActions('user', ['LoginIn']),
async submitForm() {
this.$refs.registForm.validate(async v => {
if (v) {
const res = await regist(this.registForm)
if (res.success) {
this.$message({
type: 'success',
message: '注册成功',
showClose: true
})
await this.LoginIn(this.registForm)
}
} else {
this.$message({
type: 'error',
message: '请正确填写注册信息',
showClose: true
})
return false
}
})
},
changeLock() {
this.lock === 'lock' ? (this.lock = 'unlock') : (this.lock = 'lock')
}
}
}
</script>
<style scoped lang="scss">
.login-regist-box {
background: #fff;
height: 100vh;
.login-box {
width: 40vw;
position: absolute;
left: 50%;
margin-left: -22vw;
top:5vh;
.logo{
height: 35vh;
width: 35vh;
}
}
}
</style>
\ No newline at end of file
......@@ -89,7 +89,7 @@
<script>
// 获取列表内容封装在mixins内部 getTableData方法 初始化已封装完成
const path = process.env.VUE_APP_BASE_API
import { getUserList, setUserAuthority, regist } from '@/api/user'
import { getUserList, setUserAuthority, register } from '@/api/user'
import { getAuthorityList } from '@/api/authority'
import infoList from '@/components/mixins/infoList'
import { mapGetters } from 'vuex'
......@@ -131,7 +131,7 @@ export default {
async enterAddUserDialog() {
this.$refs.userForm.validate(async valid => {
if (valid) {
const res = await regist(this.userInfo)
const res = await register(this.userInfo)
if (res.success) {
this.$message({ type: 'success', message: '创建成功' })
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册