D2Admin 7月份更新内容: cli3以及更方便的全局控制等

image

时间过的真快,自从 1.1.4 发布又过去一个月了,这个月依旧每天在忙,D2Admin 也进行了大重构,先介绍一下这次的 1.1.5 相比 1.1.4 有哪些大的改变吧 ~

重要升级

vue-cli3

D2Admin 这次完成了 vue-cli3 的重构,省去了以前繁琐的 webpack 配置,打包速度更快,环境变量设置更简单,文件目录更简洁。

d2-container 组件重构

创建页面最重要的 d2-container 组件进行了重构,详见 页面容器,依旧是支持 full + card + ghost 三种模式,不同的是三种模式现在都分别支持 headerfooter 插槽,并且都支持开关自定义滚动条,并且提供了滚动条设置的 props。

type="full"

image

type="card"

image

type="ghost"

image

页面容器 文档中我也分别为三种模式 x 是否有插槽 x 是否启用滚动条优化的各种可能做了大量插图介绍,欢迎去文档站点查看。

image

在线示例(请先完成一次登陆)

image

页面缓存逻辑优化

首先承认一个错误:在 1.1.4 中多标签页的缓存逻辑是有一点问题的,导致即使关闭了多页控制组件的 tab,这个页面依旧在缓存中。在 1.1.5 中重写了页面缓存逻辑,这个错误被修复。

开放多标签页控制

在 1.1.4 中,多页控制的逻辑有些写在控制组件内,有些写在 vuex 中,并且也没有公布使用方式。在 1.1.5 中所有的页面控制都重新组织后放入 vuex,并且给出了所有的文档和示例,这意味着如果你有需要,可以随意使用这些 API 控制多标签页的打开和关闭。

API 作用
d2adminPageOpenNew 打开新页面
d2adminTagClose 关闭一个页面
d2adminTagCloseLeft 关闭当前页左侧页面
d2adminTagCloseRight 关闭当前页右侧页面
d2adminTagCloseOther 关闭当前页除外的其它页面
d2adminTagCloseAll 关闭所有页面

详见 VUEX 实用工具

开放菜单控制

在以前的版本中,菜单的数据切换是在主布局组件内完成的,这就导致二次开发时有很多朋友询问我应该怎样修改菜单的设置,针对这个问题 1.1.5 新开放了顶栏菜单和侧边栏菜单的控制 API:

API 作用
d2adminMenuHeaderSet 设置顶栏菜单
d2adminMenuAsideSet 设置侧边栏菜单

举个栗子,现在你可以这样设置:

// 在任何地方
// menuHeader 是已经处理好的菜单数据
$store.commit('d2adminMenuHeaderSet', menuHeader)
// 顶栏菜单更新完毕

就这么简单。

在线示例(请先完成一次登陆)

image

详见 VUEX 实用工具

cookie读写包装

API 作用
util.cookies.set 设置 cookie
util.cookies.get 获取 cookie
util.cookies.getAll 获取所有的 cookie
util.cookies.remove 删除 cookie

为什么不直接使用 cookie ?

util.cookies 内部使用 js-cookie 进行操作,并且在 cookie 名称上多做了一层逻辑封装,例如

util.cookies.set({
  name: 'name',
  value: 'value',
  setting: {
    expires: 365
  }
})

实际存储的 cookie 是

d2admin-${version}-name : value

使用

util.cookies.get('name')

实际取的也是 d2admin-${version}-name

最后你的 cookie 信息实际上可能类似这样(举例):

  • d2admin-1.1.5-name : FairyEver
  • d2admin-1.1.5-uuid : h8dsafy98du9f6yadsyf
  • d2admin-1.1.5-token : dys87f89dsafy89adsh

这样做的好处是可以保证如果您的 D2Admin 升级到了新版本,打开时使用的数据一定是重新初始化的,而您在使用 cookie 时无论赋值还是取值,都觉察不出这层包装

详见 Util 实用工具

数据持久化优化

数据持久化现在给二次开发提供了全新的 API

API 作用
d2adminUtilVuex2DbByUuid 根据用户区分 将 store 某个值持久化
d2adminUtilDb2VuexByUuid 根据用户区分 将持久化的 store 某个值复原
d2adminUtilVuex2Db 所有用户公用 将 store 某个值持久化
d2adminUtilDb2Vuex 所有用户公用 将持久化的 store 某个值复原
d2adminUtilDatabaseUser 获取当前用户的持久化区域
d2adminUtilDatabaseUserClear 清空当前用户的持久化区域
d2adminUtilDatabase 获取所有用户公用的持久化区域
d2adminUtilDatabaseClear 清空所有用户公用的持久化区域

借助这些 API 可以做什么?

  • 将 store 中的某项持久化,可以区分用户,也可以不区分
  • 随意持久化任何数据,可以区分用户存储,也可以存储成所有用户共享

详见 VUEX 实用工具

在线示例(请先完成一次登陆)

image

自动收集用户浏览器信息

不需要任何的操作,可以在 store 中获得用户的浏览器信息,数据格式示例:

{
  browser: {
    name: "Chrome",
    version: "67.0.3396.99",
    major: "67"
  },
  engine: {
    name: "WebKit",
    version: "537.36"
  },
  os: {
    name: "Mac OS",
    version: "10.13.4"
  },
  device: {},
  cpu: {}
}

侧边栏控制

API 作用
d2adminMenuAsideCollapseSet 设置侧边栏收缩还是展开
d2adminMenuAsideCollapseToggle 切换侧边栏状态

并且现在侧边栏的状态会被自动持久化存储,也就是说刷新浏览器后侧边栏会保持收缩或者展开

快速上手章节

为了让大家更简单地使用 D2Admin 搭建第一个页面,新书写了“快速上手”章节,后续计划会出一系列教程。

  • 前置知识
  • 准备
  • 下载项目
  • 安装环境
  • 安装依赖
  • 开发调试
  • 新建页面
  • 设置路由
  • 设置菜单
  • 效果
  • 资源

详见 快速上手

其它的更新信息见下节

更新日志

  • [ 修改 ] vue-cli3 项目重构,目录调整
  • [ 修改 ] 全局状态管理设计优化
  • [ 修改 ] 多标签页操作全部转移至 vuex
  • [ 修改 ] 修复了多标签页无法清除缓存的 bug
  • [ 修改 ] bug fixed #38
  • [ 修改 ] bug fixed #41
  • [ 修改 ] 侧边栏和顶栏菜单数据控制转移到 vuex 集中管理
  • [ 修改 ] 页面最小宽度设置
  • [ 新增 ] d2-highlight 组件新增 format-html 参数
  • [ 新增 ] 自动获取用户浏览器 UA
  • [ 新增 ] playground 新增浏览器信息查看界面
  • [ 修改 ] 登陆注销逻辑移至 vuex
  • [ 新增 ] 登陆页面新增快速选择用户示例
  • [ 新增 ] 侧边栏切换控制辑移至 vuex
  • [ 新增 ] 判断手机浏览自动跳转至提示页面
  • [ 修改 ] 侧边栏弹出菜单尺寸缩小以容纳更多菜单
  • [ 修改 ] d2-container 组件重构,每种模式现都支持 scroll 属性以及 header footer 插槽
  • [ 修改 ] 修复全屏按钮退出全屏状态不更新的 bug
  • [ 修改 ] 修复多标签页缓存逻辑 bug
  • [ 新增 ] 持久化存储根据系统版本区分数据,防止因更新导致数据错乱
  • [ 新增 ] 注销画面灰度效果
  • [ 新增 ] .d2-card 样式类,可以让 el-card 具有跟随主题变化的样式
  • [ 新增 ] ElementUI 表格组件全部示例移植
  • [ 新增 ] 全局状态管理 playground
  • [ 新增 ] 用户私有持久化数据 playground
  • [ 新增 ] 侧边栏和顶栏菜单设置 playground
  • [ 新增 ] d2-container 组件 card 模式下 footer 样式优化
  • [ 修改 ] 侧边栏折叠模式下弹出菜单尺寸缩小
  • [ 修改 ] 默认取消了侧边栏的自定义滚动条显示
  • [ 新增 ] cookie 读写包装
  • [ 新增 ] 持久化存储读写包装,提供快速操作当前用户数据的 mutation
  • [ 新增 ] 持久化存储读写包装,提供快速操作所有用户共享数据的 mutation
  • [ 新增 ] 侧边栏折叠状态现在会根据用户区分记录,刷新页面保留之前的状态

一些额外的事

被 "借鉴" 总是不愉快的

总结

首先感谢那些给我提出意见以及给我帮助的朋友(包括精神鼓励还有红包鼓励),大家的 star 也是对我的鼓励。

在一个人精力有限的前提下,我会尽量吧 D2Admin 做的更好,现在只能承诺给大家:该有的以后都会有,这个项目会一直用心做下去,并且以后给大家比较惊喜的更新。

关于接下来的计划还有正在进行的其它计划,暂时还要保密,敬请期待吧!

既然做了,就要好好做,还要做好。

项目地址

地址 描述
团队主页 D2Admin 所属的团队主页
中文文档 中文文档
完整版 预览地址 完整版 预览地址
完整版 github 完整版 Github 仓库
完整版 码云 完整版 码云镜像仓库
简化版 预览地址 简化版 预览地址
简化版 github 简化版 Github 仓库
简化版 码云 简化版 码云镜像仓库

在最后,如果你看完了,并且觉得还不错,希望可以到 项目主页 上点一个 star 作为你对这个项目的认可与支持,谢谢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容

  • 有的人因为爱情而步入婚姻的殿堂,有的人是因为利益不得以而为之,有的人是因为...,婚姻是什么?是两个人在平等自愿的...
    苏苏琳阅读 228评论 0 0
  • 你是谁? 你是谁? 你是我曾经遗落在, 北往客栈中的一本书吧! 在临窗听雨的夏季读过, 你是谁? 你是我在北归客栈...
    衣饰忆流年阅读 151评论 2 5
  • 前天我听说我家附近才办了一个美食街,于是我央求爸爸妈妈带我去吃美食。没想到爸爸居然一口答应了! 我带着激动的心情来...
    赵云北阅读 183评论 1 0