调整数据结构
This commit is contained in:
parent
edec968913
commit
46fc82c849
|
@ -1,13 +1,13 @@
|
|||
server:
|
||||
port: 8001
|
||||
datasource:
|
||||
host: 127.0.0.1
|
||||
port: 3306
|
||||
host: 192.168.235.111
|
||||
port: 3308
|
||||
username: root
|
||||
password: 123456
|
||||
database: d2admin
|
||||
redis:
|
||||
host: 127.0.0.1
|
||||
host: 192.168.235.111
|
||||
port: 6379
|
||||
password: 123456
|
||||
database: 1
|
||||
|
|
|
@ -38,6 +38,6 @@ func Connect() {
|
|||
|
||||
// 自动建表
|
||||
DB.AutoMigrate(&domain.User{})
|
||||
DB.AutoMigrate(&domain.Router{})
|
||||
DB.AutoMigrate(&domain.Api{})
|
||||
DB.AutoMigrate(&domain.Menu{})
|
||||
}
|
||||
|
|
|
@ -57,12 +57,12 @@ func RunServer() {
|
|||
{
|
||||
routes := dao.RouterDao{}.GetAllRouter()
|
||||
for _, route := range routes {
|
||||
if route.RouterMethod == "GET" {
|
||||
apiGroup.GET(route.RouterPath, InnerRouters[route.RouterName])
|
||||
if route.ApiMethod == "GET" {
|
||||
apiGroup.GET(route.ApiPath, InnerRouters[route.ApiName])
|
||||
continue
|
||||
}
|
||||
if route.RouterMethod == "POST" {
|
||||
apiGroup.POST(route.RouterPath, InnerRouters[route.RouterName])
|
||||
if route.ApiMethod == "POST" {
|
||||
apiGroup.POST(route.ApiPath, InnerRouters[route.ApiName])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,9 +8,9 @@ import (
|
|||
type RouterDao struct {
|
||||
}
|
||||
|
||||
func (RouterDao) GetAllRouter() []domain.Router {
|
||||
var routers []domain.Router
|
||||
func (RouterDao) GetAllRouter() []domain.Api {
|
||||
var routers []domain.Api
|
||||
// select * from system_router where router_status = 1
|
||||
database.DB.Model(domain.Router{RouterStatus: 1}).Find(&routers)
|
||||
database.DB.Model(domain.Api{ApiStatus: 1}).Find(&routers)
|
||||
return routers
|
||||
}
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
package domain
|
||||
|
||||
import "github.com/jinzhu/gorm"
|
||||
|
||||
type Api struct {
|
||||
gorm.Model
|
||||
ApiName string `gorm:"not null;unique_index:index_npm"` // 接口名称, 例如: getUser
|
||||
ApiPath string `gorm:"not null;unique_index:index_npm"` // 接口路径, 例如: /api/v1/getUser
|
||||
ApiMethod string `gorm:"not null;unique_index:index_npm"` // GET、POST
|
||||
ApiDesc string `gorm:"not null"` // 接口说明
|
||||
ApiStatus int `gorm:"not null"` // 接口是否可用
|
||||
}
|
||||
|
||||
func (Api) TableName() string {
|
||||
return "system_api"
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
package domain
|
||||
|
||||
import "github.com/jinzhu/gorm"
|
||||
|
||||
type Router struct {
|
||||
gorm.Model
|
||||
RouterName string `gorm:"not null;unique_index:index_npm"` // 接口名称, 例如: getUser
|
||||
RouterPath string `gorm:"not null;unique_index:index_npm"` // 接口路径, 例如: /api/v1/getUser
|
||||
RouterMethod string `gorm:"not null;unique_index:index_npm"` // GET、POST
|
||||
RouterDesc string `gorm:"not null"` // 接口说明
|
||||
RouterStatus int `gorm:"not null"` // 接口是否可用
|
||||
}
|
||||
|
||||
func (Router) TableName() string {
|
||||
return "system_router"
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
package rest
|
||||
|
||||
type RouterController struct {
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
export default ({ service, request, tools }) => ({
|
||||
/**
|
||||
* @description 登录
|
||||
* @param {Object} data 登录携带的信息
|
||||
*/
|
||||
login (data = {}) {
|
||||
// 接口请求
|
||||
return request({
|
||||
url: '/login',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
})
|
|
@ -3,7 +3,7 @@ export default ({ service, request, tools }) => ({
|
|||
* @description 登录
|
||||
* @param {Object} data 登录携带的信息
|
||||
*/
|
||||
SYS_USER_LOGIN (data = {}) {
|
||||
login (data = {}) {
|
||||
// 接口请求
|
||||
return request({
|
||||
url: '/login',
|
||||
|
|
|
@ -15,34 +15,7 @@ function supplementPath (menu) {
|
|||
}))
|
||||
}
|
||||
|
||||
export const menuHeader = supplementPath([
|
||||
{ path: '/index', title: '首页', icon: 'home' }
|
||||
// {
|
||||
// title: '页面',
|
||||
// icon: 'folder-o',
|
||||
// children: [
|
||||
// { path: '/page1', title: '页面 1' },
|
||||
// { path: '/page2', title: '页面 2' },
|
||||
// {
|
||||
// path: '/page3',
|
||||
// title: '页面 3',
|
||||
// children: [
|
||||
// { path: '/page3-1', title: '页面 3-1' },
|
||||
// {
|
||||
// path: '/page3-2',
|
||||
// title: '页面 3-2',
|
||||
// children: [
|
||||
// { path: '/page3-2-1', title: '页面 3-2-1' },
|
||||
// { path: '/page3-2-2', title: '页面 3-2-2' }
|
||||
// ]
|
||||
// }
|
||||
// ]
|
||||
// }
|
||||
// ]
|
||||
// }
|
||||
])
|
||||
|
||||
export const menuAside = supplementPath([
|
||||
const menuData = [
|
||||
{ path: '/index', title: '首页', icon: 'home' },
|
||||
{
|
||||
title: '页面',
|
||||
|
@ -53,4 +26,8 @@ export const menuAside = supplementPath([
|
|||
{ path: '/page3', title: '页面 3' }
|
||||
]
|
||||
}
|
||||
])
|
||||
]
|
||||
|
||||
export const menuHeader = supplementPath(menuData)
|
||||
|
||||
export const menuAside = supplementPath(menuData)
|
||||
|
|
|
@ -3,6 +3,8 @@ import layoutHeaderAside from '@/layout/header-aside'
|
|||
// 由于懒加载页面太多的话会造成webpack热更新太慢,所以开发环境不使用懒加载,只有生产环境使用懒加载
|
||||
const _import = require('@/libs/util.import.' + process.env.NODE_ENV)
|
||||
|
||||
console.log('================= 路由加载')
|
||||
|
||||
/**
|
||||
* 在主框架内显示
|
||||
*/
|
||||
|
@ -44,17 +46,35 @@ const frameIn = [
|
|||
name: 'redirect',
|
||||
hidden: true,
|
||||
component: _import('system/function/redirect')
|
||||
}
|
||||
},
|
||||
// 演示页面
|
||||
// {
|
||||
// path: 'page1',
|
||||
// name: 'page1',
|
||||
// meta: {
|
||||
// title: '页面 1',
|
||||
// auth: true
|
||||
// },
|
||||
// component: _import('demo/page1')
|
||||
// },
|
||||
{
|
||||
path: 'page1',
|
||||
name: 'page1',
|
||||
meta: {
|
||||
title: '页面 1',
|
||||
auth: true
|
||||
},
|
||||
component: _import('demo/page1')
|
||||
},
|
||||
{
|
||||
path: 'page2',
|
||||
name: 'page2',
|
||||
meta: {
|
||||
title: '页面 2',
|
||||
auth: true
|
||||
},
|
||||
component: _import('demo/page2')
|
||||
},
|
||||
{
|
||||
path: 'page3',
|
||||
name: 'page3',
|
||||
meta: {
|
||||
title: '页面 3',
|
||||
auth: true
|
||||
},
|
||||
component: _import('demo/page3')
|
||||
},
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
|
@ -17,7 +17,7 @@ export default {
|
|||
username = '',
|
||||
password = ''
|
||||
} = {}) {
|
||||
const res = await api.SYS_USER_LOGIN({ username, password })
|
||||
const res = await api.login({ username, password })
|
||||
// 设置 cookie 一定要存 uuid 和 token 两个 cookie
|
||||
// 整个系统依赖这两个数据进行校验和存储
|
||||
// uuid 是用户身份唯一标识 用户注册的时候确定 并且不可改变 不可重复
|
||||
|
@ -27,8 +27,7 @@ export default {
|
|||
util.cookies.set('username', res.username)
|
||||
util.cookies.set('name', res.name)
|
||||
util.cookies.set('token', res.token)
|
||||
// 加载路由
|
||||
await dispatch('d2admin/router/set', res.routes, { root: true })
|
||||
console.log("=============== 设置用户token")
|
||||
// 设置 vuex 用户信息
|
||||
await dispatch('d2admin/user/set', { name: res.name }, { root: true })
|
||||
// 用户登录后从持久化数据加载一系列的设置
|
||||
|
|
|
@ -1,94 +0,0 @@
|
|||
import { Message, MessageBox } from 'element-ui'
|
||||
import util from '@/libs/util.js'
|
||||
import router from '@/router'
|
||||
import api from '@/api'
|
||||
|
||||
export default {
|
||||
namespaced: true,
|
||||
actions: {
|
||||
/**
|
||||
* @description 登录
|
||||
* @param {Object} context
|
||||
* @param {Object} payload username {String} 用户账号
|
||||
* @param {Object} payload password {String} 密码
|
||||
* @param {Object} payload route {Object} 登录成功后定向的路由对象 任何 vue-router 支持的格式
|
||||
*/
|
||||
async login ({ dispatch }, {
|
||||
username = '',
|
||||
password = ''
|
||||
} = {}) {
|
||||
const res = await api.SYS_USER_LOGIN({ username, password })
|
||||
// 设置 cookie 一定要存 uuid 和 token 两个 cookie
|
||||
// 整个系统依赖这两个数据进行校验和存储
|
||||
// uuid 是用户身份唯一标识 用户注册的时候确定 并且不可改变 不可重复
|
||||
// token 代表用户当前登录状态 建议在网络请求中携带 token
|
||||
// 如有必要 token 需要定时更新,默认保存一天
|
||||
util.cookies.set('uuid', res.uuid)
|
||||
util.cookies.set('username', res.username)
|
||||
util.cookies.set('name', res.name)
|
||||
util.cookies.set('token', res.token)
|
||||
// 加载路由
|
||||
await dispatch('d2admin/router/set', res.routes, { root: true })
|
||||
// 设置 vuex 用户信息
|
||||
await dispatch('d2admin/user/set', { name: res.name }, { root: true })
|
||||
// 用户登录后从持久化数据加载一系列的设置
|
||||
await dispatch('load')
|
||||
},
|
||||
/**
|
||||
* @description 注销用户并返回登录页面
|
||||
* @param {Object} context
|
||||
* @param {Object} payload confirm {Boolean} 是否需要确认
|
||||
*/
|
||||
logout ({ commit, dispatch }, { confirm = false } = {}) {
|
||||
/**
|
||||
* @description 注销
|
||||
*/
|
||||
async function logout () {
|
||||
// 删除cookie
|
||||
util.cookies.remove('token')
|
||||
util.cookies.remove('uuid')
|
||||
util.cookies.remove('username')
|
||||
util.cookies.remove('name')
|
||||
// 清空 vuex 用户信息
|
||||
await dispatch('d2admin/user/set', {}, { root: true })
|
||||
// 跳转路由
|
||||
router.push({ name: 'login' })
|
||||
}
|
||||
// 判断是否需要确认
|
||||
if (confirm) {
|
||||
commit('d2admin/gray/set', true, { root: true })
|
||||
MessageBox.confirm('确定要注销当前用户吗', '注销用户', { type: 'warning' })
|
||||
.then(() => {
|
||||
commit('d2admin/gray/set', false, { root: true })
|
||||
logout()
|
||||
})
|
||||
.catch(() => {
|
||||
commit('d2admin/gray/set', false, { root: true })
|
||||
Message({ message: '取消注销操作' })
|
||||
})
|
||||
} else {
|
||||
logout()
|
||||
}
|
||||
},
|
||||
/**
|
||||
* @description 用户登录后从持久化数据加载一系列的设置
|
||||
* @param {Object} context
|
||||
*/
|
||||
async load ({ dispatch }) {
|
||||
// 加载用户名
|
||||
await dispatch('d2admin/user/load', null, { root: true })
|
||||
// 加载主题
|
||||
await dispatch('d2admin/theme/load', null, { root: true })
|
||||
// 加载页面过渡效果设置
|
||||
await dispatch('d2admin/transition/load', null, { root: true })
|
||||
// 持久化数据加载上次退出时的多页列表
|
||||
await dispatch('d2admin/page/openedLoad', null, { root: true })
|
||||
// 持久化数据加载侧边栏配置
|
||||
await dispatch('d2admin/menu/asideLoad', null, { root: true })
|
||||
// 持久化数据加载全局尺寸
|
||||
await dispatch('d2admin/size/load', null, { root: true })
|
||||
// 持久化数据加载颜色设置
|
||||
await dispatch('d2admin/color/load', null, { root: true })
|
||||
}
|
||||
}
|
||||
}
|
|
@ -20,6 +20,7 @@ export default {
|
|||
value: info,
|
||||
user: true
|
||||
}, { root: true })
|
||||
console.log("================ 配置用户信息")
|
||||
},
|
||||
/**
|
||||
* @description 从数据库取用户数据
|
||||
|
|
Loading…
Reference in New Issue