no message
Former-commit-id: 0e93be260bc1178d924e26e5199f4fcc94916362 [formerly 0e93be260bc1178d924e26e5199f4fcc94916362 [formerly 0e93be260bc1178d924e26e5199f4fcc94916362 [formerly 0e93be260bc1178d924e26e5199f4fcc94916362 [formerly 15385874685c19ebd22ecca36ebd7f90505bfda1 [formerly 4dae5df78d44a8d07cf66b4809e8b4fc69540f51]]]]] Former-commit-id: 4b50e05a8e7bbe0e5734d5b215b5cc47273764e4 Former-commit-id: 5d041de2a79996019c516da60dd7a3b516f00371 Former-commit-id: 3e9912e210e2ad6ab23ce8ea66580167f9f6679e [formerly fcce09417d80f26cd809a0760750ec53716595d2] Former-commit-id: 87006380be242c9ceec158d09cd515a4984539e1 Former-commit-id: c34367f459345d0bf98b33ea8b63470d597c0b7b Former-commit-id: f6a93e7447b92278b1086b1af1ae0fc311c128c9 Former-commit-id: 75a1918234120b40aa5cf19bdae8ae91157d468e Former-commit-id: 461785b762e084757c80131c7374080fa68609a5
This commit is contained in:
@@ -36,7 +36,7 @@ D2Admin 是一个开源的管理系统前端集成方案,为了方便开发者
|
|||||||
* 简约主题
|
* 简约主题
|
||||||
* 每个插件和组件都配有介绍文档
|
* 每个插件和组件都配有介绍文档
|
||||||
* 图片资源 sketch 源文件( 可以在这个文件内重新生成所有图片资源 )
|
* 图片资源 sketch 源文件( 可以在这个文件内重新生成所有图片资源 )
|
||||||
* 登陆和注销
|
* 登录和注销
|
||||||
* 根据路由自动生成菜单
|
* 根据路由自动生成菜单
|
||||||
* 可折叠侧边栏
|
* 可折叠侧边栏
|
||||||
* 方便的菜单设置
|
* 方便的菜单设置
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ D2Admin 是完全开源免费的管理系统集成方案,由 [FairyEver](https
|
|||||||
* 简约主题
|
* 简约主题
|
||||||
* 每个插件和组件都配有介绍文档
|
* 每个插件和组件都配有介绍文档
|
||||||
* 图片资源 sketch 源文件( 可以在这个文件内重新生成所有图片资源 )
|
* 图片资源 sketch 源文件( 可以在这个文件内重新生成所有图片资源 )
|
||||||
* 登陆和注销
|
* 登录和注销
|
||||||
* 根据路由自动生成菜单
|
* 根据路由自动生成菜单
|
||||||
* 可折叠侧边栏
|
* 可折叠侧边栏
|
||||||
* 方便的菜单设置
|
* 方便的菜单设置
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ D2Admin 是一个 **注重外观表现** 的管理系统 **PC端** 集成方案
|
|||||||
* 简约主题
|
* 简约主题
|
||||||
* 每个插件和组件都配有介绍文档
|
* 每个插件和组件都配有介绍文档
|
||||||
* 图片资源 sketch 源文件( 可以在这个文件内重新生成所有图片资源 )
|
* 图片资源 sketch 源文件( 可以在这个文件内重新生成所有图片资源 )
|
||||||
* 登陆和注销
|
* 登录和注销
|
||||||
* 根据路由自动生成菜单
|
* 根据路由自动生成菜单
|
||||||
* 可折叠侧边栏
|
* 可折叠侧边栏
|
||||||
* 方便的菜单设置
|
* 方便的菜单设置
|
||||||
@@ -184,7 +184,7 @@ D2Admin 是一个 **注重外观表现** 的管理系统 **PC端** 集成方案
|
|||||||
* [ 新增 ] 自定义滚动条演示页面
|
* [ 新增 ] 自定义滚动条演示页面
|
||||||
* [ 新增 ] 流星主题新增背景图片上层的半透明遮罩
|
* [ 新增 ] 流星主题新增背景图片上层的半透明遮罩
|
||||||
* [ 修复 ] 主题设置失效bug
|
* [ 修复 ] 主题设置失效bug
|
||||||
* [ 修复 ] router守卫验证登陆部分代码修改
|
* [ 修复 ] router守卫验证登录部分代码修改
|
||||||
* [ 修复 ] d2-container 组件改为同步注册(之前的异步注册会有 mounted 生命周期问题,即 slot 内的页面在 mounted 生命周期内拿不到 dom)
|
* [ 修复 ] d2-container 组件改为同步注册(之前的异步注册会有 mounted 生命周期问题,即 slot 内的页面在 mounted 生命周期内拿不到 dom)
|
||||||
* [ 修复 ] d2-container 组件重构 flex 布局
|
* [ 修复 ] d2-container 组件重构 flex 布局
|
||||||
* [ 新增 ] 404 page
|
* [ 新增 ] 404 page
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
f5a74f62746a51eb1e6f38c31635814d45397a86
|
c39dd2744731cdbb7ca0436209c2b12f1cc75c2b
|
||||||
@@ -1 +1 @@
|
|||||||
e8468130f6ca9e774e1cfae2472b5b259b1e060c
|
059d7ed38ba9943cfc2ca9278ea5fe99432e18de
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
[D2Admin](https://github.com/d2-projects/d2-admin) 是一个开源的管理系统前端集成方案,为了方便开发者快速进行管理系统开发而设计,提供了大量开箱即用的功能:
|
[D2Admin](https://github.com/d2-projects/d2-admin) 是一个开源的管理系统前端集成方案,为了方便开发者快速进行管理系统开发而设计,提供了大量开箱即用的功能:
|
||||||
|
|
||||||
* 登陆和注销的页面、逻辑、路由拦截
|
* 登录和注销的页面、逻辑、路由拦截
|
||||||
* 主题系统
|
* 主题系统
|
||||||
* 基于 ElementUI 的优化外观
|
* 基于 ElementUI 的优化外观
|
||||||
* 表格 CRUD 封装 ([d2-crud](https://github.com/d2-projects/d2-crud))
|
* 表格 CRUD 封装 ([d2-crud](https://github.com/d2-projects/d2-crud))
|
||||||
|
|||||||
@@ -59,8 +59,8 @@ sidebar: auto
|
|||||||
* [ 新增 ] d2-highlight 组件新增 format-html 参数
|
* [ 新增 ] d2-highlight 组件新增 format-html 参数
|
||||||
* [ 新增 ] 自动获取用户浏览器 UA
|
* [ 新增 ] 自动获取用户浏览器 UA
|
||||||
* [ 新增 ] playground 新增浏览器信息查看界面
|
* [ 新增 ] playground 新增浏览器信息查看界面
|
||||||
* [ 修改 ] 登陆注销逻辑移至 vuex
|
* [ 修改 ] 登录注销逻辑移至 vuex
|
||||||
* [ 新增 ] 登陆页面新增快速选择用户示例
|
* [ 新增 ] 登录页面新增快速选择用户示例
|
||||||
* [ 新增 ] 侧边栏切换控制辑移至 vuex
|
* [ 新增 ] 侧边栏切换控制辑移至 vuex
|
||||||
* [ 新增 ] 判断手机浏览自动跳转至提示页面
|
* [ 新增 ] 判断手机浏览自动跳转至提示页面
|
||||||
* [ 修改 ] 侧边栏弹出菜单尺寸缩小以容纳更多菜单
|
* [ 修改 ] 侧边栏弹出菜单尺寸缩小以容纳更多菜单
|
||||||
@@ -143,7 +143,7 @@ sidebar: auto
|
|||||||
* [ 新增 ] 自定义滚动条演示页面
|
* [ 新增 ] 自定义滚动条演示页面
|
||||||
* [ 新增 ] 流星主题新增背景图片上层的半透明遮罩
|
* [ 新增 ] 流星主题新增背景图片上层的半透明遮罩
|
||||||
* [ 修复 ] 主题设置失效bug
|
* [ 修复 ] 主题设置失效bug
|
||||||
* [ 修复 ] router守卫验证登陆部分代码修改
|
* [ 修复 ] router守卫验证登录部分代码修改
|
||||||
* [ 修复 ] d2-container 组件改为同步注册(之前的异步注册会有 mounted 生命周期问题,即 slot 内的页面在 mounted 生命周期内拿不到 dom)
|
* [ 修复 ] d2-container 组件改为同步注册(之前的异步注册会有 mounted 生命周期问题,即 slot 内的页面在 mounted 生命周期内拿不到 dom)
|
||||||
* [ 修复 ] d2-container 组件重构 flex 布局
|
* [ 修复 ] d2-container 组件重构 flex 布局
|
||||||
* [ 新增 ] 404 page
|
* [ 新增 ] 404 page
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
只保留了基础功能,例如
|
只保留了基础功能,例如
|
||||||
|
|
||||||
* 主题系统
|
* 主题系统
|
||||||
* 登陆和注销
|
* 登录和注销
|
||||||
* 数据持久化
|
* 数据持久化
|
||||||
* 多标签页
|
* 多标签页
|
||||||
* 菜单和路由逻辑
|
* 菜单和路由逻辑
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ D2Admin 是一个开源的管理系统前端集成方案
|
|||||||
* 首屏加载等待动画 避免首次加载白屏尴尬
|
* 首屏加载等待动画 避免首次加载白屏尴尬
|
||||||
* 简约主题
|
* 简约主题
|
||||||
* 每个插件和组件都配有介绍文档
|
* 每个插件和组件都配有介绍文档
|
||||||
* 登陆和注销
|
* 登录和注销
|
||||||
* 根据路由自动生成菜单
|
* 根据路由自动生成菜单
|
||||||
* 可折叠侧边栏
|
* 可折叠侧边栏
|
||||||
* 方便的菜单设置
|
* 方便的菜单设置
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ npm run serve
|
|||||||
|
|
||||||
以上每种方式效果都是一样的,只是为了照顾不同人的习惯起了三个名字,实质上都是运行了 `vue-cli-service serve --open`。
|
以上每种方式效果都是一样的,只是为了照顾不同人的习惯起了三个名字,实质上都是运行了 `vue-cli-service serve --open`。
|
||||||
|
|
||||||
成功运行后会显示登陆界面:
|
成功运行后会显示登录界面:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ lodash.uniqueid 这个插件不需要添加到新的项目中,新项目中全
|
|||||||
|
|
||||||
如果您修改了包含但不仅限于以下文件时,您需要注意将您以前的修改更新至新的项目:
|
如果您修改了包含但不仅限于以下文件时,您需要注意将您以前的修改更新至新的项目:
|
||||||
|
|
||||||
* pages 目录下的首页和登陆页面
|
* pages 目录下的首页和登录页面
|
||||||
* 公用样式和主题
|
* 公用样式和主题
|
||||||
* HeaderAside 布局组件
|
* HeaderAside 布局组件
|
||||||
* store
|
* store
|
||||||
@@ -89,7 +89,7 @@ lodash.uniqueid 这个插件不需要添加到新的项目中,新项目中全
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
这样在您需要修改某些功能时可以更快速地找到对应的代码位置。但是相应而来的是模块中的方法在调用时的方法都发生了变化,以登陆为例:
|
这样在您需要修改某些功能时可以更快速地找到对应的代码位置。但是相应而来的是模块中的方法在调用时的方法都发生了变化,以登录为例:
|
||||||
|
|
||||||
旧版(示例):
|
旧版(示例):
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
99c8b3f602498f3dacc3b8503d8dfad58e47430b
|
114aef8d02807a0d61dc8bdf937087eeed027e33
|
||||||
@@ -1 +1 @@
|
|||||||
46da9d30067372ce67f67f637eb38caf6b45aeba
|
d63b89fe44d535e03d67942af51925a8edae8dd8
|
||||||
@@ -12,7 +12,7 @@ sidebar: auto
|
|||||||
|
|
||||||
## 路由配置
|
## 路由配置
|
||||||
|
|
||||||
路由注册和钩子设置文件为 `d2-admin/src/router/index.js`,此文件中将 `routes.js` 中导出的 routes 变量注册到路由,并且设置后续的路由拦截和登陆状态判断,多页面的新建页面事件触发也来自这里。该文件再导出注册了所有页面的路由实例,在 `main.js` 中注册到 vue 根实例。
|
路由注册和钩子设置文件为 `d2-admin/src/router/index.js`,此文件中将 `routes.js` 中导出的 routes 变量注册到路由,并且设置后续的路由拦截和登录状态判断,多页面的新建页面事件触发也来自这里。该文件再导出注册了所有页面的路由实例,在 `main.js` 中注册到 vue 根实例。
|
||||||
|
|
||||||
## 路由缓存
|
## 路由缓存
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
dd3ce3a3e8aff371313dd37c30adafe042430be2
|
6d4aa6cc303e3b98207e4c93036136d1f15ed3da
|
||||||
@@ -61,7 +61,7 @@ new Vue({
|
|||||||
this.$store.commit('d2admin/releases/versionShow')
|
this.$store.commit('d2admin/releases/versionShow')
|
||||||
// 检查最新版本
|
// 检查最新版本
|
||||||
this.$store.dispatch('d2admin/releases/checkUpdate')
|
this.$store.dispatch('d2admin/releases/checkUpdate')
|
||||||
// 用户登陆后从数据库加载一系列的设置
|
// 用户登录后从数据库加载一系列的设置
|
||||||
this.$store.commit('d2admin/account/load')
|
this.$store.commit('d2admin/account/load')
|
||||||
// 获取并记录用户 UA
|
// 获取并记录用户 UA
|
||||||
this.$store.commit('d2admin/ua/get')
|
this.$store.commit('d2admin/ua/get')
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ Mock.mock('/api/login', 'post', ({url, type, body}) => {
|
|||||||
if (user) {
|
if (user) {
|
||||||
return {
|
return {
|
||||||
code: 0,
|
code: 0,
|
||||||
msg: '登陆成功',
|
msg: '登录成功',
|
||||||
data: {
|
data: {
|
||||||
...user,
|
...user,
|
||||||
token: 'd787syv8dys8cas80d9s0a0d8f79ads56f7s4d56f879a8as89fd980s7dg'
|
token: 'd787syv8dys8cas80d9s0a0d8f79ads56f7s4d56f879a8as89fd980s7dg'
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
<!-- 快速登陆按钮 -->
|
<!-- 快速登录按钮 -->
|
||||||
<el-button type="info" class="button-help" @click="dialogVisible = true">
|
<el-button type="info" class="button-help" @click="dialogVisible = true">
|
||||||
快速选择用户(测试功能)
|
快速选择用户(测试功能)
|
||||||
</el-button>
|
</el-button>
|
||||||
@@ -118,7 +118,7 @@ export default {
|
|||||||
'login'
|
'login'
|
||||||
]),
|
]),
|
||||||
/**
|
/**
|
||||||
* @description 接收选择一个用户快速登陆的事件
|
* @description 接收选择一个用户快速登录的事件
|
||||||
* @param {Object} user 用户信息
|
* @param {Object} user 用户信息
|
||||||
*/
|
*/
|
||||||
handleUserBtnClick (user) {
|
handleUserBtnClick (user) {
|
||||||
@@ -129,11 +129,11 @@ export default {
|
|||||||
/**
|
/**
|
||||||
* @description 提交表单
|
* @description 提交表单
|
||||||
*/
|
*/
|
||||||
// 提交登陆信息
|
// 提交登录信息
|
||||||
submit () {
|
submit () {
|
||||||
this.$refs.loginForm.validate((valid) => {
|
this.$refs.loginForm.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
// 登陆
|
// 登录
|
||||||
// 注意 这里的演示没有传验证码
|
// 注意 这里的演示没有传验证码
|
||||||
// 具体需要传递的数据请自行修改代码
|
// 具体需要传递的数据请自行修改代码
|
||||||
this.login({
|
this.login({
|
||||||
@@ -142,7 +142,7 @@ export default {
|
|||||||
password: this.formLogin.password
|
password: this.formLogin.password
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
// 登陆表单校验失败
|
// 登录表单校验失败
|
||||||
this.$message.error('表单校验失败')
|
this.$message.error('表单校验失败')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
height: 140px;
|
height: 140px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 登陆表单
|
// 登录表单
|
||||||
.form-group {
|
.form-group {
|
||||||
width: 300px;
|
width: 300px;
|
||||||
// 重新设置卡片阴影
|
// 重新设置卡片阴影
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
padding-top: 70px;
|
padding-top: 70px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 登陆按钮
|
// 登录按钮
|
||||||
.button-login {
|
.button-login {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,18 +22,18 @@ const router = new VueRouter({
|
|||||||
router.beforeEach((to, from, next) => {
|
router.beforeEach((to, from, next) => {
|
||||||
// 关闭搜索面板
|
// 关闭搜索面板
|
||||||
store.commit('d2admin/search/set', false)
|
store.commit('d2admin/search/set', false)
|
||||||
// 验证当前路由所有的匹配中是否需要有登陆验证的
|
// 验证当前路由所有的匹配中是否需要有登录验证的
|
||||||
if (to.matched.some(r => r.meta.requiresAuth)) {
|
if (to.matched.some(r => r.meta.requiresAuth)) {
|
||||||
// 这里暂时将cookie里是否存有token作为验证是否登陆的条件
|
// 这里暂时将cookie里是否存有token作为验证是否登录的条件
|
||||||
// 请根据自身业务需要修改
|
// 请根据自身业务需要修改
|
||||||
const token = util.cookies.get('token')
|
const token = util.cookies.get('token')
|
||||||
if (token && token !== 'undefined') {
|
if (token && token !== 'undefined') {
|
||||||
next()
|
next()
|
||||||
} else {
|
} else {
|
||||||
// 将当前预计打开的页面完整地址临时存储 登陆后继续跳转
|
// 将当前预计打开的页面完整地址临时存储 登录后继续跳转
|
||||||
// 这个 cookie(redirect) 会在登陆后自动删除
|
// 这个 cookie(redirect) 会在登录后自动删除
|
||||||
util.cookies.set('redirect', to.fullPath)
|
util.cookies.set('redirect', to.fullPath)
|
||||||
// 没有登陆的时候跳转到登陆界面
|
// 没有登录的时候跳转到登录界面
|
||||||
next({
|
next({
|
||||||
name: 'login'
|
name: 'login'
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
67bc36bcd02e1d0746d44d23553d6849638f19d2
|
8f7502120cb1936fb8f1ef83f9462574f64d9d4b
|
||||||
@@ -5,12 +5,12 @@ export default {
|
|||||||
namespaced: true,
|
namespaced: true,
|
||||||
actions: {
|
actions: {
|
||||||
/**
|
/**
|
||||||
* @description 登陆
|
* @description 登录
|
||||||
* @param {Object} param context
|
* @param {Object} param context
|
||||||
* @param {Object} param vm {Object} vue 实例
|
* @param {Object} param vm {Object} vue 实例
|
||||||
* @param {Object} param username {String} 用户账号
|
* @param {Object} param username {String} 用户账号
|
||||||
* @param {Object} param password {String} 密码
|
* @param {Object} param password {String} 密码
|
||||||
* @param {Object} param route {Object} 登陆成功后定向的路由对象
|
* @param {Object} param route {Object} 登录成功后定向的路由对象
|
||||||
*/
|
*/
|
||||||
login ({
|
login ({
|
||||||
commit
|
commit
|
||||||
@@ -39,7 +39,7 @@ export default {
|
|||||||
commit('d2admin/user/set', {
|
commit('d2admin/user/set', {
|
||||||
name: res.name
|
name: res.name
|
||||||
}, { root: true })
|
}, { root: true })
|
||||||
// 用户登陆后从持久化数据加载一系列的设置
|
// 用户登录后从持久化数据加载一系列的设置
|
||||||
commit('load')
|
commit('load')
|
||||||
// 更新路由 尝试去获取 cookie 里保存的需要重定向的页面完整地址
|
// 更新路由 尝试去获取 cookie 里保存的需要重定向的页面完整地址
|
||||||
const path = util.cookies.get('redirect')
|
const path = util.cookies.get('redirect')
|
||||||
@@ -49,13 +49,13 @@ export default {
|
|||||||
util.cookies.remove('redirect')
|
util.cookies.remove('redirect')
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch(err => {
|
||||||
console.group('登陆结果')
|
console.group('登录结果')
|
||||||
console.log('err: ', err)
|
console.log('err: ', err)
|
||||||
console.groupEnd()
|
console.groupEnd()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* @description 注销用户并返回登陆页面
|
* @description 注销用户并返回登录页面
|
||||||
* @param {Object} param context
|
* @param {Object} param context
|
||||||
* @param {Object} param vm {Object} vue 实例
|
* @param {Object} param vm {Object} vue 实例
|
||||||
* @param {Object} param confirm {Boolean} 是否需要确认
|
* @param {Object} param confirm {Boolean} 是否需要确认
|
||||||
@@ -96,7 +96,7 @@ export default {
|
|||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
/**
|
/**
|
||||||
* @description 用户登陆后从持久化数据加载一系列的设置
|
* @description 用户登录后从持久化数据加载一系列的设置
|
||||||
* @param {Object} state vuex state
|
* @param {Object} state vuex state
|
||||||
*/
|
*/
|
||||||
load (state) {
|
load (state) {
|
||||||
|
|||||||
Reference in New Issue
Block a user