From a41a927282aec248d725d744bb50cf811c4f9a39 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Sun, 19 Aug 2018 09:01:07 +0800 Subject: [PATCH 01/36] remove sh tag Former-commit-id: 1cb83ad52897347a3dfb41a91ec0122bdd43033c [formerly 1cb83ad52897347a3dfb41a91ec0122bdd43033c [formerly 1cb83ad52897347a3dfb41a91ec0122bdd43033c [formerly 1cb83ad52897347a3dfb41a91ec0122bdd43033c [formerly 28cd535aad5352229d28654ab0abdb8601880de4 [formerly 17a9d6c5c3baaa2c8fa0eb83aa17579612b0d7d1]]]]] Former-commit-id: 5e4a2a5d02c4251c4703007082e32fa22c11ded8 Former-commit-id: ab8e5c39c1843c67b0adb02b1eb14fce4ddf9101 Former-commit-id: f3e02381bff008202042d52741f6eebd87c02285 [formerly 3844f9ed7d6fc0ac6fee980a575c524446aca83d] Former-commit-id: e9ba5dcb11d2339392efbe73c47124f439e1d70e Former-commit-id: 80fcea94cfbb0e3cea9110285a124dd78a5fbe59 Former-commit-id: f888c41764797e011c1e596431a3ad02fdeeb2dc Former-commit-id: 8afb64d1c6f985fdd178bac3001458c0432bfe16 Former-commit-id: 6cfc57a0fea3a0dca60bdad8c241b989f79a0a78 --- docs/zh/guide/getting-started.md | 18 +++++++++--------- docs/zh/guide/question.md.REMOVED.git-id | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/zh/guide/getting-started.md b/docs/zh/guide/getting-started.md index a70e1dc9..b4a51dbe 100644 --- a/docs/zh/guide/getting-started.md +++ b/docs/zh/guide/getting-started.md @@ -60,7 +60,7 @@ 安装完毕后检查版本(最好使用 node 8 版本)。 -``` sh +``` node -v v8.11.1 npm -v @@ -77,13 +77,13 @@ npm -v 安装: -``` sh +``` npm install -g nrm ``` 查看所有可用源: -``` sh +``` nrm ls * npm ----- https://registry.npmjs.org/ cnpm ---- http://r.cnpmjs.org/ @@ -95,7 +95,7 @@ nrm ls 切换源: -``` sh +``` nrm use taobao ``` @@ -103,7 +103,7 @@ nrm use taobao 安装: -``` sh +``` npm install -g cnpm --registry=https://registry.npm.taobao.org ``` @@ -111,7 +111,7 @@ npm install -g cnpm --registry=https://registry.npm.taobao.org 将终端切换到项目目录之后安装依赖: -``` sh +``` npm i ``` @@ -121,19 +121,19 @@ npm i 在项目目录内启动项目: -``` sh +``` npm run dev ``` 或者使用: -``` sh +``` npm start ``` 也可以使用 cli3 新推荐的命令: -``` sh +``` npm run serve ``` diff --git a/docs/zh/guide/question.md.REMOVED.git-id b/docs/zh/guide/question.md.REMOVED.git-id index ae335046..c1c50c28 100644 --- a/docs/zh/guide/question.md.REMOVED.git-id +++ b/docs/zh/guide/question.md.REMOVED.git-id @@ -1 +1 @@ -60313ac9834bcc8639358f7a6672dcfb18a3ec40 \ No newline at end of file +532775ff4f2aa6aa090e14f5d53c5d59bd7d960e \ No newline at end of file From fbc38520d479f78d78587b044dda30b58fdec079 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Sun, 19 Aug 2018 10:36:05 +0800 Subject: [PATCH 02/36] no message Former-commit-id: 5c8be8a85b0cba2a1e1e89ea72c8ac59087df61d [formerly e491df6b119dd8da11efb95abb874662933081a0] [formerly 5c8be8a85b0cba2a1e1e89ea72c8ac59087df61d [formerly e491df6b119dd8da11efb95abb874662933081a0] [formerly 5c8be8a85b0cba2a1e1e89ea72c8ac59087df61d [formerly e491df6b119dd8da11efb95abb874662933081a0] [formerly e491df6b119dd8da11efb95abb874662933081a0 [formerly 731aaa1eab6bea292c3246c1fcc6d154bcf6d2f2 [formerly 19ce0ba792ec5592397d7cf6686984be7a25e13f]]]]] Former-commit-id: 9f29fe6a9ba6d0a52a7f67e479d1f2cb7b1546b4 Former-commit-id: c6add3f6ad0f1d68250c6706dceafea380023838 Former-commit-id: 88152175823504d5841a89a5c1ae8a4b8a4714d4 [formerly 21979818846cf1375188a7528f95de56121f1d86] Former-commit-id: 7022a178ed883532fa196eb75f62fa06fe35330c Former-commit-id: 989add9a5aec12f7318f90473ccaab49eb6524f7 Former-commit-id: caed0f3751abb43abe3b531408f406c7bd4b23a1 Former-commit-id: 2b8f548a46d5a241f6602a240b27d56104ad66d2 Former-commit-id: ea94c865ded4988f3af665cc5d82d0bfa38228df --- docs/.vuepress/config.js | 140 ++++------- docs/zh/article/README.md | 3 - ...combinable-questionnaire.md.REMOVED.git-id | 1 - docs/zh/article/cookbook/what-is-cookbook.md | 3 - docs/zh/article/update/0.0.0.md | 123 ---------- docs/zh/article/update/1.1.4.md | 219 ----------------- .../zh/article/update/1.1.5.md.REMOVED.git-id | 1 - docs/zh/article/update/ice-1.1.2.md | 226 ------------------ docs/zh/components/README.md | 3 - docs/zh/components/charts-new.md | 13 - docs/zh/components/charts.md | 76 ------ .../zh/components/container.md.REMOVED.git-id | 1 - docs/zh/components/count-up.md | 29 --- docs/zh/components/highlight.md | 22 -- docs/zh/components/icon-select.md | 12 - docs/zh/components/icon-svg.md | 34 --- docs/zh/components/icon.md | 41 ---- .../image/baiduyun.png.REMOVED.git-id | 1 - docs/zh/components/markdown.md | 88 ------- docs/zh/guide/change-log.md | 129 ---------- .../zh/guide/image/join@2x.png.REMOVED.git-id | 1 - .../guide/image/preview@2x.png.REMOVED.git-id | 1 - docs/zh/guide/plagiarize.md | 49 ---- docs/zh/guide/question.md.REMOVED.git-id | 1 - docs/zh/{guide => learn-guide}/README.md | 24 +- .../{guide => learn-guide}/getting-started.md | 0 docs/zh/learn-knowledge/README.md | 15 ++ docs/zh/others/README.md | 3 - docs/zh/others/css.md | 103 -------- docs/zh/plugins/README.md | 7 - docs/zh/plugins/data-export.md | 148 ------------ docs/zh/plugins/data-import.md | 64 ----- docs/zh/plugins/i18n.md | 124 ---------- docs/zh/plugins/mock.md | 221 ----------------- docs/zh/plugins/util.md | 187 --------------- docs/zh/plugins/vuex.md.REMOVED.git-id | 1 - 36 files changed, 80 insertions(+), 2034 deletions(-) delete mode 100644 docs/zh/article/README.md delete mode 100644 docs/zh/article/cookbook/combinable-questionnaire.md.REMOVED.git-id delete mode 100644 docs/zh/article/cookbook/what-is-cookbook.md delete mode 100644 docs/zh/article/update/0.0.0.md delete mode 100644 docs/zh/article/update/1.1.4.md delete mode 100644 docs/zh/article/update/1.1.5.md.REMOVED.git-id delete mode 100644 docs/zh/article/update/ice-1.1.2.md delete mode 100644 docs/zh/components/README.md delete mode 100644 docs/zh/components/charts-new.md delete mode 100644 docs/zh/components/charts.md delete mode 100644 docs/zh/components/container.md.REMOVED.git-id delete mode 100644 docs/zh/components/count-up.md delete mode 100644 docs/zh/components/highlight.md delete mode 100644 docs/zh/components/icon-select.md delete mode 100644 docs/zh/components/icon-svg.md delete mode 100644 docs/zh/components/icon.md delete mode 100644 docs/zh/components/image/baiduyun.png.REMOVED.git-id delete mode 100644 docs/zh/components/markdown.md delete mode 100644 docs/zh/guide/change-log.md delete mode 100644 docs/zh/guide/image/join@2x.png.REMOVED.git-id delete mode 100644 docs/zh/guide/image/preview@2x.png.REMOVED.git-id delete mode 100644 docs/zh/guide/plagiarize.md delete mode 100644 docs/zh/guide/question.md.REMOVED.git-id rename docs/zh/{guide => learn-guide}/README.md (95%) rename docs/zh/{guide => learn-guide}/getting-started.md (100%) create mode 100644 docs/zh/learn-knowledge/README.md delete mode 100644 docs/zh/others/README.md delete mode 100644 docs/zh/others/css.md delete mode 100644 docs/zh/plugins/README.md delete mode 100644 docs/zh/plugins/data-export.md delete mode 100644 docs/zh/plugins/data-import.md delete mode 100644 docs/zh/plugins/i18n.md delete mode 100644 docs/zh/plugins/mock.md delete mode 100644 docs/zh/plugins/util.md delete mode 100644 docs/zh/plugins/vuex.md.REMOVED.git-id diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 467bf6a3..de41538f 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -41,106 +41,72 @@ module.exports = { editLinkText: '在 GitHub 上编辑此页', lastUpdated: '最后更新', nav: [ - { text: '指南', link: '/zh/guide/' }, - { text: '插件', link: '/zh/plugins/' }, - { text: '组件', link: '/zh/components/' }, - { text: '文章', link: '/zh/article/' }, - { text: '其它', link: '/zh/others/' }, - { text: '预览', link: 'https://fairyever.gitee.io/d2-admin-preview/#/index' } + { + text: '学习', + items: [ + { text: '教程', link: '/zh/learn-guide/' }, + { text: '相关知识', link: '/zh/learn-knowledge/' } + ] + }, + { + text: '系统', + items: [ + { text: '内置组件', link: '' }, + { text: '插件', link: '' }, + { text: 'vuex', link: '' }, + { text: '菜单', link: '' }, + { text: '路由', link: '' }, + { text: '主题系统', link: '' }, + { text: '数据持久化', link: '' }, + { text: 'CSS 实用类', link: '' }, + { text: 'JS Util', link: '' } + ] + }, + { + text: '生态', + items: [ + { text: 'D2 Admin start kit', link: '' }, + { text: 'D2 Admin ICE', link: '' }, + { text: 'D2 CRUD', link: '' }, + { text: 'D2 Ribbons', link: '' } + ] + }, + { + text: '其它', + items: [ + { text: '文章归档', link: '' }, + { text: '更新日志', link: '' }, + { text: '参与者名单', link: '' }, + { + text: '关注我们', + items: [ + { text: '掘金', link: '' }, + { text: 'CSDN', link: '' }, + { text: 'segmentfault', link: '' }, + { text: '知乎', link: '' }, + { text: '微信公众号', link: '' } + ] + } + ] + }, + { text: '常见问题', link: '' } ], sidebar: { - '/zh/guide/': sideBarGuide('指南'), - '/zh/plugins/': sideBarPlugins('插件'), - '/zh/components/': sideBarComponents('组件'), - '/zh/article/': sideBarArticle('Cookbook', '版本更新'), - '/zh/others/': sideBarOthers('其它') + '/zh/learn-guide/': sideBarLearnGuide() } } } } } -function sideBarGuide (title) { +function sideBarLearnGuide () { return [ { - title, collapsable: false, children: [ '', - 'getting-started', - 'question', - 'plagiarize', - 'change-log' + 'getting-started' ] } ] -} - -function sideBarPlugins () { - return [ - '', - 'data-export', - 'data-import', - 'i18n', - 'mock', - 'vuex', - 'util' - ] -} - -function sideBarComponents (title) { - return [ - { - title, - collapsable: false, - children: [ - '', - 'charts', - 'charts-new', - 'container', - 'count-up', - 'highlight', - 'icon-select', - 'icon-svg', - 'icon', - 'markdown' - ] - } - ] -} - -function sideBarArticle (titleCookBook, titleUpdate) { - return [ - { - title: titleCookBook, - collapsable: false, - children: [ - 'cookbook/what-is-cookbook', - 'cookbook/combinable-questionnaire', - ] - }, - { - title: titleUpdate, - collapsable: false, - children: [ - 'update/ice-1.1.2', - 'update/1.1.5', - 'update/1.1.4', - 'update/0.0.0' - ] - } - ] -} - -function sideBarOthers (title) { - return [ - { - title, - collapsable: false, - children: [ - '', - 'css' - ] - } - ] -} +} \ No newline at end of file diff --git a/docs/zh/article/README.md b/docs/zh/article/README.md deleted file mode 100644 index 37a1c102..00000000 --- a/docs/zh/article/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# 文章 - -请在侧边栏目录选择文章阅读 \ No newline at end of file diff --git a/docs/zh/article/cookbook/combinable-questionnaire.md.REMOVED.git-id b/docs/zh/article/cookbook/combinable-questionnaire.md.REMOVED.git-id deleted file mode 100644 index c09f454c..00000000 --- a/docs/zh/article/cookbook/combinable-questionnaire.md.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -7016ea14567961c24eb1fdee492e0c996099f752 \ No newline at end of file diff --git a/docs/zh/article/cookbook/what-is-cookbook.md b/docs/zh/article/cookbook/what-is-cookbook.md deleted file mode 100644 index 53c4758c..00000000 --- a/docs/zh/article/cookbook/what-is-cookbook.md +++ /dev/null @@ -1,3 +0,0 @@ -# 什么是 Cookbook - -计算机领域的 Cookbook 指的是实用经典案例的意思,是对一些普遍性问题的解决方案的总结和整理。 \ No newline at end of file diff --git a/docs/zh/article/update/0.0.0.md b/docs/zh/article/update/0.0.0.md deleted file mode 100644 index 40a0747b..00000000 --- a/docs/zh/article/update/0.0.0.md +++ /dev/null @@ -1,123 +0,0 @@ -# 公布项目 - -![github-banner](http://fairyever.qiniudn.com/github-banner.png) - -# 介绍 - -D2Admin 是一个开源的管理系统前端集成方案 - -[Github仓库](https://github.com/d2-projects/d2-admin) - [预览地址](https://fairyever.gitee.io/d2-admin-preview/#/index) - [中文文档](https://fairyever.gitee.io/d2-admin-doc/zh/) - -D2Admin 是完全开源免费的管理系统集成方案,由 [FairyEver](https://github.com/FairyEver) 在工作之余完全由兴趣驱动完成,如果你也一样喜欢前端开发,欢迎加入我们的讨论/学习群,群内可以`提问答疑`,`分享学习资料`或者随便扯淡 - -**QQ群** - -群号 806395827 欢迎大家 - -**微信群** - -作者微信 liyang1711467488 - -> 微信群需要先加群主才可以拉进群 - -## 功能 - -* 首屏加载等待动画 避免首次加载白屏尴尬 -* 简约主题 -* 每个插件和组件都配有介绍文档 -* 图片资源 sketch 源文件( 可以在这个文件内重新生成所有图片资源 ) -* 登陆和注销 -* 根据路由自动生成菜单 -* 可折叠侧边栏 -* 方便的菜单设置 -* 多国语言支持 -* 富文本编辑器 -* Markdown 编辑器 -* 全屏功能 -* Fontawesome 图标库 -* 图标选择器(组件) -* 自动引入下载的 SVG 图标 -* 前端假数据支持( mock ) -* 集成蚂蚁金服出品的 G2 图表 -* 图表自适应可拖拽大小的卡片容器(示例) -* 简化剪贴板操作 -* 简化Cookie操作 -* 时间日期计算工具 -* 导入 Excel ( xlsx 格式 + csv 格式 ) -* 数据导出 Excel ( xlsx 格式 + csv 格式 ) -* 数据导出文本 -* 数字动画 -* 可拖拽调整大小的切分布局 -* 可拖拽调整大小和位置的网格布局 -* 提供三种方便的页面容器组件(正常卡片,隐形容器,填满页面) -* 代码高亮显示 -* 加载并解析(或者直接指定资源) markdown 文件 -* GitHub 样式的 markdown 显示组件 -* markdown 内代码高亮 -* 为 markdown 扩展了百度云链接解析和优化显示 -* 右键菜单组件 -* 自定义滚动条和滚动控制 -* 内置4种主题 -* 公用样式抽离,方便的主题定制 -* 支持百万级数据量的表格组件 -* 打包后随意目录部署(已经做好兼容设置) - -## TODO - -D2Admin 仍然处于开发中,这里有一些计划: - -* 分离出简化版本 -* 推出基于 [ice](https://alibaba.github.io/ice) 平台的版本 -* 增加右上角通知中心 -* 增加一些实例页面以提供业务页面布局建议 -* 更换图表库 -* 多 tab 页结构 -* 面包屑导航 -* 树型表格组件 -* `1.1.0 完成` 抽离项目里的文档,集中存放在文档站点 -* `1.1.0 完成` 对主界面进行一次完善,调整整体布局和颜色 -* `1.1.0 完成` 切换主题功能 - -欢迎你为 D2Admin 的开发作出贡献(代码编写/文档翻译)。 - -## 目录结构 - -``` -├─ build -├─ config -├─ docs // 文档 -├─ src -│ ├─ assets // 资源 -│ │ ├─ icons -│ │ ├─ image -│ │ ├─ library -│ │ └─ style -│ ├─ components // 组件 -│ │ ├─ charts -│ │ ├─ core -│ │ └─ demo -│ ├─ i18n // 多国语 -│ ├─ menu // 菜单 -│ ├─ mock // 模拟数据 -│ ├─ pages // 页面 -│ ├─ plugin // 插件 -│ ├─ router // 路由 -│ ├─ store // vuex -│ ├─ utils -│ ├─ App.vue -│ └─ main.js -├─ static // 静态资源 -├─ .babelrc -├─ .editorconfig -├─ .eslintignore -├─ .eslintrc.js -├─ .gitattributes -├─ .gitignore -├─ .postcssrc.js -├─ LICENSE -├─ README.md -├─ deploy.sh -├─ design.sketch // 设计文件 -├─ index.html -└─ package.json -``` \ No newline at end of file diff --git a/docs/zh/article/update/1.1.4.md b/docs/zh/article/update/1.1.4.md deleted file mode 100644 index 7cd6a38e..00000000 --- a/docs/zh/article/update/1.1.4.md +++ /dev/null @@ -1,219 +0,0 @@ -# 版本发布 1.1.4 - -![github-banner](http://fairyever.qiniudn.com/github-banner.png) - -D2Admin 是一个 **注重外观表现** 的管理系统 **PC端** 集成方案,现在正在紧张开发维护。 - -## 前言 - -距离 D2Admin 正式和大家见面(开源),已经过去一个多月了。 - -![Snip20180703_4](http://fairyever.qiniudn.com/Snip20180703_4.png) - -现在想想这一个月真是很忙碌,几乎所有的业余时间都用在了开源项目上,公司没事的时候在写,晚上回家每天都要写到一点左右,回家火车上都在忙着改代码... - -![Snip20180703_5-squashed](http://fairyever.qiniudn.com/Snip20180703_5-squashed.jpg) - -上图:好友不幸骨折,守着他编码...(希望他早点康复) - -有天我和朋友说,感觉真是开源个项目,把自己整个人都开源了,一个人又要设计又要写代码又要写文档还要回答问题,除了上班吃睡就都是它了! - -但是就我个人而言,我感觉倒也是一种不错的体验。 - -通过这个开源产品,认识了很多朋友,有了自己的小交流群,平日没事了大家一起讨论讨论问题也挺不错。当然也新认识了一些大佬(膜拜),通过交流也有不小的收获。 - -## 介绍 - -废话不多说了,一介码农也没有什么文采,今天也是趁着发版的机会小发表一些想法,下面就介绍一下这一个月来究竟升级了什么吧,先放几张截图吧: - -### 预览 - -经典主题: - -![Snip20180703_6-squashed](http://fairyever.qiniudn.com/Snip20180703_6-squashed.png) - -集成组件和插件: - -![Snip20180703_7-squashed](http://fairyever.qiniudn.com/Snip20180703_7-squashed.png) - -图标选择器: - -![Snip20180703_8-squashed](http://fairyever.qiniudn.com/Snip20180703_8-squashed.png) - -版本检查: - -![Snip20180703_10-squashed](http://fairyever.qiniudn.com/Snip20180703_10-squashed.png) - -灰度模式: - -![Snip20180703_11-squashed](http://fairyever.qiniudn.com/Snip20180703_11-squashed.png) -![Snip20180704_9](http://fairyever.qiniudn.com/Snip20180704_9.png) -![Snip20180705_1](http://fairyever.qiniudn.com/Snip20180705_1.png) - -数据持久化: - -![Snip20180703_12-squashed](http://fairyever.qiniudn.com/Snip20180703_12-squashed.png) - -图表: - -![Snip20180703_13-squashed](http://fairyever.qiniudn.com/Snip20180703_13-squashed.png) - -主题: - -![Snip20180703_14-squashed](http://fairyever.qiniudn.com/Snip20180703_14-squashed.png) - -响应大家需求,这次最大的升级:多标签页: - -![Snip20180703_15](http://fairyever.qiniudn.com/Snip20180703_15.png) - -上面是我随便截了几张图片 如果你感兴趣的话可以去体验地址一趟 -> [体验地址](https://fairyever.gitee.io/d2-admin-preview/#/index) <-。 - -项目现在集成了不少的库和插件,第一次加载确实有些慢,以后有空了优化一下。 - -另外大家实际使用的时候建议使用 [简化版模板](https://github.com/d2-projects/d2-admin-start-kit)。 - -### 完整功能列表 - -* 首屏加载等待动画 避免首次加载白屏尴尬 -* 简约主题 -* 每个插件和组件都配有介绍文档 -* 图片资源 sketch 源文件( 可以在这个文件内重新生成所有图片资源 ) -* 登陆和注销 -* 根据路由自动生成菜单 -* 可折叠侧边栏 -* 方便的菜单设置 -* 多国语言支持 -* 富文本编辑器 -* Markdown 编辑器 -* 全屏功能 -* Fontawesome 图标库 -* 图标选择器(组件) -* 自动引入下载的 SVG 图标 -* 前端假数据支持( mock ) -* 集成蚂蚁金服出品的 G2 图表 -* 图表自适应可拖拽大小的卡片容器(示例) -* 简化剪贴板操作 -* 简化Cookie操作 -* 时间日期计算工具 -* 导入 Excel ( xlsx 格式 + csv 格式 ) -* 数据导出 Excel ( xlsx 格式 + csv 格式 ) -* 数据导出文本 -* 数字动画 -* 可拖拽调整大小的切分布局 -* 可拖拽调整大小和位置的网格布局 -* 提供三种方便的页面容器组件(正常卡片,隐形容器,填满页面) -* 代码高亮显示 -* 加载并解析(或者直接指定资源) markdown 文件 -* GitHub 样式的 markdown 显示组件 -* markdown 内代码高亮 -* 为 markdown 扩展了百度云链接解析和优化显示 -* 右键菜单组件 -* 自定义滚动条和滚动控制 -* 内置5种主题 -* 公用样式抽离,方便的主题定制 -* 支持百万级数据量的表格组件 -* 打包后随意目录部署(已经做好兼容设置) -* 支持临时菜单配置 -* 提供“试验台”功能 方便展示系统功能调用方法 `1.1.4 +` -* 多标签页模式 `1.1.4 +` -* 美化滚动条 `1.1.4 +` -* 持久化存储 `1.1.4 +` - -### 更新列表 - -这个列表在这里也可以查看 -> [中文文档 | 更新日志](https://fairyever.gitee.io/d2-admin-doc/zh/guide/change-log.html#v1-1-0) - -#### 1.1.4 - -* [ 修改 ] 全局状态管理设计优化 -* [ 修改 ] 主题调优 -* [ 新增 ] playground 模块,方便测试和展示一些功能实现方式/调用方法 -* [ 新增 ] 灰度模式 -* [ 新增 ] 多页模式 -* [ 新增 ] 多页模式缓存 -* [ 新增 ] 多页模式快速关闭(关闭左侧 右侧 全部 其它) -* [ 修改 ] 侧边栏滚动优化 -* [ 新增 ] `d2-container` 填充模式自定义滚动条 -* [ 新增 ] `d2-container` 组件卡片和隐形模式自定义滚动条 -* [ 新增 ] 现在页面标题可以根据路由做出对应变化了 -* [ 新增 ] 版本检查机制 -* [ 新增 ] `d2-container` 隐形模式支持 header 插槽 -* [ 新增 ] 版本检查可以设置为不显示提示框 -* [ 新增 ] 集成 json 查看组件 -* [ 新增 ] 添加了所有图表种类的演示页面 -* [ 修改 ] 修改布局方式,解决了在 Firefox 上 better-scroll 初始化拿不到正确高度的 bug -* [ 新增 ] 右上角显示用户名,用户名持久存储 - -#### 1.1.3 - -* [ 修复 ] 侧边栏在折叠时不显示的 bug -* [ 新增 ] v-charts 插件 -* [ 新增 ] 一些演示图表(后续打算把 v-charts 文档上有示例性的演示都展示一下) -* [ 修改 ] D2Admin 经典主题颜色调整 -* [ 新增 ] violet 主题 -* [ 新增 ] 菜单图标 -* [ 修改 ] 新制作了 Fork me 图片 - -#### 1.1.2 - -* [ 修改 ] 删除了 G2 相关的依赖 - -#### 1.1.1 - -* [ 修改 ] 删除了 G2 相关的代码(移除图表库) -* [ 优化 ] 侧边栏取值逻辑 - -#### 1.1.0 - -* [ 修改 ] 顶栏和侧边栏菜单新的结构生成方式,新的方案使用 数据 + 递归组件 实现无限制多级菜单 -* [ 修改 ] 路由注册回归最简单的写法 -* [ 修复 ] 首次加载 loading 样式类名和程序内类名冲突,新的加载类名使用 d2-app-loading 前缀 -* [ 修改 ] 所有类似 dd- 的样式前缀(包括自动注册图标的id前缀)统一改为 d2- -* [ 修复 ] 修复 d2-highlight 组件和 d2-markdown 组件的样式冲突 -* [ 修改 ] 内置组件名称统一改为 d2- 前缀,统一使用横线连接 (kebab-case) 风格 -* [ 修改 ] 顶栏 logo 阴影删除 -* [ 新增 ] 主题系统 -* [ 新增 ] 三个主题,分别为 d2admin 经典,简约线条,流星 -* [ 修改 ] d2-markdown 组件 md 参数改名为 source -* [ 修改 ] 删除了 d2-markdown 组件中图片的白色背景 -* [ 修改 ] 删除 timeago 插件,更换为更强大的 dayjs -* [ 新增 ] Tomorrow Night Blue 主题 -* [ 修改 ] src/assets/style/public-class.scss 写法优化 -* [ 新增 ] [vue-bigdata-table](https://github.com/lison16/vue-bigdata-table)组件 -* [ 修复 ] 侧边栏内容超过一屏后显示错误 -* [ 新增 ] 自定义滚动条演示页面 -* [ 新增 ] 流星主题新增背景图片上层的半透明遮罩 -* [ 修复 ] 主题设置失效bug -* [ 修复 ] router守卫验证登陆部分代码修改 -* [ 修复 ] d2-container 组件改为同步注册(之前的异步注册会有 mounted 生命周期问题,即 slot 内的页面在 mounted 生命周期内拿不到 dom) -* [ 修复 ] d2-container 组件重构 flex 布局 -* [ 新增 ] 404 page -* [ 新增 ] 顶栏联系方式 -* [ 新增 ] 右键菜单组件 -* [ 新增 ] 菜单配置支持空菜单(项目开发的时候有可能需要先把菜单做好查看效果) -* [ 优化 ] 页面左侧菜单滚动条优化 -* [ 修复 ] CSS 边距工具类都加上了 `!important` 来保证在覆盖样式时生效 -* [ 修复 ] IE11 兼容性修复 - -写这篇文章的时候心情竟然出奇地平静,终于发新版了,总算松了一口气... - -### 下阶段的计划: - -* ice 版本 -* bug 修复 - -## 项目地址 - -| 地址 | 描述 | -| --- | --- | -| [团队主页](https://github.com/d2-projects) | D2Admin 所属的团队主页 | -| [中文文档](http://d2admin.fairyever.com/zh/) | 中文文档 | -| [完整版 预览地址](https://fairyever.gitee.io/d2-admin-preview/#/index) | 完整版 预览地址 | -| [完整版 github](https://github.com/d2-projects/d2-admin) | 完整版 Github 仓库 | -| [完整版 码云](https://gitee.com/fairyever/d2-admin) | 完整版 码云镜像仓库 | -| [简化版 预览地址](https://fairyever.gitee.io/d2-admin-start-kit-preview/#/index) | 简化版 预览地址 | -| [简化版 github](https://github.com/d2-projects/d2-admin-start-kit) | 简化版 Github 仓库 | -| [简化版 码云](https://gitee.com/fairyever/d2-admin-start-kit) | 简化版 码云镜像仓库 | - -在最后,如果你看完了,并且觉得还不错,希望可以到 [项目主页](https://github.com/d2-projects/d2-admin) 上点一个 **star** 作为你对这个项目的认可与支持,谢谢。 - diff --git a/docs/zh/article/update/1.1.5.md.REMOVED.git-id b/docs/zh/article/update/1.1.5.md.REMOVED.git-id deleted file mode 100644 index 2600a1c6..00000000 --- a/docs/zh/article/update/1.1.5.md.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -05ccbdf3de53a90253dd94be5732f56d8b7235e9 \ No newline at end of file diff --git a/docs/zh/article/update/ice-1.1.2.md b/docs/zh/article/update/ice-1.1.2.md deleted file mode 100644 index 03427e20..00000000 --- a/docs/zh/article/update/ice-1.1.2.md +++ /dev/null @@ -1,226 +0,0 @@ -# D2Admin ICE 发布 - -# 可视化搭建前端工程 - 阿里飞冰了解一下 - -飞冰官方网站 [https://alibaba.github.io/ice](https://alibaba.github.io/ice) - -每次新做一个项目,无论大小都要干这些事: - -* 框架选型 -* 初始化脚手架(比如使用 **create-react-app** 或者 **vue-cli**) -* 也可能你选择了开源脚手架,克隆仓库 -* 四处找轮子 -* 安装各种依赖 -* 新建页面,写逻辑 -* 设计菜单 -* 设计路由 -* 新建页面的时候去复制旧的页面修改 -* 把新的页面注册路由,注册菜单 -* 做完了这个页面做下个,新建文件,复制代码,注册路由... - -**烦不烦?要优雅!** - -今天介绍阿里的开源产品:[飞冰](https://alibaba.github.io/ice) - -## 飞冰是什么 - -![](http://fairyever.qiniudn.com/20180803020053.png) - -"海量可复用物料,通过 GUI 工具极速构建中后台应用"。 - -这句 slogan 还是非常准确的: - -飞冰是一套综合解决方案,用来极速构建中后台应用(其实也可以做非中后台应用)。 - -可以做到极速是通过『海量可复用物料』和『GUI 开发工具』实现的。 - -使用飞冰的开发工作流是这样的: - -`下载 GUI 工具并安装` => `可视化的选择我们提供的初始模板创建项目` => `可视化的创建页面并选择我们提供的 100+ 高质量可复用区块` => `生成代码进行二次开发` => `开发完成之后点击打包编译出 HTML、JS、CSS 文件` => `部署使用` - -在整个流程中,你可以完全通过 GUI 工具点击操作,无需安装配置 Node 环境等前端开发工具,也无需配置 webpack 等构建脚本,我们已经按照淘宝前端最佳实践全部内置。此外,绝大部分的业务需求,我们都已经开发出对应的物料,可以通过 GUI 进行可视化的拼装,尽可能避免你去编写额外的业务逻辑。 - -### 物料源 - -下面是一张很长的图片,为了体积考虑这张图比较模糊,但是可以感受一下 ICE 的区块数量: - -> 原始网页链接 [https://alibaba.github.io/ice/block](https://alibaba.github.io/ice/block) - -![](http://fairyever.qiniudn.com/20180803005118.jpg) - -目前为止 ICE 已经支持 react vue Angular 三大主流框架的物料资源 - -![](http://fairyever.qiniudn.com/20180803005219.png) - -打比方我现在项目需要富文本编辑器,可以看到区块里提供了三款编辑器可供选择 - -![](http://fairyever.qiniudn.com/20180803005411.png) - -所有的这些,都是使用 GUI 就可以加入到项目中使用的,下面将会展示如何从安装 iceworks 客户端到在项目中新建页面。 - -## 如何使用 - -### 安装 - -> 为了真实演示,特意删掉了以前安装的 app - -演示系统为 macOS,iceworks 支持 Windows 版本。 - -iceworks 下载地址 [https://alibaba.github.io/ice/iceworks](https://alibaba.github.io/ice/iceworks) - -![](http://fairyever.qiniudn.com/20180803005813.png) - -稍微等待了一会儿,下载完成。安装后得到了这样一个 App: - -![](http://fairyever.qiniudn.com/20180803010417.png) - -### 上手 - -安装后打开看到一个很简单的界面: - -![](http://fairyever.qiniudn.com/20180803010628.png) - -切换到模板标签可以看到飞冰目前提供的脚手架列表: - -![](http://fairyever.qiniudn.com/20180803010704.png) - -区块标签可以看到区块列表 - -![](http://fairyever.qiniudn.com/20180803011044.gif) - -插件 - -![](http://fairyever.qiniudn.com/20180803011128.png) - -设置 - -![](http://fairyever.qiniudn.com/20180803011150.png) - -这就是表面上所有的功能,下面我们来建一个项目体验一下 - -### 新建 vue 项目 - -飞冰是从 react 开始做的,现在 vue 和 Angular 物料源还比较少,我们切换到 vue 选项卡里... - -![](http://fairyever.qiniudn.com/20180803011329.png) - -**是不是混进了什么奇怪的东西!** - -![](http://fairyever.qiniudn.com/20180803011519.png) - -没错,D2Admin 出了 ICE 版! - -在我和阿里的开发者**一个月**的对接之后,D2Admin ICE 诞生了,作为飞冰平台上第一个**非官方 vue 脚手架**,D2Admin ICE 承担的希望还是很大的!下面使用这个脚手架做演示,展示如何**不写代码**建页面,**不写代码**出图表! - -选择 D2Admin ICE 作为起始模板后会让我们填写项目保存地址: - -![](http://fairyever.qiniudn.com/20180803011843.png) - -填写完成后开始下载模板,下载后会提示我是否要立刻安装依赖: - -![](http://fairyever.qiniudn.com/20180803012018.gif) - -为了避免动态图过大我没有录安装过程: - -![](http://fairyever.qiniudn.com/20180803012215.png) - -在写上面的时候已经提示我依赖安装完成了(很人性化有没有): - -![](http://fairyever.qiniudn.com/20180803012311.png) - -![](http://fairyever.qiniudn.com/20180803012346.png) - -ennn...没毛病。 - -### 启动项目 - -点击 `启动调试服务` 会在本地打开调试服务,vue 项目默认执行的是 `npm start`: - -![](http://fairyever.qiniudn.com/20180803012548.gif) - -打开显示的链接,可以看到项目已经稳稳地跑起来了: - -![](http://fairyever.qiniudn.com/20180803012748.png) - -D2Admin ICE 实质上是 [d2-admin-start-kit](https://github.com/d2-projects/d2-admin-start-kit) 的特别版本,为适应 ICE 的逻辑修改了一部分代码,可以看到模板十分干净,没有了任何完整版的示例 demo: - -![](http://fairyever.qiniudn.com/20180803012914.png) - -关闭 ICE 内集成的终端后可以看到项目面板,可以显示出现在有哪些页面,安装了哪些依赖等: - -![](http://fairyever.qiniudn.com/20180803013159.png) - -### 新建页面 - -点击 `新建页面` 会打开新建页面界面: - -![](http://fairyever.qiniudn.com/20180803013712.png) - -随便选择一个区块新建一个页面(中间的等待时间是 iceworks 在从 npm 下载区块代码) - -![](http://fairyever.qiniudn.com/20180803013831.gif) - -选择区块: - -![](http://fairyever.qiniudn.com/20180803014037.png) - -效果: - -![](http://fairyever.qiniudn.com/20180803014058.png) - -下面尝试一下选择多个区块: - -![](http://fairyever.qiniudn.com/20180803014157.png) - -![](http://fairyever.qiniudn.com/20180803014244.png) - -自动生成了菜单: - -![](http://fairyever.qiniudn.com/20180803014402.png) - -页面效果: - -![](http://fairyever.qiniudn.com/20180803014605.gif) - -检查一下自动生成的代码目录: - -![](http://fairyever.qiniudn.com/20180803014743.png) - -自动生成的页面组件: - -![](http://fairyever.qiniudn.com/20180803015016.png) - -自动生成的样式文件: - -![](http://fairyever.qiniudn.com/20180803015047.png) - -该有的都有了,不该有的也有了,连生命周期钩子都帮你写了一遍! - -## 结语 - -演示一遍下来后,我生成了两个页面,没有写一行代码,剩下的操作就是修修改改,把多个页面都需要的组件提取一下,做做修改工作。 - -D2Admin 团队也会在以后的时间里尽力和 ICE 团队合作开发 vue 公用区块,加速 ICE 的 vue 生态建设,也希望众多的 vuer 都可以参与进来,平台有了,社区繁荣起来才是对大家都有利的事情。 - -D2Admin ICE 将会保持和 D2Admin Start Kit 一致更新,如果你看到完整版的 D2Admin 实在喜欢,从完整版做减法也未尝不可 :) - -## D2 Projects - -| 地址 | 描述 | -| --- | --- | -| [团队主页](https://github.com/d2-projects) | D2Admin 所属的团队主页 | -| [中文文档](http://d2admin.fairyever.com/zh/) | 中文文档 | -| [D2Admin 完整版 预览地址](https://fairyever.gitee.io/d2-admin-preview/#/index) | 完整版 预览地址 | -| [D2Admin 完整版 github](https://github.com/d2-projects/d2-admin) | 完整版 Github 仓库 | -| [D2Admin 完整版 码云](https://gitee.com/fairyever/d2-admin) | 完整版 码云镜像仓库 | -| [D2Admin 简化版 预览地址](https://fairyever.gitee.io/d2-admin-start-kit-preview/#/index) | 简化版 预览地址 | -| [D2Admin 简化版 github](https://github.com/d2-projects/d2-admin-start-kit) | 简化版 Github 仓库 | -| [D2Admin 简化版 码云](https://gitee.com/fairyever/d2-admin-start-kit) | 简化版 码云镜像仓库 | - -开源项目组官方公众号 - - - -[本文在项目文档中收录位置](http://d2admin.fairyever.com/zh/article/update/ice-1.1.2.html) - -在最后,如果你看完了,并且觉得还不错,希望可以到 [项目主页](https://github.com/d2-projects/d2-admin) 上点一个 **star** 作为你对这个项目的认可与支持,谢谢。 \ No newline at end of file diff --git a/docs/zh/components/README.md b/docs/zh/components/README.md deleted file mode 100644 index 2fd73b8a..00000000 --- a/docs/zh/components/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# 组件概述 - -d2-admin(以下简称 d2admin)封装(或者集成第三方)了一些组件,方便开发者进行开发,具体组件文档请从左侧列表进入 \ No newline at end of file diff --git a/docs/zh/components/charts-new.md b/docs/zh/components/charts-new.md deleted file mode 100644 index 7e423905..00000000 --- a/docs/zh/components/charts-new.md +++ /dev/null @@ -1,13 +0,0 @@ -# 图表 [ v-charts ] 新 - -::: tip -`1.1.0` 版本使用的是 `G2` 图表库,`1.1.3` 开始使用 `v-charts` -::: - -## 介绍 - -在使用 echarts 生成图表时,经常需要做繁琐的数据类型转化、修改复杂的配置项,v-charts 的出现正是为了解决这个痛点。基于 Vue2.0 和 echarts 封装的 v-charts 图表组件,只需要统一提供一种对前后端都友好的数据格式设置简单的配置项,便可轻松生成常见的图表。 - -[v-charts 文档](https://v-charts.js.org/#/) - -处于对用户使用方便的角度考虑,从 `1.1.3` 开始使用 v-charts。项目中已经安装并注册完毕 v-charts,你可以直接使用 \ No newline at end of file diff --git a/docs/zh/components/charts.md b/docs/zh/components/charts.md deleted file mode 100644 index 024f7039..00000000 --- a/docs/zh/components/charts.md +++ /dev/null @@ -1,76 +0,0 @@ -# 图表 [ G2 ] 旧 - -::: tip -此文档仅对 `1.1.0` 及其以下版本有效,`1.1.1` 开始变更了图表库 -::: - -## 介绍 - -D2Admin 集成了由蚂蚁金服出品的 **G2** 图表库 - -## 实现方式 - -`src/components/charts/register.js` 为注册图表组件的文件 - -`src/components/charts/G2` 为图表组件存放位置 - -`src/components/charts/G2/mixins/G2.js` 是图表最主要的文件,这是一个所有的图表组件都会使用的 mixin,这个 mixin 主要有以下用途 - - - 将 G2 和 DataSet 绑定到 data 上,方便组件使用,省去重复 `import G2 from '@antv/g2'` 等 - - 将 [G2 Chart类](http://antv.alipay.com/zh-cn/g2/3.x/api/chart.html#_Chart) 的属性全部暴露为 Vue 组件参数,这些参数会在初始化图表时用到 - - 提供了额外的设置参数,比如自动高度,自动初始化,初始化延时 - - 关闭 G2 的体验改进计划打点请求 - - data 上的 chart 对象 - - 自动初始化(或者不初始化)图表 - - `creatChart` 方法,根据参数设置生成 data 上的 chart 对象 - - `resize` 方法 - -在图表组件中使用这个 mixin 示例 - -``` vue - - - -``` - -上面的代码段展示了如何使用 mixin 快速制作一个图表组件,只需根据某个图表的个性化需要,在组件中重新定义 `init` 和 `changeData` 方法即可 - -你可以修改这个 mixin 去实现更多的功能,同时影响所有的图表组件 - -::: tip -这只仅仅是作者个人对于图表封装的一个实现思路 -::: - -## 为什么没有选择其他产品 - -G2 完全可以胜任一般的后台界面报表图表需求,而且官网文档清晰友好 - -如果你需要更酷炫的图表,也完全可以剔除集成的库,换用 百度的[echarts](http://echarts.baidu.com/) 或者超级强大的 [d3.js](https://d3js.org/) \ No newline at end of file diff --git a/docs/zh/components/container.md.REMOVED.git-id b/docs/zh/components/container.md.REMOVED.git-id deleted file mode 100644 index 2712e40f..00000000 --- a/docs/zh/components/container.md.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -be315dc4b20db4a72f9543b102c601365693b67d \ No newline at end of file diff --git a/docs/zh/components/count-up.md b/docs/zh/components/count-up.md deleted file mode 100644 index a8f1844b..00000000 --- a/docs/zh/components/count-up.md +++ /dev/null @@ -1,29 +0,0 @@ -# 数字动画 - -## 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| start | 起始值 | 非 | Number | | 0 | -| end | 结束值 | 是 | Number | | 0 | -| decimals | 小数位数 | 非 | Number | | 0 | -| duration | 持续时间 | 非 | Number | | 2 | -| options | 设置项 | 非 | Object | | 空对象 | -| callback | 回调函数 | 非 | Function | | 空函数 | - -## 示例 - -``` vue -// 基本使用方法 - - -// 设置始末值 - - -// 设置动画时间 - -``` - -组件会在页面上渲染 `` 标签 - -组件根据 [countUp.js](https://github.com/inorganik/countUp.js) 封装,`options` 参数详见原始插件文档 \ No newline at end of file diff --git a/docs/zh/components/highlight.md b/docs/zh/components/highlight.md deleted file mode 100644 index f8830d31..00000000 --- a/docs/zh/components/highlight.md +++ /dev/null @@ -1,22 +0,0 @@ -# 代码高亮 - -## 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| code | 代码字符串 | 非 | String | | console.log('you lost code prop') | -| format-html | 是否格式化 HTML | 非 | Boolean | | false | - -::: tip -format 建议只在内容为 HTML 的时候打开,如果内容不是 HTML,设置为 true 会有负面效果 -::: - -## 示例 - -``` vue - -``` - -::: tip -本框架只是提供代码高亮的简单实现,如需实现更高级的设置请修改组件代码 -::: \ No newline at end of file diff --git a/docs/zh/components/icon-select.md b/docs/zh/components/icon-select.md deleted file mode 100644 index c44e6c8f..00000000 --- a/docs/zh/components/icon-select.md +++ /dev/null @@ -1,12 +0,0 @@ -# 图标 - 选择器 - -## 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| value | 绑定的值,可以使用 v-model | 非 | String | | | -| placeholder | 占位符,显示在未选择之前的按钮和输入框中 | 非 | String | | 请选择 | -| placement | 界面探出方向 | 非 | String | 同 Popover 组件 placement 参数 | right | -| clearable | 是否允许清空 | 非 | Boolean | | true | -| userInput | 是否允许用户自由输入 | 非 | Boolean | | false | -| autoClose | 是否在选择后自动关闭 | 非 | Boolean | | true | \ No newline at end of file diff --git a/docs/zh/components/icon-svg.md b/docs/zh/components/icon-svg.md deleted file mode 100644 index 2bbdd0d5..00000000 --- a/docs/zh/components/icon-svg.md +++ /dev/null @@ -1,34 +0,0 @@ -# 图标 - SVG - -## 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| name | 图标名称 | 非 | String | src/assets/icons/svg 中 .svg 文件名 | 空 | - -## 使用方法 - -首先将下载的 .svg 图标放入 `src/assets/icons/svg` 文件夹下 - -然后使用组件 - -``` vue - -``` - -## 获取已经注册的所有图标 - -你已经发现了,只需要将图标文件放入项目中就会自动注册 - -这是因为已经对 `webpack` 和 `svg-sprite-loader` 进行了相关设置,`src/assets/icons/svg` 文件夹中的图标会自动注册到项目中,文件全部打包成 svg-sprite,名称注册到 `Vue.$IconSvg` 属性中 - -所以如果你需要检查项目中已经注册的所有图标,可以通过如下方式 - -``` js -// 在 vue 单文件组件中 -console.log(this.$IconSvg) -``` - -## 参考 - -演示图标来源 [iconfont.cn @龙正昆《常用的50个4px双色图标库》](http://iconfont.cn/collections/detail?spm=a313x.7781069.1998910419.d9df05512&cid=4878) \ No newline at end of file diff --git a/docs/zh/components/icon.md b/docs/zh/components/icon.md deleted file mode 100644 index aae2eab4..00000000 --- a/docs/zh/components/icon.md +++ /dev/null @@ -1,41 +0,0 @@ -# 图标 - -## 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| name | 图标名称 | 非 | String | font-awesome 所有图标名 | font-awesome | - -## 使用方法 - -基本 - -``` vue -// 这样用没有毛病 但是也没什么用 - - -// 指定图标名称 - - -// 设置行内样式 - - -// 设置 class - -``` - -这个组件只是简化了写法而已 - -``` vue - -// 等同于 - -``` - -## 参考 - -图标索引 - -[Font Awesome 中文网](http://www.fontawesome.com.cn/faicons/) - -[fontawesome.com](https://fontawesome.com/icons?d=gallery) \ No newline at end of file diff --git a/docs/zh/components/image/baiduyun.png.REMOVED.git-id b/docs/zh/components/image/baiduyun.png.REMOVED.git-id deleted file mode 100644 index b72710d1..00000000 --- a/docs/zh/components/image/baiduyun.png.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -3a5bb0f2628d9251bbe7474c0535258784cf770b \ No newline at end of file diff --git a/docs/zh/components/markdown.md b/docs/zh/components/markdown.md deleted file mode 100644 index cb8af8b1..00000000 --- a/docs/zh/components/markdown.md +++ /dev/null @@ -1,88 +0,0 @@ -# markdown 渲染器 - -## 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| url | markdown文件地址 | 非 | String | | 无 | -| source | markdown内容 | 非 | String | | 无 | -| highlight | 代码高亮 | 非 | Boolean | | false | -| baidupan | 百度网盘分享链接显示优化 | 非 | Boolean | | true | - -## 使用方法 - -加载一个.md文件 - -``` vue - -``` - -加载资源 - -```vue - - - -``` - -D2Admin 已经帮你配置好 webpack,你可以使用以下方式加载 markdown 文件 - -```vue - - - -``` - -## 百度网盘分享链接优化 - -当书写类似下面的分享链接时 - -::: tip -需要 `baidupan = true` -::: - -``` -普通分享链接 - -> https://pan.baidu.com/s/1kW6uUwB - -私密分享链接 - -> 链接: https://pan.baidu.com/s/1ggFW21l 密码: 877y -``` - -markdown 中引用部分的文本由于被识别为百度云的分享链接,所以不会被当做 `blockquote` 渲染(非百度云链接的引用行不会改变),会以一种特别的块来显示,效果见下 - -![效果](./image/baiduyun.png) - -::: tip -了解 D2Admin 是如何在 markdown 中匹配百度云链接的? [查看源码](https://github.com/d2-projects/d2-admin/blob/master/src/components/core/d2-markdown/index.vue) -::: \ No newline at end of file diff --git a/docs/zh/guide/change-log.md b/docs/zh/guide/change-log.md deleted file mode 100644 index ae6eb9ad..00000000 --- a/docs/zh/guide/change-log.md +++ /dev/null @@ -1,129 +0,0 @@ -# 更新日志 - -## v1.1.8 - -* [ 新增 ] 增加了错误收集和日志收集功能 -* [ 新增 ] 增加了一个表格示例页面 -* [ 修改 ] bug 修复 - -## v1.1.7 - -* [ 修改 ] 多标签页右键菜单 bug 修复 - -## v1.1.6 - -* [ 新增 ] 新增加了多页控制组件 tab 按钮上的右键操作菜单,现在你可以在 D2Admin 中像使用浏览器一样操作多标签页 - -## v1.1.5 - -* [ 修改 ] vue-cli3 项目重构,目录调整 -* [ 修改 ] 全局状态管理设计优化 -* [ 修改 ] 多标签页操作全部转移至 vuex -* [ 修改 ] 修复了多标签页无法清除缓存的 bug -* [ 修改 ] bug fixed [#38](https://github.com/d2-projects/d2-admin/issues/38) -* [ 修改 ] bug fixed [#41](https://github.com/d2-projects/d2-admin/issues/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 -* [ 新增 ] 侧边栏折叠状态现在会根据用户区分记录,刷新页面保留之前的状态 - -## v1.1.4 - -* [ 修改 ] 全局状态管理设计优化 -* [ 修改 ] 主题调优 -* [ 新增 ] playground 模块,方便测试和展示一些功能实现方式/调用方法 -* [ 新增 ] 灰度模式 -* [ 新增 ] 多页模式 -* [ 新增 ] 多页模式缓存 -* [ 新增 ] 多页模式快速关闭(关闭左侧 右侧 全部 其它) -* [ 修改 ] 侧边栏滚动优化 -* [ 新增 ] `d2-container` 填充模式自定义滚动条 -* [ 新增 ] `d2-container` 组件卡片和隐形模式自定义滚动条 -* [ 新增 ] 现在页面标题可以根据路由做出对应变化了 -* [ 新增 ] 版本检查机制 -* [ 新增 ] `d2-container` 隐形模式支持 header 插槽 -* [ 新增 ] 版本检查可以设置为不显示提示框 -* [ 新增 ] 集成 json 查看组件 -* [ 新增 ] 添加了所有图表种类的演示页面 -* [ 修改 ] 修改布局方式,解决了在 Firefox 上 better-scroll 初始化拿不到正确高度的 bug -* [ 新增 ] 右上角显示用户名,用户名持久存储 - -## v1.1.3 - -* [ 修复 ] 侧边栏在折叠时不显示的 bug -* [ 新增 ] v-charts 插件 -* [ 新增 ] 一些演示图表(后续打算把 v-charts 文档上有示例性的演示都展示一下) -* [ 修改 ] D2Admin 经典主题颜色调整 -* [ 新增 ] violet 主题 -* [ 新增 ] 菜单图标 -* [ 修改 ] 新制作了 Fork me 图片 - -## v1.1.2 - -* [ 修改 ] 删除了 G2 相关的依赖 - -## v1.1.1 - -* [ 修改 ] 删除了 G2 相关的代码(移除图表库) -* [ 优化 ] 侧边栏取值逻辑 - -## v1.1.0 - -* [ 修改 ] 顶栏和侧边栏菜单新的结构生成方式,新的方案使用 数据 + 递归组件 实现无限制多级菜单 -* [ 修改 ] 路由注册回归最简单的写法 -* [ 修复 ] 首次加载 loading 样式类名和程序内类名冲突,新的加载类名使用 d2-app-loading 前缀 -* [ 修改 ] 所有类似 dd- 的样式前缀(包括自动注册图标的id前缀)统一改为 d2- -* [ 修复 ] 修复 d2-highlight 组件和 d2-markdown 组件的样式冲突 -* [ 修改 ] 内置组件名称统一改为 d2- 前缀,统一使用横线连接 (kebab-case) 风格 -* [ 修改 ] 顶栏 logo 阴影删除 -* [ 新增 ] 主题系统 -* [ 新增 ] 三个主题,分别为 d2admin 经典,简约线条,流星 -* [ 修改 ] d2-markdown 组件 md 参数改名为 source -* [ 修改 ] 删除了 d2-markdown 组件中图片的白色背景 -* [ 修改 ] 删除 timeago 插件,更换为更强大的 dayjs -* [ 新增 ] Tomorrow Night Blue 主题 -* [ 修改 ] src/assets/style/public-class.scss 写法优化 -* [ 新增 ] [vue-bigdata-table](https://github.com/lison16/vue-bigdata-table)组件 -* [ 修复 ] 侧边栏内容超过一屏后显示错误 -* [ 新增 ] 自定义滚动条演示页面 -* [ 新增 ] 流星主题新增背景图片上层的半透明遮罩 -* [ 修复 ] 主题设置失效bug -* [ 修复 ] router守卫验证登陆部分代码修改 -* [ 修复 ] d2-container 组件改为同步注册(之前的异步注册会有 mounted 生命周期问题,即 slot 内的页面在 mounted 生命周期内拿不到 dom) -* [ 修复 ] d2-container 组件重构 flex 布局 -* [ 新增 ] 404 page -* [ 新增 ] 顶栏联系方式 -* [ 新增 ] 右键菜单组件 -* [ 新增 ] 菜单配置支持空菜单(项目开发的时候有可能需要先把菜单做好查看效果) -* [ 优化 ] 页面左侧菜单滚动条优化 -* [ 修复 ] CSS 边距工具类都加上了 `!important` 来保证在覆盖样式时生效 -* [ 修复 ] IE11 兼容性修复 - -## v1.0.0 - -[https://github.com/d2-projects/d2-admin/releases/tag/v1.0.0](https://github.com/d2-projects/d2-admin/releases/tag/v1.0.0) - -这是第一个版本,还有一点小问题,但是已经可用 \ No newline at end of file diff --git a/docs/zh/guide/image/join@2x.png.REMOVED.git-id b/docs/zh/guide/image/join@2x.png.REMOVED.git-id deleted file mode 100644 index 597c865a..00000000 --- a/docs/zh/guide/image/join@2x.png.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -f7a47389e6c0773e9d218227678ebb8850ea87e8 \ No newline at end of file diff --git a/docs/zh/guide/image/preview@2x.png.REMOVED.git-id b/docs/zh/guide/image/preview@2x.png.REMOVED.git-id deleted file mode 100644 index 7b05e991..00000000 --- a/docs/zh/guide/image/preview@2x.png.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -27e431bd9e4752dd51fe827a1281d606bd7bdf07 \ No newline at end of file diff --git a/docs/zh/guide/plagiarize.md b/docs/zh/guide/plagiarize.md deleted file mode 100644 index 28c4a3db..00000000 --- a/docs/zh/guide/plagiarize.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -sidebarDepth: 3 ---- - -# 借鉴 D2Admin 的项目 - -以下开源项目中借鉴了 D2Admin 代码。 - -本页面不明确指出哪些是借鉴哪些是抄袭,由读者自行判断。 - -本页面作用是指明哪些东西是 D2Admin 原创的,避免大家看到和其它项目有类似设计时发生误会以为 D2 抄袭他人(误会发生过)。 - -::: tip -图片右键在新标签页打开查看大图 -::: - -**此页面截图都会标注日期,只新增,不删除,只代表当时日期的状态** - -## nx-admin - -[https://github.com/mgbq/nx-admin](https://github.com/mgbq/nx-admin) - -### 2018年7月29日 - -* 项目首页已经放置 D2Admin 链接 - -| D2Admin | nx-admin | -| --- | --- | -| ![](http://fairyever.qiniudn.com/20180727103812.png) | ![](http://fairyever.qiniudn.com/20180727103329.png) | -| ![](http://fairyever.qiniudn.com/20180727103923.png) | ![](http://fairyever.qiniudn.com/20180727103931.png) | -| ![](http://fairyever.qiniudn.com/20180727104208.png) | ![](http://fairyever.qiniudn.com/20180727104213.png) | -| ![](http://fairyever.qiniudn.com/20180727104225.png) | ![](http://fairyever.qiniudn.com/20180727104232.png) | -| ![](http://fairyever.qiniudn.com/20180727104240.png) | ![](http://fairyever.qiniudn.com/20180727104245.png) | -| ![](http://fairyever.qiniudn.com/20180729104137.png) | ![](http://fairyever.qiniudn.com/20180729104152.png) | - -## avue - -[https://github.com/nmxiaowei/avue](https://github.com/nmxiaowei/avue) - -### 2018年7月29日 - -* 项目首页已经放置 D2Admin 链接 - -| D2Admin | avue | -| --- | --- | -| ![](http://fairyever.qiniudn.com/20180729105741.png) | ![](http://fairyever.qiniudn.com/20180729105748.png) | -| ![](http://fairyever.qiniudn.com/20180729110207.png) | ![](http://fairyever.qiniudn.com/20180729110231.png) | -| ![](http://fairyever.qiniudn.com/20180729105822.png) | ![](http://fairyever.qiniudn.com/20180729105839.png) | -| ![](http://fairyever.qiniudn.com/20180729105855.png) | ![](http://fairyever.qiniudn.com/20180729105908.png) | diff --git a/docs/zh/guide/question.md.REMOVED.git-id b/docs/zh/guide/question.md.REMOVED.git-id deleted file mode 100644 index c1c50c28..00000000 --- a/docs/zh/guide/question.md.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -532775ff4f2aa6aa090e14f5d53c5d59bd7d960e \ No newline at end of file diff --git a/docs/zh/guide/README.md b/docs/zh/learn-guide/README.md similarity index 95% rename from docs/zh/guide/README.md rename to docs/zh/learn-guide/README.md index 5260c360..44bfcf70 100644 --- a/docs/zh/guide/README.md +++ b/docs/zh/learn-guide/README.md @@ -23,23 +23,13 @@ D2Admin 是一个开源的管理系统前端集成方案 [码云仓库](https://gitee.com/fairyever/d2-admin-start-kit) | [预览地址](https://fairyever.gitee.io/d2-admin-start-kit-preview/#/index) -![preview](./image/preview@2x.png) - D2Admin 完整版集成了很多的插件和组件,首次加载会占用很多的时间,所以加入了首屏加载动画。 如果您欣赏 D2Admin 的设计风格,希望基于它开发您的管理系统,**建议使用 [d2-admin-start-kit 简化模板](https://github.com/d2-projects/d2-admin-start-kit)**,简化版模板保留了所有的系统功能,包括登陆注销,主题切换,图标,数据持久化等。其它不必要的组件和插件您可以参照 D2Admin 完整版自行加入。 如果您执意在完整版基础上开发,请您在发布之前一定要删除没有用到的代码,比如项目没有用到图表、示例、插件组件。 -D2Admin 是完全开源免费的管理系统集成方案,由 [FairyEver](https://github.com/FairyEver) 工作之余完完成(希望您看到这里,可以移步 [Github](https://github.com/d2-projects/d2-admin) 点个 star 支持我),如果你也一样喜欢前端开发,欢迎加入我们的讨论/学习群,群内可以`提问答疑`,`分享学习资料`。 - -![preview](./image/join@2x.png) - -::: tip Thanks -D2Admin 创建于2018年1月14日零点51分,四个月后在2018年5月26日正式发布,39天时间 star 突破 1k ,在此对所有的 D2Admin 支持者表示感谢,项目将会保持更新,如果你有想法、建议、或者问题欢迎加群讨论 - -—— 2018年7月5日 -::: +D2Admin 是完全开源免费的管理系统集成方案,由 [FairyEver](https://github.com/FairyEver) 工作之余完完成(希望您看到这里,可以移步 [Github](https://github.com/d2-projects/d2-admin) 点个 star 支持我)。 ## 功能 @@ -153,4 +143,14 @@ npm run dev npm run build ``` -> 如果上述步骤出现错误,建议您升级 node 版本 > 8,如果有其它疑问请参考[常见问题](/zh/guide/question.html) \ No newline at end of file +> 如果上述步骤出现错误,建议您升级 node 版本 > 8,如果有其它疑问请参考[常见问题](/zh/guide/question.html) + +## Thanks + +D2Admin 创建于2018年1月14日零点51分,四个月后在2018年5月26日正式发布,39天时间 star 突破 1k ,在此对所有的 D2Admin 支持者表示感谢,项目将会保持更新,如果你有想法、建议、或者问题欢迎加群讨论 + +—— 2018年7月5日 + +star 破 2k + +—— 2018年8月7日 \ No newline at end of file diff --git a/docs/zh/guide/getting-started.md b/docs/zh/learn-guide/getting-started.md similarity index 100% rename from docs/zh/guide/getting-started.md rename to docs/zh/learn-guide/getting-started.md diff --git a/docs/zh/learn-knowledge/README.md b/docs/zh/learn-knowledge/README.md new file mode 100644 index 00000000..6b7d4e47 --- /dev/null +++ b/docs/zh/learn-knowledge/README.md @@ -0,0 +1,15 @@ +--- +sidebar: auto +--- + +# 相关知识 + +介绍开发所需要的知识 + +## CSS + +## SCSS + +## JavaScript + +## webpack \ No newline at end of file diff --git a/docs/zh/others/README.md b/docs/zh/others/README.md deleted file mode 100644 index 7fd6cd21..00000000 --- a/docs/zh/others/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# 其它 - -这里主要是介绍一些其它的信息 \ No newline at end of file diff --git a/docs/zh/others/css.md b/docs/zh/others/css.md deleted file mode 100644 index 1ca48b9a..00000000 --- a/docs/zh/others/css.md +++ /dev/null @@ -1,103 +0,0 @@ -# CSS 工具类 - -## 样式 - -| 类名 | 效果 | -| --- | --- | -| `.d2-card` | 将该 class 添加至 el-card 组件上使其有跟随主题变化的样式 | - -`.d2-card` 示例 - -``` vue - - - body - - -``` - -## 文字 - -| 类名 | 效果 | -| --- | --- | -| `.d2-text-center` | 文字水平居中 | - -## 浮动 - -| 类名 | 效果 | -| --- | --- | -| `.d2-fl` | 左浮动 | -| `.d2-fr` | 右浮动 | -| `.d2-clearfix` | 清除浮动 | - -## 边距 - -| 类名 | 效果 | -| --- | --- | -| `.d2-m-0` | 外边距 0px | -| `.d2-mt-0` | 上外边距 0px | -| `.d2-mr-0` | 右外边距 0px | -| `.d2-mb-0` | 下外边距 0px | -| `.d2-ml-0` | 左外边距 0px | -| `.d2-p-0` | 内边距 0px | -| `.d2-pt-0` | 上内边距 0px | -| `.d2-pr-0` | 右内边距 0px | -| `.d2-pb-0` | 下内边距 0px | -| `.d2-pl-0` | 左内边距 0px | -| `.d2-m-5` | 外边距 5px | -| `.d2-mt-5` | 上外边距 5px | -| `.d2-mr-5` | 右外边距 5px | -| `.d2-mb-5` | 下外边距 5px | -| `.d2-ml-5` | 左外边距 5px | -| `.d2-p-5` | 内边距 5px | -| `.d2-pt-5` | 上内边距 5px | -| `.d2-pr-5` | 右内边距 5px | -| `.d2-pb-5` | 下内边距 5px | -| `.d2-pl-5` | 左内边距 5px | -| `.d2-m-10` | 外边距 10px | -| `.d2-mt-10` | 上外边距 10px | -| `.d2-mr-10` | 右外边距 10px | -| `.d2-mb-10` | 下外边距 10px | -| `.d2-ml-10` | 左外边距 10px | -| `.d2-p-10` | 内边距 10px | -| `.d2-pt-10` | 上内边距 10px | -| `.d2-pr-10` | 右内边距 10px | -| `.d2-pb-10` | 下内边距 10px | -| `.d2-pl-10` | 左内边距 10px | -| `.d2-m-15` | 外边距 15px | -| `.d2-mt-15` | 上外边距 15px | -| `.d2-mr-15` | 右外边距 15px | -| `.d2-mb-15` | 下外边距 15px | -| `.d2-ml-15` | 左外边距 15px | -| `.d2-p-15` | 内边距 15px | -| `.d2-pt-15` | 上内边距 15px | -| `.d2-pr-15` | 右内边距 15px | -| `.d2-pb-15` | 下内边距 15px | -| `.d2-pl-15` | 左内边距 15px | -| `.d2-m-20` | 外边距 20px | -| `.d2-mt-20` | 上外边距 20px | -| `.d2-mr-20` | 右外边距 20px | -| `.d2-mb-20` | 下外边距 20px | -| `.d2-ml-20` | 左外边距 20px | -| `.d2-p-20` | 内边距 20px | -| `.d2-pt-20` | 上内边距 20px | -| `.d2-pr-20` | 右内边距 20px | -| `.d2-pb-20` | 下内边距 20px | -| `.d2-pl-20` | 左内边距 20px | - -## 边距简写 - -20px 设定为通用边距 可以如下简写 - -| 类名 | 效果 | -| --- | --- | -| `.d2-m` | 外边距 20px | -| `.d2-mt` | 上外边距 20px | -| `.d2-mr` | 右外边距 20px | -| `.d2-mb` | 下外边距 20px | -| `.d2-ml` | 左外边距 20px | -| `.d2-p` | 内边距 20px | -| `.d2-pt` | 上内边距 20px | -| `.d2-pr` | 右内边距 20px | -| `.d2-pb` | 下内边距 20px | -| `.d2-pl` | 左内边距 20px | \ No newline at end of file diff --git a/docs/zh/plugins/README.md b/docs/zh/plugins/README.md deleted file mode 100644 index d5688fce..00000000 --- a/docs/zh/plugins/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 插件概述 - -d2-admin(以下简称 d2admin)封装(或者集成第三方)了一些插件,方便开发者进行开发,具体组件文档请从左侧列表进入 - -::: tip -这里只列出一部分需要特别说明的插件,大部分集成的插件都可以在网络上找到官方文档 -::: \ No newline at end of file diff --git a/docs/zh/plugins/data-export.md b/docs/zh/plugins/data-export.md deleted file mode 100644 index 5ebc9b91..00000000 --- a/docs/zh/plugins/data-export.md +++ /dev/null @@ -1,148 +0,0 @@ -# 表格导出 - -本框架集成了数据导出功能,并包装成插件 - -## 注册插件 - -``` js -import pluginExport from '@/plugin/export' -Vue.use(pluginExport) -``` - -之后就可以在组件中使用 `this.$export` 来调用导出功能 - -::: tip -d2admin 已经帮你注册好,可以直接使用,无需写上面的代码 -::: - -## 导出 csv - -此方法将数据以 `csv` 格式导出,并且返回一个 `Promise` 对象 - -使用 - -``` js -this.$export.csv({ - columns, - data -}) - .then(() => { - // ...可选回调 - }) -``` - -参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| columns | 列 | 非 | Array | | 空数组 | -| data | 行数据 | 非 | Array | | 空数组 | -| title | 文件名 | 非 | String | | table | -| noHeader | 不导出表头 | 非 | Boolean | | false | -| separator | 数据分隔符 | 非 | String | | , | -| quoted | 每项数据是否加引号 | 非 | Boolean | | false | - -示例 - -``` js -const columns = [ - { - label: '姓名', - prop: 'name' - }, - { - label: '年龄', - prop: 'age' - } -] -const data = [ - { - name: 'lucy', - age: 24 - }, - { - name: 'bob', - age: 26 - } -] -this.$export.csv({ - columns, - data -}) -``` - -## 导出 xlsx - -此方法将数据以 `xlsx` 格式导出,并且返回一个 `Promise` 对象 - -使用 - -``` js -this.$export.excel({ - columns, - data -}) - .then(() => { - // ...可选回调 - }) -``` - -参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| columns | 列 | 非 | Array | | 空数组 | -| data | 行数据 | 非 | Array | | 空数组 | -| title | 文件名 | 非 | String | | table | - -示例 - -``` js -const columns = [ - { - label: '姓名', - prop: 'name' - }, - { - label: '年龄', - prop: 'age' - } -] -const data = [ - { - name: 'lucy', - age: 24 - }, - { - name: 'bob', - age: 26 - } -] -this.$export.excel({ - columns, - data -}) -``` - -## 导出 txt - -此方法将数据以 `txt` 格式导出,并且返回一个 `Promise` 对象 - -使用 - -``` js -this.$export.txt({ - text: '文本内容', - title: '文件名' -}) - .then(() => { - // ...可选回调 - }) -``` - -参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| text | 文件内容 | 非 | String | | 空 | -| title | 文件名 | 非 | String | | 文本 | diff --git a/docs/zh/plugins/data-import.md b/docs/zh/plugins/data-import.md deleted file mode 100644 index 817abefe..00000000 --- a/docs/zh/plugins/data-import.md +++ /dev/null @@ -1,64 +0,0 @@ -# 表格导入 - -本框架集成了数据导入功能,并包装成插件 - -## 注册插件 - -``` js -import pluginImport from '@/plugin/import' -Vue.use(pluginImport) -``` - -之后就可以在组件中使用 `this.$import` 来调用导出功能 - -::: tip -d2admin 已经帮你注册好,可以直接使用,无需写上面的代码 -::: - -## 导入 csv - -导入csv文件,并且返回一个 `Promise` 对象 - -``` js -// 在选择文件后调用 -handleUpload (file) { - this.$import.csv(file) - .then(res => { - this.table.columns = Object.keys(res.data[0]).map(e => ({ - label: e, - prop: e - })) - this.table.data = res.data - }) - // 阻止默认的上传 - return false -} -``` - -## 导入 xlsx - -导入xlsx文件,并且返回一个 `Promise` 对象 - -**注意 导入的表格文件第一行应为表头** - -参考下述示例使用 - -``` js -// 在选择文件后调用 -handleUpload (file) { - this.$import.xlsx(file) - .then(({header, results}) => { - // header 为表头 - // results 为内容 - this.table.columns = header.map(e => { - return { - label: e, - prop: e - } - }) - this.table.data = results - }) - // 阻止默认的上传 - return false -} -``` \ No newline at end of file diff --git a/docs/zh/plugins/i18n.md b/docs/zh/plugins/i18n.md deleted file mode 100644 index 12e2522a..00000000 --- a/docs/zh/plugins/i18n.md +++ /dev/null @@ -1,124 +0,0 @@ -# 多国语 - -多国语插件 - -::: tip -此文档仅限于演示如何在 `D2Admin` 中使用多国语言设置 -::: - -公用的语言设置建议放在 `src/i18n` 下 - -i18n 文件夹结构如下所示 - -``` -|__index.js // 主文件 -|__lang // 语言配置文件夹 -| |__cn // 中文 -| | |__index.js // 中文 公用配置 -| |__ja // 日语 -| | |__index.js // 日语 公用配置 -| |__en // 英语 -| | |__index.js // 英语 公用配置 -``` - -在 `src/i18n/index.js` 中导入同级lang文件夹内的语言设置,并导出一个新的 `VueI18n` 实例供 `main.js` 使用 - -``` js -import i18n from './i18n' -new Vue({ - el: '#app', - store, - i18n, // 使用 i18n - router, - template: '', - components: { App } -}) -``` - -## 使用 - -使用 `$t('路径')` - -``` vue - - -``` - -## 局部配置 - -有时候我们只希望在某个文件中配置这个组件的多国语言,如果所有的语言设置都放在 `d2-admin/src/i18n` 中会造成混乱,不易维护 - -`D2Admin` 已经替你安装好了 `vue-i18n-loader`,可以方便地在单文件组件中使用 - -示例 - -``` vue - - - - - -``` - -在同一文件夹下的 `lang.json` - -``` json -{ - "cn": { - "hello": "你好", - "check": { - "title": "请选择", - "label": { - "Beijing": "北京", - "Tokyo": "东京", - "NewYork": "纽约" - } - } - }, - "en": { - "hello": "hello", - "check": { - "title": "Please choose", - "label": { - "Beijing": "Beijing", - "Tokyo": "Tokyo", - "NewYork": "NewYork" - } - } - }, - "ja": { - "hello": "こんにちは", - "check": { - "title": "選択してください", - "label": { - "Beijing": "北京", - "Tokyo": "東京", - "NewYork": "ニューヨーク" - } - } - } -} -``` - -详细教程请查看官方文档,见此页右上角的链接 \ No newline at end of file diff --git a/docs/zh/plugins/mock.md b/docs/zh/plugins/mock.md deleted file mode 100644 index edb33169..00000000 --- a/docs/zh/plugins/mock.md +++ /dev/null @@ -1,221 +0,0 @@ -# 模拟数据 - -在 `src/mock/demo/001.js` 配置拦截返回的数据 - -## 使用 - -``` js -import Mock from 'mockjs' - -Mock.mock('/api/demo/001', { - 'list|4-10': [{ - 'id|+1': 1, - 'name': '@CNAME', - 'star|1-5': '★', - 'delFlag|1': [0, 1], - 'creatDate': '@DATE', - 'address': '@CITY', - 'zip': '@ZIP' - }] -}) -``` - -请求数据 - -``` js -ajax () { - this.$axios.get('/api/demo/001') - .then(res => { - this.table.columns = Object.keys(res.data.list[0]).map(e => ({ - label: e, - prop: e - })) - this.table.data = res.data.list - }) -} -``` - -## mock 语法规范 - -Mock.js 的语法规范包括两部分: - -1. 数据模板定义规范(Data Template Definition,DTD) -2. 数据占位符定义规范(Data Placeholder Definition,DPD) - -### 数据模板定义规范 DTD - -**数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值:** - -``` js -// 属性名 name -// 生成规则 rule -// 属性值 value -'name|rule': value -``` - -**注意:** - -* _属性名_ 和 _生成规则_ 之间用竖线 `|` 分隔。 -* _生成规则_ 是可选的。 -* _生成规则_ 有 7 种格式: - 1. `'name|min-max': value` - 1. `'name|count': value` - 1. `'name|min-max.dmin-dmax': value` - 1. `'name|min-max.dcount': value` - 1. `'name|count.dmin-dmax': value` - 1. `'name|count.dcount': value` - 1. `'name|+step': value` -* **_生成规则_ 的 含义 需要依赖 _属性值的类型_ 才能确定。** -* _属性值_ 中可以含有 `@占位符`。 -* _属性值_ 还指定了最终值的初始值和类型。 - - - -**生成规则和示例:** - -#### 1. 属性值是字符串 **String** - -1. `'name|min-max': string` - - 通过重复 `string` 生成一个字符串,重复次数大于等于 `min`,小于等于 `max`。 - -2. `'name|count': string` - - 通过重复 `string` 生成一个字符串,重复次数等于 `count`。 - -#### 2. 属性值是数字 **Number** - -1. `'name|+1': number` - - 属性值自动加 1,初始值为 `number`。 - -2. `'name|min-max': number` - - 生成一个大于等于 `min`、小于等于 `max` 的整数,属性值 `number` 只是用来确定类型。 - -3. `'name|min-max.dmin-dmax': number` - - 生成一个浮点数,整数部分大于等于 `min`、小于等于 `max`,小数部分保留 `dmin` 到 `dmax` 位。 - -``` js -Mock.mock({ - 'number1|1-100.1-10': 1, - 'number2|123.1-10': 1, - 'number3|123.3': 1, - 'number4|123.10': 1.123 -}) -// => -{ - "number1": 12.92, - "number2": 123.51, - "number3": 123.777, - "number4": 123.1231091814 -} -``` - -#### 3. 属性值是布尔型 **Boolean** - -1. `'name|1': boolean` - - 随机生成一个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2。 - -2. `'name|min-max': value` - - 随机生成一个布尔值,值为 `value` 的概率是 `min / (min + max)`,值为 `!value` 的概率是 `max / (min + max)`。 - -#### 4. 属性值是对象 **Object** - -1. `'name|count': object` - - 从属性值 `object` 中随机选取 `count` 个属性。 - -2. `'name|min-max': object` - - 从属性值 `object` 中随机选取 `min` 到 `max` 个属性。 - -#### 5. 属性值是数组 **Array** - -1. `'name|1': array` - - 从属性值 `array` 中随机选取 1 个元素,作为最终值。 - -2. `'name|+1': array` - - 从属性值 `array` 中顺序选取 1 个元素,作为最终值。 - -3. `'name|min-max': array` - - 通过重复属性值 `array` 生成一个新数组,重复次数大于等于 `min`,小于等于 `max`。 - -4. `'name|count': array` - - 通过重复属性值 `array` 生成一个新数组,重复次数为 `count`。 - -#### 6. 属性值是函数 **Function** - -1. `'name': function` - - 执行函数 `function`,取其返回值作为最终的属性值,函数的上下文为属性 `'name'` 所在的对象。 - -#### 7. 属性值是正则表达式 **RegExp** - -1. `'name': regexp` - - 根据正则表达式 `regexp` 反向生成可以匹配它的字符串。用于生成自定义格式的字符串。 - - ``` js - Mock.mock({ - 'regexp1': /[a-z][A-Z][0-9]/, - 'regexp2': /\w\W\s\S\d\D/, - 'regexp3': /\d{5,10}/ - }) - // => - { - "regexp1": "pJ7", - "regexp2": "F)\fp1G", - "regexp3": "561659409" - } - ``` - -### 数据占位符定义规范 DPD - -_占位符_ 只是在属性值字符串中占个位置,并不出现在最终的属性值中。 - -_占位符_ 的格式为: - -``` -@占位符 -@占位符(参数 [, 参数]) -``` - -**注意:** - -1. 用 `@` 来标识其后的字符串是 _占位符_。 -2. _占位符_ 引用的是 `Mock.Random` 中的方法。 -3. 通过 `Mock.Random.extend()` 来扩展自定义占位符。 -4. _占位符_ 也可以引用 _数据模板_ 中的属性。 -5. _占位符_ 会优先引用 _数据模板_ 中的属性。 -6. _占位符_ 支持 _相对路径_ 和 _绝对路径_。 - -``` js -Mock.mock({ - name: { - first: '@FIRST', - middle: '@FIRST', - last: '@LAST', - full: '@first @middle @last' - } -}) -// => -{ - "name": { - "first": "Charles", - "middle": "Brenda", - "last": "Lopez", - "full": "Charles Brenda Lopez" - } -} -``` - - - diff --git a/docs/zh/plugins/util.md b/docs/zh/plugins/util.md deleted file mode 100644 index ea87b939..00000000 --- a/docs/zh/plugins/util.md +++ /dev/null @@ -1,187 +0,0 @@ -# Util 实用工具 - -::: tip -此文档已经不对应最新版本的代码,文档会在稍后完善 -::: - -D2Admin 的 util 模块位置:`d2-admin/src/libs/util.js` - -下面列举您在开发中很有可能会用到的 util 模块方法。这并不是模块的全部内容,如果您有兴趣可以亲自浏览模块代码。 - -## util.cookies.set - -**介绍:** - -存储 cookie 值 - -**参数** - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| name | 名称 | 必选 | String | | | -| value | 值 | 必选 | String | | | -| setting | 设置 | 必选 | Object | [js-cookie](https://github.com/js-cookie/js-cookie#readme) | `{ expires: 1 }` | - -**使用示例:** - -``` js -util.cookies.set({ - name: 'name', - value: 'value', - setting: { - expires: 365 - } -}) -``` - -**为什么不直接使用 cookie:** - -util.cookies 内部使用 js-cookie 进行操作,并且在 cookie 名称上多做了一层逻辑封装,例如 - -``` js -util.cookies.set({ - name: 'name', - value: 'value', - setting: { - expires: 365 - } -}) -``` - -实际存储的 cookie 是 - -`d2admin-${version}-name` : `value` - -使用 - -``` js -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 时无论赋值还是取值,都觉察不出这层包装 - -::: tip -不止 cookie 这样,db 的存储逻辑也会自动根据版本区分 -::: - -## util.cookies.get - -**介绍:** - -拿到 cookie 值 - -**参数** - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| name | 名称 | 必选 | String | | | - -**使用示例:** - -``` js -const data = util.cookies.get('name') -``` - -## util.cookies.getAll - -**介绍:** - -拿到 cookie 全部的值 - -**参数** - -无 - -**使用示例:** - -``` js -const data = util.cookies.getAll() -``` - -## util.cookies.remove - -**介绍:** - -删除 cookie - -**参数** - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| name | 名称 | 必选 | String | | | - -**使用示例:** - -``` js -util.cookies.remove('name') -``` - -## util.title - -**介绍:** - -更新标题 - -**参数** - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| titleText | title 名称 | 必选 | String | | | - -**使用示例:** - -``` js -util.title('NewTitle') -``` - -结果:**`${process.env.VUE_APP_TITLE}` | NewTitle** - -::: tip -`process.env.VUE_APP_TITLE` 在 `d2-admin/.env` 和 `d2-admin/.env.development` 中设置 -::: - -## util.ua - -**介绍:** - -获取所有的 UA 信息 - -**参数** - -无 - -**使用示例:** - -``` js -const ua = util.ua() -``` - -结果示例 - -``` js -{ - 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: {} -} -``` diff --git a/docs/zh/plugins/vuex.md.REMOVED.git-id b/docs/zh/plugins/vuex.md.REMOVED.git-id deleted file mode 100644 index 4c8311c7..00000000 --- a/docs/zh/plugins/vuex.md.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -250e779feddcc8e47751f1920ce3a49e0997740e \ No newline at end of file From eae8b9291e068cce0d373d22835d78b47ea02c15 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Sun, 19 Aug 2018 11:24:03 +0800 Subject: [PATCH 03/36] no message Former-commit-id: d5c2b85bf62d6c02743adad20c6de71ae556a82d [formerly d5c2b85bf62d6c02743adad20c6de71ae556a82d [formerly d5c2b85bf62d6c02743adad20c6de71ae556a82d [formerly d5c2b85bf62d6c02743adad20c6de71ae556a82d [formerly 074099c4c153f024958d3fda5cf710028e03d10a [formerly e73af225c96eb997a86122fc729dfadcdf846a4e]]]]] Former-commit-id: d84a01a4aca85cd9e3891825ac7a152e12280d4e Former-commit-id: 0412c82e909316b780fdd364ecabc78166c7cc0a Former-commit-id: 9e648fdbc93f347265fed8bb56948adda020e1c9 [formerly 8b530e6e6979a9c25832339725619d9d0c8ce76f] Former-commit-id: c12a2ae03243dd387e8c1d6496d6b3bb4148e149 Former-commit-id: 704f81678c7570f204cbe089e7497055c27e1328 Former-commit-id: 3879c040dcf291ef0f44745a5e791b360cde0f40 Former-commit-id: 0871c460804ea97eadf60bf3f0eaa8e147f3fb66 Former-commit-id: 188dd73a6cf49ecbf4cdedce1933f5a856c72b6f --- docs/.vuepress/config.js | 70 ++++-- docs/zh/ecosystem-d2-admin-ice/README.md | 7 + .../zh/ecosystem-d2-admin-start-kit/README.md | 7 + docs/zh/ecosystem-d2-crud/README.md | 7 + docs/zh/ecosystem-d2-ribbons/README.md | 7 + docs/zh/learn-guide/getting-started.md | 66 ------ docs/zh/learn-knowledge/README.md | 52 ++++- docs/zh/question/README.md.REMOVED.git-id | 1 + docs/zh/sys-components/README.md | 3 + docs/zh/sys-components/charts-new.md | 13 ++ .../container.md.REMOVED.git-id | 1 + docs/zh/sys-components/count-up.md | 29 +++ docs/zh/sys-components/highlight.md | 22 ++ docs/zh/sys-components/icon-select.md | 12 + docs/zh/sys-components/icon-svg.md | 34 +++ docs/zh/sys-components/icon.md | 41 ++++ .../image/baiduyun.png.REMOVED.git-id | 1 + docs/zh/sys-components/markdown.md | 88 +++++++ docs/zh/sys-css/README.md | 7 + docs/zh/sys-db/README.md | 7 + docs/zh/sys-menu/README.md | 7 + docs/zh/sys-multi-page/README.md | 7 + docs/zh/sys-plugins/README.md | 7 + docs/zh/sys-plugins/data-export.md | 148 ++++++++++++ docs/zh/sys-plugins/data-import.md | 64 +++++ docs/zh/sys-plugins/i18n.md | 124 ++++++++++ docs/zh/sys-plugins/mock.md | 221 ++++++++++++++++++ docs/zh/sys-route/README.md | 7 + docs/zh/sys-theme/README.md | 7 + docs/zh/sys-util/README.md | 7 + docs/zh/sys-vuex/README.md | 7 + 31 files changed, 993 insertions(+), 88 deletions(-) create mode 100644 docs/zh/ecosystem-d2-admin-ice/README.md create mode 100644 docs/zh/ecosystem-d2-admin-start-kit/README.md create mode 100644 docs/zh/ecosystem-d2-crud/README.md create mode 100644 docs/zh/ecosystem-d2-ribbons/README.md create mode 100644 docs/zh/question/README.md.REMOVED.git-id create mode 100644 docs/zh/sys-components/README.md create mode 100644 docs/zh/sys-components/charts-new.md create mode 100644 docs/zh/sys-components/container.md.REMOVED.git-id create mode 100644 docs/zh/sys-components/count-up.md create mode 100644 docs/zh/sys-components/highlight.md create mode 100644 docs/zh/sys-components/icon-select.md create mode 100644 docs/zh/sys-components/icon-svg.md create mode 100644 docs/zh/sys-components/icon.md create mode 100644 docs/zh/sys-components/image/baiduyun.png.REMOVED.git-id create mode 100644 docs/zh/sys-components/markdown.md create mode 100644 docs/zh/sys-css/README.md create mode 100644 docs/zh/sys-db/README.md create mode 100644 docs/zh/sys-menu/README.md create mode 100644 docs/zh/sys-multi-page/README.md create mode 100644 docs/zh/sys-plugins/README.md create mode 100644 docs/zh/sys-plugins/data-export.md create mode 100644 docs/zh/sys-plugins/data-import.md create mode 100644 docs/zh/sys-plugins/i18n.md create mode 100644 docs/zh/sys-plugins/mock.md create mode 100644 docs/zh/sys-route/README.md create mode 100644 docs/zh/sys-theme/README.md create mode 100644 docs/zh/sys-util/README.md create mode 100644 docs/zh/sys-vuex/README.md diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index de41538f..006effbc 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -49,26 +49,27 @@ module.exports = { ] }, { - text: '系统', + text: '系统模块', items: [ - { text: '内置组件', link: '' }, - { text: '插件', link: '' }, - { text: 'vuex', link: '' }, - { text: '菜单', link: '' }, - { text: '路由', link: '' }, - { text: '主题系统', link: '' }, - { text: '数据持久化', link: '' }, - { text: 'CSS 实用类', link: '' }, - { text: 'JS Util', link: '' } + { text: '组件', link: '/zh/sys-components/' }, + { text: '插件', link: '/zh/sys-plugins/' }, + { text: 'vuex', link: '/zh/sys-vuex/' }, + { text: '菜单', link: '/zh/sys-menu/' }, + { text: '路由', link: '/zh/sys-route/' }, + { text: '多页面', link: '/zh/sys-multi-page/' }, + { text: '主题系统', link: '/zh/sys-theme/' }, + { text: '数据持久化', link: '/zh/sys-db/' }, + { text: 'CSS 实用类', link: '/zh/sys-css/' }, + { text: 'JS Util', link: '/zh/sys-util/' } ] }, { text: '生态', items: [ - { text: 'D2 Admin start kit', link: '' }, - { text: 'D2 Admin ICE', link: '' }, - { text: 'D2 CRUD', link: '' }, - { text: 'D2 Ribbons', link: '' } + { text: 'D2 Admin start kit', link: '/zh/ecosystem-d2-admin-start-kit/' }, + { text: 'D2 Admin ICE', link: '/zh/ecosystem-d2-admin-ice/' }, + { text: 'D2 CRUD', link: '/zh/ecosystem-d2-crud/' }, + { text: 'D2 Ribbons', link: '/zh/ecosystem-d2-ribbons/' } ] }, { @@ -84,15 +85,18 @@ module.exports = { { text: 'CSDN', link: '' }, { text: 'segmentfault', link: '' }, { text: '知乎', link: '' }, - { text: '微信公众号', link: '' } + { text: '微信公众号', link: '' }, + { text: '交流群', link: '' } ] } ] }, - { text: '常见问题', link: '' } + { text: '常见问题', link: '/zh/question/' } ], sidebar: { - '/zh/learn-guide/': sideBarLearnGuide() + '/zh/learn-guide/': sideBarLearnGuide(), + '/zh/sys-components/': sideBarSysComponents(), + '/zh/sys-plugins/': sideBarSysPlugins() } } } @@ -109,4 +113,36 @@ function sideBarLearnGuide () { ] } ] +} + +function sideBarSysComponents () { + return [ + { + collapsable: false, + children: [ + 'container', + 'icon', + 'icon-svg', + 'icon-select', + 'charts-new', + 'markdown', + 'highlight', + 'count-up' + ] + } + ] +} + +function sideBarSysPlugins () { + return [ + { + collapsable: false, + children: [ + 'data-export', + 'data-import', + 'i18n', + 'mock.md' + ] + } + ] } \ No newline at end of file diff --git a/docs/zh/ecosystem-d2-admin-ice/README.md b/docs/zh/ecosystem-d2-admin-ice/README.md new file mode 100644 index 00000000..4b94ed06 --- /dev/null +++ b/docs/zh/ecosystem-d2-admin-ice/README.md @@ -0,0 +1,7 @@ +--- +sidebar: auto +--- + +# title + +info \ No newline at end of file diff --git a/docs/zh/ecosystem-d2-admin-start-kit/README.md b/docs/zh/ecosystem-d2-admin-start-kit/README.md new file mode 100644 index 00000000..4b94ed06 --- /dev/null +++ b/docs/zh/ecosystem-d2-admin-start-kit/README.md @@ -0,0 +1,7 @@ +--- +sidebar: auto +--- + +# title + +info \ No newline at end of file diff --git a/docs/zh/ecosystem-d2-crud/README.md b/docs/zh/ecosystem-d2-crud/README.md new file mode 100644 index 00000000..4b94ed06 --- /dev/null +++ b/docs/zh/ecosystem-d2-crud/README.md @@ -0,0 +1,7 @@ +--- +sidebar: auto +--- + +# title + +info \ No newline at end of file diff --git a/docs/zh/ecosystem-d2-ribbons/README.md b/docs/zh/ecosystem-d2-ribbons/README.md new file mode 100644 index 00000000..4b94ed06 --- /dev/null +++ b/docs/zh/ecosystem-d2-ribbons/README.md @@ -0,0 +1,7 @@ +--- +sidebar: auto +--- + +# title + +info \ No newline at end of file diff --git a/docs/zh/learn-guide/getting-started.md b/docs/zh/learn-guide/getting-started.md index b4a51dbe..9dfa1168 100644 --- a/docs/zh/learn-guide/getting-started.md +++ b/docs/zh/learn-guide/getting-started.md @@ -4,28 +4,6 @@ ![](http://fairyever.qiniudn.com/20180729102354.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) -## 前置知识 - -使用 D2Admin 首先组要有以下前置知识: - -* 首先需要熟悉 web 开发基础三样:[HTML CSS JavaScript](http://www.w3school.com.cn/) -* 会使用 [vue.js](https://cn.vuejs.org/) - -如果您了解以下技术,在使用本项目进行您的开发时会更加得心应手: - -* [ES6](http://es6.ruanyifeng.com/) -* [sass](https://www.sass.hk/guide/) - -## 准备 - -在上手之前,建议您先大致浏览以下章节,对整个系统有大致了解: - -* 每个页面最基础的构成部分:[页面容器](../components/container.md) -* 一些会用到的全局数据和方法:[VUEX 实用工具](../plugins/vuex.md) -* 一些会用到的公用方法:[Util 实用工具](../plugins/util.md) - -如果想了解更多 D2Admin 相关的教程和更新文章,可以参阅 [文章](../article/) - ## 下载项目 * 完整版仓库 [Github](https://github.com/d2-projects/d2-admin) | [码云](https://gitee.com/fairyever/d2-admin) @@ -266,47 +244,3 @@ export default [ ![](http://fairyever.qiniudn.com/20180729101708.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) 上述教程只是介绍了 D2Admin 的冰山一角,更多的配置项和组件文档请查阅本文档其它板块。 - -如果您有疑问,请加 QQ 群 **806395827** 反馈。 - -## 资源 - -下面是一些在开发过程会用到的文档,列举在这里方便大家快速查看: - -组件库: - -* [element-ui](http://element.eleme.io/#/zh-CN/component/quickstart) - -项目基础: - -| 名称 | 介绍 | -| --- | --- | -| [vue.js](https://cn.vuejs.org/v2/guide/) | 框架基础 | -| [vuex](https://vuex.vuejs.org/zh/guide/) | 全局状态管理 | -| [vue-router](https://router.vuejs.org/zh/guide/) | 路由控制 | -| [sass](https://www.sass.hk/guide/) | CSS 预处理语言 | - -脚手架: - -| 名称 | 介绍 | -| --- | --- | -| [vue-cli3](https://github.com/vuejs/vue-docs-zh-cn/tree/master/vue-cli) | 项目脚手架 | -| [webpack-chain](https://github.com/mozilla-neutrino/webpack-chain) | vue-cli3 中 webpack 的配置语法 | - -插件: - -| 名称 | 介绍 | -| --- | --- | -| [lodash](https://lodash.com/docs/4.17.10) | 一致性、模块化、高性能的 JavaScript 实用工具库 | -| [axios](https://github.com/axios/axios) | 最流行的网络请求库 | -| [better-scroll](https://github.com/ustbhuangyi/better-scroll) | [d2-container](../components/container.md) 的自定义滚动条依赖 | -| [dayjs](https://github.com/iamkun/dayjs) | 日期处理库 | -| [v-charts](https://v-charts.js.org/#/props) | vue 版本的 echarts 由饿了么开发 | -| [echarts](http://echarts.baidu.com/index.html) | v-charts 的核心 | -| [lowdb](https://github.com/typicode/lowdb) | D2Admin 操作本地数据的依赖 | -| [mockjs](https://github.com/nuysoft/Mock/wiki) | 模拟请求依赖 | -| [vue-i18n](https://kazupon.github.io/vue-i18n/guide/started.html) | 多国语依赖 | -| [vue-grid-layout](https://github.com/jbaysolutions/vue-grid-layout) | 网格布局组件 | -| [vue-splitpane](https://www.npmjs.com/package/vue-splitpane) | 切分布局组件 | - -上面只是一些猜您会用到的链接,还有一些项目中用到但是这里没有列举的,如果您觉得有必要,可以提 pr 修改本篇文档。 \ No newline at end of file diff --git a/docs/zh/learn-knowledge/README.md b/docs/zh/learn-knowledge/README.md index 6b7d4e47..51cf1993 100644 --- a/docs/zh/learn-knowledge/README.md +++ b/docs/zh/learn-knowledge/README.md @@ -4,12 +4,54 @@ sidebar: auto # 相关知识 -介绍开发所需要的知识 +使用 D2Admin 首先组要有以下前置知识: -## CSS +* 首先需要熟悉 web 开发基础三样:[HTML CSS JavaScript](http://www.w3school.com.cn/) +* 会使用 [vue.js](https://cn.vuejs.org/) -## SCSS +如果您了解以下技术,在使用本项目进行您的开发时会更加得心应手: -## JavaScript +* [ES6](http://es6.ruanyifeng.com/) +* [sass](https://www.sass.hk/guide/) -## webpack \ No newline at end of file +## 资源 + +下面是一些在开发过程会用到的文档,列举在这里方便大家快速查看: + +组件库: + +* [element-ui](http://element.eleme.io/#/zh-CN/component/quickstart) + +项目基础: + +| 名称 | 介绍 | +| --- | --- | +| [vue.js](https://cn.vuejs.org/v2/guide/) | 框架基础 | +| [vuex](https://vuex.vuejs.org/zh/guide/) | 全局状态管理 | +| [vue-router](https://router.vuejs.org/zh/guide/) | 路由控制 | +| [sass](https://www.sass.hk/guide/) | CSS 预处理语言 | + +脚手架: + +| 名称 | 介绍 | +| --- | --- | +| [vue-cli3](https://github.com/vuejs/vue-docs-zh-cn/tree/master/vue-cli) | 项目脚手架 | +| [webpack-chain](https://github.com/mozilla-neutrino/webpack-chain) | vue-cli3 中 webpack 的配置语法 | + +插件: + +| 名称 | 介绍 | +| --- | --- | +| [lodash](https://lodash.com/docs/4.17.10) | 一致性、模块化、高性能的 JavaScript 实用工具库 | +| [axios](https://github.com/axios/axios) | 最流行的网络请求库 | +| [better-scroll](https://github.com/ustbhuangyi/better-scroll) | [d2-container](../components/container.md) 的自定义滚动条依赖 | +| [dayjs](https://github.com/iamkun/dayjs) | 日期处理库 | +| [v-charts](https://v-charts.js.org/#/props) | vue 版本的 echarts 由饿了么开发 | +| [echarts](http://echarts.baidu.com/index.html) | v-charts 的核心 | +| [lowdb](https://github.com/typicode/lowdb) | D2Admin 操作本地数据的依赖 | +| [mockjs](https://github.com/nuysoft/Mock/wiki) | 模拟请求依赖 | +| [vue-i18n](https://kazupon.github.io/vue-i18n/guide/started.html) | 多国语依赖 | +| [vue-grid-layout](https://github.com/jbaysolutions/vue-grid-layout) | 网格布局组件 | +| [vue-splitpane](https://www.npmjs.com/package/vue-splitpane) | 切分布局组件 | + +上面只是一些猜您会用到的链接,还有一些项目中用到但是这里没有列举的,如果您觉得有必要,可以提 pr 修改本篇文档。 \ No newline at end of file diff --git a/docs/zh/question/README.md.REMOVED.git-id b/docs/zh/question/README.md.REMOVED.git-id new file mode 100644 index 00000000..8e91321d --- /dev/null +++ b/docs/zh/question/README.md.REMOVED.git-id @@ -0,0 +1 @@ +a25839f07ff223296de4b9330e10b08a04ae28ce \ No newline at end of file diff --git a/docs/zh/sys-components/README.md b/docs/zh/sys-components/README.md new file mode 100644 index 00000000..a890eb4f --- /dev/null +++ b/docs/zh/sys-components/README.md @@ -0,0 +1,3 @@ +# 组件 + +d2-admin(以下简称 d2admin)封装(或者集成第三方)了一些组件,方便开发者进行开发,具体组件文档请从左侧列表进入 \ No newline at end of file diff --git a/docs/zh/sys-components/charts-new.md b/docs/zh/sys-components/charts-new.md new file mode 100644 index 00000000..afb35697 --- /dev/null +++ b/docs/zh/sys-components/charts-new.md @@ -0,0 +1,13 @@ +# 图表 + +::: tip +`1.1.0` 版本使用的是 `G2` 图表库,`1.1.3` 开始使用 `v-charts` +::: + +## 介绍 + +在使用 echarts 生成图表时,经常需要做繁琐的数据类型转化、修改复杂的配置项,v-charts 的出现正是为了解决这个痛点。基于 Vue2.0 和 echarts 封装的 v-charts 图表组件,只需要统一提供一种对前后端都友好的数据格式设置简单的配置项,便可轻松生成常见的图表。 + +[v-charts 文档](https://v-charts.js.org/#/) + +处于对用户使用方便的角度考虑,从 `1.1.3` 开始使用 v-charts。项目中已经安装并注册完毕 v-charts,你可以直接使用 \ No newline at end of file diff --git a/docs/zh/sys-components/container.md.REMOVED.git-id b/docs/zh/sys-components/container.md.REMOVED.git-id new file mode 100644 index 00000000..2712e40f --- /dev/null +++ b/docs/zh/sys-components/container.md.REMOVED.git-id @@ -0,0 +1 @@ +be315dc4b20db4a72f9543b102c601365693b67d \ No newline at end of file diff --git a/docs/zh/sys-components/count-up.md b/docs/zh/sys-components/count-up.md new file mode 100644 index 00000000..a8f1844b --- /dev/null +++ b/docs/zh/sys-components/count-up.md @@ -0,0 +1,29 @@ +# 数字动画 + +## 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| start | 起始值 | 非 | Number | | 0 | +| end | 结束值 | 是 | Number | | 0 | +| decimals | 小数位数 | 非 | Number | | 0 | +| duration | 持续时间 | 非 | Number | | 2 | +| options | 设置项 | 非 | Object | | 空对象 | +| callback | 回调函数 | 非 | Function | | 空函数 | + +## 示例 + +``` vue +// 基本使用方法 + + +// 设置始末值 + + +// 设置动画时间 + +``` + +组件会在页面上渲染 `` 标签 + +组件根据 [countUp.js](https://github.com/inorganik/countUp.js) 封装,`options` 参数详见原始插件文档 \ No newline at end of file diff --git a/docs/zh/sys-components/highlight.md b/docs/zh/sys-components/highlight.md new file mode 100644 index 00000000..f8830d31 --- /dev/null +++ b/docs/zh/sys-components/highlight.md @@ -0,0 +1,22 @@ +# 代码高亮 + +## 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| code | 代码字符串 | 非 | String | | console.log('you lost code prop') | +| format-html | 是否格式化 HTML | 非 | Boolean | | false | + +::: tip +format 建议只在内容为 HTML 的时候打开,如果内容不是 HTML,设置为 true 会有负面效果 +::: + +## 示例 + +``` vue + +``` + +::: tip +本框架只是提供代码高亮的简单实现,如需实现更高级的设置请修改组件代码 +::: \ No newline at end of file diff --git a/docs/zh/sys-components/icon-select.md b/docs/zh/sys-components/icon-select.md new file mode 100644 index 00000000..98064360 --- /dev/null +++ b/docs/zh/sys-components/icon-select.md @@ -0,0 +1,12 @@ +# 图标选择器 + +## 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| value | 绑定的值,可以使用 v-model | 非 | String | | | +| placeholder | 占位符,显示在未选择之前的按钮和输入框中 | 非 | String | | 请选择 | +| placement | 界面探出方向 | 非 | String | 同 Popover 组件 placement 参数 | right | +| clearable | 是否允许清空 | 非 | Boolean | | true | +| userInput | 是否允许用户自由输入 | 非 | Boolean | | false | +| autoClose | 是否在选择后自动关闭 | 非 | Boolean | | true | \ No newline at end of file diff --git a/docs/zh/sys-components/icon-svg.md b/docs/zh/sys-components/icon-svg.md new file mode 100644 index 00000000..2bbdd0d5 --- /dev/null +++ b/docs/zh/sys-components/icon-svg.md @@ -0,0 +1,34 @@ +# 图标 - SVG + +## 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| name | 图标名称 | 非 | String | src/assets/icons/svg 中 .svg 文件名 | 空 | + +## 使用方法 + +首先将下载的 .svg 图标放入 `src/assets/icons/svg` 文件夹下 + +然后使用组件 + +``` vue + +``` + +## 获取已经注册的所有图标 + +你已经发现了,只需要将图标文件放入项目中就会自动注册 + +这是因为已经对 `webpack` 和 `svg-sprite-loader` 进行了相关设置,`src/assets/icons/svg` 文件夹中的图标会自动注册到项目中,文件全部打包成 svg-sprite,名称注册到 `Vue.$IconSvg` 属性中 + +所以如果你需要检查项目中已经注册的所有图标,可以通过如下方式 + +``` js +// 在 vue 单文件组件中 +console.log(this.$IconSvg) +``` + +## 参考 + +演示图标来源 [iconfont.cn @龙正昆《常用的50个4px双色图标库》](http://iconfont.cn/collections/detail?spm=a313x.7781069.1998910419.d9df05512&cid=4878) \ No newline at end of file diff --git a/docs/zh/sys-components/icon.md b/docs/zh/sys-components/icon.md new file mode 100644 index 00000000..aae2eab4 --- /dev/null +++ b/docs/zh/sys-components/icon.md @@ -0,0 +1,41 @@ +# 图标 + +## 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| name | 图标名称 | 非 | String | font-awesome 所有图标名 | font-awesome | + +## 使用方法 + +基本 + +``` vue +// 这样用没有毛病 但是也没什么用 + + +// 指定图标名称 + + +// 设置行内样式 + + +// 设置 class + +``` + +这个组件只是简化了写法而已 + +``` vue + +// 等同于 + +``` + +## 参考 + +图标索引 + +[Font Awesome 中文网](http://www.fontawesome.com.cn/faicons/) + +[fontawesome.com](https://fontawesome.com/icons?d=gallery) \ No newline at end of file diff --git a/docs/zh/sys-components/image/baiduyun.png.REMOVED.git-id b/docs/zh/sys-components/image/baiduyun.png.REMOVED.git-id new file mode 100644 index 00000000..b72710d1 --- /dev/null +++ b/docs/zh/sys-components/image/baiduyun.png.REMOVED.git-id @@ -0,0 +1 @@ +3a5bb0f2628d9251bbe7474c0535258784cf770b \ No newline at end of file diff --git a/docs/zh/sys-components/markdown.md b/docs/zh/sys-components/markdown.md new file mode 100644 index 00000000..cb8af8b1 --- /dev/null +++ b/docs/zh/sys-components/markdown.md @@ -0,0 +1,88 @@ +# markdown 渲染器 + +## 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| url | markdown文件地址 | 非 | String | | 无 | +| source | markdown内容 | 非 | String | | 无 | +| highlight | 代码高亮 | 非 | Boolean | | false | +| baidupan | 百度网盘分享链接显示优化 | 非 | Boolean | | true | + +## 使用方法 + +加载一个.md文件 + +``` vue + +``` + +加载资源 + +```vue + + + +``` + +D2Admin 已经帮你配置好 webpack,你可以使用以下方式加载 markdown 文件 + +```vue + + + +``` + +## 百度网盘分享链接优化 + +当书写类似下面的分享链接时 + +::: tip +需要 `baidupan = true` +::: + +``` +普通分享链接 + +> https://pan.baidu.com/s/1kW6uUwB + +私密分享链接 + +> 链接: https://pan.baidu.com/s/1ggFW21l 密码: 877y +``` + +markdown 中引用部分的文本由于被识别为百度云的分享链接,所以不会被当做 `blockquote` 渲染(非百度云链接的引用行不会改变),会以一种特别的块来显示,效果见下 + +![效果](./image/baiduyun.png) + +::: tip +了解 D2Admin 是如何在 markdown 中匹配百度云链接的? [查看源码](https://github.com/d2-projects/d2-admin/blob/master/src/components/core/d2-markdown/index.vue) +::: \ No newline at end of file diff --git a/docs/zh/sys-css/README.md b/docs/zh/sys-css/README.md new file mode 100644 index 00000000..4b94ed06 --- /dev/null +++ b/docs/zh/sys-css/README.md @@ -0,0 +1,7 @@ +--- +sidebar: auto +--- + +# title + +info \ No newline at end of file diff --git a/docs/zh/sys-db/README.md b/docs/zh/sys-db/README.md new file mode 100644 index 00000000..4b94ed06 --- /dev/null +++ b/docs/zh/sys-db/README.md @@ -0,0 +1,7 @@ +--- +sidebar: auto +--- + +# title + +info \ No newline at end of file diff --git a/docs/zh/sys-menu/README.md b/docs/zh/sys-menu/README.md new file mode 100644 index 00000000..4b94ed06 --- /dev/null +++ b/docs/zh/sys-menu/README.md @@ -0,0 +1,7 @@ +--- +sidebar: auto +--- + +# title + +info \ No newline at end of file diff --git a/docs/zh/sys-multi-page/README.md b/docs/zh/sys-multi-page/README.md new file mode 100644 index 00000000..4b94ed06 --- /dev/null +++ b/docs/zh/sys-multi-page/README.md @@ -0,0 +1,7 @@ +--- +sidebar: auto +--- + +# title + +info \ No newline at end of file diff --git a/docs/zh/sys-plugins/README.md b/docs/zh/sys-plugins/README.md new file mode 100644 index 00000000..d5688fce --- /dev/null +++ b/docs/zh/sys-plugins/README.md @@ -0,0 +1,7 @@ +# 插件概述 + +d2-admin(以下简称 d2admin)封装(或者集成第三方)了一些插件,方便开发者进行开发,具体组件文档请从左侧列表进入 + +::: tip +这里只列出一部分需要特别说明的插件,大部分集成的插件都可以在网络上找到官方文档 +::: \ No newline at end of file diff --git a/docs/zh/sys-plugins/data-export.md b/docs/zh/sys-plugins/data-export.md new file mode 100644 index 00000000..5ebc9b91 --- /dev/null +++ b/docs/zh/sys-plugins/data-export.md @@ -0,0 +1,148 @@ +# 表格导出 + +本框架集成了数据导出功能,并包装成插件 + +## 注册插件 + +``` js +import pluginExport from '@/plugin/export' +Vue.use(pluginExport) +``` + +之后就可以在组件中使用 `this.$export` 来调用导出功能 + +::: tip +d2admin 已经帮你注册好,可以直接使用,无需写上面的代码 +::: + +## 导出 csv + +此方法将数据以 `csv` 格式导出,并且返回一个 `Promise` 对象 + +使用 + +``` js +this.$export.csv({ + columns, + data +}) + .then(() => { + // ...可选回调 + }) +``` + +参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| columns | 列 | 非 | Array | | 空数组 | +| data | 行数据 | 非 | Array | | 空数组 | +| title | 文件名 | 非 | String | | table | +| noHeader | 不导出表头 | 非 | Boolean | | false | +| separator | 数据分隔符 | 非 | String | | , | +| quoted | 每项数据是否加引号 | 非 | Boolean | | false | + +示例 + +``` js +const columns = [ + { + label: '姓名', + prop: 'name' + }, + { + label: '年龄', + prop: 'age' + } +] +const data = [ + { + name: 'lucy', + age: 24 + }, + { + name: 'bob', + age: 26 + } +] +this.$export.csv({ + columns, + data +}) +``` + +## 导出 xlsx + +此方法将数据以 `xlsx` 格式导出,并且返回一个 `Promise` 对象 + +使用 + +``` js +this.$export.excel({ + columns, + data +}) + .then(() => { + // ...可选回调 + }) +``` + +参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| columns | 列 | 非 | Array | | 空数组 | +| data | 行数据 | 非 | Array | | 空数组 | +| title | 文件名 | 非 | String | | table | + +示例 + +``` js +const columns = [ + { + label: '姓名', + prop: 'name' + }, + { + label: '年龄', + prop: 'age' + } +] +const data = [ + { + name: 'lucy', + age: 24 + }, + { + name: 'bob', + age: 26 + } +] +this.$export.excel({ + columns, + data +}) +``` + +## 导出 txt + +此方法将数据以 `txt` 格式导出,并且返回一个 `Promise` 对象 + +使用 + +``` js +this.$export.txt({ + text: '文本内容', + title: '文件名' +}) + .then(() => { + // ...可选回调 + }) +``` + +参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| text | 文件内容 | 非 | String | | 空 | +| title | 文件名 | 非 | String | | 文本 | diff --git a/docs/zh/sys-plugins/data-import.md b/docs/zh/sys-plugins/data-import.md new file mode 100644 index 00000000..817abefe --- /dev/null +++ b/docs/zh/sys-plugins/data-import.md @@ -0,0 +1,64 @@ +# 表格导入 + +本框架集成了数据导入功能,并包装成插件 + +## 注册插件 + +``` js +import pluginImport from '@/plugin/import' +Vue.use(pluginImport) +``` + +之后就可以在组件中使用 `this.$import` 来调用导出功能 + +::: tip +d2admin 已经帮你注册好,可以直接使用,无需写上面的代码 +::: + +## 导入 csv + +导入csv文件,并且返回一个 `Promise` 对象 + +``` js +// 在选择文件后调用 +handleUpload (file) { + this.$import.csv(file) + .then(res => { + this.table.columns = Object.keys(res.data[0]).map(e => ({ + label: e, + prop: e + })) + this.table.data = res.data + }) + // 阻止默认的上传 + return false +} +``` + +## 导入 xlsx + +导入xlsx文件,并且返回一个 `Promise` 对象 + +**注意 导入的表格文件第一行应为表头** + +参考下述示例使用 + +``` js +// 在选择文件后调用 +handleUpload (file) { + this.$import.xlsx(file) + .then(({header, results}) => { + // header 为表头 + // results 为内容 + this.table.columns = header.map(e => { + return { + label: e, + prop: e + } + }) + this.table.data = results + }) + // 阻止默认的上传 + return false +} +``` \ No newline at end of file diff --git a/docs/zh/sys-plugins/i18n.md b/docs/zh/sys-plugins/i18n.md new file mode 100644 index 00000000..12e2522a --- /dev/null +++ b/docs/zh/sys-plugins/i18n.md @@ -0,0 +1,124 @@ +# 多国语 + +多国语插件 + +::: tip +此文档仅限于演示如何在 `D2Admin` 中使用多国语言设置 +::: + +公用的语言设置建议放在 `src/i18n` 下 + +i18n 文件夹结构如下所示 + +``` +|__index.js // 主文件 +|__lang // 语言配置文件夹 +| |__cn // 中文 +| | |__index.js // 中文 公用配置 +| |__ja // 日语 +| | |__index.js // 日语 公用配置 +| |__en // 英语 +| | |__index.js // 英语 公用配置 +``` + +在 `src/i18n/index.js` 中导入同级lang文件夹内的语言设置,并导出一个新的 `VueI18n` 实例供 `main.js` 使用 + +``` js +import i18n from './i18n' +new Vue({ + el: '#app', + store, + i18n, // 使用 i18n + router, + template: '', + components: { App } +}) +``` + +## 使用 + +使用 `$t('路径')` + +``` vue + + +``` + +## 局部配置 + +有时候我们只希望在某个文件中配置这个组件的多国语言,如果所有的语言设置都放在 `d2-admin/src/i18n` 中会造成混乱,不易维护 + +`D2Admin` 已经替你安装好了 `vue-i18n-loader`,可以方便地在单文件组件中使用 + +示例 + +``` vue + + + + + +``` + +在同一文件夹下的 `lang.json` + +``` json +{ + "cn": { + "hello": "你好", + "check": { + "title": "请选择", + "label": { + "Beijing": "北京", + "Tokyo": "东京", + "NewYork": "纽约" + } + } + }, + "en": { + "hello": "hello", + "check": { + "title": "Please choose", + "label": { + "Beijing": "Beijing", + "Tokyo": "Tokyo", + "NewYork": "NewYork" + } + } + }, + "ja": { + "hello": "こんにちは", + "check": { + "title": "選択してください", + "label": { + "Beijing": "北京", + "Tokyo": "東京", + "NewYork": "ニューヨーク" + } + } + } +} +``` + +详细教程请查看官方文档,见此页右上角的链接 \ No newline at end of file diff --git a/docs/zh/sys-plugins/mock.md b/docs/zh/sys-plugins/mock.md new file mode 100644 index 00000000..edb33169 --- /dev/null +++ b/docs/zh/sys-plugins/mock.md @@ -0,0 +1,221 @@ +# 模拟数据 + +在 `src/mock/demo/001.js` 配置拦截返回的数据 + +## 使用 + +``` js +import Mock from 'mockjs' + +Mock.mock('/api/demo/001', { + 'list|4-10': [{ + 'id|+1': 1, + 'name': '@CNAME', + 'star|1-5': '★', + 'delFlag|1': [0, 1], + 'creatDate': '@DATE', + 'address': '@CITY', + 'zip': '@ZIP' + }] +}) +``` + +请求数据 + +``` js +ajax () { + this.$axios.get('/api/demo/001') + .then(res => { + this.table.columns = Object.keys(res.data.list[0]).map(e => ({ + label: e, + prop: e + })) + this.table.data = res.data.list + }) +} +``` + +## mock 语法规范 + +Mock.js 的语法规范包括两部分: + +1. 数据模板定义规范(Data Template Definition,DTD) +2. 数据占位符定义规范(Data Placeholder Definition,DPD) + +### 数据模板定义规范 DTD + +**数据模板中的每个属性由 3 部分构成:属性名、生成规则、属性值:** + +``` js +// 属性名 name +// 生成规则 rule +// 属性值 value +'name|rule': value +``` + +**注意:** + +* _属性名_ 和 _生成规则_ 之间用竖线 `|` 分隔。 +* _生成规则_ 是可选的。 +* _生成规则_ 有 7 种格式: + 1. `'name|min-max': value` + 1. `'name|count': value` + 1. `'name|min-max.dmin-dmax': value` + 1. `'name|min-max.dcount': value` + 1. `'name|count.dmin-dmax': value` + 1. `'name|count.dcount': value` + 1. `'name|+step': value` +* **_生成规则_ 的 含义 需要依赖 _属性值的类型_ 才能确定。** +* _属性值_ 中可以含有 `@占位符`。 +* _属性值_ 还指定了最终值的初始值和类型。 + + + +**生成规则和示例:** + +#### 1. 属性值是字符串 **String** + +1. `'name|min-max': string` + + 通过重复 `string` 生成一个字符串,重复次数大于等于 `min`,小于等于 `max`。 + +2. `'name|count': string` + + 通过重复 `string` 生成一个字符串,重复次数等于 `count`。 + +#### 2. 属性值是数字 **Number** + +1. `'name|+1': number` + + 属性值自动加 1,初始值为 `number`。 + +2. `'name|min-max': number` + + 生成一个大于等于 `min`、小于等于 `max` 的整数,属性值 `number` 只是用来确定类型。 + +3. `'name|min-max.dmin-dmax': number` + + 生成一个浮点数,整数部分大于等于 `min`、小于等于 `max`,小数部分保留 `dmin` 到 `dmax` 位。 + +``` js +Mock.mock({ + 'number1|1-100.1-10': 1, + 'number2|123.1-10': 1, + 'number3|123.3': 1, + 'number4|123.10': 1.123 +}) +// => +{ + "number1": 12.92, + "number2": 123.51, + "number3": 123.777, + "number4": 123.1231091814 +} +``` + +#### 3. 属性值是布尔型 **Boolean** + +1. `'name|1': boolean` + + 随机生成一个布尔值,值为 true 的概率是 1/2,值为 false 的概率同样是 1/2。 + +2. `'name|min-max': value` + + 随机生成一个布尔值,值为 `value` 的概率是 `min / (min + max)`,值为 `!value` 的概率是 `max / (min + max)`。 + +#### 4. 属性值是对象 **Object** + +1. `'name|count': object` + + 从属性值 `object` 中随机选取 `count` 个属性。 + +2. `'name|min-max': object` + + 从属性值 `object` 中随机选取 `min` 到 `max` 个属性。 + +#### 5. 属性值是数组 **Array** + +1. `'name|1': array` + + 从属性值 `array` 中随机选取 1 个元素,作为最终值。 + +2. `'name|+1': array` + + 从属性值 `array` 中顺序选取 1 个元素,作为最终值。 + +3. `'name|min-max': array` + + 通过重复属性值 `array` 生成一个新数组,重复次数大于等于 `min`,小于等于 `max`。 + +4. `'name|count': array` + + 通过重复属性值 `array` 生成一个新数组,重复次数为 `count`。 + +#### 6. 属性值是函数 **Function** + +1. `'name': function` + + 执行函数 `function`,取其返回值作为最终的属性值,函数的上下文为属性 `'name'` 所在的对象。 + +#### 7. 属性值是正则表达式 **RegExp** + +1. `'name': regexp` + + 根据正则表达式 `regexp` 反向生成可以匹配它的字符串。用于生成自定义格式的字符串。 + + ``` js + Mock.mock({ + 'regexp1': /[a-z][A-Z][0-9]/, + 'regexp2': /\w\W\s\S\d\D/, + 'regexp3': /\d{5,10}/ + }) + // => + { + "regexp1": "pJ7", + "regexp2": "F)\fp1G", + "regexp3": "561659409" + } + ``` + +### 数据占位符定义规范 DPD + +_占位符_ 只是在属性值字符串中占个位置,并不出现在最终的属性值中。 + +_占位符_ 的格式为: + +``` +@占位符 +@占位符(参数 [, 参数]) +``` + +**注意:** + +1. 用 `@` 来标识其后的字符串是 _占位符_。 +2. _占位符_ 引用的是 `Mock.Random` 中的方法。 +3. 通过 `Mock.Random.extend()` 来扩展自定义占位符。 +4. _占位符_ 也可以引用 _数据模板_ 中的属性。 +5. _占位符_ 会优先引用 _数据模板_ 中的属性。 +6. _占位符_ 支持 _相对路径_ 和 _绝对路径_。 + +``` js +Mock.mock({ + name: { + first: '@FIRST', + middle: '@FIRST', + last: '@LAST', + full: '@first @middle @last' + } +}) +// => +{ + "name": { + "first": "Charles", + "middle": "Brenda", + "last": "Lopez", + "full": "Charles Brenda Lopez" + } +} +``` + + + diff --git a/docs/zh/sys-route/README.md b/docs/zh/sys-route/README.md new file mode 100644 index 00000000..4b94ed06 --- /dev/null +++ b/docs/zh/sys-route/README.md @@ -0,0 +1,7 @@ +--- +sidebar: auto +--- + +# title + +info \ No newline at end of file diff --git a/docs/zh/sys-theme/README.md b/docs/zh/sys-theme/README.md new file mode 100644 index 00000000..4b94ed06 --- /dev/null +++ b/docs/zh/sys-theme/README.md @@ -0,0 +1,7 @@ +--- +sidebar: auto +--- + +# title + +info \ No newline at end of file diff --git a/docs/zh/sys-util/README.md b/docs/zh/sys-util/README.md new file mode 100644 index 00000000..4b94ed06 --- /dev/null +++ b/docs/zh/sys-util/README.md @@ -0,0 +1,7 @@ +--- +sidebar: auto +--- + +# title + +info \ No newline at end of file diff --git a/docs/zh/sys-vuex/README.md b/docs/zh/sys-vuex/README.md new file mode 100644 index 00000000..4b94ed06 --- /dev/null +++ b/docs/zh/sys-vuex/README.md @@ -0,0 +1,7 @@ +--- +sidebar: auto +--- + +# title + +info \ No newline at end of file From a15942eace3709563143fea903e68c3f6053dbb7 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Sun, 19 Aug 2018 13:22:36 +0800 Subject: [PATCH 04/36] no message Former-commit-id: 6c28c42abcf435cdc0550834a99edc9ccdca2543 [formerly 8743fb230f18828cfd3aed9c9b338058561fee31] [formerly 6c28c42abcf435cdc0550834a99edc9ccdca2543 [formerly 8743fb230f18828cfd3aed9c9b338058561fee31] [formerly 6c28c42abcf435cdc0550834a99edc9ccdca2543 [formerly 8743fb230f18828cfd3aed9c9b338058561fee31] [formerly 8743fb230f18828cfd3aed9c9b338058561fee31 [formerly a19e0dfac3bc9a04d0e0bfee649fd8cb8d51cb51 [formerly b53d16ce962434c005efb5c5fa433dbe24222eca]]]]] Former-commit-id: 452734ab14afe086ea3c8ae7524a1d3008ffafe7 Former-commit-id: ccb0a90afeeccac311f67df6a4f2395922f2fd2f Former-commit-id: 4943cce7804b69b2087a292c3990de02d92f69ea [formerly 74bf3a5e7484ac631b0723da86c035620c25c4bd] Former-commit-id: 94633a239d8053ccc81366142cb1bf697744f076 Former-commit-id: 96519d30358bf831ed324de75e24936e100a918e Former-commit-id: e0469eb3be7b98b69e6be9bc2e77045b5662559d Former-commit-id: 4aa01b88a1ff68cc5ebed5c41623801399354049 Former-commit-id: bbc47bb1df4df8e28211827d7baaaa5a68ce9263 --- docs/.vuepress/config.js | 35 ++- docs/zh/article/README.md | 3 + docs/zh/article/update/0.0.0.md | 123 ++++++++++ docs/zh/article/update/1.1.4.md | 219 +++++++++++++++++ .../zh/article/update/1.1.5.md.REMOVED.git-id | 1 + docs/zh/article/update/ice-1.1.2.md | 226 ++++++++++++++++++ docs/zh/change-log/README.md | 133 +++++++++++ docs/zh/collaborator/README.md | 5 + 8 files changed, 738 insertions(+), 7 deletions(-) create mode 100644 docs/zh/article/README.md create mode 100644 docs/zh/article/update/0.0.0.md create mode 100644 docs/zh/article/update/1.1.4.md create mode 100644 docs/zh/article/update/1.1.5.md.REMOVED.git-id create mode 100644 docs/zh/article/update/ice-1.1.2.md create mode 100644 docs/zh/change-log/README.md create mode 100644 docs/zh/collaborator/README.md diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 006effbc..ad790c71 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -75,18 +75,23 @@ module.exports = { { text: '其它', items: [ - { text: '文章归档', link: '' }, - { text: '更新日志', link: '' }, - { text: '参与者名单', link: '' }, + { text: '文章归档', link: '/zh/article/' }, + { text: '更新日志', link: '/zh/change-log/' }, + { text: '参与者名单', link: '/zh/collaborator/' }, + { + text: '交流', + items: [ + { text: '微信公众号', link: '' }, + { text: '交流群', link: '' } + ] + }, { text: '关注我们', items: [ { text: '掘金', link: '' }, { text: 'CSDN', link: '' }, { text: 'segmentfault', link: '' }, - { text: '知乎', link: '' }, - { text: '微信公众号', link: '' }, - { text: '交流群', link: '' } + { text: '知乎', link: '' } ] } ] @@ -96,7 +101,8 @@ module.exports = { sidebar: { '/zh/learn-guide/': sideBarLearnGuide(), '/zh/sys-components/': sideBarSysComponents(), - '/zh/sys-plugins/': sideBarSysPlugins() + '/zh/sys-plugins/': sideBarSysPlugins(), + '/zh/article/': sideBarArticle('版本发布') } } } @@ -145,4 +151,19 @@ function sideBarSysPlugins () { ] } ] +} + +function sideBarArticle (titleUpdate) { + return [ + { + title: titleUpdate, + collapsable: false, + children: [ + 'update/ice-1.1.2', + 'update/1.1.5', + 'update/1.1.4', + 'update/0.0.0' + ] + } + ] } \ No newline at end of file diff --git a/docs/zh/article/README.md b/docs/zh/article/README.md new file mode 100644 index 00000000..37a1c102 --- /dev/null +++ b/docs/zh/article/README.md @@ -0,0 +1,3 @@ +# 文章 + +请在侧边栏目录选择文章阅读 \ No newline at end of file diff --git a/docs/zh/article/update/0.0.0.md b/docs/zh/article/update/0.0.0.md new file mode 100644 index 00000000..40a0747b --- /dev/null +++ b/docs/zh/article/update/0.0.0.md @@ -0,0 +1,123 @@ +# 公布项目 + +![github-banner](http://fairyever.qiniudn.com/github-banner.png) + +# 介绍 + +D2Admin 是一个开源的管理系统前端集成方案 + +[Github仓库](https://github.com/d2-projects/d2-admin) - [预览地址](https://fairyever.gitee.io/d2-admin-preview/#/index) - [中文文档](https://fairyever.gitee.io/d2-admin-doc/zh/) + +D2Admin 是完全开源免费的管理系统集成方案,由 [FairyEver](https://github.com/FairyEver) 在工作之余完全由兴趣驱动完成,如果你也一样喜欢前端开发,欢迎加入我们的讨论/学习群,群内可以`提问答疑`,`分享学习资料`或者随便扯淡 + +**QQ群** + +群号 806395827 欢迎大家 + +**微信群** + +作者微信 liyang1711467488 + +> 微信群需要先加群主才可以拉进群 + +## 功能 + +* 首屏加载等待动画 避免首次加载白屏尴尬 +* 简约主题 +* 每个插件和组件都配有介绍文档 +* 图片资源 sketch 源文件( 可以在这个文件内重新生成所有图片资源 ) +* 登陆和注销 +* 根据路由自动生成菜单 +* 可折叠侧边栏 +* 方便的菜单设置 +* 多国语言支持 +* 富文本编辑器 +* Markdown 编辑器 +* 全屏功能 +* Fontawesome 图标库 +* 图标选择器(组件) +* 自动引入下载的 SVG 图标 +* 前端假数据支持( mock ) +* 集成蚂蚁金服出品的 G2 图表 +* 图表自适应可拖拽大小的卡片容器(示例) +* 简化剪贴板操作 +* 简化Cookie操作 +* 时间日期计算工具 +* 导入 Excel ( xlsx 格式 + csv 格式 ) +* 数据导出 Excel ( xlsx 格式 + csv 格式 ) +* 数据导出文本 +* 数字动画 +* 可拖拽调整大小的切分布局 +* 可拖拽调整大小和位置的网格布局 +* 提供三种方便的页面容器组件(正常卡片,隐形容器,填满页面) +* 代码高亮显示 +* 加载并解析(或者直接指定资源) markdown 文件 +* GitHub 样式的 markdown 显示组件 +* markdown 内代码高亮 +* 为 markdown 扩展了百度云链接解析和优化显示 +* 右键菜单组件 +* 自定义滚动条和滚动控制 +* 内置4种主题 +* 公用样式抽离,方便的主题定制 +* 支持百万级数据量的表格组件 +* 打包后随意目录部署(已经做好兼容设置) + +## TODO + +D2Admin 仍然处于开发中,这里有一些计划: + +* 分离出简化版本 +* 推出基于 [ice](https://alibaba.github.io/ice) 平台的版本 +* 增加右上角通知中心 +* 增加一些实例页面以提供业务页面布局建议 +* 更换图表库 +* 多 tab 页结构 +* 面包屑导航 +* 树型表格组件 +* `1.1.0 完成` 抽离项目里的文档,集中存放在文档站点 +* `1.1.0 完成` 对主界面进行一次完善,调整整体布局和颜色 +* `1.1.0 完成` 切换主题功能 + +欢迎你为 D2Admin 的开发作出贡献(代码编写/文档翻译)。 + +## 目录结构 + +``` +├─ build +├─ config +├─ docs // 文档 +├─ src +│ ├─ assets // 资源 +│ │ ├─ icons +│ │ ├─ image +│ │ ├─ library +│ │ └─ style +│ ├─ components // 组件 +│ │ ├─ charts +│ │ ├─ core +│ │ └─ demo +│ ├─ i18n // 多国语 +│ ├─ menu // 菜单 +│ ├─ mock // 模拟数据 +│ ├─ pages // 页面 +│ ├─ plugin // 插件 +│ ├─ router // 路由 +│ ├─ store // vuex +│ ├─ utils +│ ├─ App.vue +│ └─ main.js +├─ static // 静态资源 +├─ .babelrc +├─ .editorconfig +├─ .eslintignore +├─ .eslintrc.js +├─ .gitattributes +├─ .gitignore +├─ .postcssrc.js +├─ LICENSE +├─ README.md +├─ deploy.sh +├─ design.sketch // 设计文件 +├─ index.html +└─ package.json +``` \ No newline at end of file diff --git a/docs/zh/article/update/1.1.4.md b/docs/zh/article/update/1.1.4.md new file mode 100644 index 00000000..7cd6a38e --- /dev/null +++ b/docs/zh/article/update/1.1.4.md @@ -0,0 +1,219 @@ +# 版本发布 1.1.4 + +![github-banner](http://fairyever.qiniudn.com/github-banner.png) + +D2Admin 是一个 **注重外观表现** 的管理系统 **PC端** 集成方案,现在正在紧张开发维护。 + +## 前言 + +距离 D2Admin 正式和大家见面(开源),已经过去一个多月了。 + +![Snip20180703_4](http://fairyever.qiniudn.com/Snip20180703_4.png) + +现在想想这一个月真是很忙碌,几乎所有的业余时间都用在了开源项目上,公司没事的时候在写,晚上回家每天都要写到一点左右,回家火车上都在忙着改代码... + +![Snip20180703_5-squashed](http://fairyever.qiniudn.com/Snip20180703_5-squashed.jpg) + +上图:好友不幸骨折,守着他编码...(希望他早点康复) + +有天我和朋友说,感觉真是开源个项目,把自己整个人都开源了,一个人又要设计又要写代码又要写文档还要回答问题,除了上班吃睡就都是它了! + +但是就我个人而言,我感觉倒也是一种不错的体验。 + +通过这个开源产品,认识了很多朋友,有了自己的小交流群,平日没事了大家一起讨论讨论问题也挺不错。当然也新认识了一些大佬(膜拜),通过交流也有不小的收获。 + +## 介绍 + +废话不多说了,一介码农也没有什么文采,今天也是趁着发版的机会小发表一些想法,下面就介绍一下这一个月来究竟升级了什么吧,先放几张截图吧: + +### 预览 + +经典主题: + +![Snip20180703_6-squashed](http://fairyever.qiniudn.com/Snip20180703_6-squashed.png) + +集成组件和插件: + +![Snip20180703_7-squashed](http://fairyever.qiniudn.com/Snip20180703_7-squashed.png) + +图标选择器: + +![Snip20180703_8-squashed](http://fairyever.qiniudn.com/Snip20180703_8-squashed.png) + +版本检查: + +![Snip20180703_10-squashed](http://fairyever.qiniudn.com/Snip20180703_10-squashed.png) + +灰度模式: + +![Snip20180703_11-squashed](http://fairyever.qiniudn.com/Snip20180703_11-squashed.png) +![Snip20180704_9](http://fairyever.qiniudn.com/Snip20180704_9.png) +![Snip20180705_1](http://fairyever.qiniudn.com/Snip20180705_1.png) + +数据持久化: + +![Snip20180703_12-squashed](http://fairyever.qiniudn.com/Snip20180703_12-squashed.png) + +图表: + +![Snip20180703_13-squashed](http://fairyever.qiniudn.com/Snip20180703_13-squashed.png) + +主题: + +![Snip20180703_14-squashed](http://fairyever.qiniudn.com/Snip20180703_14-squashed.png) + +响应大家需求,这次最大的升级:多标签页: + +![Snip20180703_15](http://fairyever.qiniudn.com/Snip20180703_15.png) + +上面是我随便截了几张图片 如果你感兴趣的话可以去体验地址一趟 -> [体验地址](https://fairyever.gitee.io/d2-admin-preview/#/index) <-。 + +项目现在集成了不少的库和插件,第一次加载确实有些慢,以后有空了优化一下。 + +另外大家实际使用的时候建议使用 [简化版模板](https://github.com/d2-projects/d2-admin-start-kit)。 + +### 完整功能列表 + +* 首屏加载等待动画 避免首次加载白屏尴尬 +* 简约主题 +* 每个插件和组件都配有介绍文档 +* 图片资源 sketch 源文件( 可以在这个文件内重新生成所有图片资源 ) +* 登陆和注销 +* 根据路由自动生成菜单 +* 可折叠侧边栏 +* 方便的菜单设置 +* 多国语言支持 +* 富文本编辑器 +* Markdown 编辑器 +* 全屏功能 +* Fontawesome 图标库 +* 图标选择器(组件) +* 自动引入下载的 SVG 图标 +* 前端假数据支持( mock ) +* 集成蚂蚁金服出品的 G2 图表 +* 图表自适应可拖拽大小的卡片容器(示例) +* 简化剪贴板操作 +* 简化Cookie操作 +* 时间日期计算工具 +* 导入 Excel ( xlsx 格式 + csv 格式 ) +* 数据导出 Excel ( xlsx 格式 + csv 格式 ) +* 数据导出文本 +* 数字动画 +* 可拖拽调整大小的切分布局 +* 可拖拽调整大小和位置的网格布局 +* 提供三种方便的页面容器组件(正常卡片,隐形容器,填满页面) +* 代码高亮显示 +* 加载并解析(或者直接指定资源) markdown 文件 +* GitHub 样式的 markdown 显示组件 +* markdown 内代码高亮 +* 为 markdown 扩展了百度云链接解析和优化显示 +* 右键菜单组件 +* 自定义滚动条和滚动控制 +* 内置5种主题 +* 公用样式抽离,方便的主题定制 +* 支持百万级数据量的表格组件 +* 打包后随意目录部署(已经做好兼容设置) +* 支持临时菜单配置 +* 提供“试验台”功能 方便展示系统功能调用方法 `1.1.4 +` +* 多标签页模式 `1.1.4 +` +* 美化滚动条 `1.1.4 +` +* 持久化存储 `1.1.4 +` + +### 更新列表 + +这个列表在这里也可以查看 -> [中文文档 | 更新日志](https://fairyever.gitee.io/d2-admin-doc/zh/guide/change-log.html#v1-1-0) + +#### 1.1.4 + +* [ 修改 ] 全局状态管理设计优化 +* [ 修改 ] 主题调优 +* [ 新增 ] playground 模块,方便测试和展示一些功能实现方式/调用方法 +* [ 新增 ] 灰度模式 +* [ 新增 ] 多页模式 +* [ 新增 ] 多页模式缓存 +* [ 新增 ] 多页模式快速关闭(关闭左侧 右侧 全部 其它) +* [ 修改 ] 侧边栏滚动优化 +* [ 新增 ] `d2-container` 填充模式自定义滚动条 +* [ 新增 ] `d2-container` 组件卡片和隐形模式自定义滚动条 +* [ 新增 ] 现在页面标题可以根据路由做出对应变化了 +* [ 新增 ] 版本检查机制 +* [ 新增 ] `d2-container` 隐形模式支持 header 插槽 +* [ 新增 ] 版本检查可以设置为不显示提示框 +* [ 新增 ] 集成 json 查看组件 +* [ 新增 ] 添加了所有图表种类的演示页面 +* [ 修改 ] 修改布局方式,解决了在 Firefox 上 better-scroll 初始化拿不到正确高度的 bug +* [ 新增 ] 右上角显示用户名,用户名持久存储 + +#### 1.1.3 + +* [ 修复 ] 侧边栏在折叠时不显示的 bug +* [ 新增 ] v-charts 插件 +* [ 新增 ] 一些演示图表(后续打算把 v-charts 文档上有示例性的演示都展示一下) +* [ 修改 ] D2Admin 经典主题颜色调整 +* [ 新增 ] violet 主题 +* [ 新增 ] 菜单图标 +* [ 修改 ] 新制作了 Fork me 图片 + +#### 1.1.2 + +* [ 修改 ] 删除了 G2 相关的依赖 + +#### 1.1.1 + +* [ 修改 ] 删除了 G2 相关的代码(移除图表库) +* [ 优化 ] 侧边栏取值逻辑 + +#### 1.1.0 + +* [ 修改 ] 顶栏和侧边栏菜单新的结构生成方式,新的方案使用 数据 + 递归组件 实现无限制多级菜单 +* [ 修改 ] 路由注册回归最简单的写法 +* [ 修复 ] 首次加载 loading 样式类名和程序内类名冲突,新的加载类名使用 d2-app-loading 前缀 +* [ 修改 ] 所有类似 dd- 的样式前缀(包括自动注册图标的id前缀)统一改为 d2- +* [ 修复 ] 修复 d2-highlight 组件和 d2-markdown 组件的样式冲突 +* [ 修改 ] 内置组件名称统一改为 d2- 前缀,统一使用横线连接 (kebab-case) 风格 +* [ 修改 ] 顶栏 logo 阴影删除 +* [ 新增 ] 主题系统 +* [ 新增 ] 三个主题,分别为 d2admin 经典,简约线条,流星 +* [ 修改 ] d2-markdown 组件 md 参数改名为 source +* [ 修改 ] 删除了 d2-markdown 组件中图片的白色背景 +* [ 修改 ] 删除 timeago 插件,更换为更强大的 dayjs +* [ 新增 ] Tomorrow Night Blue 主题 +* [ 修改 ] src/assets/style/public-class.scss 写法优化 +* [ 新增 ] [vue-bigdata-table](https://github.com/lison16/vue-bigdata-table)组件 +* [ 修复 ] 侧边栏内容超过一屏后显示错误 +* [ 新增 ] 自定义滚动条演示页面 +* [ 新增 ] 流星主题新增背景图片上层的半透明遮罩 +* [ 修复 ] 主题设置失效bug +* [ 修复 ] router守卫验证登陆部分代码修改 +* [ 修复 ] d2-container 组件改为同步注册(之前的异步注册会有 mounted 生命周期问题,即 slot 内的页面在 mounted 生命周期内拿不到 dom) +* [ 修复 ] d2-container 组件重构 flex 布局 +* [ 新增 ] 404 page +* [ 新增 ] 顶栏联系方式 +* [ 新增 ] 右键菜单组件 +* [ 新增 ] 菜单配置支持空菜单(项目开发的时候有可能需要先把菜单做好查看效果) +* [ 优化 ] 页面左侧菜单滚动条优化 +* [ 修复 ] CSS 边距工具类都加上了 `!important` 来保证在覆盖样式时生效 +* [ 修复 ] IE11 兼容性修复 + +写这篇文章的时候心情竟然出奇地平静,终于发新版了,总算松了一口气... + +### 下阶段的计划: + +* ice 版本 +* bug 修复 + +## 项目地址 + +| 地址 | 描述 | +| --- | --- | +| [团队主页](https://github.com/d2-projects) | D2Admin 所属的团队主页 | +| [中文文档](http://d2admin.fairyever.com/zh/) | 中文文档 | +| [完整版 预览地址](https://fairyever.gitee.io/d2-admin-preview/#/index) | 完整版 预览地址 | +| [完整版 github](https://github.com/d2-projects/d2-admin) | 完整版 Github 仓库 | +| [完整版 码云](https://gitee.com/fairyever/d2-admin) | 完整版 码云镜像仓库 | +| [简化版 预览地址](https://fairyever.gitee.io/d2-admin-start-kit-preview/#/index) | 简化版 预览地址 | +| [简化版 github](https://github.com/d2-projects/d2-admin-start-kit) | 简化版 Github 仓库 | +| [简化版 码云](https://gitee.com/fairyever/d2-admin-start-kit) | 简化版 码云镜像仓库 | + +在最后,如果你看完了,并且觉得还不错,希望可以到 [项目主页](https://github.com/d2-projects/d2-admin) 上点一个 **star** 作为你对这个项目的认可与支持,谢谢。 + diff --git a/docs/zh/article/update/1.1.5.md.REMOVED.git-id b/docs/zh/article/update/1.1.5.md.REMOVED.git-id new file mode 100644 index 00000000..2600a1c6 --- /dev/null +++ b/docs/zh/article/update/1.1.5.md.REMOVED.git-id @@ -0,0 +1 @@ +05ccbdf3de53a90253dd94be5732f56d8b7235e9 \ No newline at end of file diff --git a/docs/zh/article/update/ice-1.1.2.md b/docs/zh/article/update/ice-1.1.2.md new file mode 100644 index 00000000..03427e20 --- /dev/null +++ b/docs/zh/article/update/ice-1.1.2.md @@ -0,0 +1,226 @@ +# D2Admin ICE 发布 + +# 可视化搭建前端工程 - 阿里飞冰了解一下 + +飞冰官方网站 [https://alibaba.github.io/ice](https://alibaba.github.io/ice) + +每次新做一个项目,无论大小都要干这些事: + +* 框架选型 +* 初始化脚手架(比如使用 **create-react-app** 或者 **vue-cli**) +* 也可能你选择了开源脚手架,克隆仓库 +* 四处找轮子 +* 安装各种依赖 +* 新建页面,写逻辑 +* 设计菜单 +* 设计路由 +* 新建页面的时候去复制旧的页面修改 +* 把新的页面注册路由,注册菜单 +* 做完了这个页面做下个,新建文件,复制代码,注册路由... + +**烦不烦?要优雅!** + +今天介绍阿里的开源产品:[飞冰](https://alibaba.github.io/ice) + +## 飞冰是什么 + +![](http://fairyever.qiniudn.com/20180803020053.png) + +"海量可复用物料,通过 GUI 工具极速构建中后台应用"。 + +这句 slogan 还是非常准确的: + +飞冰是一套综合解决方案,用来极速构建中后台应用(其实也可以做非中后台应用)。 + +可以做到极速是通过『海量可复用物料』和『GUI 开发工具』实现的。 + +使用飞冰的开发工作流是这样的: + +`下载 GUI 工具并安装` => `可视化的选择我们提供的初始模板创建项目` => `可视化的创建页面并选择我们提供的 100+ 高质量可复用区块` => `生成代码进行二次开发` => `开发完成之后点击打包编译出 HTML、JS、CSS 文件` => `部署使用` + +在整个流程中,你可以完全通过 GUI 工具点击操作,无需安装配置 Node 环境等前端开发工具,也无需配置 webpack 等构建脚本,我们已经按照淘宝前端最佳实践全部内置。此外,绝大部分的业务需求,我们都已经开发出对应的物料,可以通过 GUI 进行可视化的拼装,尽可能避免你去编写额外的业务逻辑。 + +### 物料源 + +下面是一张很长的图片,为了体积考虑这张图比较模糊,但是可以感受一下 ICE 的区块数量: + +> 原始网页链接 [https://alibaba.github.io/ice/block](https://alibaba.github.io/ice/block) + +![](http://fairyever.qiniudn.com/20180803005118.jpg) + +目前为止 ICE 已经支持 react vue Angular 三大主流框架的物料资源 + +![](http://fairyever.qiniudn.com/20180803005219.png) + +打比方我现在项目需要富文本编辑器,可以看到区块里提供了三款编辑器可供选择 + +![](http://fairyever.qiniudn.com/20180803005411.png) + +所有的这些,都是使用 GUI 就可以加入到项目中使用的,下面将会展示如何从安装 iceworks 客户端到在项目中新建页面。 + +## 如何使用 + +### 安装 + +> 为了真实演示,特意删掉了以前安装的 app + +演示系统为 macOS,iceworks 支持 Windows 版本。 + +iceworks 下载地址 [https://alibaba.github.io/ice/iceworks](https://alibaba.github.io/ice/iceworks) + +![](http://fairyever.qiniudn.com/20180803005813.png) + +稍微等待了一会儿,下载完成。安装后得到了这样一个 App: + +![](http://fairyever.qiniudn.com/20180803010417.png) + +### 上手 + +安装后打开看到一个很简单的界面: + +![](http://fairyever.qiniudn.com/20180803010628.png) + +切换到模板标签可以看到飞冰目前提供的脚手架列表: + +![](http://fairyever.qiniudn.com/20180803010704.png) + +区块标签可以看到区块列表 + +![](http://fairyever.qiniudn.com/20180803011044.gif) + +插件 + +![](http://fairyever.qiniudn.com/20180803011128.png) + +设置 + +![](http://fairyever.qiniudn.com/20180803011150.png) + +这就是表面上所有的功能,下面我们来建一个项目体验一下 + +### 新建 vue 项目 + +飞冰是从 react 开始做的,现在 vue 和 Angular 物料源还比较少,我们切换到 vue 选项卡里... + +![](http://fairyever.qiniudn.com/20180803011329.png) + +**是不是混进了什么奇怪的东西!** + +![](http://fairyever.qiniudn.com/20180803011519.png) + +没错,D2Admin 出了 ICE 版! + +在我和阿里的开发者**一个月**的对接之后,D2Admin ICE 诞生了,作为飞冰平台上第一个**非官方 vue 脚手架**,D2Admin ICE 承担的希望还是很大的!下面使用这个脚手架做演示,展示如何**不写代码**建页面,**不写代码**出图表! + +选择 D2Admin ICE 作为起始模板后会让我们填写项目保存地址: + +![](http://fairyever.qiniudn.com/20180803011843.png) + +填写完成后开始下载模板,下载后会提示我是否要立刻安装依赖: + +![](http://fairyever.qiniudn.com/20180803012018.gif) + +为了避免动态图过大我没有录安装过程: + +![](http://fairyever.qiniudn.com/20180803012215.png) + +在写上面的时候已经提示我依赖安装完成了(很人性化有没有): + +![](http://fairyever.qiniudn.com/20180803012311.png) + +![](http://fairyever.qiniudn.com/20180803012346.png) + +ennn...没毛病。 + +### 启动项目 + +点击 `启动调试服务` 会在本地打开调试服务,vue 项目默认执行的是 `npm start`: + +![](http://fairyever.qiniudn.com/20180803012548.gif) + +打开显示的链接,可以看到项目已经稳稳地跑起来了: + +![](http://fairyever.qiniudn.com/20180803012748.png) + +D2Admin ICE 实质上是 [d2-admin-start-kit](https://github.com/d2-projects/d2-admin-start-kit) 的特别版本,为适应 ICE 的逻辑修改了一部分代码,可以看到模板十分干净,没有了任何完整版的示例 demo: + +![](http://fairyever.qiniudn.com/20180803012914.png) + +关闭 ICE 内集成的终端后可以看到项目面板,可以显示出现在有哪些页面,安装了哪些依赖等: + +![](http://fairyever.qiniudn.com/20180803013159.png) + +### 新建页面 + +点击 `新建页面` 会打开新建页面界面: + +![](http://fairyever.qiniudn.com/20180803013712.png) + +随便选择一个区块新建一个页面(中间的等待时间是 iceworks 在从 npm 下载区块代码) + +![](http://fairyever.qiniudn.com/20180803013831.gif) + +选择区块: + +![](http://fairyever.qiniudn.com/20180803014037.png) + +效果: + +![](http://fairyever.qiniudn.com/20180803014058.png) + +下面尝试一下选择多个区块: + +![](http://fairyever.qiniudn.com/20180803014157.png) + +![](http://fairyever.qiniudn.com/20180803014244.png) + +自动生成了菜单: + +![](http://fairyever.qiniudn.com/20180803014402.png) + +页面效果: + +![](http://fairyever.qiniudn.com/20180803014605.gif) + +检查一下自动生成的代码目录: + +![](http://fairyever.qiniudn.com/20180803014743.png) + +自动生成的页面组件: + +![](http://fairyever.qiniudn.com/20180803015016.png) + +自动生成的样式文件: + +![](http://fairyever.qiniudn.com/20180803015047.png) + +该有的都有了,不该有的也有了,连生命周期钩子都帮你写了一遍! + +## 结语 + +演示一遍下来后,我生成了两个页面,没有写一行代码,剩下的操作就是修修改改,把多个页面都需要的组件提取一下,做做修改工作。 + +D2Admin 团队也会在以后的时间里尽力和 ICE 团队合作开发 vue 公用区块,加速 ICE 的 vue 生态建设,也希望众多的 vuer 都可以参与进来,平台有了,社区繁荣起来才是对大家都有利的事情。 + +D2Admin ICE 将会保持和 D2Admin Start Kit 一致更新,如果你看到完整版的 D2Admin 实在喜欢,从完整版做减法也未尝不可 :) + +## D2 Projects + +| 地址 | 描述 | +| --- | --- | +| [团队主页](https://github.com/d2-projects) | D2Admin 所属的团队主页 | +| [中文文档](http://d2admin.fairyever.com/zh/) | 中文文档 | +| [D2Admin 完整版 预览地址](https://fairyever.gitee.io/d2-admin-preview/#/index) | 完整版 预览地址 | +| [D2Admin 完整版 github](https://github.com/d2-projects/d2-admin) | 完整版 Github 仓库 | +| [D2Admin 完整版 码云](https://gitee.com/fairyever/d2-admin) | 完整版 码云镜像仓库 | +| [D2Admin 简化版 预览地址](https://fairyever.gitee.io/d2-admin-start-kit-preview/#/index) | 简化版 预览地址 | +| [D2Admin 简化版 github](https://github.com/d2-projects/d2-admin-start-kit) | 简化版 Github 仓库 | +| [D2Admin 简化版 码云](https://gitee.com/fairyever/d2-admin-start-kit) | 简化版 码云镜像仓库 | + +开源项目组官方公众号 + + + +[本文在项目文档中收录位置](http://d2admin.fairyever.com/zh/article/update/ice-1.1.2.html) + +在最后,如果你看完了,并且觉得还不错,希望可以到 [项目主页](https://github.com/d2-projects/d2-admin) 上点一个 **star** 作为你对这个项目的认可与支持,谢谢。 \ No newline at end of file diff --git a/docs/zh/change-log/README.md b/docs/zh/change-log/README.md new file mode 100644 index 00000000..ef14fad1 --- /dev/null +++ b/docs/zh/change-log/README.md @@ -0,0 +1,133 @@ +--- +sidebar: auto +--- + +# 更新日志 + +## v1.1.8 + +* [ 新增 ] 增加了错误收集和日志收集功能 +* [ 新增 ] 增加了一个表格示例页面 +* [ 修改 ] bug 修复 + +## v1.1.7 + +* [ 修改 ] 多标签页右键菜单 bug 修复 + +## v1.1.6 + +* [ 新增 ] 新增加了多页控制组件 tab 按钮上的右键操作菜单,现在你可以在 D2Admin 中像使用浏览器一样操作多标签页 + +## v1.1.5 + +* [ 修改 ] vue-cli3 项目重构,目录调整 +* [ 修改 ] 全局状态管理设计优化 +* [ 修改 ] 多标签页操作全部转移至 vuex +* [ 修改 ] 修复了多标签页无法清除缓存的 bug +* [ 修改 ] bug fixed [#38](https://github.com/d2-projects/d2-admin/issues/38) +* [ 修改 ] bug fixed [#41](https://github.com/d2-projects/d2-admin/issues/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 +* [ 新增 ] 侧边栏折叠状态现在会根据用户区分记录,刷新页面保留之前的状态 + +## v1.1.4 + +* [ 修改 ] 全局状态管理设计优化 +* [ 修改 ] 主题调优 +* [ 新增 ] playground 模块,方便测试和展示一些功能实现方式/调用方法 +* [ 新增 ] 灰度模式 +* [ 新增 ] 多页模式 +* [ 新增 ] 多页模式缓存 +* [ 新增 ] 多页模式快速关闭(关闭左侧 右侧 全部 其它) +* [ 修改 ] 侧边栏滚动优化 +* [ 新增 ] `d2-container` 填充模式自定义滚动条 +* [ 新增 ] `d2-container` 组件卡片和隐形模式自定义滚动条 +* [ 新增 ] 现在页面标题可以根据路由做出对应变化了 +* [ 新增 ] 版本检查机制 +* [ 新增 ] `d2-container` 隐形模式支持 header 插槽 +* [ 新增 ] 版本检查可以设置为不显示提示框 +* [ 新增 ] 集成 json 查看组件 +* [ 新增 ] 添加了所有图表种类的演示页面 +* [ 修改 ] 修改布局方式,解决了在 Firefox 上 better-scroll 初始化拿不到正确高度的 bug +* [ 新增 ] 右上角显示用户名,用户名持久存储 + +## v1.1.3 + +* [ 修复 ] 侧边栏在折叠时不显示的 bug +* [ 新增 ] v-charts 插件 +* [ 新增 ] 一些演示图表(后续打算把 v-charts 文档上有示例性的演示都展示一下) +* [ 修改 ] D2Admin 经典主题颜色调整 +* [ 新增 ] violet 主题 +* [ 新增 ] 菜单图标 +* [ 修改 ] 新制作了 Fork me 图片 + +## v1.1.2 + +* [ 修改 ] 删除了 G2 相关的依赖 + +## v1.1.1 + +* [ 修改 ] 删除了 G2 相关的代码(移除图表库) +* [ 优化 ] 侧边栏取值逻辑 + +## v1.1.0 + +* [ 修改 ] 顶栏和侧边栏菜单新的结构生成方式,新的方案使用 数据 + 递归组件 实现无限制多级菜单 +* [ 修改 ] 路由注册回归最简单的写法 +* [ 修复 ] 首次加载 loading 样式类名和程序内类名冲突,新的加载类名使用 d2-app-loading 前缀 +* [ 修改 ] 所有类似 dd- 的样式前缀(包括自动注册图标的id前缀)统一改为 d2- +* [ 修复 ] 修复 d2-highlight 组件和 d2-markdown 组件的样式冲突 +* [ 修改 ] 内置组件名称统一改为 d2- 前缀,统一使用横线连接 (kebab-case) 风格 +* [ 修改 ] 顶栏 logo 阴影删除 +* [ 新增 ] 主题系统 +* [ 新增 ] 三个主题,分别为 d2admin 经典,简约线条,流星 +* [ 修改 ] d2-markdown 组件 md 参数改名为 source +* [ 修改 ] 删除了 d2-markdown 组件中图片的白色背景 +* [ 修改 ] 删除 timeago 插件,更换为更强大的 dayjs +* [ 新增 ] Tomorrow Night Blue 主题 +* [ 修改 ] src/assets/style/public-class.scss 写法优化 +* [ 新增 ] [vue-bigdata-table](https://github.com/lison16/vue-bigdata-table)组件 +* [ 修复 ] 侧边栏内容超过一屏后显示错误 +* [ 新增 ] 自定义滚动条演示页面 +* [ 新增 ] 流星主题新增背景图片上层的半透明遮罩 +* [ 修复 ] 主题设置失效bug +* [ 修复 ] router守卫验证登陆部分代码修改 +* [ 修复 ] d2-container 组件改为同步注册(之前的异步注册会有 mounted 生命周期问题,即 slot 内的页面在 mounted 生命周期内拿不到 dom) +* [ 修复 ] d2-container 组件重构 flex 布局 +* [ 新增 ] 404 page +* [ 新增 ] 顶栏联系方式 +* [ 新增 ] 右键菜单组件 +* [ 新增 ] 菜单配置支持空菜单(项目开发的时候有可能需要先把菜单做好查看效果) +* [ 优化 ] 页面左侧菜单滚动条优化 +* [ 修复 ] CSS 边距工具类都加上了 `!important` 来保证在覆盖样式时生效 +* [ 修复 ] IE11 兼容性修复 + +## v1.0.0 + +[https://github.com/d2-projects/d2-admin/releases/tag/v1.0.0](https://github.com/d2-projects/d2-admin/releases/tag/v1.0.0) + +这是第一个版本,还有一点小问题,但是已经可用 \ No newline at end of file diff --git a/docs/zh/collaborator/README.md b/docs/zh/collaborator/README.md new file mode 100644 index 00000000..d005dc72 --- /dev/null +++ b/docs/zh/collaborator/README.md @@ -0,0 +1,5 @@ +--- +sidebar: auto +--- + +# 参与者名单 \ No newline at end of file From 3f893dd38fa471a5cee7144d410124f1df541256 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Sun, 19 Aug 2018 13:27:34 +0800 Subject: [PATCH 05/36] no message Former-commit-id: 0ad98444a977401a075d2bf10c03888791e14a38 [formerly 0ad98444a977401a075d2bf10c03888791e14a38 [formerly 0ad98444a977401a075d2bf10c03888791e14a38 [formerly 0ad98444a977401a075d2bf10c03888791e14a38 [formerly 46736274a7a3203068ed5de797e96c837c599745 [formerly 551cb795c1ed79616eecd54b7d30f98f253aef5a]]]]] Former-commit-id: 8863aabbe1c7cfd73d26fb0c58525b76cf962071 Former-commit-id: e525436863a1b69aef86293c0841fd6327b3a91e Former-commit-id: 9d4262e7f553119c0eba743cb309694c1ff43b6d [formerly e7995754fc4ae75d4fef224954954368f9ca721e] Former-commit-id: 77873de2018306e2b126554707d22276ac8c412d Former-commit-id: b734fc2f1906ca782a53ffa13fccf529d35c3cf4 Former-commit-id: d86912b89c3921defbedf05d865694750aa7b75e Former-commit-id: 9f0d0d64f79383df9a2e872a85e9e86a66629875 Former-commit-id: f2b9dd93162d887027e79e982dc5a24eed2782e9 --- docs/.vuepress/config.js | 14 +++++++++++--- .../combinable-questionnaire.md.REMOVED.git-id | 1 + docs/zh/article/cookbook/what-is-cookbook.md | 3 +++ 3 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 docs/zh/article/cookbook/combinable-questionnaire.md.REMOVED.git-id create mode 100644 docs/zh/article/cookbook/what-is-cookbook.md diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index ad790c71..1c132cb3 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -72,10 +72,10 @@ module.exports = { { text: 'D2 Ribbons', link: '/zh/ecosystem-d2-ribbons/' } ] }, + { text: '文章', link: '/zh/article/' }, { text: '其它', items: [ - { text: '文章归档', link: '/zh/article/' }, { text: '更新日志', link: '/zh/change-log/' }, { text: '参与者名单', link: '/zh/collaborator/' }, { @@ -102,7 +102,7 @@ module.exports = { '/zh/learn-guide/': sideBarLearnGuide(), '/zh/sys-components/': sideBarSysComponents(), '/zh/sys-plugins/': sideBarSysPlugins(), - '/zh/article/': sideBarArticle('版本发布') + '/zh/article/': sideBarArticle('版本发布', 'Cookbook') } } } @@ -153,8 +153,16 @@ function sideBarSysPlugins () { ] } -function sideBarArticle (titleUpdate) { +function sideBarArticle (titleUpdate, titleCookbook) { return [ + { + title: titleCookbook, + collapsable: false, + children: [ + 'cookbook/what-is-cookbook', + 'cookbook/combinable-questionnaire' + ] + }, { title: titleUpdate, collapsable: false, diff --git a/docs/zh/article/cookbook/combinable-questionnaire.md.REMOVED.git-id b/docs/zh/article/cookbook/combinable-questionnaire.md.REMOVED.git-id new file mode 100644 index 00000000..c09f454c --- /dev/null +++ b/docs/zh/article/cookbook/combinable-questionnaire.md.REMOVED.git-id @@ -0,0 +1 @@ +7016ea14567961c24eb1fdee492e0c996099f752 \ No newline at end of file diff --git a/docs/zh/article/cookbook/what-is-cookbook.md b/docs/zh/article/cookbook/what-is-cookbook.md new file mode 100644 index 00000000..53c4758c --- /dev/null +++ b/docs/zh/article/cookbook/what-is-cookbook.md @@ -0,0 +1,3 @@ +# 什么是 Cookbook + +计算机领域的 Cookbook 指的是实用经典案例的意思,是对一些普遍性问题的解决方案的总结和整理。 \ No newline at end of file From 4fa0f3994b730b6e50b9db2763087e1b3a374ee9 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Sun, 19 Aug 2018 21:59:59 +0800 Subject: [PATCH 06/36] no message Former-commit-id: d6cddbdc3d9e1de8f2e5092d337ef9a8a799f6a8 [formerly d6cddbdc3d9e1de8f2e5092d337ef9a8a799f6a8 [formerly d6cddbdc3d9e1de8f2e5092d337ef9a8a799f6a8 [formerly d6cddbdc3d9e1de8f2e5092d337ef9a8a799f6a8 [formerly 6a53a356a6c7ffc2d230e4e5dad88c5bfeebf768 [formerly aa1c8607d1e0dbabcd2145497f0950368ff1954c]]]]] Former-commit-id: 85f307351ccd288a4ac71a239a72d018ebde49fb Former-commit-id: 60325588adc5727c56c95ff2d43f5060d20d251b Former-commit-id: c33056de69eb34657117cacf69a41a67fbad9f21 [formerly e0d3659df71ae404410b752b6667203ccc573345] Former-commit-id: 62efb0aa58f89b5f240de68850dfeb91fafdfd5a Former-commit-id: afa8cf2092a828adff97811d87916d12318d73d5 Former-commit-id: fbfb273ec343b392dbee8e0f8c46a8e9f411b19c Former-commit-id: 384fb76c47b0ed91780a1b0dfdd90012eb46c296 Former-commit-id: 78cfb6996de61dcaf675a3e702ac63ba55787f96 --- docs/zh/collaborator/README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/zh/collaborator/README.md b/docs/zh/collaborator/README.md index d005dc72..ea56aef7 100644 --- a/docs/zh/collaborator/README.md +++ b/docs/zh/collaborator/README.md @@ -2,4 +2,12 @@ sidebar: auto --- -# 参与者名单 \ No newline at end of file +# 参与者名单 + +| avatar | ID | Github | +| :---: | --- | --- | +| | FairyEver | [https://github.com/FairyEver](https://github.com/FairyEver) | +| | sunhaoxiang | [https://github.com/sunhaoxiang](https://github.com/sunhaoxiang) | +| | namklaw | [https://github.com/namklaw](https://github.com/namklaw) | +| | mokeyjay | [https://github.com/mokeyjay](https://github.com/mokeyjay) | +| | Aysnine | [https://github.com/Aysnine](https://github.com/Aysnine) | \ No newline at end of file From 71eacda95e45265653dc353904b8035bd5ae4866 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 08:48:40 +0800 Subject: [PATCH 07/36] no message Former-commit-id: bb46254260b63f79a0446cd6c0b1cae0db87cf7b [formerly bb46254260b63f79a0446cd6c0b1cae0db87cf7b [formerly bb46254260b63f79a0446cd6c0b1cae0db87cf7b [formerly bb46254260b63f79a0446cd6c0b1cae0db87cf7b [formerly f85af0b07319129e3cafc6400247a3b82308b0f0 [formerly 7149ab1e3c32251f164cd38a8b62986afc4554ff]]]]] Former-commit-id: a9aa47ebb3b48597bb758329a27c5d196a1da645 Former-commit-id: b149bde8f052689fa9ed5d03adc4cf6ddb69973e Former-commit-id: 635393b5bab4f4642ac4ebededd44d2c4e309a93 [formerly 8d79bc548f01fd73357a997c883c4177054e3c14] Former-commit-id: d8d4d1e4d22828233f1c4d41ab12c0310f9b53fa Former-commit-id: a07ab011921a7592e3540e9eca0fab9644324a9d Former-commit-id: ed6baa71f200b8257b1c09af11742e0d69e6cae2 Former-commit-id: 3c645da20b8f1716ca776c1e54af22779223ede7 Former-commit-id: 3b472edeba84c3a2a8f3a135a265bac2193a7daa --- docs/.vuepress/config.js | 5 +++-- docs/zh/sys-account/README.md | 7 +++++++ docs/zh/sys-components/{charts-new.md => charts.md} | 4 +++- docs/zh/sys-components/container.md.REMOVED.git-id | 2 +- docs/zh/sys-components/count-up.md | 4 +++- docs/zh/sys-components/highlight.md | 4 +++- docs/zh/sys-components/icon-select.md | 4 +++- docs/zh/sys-components/icon-svg.md | 4 +++- docs/zh/sys-components/icon.md | 4 +++- docs/zh/sys-components/markdown.md | 4 +++- 10 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 docs/zh/sys-account/README.md rename docs/zh/sys-components/{charts-new.md => charts.md} (96%) diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 1c132cb3..02f7a902 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -58,6 +58,7 @@ module.exports = { { text: '路由', link: '/zh/sys-route/' }, { text: '多页面', link: '/zh/sys-multi-page/' }, { text: '主题系统', link: '/zh/sys-theme/' }, + { text: '登陆和注销', link: '/zh/sys-account/' }, { text: '数据持久化', link: '/zh/sys-db/' }, { text: 'CSS 实用类', link: '/zh/sys-css/' }, { text: 'JS Util', link: '/zh/sys-util/' } @@ -130,10 +131,10 @@ function sideBarSysComponents () { 'icon', 'icon-svg', 'icon-select', - 'charts-new', 'markdown', 'highlight', - 'count-up' + 'count-up', + 'charts' ] } ] diff --git a/docs/zh/sys-account/README.md b/docs/zh/sys-account/README.md new file mode 100644 index 00000000..4b94ed06 --- /dev/null +++ b/docs/zh/sys-account/README.md @@ -0,0 +1,7 @@ +--- +sidebar: auto +--- + +# title + +info \ No newline at end of file diff --git a/docs/zh/sys-components/charts-new.md b/docs/zh/sys-components/charts.md similarity index 96% rename from docs/zh/sys-components/charts-new.md rename to docs/zh/sys-components/charts.md index afb35697..7c77cd9d 100644 --- a/docs/zh/sys-components/charts-new.md +++ b/docs/zh/sys-components/charts.md @@ -1,4 +1,6 @@ -# 图表 +# v-charts + +图表组件 ::: tip `1.1.0` 版本使用的是 `G2` 图表库,`1.1.3` 开始使用 `v-charts` diff --git a/docs/zh/sys-components/container.md.REMOVED.git-id b/docs/zh/sys-components/container.md.REMOVED.git-id index 2712e40f..3237b58a 100644 --- a/docs/zh/sys-components/container.md.REMOVED.git-id +++ b/docs/zh/sys-components/container.md.REMOVED.git-id @@ -1 +1 @@ -be315dc4b20db4a72f9543b102c601365693b67d \ No newline at end of file +a9e6a61590987cd12d1cdfbc28bdf44fae14da06 \ No newline at end of file diff --git a/docs/zh/sys-components/count-up.md b/docs/zh/sys-components/count-up.md index a8f1844b..7586cc29 100644 --- a/docs/zh/sys-components/count-up.md +++ b/docs/zh/sys-components/count-up.md @@ -1,4 +1,6 @@ -# 数字动画 +# d2-count-up + +数字动画组件 ## 参数 diff --git a/docs/zh/sys-components/highlight.md b/docs/zh/sys-components/highlight.md index f8830d31..39bc3dc5 100644 --- a/docs/zh/sys-components/highlight.md +++ b/docs/zh/sys-components/highlight.md @@ -1,4 +1,6 @@ -# 代码高亮 +# d2-highlight + +代码高亮显示组件 ## 参数 diff --git a/docs/zh/sys-components/icon-select.md b/docs/zh/sys-components/icon-select.md index 98064360..922d856f 100644 --- a/docs/zh/sys-components/icon-select.md +++ b/docs/zh/sys-components/icon-select.md @@ -1,4 +1,6 @@ -# 图标选择器 +# d2-icon-select + +图标选择器组件 ## 参数 diff --git a/docs/zh/sys-components/icon-svg.md b/docs/zh/sys-components/icon-svg.md index 2bbdd0d5..972baf84 100644 --- a/docs/zh/sys-components/icon-svg.md +++ b/docs/zh/sys-components/icon-svg.md @@ -1,4 +1,6 @@ -# 图标 - SVG +# d2-icon-svg + +SVG 图标组件 ## 参数 diff --git a/docs/zh/sys-components/icon.md b/docs/zh/sys-components/icon.md index aae2eab4..8c946d5b 100644 --- a/docs/zh/sys-components/icon.md +++ b/docs/zh/sys-components/icon.md @@ -1,4 +1,6 @@ -# 图标 +# d2-icon + +图标组件 ## 参数 diff --git a/docs/zh/sys-components/markdown.md b/docs/zh/sys-components/markdown.md index cb8af8b1..32646d76 100644 --- a/docs/zh/sys-components/markdown.md +++ b/docs/zh/sys-components/markdown.md @@ -1,4 +1,6 @@ -# markdown 渲染器 +# d2-markdown + +markdown 渲染器组件 ## 参数 From bf3c3bbc2ed03ad1e730e25d4bab149c909d5c4b Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 09:00:58 +0800 Subject: [PATCH 08/36] no message Former-commit-id: c9a35ca36f54266476b83356d2c81c04101d1db6 [formerly 522967e9c9d33b9abdb30035f5b02b9b0fdaae6d] [formerly c9a35ca36f54266476b83356d2c81c04101d1db6 [formerly 522967e9c9d33b9abdb30035f5b02b9b0fdaae6d] [formerly c9a35ca36f54266476b83356d2c81c04101d1db6 [formerly 522967e9c9d33b9abdb30035f5b02b9b0fdaae6d] [formerly 522967e9c9d33b9abdb30035f5b02b9b0fdaae6d [formerly f5304f171311caf3f42f1b980b41c4e539e6d88a [formerly 2073ad03938bf323d133db3b649529107bf0af6e]]]]] Former-commit-id: 1647041a60bbe98ca41e89310591c1ce38427a7e Former-commit-id: e6d9f0000658bc45da57d805eb744e0afd90a181 Former-commit-id: 39c0db39ba921457f1c613409058c97703cc84c1 [formerly 1ae8d4894b8d536d3d3b86f90fe2abc8de9caea1] Former-commit-id: 2ec997980e56e24d36792e4b3498e0adf57e7e0f Former-commit-id: ae780120b6e30144ae7bdc16d91203030b513f5c Former-commit-id: 1728d9f0ab8dc11ee1515789d4f334e8a30e7c6a Former-commit-id: 3d166d80f1c1ecd4c160be678c15b4ba7486ae65 Former-commit-id: 44b502df79334d0e54a5baaf3082e360696d2cac --- docs/.vuepress/config.js | 4 ++-- docs/zh/communication-group-chat/README.md | 6 ++++++ .../zh/communication-group-chat/image/qq.jpg.REMOVED.git-id | 1 + .../zh/communication-group-chat/image/we.jpg.REMOVED.git-id | 1 + docs/zh/communication-we/README.md | 3 +++ docs/zh/communication-we/image/qr@2x.png.REMOVED.git-id | 1 + 6 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 docs/zh/communication-group-chat/README.md create mode 100644 docs/zh/communication-group-chat/image/qq.jpg.REMOVED.git-id create mode 100644 docs/zh/communication-group-chat/image/we.jpg.REMOVED.git-id create mode 100644 docs/zh/communication-we/README.md create mode 100644 docs/zh/communication-we/image/qr@2x.png.REMOVED.git-id diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 02f7a902..46875b8c 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -82,8 +82,8 @@ module.exports = { { text: '交流', items: [ - { text: '微信公众号', link: '' }, - { text: '交流群', link: '' } + { text: '微信公众号', link: '/zh/communication-we/' }, + { text: '交流群', link: '/zh/communication-group-chat/' } ] }, { diff --git a/docs/zh/communication-group-chat/README.md b/docs/zh/communication-group-chat/README.md new file mode 100644 index 00000000..43b63253 --- /dev/null +++ b/docs/zh/communication-group-chat/README.md @@ -0,0 +1,6 @@ +# 交流群 + +| QQ 交流群 | 作者微信 | +| --- | --- | +| | | +| QQ 群比交流比较活跃 建议加入 | 微信群大于 100 人后需要群主邀请加入 | \ No newline at end of file diff --git a/docs/zh/communication-group-chat/image/qq.jpg.REMOVED.git-id b/docs/zh/communication-group-chat/image/qq.jpg.REMOVED.git-id new file mode 100644 index 00000000..a957a237 --- /dev/null +++ b/docs/zh/communication-group-chat/image/qq.jpg.REMOVED.git-id @@ -0,0 +1 @@ +b27de32f6832b50dc5b8b1dc613060a81f88a8e9 \ No newline at end of file diff --git a/docs/zh/communication-group-chat/image/we.jpg.REMOVED.git-id b/docs/zh/communication-group-chat/image/we.jpg.REMOVED.git-id new file mode 100644 index 00000000..b485920f --- /dev/null +++ b/docs/zh/communication-group-chat/image/we.jpg.REMOVED.git-id @@ -0,0 +1 @@ +12bb778e8779f32a46ee756e6dbb890024b40f5d \ No newline at end of file diff --git a/docs/zh/communication-we/README.md b/docs/zh/communication-we/README.md new file mode 100644 index 00000000..6fe4990b --- /dev/null +++ b/docs/zh/communication-we/README.md @@ -0,0 +1,3 @@ +# 微信公众号 + + \ No newline at end of file diff --git a/docs/zh/communication-we/image/qr@2x.png.REMOVED.git-id b/docs/zh/communication-we/image/qr@2x.png.REMOVED.git-id new file mode 100644 index 00000000..5748278d --- /dev/null +++ b/docs/zh/communication-we/image/qr@2x.png.REMOVED.git-id @@ -0,0 +1 @@ +2ef12d88b2011063784c37f8b8490336503a5f88 \ No newline at end of file From 8cb483a5be648d2ea542bfa1e1043d578a6a11dc Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 09:03:05 +0800 Subject: [PATCH 09/36] no message Former-commit-id: 52fe413b47ab03c354d3168bb722b15ce59e3611 [formerly 52fe413b47ab03c354d3168bb722b15ce59e3611 [formerly 52fe413b47ab03c354d3168bb722b15ce59e3611 [formerly 52fe413b47ab03c354d3168bb722b15ce59e3611 [formerly aa7c6c43016f55b09a1259243f1edfd791483b57 [formerly 3519697ee81d11517e7f7ed2f3054843dbf8085f]]]]] Former-commit-id: 9adccfd197e7fa4fc449640bffe1bb4e02f84699 Former-commit-id: b512a333f69674440e844112e5b6ed74a690ffc8 Former-commit-id: 40110d8a4a9fa7ccd4f1f1fbf6d42abe618f4ba1 [formerly 36e548658177cdfcef953a14725e21ceed722d73] Former-commit-id: f014acb6396d3fe89777f174cb8d4444599682a5 Former-commit-id: a984fce9ceaed41ca544efcf98c55083600d64b6 Former-commit-id: f3044e23a69b9d59a3637a849318a0c47a41e2d7 Former-commit-id: cb83af09e426b63bc9058a58046fa669ba0c1513 Former-commit-id: 7898b2b01f008a93dd3b6a748e6fe5d277130301 --- docs/.vuepress/config.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 46875b8c..f5e4463f 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -89,10 +89,10 @@ module.exports = { { text: '关注我们', items: [ - { text: '掘金', link: '' }, - { text: 'CSDN', link: '' }, - { text: 'segmentfault', link: '' }, - { text: '知乎', link: '' } + { text: '掘金', link: 'https://juejin.im/user/57a48b632e958a006691b946/posts' }, + { text: 'CSDN', link: 'https://blog.csdn.net/fairyever' }, + { text: 'segmentfault', link: 'https://segmentfault.com/blog/liyang-note-book' }, + { text: '知乎', link: 'https://www.zhihu.com/people/fairy-ever/activities' } ] } ] From 1fac762efe06619148224b77c420d0a4f916a7bd Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 09:09:00 +0800 Subject: [PATCH 10/36] no message Former-commit-id: 45798f1ac5048992f57f6e30a5b80373a4970b15 [formerly 7b63be3fc749b339c84ccb462176a98c2fdeb589] [formerly 45798f1ac5048992f57f6e30a5b80373a4970b15 [formerly 7b63be3fc749b339c84ccb462176a98c2fdeb589] [formerly 45798f1ac5048992f57f6e30a5b80373a4970b15 [formerly 7b63be3fc749b339c84ccb462176a98c2fdeb589] [formerly 7b63be3fc749b339c84ccb462176a98c2fdeb589 [formerly 87d029f3f3979500c5e3ae8a62403c0cdd7eadcc [formerly 288d26e9fd5057151c0d8cb73a0e6bbeb67e8845]]]]] Former-commit-id: b30e26118f424e6ebcc8fe5a50ab480e2ae20489 Former-commit-id: 8adf9ff18623e33d829cd2e1ae06dbbe5e2481ce Former-commit-id: 008c2cb3f47c347c9bd9a88dc85df8d290670f3a [formerly 31f12a78ce0d2a79a5c3fa3c71569d06397f463d] Former-commit-id: 8a6433578b0c806b5d1805f749b4e37d80de0946 Former-commit-id: 67f74a35b42e21c31d97877ae968c2affb815c99 Former-commit-id: f8640478c42d8775a4c39ed9b097feed119ce013 Former-commit-id: 97cee869fe61c79cdc23dc11ac3ab351be5a2cd7 Former-commit-id: b8d5e5de48eebff6822f1c0989ba701c910f8a96 --- docs/.vuepress/config.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index f5e4463f..0f74ff14 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -94,6 +94,14 @@ module.exports = { { text: 'segmentfault', link: 'https://segmentfault.com/blog/liyang-note-book' }, { text: '知乎', link: 'https://www.zhihu.com/people/fairy-ever/activities' } ] + }, + { + text: 'D2 在其它地方', + items: [ + { text: 'awesome-vue', link: 'https://github.com/vuejs/awesome-vue' }, + { text: 'ant design 脚手架市场', link: 'http://scaffold.ant.design/#/scaffolds/d2-admin' }, + { text: 'awesomes.cn', link: 'https://www.awesomes.cn/repo/d2-projects/d2-admin' } + ] } ] }, From 8c12534d6e6225e2700ed0a84a4ab06d5a44ce9b Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 09:16:24 +0800 Subject: [PATCH 11/36] no message Former-commit-id: 0eb50df75abed7a3ee0d06df35db9d40e16339c7 [formerly 49715738417dd8df7dd1b75cf87983ab885a33f3] [formerly 0eb50df75abed7a3ee0d06df35db9d40e16339c7 [formerly 49715738417dd8df7dd1b75cf87983ab885a33f3] [formerly 0eb50df75abed7a3ee0d06df35db9d40e16339c7 [formerly 49715738417dd8df7dd1b75cf87983ab885a33f3] [formerly 49715738417dd8df7dd1b75cf87983ab885a33f3 [formerly ec4afb392729505df8cd6af6945184119bf017a0 [formerly 1de6310d68147ea72c37b9095d6bb91973e99ba4]]]]] Former-commit-id: 17d543d7df8f47daac0d33f1e1d479f54dee7cd5 Former-commit-id: b8a7fb7bc72caef581e3c43c0182b5b3f6a105d2 Former-commit-id: 334fbab48d6ef43122dae26bde51e88f0c1293c6 [formerly 6765e21f9cabc942043880f8bb4bc82cc8e129b8] Former-commit-id: a649eecdb47ed1c830050cca1d645455c79551ae Former-commit-id: 3fae11fc63d9ff190824a32b81650802b93b99a7 Former-commit-id: c7c227f7c8699b3bd29b06511ddaac4c63922108 Former-commit-id: 0bb01f696f6738bc75a8590983d7cdf748a5c3e5 Former-commit-id: 8114a9e8611072f7d3b2ec0d6ceab4a2b4c6f154 --- docs/.vuepress/config.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 0f74ff14..ae9b2bca 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -99,8 +99,11 @@ module.exports = { text: 'D2 在其它地方', items: [ { text: 'awesome-vue', link: 'https://github.com/vuejs/awesome-vue' }, - { text: 'ant design 脚手架市场', link: 'http://scaffold.ant.design/#/scaffolds/d2-admin' }, - { text: 'awesomes.cn', link: 'https://www.awesomes.cn/repo/d2-projects/d2-admin' } + { text: 'ant design scaffolds', link: 'http://scaffold.ant.design/#/scaffolds/d2-admin' }, + { text: 'ice vue scaffold', link: 'https://alibaba.github.io/ice/scaffold?type=vue' }, + { text: 'awesomes.cn', link: 'https://www.awesomes.cn/repo/d2-projects/d2-admin' }, + { text: 'oschina.net', link: 'https://www.oschina.net/p/D2admin' }, + { text: 'ctolib.com', link: 'https://www.ctolib.com/FairyEver-d2-admin.html' } ] } ] From ebacb315062d82877e52a026d0f3b13a8cdda8c4 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 09:30:02 +0800 Subject: [PATCH 12/36] no message Former-commit-id: f0ca8deaa10b01d140a67549a9830a831bd2e46c [formerly f0ca8deaa10b01d140a67549a9830a831bd2e46c [formerly f0ca8deaa10b01d140a67549a9830a831bd2e46c [formerly f0ca8deaa10b01d140a67549a9830a831bd2e46c [formerly 10472807956f3d59afd66ceca52b2f6cf698d247 [formerly 7e313104b9c19d38ce86954956dffb1b4995054c]]]]] Former-commit-id: 789b56b72d33f880d7a182a9cc982ccc548b79c7 Former-commit-id: 6ca3e9e517c5d16a98037f0c662420822d87b925 Former-commit-id: 725dfe830a4dca798b1d4de5b52555dd973482a9 [formerly 0cd470a3fd954baa1365a3d612a7505d2b1a378c] Former-commit-id: cc0f478e7e44790cea444e7cea41584db7f62afc Former-commit-id: eb3762fe2a11aa187b780e5f295e65d017bb8708 Former-commit-id: 13a477af4d982de8bd77d79319469fe4a7a06884 Former-commit-id: ae809f645548c054d0a313d8ec1bdba29db01500 Former-commit-id: 5fdfa8fe1b5a46a3c1da83c80450fa8cc4e3829b --- docs/zh/ecosystem-d2-admin-ice/README.md | 6 +- .../zh/ecosystem-d2-admin-start-kit/README.md | 13 ++- docs/zh/ecosystem-d2-crud/README.md | 4 +- docs/zh/ecosystem-d2-ribbons/README.md | 88 ++++++++++++++++++- 4 files changed, 103 insertions(+), 8 deletions(-) diff --git a/docs/zh/ecosystem-d2-admin-ice/README.md b/docs/zh/ecosystem-d2-admin-ice/README.md index 4b94ed06..0de0f0d3 100644 --- a/docs/zh/ecosystem-d2-admin-ice/README.md +++ b/docs/zh/ecosystem-d2-admin-ice/README.md @@ -2,6 +2,8 @@ sidebar: auto --- -# title +# D2Admin ICE -info \ No newline at end of file +项目地址 [https://github.com/d2-projects/d2-admin-ice](https://github.com/d2-projects/d2-admin-ice) + +使用方法见 [https://juejin.im/post/5b6349716fb9a04f834669d6](https://juejin.im/post/5b6349716fb9a04f834669d6) \ No newline at end of file diff --git a/docs/zh/ecosystem-d2-admin-start-kit/README.md b/docs/zh/ecosystem-d2-admin-start-kit/README.md index 4b94ed06..b0f62e36 100644 --- a/docs/zh/ecosystem-d2-admin-start-kit/README.md +++ b/docs/zh/ecosystem-d2-admin-start-kit/README.md @@ -2,6 +2,15 @@ sidebar: auto --- -# title +# D2Admin 项目起始模板 -info \ No newline at end of file +项目地址 [https://github.com/d2-projects/d2-admin-start-kit](https://github.com/d2-projects/d2-admin-start-kit) + +只保留了基础功能,例如 + +* 主题系统 +* 登陆和注销 +* 数据持久化 +* 多标签页 +* 菜单和路由逻辑 +* ... \ No newline at end of file diff --git a/docs/zh/ecosystem-d2-crud/README.md b/docs/zh/ecosystem-d2-crud/README.md index 4b94ed06..21b8b712 100644 --- a/docs/zh/ecosystem-d2-crud/README.md +++ b/docs/zh/ecosystem-d2-crud/README.md @@ -2,6 +2,6 @@ sidebar: auto --- -# title +# D2 CRUD -info \ No newline at end of file +comming soon \ No newline at end of file diff --git a/docs/zh/ecosystem-d2-ribbons/README.md b/docs/zh/ecosystem-d2-ribbons/README.md index 4b94ed06..1bfcf683 100644 --- a/docs/zh/ecosystem-d2-ribbons/README.md +++ b/docs/zh/ecosystem-d2-ribbons/README.md @@ -2,6 +2,90 @@ sidebar: auto --- -# title +![banner](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/doc/banner%402x.png) -info \ No newline at end of file +D2 Ribbons 是一套为开发者准备的开源社区绶带资源,你你可以下载图片到你的项目中使用或者直接使用仓库资源链接。 + +项目地址 [https://github.com/d2-projects/d2-ribbons](https://github.com/d2-projects/d2-ribbons) + +## Features + +* 扁平化风格 +* Github Gitlab Gitee 三套图标 +* 六色主题 +* 半透明 / 不透明样式 +* 文字 / 图标样式 +* @2x 资源 +* 统一尺寸(150 x 150 / 300 x 300 @2x) +* 附带 Github 经典样式的绶带 + +## Story + +> 我想了想究竟是预览放在前面还是介绍放在前面,最后我觉得应该先写东西,因为预览图太多了 + +萌生做这么一个项目是从做 [D2Admin](https://github.com/d2-projects/d2-admin) 的时候,我想给我的项目页面角落加一个 “Fork me on github”,然后我就找了几个开源项目想看看他们用的是什么图片,都不很理想,后来找到了 Github 官方的 ribbons,但是和我的项目风格不是很搭配,Github 官方的 ribbons 还是以前的拟物风格,我希望有一个比较“扁平化”的绶带放在上面,于是我就临时画了一个放上去了,长这个样子: + +![Snip20180711_32](http://fairyever.qiniudn.com/Snip20180711_32.png) + +于是之后我就画了大概半天的事件,画了一套 ribbons 给以后用,自己用,也希望大家能用到,不仅有 github,还有 gitlab 和码云的版本,暂时只做了这些,以后有好的想法了再添加。 + +![Snip20180711_27](http://fairyever.qiniudn.com/Snip20180711_27.png) +![Snip20180711_29](http://fairyever.qiniudn.com/Snip20180711_29.png) + +> 所有的东西都出自一个程序员之手,没有经过专业的设计学习,请大家觉得丑的话轻喷 + +sketch 是我最喜欢的设计软件,推荐给大家。 + +在设计这套图片的时候我也尽量发挥了 sketch 的特性,比如颜色配置,公用样式,symbol等很好用的功能,这些都可以达到改一处动全部和事半功倍的效果。 + +下面放上效果预览: + +## Preview + +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/doc/ribbons-flat-opacity-text-github%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-opacity-text/github/left%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-opacity-text/github/right%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/doc/ribbons-flat-opacity-text-gitlab%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-opacity-text/gitlab/left%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-opacity-text/gitlab/right%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/doc/ribbons-flat-opacity-text-gitee%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-opacity-text/gitee/left%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-opacity-text/gitee/right%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/doc/ribbons-flat-opacity-icon-github%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-opacity-icon/github/left%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-opacity-icon/github/right%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/doc/ribbons-flat-opacity-icon-gitlab%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-opacity-icon/gitlab/left%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-opacity-icon/gitlab/right%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/doc/ribbons-flat-opacity-icon-gitee%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-opacity-icon/gitee/left%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-opacity-icon/gitee/right%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/doc/ribbons-flat-text-github%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-text/github/left%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-text/github/right%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/doc/ribbons-flat-text-gitlab%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-text/gitlab/left%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-text/gitlab/right%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/doc/ribbons-flat-text-gitee%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-text/gitee/left%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-text/gitee/right%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/doc/ribbons-flat-icon-github%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-icon/github/left%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-icon/github/right%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/doc/ribbons-flat-icon-gitlab%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-icon/gitlab/left%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-icon/gitlab/right%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/doc/ribbons-flat-icon-gitee%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-icon/gitee/left%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/flat-icon/gitee/right%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/doc/ribbons-classic-github%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/classic/github/left%402x.png) +![](https://raw.githubusercontent.com/d2-projects/d2-ribbons/master/priview/classic/github/right%402x.png) + +## How to use + +没有固定的使用方法,都是图片,你可以下载下来用到你的项目里,或者直接使用本仓库的图片链接。每款绶带都有 @2x 版本 + +后续还会陆续更新其它的图片资源。 + +其实不论 github 还是码云,官方提供的都有类似的 ribbon,看个人喜好选择 D2 还是官方就好 \ No newline at end of file From 4ab87a53435e86476d76ab001b536eb7a6a43a06 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 11:24:49 +0800 Subject: [PATCH 13/36] no message Former-commit-id: c95bbb0cda10632f0a52750b1fdc318417096d8b [formerly c95bbb0cda10632f0a52750b1fdc318417096d8b [formerly c95bbb0cda10632f0a52750b1fdc318417096d8b [formerly c95bbb0cda10632f0a52750b1fdc318417096d8b [formerly cf41c38701e56c75fafa406fcd1ebea2731d9349 [formerly db814b75bce077138bece7a93f0a27d8d346a031]]]]] Former-commit-id: 05a9602443a85657aeeef66bc7ba8796ecbf168a Former-commit-id: c73c01a89d38ab738285a2b46ebc4d3737f65008 Former-commit-id: 23f1f94e4ddf155ef196079733660d0e26eff466 [formerly 127085dab54d1bf65593a0bb927f364cbe779d67] Former-commit-id: a936d089f64fa0b3d94dcc82486640e91cc49c42 Former-commit-id: 990f623db73ff38b96ccfcc99d16e875b745f557 Former-commit-id: 70ff5a911fd0d7d467c7536c20be48315a494b87 Former-commit-id: 4067f407a7f611477169597c18c33eadbb9a1a48 Former-commit-id: 453ae9d110164915f6f700533c1cb38dc34b01a2 --- docs/zh/sys-plugins/mock.md | 2 +- docs/zh/sys-vuex/README.md | 493 ++++++++++++++++++- src/store/modules/d2admin/modules/account.js | 11 +- src/store/modules/d2admin/modules/db.js | 98 ++-- 4 files changed, 546 insertions(+), 58 deletions(-) diff --git a/docs/zh/sys-plugins/mock.md b/docs/zh/sys-plugins/mock.md index edb33169..48165b7d 100644 --- a/docs/zh/sys-plugins/mock.md +++ b/docs/zh/sys-plugins/mock.md @@ -1,6 +1,6 @@ # 模拟数据 -在 `src/mock/demo/001.js` 配置拦截返回的数据 +使用模拟数据可以在接口还没做好的时候更方便地进行你的开发 ## 使用 diff --git a/docs/zh/sys-vuex/README.md b/docs/zh/sys-vuex/README.md index 4b94ed06..588f7453 100644 --- a/docs/zh/sys-vuex/README.md +++ b/docs/zh/sys-vuex/README.md @@ -1,7 +1,496 @@ --- sidebar: auto +sidebarDepth: 2 --- -# title +# VUEX -info \ No newline at end of file +vuex 系统模块目录 `d2-admin/src/store/modules/d2admin/modules`。 + +所有模块: + +| 模块名 | 介绍 | +| --- | --- | +| account | 账户 | +| db | 持久化 | +| fullscreen | 全屏 | +| gray | 灰度 | +| log | 日志 | +| menu | 菜单 | +| page | 页面和多标签 | +| releases | 版本 | +| theme | 主题 | +| transition | 页面过渡动画 | +| ua | user agent | +| user | 用户信息 | + +下面是每个模块的介绍: + +## account + +account 负责实现用户的登陆和注销逻辑。 + +### actions.login + +#### 介绍 + +用户登陆,通常情况下您需要适当修改这个方法来适配您的特殊需要。 + +#### 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| vm | vue 实例 | 必选 | Object | | | +| username | 账号 | 必选 | String | | | +| password | 密码 | 必选 | String | | | + +#### 示例 + +``` js +this.$store.dispatch('d2admin/account/login', { + vm: this, + username: this.formLogin.username, + password: this.formLogin.password +}) +``` + +### actions.logout + +#### 介绍 + +用户注销,通常情况下您需要适当修改这个方法来适配您的特殊需要。 + +#### 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| vm | vue 实例 | 必选 | Object | | | +| confirm | 注销确认 | 非 | Boolean | | false | + +#### 示例 + +``` js +this.$store.dispatch('d2admin/account/logout', { + vm: this, + confirm: true +}) +``` + +### mutations.load + +#### 介绍 + +用户登陆后从数据库加载一系列的设置,例如: + +* 用户名 +* 主题 +* 页面过渡效果设置 +* 上次退出时的多页列表 +* 侧边栏折叠状态 + +如果你扩展了系统功能并且涉及到设置项的数据持久化,不要忘了更新这里。 + +#### 参数 + +无 + +#### 示例 + +``` js +this.$store.commit('d2admin/account/load') +``` + +## db + +### mutations.set + +#### 介绍 + +将数据存储到指定位置 | 路径不存在会自动初始化。 + +::: warning 注意 +不建议在业务代码中使用此方法,此方法可以访问到任何的持久化数据位置,只在开发系统模块时调用,并且使用时您应该十分清楚您正在做什么。 +::: + +#### 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| dbName | 数据库名称 | 非 | String | database, sys | database | +| path | 存储路径 | 非 | String | | 空字符串 | +| value | 需要存储的值 | 非 | String | | 空字符串 | + +#### 示例 + +``` js +this.commit('d2admin/db/set', { + dbName: 'database', + path: 'demo.sometext', + value: 'Hello World' +}) +``` + +### mutations.setByUser + +#### 介绍 + +将数据存储到指定位置 | 路径不存在会自动初始化 [ 区分用户 ]。 + +::: warning 注意 +不建议在业务代码中使用此方法,此方法可以访问到任何的持久化数据位置,只在开发系统模块时调用,并且使用时您应该十分清楚您正在做什么。 +::: + +#### 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| dbName | 数据库名称 | 非 | String | database, sys | database | +| path | 存储路径 | 非 | String | | 空字符串 | +| value | 需要存储的值 | 非 | String | | 空字符串 | + +#### 示例 + +``` js +this.commit('d2admin/db/setByUser', { + dbName: 'database', + path: 'demo.sometext', + value: 'Hello World' +}) +``` + +### actions.get + +#### 介绍 + +效果类似于取值 dbName.path || defaultValue。 + +::: warning 注意 +不建议在业务代码中使用此方法,此方法可以访问到任何的持久化数据位置,只在开发系统模块时调用,并且使用时您应该十分清楚您正在做什么。 +::: + +#### 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| dbName | 数据库名称 | 非 | String | database, sys | database | +| path | 存储路径 | 非 | String | | 空字符串 | +| defaultValue | 取值失败的默认值 | 非 | String | | 空字符串 | + +#### 示例 + +``` js +const value = await this.dispatch('d2admin/db/get', { + dbName: 'database', + path: 'demo.sometext', + defaultValue: 'Hello World' +}) +``` + +### actions.getByUser + +#### 介绍 + +效果类似于取值 dbName.path[user] || defaultValue。 + +::: warning 注意 +不建议在业务代码中使用此方法,此方法可以访问到任何的持久化数据位置,只在开发系统模块时调用,并且使用时您应该十分清楚您正在做什么。 +::: + +#### 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| dbName | 数据库名称 | 非 | String | database, sys | database | +| path | 存储路径 | 非 | String | | 空字符串 | +| defaultValue | 取值失败的默认值 | 非 | String | | 空字符串 | + +#### 示例 + +``` js +const value = await this.dispatch('d2admin/db/getByUser', { + dbName: 'database', + path: 'demo.sometext', + defaultValue: 'Hello World' +}) +``` + +### actions.database + +#### 介绍 + +获取存储数据库对象。 + +#### 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| user | 是否区分用户 | 非 | Boolean | | false | + +#### 示例 + +不区分用户存储: + +``` js +const db = await this.dispatch('d2admin/db/database') +db + .set('keyName', 'value') + .write() +``` + +区分用户存储: + +``` js +const db = await this.dispatch('d2admin/db/database', { + user: true +}) +db + .set('keyName', 'value') + .write() +``` + +### actions.databaseClear + +#### 介绍 + +清空存储数据库对象。 + +#### 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| user | 是否区分用户 | 非 | Boolean | | false | + +#### 示例 + +不区分用户清空: + +``` js +this.dispatch('d2admin/db/databaseClear') +``` + +区分用户清空: + +``` js +this.dispatch('d2admin/db/databaseClear', { + user: true +}) +``` + +如果您想进行后续操作,可以接受返回值,返回值为可以直接操作的 db 对象: + +``` js +const db = await this.dispatch('d2admin/db/databaseClear') +db + .set('keyName', 'value') + .write() +``` + +### actions.databasePage + +#### 介绍 + +获取存储数据库对象 [ 区分页面 ]。 + +#### 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| vm | vue 实例 | 必选 | Object | | | +| basis | 页面区分依据 | 非 | name, path, fullPath | | name | +| user | 是否区分用户 | 非 | Boolean | | false | + +#### 示例 + +不区分用户存储: + +``` js +const db = await this.$store.dispatch('d2admin/db/databasePage', { + vm: this +}) +db + .set('keyName', 'value') + .write() +``` + +区分用户存储: + +``` js +const db = await this.$store.dispatch('d2admin/db/databasePage', { + vm: this, + user: true +}) +db + .set('keyName', 'value') + .write() +``` + +### actions.databasePageClear + +#### 介绍 + +清空存储数据库对象 [ 区分页面 ]。 + +#### 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| vm | vue 实例 | 必选 | Object | | | +| basis | 页面区分依据 | 非 | name, path, fullPath | | name | +| user | 是否区分用户 | 非 | Boolean | | false | + +#### 示例 + +不区分用户清空: + +``` js +this.$store.dispatch('d2admin/db/databasePageClear', { + vm: this +}) +``` + +区分用户清空: + +``` js +this.$store.dispatch('d2admin/db/databasePageClear', { + vm: this, + user: true +}) +``` + +如果您想进行后续操作,可以接受返回值,返回值为可以直接操作的 db 对象: + +``` js +const db = await this.dispatch('d2admin/db/databasePageClear') +db + .set('keyName', 'value') + .write() +``` + +### actions.pageSet + +#### 介绍 + +快速将页面当前的数据 ( $data ) 持久化。 + +#### 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| vm | vue 实例 | 必选 | Object | | | +| basis | 页面区分依据 | 非 | name, path, fullPath | | name | +| user | 是否区分用户 | 非 | Boolean | | false | + +#### 示例 + +不区分用户存储: + +``` js +this.$store.dispatch('d2admin/db/pageSet', { + vm: this +}) +``` + +区分用户存储: + +``` js +this.$store.dispatch('d2admin/db/pageSet', { + vm: this, + user: true +}) +``` + +### actions.pageLoad + +#### 介绍 + +快速获取页面快速持久化的数据。 + +#### 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| vm | vue 实例 | 必选 | Object | | | +| basis | 页面区分依据 | 非 | name, path, fullPath | | name | +| user | 是否区分用户 | 非 | Boolean | | false | + +#### 示例 + +不区分用户获取: + +``` js +// 获取数据 +const data = await this.pageLoad({ + vm: this +}) +// 将数据还原到页面 +for (const key in data) { + if (data.hasOwnProperty(key)) this[key] = data[key] +} +``` + +区分用户获取: + +``` js +// 获取数据 +const data = await this.pageLoad({ + vm: this, + user: true +}) +// 将数据还原到页面 +for (const key in data) { + if (data.hasOwnProperty(key)) this[key] = data[key] +} +``` + +### actions.pageClear + +#### 介绍 + +清空页面快照。 + +#### 参数 + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| vm | vue 实例 | 必选 | Object | | | +| basis | 页面区分依据 | 非 | name, path, fullPath | | name | +| user | 是否区分用户 | 非 | Boolean | | false | + +#### 示例 + +不区分用户清空: + +``` js +this.$store.dispatch('d2admin/db/pageClear', { + vm: this +}) +``` + +区分用户清空: + +``` js +this.$store.dispatch('d2admin/db/pageClear', { + vm: this, + user: true +}) +``` + +如果您想进行后续操作,可以接受返回值,返回值为可以直接操作的 db 对象: + +``` js +const db = await this.dispatch('d2admin/db/pageClear') +db + .set('keyName', 'value') + .write() +``` + +## fullscreen +## gray +## log +## menu +## page +## releases +## theme +## transition +## ua +## user \ No newline at end of file diff --git a/src/store/modules/d2admin/modules/account.js b/src/store/modules/d2admin/modules/account.js index 927188b4..6aef0392 100644 --- a/src/store/modules/d2admin/modules/account.js +++ b/src/store/modules/d2admin/modules/account.js @@ -32,7 +32,7 @@ export default { commit('d2admin/user/set', { name: res.data.name }, { root: true }) - // 用户登陆后从数据库加载一系列的设置 + // 用户登陆后从持久化数据加载一系列的设置 commit('d2admin/account/load', null, { root: true }) // 跳转路由 vm.$router.push({ @@ -51,7 +51,7 @@ export default { * @param {Object} param vm {Object} vue 实例 * @param {Object} param confirm {Boolean} 是否需要确认 */ - logout ({ commit }, { vm, confirm }) { + logout ({ commit }, { vm, confirm = false }) { /** * @description 注销 */ @@ -87,8 +87,7 @@ export default { }, mutations: { /** - * @class ... - * @description 用户登陆后从数据库加载一系列的设置 + * @description 用户登陆后从持久化数据加载一系列的设置 * @param {Object} state vuex state */ load (state) { @@ -98,9 +97,9 @@ export default { this.commit('d2admin/theme/load') // DB -> store 加载页面过渡效果设置 this.commit('d2admin/transition/load') - // DB -> store 数据库加载上次退出时的多页列表 + // DB -> store 持久化数据加载上次退出时的多页列表 this.commit('d2admin/page/openedLoad') - // DB -> store 数据库加载这个用户之前设置的侧边栏折叠状态 + // DB -> store 持久化数据加载这个用户之前设置的侧边栏折叠状态 this.commit('d2admin/menu/asideCollapseLoad') } } diff --git a/src/store/modules/d2admin/modules/db.js b/src/store/modules/d2admin/modules/db.js index 8160ac25..d6a3e733 100644 --- a/src/store/modules/d2admin/modules/db.js +++ b/src/store/modules/d2admin/modules/db.js @@ -11,7 +11,7 @@ import util from '@/libs/util.js' * @returns {String} 可以直接使用的路径 */ function pathInit ({ - dbName = 'db', + dbName = 'database', path = '', user = true, validator = () => true, @@ -33,14 +33,14 @@ export default { mutations: { /** * @description 将数据存储到指定位置 | 路径不存在会自动初始化 - * @description 效果类似于 dbName.path = value + * @description 效果类似于取值 dbName.path = value * @param {Object} state vuex state * @param {Object} param dbName {String} 数据库名称 * @param {Object} param path {String} 存储路径 * @param {Object} param value {*} 需要存储的值 */ set (state, { - dbName = 'db', + dbName = 'database', path = '', value = '' }) { @@ -52,14 +52,14 @@ export default { }, /** * @description 将数据存储到指定位置 | 路径不存在会自动初始化 [ 区分用户 ] - * @description 效果类似于 dbName.path[user] = value + * @description 效果类似于取值 dbName.path[user] = value * @param {Object} state vuex state * @param {Object} param dbName {String} 数据库名称 * @param {Object} param path {String} 存储路径 * @param {Object} param value {*} 需要存储的值 */ setByUser (state, { - dbName = 'db', + dbName = 'database', path = '', value = '' }) { @@ -70,6 +70,50 @@ export default { } }, actions: { + /** + * @description 获取数据 + * @description 效果类似于取值 dbName.path || defaultValue + * @param {Object} state vuex state + * @param {Object} param dbName {String} 数据库名称 + * @param {Object} param path {String} 存储路径 + * @param {Object} param defaultValue {*} 取值失败的默认值 + */ + get (context, { + dbName = 'database', + path = '', + defaultValue = '' + }) { + return new Promise(resolve => { + resolve(db.get(pathInit({ + dbName, + path, + user: false, + defaultValue + })).value()) + }) + }, + /** + * @description 获取数据 [ 区分用户 ] + * @description 效果类似于取值 dbName.path[user] || defaultValue + * @param {Object} state vuex state + * @param {Object} param dbName {String} 数据库名称 + * @param {Object} param path {String} 存储路径 + * @param {Object} param defaultValue {*} 取值失败的默认值 + */ + getByUser (context, { + dbName = 'database', + path = '', + defaultValue = '' + }) { + return new Promise((resolve, reject) => { + resolve(db.get(pathInit({ + dbName, + path, + user: true, + defaultValue + })).value()) + }) + }, /** * @description 获取存储数据库对象 * @param {Object} context context @@ -212,50 +256,6 @@ export default { defaultValue: {} }))) }) - }, - /** - * @description 获取数据 - * @description 效果类似于 dbName.path || defaultValue - * @param {Object} state vuex state - * @param {Object} param dbName {String} 数据库名称 - * @param {Object} param path {String} 存储路径 - * @param {Object} param defaultValue {*} 取值失败的默认值 - */ - get (context, { - dbName = 'db', - path = '', - defaultValue = '' - }) { - return new Promise(resolve => { - resolve(db.get(pathInit({ - dbName, - path, - user: false, - defaultValue - })).value()) - }) - }, - /** - * @description 获取数据 [ 区分用户 ] - * @description 效果类似于 dbName.path[user] || defaultValue - * @param {Object} state vuex state - * @param {Object} param dbName {String} 数据库名称 - * @param {Object} param path {String} 存储路径 - * @param {Object} param defaultValue {*} 取值失败的默认值 - */ - getByUser (context, { - dbName = 'db', - path = '', - defaultValue = '' - }) { - return new Promise((resolve, reject) => { - resolve(db.get(pathInit({ - dbName, - path, - user: true, - defaultValue - })).value()) - }) } } } From 99cde83d51b9fef161b616af45867bf3f7e008ae Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 14:54:22 +0800 Subject: [PATCH 14/36] no message Former-commit-id: 2cce3d7518bb922671074ea995b337a27a0bf019 [formerly bd0a7b91707c636000704ddebd82430889ec99c0] [formerly 2cce3d7518bb922671074ea995b337a27a0bf019 [formerly bd0a7b91707c636000704ddebd82430889ec99c0] [formerly 2cce3d7518bb922671074ea995b337a27a0bf019 [formerly bd0a7b91707c636000704ddebd82430889ec99c0] [formerly bd0a7b91707c636000704ddebd82430889ec99c0 [formerly 5b4ede183cb7bc6e9e09372a2d989b7d27a9ecbc [formerly 055366d18ee4cf5968901a3abd4d70172aab824d]]]]] Former-commit-id: 4eab9562eb008394c685b33188d0b4003adecf7b Former-commit-id: 6db321cfeec2cd66eb85cd9c5d7732c8abb9cdbd Former-commit-id: 6aa5a6b7941928bcd639a6f1a35055c565ddd49d [formerly c4465ba21b69d2544af663e2763cfefb4f715ab3] Former-commit-id: 0aea8bbd6425dfd734b8f2cdc00ecca563807f58 Former-commit-id: 78787ef90d443cac6341cbc8746d71adfab62b11 Former-commit-id: 59742f53b18b4cc4eb7c8797e0b284d833d19658 Former-commit-id: 4fbdf28390d8006a7ec7ce172ddf4fd9d353ad85 Former-commit-id: 9dfdeec9755d591f7a7338ba8cb077c3d78efb27 --- docs/zh/sys-vuex/README.md | 496 ------------------ docs/zh/sys-vuex/README.md.REMOVED.git-id | 1 + .../components/header-error-log/index.vue | 1 - src/store/modules/d2admin/modules/gray.js | 6 +- src/store/modules/d2admin/modules/log.js | 1 - src/store/modules/d2admin/modules/menu.js | 4 +- src/store/modules/d2admin/modules/page.js | 2 +- src/store/modules/d2admin/modules/theme.js | 4 +- 8 files changed, 10 insertions(+), 505 deletions(-) delete mode 100644 docs/zh/sys-vuex/README.md create mode 100644 docs/zh/sys-vuex/README.md.REMOVED.git-id diff --git a/docs/zh/sys-vuex/README.md b/docs/zh/sys-vuex/README.md deleted file mode 100644 index 588f7453..00000000 --- a/docs/zh/sys-vuex/README.md +++ /dev/null @@ -1,496 +0,0 @@ ---- -sidebar: auto -sidebarDepth: 2 ---- - -# VUEX - -vuex 系统模块目录 `d2-admin/src/store/modules/d2admin/modules`。 - -所有模块: - -| 模块名 | 介绍 | -| --- | --- | -| account | 账户 | -| db | 持久化 | -| fullscreen | 全屏 | -| gray | 灰度 | -| log | 日志 | -| menu | 菜单 | -| page | 页面和多标签 | -| releases | 版本 | -| theme | 主题 | -| transition | 页面过渡动画 | -| ua | user agent | -| user | 用户信息 | - -下面是每个模块的介绍: - -## account - -account 负责实现用户的登陆和注销逻辑。 - -### actions.login - -#### 介绍 - -用户登陆,通常情况下您需要适当修改这个方法来适配您的特殊需要。 - -#### 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| vm | vue 实例 | 必选 | Object | | | -| username | 账号 | 必选 | String | | | -| password | 密码 | 必选 | String | | | - -#### 示例 - -``` js -this.$store.dispatch('d2admin/account/login', { - vm: this, - username: this.formLogin.username, - password: this.formLogin.password -}) -``` - -### actions.logout - -#### 介绍 - -用户注销,通常情况下您需要适当修改这个方法来适配您的特殊需要。 - -#### 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| vm | vue 实例 | 必选 | Object | | | -| confirm | 注销确认 | 非 | Boolean | | false | - -#### 示例 - -``` js -this.$store.dispatch('d2admin/account/logout', { - vm: this, - confirm: true -}) -``` - -### mutations.load - -#### 介绍 - -用户登陆后从数据库加载一系列的设置,例如: - -* 用户名 -* 主题 -* 页面过渡效果设置 -* 上次退出时的多页列表 -* 侧边栏折叠状态 - -如果你扩展了系统功能并且涉及到设置项的数据持久化,不要忘了更新这里。 - -#### 参数 - -无 - -#### 示例 - -``` js -this.$store.commit('d2admin/account/load') -``` - -## db - -### mutations.set - -#### 介绍 - -将数据存储到指定位置 | 路径不存在会自动初始化。 - -::: warning 注意 -不建议在业务代码中使用此方法,此方法可以访问到任何的持久化数据位置,只在开发系统模块时调用,并且使用时您应该十分清楚您正在做什么。 -::: - -#### 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| dbName | 数据库名称 | 非 | String | database, sys | database | -| path | 存储路径 | 非 | String | | 空字符串 | -| value | 需要存储的值 | 非 | String | | 空字符串 | - -#### 示例 - -``` js -this.commit('d2admin/db/set', { - dbName: 'database', - path: 'demo.sometext', - value: 'Hello World' -}) -``` - -### mutations.setByUser - -#### 介绍 - -将数据存储到指定位置 | 路径不存在会自动初始化 [ 区分用户 ]。 - -::: warning 注意 -不建议在业务代码中使用此方法,此方法可以访问到任何的持久化数据位置,只在开发系统模块时调用,并且使用时您应该十分清楚您正在做什么。 -::: - -#### 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| dbName | 数据库名称 | 非 | String | database, sys | database | -| path | 存储路径 | 非 | String | | 空字符串 | -| value | 需要存储的值 | 非 | String | | 空字符串 | - -#### 示例 - -``` js -this.commit('d2admin/db/setByUser', { - dbName: 'database', - path: 'demo.sometext', - value: 'Hello World' -}) -``` - -### actions.get - -#### 介绍 - -效果类似于取值 dbName.path || defaultValue。 - -::: warning 注意 -不建议在业务代码中使用此方法,此方法可以访问到任何的持久化数据位置,只在开发系统模块时调用,并且使用时您应该十分清楚您正在做什么。 -::: - -#### 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| dbName | 数据库名称 | 非 | String | database, sys | database | -| path | 存储路径 | 非 | String | | 空字符串 | -| defaultValue | 取值失败的默认值 | 非 | String | | 空字符串 | - -#### 示例 - -``` js -const value = await this.dispatch('d2admin/db/get', { - dbName: 'database', - path: 'demo.sometext', - defaultValue: 'Hello World' -}) -``` - -### actions.getByUser - -#### 介绍 - -效果类似于取值 dbName.path[user] || defaultValue。 - -::: warning 注意 -不建议在业务代码中使用此方法,此方法可以访问到任何的持久化数据位置,只在开发系统模块时调用,并且使用时您应该十分清楚您正在做什么。 -::: - -#### 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| dbName | 数据库名称 | 非 | String | database, sys | database | -| path | 存储路径 | 非 | String | | 空字符串 | -| defaultValue | 取值失败的默认值 | 非 | String | | 空字符串 | - -#### 示例 - -``` js -const value = await this.dispatch('d2admin/db/getByUser', { - dbName: 'database', - path: 'demo.sometext', - defaultValue: 'Hello World' -}) -``` - -### actions.database - -#### 介绍 - -获取存储数据库对象。 - -#### 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| user | 是否区分用户 | 非 | Boolean | | false | - -#### 示例 - -不区分用户存储: - -``` js -const db = await this.dispatch('d2admin/db/database') -db - .set('keyName', 'value') - .write() -``` - -区分用户存储: - -``` js -const db = await this.dispatch('d2admin/db/database', { - user: true -}) -db - .set('keyName', 'value') - .write() -``` - -### actions.databaseClear - -#### 介绍 - -清空存储数据库对象。 - -#### 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| user | 是否区分用户 | 非 | Boolean | | false | - -#### 示例 - -不区分用户清空: - -``` js -this.dispatch('d2admin/db/databaseClear') -``` - -区分用户清空: - -``` js -this.dispatch('d2admin/db/databaseClear', { - user: true -}) -``` - -如果您想进行后续操作,可以接受返回值,返回值为可以直接操作的 db 对象: - -``` js -const db = await this.dispatch('d2admin/db/databaseClear') -db - .set('keyName', 'value') - .write() -``` - -### actions.databasePage - -#### 介绍 - -获取存储数据库对象 [ 区分页面 ]。 - -#### 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| vm | vue 实例 | 必选 | Object | | | -| basis | 页面区分依据 | 非 | name, path, fullPath | | name | -| user | 是否区分用户 | 非 | Boolean | | false | - -#### 示例 - -不区分用户存储: - -``` js -const db = await this.$store.dispatch('d2admin/db/databasePage', { - vm: this -}) -db - .set('keyName', 'value') - .write() -``` - -区分用户存储: - -``` js -const db = await this.$store.dispatch('d2admin/db/databasePage', { - vm: this, - user: true -}) -db - .set('keyName', 'value') - .write() -``` - -### actions.databasePageClear - -#### 介绍 - -清空存储数据库对象 [ 区分页面 ]。 - -#### 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| vm | vue 实例 | 必选 | Object | | | -| basis | 页面区分依据 | 非 | name, path, fullPath | | name | -| user | 是否区分用户 | 非 | Boolean | | false | - -#### 示例 - -不区分用户清空: - -``` js -this.$store.dispatch('d2admin/db/databasePageClear', { - vm: this -}) -``` - -区分用户清空: - -``` js -this.$store.dispatch('d2admin/db/databasePageClear', { - vm: this, - user: true -}) -``` - -如果您想进行后续操作,可以接受返回值,返回值为可以直接操作的 db 对象: - -``` js -const db = await this.dispatch('d2admin/db/databasePageClear') -db - .set('keyName', 'value') - .write() -``` - -### actions.pageSet - -#### 介绍 - -快速将页面当前的数据 ( $data ) 持久化。 - -#### 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| vm | vue 实例 | 必选 | Object | | | -| basis | 页面区分依据 | 非 | name, path, fullPath | | name | -| user | 是否区分用户 | 非 | Boolean | | false | - -#### 示例 - -不区分用户存储: - -``` js -this.$store.dispatch('d2admin/db/pageSet', { - vm: this -}) -``` - -区分用户存储: - -``` js -this.$store.dispatch('d2admin/db/pageSet', { - vm: this, - user: true -}) -``` - -### actions.pageLoad - -#### 介绍 - -快速获取页面快速持久化的数据。 - -#### 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| vm | vue 实例 | 必选 | Object | | | -| basis | 页面区分依据 | 非 | name, path, fullPath | | name | -| user | 是否区分用户 | 非 | Boolean | | false | - -#### 示例 - -不区分用户获取: - -``` js -// 获取数据 -const data = await this.pageLoad({ - vm: this -}) -// 将数据还原到页面 -for (const key in data) { - if (data.hasOwnProperty(key)) this[key] = data[key] -} -``` - -区分用户获取: - -``` js -// 获取数据 -const data = await this.pageLoad({ - vm: this, - user: true -}) -// 将数据还原到页面 -for (const key in data) { - if (data.hasOwnProperty(key)) this[key] = data[key] -} -``` - -### actions.pageClear - -#### 介绍 - -清空页面快照。 - -#### 参数 - -| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | -| --- | --- | --- | --- | --- | --- | -| vm | vue 实例 | 必选 | Object | | | -| basis | 页面区分依据 | 非 | name, path, fullPath | | name | -| user | 是否区分用户 | 非 | Boolean | | false | - -#### 示例 - -不区分用户清空: - -``` js -this.$store.dispatch('d2admin/db/pageClear', { - vm: this -}) -``` - -区分用户清空: - -``` js -this.$store.dispatch('d2admin/db/pageClear', { - vm: this, - user: true -}) -``` - -如果您想进行后续操作,可以接受返回值,返回值为可以直接操作的 db 对象: - -``` js -const db = await this.dispatch('d2admin/db/pageClear') -db - .set('keyName', 'value') - .write() -``` - -## fullscreen -## gray -## log -## menu -## page -## releases -## theme -## transition -## ua -## user \ No newline at end of file diff --git a/docs/zh/sys-vuex/README.md.REMOVED.git-id b/docs/zh/sys-vuex/README.md.REMOVED.git-id new file mode 100644 index 00000000..e9fc110d --- /dev/null +++ b/docs/zh/sys-vuex/README.md.REMOVED.git-id @@ -0,0 +1 @@ +2a60eb296c97cea63a3922421d984040d656a988 \ No newline at end of file diff --git a/src/layout/header-aside/components/header-error-log/index.vue b/src/layout/header-aside/components/header-error-log/index.vue index c326860a..563e3be6 100644 --- a/src/layout/header-aside/components/header-error-log/index.vue +++ b/src/layout/header-aside/components/header-error-log/index.vue @@ -34,7 +34,6 @@ 清空 - diff --git a/src/store/modules/d2admin/modules/gray.js b/src/store/modules/d2admin/modules/gray.js index 137ddd00..b46c88c5 100644 --- a/src/store/modules/d2admin/modules/gray.js +++ b/src/store/modules/d2admin/modules/gray.js @@ -15,10 +15,10 @@ export default { /** * @description 设置灰度模式 * @param {Object} state vuex state - * @param {Boolean} value new value + * @param {Boolean} active active */ - set (state, value) { - state.active = value + set (state, active) { + state.active = active } } } diff --git a/src/store/modules/d2admin/modules/log.js b/src/store/modules/d2admin/modules/log.js index ceb40377..e6517cc3 100644 --- a/src/store/modules/d2admin/modules/log.js +++ b/src/store/modules/d2admin/modules/log.js @@ -37,7 +37,6 @@ export default { actions: { /** * @description 添加一个日志 - * @param {Object} state vuex state * @param {Object} param type {String} 类型 * @param {Object} param err {Error} 错误对象 * @param {Object} param vm {Object} vue 实例 diff --git a/src/store/modules/d2admin/modules/menu.js b/src/store/modules/d2admin/modules/menu.js index 48327f94..8a9a7272 100644 --- a/src/store/modules/d2admin/modules/menu.js +++ b/src/store/modules/d2admin/modules/menu.js @@ -13,6 +13,7 @@ export default { }, mutations: { /** + * @description 设置顶栏菜单 * @param {Object} state vuex state * @param {Array} menu menu setting */ @@ -21,6 +22,7 @@ export default { state.header = menu }, /** + * @description 设置侧边栏菜单 * @param {Object} state vuex state * @param {Array} menu menu setting */ @@ -58,7 +60,7 @@ export default { }) }, /** - * 从数据库读取侧边栏展开或者收缩 + * 从持久化数据读取侧边栏展开或者收缩 * @param {Object} state vuex state */ async asideCollapseLoad (state) { diff --git a/src/store/modules/d2admin/modules/page.js b/src/store/modules/d2admin/modules/page.js index e0d50ccf..e373ea74 100644 --- a/src/store/modules/d2admin/modules/page.js +++ b/src/store/modules/d2admin/modules/page.js @@ -101,7 +101,7 @@ export default { }, /** * @class opened - * @description 从数据库载入分页列表 + * @description 从持久化数据载入分页列表 * @param {Object} state vuex state */ async openedLoad (state) { diff --git a/src/store/modules/d2admin/modules/theme.js b/src/store/modules/d2admin/modules/theme.js index d6b4677b..3bd2adb0 100644 --- a/src/store/modules/d2admin/modules/theme.js +++ b/src/store/modules/d2admin/modules/theme.js @@ -20,7 +20,7 @@ export default { }, mutations: { /** - * @description 激活一个主题(应用到dom上) + * @description 激活一个主题 * @param {Object} state vuex state * @param {String} themeValue 需要激活的主题名称 */ @@ -37,7 +37,7 @@ export default { }) }, /** - * @description 从数据库加载主题设置 + * @description 从持久化数据加载主题设置 * @param {Object} state vuex state */ async load (state) { From f0f8dafcdc66c55edf9c6f05e5314cfbfd6ee985 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 15:05:23 +0800 Subject: [PATCH 15/36] no message Former-commit-id: 15f7595756838065cb5934c4e926b3564a625462 [formerly 15f7595756838065cb5934c4e926b3564a625462 [formerly 15f7595756838065cb5934c4e926b3564a625462 [formerly 15f7595756838065cb5934c4e926b3564a625462 [formerly 2a5e689f04cdd92f75698e1f87c12e4537c8dcb4 [formerly 650602409fe3f163171359f395df83e374421d0d]]]]] Former-commit-id: 9b5be7619eb956704e54b932635ea47aae3bae2e Former-commit-id: e48bca4aa9a6486e0610d279fa91f7cdb1a679f3 Former-commit-id: a1f3ced04dc21695a1203532b61aca4dc23ee3ed [formerly bb6a84e0badca1413af1dddc7b4a108354b516cd] Former-commit-id: ffb40c29c7dbc05b487f7fe6d92f4551e1e4fbba Former-commit-id: ddac58df45e9ed65443fa6211ce4127b039fdd9a Former-commit-id: 02823724912e5d0b2f3b191caea07ca5a21a5321 Former-commit-id: 4c8b0a609bf215c974661954fc6c7cb25f81197e Former-commit-id: 6c0d3eecb5ea5c2ed78ad67b908544cc1367d11e --- docs/zh/sys-vuex/README.md.REMOVED.git-id | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/sys-vuex/README.md.REMOVED.git-id b/docs/zh/sys-vuex/README.md.REMOVED.git-id index e9fc110d..8c229487 100644 --- a/docs/zh/sys-vuex/README.md.REMOVED.git-id +++ b/docs/zh/sys-vuex/README.md.REMOVED.git-id @@ -1 +1 @@ -2a60eb296c97cea63a3922421d984040d656a988 \ No newline at end of file +cef4ed89daccd1ec44747823f47bcddc0ccf55a1 \ No newline at end of file From 028db5cfe0cd43780c2c9e417c75202d0b3788a5 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 15:12:27 +0800 Subject: [PATCH 16/36] no message Former-commit-id: 43f7dfcce8b282d60ee5d257f4ecb2398857475d [formerly 43f7dfcce8b282d60ee5d257f4ecb2398857475d [formerly 43f7dfcce8b282d60ee5d257f4ecb2398857475d [formerly 43f7dfcce8b282d60ee5d257f4ecb2398857475d [formerly 977f496091875f737033f4bf3b50c843f13c12bb [formerly 844fb4bd119bec09fc8bfc8ba40fd11d1bf7ef34]]]]] Former-commit-id: a5e8be6962a92c5b845a22c8c5589e0351336a57 Former-commit-id: 0dd4b069e50ddc0ecfa1df5de02eeeee4db08e67 Former-commit-id: 84312ce60cbb6699914d4a613c4cbe52e3a5672f [formerly 095f685ca3bcc595a25c003d5ed3ce2c2460a592] Former-commit-id: f9cce1221641dab21fdb447202e5b83b106e41c7 Former-commit-id: 45611710d5af55deeaffcf8b2977fa4e3e6d078b Former-commit-id: 3bb9f222c8ea2ef24ef916d95e3e40a6861641cb Former-commit-id: 5e2c071506d56844ad1be3d30233ccff94e258c9 Former-commit-id: 2e0ad5b756e1fee6588951b59a6e62aa1e95f01f --- docs/zh/sys-vuex/README.md.REMOVED.git-id | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/sys-vuex/README.md.REMOVED.git-id b/docs/zh/sys-vuex/README.md.REMOVED.git-id index 8c229487..33d32f69 100644 --- a/docs/zh/sys-vuex/README.md.REMOVED.git-id +++ b/docs/zh/sys-vuex/README.md.REMOVED.git-id @@ -1 +1 @@ -cef4ed89daccd1ec44747823f47bcddc0ccf55a1 \ No newline at end of file +77cbe469173091531b42ee3517e008773c673764 \ No newline at end of file From bc29000844c295b3d10fbfdb2e175c5654b0afa6 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 15:15:43 +0800 Subject: [PATCH 17/36] no message Former-commit-id: a5cbc6320b7b19e0198c75103f37d0d5a3f8737b [formerly 4247c867af70a6ca1ad3241a11d110c63b6a1f20] [formerly a5cbc6320b7b19e0198c75103f37d0d5a3f8737b [formerly 4247c867af70a6ca1ad3241a11d110c63b6a1f20] [formerly a5cbc6320b7b19e0198c75103f37d0d5a3f8737b [formerly 4247c867af70a6ca1ad3241a11d110c63b6a1f20] [formerly 4247c867af70a6ca1ad3241a11d110c63b6a1f20 [formerly a4d29eeca7d8bd7189a19f6a2b031149269bae48 [formerly db328e2bc493e807c33526380f30668a28b0acda]]]]] Former-commit-id: 8df2e938854b6e10fa33cc160d2fa8cbcf3fd6b3 Former-commit-id: 7389cfce93db267032c4a904748815f75058f4a1 Former-commit-id: e6f03321e1a225126254c121def43ac61b4ac811 [formerly 06fe466b4cab1d796271011c8c98837301a67854] Former-commit-id: 3ab37ac0a9b2a98d9e62126fedd36486b956acef Former-commit-id: 3b5e7ef9737234093379c7a12ead0895608bc0b1 Former-commit-id: 65f2cf47c6c7da682affdcb41becc813c5b46716 Former-commit-id: f380f4e66278c2c41dcd3d6951e9dfb18786ccf1 Former-commit-id: 42feb85ddc609c9354fb25a89f83bb46ad80052b --- docs/zh/sys-vuex/README.md.REMOVED.git-id | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/sys-vuex/README.md.REMOVED.git-id b/docs/zh/sys-vuex/README.md.REMOVED.git-id index 33d32f69..ee4ad296 100644 --- a/docs/zh/sys-vuex/README.md.REMOVED.git-id +++ b/docs/zh/sys-vuex/README.md.REMOVED.git-id @@ -1 +1 @@ -77cbe469173091531b42ee3517e008773c673764 \ No newline at end of file +080facc2ab1ba35272b9f62ff92efc9a31687b86 \ No newline at end of file From db1df816a976973ab54479148223590d87d4258f Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 16:11:54 +0800 Subject: [PATCH 18/36] menu Former-commit-id: 371c4de084ca51272f16949436366e28c8d565e4 [formerly 371c4de084ca51272f16949436366e28c8d565e4 [formerly 371c4de084ca51272f16949436366e28c8d565e4 [formerly 371c4de084ca51272f16949436366e28c8d565e4 [formerly 357023919231e6bd3e5c33b74ac3e04f987f7cec [formerly 8d5523e224ba4b0b91d46512dd2f5450fc836aa8]]]]] Former-commit-id: 8303cab984415bba3c0b555a451c5eef0d5baff2 Former-commit-id: 65635f231558c04301acef8f97de677935fd93c8 Former-commit-id: de2ad6108b6f16aae262e109bca42e2013f98309 [formerly fa10fe66f1be19d5a24dc96183e68d3b036bd0f6] Former-commit-id: 56c4e298a7bc34b434831c3abc77586b1e228be8 Former-commit-id: dd4655d27d39a0961e958c98f72c4de59c63ddae Former-commit-id: d9db10f05de6fec89b7febcac9e72a6135018992 Former-commit-id: 9744b6117adfce111a25e4e980ae72bf3fc261fe Former-commit-id: 980f2fc1cc163a4da1bc0c26d8f05831f37b5c5e --- docs/zh/sys-menu/README.md | 56 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/docs/zh/sys-menu/README.md b/docs/zh/sys-menu/README.md index 4b94ed06..f5468e3c 100644 --- a/docs/zh/sys-menu/README.md +++ b/docs/zh/sys-menu/README.md @@ -2,6 +2,58 @@ sidebar: auto --- -# title +# 菜单 -info \ No newline at end of file +D2Admin 的顶栏菜单和侧边栏菜单相互独立互不影响。 + +## 数据源 + +顶栏数据使用 `$store.state.d2admin.menu.header` 作为数据源。[API](../sys-vuex/#state-header) + +侧栏数据使用 `$store.state.d2admin.menu.aside` 作为数据源。[API](../sys-vuex/#state-aside) + +## 设置菜单 + +顶栏使用 `$store.commit('d2admin/menu/headerSet', menu)` 更新数据源。[API](../sys-vuex/#mutations-headerset) + +侧栏使用 `$store.commit('d2admin/menu/asideSet', menu)` 更新数据源。[API](../sys-vuex/#mutations-asideset) + +menu 的数据格式见 [menu 数据格式](../sys-vuex/#mutations-headerset) + +## 菜单联动 + +首先请明确一点,D2Admin 完整版的菜单联动只是一个简单方案,不要拘泥于此演示,下面介绍完整版联动的实现帮助您更快速实现自己的联动方案: + +设置数据源 + +在 `d2-admin/src/menu/index.js` 中导出了两个变量,分别是: + +* menuAside 预备侧边栏菜单 +* menuHeader 顶栏菜单 + +在 main.js 中使用下面的方式导入 + +``` js +import { menuHeader, menuAside } from '@/menu' +``` + +menuHeader 在初始化根实例时在 created 生命周期直接赋值给顶栏菜单 + +``` js +this.$store.commit('d2admin/menu/headerSet', menuHeader) +``` + +然后在根实例中添加 $route.matched 的监听器 + +``` js +watch: { + '$route.matched' (val) { + const _side = menuAside.filter(menu => menu.path === val[0].path) + this.$store.commit('d2admin/menu/asideSet', _side.length > 0 ? _side[0].children : []) + } +} +``` + +这段代码的作用是当路由改变时,根据当前的路由找到 menuAside 中匹配当前路由对象中顶级路由的那个项目,并且赋值给侧边栏菜单达到联动效果。 + +您可以删除这部分代码,随意使用 vuex 中提供的顶栏和侧边栏菜单的设置方法来实现自己的菜单联动。 \ No newline at end of file From da925fcb945cd419f17e51e3fa7eb7ecfb158613 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 16:21:59 +0800 Subject: [PATCH 19/36] route Former-commit-id: 45085c94f05973e87f91a4cd539eb1f69fae6474 [formerly 45085c94f05973e87f91a4cd539eb1f69fae6474 [formerly 45085c94f05973e87f91a4cd539eb1f69fae6474 [formerly 45085c94f05973e87f91a4cd539eb1f69fae6474 [formerly 0bac42e922c8b50e05e0ad78617a23de35488490 [formerly b090584385e9f6a0eebdf409f74d31c6a1c33530]]]]] Former-commit-id: 9b1318c1241874eb3b8be55c0cd536e60e1e1281 Former-commit-id: 459e43013678df1baa4e32d1034e9a37789f8456 Former-commit-id: b74b2e5aed3f6a2aa370ac57250bfebf05e8222a [formerly 94c9739cb71761dc135d3394027a6ad715032939] Former-commit-id: 95a55f194b03e688603aa784c6f816015217a0c2 Former-commit-id: 0c77ac00369f1e4cc3e2fad83067e0f02934d777 Former-commit-id: 30a401eb0802130cf77635d0d6a9cedf7c2afda4 Former-commit-id: 14fafe6552471b8bc4e77b43532f477bfd2859d0 Former-commit-id: f147d4d0e1d4d4af724a51b04c57cff32f06eccd --- docs/zh/sys-route/README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/zh/sys-route/README.md b/docs/zh/sys-route/README.md index 4b94ed06..1dec93a5 100644 --- a/docs/zh/sys-route/README.md +++ b/docs/zh/sys-route/README.md @@ -2,6 +2,14 @@ sidebar: auto --- -# title +# 路由 -info \ No newline at end of file +## 数据 + +完整版的 D2Admin 路由设置文件在 `d2-admin/src/router/routes.js`。 + +需要注意的是大多数路由设置要写在 frameIn 下。frameIn 中的页面会在嵌套在一个包含顶栏和侧边栏的页面布局中显示。 + +## 路由配置 + +路由注册和钩子设置文件为 `d2-admin/src/router/index.js`,此文件中将 `routes.js` 中导出的 routes 变量注册到路由,并且设置后续的路由拦截和登陆状态判断,多页面的新建页面事件触发也来自这里。该文件再导出注册了所有页面的路由实例,在 `main.js` 中注册到 vue 根实例。 \ No newline at end of file From a119707712a7c88a1d84d872d36b5018c3ae4f82 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 16:36:12 +0800 Subject: [PATCH 20/36] multi-page Former-commit-id: 454fcfc880da299415f1f00e91816e5893de65f5 [formerly 4186b73adf184a219cb99b864bc54521c5a82e20] [formerly 454fcfc880da299415f1f00e91816e5893de65f5 [formerly 4186b73adf184a219cb99b864bc54521c5a82e20] [formerly 454fcfc880da299415f1f00e91816e5893de65f5 [formerly 4186b73adf184a219cb99b864bc54521c5a82e20] [formerly 4186b73adf184a219cb99b864bc54521c5a82e20 [formerly dfeaba5fa3c82c58479a1e8e28885ae99c4b0d39 [formerly 88de4628c18edd33be2d16418d2d4b426af4e85d]]]]] Former-commit-id: 128f235871e7095098252d0c73f1ac0653ec1d64 Former-commit-id: dcc526d1fd39c4211748745160dac52700b7cb1b Former-commit-id: 2afd91bf4bf3718587a367247d7c0de0097b76ae [formerly 97dff9d0418ecad1bc6c7d914cbd469d157ed0f0] Former-commit-id: b0f72a451500e28962fd5d461c459532deecd2d8 Former-commit-id: 68e2dd4501db98301123375804204cfbee97fbb1 Former-commit-id: 65df23b80ab8768f5a481d47c22d11c8183bc313 Former-commit-id: b475fa8a2a328f188c1c594ef47ecd03efd0f141 Former-commit-id: 261f8a797a8e3f30799d0ecb55ee8850a8e6b104 --- docs/zh/sys-multi-page/README.md | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/docs/zh/sys-multi-page/README.md b/docs/zh/sys-multi-page/README.md index 4b94ed06..7073a0c1 100644 --- a/docs/zh/sys-multi-page/README.md +++ b/docs/zh/sys-multi-page/README.md @@ -2,6 +2,29 @@ sidebar: auto --- -# title +# 多页面 -info \ No newline at end of file +D2Admin 默认支持多页面,并且支持多页面控制器上的 tab 标签页右键菜单控制,可以实现“关闭全部”,“关闭其它”,“关闭左侧”,“关闭右侧”的功能。 + +## 注册页面 + +D2Admin 的多页面设置源头在 `d2-admin/src/router/routes.js`,该文件导出了一个 `frameInRoutes` 变量,`d2-admin/src/main.js` 中使用下面的方式导入: + +``` js +import { frameInRoutes } from '@/router/routes' +``` + +然后在根实例中加入了一个名为 `getAllPageFromRoutes` 的方法,该方法在 `created` 生命周期调用,递归处理 `frameInRoutes` 中的数据将支持多标签页显示所有页面数据扁平为一位数组,然后使用: + +``` js +$store.commit('d2admin/page/poolSet', pool) +``` +将得到的路由数据存储到 vuex 中备用。 + +## 触发 + +新建页面的触发在 `d2-admin/src/router/index.js` 中的 `router.afterEach` 钩子中。涉及的方法参见 [API](../sys-vuex/#page) + +## 标签页控制 + +标签页组件在 `d2-admin/src/layout/header-aside/components/tabs/index.vue`,该组件实现多页面的各种关闭控制。 \ No newline at end of file From 2e53668236fc14679c5ef3487d75ff26e8fea75b Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 16:58:35 +0800 Subject: [PATCH 21/36] db Former-commit-id: f49fd649e8112762da16c19cc47096a1ee4df915 [formerly f49fd649e8112762da16c19cc47096a1ee4df915 [formerly f49fd649e8112762da16c19cc47096a1ee4df915 [formerly f49fd649e8112762da16c19cc47096a1ee4df915 [formerly e823cb5704053a752c459a73df46bc8e7f84499b [formerly 2e0a028ed58db71cd881a04674c9f40528a3d519]]]]] Former-commit-id: 099414d526aaef2ffe6ccf8b4cd80b2f82617a00 Former-commit-id: e767cab4e22f02b67a613cc52b6a6ca6b2d2ecd0 Former-commit-id: 0b903e8fd6908a000c132c633c3d78edbb976b63 [formerly 84cb3b3748ee30c4add1ca4b54d08c1c7e789e24] Former-commit-id: 70e4e52abfcd456d1e07beac5021284c94c67806 Former-commit-id: c6171ff60f2ebd06268a7622a01dc3053326095b Former-commit-id: 4be56a352dca28edf92dd4822c76c03f1366bed6 Former-commit-id: 4ac03030ea453be384ec095aea4ba856d34759b3 Former-commit-id: 9111882dabfcc04b5557461844df46578fa3f156 --- docs/.vuepress/config.js | 2 - docs/zh/sys-account/README.md | 7 --- docs/zh/sys-css/README.md | 104 ++++++++++++++++++++++++++++++- docs/zh/sys-db/README.md | 59 +++++++++++++++++- docs/zh/sys-multi-page/README.md | 2 +- docs/zh/sys-theme/README.md | 7 --- 6 files changed, 160 insertions(+), 21 deletions(-) delete mode 100644 docs/zh/sys-account/README.md delete mode 100644 docs/zh/sys-theme/README.md diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index ae9b2bca..7a8568e0 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -57,8 +57,6 @@ module.exports = { { text: '菜单', link: '/zh/sys-menu/' }, { text: '路由', link: '/zh/sys-route/' }, { text: '多页面', link: '/zh/sys-multi-page/' }, - { text: '主题系统', link: '/zh/sys-theme/' }, - { text: '登陆和注销', link: '/zh/sys-account/' }, { text: '数据持久化', link: '/zh/sys-db/' }, { text: 'CSS 实用类', link: '/zh/sys-css/' }, { text: 'JS Util', link: '/zh/sys-util/' } diff --git a/docs/zh/sys-account/README.md b/docs/zh/sys-account/README.md deleted file mode 100644 index 4b94ed06..00000000 --- a/docs/zh/sys-account/README.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -sidebar: auto ---- - -# title - -info \ No newline at end of file diff --git a/docs/zh/sys-css/README.md b/docs/zh/sys-css/README.md index 4b94ed06..443f8b92 100644 --- a/docs/zh/sys-css/README.md +++ b/docs/zh/sys-css/README.md @@ -2,6 +2,106 @@ sidebar: auto --- -# title +# CSS 实用类 -info \ No newline at end of file +## 样式 + +| 类名 | 效果 | +| --- | --- | +| `.d2-card` | 使 el-card 组件样式跟随主题变化 | + +* `.d2-card` 示例 + +``` vue + + + body + + +``` + +## 文字 + +| 类名 | 效果 | +| --- | --- | +| `.d2-text-center` | 文字水平居中 | + +## 浮动 + +| 类名 | 效果 | +| --- | --- | +| `.d2-fl` | 左浮动 | +| `.d2-fr` | 右浮动 | +| `.d2-clearfix` | 清除浮动 | + +## 边距 + +| 类名 | 效果 | +| --- | --- | +| `.d2-m-0` | 外边距 0px | +| `.d2-mt-0` | 上外边距 0px | +| `.d2-mr-0` | 右外边距 0px | +| `.d2-mb-0` | 下外边距 0px | +| `.d2-ml-0` | 左外边距 0px | +| `.d2-p-0` | 内边距 0px | +| `.d2-pt-0` | 上内边距 0px | +| `.d2-pr-0` | 右内边距 0px | +| `.d2-pb-0` | 下内边距 0px | +| `.d2-pl-0` | 左内边距 0px | +| `.d2-m-5` | 外边距 5px | +| `.d2-mt-5` | 上外边距 5px | +| `.d2-mr-5` | 右外边距 5px | +| `.d2-mb-5` | 下外边距 5px | +| `.d2-ml-5` | 左外边距 5px | +| `.d2-p-5` | 内边距 5px | +| `.d2-pt-5` | 上内边距 5px | +| `.d2-pr-5` | 右内边距 5px | +| `.d2-pb-5` | 下内边距 5px | +| `.d2-pl-5` | 左内边距 5px | +| `.d2-m-10` | 外边距 10px | +| `.d2-mt-10` | 上外边距 10px | +| `.d2-mr-10` | 右外边距 10px | +| `.d2-mb-10` | 下外边距 10px | +| `.d2-ml-10` | 左外边距 10px | +| `.d2-p-10` | 内边距 10px | +| `.d2-pt-10` | 上内边距 10px | +| `.d2-pr-10` | 右内边距 10px | +| `.d2-pb-10` | 下内边距 10px | +| `.d2-pl-10` | 左内边距 10px | +| `.d2-m-15` | 外边距 15px | +| `.d2-mt-15` | 上外边距 15px | +| `.d2-mr-15` | 右外边距 15px | +| `.d2-mb-15` | 下外边距 15px | +| `.d2-ml-15` | 左外边距 15px | +| `.d2-p-15` | 内边距 15px | +| `.d2-pt-15` | 上内边距 15px | +| `.d2-pr-15` | 右内边距 15px | +| `.d2-pb-15` | 下内边距 15px | +| `.d2-pl-15` | 左内边距 15px | +| `.d2-m-20` | 外边距 20px | +| `.d2-mt-20` | 上外边距 20px | +| `.d2-mr-20` | 右外边距 20px | +| `.d2-mb-20` | 下外边距 20px | +| `.d2-ml-20` | 左外边距 20px | +| `.d2-p-20` | 内边距 20px | +| `.d2-pt-20` | 上内边距 20px | +| `.d2-pr-20` | 右内边距 20px | +| `.d2-pb-20` | 下内边距 20px | +| `.d2-pl-20` | 左内边距 20px | + +## 边距简写 + +20px 设定为通用边距 可以如下简写 + +| 类名 | 效果 | +| --- | --- | +| `.d2-m` | 外边距 20px | +| `.d2-mt` | 上外边距 20px | +| `.d2-mr` | 右外边距 20px | +| `.d2-mb` | 下外边距 20px | +| `.d2-ml` | 左外边距 20px | +| `.d2-p` | 内边距 20px | +| `.d2-pt` | 上内边距 20px | +| `.d2-pr` | 右内边距 20px | +| `.d2-pb` | 下内边距 20px | +| `.d2-pl` | 左内边距 20px | \ No newline at end of file diff --git a/docs/zh/sys-db/README.md b/docs/zh/sys-db/README.md index 4b94ed06..bfabe98e 100644 --- a/docs/zh/sys-db/README.md +++ b/docs/zh/sys-db/README.md @@ -2,6 +2,61 @@ sidebar: auto --- -# title +# 数据持久化 -info \ No newline at end of file +D2Admin 对数据持久化做了更贴心的包装。 + +数据持久化在 D2Admin 中主要体现在两个方面: + +* 系统设置持久化 +* 用户数据持久化 + +系统设置持久化已经在核心模块中写好,这里主要介绍用户数据持久化。 + +## 公用存储 + +公用存储指所有用户共用的存储区域, 使用 + +``` js +await this.$store.dispatch('d2admin/db/database') +``` + +获得存储实例进行操作。 + +## 私有存储 + +私有存储指当前用户专用的存储区域, 不同用户之间存储不会相互干扰, 使用 + +``` js +await this.$store.dispatch('d2admin/db/database', { user: true }) +``` + +获得存储实例进行操作, 不同用户条件下获取的存储实例指向位置不同。 + +## 路由存储 + +路由存储指当前路由的存储区域, 不同路由之间存储不会相互干扰, 使用 + +``` js +await this.$store.dispatch('d2admin/db/databasePage', { vm: this }) +``` + +获得存储实例进行操作, 不同路由条件下获取的存储实例指向位置不同, 可以指定路由区分依据 name | path | fullPath, 默认根据路由的 name 区分不同的路由。 + +## 私有路由存储 + +私有路由存储指当前路由的存储区域, 并且同时还根据用户区分, 相当于结合了 “路由存储” 和 “私有存储”, 不同路由以及不同用户之间存储不会相互干扰, 使用 + +``` js +await this.$store.dispatch('d2admin/db/databasePage', { vm: this, user: true }) +``` + +获得存储实例进行操作, 不同路由和用户条件下获取的存储实例指向位置不同, 可以指定路由区分依据 name | path | fullPath, 默认根据路由的 name 区分不同的路由。 + +## 路由快照 + +路由快照相当于路由存储一种快捷操作, 会将传入 vm 实例的 $data 全部持久化, 下面的表单来自 Element 的表单示例, 在 D2Admin 的本页示例中你可以随意填写这个表单, 表单内容会自动实时持久化, 无论是切换标签页、重新打开标签页、刷新浏览器、重开浏览器、重开浏览器标签页等, 该页面数据都会自动恢复到上次填写的状态, 这些都只需要你使用 D2Admin 提供的两个方法, 总共只需要多写十几行代码。 + +## 私有路由快照 + +私有路由快照相当于私有路由存储一种快捷操作, 会将传入 vm 实例的 $data 全部根据用户区分持久化, 下面的表单来自 Element 的表单示例, 在 D2Admin 的本页示例中你可以随意填写这个表单, 表单内容会自动实时持久化, 无论是切换标签页、重新打开标签页、刷新浏览器、重开浏览器、重开浏览器标签页等, 该页面数据都会自动恢复到上次填写的状态, 这些都只需要你使用 D2Admin 提供的两个方法, 总共只需要多写十几行代码。 \ No newline at end of file diff --git a/docs/zh/sys-multi-page/README.md b/docs/zh/sys-multi-page/README.md index 7073a0c1..ee1893ec 100644 --- a/docs/zh/sys-multi-page/README.md +++ b/docs/zh/sys-multi-page/README.md @@ -19,7 +19,7 @@ import { frameInRoutes } from '@/router/routes' ``` js $store.commit('d2admin/page/poolSet', pool) ``` -将得到的路由数据存储到 vuex 中备用。 +将得到的路由数据存储到 vuex 中备用。这份数据在操作多页面数据时会使用到。 ## 触发 diff --git a/docs/zh/sys-theme/README.md b/docs/zh/sys-theme/README.md deleted file mode 100644 index 4b94ed06..00000000 --- a/docs/zh/sys-theme/README.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -sidebar: auto ---- - -# title - -info \ No newline at end of file From 0bab823ed0c3dc537ac9a480f614e513107e80c5 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 17:23:53 +0800 Subject: [PATCH 22/36] util Former-commit-id: 9e534638e19d90dda0a58f51c72bf357197b6dbc [formerly 9e534638e19d90dda0a58f51c72bf357197b6dbc [formerly 9e534638e19d90dda0a58f51c72bf357197b6dbc [formerly 9e534638e19d90dda0a58f51c72bf357197b6dbc [formerly 93175c24c130aae61b0985c5df6ebbe383a2423b [formerly 61bd4ea88fd1f00ab51bac9b8e2ca6ff155bda77]]]]] Former-commit-id: 0fc0a100e3501f16ace2cbb1c3fdde1ee1adbd99 Former-commit-id: ea0b61d03d4b8edfa2be252f14f08297ecaa85fd Former-commit-id: a410662a8434553011921ed6c26642c382821886 [formerly 0d96ac769297181f0e1b3bcd425b8ba3350bf809] Former-commit-id: 51f989ffffd9e5b7c14df8b01316722552211861 Former-commit-id: 9cf093f055108ba0c44fbadf647ac0a8b8a0edf6 Former-commit-id: 8ff437b0598d505a2c6aa0ce48d49509e9dd11b8 Former-commit-id: 111037b164f2da1498cde7ecc787c9be79dc68aa Former-commit-id: 96e83f30f6b2cfdd5d3bbe166c27e62cccdd5bf2 --- docs/zh/sys-util/README.md | 200 ++++++++++++++++++++++++++++++++++++- 1 file changed, 198 insertions(+), 2 deletions(-) diff --git a/docs/zh/sys-util/README.md b/docs/zh/sys-util/README.md index 4b94ed06..51d7eff5 100644 --- a/docs/zh/sys-util/README.md +++ b/docs/zh/sys-util/README.md @@ -2,6 +2,202 @@ sidebar: auto --- -# title +# Util 实用工具 -info \ No newline at end of file +D2Admin 的 util 模块位置:`d2-admin/src/libs/util.js` + +## util.cookies.set + +**介绍:** + +存储 cookie 值 + +**参数** + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| name | 名称 | 必选 | String | | | +| value | 值 | 必选 | String | | | +| setting | 设置 | 必选 | Object | [js-cookie](https://github.com/js-cookie/js-cookie#readme) | `{ expires: 1 }` | + +**使用示例:** + +``` js +util.cookies.set({ + name: 'name', + value: 'value', + setting: { + expires: 365 + } +}) +``` + +**为什么不直接使用 cookie:** + +util.cookies 内部使用 js-cookie 进行操作,并且在 cookie 名称上多做了一层逻辑封装,例如 + +``` js +util.cookies.set({ + name: 'name', + value: 'value', + setting: { + expires: 365 + } +}) +``` + +实际存储的 cookie 是 + +`d2admin-${version}-name` : `value` + +使用 + +``` js +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 时无论赋值还是取值,都觉察不出这层包装 + +::: tip +不止 cookie 这样,db 的存储逻辑也会自动根据版本区分 +::: + +## util.cookies.get + +**介绍:** + +拿到 cookie 值 + +**参数** + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| name | 名称 | 必选 | String | | | + +**使用示例:** + +``` js +const data = util.cookies.get('name') +``` + +## util.cookies.getAll + +**介绍:** + +拿到 cookie 全部的值 + +**参数** + +无 + +**使用示例:** + +``` js +const data = util.cookies.getAll() +``` + +## util.cookies.remove + +**介绍:** + +删除 cookie + +**参数** + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| name | 名称 | 必选 | String | | | + +**使用示例:** + +``` js +util.cookies.remove('name') +``` + +## util.title + +**介绍:** + +更新标题 + +**参数** + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| titleText | title 名称 | 必选 | String | | | + +**使用示例:** + +``` js +util.title('NewTitle') +``` + +结果:**`${process.env.VUE_APP_TITLE}` | NewTitle** + +::: tip +`process.env.VUE_APP_TITLE` 在 `d2-admin/.env` 和 `d2-admin/.env.development` 中设置 +::: + +## util.open + +**介绍:** + +打开新页面 + +**参数** + +| 参数名 | 介绍 | 必选 | 值类型 | 可选值 | 默认值 | +| --- | --- | --- | --- | --- | --- | +| url | 新的页面地址 | 必选 | String | | | + +**使用示例:** + +``` js +util.open('http://www.xxx.com') +``` + +## util.ua + +**介绍:** + +获取所有的 UA 信息 + +**参数** + +无 + +**使用示例:** + +``` js +const ua = util.ua() +``` + +结果示例 + +``` js +{ + 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: {} +} +``` From bddd67f232198c28f74bae27809680a9305e4930 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 17:59:44 +0800 Subject: [PATCH 23/36] log Former-commit-id: 66ad9c0e6aa8e82daabbb3003e6b1f21bed11432 [formerly 8f4de997cfd08bb97fa0aaa0b614880a58ca22db] [formerly 66ad9c0e6aa8e82daabbb3003e6b1f21bed11432 [formerly 8f4de997cfd08bb97fa0aaa0b614880a58ca22db] [formerly 66ad9c0e6aa8e82daabbb3003e6b1f21bed11432 [formerly 8f4de997cfd08bb97fa0aaa0b614880a58ca22db] [formerly 8f4de997cfd08bb97fa0aaa0b614880a58ca22db [formerly 94db47ba387945eedf2430722c749dd459f66392 [formerly ba79b27e174ca667547772b483a7a83d82a3e549]]]]] Former-commit-id: ac12249c5171273579b30d4c5eefcbe294972572 Former-commit-id: 001e629f6e25fa5eacfa39398d29028f6d514e66 Former-commit-id: 98d17c8a4ba34988ae77439d50ce5149c46698c5 [formerly 03684fb4f5dc3d9ae745ff3af3dfd2f19ef87c4b] Former-commit-id: 3992a57057f70aa3cd125e04e4fe5b6ba8407389 Former-commit-id: ef526ad1b94f89cfb72765bbf8462b40fc33422e Former-commit-id: 9af90964c7457e28d0fa5d1175d1b2f91959a4d6 Former-commit-id: 31e2d088d85406e71565cf40536c90126feb2a3e Former-commit-id: 4bf6683297c5626a82858e6806bf25b5fa9013b2 --- docs/.vuepress/config.js | 5 +++- docs/zh/sys-plugins/console.md | 51 ++++++++++++++++++++++++++++++++++ docs/zh/sys-plugins/error.md | 13 +++++++++ docs/zh/sys-plugins/log.md | 17 ++++++++++++ 4 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 docs/zh/sys-plugins/console.md create mode 100644 docs/zh/sys-plugins/error.md create mode 100644 docs/zh/sys-plugins/log.md diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 7a8568e0..d443fdfd 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -157,7 +157,10 @@ function sideBarSysPlugins () { 'data-export', 'data-import', 'i18n', - 'mock.md' + 'mock', + 'error', + 'log', + 'console' ] } ] diff --git a/docs/zh/sys-plugins/console.md b/docs/zh/sys-plugins/console.md new file mode 100644 index 00000000..a11d88ce --- /dev/null +++ b/docs/zh/sys-plugins/console.md @@ -0,0 +1,51 @@ +# 控制台打印优化 + +使用 $log 可以在控制台输出美观的日志信息 + + + +## 胶囊 + +此方法打印一行“胶囊”样式的信息,即上图前四条 + +**参数:** + +$log.capsule( `左侧文字`, `右侧文字`, `主题样式` ) + +**示例:** + +``` js +this.$log.capsule('title', 'success', 'success') +``` + +## 彩色文字 + +此方法可以随意组合打印文字的颜色顺序 + +``` js +this.$log.colorful([ + { text: 'H', type: 'default' }, + { text: 'e', type: 'primary' }, + { text: 'l', type: 'success' }, + { text: 'l', type: 'warning' }, + { text: 'o', type: 'danger' } +]) +``` + +上面的代码效果为效果图中第五行 + +## 快速方法 + +* $log.default +* $log.primary +* $log.success +* $log.warning +* $log.danger + +**示例:** + +``` js +this.$log.primary('primary style') +``` + +这五个快速方法的效果为效果图中第六至十行 \ No newline at end of file diff --git a/docs/zh/sys-plugins/error.md b/docs/zh/sys-plugins/error.md new file mode 100644 index 00000000..6ad8c571 --- /dev/null +++ b/docs/zh/sys-plugins/error.md @@ -0,0 +1,13 @@ +# 错误捕捉 + +框架内已经做好错误捕捉处理,您不需要任何设置,当发生一个错误时,错误会被自动记录在日志中,并且在控制台显示相关错误信息。 + +日志查看界面: + +![](http://fairyever.qiniudn.com/20180820173544.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) + +控制台输出: + +> 只在开发模式下输出 + +![](http://fairyever.qiniudn.com/20180820172927.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) \ No newline at end of file diff --git a/docs/zh/sys-plugins/log.md b/docs/zh/sys-plugins/log.md new file mode 100644 index 00000000..8e8c66ad --- /dev/null +++ b/docs/zh/sys-plugins/log.md @@ -0,0 +1,17 @@ +# 日志 + +使用 $logAdd 可以快速记录日志 + +示例: + +![](http://fairyever.qiniudn.com/20180820174810.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) + +查看日志: + +![](http://fairyever.qiniudn.com/20180820174524.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) + +使用方式: + +``` js +this.$logAdd('your log text') +``` \ No newline at end of file From 71e22e15437dc0590b5fdd3e638104a85814cf44 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 18:04:36 +0800 Subject: [PATCH 24/36] change log Former-commit-id: 095fead86fe17c1e1b86e1d8dc71d218cccef94b [formerly 095fead86fe17c1e1b86e1d8dc71d218cccef94b [formerly 095fead86fe17c1e1b86e1d8dc71d218cccef94b [formerly 095fead86fe17c1e1b86e1d8dc71d218cccef94b [formerly 47155266b5e6df546cc0ff2ec23c75a868110b44 [formerly 372c8774e7608241ada547f8b5c339d32fb0d84d]]]]] Former-commit-id: a4e1485bbfd09d977fe96b6d4deee5da47c8f646 Former-commit-id: 3c0d7bba2e47395f26e79c62a37a089d1ae7e02e Former-commit-id: 9d26f7e00c6591a7f706a8e32d5408766c849e2c [formerly 6ae51e6e61236bde52989edc7087fd41320f8d3c] Former-commit-id: c4ac8a001411141aebf5c4ed4367e9a6f6ec6fa1 Former-commit-id: 1c00ce3481429ec03053a4eaf91e032a9ddef151 Former-commit-id: 8501e6c290f23abac138ff71d9712e296357b843 Former-commit-id: e6850af21f70ba5c9aba74252dd7e8977d243689 Former-commit-id: a3e3131d881d0ad444b0a0b82ee7495066e914ca --- docs/zh/change-log/README.md | 14 ++++++++++++++ docs/zh/sys-multi-page/README.md | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/docs/zh/change-log/README.md b/docs/zh/change-log/README.md index ef14fad1..12f3ec08 100644 --- a/docs/zh/change-log/README.md +++ b/docs/zh/change-log/README.md @@ -4,6 +4,20 @@ sidebar: auto # 更新日志 +## v1.1.11 + +* [ 修改 ] 优化 v1.1.10 的更新代码 +* [ 修改 ] 修正版本号 + +## v1.1.10 + +* [ 修改 ] 修复了多标签页使用右侧菜单关闭时的报错 + +## v1.1.9 + +* [ 新增 ] 优化了多标签页数据持久化取值逻辑,现在修改路由信息后,刷新页面时数据从持久化存储取值时会多经过一部数据处理,根据 name 字段匹配新的路由数据 +* [ 新增 ] `d2adminUtilDb2VuexByUuid` 和 `d2adminUtilDb2Vuex` 新增第三个参数: handleFunction,该参数可以设置一个数据处理的回调函数,如果设置了该回调函数,在从持久化存储中取值时,如果成功取值,数据会首先经过该函数处理最后赋值到 store + ## v1.1.8 * [ 新增 ] 增加了错误收集和日志收集功能 diff --git a/docs/zh/sys-multi-page/README.md b/docs/zh/sys-multi-page/README.md index ee1893ec..9fabda3d 100644 --- a/docs/zh/sys-multi-page/README.md +++ b/docs/zh/sys-multi-page/README.md @@ -27,4 +27,4 @@ $store.commit('d2admin/page/poolSet', pool) ## 标签页控制 -标签页组件在 `d2-admin/src/layout/header-aside/components/tabs/index.vue`,该组件实现多页面的各种关闭控制。 \ No newline at end of file +标签页组件在 `d2-admin/src/layout/header-aside/components/tabs/index.vue`,该组件实现多页面的各种关闭控制。涉及的方法参见 [API](../sys-vuex/#page) \ No newline at end of file From 1907fcf7b2a4fcf143d0c61c4ff97326188360f0 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 22:59:19 +0800 Subject: [PATCH 25/36] db actions Former-commit-id: 2b09617e93a7a76be76112f361e0c6635bde8c46 [formerly cb21cb6d38ce7168283da2facecd72ff55dd8062] [formerly 2b09617e93a7a76be76112f361e0c6635bde8c46 [formerly cb21cb6d38ce7168283da2facecd72ff55dd8062] [formerly 2b09617e93a7a76be76112f361e0c6635bde8c46 [formerly cb21cb6d38ce7168283da2facecd72ff55dd8062] [formerly cb21cb6d38ce7168283da2facecd72ff55dd8062 [formerly d94a48297dc50b082165969ec72f6dafb49bf694 [formerly 50cc227c8b86ecdf64c7dff28e089b6963a6a5c3]]]]] Former-commit-id: d5d61acd1aa0e9335fcac37900dfb18cf7d9a3d8 Former-commit-id: a490c1d36c2631b316a9af2596a89887321b7d93 Former-commit-id: b3012f888349f0cdad641e0988e0de21df928955 [formerly 8a4be822b9526059131f28530c2ad89d945258cd] Former-commit-id: a24c1f17605c335c9b504a954c5c3b0a23bc6a84 Former-commit-id: 03bff2a157c90e3a306d09bd4aded713d9b78f23 Former-commit-id: 38569629e15a50051e3b687f4e650cf77c391b63 Former-commit-id: 22bfdd418b736df02d3b4d4717a760cbc8c948e9 Former-commit-id: ea7774773cb467e890c1fb456ad6f076815a44b1 --- docs/zh/sys-db/README.md | 12 +++--------- docs/zh/sys-vuex/README.md.REMOVED.git-id | 2 +- src/store/modules/d2admin/modules/db.js | 14 ++++---------- src/store/modules/d2admin/modules/menu.js | 4 ++-- src/store/modules/d2admin/modules/page.js | 2 +- src/store/modules/d2admin/modules/theme.js | 2 +- src/store/modules/d2admin/modules/transition.js | 2 +- src/store/modules/d2admin/modules/user.js | 2 +- 8 files changed, 14 insertions(+), 26 deletions(-) diff --git a/docs/zh/sys-db/README.md b/docs/zh/sys-db/README.md index bfabe98e..1f94cb12 100644 --- a/docs/zh/sys-db/README.md +++ b/docs/zh/sys-db/README.md @@ -4,14 +4,7 @@ sidebar: auto # 数据持久化 -D2Admin 对数据持久化做了更贴心的包装。 - -数据持久化在 D2Admin 中主要体现在两个方面: - -* 系统设置持久化 -* 用户数据持久化 - -系统设置持久化已经在核心模块中写好,这里主要介绍用户数据持久化。 +D2Admin 对数据持久化做了更清晰的包装,您可以通过 ## 公用存储 @@ -59,4 +52,5 @@ await this.$store.dispatch('d2admin/db/databasePage', { vm: this, user: true }) ## 私有路由快照 -私有路由快照相当于私有路由存储一种快捷操作, 会将传入 vm 实例的 $data 全部根据用户区分持久化, 下面的表单来自 Element 的表单示例, 在 D2Admin 的本页示例中你可以随意填写这个表单, 表单内容会自动实时持久化, 无论是切换标签页、重新打开标签页、刷新浏览器、重开浏览器、重开浏览器标签页等, 该页面数据都会自动恢复到上次填写的状态, 这些都只需要你使用 D2Admin 提供的两个方法, 总共只需要多写十几行代码。 \ No newline at end of file +私有路由快照相当于私有路由存储一种快捷操作, 会将传入 vm 实例的 $data 全部根据用户区分持久化, 下面的表单来自 Element 的表单示例, 在 D2Admin 的本页示例中你可以随意填写这个表单, 表单内容会自动实时持久化, 无论是切换标签页、重新打开标签页、刷新浏览器、重开浏览器、重开浏览器标签页等, 该页面数据都会自动恢复到上次填写的状态, 这些都只需要你使用 D2Admin 提供的两个方法, 总共只需要多写十几行代码。 + diff --git a/docs/zh/sys-vuex/README.md.REMOVED.git-id b/docs/zh/sys-vuex/README.md.REMOVED.git-id index ee4ad296..7e5ba358 100644 --- a/docs/zh/sys-vuex/README.md.REMOVED.git-id +++ b/docs/zh/sys-vuex/README.md.REMOVED.git-id @@ -1 +1 @@ -080facc2ab1ba35272b9f62ff92efc9a31687b86 \ No newline at end of file +78fa73fc382c9d9c7950f10e3a5b7b7064f647b6 \ No newline at end of file diff --git a/src/store/modules/d2admin/modules/db.js b/src/store/modules/d2admin/modules/db.js index d6a3e733..bbaa9dfe 100644 --- a/src/store/modules/d2admin/modules/db.js +++ b/src/store/modules/d2admin/modules/db.js @@ -30,16 +30,15 @@ function pathInit ({ export default { namespaced: true, - mutations: { + actions: { /** * @description 将数据存储到指定位置 | 路径不存在会自动初始化 * @description 效果类似于取值 dbName.path = value - * @param {Object} state vuex state * @param {Object} param dbName {String} 数据库名称 * @param {Object} param path {String} 存储路径 * @param {Object} param value {*} 需要存储的值 */ - set (state, { + set (context, { dbName = 'database', path = '', value = '' @@ -53,12 +52,11 @@ export default { /** * @description 将数据存储到指定位置 | 路径不存在会自动初始化 [ 区分用户 ] * @description 效果类似于取值 dbName.path[user] = value - * @param {Object} state vuex state * @param {Object} param dbName {String} 数据库名称 * @param {Object} param path {String} 存储路径 * @param {Object} param value {*} 需要存储的值 */ - setByUser (state, { + setByUser (context, { dbName = 'database', path = '', value = '' @@ -67,13 +65,10 @@ export default { dbName, path }), value).write() - } - }, - actions: { + }, /** * @description 获取数据 * @description 效果类似于取值 dbName.path || defaultValue - * @param {Object} state vuex state * @param {Object} param dbName {String} 数据库名称 * @param {Object} param path {String} 存储路径 * @param {Object} param defaultValue {*} 取值失败的默认值 @@ -95,7 +90,6 @@ export default { /** * @description 获取数据 [ 区分用户 ] * @description 效果类似于取值 dbName.path[user] || defaultValue - * @param {Object} state vuex state * @param {Object} param dbName {String} 数据库名称 * @param {Object} param path {String} 存储路径 * @param {Object} param defaultValue {*} 取值失败的默认值 diff --git a/src/store/modules/d2admin/modules/menu.js b/src/store/modules/d2admin/modules/menu.js index 8a9a7272..ee3c85d7 100644 --- a/src/store/modules/d2admin/modules/menu.js +++ b/src/store/modules/d2admin/modules/menu.js @@ -39,7 +39,7 @@ export default { // store 赋值 state.asideCollapse = collapse // 持久化 - this.commit('d2admin/db/setByUser', { + this.dispatch('d2admin/db/setByUser', { dbName: 'sys', path: 'menu.asideCollapse', value: state.asideCollapse @@ -53,7 +53,7 @@ export default { // store 赋值 state.asideCollapse = !state.asideCollapse // 持久化 - this.commit('d2admin/db/setByUser', { + this.dispatch('d2admin/db/setByUser', { dbName: 'sys', path: 'menu.asideCollapse', value: state.asideCollapse diff --git a/src/store/modules/d2admin/modules/page.js b/src/store/modules/d2admin/modules/page.js index e373ea74..63e8d844 100644 --- a/src/store/modules/d2admin/modules/page.js +++ b/src/store/modules/d2admin/modules/page.js @@ -93,7 +93,7 @@ export default { * @param {Object} state vuex state */ opend2db (state) { - this.commit('d2admin/db/setByUser', { + this.dispatch('d2admin/db/setByUser', { dbName: 'sys', path: 'page.opened', value: state.opened diff --git a/src/store/modules/d2admin/modules/theme.js b/src/store/modules/d2admin/modules/theme.js index 3bd2adb0..f5920baf 100644 --- a/src/store/modules/d2admin/modules/theme.js +++ b/src/store/modules/d2admin/modules/theme.js @@ -30,7 +30,7 @@ export default { // 将 vuex 中的主题应用到 dom this.commit('d2admin/theme/dom') // 持久化 - this.commit('d2admin/db/setByUser', { + this.dispatch('d2admin/db/setByUser', { dbName: 'sys', path: 'theme.activeName', value: state.activeName diff --git a/src/store/modules/d2admin/modules/transition.js b/src/store/modules/d2admin/modules/transition.js index 566da7ac..b08ce975 100644 --- a/src/store/modules/d2admin/modules/transition.js +++ b/src/store/modules/d2admin/modules/transition.js @@ -17,7 +17,7 @@ export default { // store 赋值 state.active = active // 持久化 - this.commit('d2admin/db/setByUser', { + this.dispatch('d2admin/db/setByUser', { dbName: 'sys', path: 'transition.active', value: state.active diff --git a/src/store/modules/d2admin/modules/user.js b/src/store/modules/d2admin/modules/user.js index 5b2728bd..51b1be25 100644 --- a/src/store/modules/d2admin/modules/user.js +++ b/src/store/modules/d2admin/modules/user.js @@ -17,7 +17,7 @@ export default { // store 赋值 state.info = info // 持久化 - this.commit('d2admin/db/setByUser', { + this.dispatch('d2admin/db/setByUser', { dbName: 'sys', path: 'user.info', value: info From f198228bee91f2c52dc80b2377f165a3294dcd1a Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Mon, 20 Aug 2018 23:29:53 +0800 Subject: [PATCH 26/36] db Former-commit-id: b89fbea2ff27c6ded9accac4abfb48dca53a4c6a [formerly b89fbea2ff27c6ded9accac4abfb48dca53a4c6a [formerly b89fbea2ff27c6ded9accac4abfb48dca53a4c6a [formerly b89fbea2ff27c6ded9accac4abfb48dca53a4c6a [formerly ce523a7fcf737361f8af7caa6a37cd2908454d10 [formerly 3ecbc40150fefc40b6cc52d9853888a98bb45221]]]]] Former-commit-id: 5508f237a48bd72ad5196031dfee3658725395fa Former-commit-id: 57110a720dbad54a397139142c5cc6ebb4491cf9 Former-commit-id: d787a9bd2b9915cbde1c7b8a1cc0c989bb4c4caa [formerly 112b721b50eb13f961d1ad589cf80165e46d53f6] Former-commit-id: 428c78e47cdd6cdad33eacfa0e296cd6caa9e610 Former-commit-id: 671bc93046a8be2a379b121b4cd71faf6c6773de Former-commit-id: 2c4006138822cd94b26d4ba670fbfd36a7c36c8f Former-commit-id: f91b68d365453002c3eee90523e18fbe9ed4ba7c Former-commit-id: d212444f15115ae63c20306037be9e17dc99f326 --- docs/zh/sys-vuex/README.md.REMOVED.git-id | 2 +- .../db/page-snapshot-public/index.vue | 4 +- .../db/page-snapshot-user/index.vue | 4 +- src/store/modules/d2admin/modules/db.js | 52 ++++--------------- src/store/modules/d2admin/modules/menu.js | 15 +++--- src/store/modules/d2admin/modules/page.js | 10 ++-- src/store/modules/d2admin/modules/theme.js | 10 ++-- .../modules/d2admin/modules/transition.js | 10 ++-- src/store/modules/d2admin/modules/user.js | 10 ++-- 9 files changed, 47 insertions(+), 70 deletions(-) diff --git a/docs/zh/sys-vuex/README.md.REMOVED.git-id b/docs/zh/sys-vuex/README.md.REMOVED.git-id index 7e5ba358..aa90a54c 100644 --- a/docs/zh/sys-vuex/README.md.REMOVED.git-id +++ b/docs/zh/sys-vuex/README.md.REMOVED.git-id @@ -1 +1 @@ -78fa73fc382c9d9c7950f10e3a5b7b7064f647b6 \ No newline at end of file +d991a147e53c59451408d5106031d926cb69a35f \ No newline at end of file diff --git a/src/pages/demo/playground/db/page-snapshot-public/index.vue b/src/pages/demo/playground/db/page-snapshot-public/index.vue index 3b86d04c..89305695 100644 --- a/src/pages/demo/playground/db/page-snapshot-public/index.vue +++ b/src/pages/demo/playground/db/page-snapshot-public/index.vue @@ -86,7 +86,7 @@ export default { } }, async created () { - const data = await this.pageLoad({ vm: this }) + const data = await this.pageGet({ vm: this }) for (const key in data) { if (data.hasOwnProperty(key)) this[key] = data[key] } @@ -102,7 +102,7 @@ export default { methods: { ...mapActions('d2admin/db', [ 'pageSet', - 'pageLoad', + 'pageGet', 'pageClear' ]), async handleClear () { diff --git a/src/pages/demo/playground/db/page-snapshot-user/index.vue b/src/pages/demo/playground/db/page-snapshot-user/index.vue index 4e17b74a..15dbc60e 100644 --- a/src/pages/demo/playground/db/page-snapshot-user/index.vue +++ b/src/pages/demo/playground/db/page-snapshot-user/index.vue @@ -86,7 +86,7 @@ export default { } }, async created () { - const data = await this.pageLoad({ vm: this, user: true }) + const data = await this.pageGet({ vm: this, user: true }) for (const key in data) { if (data.hasOwnProperty(key)) this[key] = data[key] } @@ -102,7 +102,7 @@ export default { methods: { ...mapActions('d2admin/db', [ 'pageSet', - 'pageLoad', + 'pageGet', 'pageClear' ]), async handleClear () { diff --git a/src/store/modules/d2admin/modules/db.js b/src/store/modules/d2admin/modules/db.js index bbaa9dfe..b8045c71 100644 --- a/src/store/modules/d2admin/modules/db.js +++ b/src/store/modules/d2admin/modules/db.js @@ -37,33 +37,18 @@ export default { * @param {Object} param dbName {String} 数据库名称 * @param {Object} param path {String} 存储路径 * @param {Object} param value {*} 需要存储的值 + * @param {Object} param user {Boolean} 是否区分用户 */ set (context, { dbName = 'database', path = '', - value = '' + value = '', + user = false }) { db.set(pathInit({ dbName, path, - user: false - }), value).write() - }, - /** - * @description 将数据存储到指定位置 | 路径不存在会自动初始化 [ 区分用户 ] - * @description 效果类似于取值 dbName.path[user] = value - * @param {Object} param dbName {String} 数据库名称 - * @param {Object} param path {String} 存储路径 - * @param {Object} param value {*} 需要存储的值 - */ - setByUser (context, { - dbName = 'database', - path = '', - value = '' - }) { - db.set(pathInit({ - dbName, - path + user }), value).write() }, /** @@ -72,38 +57,19 @@ export default { * @param {Object} param dbName {String} 数据库名称 * @param {Object} param path {String} 存储路径 * @param {Object} param defaultValue {*} 取值失败的默认值 + * @param {Object} param user {Boolean} 是否区分用户 */ get (context, { dbName = 'database', path = '', - defaultValue = '' + defaultValue = '', + user = false }) { return new Promise(resolve => { resolve(db.get(pathInit({ dbName, path, - user: false, - defaultValue - })).value()) - }) - }, - /** - * @description 获取数据 [ 区分用户 ] - * @description 效果类似于取值 dbName.path[user] || defaultValue - * @param {Object} param dbName {String} 数据库名称 - * @param {Object} param path {String} 存储路径 - * @param {Object} param defaultValue {*} 取值失败的默认值 - */ - getByUser (context, { - dbName = 'database', - path = '', - defaultValue = '' - }) { - return new Promise((resolve, reject) => { - resolve(db.get(pathInit({ - dbName, - path, - user: true, + user, defaultValue })).value()) }) @@ -215,7 +181,7 @@ export default { * @param {Object} param basis {String} 页面区分依据 [ name | path | fullPath ] * @param {Object} param user {Boolean} 是否区分用户 */ - pageLoad (context, { + pageGet (context, { vm, basis = 'name', user = false diff --git a/src/store/modules/d2admin/modules/menu.js b/src/store/modules/d2admin/modules/menu.js index ee3c85d7..99db6e8e 100644 --- a/src/store/modules/d2admin/modules/menu.js +++ b/src/store/modules/d2admin/modules/menu.js @@ -39,10 +39,11 @@ export default { // store 赋值 state.asideCollapse = collapse // 持久化 - this.dispatch('d2admin/db/setByUser', { + this.dispatch('d2admin/db/set', { dbName: 'sys', path: 'menu.asideCollapse', - value: state.asideCollapse + value: state.asideCollapse, + user: true }) }, /** @@ -53,10 +54,11 @@ export default { // store 赋值 state.asideCollapse = !state.asideCollapse // 持久化 - this.dispatch('d2admin/db/setByUser', { + this.dispatch('d2admin/db/set', { dbName: 'sys', path: 'menu.asideCollapse', - value: state.asideCollapse + value: state.asideCollapse, + user: true }) }, /** @@ -65,10 +67,11 @@ export default { */ async asideCollapseLoad (state) { // store 赋值 - state.asideCollapse = await this.dispatch('d2admin/db/getByUser', { + state.asideCollapse = await this.dispatch('d2admin/db/get', { dbName: 'sys', path: 'menu.asideCollapse', - defaultValue: setting.menu.asideCollapse + defaultValue: setting.menu.asideCollapse, + user: true }) } } diff --git a/src/store/modules/d2admin/modules/page.js b/src/store/modules/d2admin/modules/page.js index 63e8d844..7ac2c47b 100644 --- a/src/store/modules/d2admin/modules/page.js +++ b/src/store/modules/d2admin/modules/page.js @@ -93,10 +93,11 @@ export default { * @param {Object} state vuex state */ opend2db (state) { - this.dispatch('d2admin/db/setByUser', { + this.dispatch('d2admin/db/set', { dbName: 'sys', path: 'page.opened', - value: state.opened + value: state.opened, + user: true }) }, /** @@ -106,10 +107,11 @@ export default { */ async openedLoad (state) { // store 赋值 - const value = await this.dispatch('d2admin/db/getByUser', { + const value = await this.dispatch('d2admin/db/get', { dbName: 'sys', path: 'page.opened', - defaultValue: setting.page.opened + defaultValue: setting.page.opened, + user: true }) // 在处理函数中进行数据优化 过滤掉现在已经失效的页签或者已经改变了信息的页签 // 以 name 字段为准 diff --git a/src/store/modules/d2admin/modules/theme.js b/src/store/modules/d2admin/modules/theme.js index f5920baf..e12b1439 100644 --- a/src/store/modules/d2admin/modules/theme.js +++ b/src/store/modules/d2admin/modules/theme.js @@ -30,10 +30,11 @@ export default { // 将 vuex 中的主题应用到 dom this.commit('d2admin/theme/dom') // 持久化 - this.dispatch('d2admin/db/setByUser', { + this.dispatch('d2admin/db/set', { dbName: 'sys', path: 'theme.activeName', - value: state.activeName + value: state.activeName, + user: true }) }, /** @@ -42,10 +43,11 @@ export default { */ async load (state) { // store 赋值 - state.activeName = await this.dispatch('d2admin/db/getByUser', { + state.activeName = await this.dispatch('d2admin/db/get', { dbName: 'sys', path: 'theme.activeName', - defaultValue: state.list[0].name + defaultValue: state.list[0].name, + user: true }) // 更新到页面 this.commit('d2admin/theme/dom') diff --git a/src/store/modules/d2admin/modules/transition.js b/src/store/modules/d2admin/modules/transition.js index b08ce975..2f46a355 100644 --- a/src/store/modules/d2admin/modules/transition.js +++ b/src/store/modules/d2admin/modules/transition.js @@ -17,10 +17,11 @@ export default { // store 赋值 state.active = active // 持久化 - this.dispatch('d2admin/db/setByUser', { + this.dispatch('d2admin/db/set', { dbName: 'sys', path: 'transition.active', - value: state.active + value: state.active, + user: true }) }, /** @@ -29,10 +30,11 @@ export default { */ async load (state) { // store 赋值 - state.active = await this.dispatch('d2admin/db/getByUser', { + state.active = await this.dispatch('d2admin/db/get', { dbName: 'sys', path: 'transition.active', - defaultValue: setting.transition.active + defaultValue: setting.transition.active, + user: true }) } } diff --git a/src/store/modules/d2admin/modules/user.js b/src/store/modules/d2admin/modules/user.js index 51b1be25..add8a466 100644 --- a/src/store/modules/d2admin/modules/user.js +++ b/src/store/modules/d2admin/modules/user.js @@ -17,10 +17,11 @@ export default { // store 赋值 state.info = info // 持久化 - this.dispatch('d2admin/db/setByUser', { + this.dispatch('d2admin/db/set', { dbName: 'sys', path: 'user.info', - value: info + value: info, + user: true }) }, /** @@ -29,10 +30,11 @@ export default { */ async load (state) { // store 赋值 - state.info = await this.dispatch('d2admin/db/getByUser', { + state.info = await this.dispatch('d2admin/db/get', { dbName: 'sys', path: 'user.info', - defaultValue: setting.user.info + defaultValue: setting.user.info, + user: true }) } } From 076c6fe84494093fdf3c84a624bb42d190b15813 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Tue, 21 Aug 2018 09:38:42 +0800 Subject: [PATCH 27/36] no message Former-commit-id: 2063fc636f8d898232fe5ecdbae2ca9eeb14060c [formerly 2063fc636f8d898232fe5ecdbae2ca9eeb14060c [formerly 2063fc636f8d898232fe5ecdbae2ca9eeb14060c [formerly 2063fc636f8d898232fe5ecdbae2ca9eeb14060c [formerly 5ccbdf8bf127412b97e431aa885257382025b139 [formerly dfb2fcd1f324c86e3d1163331c8b05e6b48ea9c2]]]]] Former-commit-id: 09ade4f0ff9ccac43a918be54a8fc740ee0094b9 Former-commit-id: 38bfead082630a5cf6a290439bb02cc03e01e701 Former-commit-id: e39f3e5ed4634d6311a6cfefa91b24a1644b9871 [formerly 74f29378654ccd077714dc8ba58249e4822fe3a5] Former-commit-id: b4c0e70abc4bb846bae6465989884e8d03c2be0e Former-commit-id: ae2467f037a539c63765be01fa805e7d14935e2a Former-commit-id: cda87c047da71491e31c2cdb65b75d4404cde85a Former-commit-id: d0a1fd32d42f14e0b6c821accd57f096b0c560ae Former-commit-id: 3c1fafce377e64f4225b1947739050252c829383 --- docs/zh/sys-db/README.md | 260 +++++++++++++++++++++++++++++++++++---- 1 file changed, 233 insertions(+), 27 deletions(-) diff --git a/docs/zh/sys-db/README.md b/docs/zh/sys-db/README.md index 1f94cb12..d5f4b428 100644 --- a/docs/zh/sys-db/README.md +++ b/docs/zh/sys-db/README.md @@ -6,51 +6,257 @@ sidebar: auto D2Admin 对数据持久化做了更清晰的包装,您可以通过 -## 公用存储 +在 `src/store/modules/d2admin/modules/db.js` 文件中提供了4组共9个方法读写持久化数据 -公用存储指所有用户共用的存储区域, 使用 +![](http://fairyever.qiniudn.com/20180820235417.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) -``` js -await this.$store.dispatch('d2admin/db/database') +## 总览 + +D2Admin 数据持久化依赖浏览器的 LocalStorage,使用 [lowdb](https://github.com/typicode/lowdb) API 加自己的取值包装实现了便捷的的操作和取值方法,通过不同的接口可以访问到持久化数据不同的内容,例如不同用户独有的存储区域,系统存储区域,公用存储,根据路由自动划分的存储区域等。 + +## 概念 + +D2Admin 数据持久化主要有以下概念: + +### 存储实例 + +首先请先对 [lowdb](https://github.com/typicode/lowdb) 有一定的了解,[lowdb](https://github.com/typicode/lowdb) 通过 [lodash](https://lodash.com/) 实现了对数据操作的封装,下面的例子演示了 lowdb 在浏览器中的使用方式: + +``` js {5} +import low from 'lowdb' +import LocalStorage from 'lowdb/adapters/LocalStorage' + +const adapter = new LocalStorage('db') +const db = low(adapter) + +db.defaults({ posts: [] }) + .write() + +db.get('posts') + .push({ title: 'lowdb' }) + .write() ``` -获得存储实例进行操作。 +D2Admin 中的存储实例指的是上述代码中 `db` 那一步(高亮行),在获得了存储实例后你可以使用 [lodash](https://lodash.com/) 语法直接操作存储实例,最后使用 [lowdb](https://github.com/typicode/lowdb) 的 `write` API 将变化同步回浏览器的 LocalStorage。 -## 私有存储 +### 用户私有 -私有存储指当前用户专用的存储区域, 不同用户之间存储不会相互干扰, 使用 +用户私有指不同的用户使用同一个 api 访问到的存储实例指向的存储位置,例如 A 用户使用下面的代码存储了一段信息: -``` js -await this.$store.dispatch('d2admin/db/database', { user: true }) +``` js {5} +const db = await this.$store.dispatch('d2admin/db/database', { + user: true +}) +db + .set('myName', 'userA') + .write() ``` -获得存储实例进行操作, 不同用户条件下获取的存储实例指向位置不同。 +B 用户使用下面的代码存储了一段信息: -## 路由存储 - -路由存储指当前路由的存储区域, 不同路由之间存储不会相互干扰, 使用 - -``` js -await this.$store.dispatch('d2admin/db/databasePage', { vm: this }) +``` js {5} +const db = await this.$store.dispatch('d2admin/db/database', { + user: true +}) +db + .set('myName', 'userB') + .write() ``` -获得存储实例进行操作, 不同路由条件下获取的存储实例指向位置不同, 可以指定路由区分依据 name | path | fullPath, 默认根据路由的 name 区分不同的路由。 +请注意代码的前三行都是一样的,两个用户使用的获取存储实例接口是同一个接口,只不过保存的数据不同。 -## 私有路由存储 +然后 A 和 B 使用同样的取值代码取值: -私有路由存储指当前路由的存储区域, 并且同时还根据用户区分, 相当于结合了 “路由存储” 和 “私有存储”, 不同路由以及不同用户之间存储不会相互干扰, 使用 - -``` js -await this.$store.dispatch('d2admin/db/databasePage', { vm: this, user: true }) +``` js {4} +const db = await this.$store.dispatch('d2admin/db/database', { + user: true +}) +const myName = db.get('myName').value() ``` -获得存储实例进行操作, 不同路由和用户条件下获取的存储实例指向位置不同, 可以指定路由区分依据 name | path | fullPath, 默认根据路由的 name 区分不同的路由。 +这次是使用完全一样的代码,但是 A 用户登陆的情况下取得的值是 `myName = userA`,B 用户登陆的情况下取得的值是 `myName = userB`。 -## 路由快照 +上面介绍的特性即为“用户私有”,**在 D2Admin 中,所有的数据持久化 API 都支持数据私有配置**。 -路由快照相当于路由存储一种快捷操作, 会将传入 vm 实例的 $data 全部持久化, 下面的表单来自 Element 的表单示例, 在 D2Admin 的本页示例中你可以随意填写这个表单, 表单内容会自动实时持久化, 无论是切换标签页、重新打开标签页、刷新浏览器、重开浏览器、重开浏览器标签页等, 该页面数据都会自动恢复到上次填写的状态, 这些都只需要你使用 D2Admin 提供的两个方法, 总共只需要多写十几行代码。 +### 路由存储 -## 私有路由快照 +路由存储含义和上面介绍的“用户私有”相像,区别如下: -私有路由快照相当于私有路由存储一种快捷操作, 会将传入 vm 实例的 $data 全部根据用户区分持久化, 下面的表单来自 Element 的表单示例, 在 D2Admin 的本页示例中你可以随意填写这个表单, 表单内容会自动实时持久化, 无论是切换标签页、重新打开标签页、刷新浏览器、重开浏览器、重开浏览器标签页等, 该页面数据都会自动恢复到上次填写的状态, 这些都只需要你使用 D2Admin 提供的两个方法, 总共只需要多写十几行代码。 +| 概念 | 数据区分依据 | +| --- | --- | +| 用户私有 | 用户 uuid | +| 路由存储 | `route.name` 或者 `path` 或者 `fullPath` | +举例说明: + +在 **页面1** 中使用下面的代码存储一段信息: + +``` js {5} +const db = await this.$store.dispatch('d2admin/db/databasePage', { + vm: this +}) +db + .set('pageName', 'page1') + .write() +``` + +在 **页面2** 中使用同样的代码存储一段不同的信息: + +``` js {5} +const db = await this.$store.dispatch('d2admin/db/databasePage', { + vm: this +}) +db + .set('pageName', 'page2') + .write() +``` + +然后在 **页面1** 和 **页面2** 上使用完全相同的代码取值: + +``` js +const db = await this.$store.dispatch('d2admin/db/databasePage', { + vm: this +}) +const pageName = db.get('pageName').value() +``` + +在 **页面1** 中会取到 `pageName = page1`,在 **页面2** 中会取到 `pageName = page2`。证明数据被依据路由划分。 + +::: tip +“路由存储”同时也支持“用户私有”,您可以将两者结合使用,使用下面的代码即可获得用户私有的路由存储: + +``` js {3} +const db = await this.$store.dispatch('d2admin/db/databasePage', { + vm: this, + user: true +}) +``` +::: + +### 数据格式 + +首先展示完整的 D2Admin 数据存储格式: + +![](http://fairyever.qiniudn.com/20180821090300.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) + +这张图体现了数据的普通存储、用户存储、路由存储、私有路由存储、路由快照以及私有路由快照的存储位置,现在您会感觉很乱,但是请注意以下几点: + +* sys 模块您在业务代码中不会访问 +* database 中的存储结构您绝不会使用某一个 API 全部获得,每次您操作的只是某个节点下的一部分数据,D2Admin 通过不同 API 来简化您在上述数数据中快速定位到需要的数据节点 + +## root 级别方法 + +root 级别的方法有两个,分别为: + +* [d2admin/db/set](../sys-vuex/#actions-set) +* [d2admin/db/get](../sys-vuex/#actions-get) + +调用方式为: + +``` js +// 写入数据 +this.$store.dispatch('d2admin/db/set', { + dbName: 'database', + path: 'demo.sometext', + value: 'Hello World' +}) +``` + +``` js +// 读取数据 +const value = await this.$store.dispatch('d2admin/db/get', { + dbName: 'database', + path: 'demo.sometext', + defaultValue: 'Hello World' +}) +``` + +这两个方法可以在持久化数据中的任意位置(也就是上面“数据格式”章节中展示的图片上所有节点)进行读写操作,D2Admin 内部模块使用此 API 访问持久化数据,**不建议在业务代码中使用**,除非您非常清楚您正在做什么。 + +## 获得存储实例 + +要想向持久化数据中写入数据或者读取数据,第一步就是获得存储实例。可以通过 `d2admin/db/get` 获得存储实例。 + +### 公用 + +使用如下代码获取公用存储实例: + +``` js +const db = await this.$store.dispatch('d2admin/db/database') +``` + +您将获得下图所示节点(绿色高亮区域): + +![](http://fairyever.qiniudn.com/20180821091548.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) + +写入: + +``` js +const db = await this.$store.dispatch('d2admin/db/database') +db + .set('keyName', 'value') + .write() +``` + +结果: + +![](http://fairyever.qiniudn.com/20180821092216.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) + +取值: + +``` js +const db = await this.$store.dispatch('d2admin/db/database') +db.get('keyName').value() // 'value' +``` + +### 私有 + +如果需要,您也可以获取根据用户区分的私有存储实例: + +``` js +const db = await this.$store.dispatch('d2admin/db/database', { + user: true +}) +``` + +假设当前登陆用户的 uuid 为 uuid-A,您将获得下图所示节点(绿色高亮区域): + +![](http://fairyever.qiniudn.com/20180821092920.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) + +写入: + +``` js +const db = await this.$store.dispatch('d2admin/db/database', { + user: true +}) +db + .set('keyName', 'value') + .write() +``` + +结果: + +![](http://fairyever.qiniudn.com/20180821093132.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) + +取值: + +``` js +const db = await this.$store.dispatch('d2admin/db/database', { + user: true +}) +db.get('keyName').value() // 'value' +``` + +如果是不同用户分别使用上面的代码存储,存储结果将是: + +![](http://fairyever.qiniudn.com/20180821093321.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) + +取值时将分别取到 value1,value2,value3 + +## 获得路由存储实例 + +### 公用 + +### 私有 + +## 路由快照操作 \ No newline at end of file From ab0525815e7bb87e669fb0d693c78b4aaabadc60 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Tue, 21 Aug 2018 11:07:29 +0800 Subject: [PATCH 28/36] no message Former-commit-id: adfa3f1394805c8b009cc367399c4e712abe993e [formerly adfa3f1394805c8b009cc367399c4e712abe993e [formerly adfa3f1394805c8b009cc367399c4e712abe993e [formerly adfa3f1394805c8b009cc367399c4e712abe993e [formerly 1ab77a4d3d84656cd268a2161df499a4a5fe92c4 [formerly 9fc605f8f317c52990d9cdfeea6dd489288cbcd1]]]]] Former-commit-id: c27beed49662b6496ab6a63a5f78d761ead52874 Former-commit-id: 5f0c79d815cf627a2ec8c47eb77c0d00d6e8516e Former-commit-id: a71137243b2906941b0998dd76f7f1d02af3e5df [formerly ecfca8e9bad69cf7fbc5a9cf83355f94be84ec0d] Former-commit-id: caeaa038793a0e87b00f8a53529bde3b56a12ba8 Former-commit-id: 1e50e5964260d0eb9593e65acb0caa12411b787d Former-commit-id: 89c18604b00c3f796667579de3e2193aa93eecfa Former-commit-id: d9cea88bcff207d5f1d6714ee27297533b7dfad9 Former-commit-id: 94ba19b57c008db8a669f074b3af4d254c699eb8 --- docs/.vuepress/config.js | 1 + docs/zh/plagiarize/README.md | 49 ++++ docs/zh/sys-db/README.md | 262 ---------------------- docs/zh/sys-db/README.md.REMOVED.git-id | 1 + docs/zh/sys-vuex/README.md.REMOVED.git-id | 2 +- 5 files changed, 52 insertions(+), 263 deletions(-) create mode 100644 docs/zh/plagiarize/README.md delete mode 100644 docs/zh/sys-db/README.md create mode 100644 docs/zh/sys-db/README.md.REMOVED.git-id diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index d443fdfd..0f893aef 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -77,6 +77,7 @@ module.exports = { items: [ { text: '更新日志', link: '/zh/change-log/' }, { text: '参与者名单', link: '/zh/collaborator/' }, + { text: '借鉴 D2Admin 的项目', link: '/zh/plagiarize/' }, { text: '交流', items: [ diff --git a/docs/zh/plagiarize/README.md b/docs/zh/plagiarize/README.md new file mode 100644 index 00000000..fe7ca3e0 --- /dev/null +++ b/docs/zh/plagiarize/README.md @@ -0,0 +1,49 @@ +--- +sidebar: auto +--- + +# 借鉴 D2Admin 的项目 + +以下开源项目中借鉴了 D2Admin 代码。 + +本页面不明确指出哪些是借鉴哪些是抄袭,由读者自行判断。 + +本页面作用是指明哪些东西是 D2Admin 原创的,避免大家看到和其它项目有类似设计时发生误会以为 D2 抄袭他人(误会发生过)。 + +::: tip +图片右键在新标签页打开查看大图 +::: + +**此页面截图都会标注日期,只新增,不删除,只代表当时日期的状态** + +## nx-admin + +[https://github.com/mgbq/nx-admin](https://github.com/mgbq/nx-admin) + +### 2018年7月29日 + +* 项目首页已经放置 D2Admin 链接 + +| D2Admin | nx-admin | +| --- | --- | +| ![](http://fairyever.qiniudn.com/20180727103812.png) | ![](http://fairyever.qiniudn.com/20180727103329.png) | +| ![](http://fairyever.qiniudn.com/20180727103923.png) | ![](http://fairyever.qiniudn.com/20180727103931.png) | +| ![](http://fairyever.qiniudn.com/20180727104208.png) | ![](http://fairyever.qiniudn.com/20180727104213.png) | +| ![](http://fairyever.qiniudn.com/20180727104225.png) | ![](http://fairyever.qiniudn.com/20180727104232.png) | +| ![](http://fairyever.qiniudn.com/20180727104240.png) | ![](http://fairyever.qiniudn.com/20180727104245.png) | +| ![](http://fairyever.qiniudn.com/20180729104137.png) | ![](http://fairyever.qiniudn.com/20180729104152.png) | + +## avue + +[https://github.com/nmxiaowei/avue](https://github.com/nmxiaowei/avue) + +### 2018年7月29日 + +* 项目首页已经放置 D2Admin 链接 + +| D2Admin | avue | +| --- | --- | +| ![](http://fairyever.qiniudn.com/20180729105741.png) | ![](http://fairyever.qiniudn.com/20180729105748.png) | +| ![](http://fairyever.qiniudn.com/20180729110207.png) | ![](http://fairyever.qiniudn.com/20180729110231.png) | +| ![](http://fairyever.qiniudn.com/20180729105822.png) | ![](http://fairyever.qiniudn.com/20180729105839.png) | +| ![](http://fairyever.qiniudn.com/20180729105855.png) | ![](http://fairyever.qiniudn.com/20180729105908.png) | diff --git a/docs/zh/sys-db/README.md b/docs/zh/sys-db/README.md deleted file mode 100644 index d5f4b428..00000000 --- a/docs/zh/sys-db/README.md +++ /dev/null @@ -1,262 +0,0 @@ ---- -sidebar: auto ---- - -# 数据持久化 - -D2Admin 对数据持久化做了更清晰的包装,您可以通过 - -在 `src/store/modules/d2admin/modules/db.js` 文件中提供了4组共9个方法读写持久化数据 - -![](http://fairyever.qiniudn.com/20180820235417.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) - -## 总览 - -D2Admin 数据持久化依赖浏览器的 LocalStorage,使用 [lowdb](https://github.com/typicode/lowdb) API 加自己的取值包装实现了便捷的的操作和取值方法,通过不同的接口可以访问到持久化数据不同的内容,例如不同用户独有的存储区域,系统存储区域,公用存储,根据路由自动划分的存储区域等。 - -## 概念 - -D2Admin 数据持久化主要有以下概念: - -### 存储实例 - -首先请先对 [lowdb](https://github.com/typicode/lowdb) 有一定的了解,[lowdb](https://github.com/typicode/lowdb) 通过 [lodash](https://lodash.com/) 实现了对数据操作的封装,下面的例子演示了 lowdb 在浏览器中的使用方式: - -``` js {5} -import low from 'lowdb' -import LocalStorage from 'lowdb/adapters/LocalStorage' - -const adapter = new LocalStorage('db') -const db = low(adapter) - -db.defaults({ posts: [] }) - .write() - -db.get('posts') - .push({ title: 'lowdb' }) - .write() -``` - -D2Admin 中的存储实例指的是上述代码中 `db` 那一步(高亮行),在获得了存储实例后你可以使用 [lodash](https://lodash.com/) 语法直接操作存储实例,最后使用 [lowdb](https://github.com/typicode/lowdb) 的 `write` API 将变化同步回浏览器的 LocalStorage。 - -### 用户私有 - -用户私有指不同的用户使用同一个 api 访问到的存储实例指向的存储位置,例如 A 用户使用下面的代码存储了一段信息: - -``` js {5} -const db = await this.$store.dispatch('d2admin/db/database', { - user: true -}) -db - .set('myName', 'userA') - .write() -``` - -B 用户使用下面的代码存储了一段信息: - -``` js {5} -const db = await this.$store.dispatch('d2admin/db/database', { - user: true -}) -db - .set('myName', 'userB') - .write() -``` - -请注意代码的前三行都是一样的,两个用户使用的获取存储实例接口是同一个接口,只不过保存的数据不同。 - -然后 A 和 B 使用同样的取值代码取值: - -``` js {4} -const db = await this.$store.dispatch('d2admin/db/database', { - user: true -}) -const myName = db.get('myName').value() -``` - -这次是使用完全一样的代码,但是 A 用户登陆的情况下取得的值是 `myName = userA`,B 用户登陆的情况下取得的值是 `myName = userB`。 - -上面介绍的特性即为“用户私有”,**在 D2Admin 中,所有的数据持久化 API 都支持数据私有配置**。 - -### 路由存储 - -路由存储含义和上面介绍的“用户私有”相像,区别如下: - -| 概念 | 数据区分依据 | -| --- | --- | -| 用户私有 | 用户 uuid | -| 路由存储 | `route.name` 或者 `path` 或者 `fullPath` | - -举例说明: - -在 **页面1** 中使用下面的代码存储一段信息: - -``` js {5} -const db = await this.$store.dispatch('d2admin/db/databasePage', { - vm: this -}) -db - .set('pageName', 'page1') - .write() -``` - -在 **页面2** 中使用同样的代码存储一段不同的信息: - -``` js {5} -const db = await this.$store.dispatch('d2admin/db/databasePage', { - vm: this -}) -db - .set('pageName', 'page2') - .write() -``` - -然后在 **页面1** 和 **页面2** 上使用完全相同的代码取值: - -``` js -const db = await this.$store.dispatch('d2admin/db/databasePage', { - vm: this -}) -const pageName = db.get('pageName').value() -``` - -在 **页面1** 中会取到 `pageName = page1`,在 **页面2** 中会取到 `pageName = page2`。证明数据被依据路由划分。 - -::: tip -“路由存储”同时也支持“用户私有”,您可以将两者结合使用,使用下面的代码即可获得用户私有的路由存储: - -``` js {3} -const db = await this.$store.dispatch('d2admin/db/databasePage', { - vm: this, - user: true -}) -``` -::: - -### 数据格式 - -首先展示完整的 D2Admin 数据存储格式: - -![](http://fairyever.qiniudn.com/20180821090300.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) - -这张图体现了数据的普通存储、用户存储、路由存储、私有路由存储、路由快照以及私有路由快照的存储位置,现在您会感觉很乱,但是请注意以下几点: - -* sys 模块您在业务代码中不会访问 -* database 中的存储结构您绝不会使用某一个 API 全部获得,每次您操作的只是某个节点下的一部分数据,D2Admin 通过不同 API 来简化您在上述数数据中快速定位到需要的数据节点 - -## root 级别方法 - -root 级别的方法有两个,分别为: - -* [d2admin/db/set](../sys-vuex/#actions-set) -* [d2admin/db/get](../sys-vuex/#actions-get) - -调用方式为: - -``` js -// 写入数据 -this.$store.dispatch('d2admin/db/set', { - dbName: 'database', - path: 'demo.sometext', - value: 'Hello World' -}) -``` - -``` js -// 读取数据 -const value = await this.$store.dispatch('d2admin/db/get', { - dbName: 'database', - path: 'demo.sometext', - defaultValue: 'Hello World' -}) -``` - -这两个方法可以在持久化数据中的任意位置(也就是上面“数据格式”章节中展示的图片上所有节点)进行读写操作,D2Admin 内部模块使用此 API 访问持久化数据,**不建议在业务代码中使用**,除非您非常清楚您正在做什么。 - -## 获得存储实例 - -要想向持久化数据中写入数据或者读取数据,第一步就是获得存储实例。可以通过 `d2admin/db/get` 获得存储实例。 - -### 公用 - -使用如下代码获取公用存储实例: - -``` js -const db = await this.$store.dispatch('d2admin/db/database') -``` - -您将获得下图所示节点(绿色高亮区域): - -![](http://fairyever.qiniudn.com/20180821091548.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) - -写入: - -``` js -const db = await this.$store.dispatch('d2admin/db/database') -db - .set('keyName', 'value') - .write() -``` - -结果: - -![](http://fairyever.qiniudn.com/20180821092216.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) - -取值: - -``` js -const db = await this.$store.dispatch('d2admin/db/database') -db.get('keyName').value() // 'value' -``` - -### 私有 - -如果需要,您也可以获取根据用户区分的私有存储实例: - -``` js -const db = await this.$store.dispatch('d2admin/db/database', { - user: true -}) -``` - -假设当前登陆用户的 uuid 为 uuid-A,您将获得下图所示节点(绿色高亮区域): - -![](http://fairyever.qiniudn.com/20180821092920.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) - -写入: - -``` js -const db = await this.$store.dispatch('d2admin/db/database', { - user: true -}) -db - .set('keyName', 'value') - .write() -``` - -结果: - -![](http://fairyever.qiniudn.com/20180821093132.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) - -取值: - -``` js -const db = await this.$store.dispatch('d2admin/db/database', { - user: true -}) -db.get('keyName').value() // 'value' -``` - -如果是不同用户分别使用上面的代码存储,存储结果将是: - -![](http://fairyever.qiniudn.com/20180821093321.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) - -取值时将分别取到 value1,value2,value3 - -## 获得路由存储实例 - -### 公用 - -### 私有 - -## 路由快照操作 \ No newline at end of file diff --git a/docs/zh/sys-db/README.md.REMOVED.git-id b/docs/zh/sys-db/README.md.REMOVED.git-id new file mode 100644 index 00000000..895b9282 --- /dev/null +++ b/docs/zh/sys-db/README.md.REMOVED.git-id @@ -0,0 +1 @@ +99079c67d0aa0e3bff25dee1a4bf7d1d1f9312fb \ No newline at end of file diff --git a/docs/zh/sys-vuex/README.md.REMOVED.git-id b/docs/zh/sys-vuex/README.md.REMOVED.git-id index aa90a54c..269c6858 100644 --- a/docs/zh/sys-vuex/README.md.REMOVED.git-id +++ b/docs/zh/sys-vuex/README.md.REMOVED.git-id @@ -1 +1 @@ -d991a147e53c59451408d5106031d926cb69a35f \ No newline at end of file +6d1ab0795b7a8af170734dfabddadca1da1329cf \ No newline at end of file From cf0bbed3aaa359f4e750b74513fb32fd1808ee7f Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Tue, 21 Aug 2018 13:52:01 +0800 Subject: [PATCH 29/36] no message Former-commit-id: fc65cf0bd59f74c49907a522afa9e361e146541d [formerly fc65cf0bd59f74c49907a522afa9e361e146541d [formerly fc65cf0bd59f74c49907a522afa9e361e146541d [formerly fc65cf0bd59f74c49907a522afa9e361e146541d [formerly b498093f53a934dc50b75119539c83487e113f54 [formerly 1939f3aa2584edd9b039e99f12f2c7da2982ae16]]]]] Former-commit-id: 15bb624d48dd47ee69b0b14bd8f0030568f66e35 Former-commit-id: 59df8c756c782130b28a9f50c33745b213598432 Former-commit-id: ebdf0a259d07c99ef06a320063abc890b1e47c24 [formerly dc5b000425cf19943862055f6bcc1e5f5b50baea] Former-commit-id: 1fe49134e36d5c4867af6fab32bb91853895665f Former-commit-id: e23ed3d4dd3c917c0c932a2c826b721fed4b8225 Former-commit-id: 2f99de3613031f448756f57458220348b16f4c86 Former-commit-id: a58fe5e45946e35c32985808d7e729cfe638f050 Former-commit-id: ddf471f9aeb24ce8d38a0c8af5716c9f6beabdca --- docs/zh/README.md | 2 +- docs/zh/learn-guide/README.md | 12 +++-- docs/zh/sys-db/README.md.REMOVED.git-id | 2 +- docs/zh/sys-plugins/console.md | 2 +- docs/zh/sys-route/README.md | 63 ++++++++++++++++++++++++- 5 files changed, 73 insertions(+), 8 deletions(-) diff --git a/docs/zh/README.md b/docs/zh/README.md index 97821ba8..72bd6624 100644 --- a/docs/zh/README.md +++ b/docs/zh/README.md @@ -24,4 +24,4 @@ npm run dev npm run build ``` -> 如果上述步骤出现错误,建议您升级 node 版本 > 8,如果有其它疑问请参考[常见问题](/zh/guide/question.html) \ No newline at end of file +> 如果上述步骤出现错误,建议您升级 node 版本 > 8,如果有其它疑问请参考[常见问题](/zh/question) \ No newline at end of file diff --git a/docs/zh/learn-guide/README.md b/docs/zh/learn-guide/README.md index 44bfcf70..08ac97bb 100644 --- a/docs/zh/learn-guide/README.md +++ b/docs/zh/learn-guide/README.md @@ -1,4 +1,4 @@ -# 介绍 +# 教程 D2Admin 是一个开源的管理系统前端集成方案 @@ -7,8 +7,6 @@ D2Admin 是一个开源的管理系统前端集成方案 -本项目仓库在 Github 和 Gitee 同步发布 - [中文文档](http://d2admin.fairyever.com/zh/) **完整版** @@ -23,6 +21,12 @@ D2Admin 是一个开源的管理系统前端集成方案 [码云仓库](https://gitee.com/fairyever/d2-admin-start-kit) | [预览地址](https://fairyever.gitee.io/d2-admin-start-kit-preview/#/index) +**飞冰物料** + +[D2Admin ICE](https://alibaba.github.io/ice/scaffold?type=vue) | +[介绍](https://juejin.im/post/5b6349716fb9a04f834669d6) | +[预览地址](https://fairyever.gitee.io/d2-admin-ice-preview) + D2Admin 完整版集成了很多的插件和组件,首次加载会占用很多的时间,所以加入了首屏加载动画。 如果您欣赏 D2Admin 的设计风格,希望基于它开发您的管理系统,**建议使用 [d2-admin-start-kit 简化模板](https://github.com/d2-projects/d2-admin-start-kit)**,简化版模板保留了所有的系统功能,包括登陆注销,主题切换,图标,数据持久化等。其它不必要的组件和插件您可以参照 D2Admin 完整版自行加入。 @@ -143,7 +147,7 @@ npm run dev npm run build ``` -> 如果上述步骤出现错误,建议您升级 node 版本 > 8,如果有其它疑问请参考[常见问题](/zh/guide/question.html) +> 如果上述步骤出现错误,建议您升级 node 版本 > 8,如果有其它疑问请参考[常见问题](/zh/question) ## Thanks diff --git a/docs/zh/sys-db/README.md.REMOVED.git-id b/docs/zh/sys-db/README.md.REMOVED.git-id index 895b9282..22d06029 100644 --- a/docs/zh/sys-db/README.md.REMOVED.git-id +++ b/docs/zh/sys-db/README.md.REMOVED.git-id @@ -1 +1 @@ -99079c67d0aa0e3bff25dee1a4bf7d1d1f9312fb \ No newline at end of file +f859e2952f21e7ee100da4dc863f96f721bb439c \ No newline at end of file diff --git a/docs/zh/sys-plugins/console.md b/docs/zh/sys-plugins/console.md index a11d88ce..1ff72524 100644 --- a/docs/zh/sys-plugins/console.md +++ b/docs/zh/sys-plugins/console.md @@ -2,7 +2,7 @@ 使用 $log 可以在控制台输出美观的日志信息 - + ## 胶囊 diff --git a/docs/zh/sys-route/README.md b/docs/zh/sys-route/README.md index 1dec93a5..2a9d412b 100644 --- a/docs/zh/sys-route/README.md +++ b/docs/zh/sys-route/README.md @@ -12,4 +12,65 @@ sidebar: auto ## 路由配置 -路由注册和钩子设置文件为 `d2-admin/src/router/index.js`,此文件中将 `routes.js` 中导出的 routes 变量注册到路由,并且设置后续的路由拦截和登陆状态判断,多页面的新建页面事件触发也来自这里。该文件再导出注册了所有页面的路由实例,在 `main.js` 中注册到 vue 根实例。 \ No newline at end of file +路由注册和钩子设置文件为 `d2-admin/src/router/index.js`,此文件中将 `routes.js` 中导出的 routes 变量注册到路由,并且设置后续的路由拦截和登陆状态判断,多页面的新建页面事件触发也来自这里。该文件再导出注册了所有页面的路由实例,在 `main.js` 中注册到 vue 根实例。 + +## 路由缓存 + +路由缓存默认为开启状态,页面组件会被 keepAlive,如果想禁用某个页面的缓存,请在该路由配置的 meta 中加入: + +``` js +meta: { + notCache: true +} +``` + +最后结果类似这样: + +``` js {7} +{ + path: '/page-cache/off', + name: 'page-cache-off', + component: () => import('xxx.vue'), + meta: { + requiresAuth: true, + notCache: true, + title: '关闭缓存' + } +} +``` + +虽然所有的路由默认都是开启缓存的,但是还需要遵守一个约定才可以正确缓存页面: + +**页面组件必须有 name 字段,并且 name 字段的值和该路由的 name 字段一致。** + +例如: + +页面文件: + +``` vue {9} + + + +``` + +路由设置: + +``` js {3} +{ + path: '/page-cache/on', + name: 'page-cache-on', + component: () => import('xxx.vue'), + meta: { + requiresAuth: true, + title: '开启缓存' + } +} +``` \ No newline at end of file From 35fff3e4e22a96009f9d40507b568afcc3d7a039 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Tue, 21 Aug 2018 14:47:15 +0800 Subject: [PATCH 30/36] no message Former-commit-id: 943533d90d2539e5f0004f9d04418250ab517487 [formerly 943533d90d2539e5f0004f9d04418250ab517487 [formerly 943533d90d2539e5f0004f9d04418250ab517487 [formerly 943533d90d2539e5f0004f9d04418250ab517487 [formerly 4f929c88b97ca0956652073b7b6a10dd09120502 [formerly 2e4b74921761687b312140dfe41d4ad648d626f0]]]]] Former-commit-id: 3b3bc139b523aa6edfc82815f5df96e431fec705 Former-commit-id: 0a5970971d4db234f14b9a472985c7b4e8777303 Former-commit-id: b10d7cb5057b53576faa4d4dfc896e654ff03ddc [formerly 236d2f551ee1bb56935db6ff6eef6e3110f93685] Former-commit-id: 8499f9a08eff2e52e32d1f9fb3ef8e06491068d3 Former-commit-id: bb5cfe47dcea86eae99ce0ece05a90fc4f3cb5b5 Former-commit-id: d3803fe76ae4196bb7ff7a57af193877ec23962d Former-commit-id: bf99a9b87a7daea77066f1c1d7d25dc3fcab3995 Former-commit-id: c09723d16dc53ab36b1041082dcbe25691031356 --- docs/zh/learn-guide/README.md | 56 +++++------------------ docs/zh/question/README.md.REMOVED.git-id | 2 +- 2 files changed, 12 insertions(+), 46 deletions(-) diff --git a/docs/zh/learn-guide/README.md b/docs/zh/learn-guide/README.md index 08ac97bb..308420d3 100644 --- a/docs/zh/learn-guide/README.md +++ b/docs/zh/learn-guide/README.md @@ -1,4 +1,4 @@ -# 教程 +# 介绍 D2Admin 是一个开源的管理系统前端集成方案 @@ -7,7 +7,7 @@ D2Admin 是一个开源的管理系统前端集成方案 -[中文文档](http://d2admin.fairyever.com/zh/) +![](http://fairyever.qiniudn.com/20180821142809.png) **完整版** @@ -27,21 +27,12 @@ D2Admin 是一个开源的管理系统前端集成方案 [介绍](https://juejin.im/post/5b6349716fb9a04f834669d6) | [预览地址](https://fairyever.gitee.io/d2-admin-ice-preview) -D2Admin 完整版集成了很多的插件和组件,首次加载会占用很多的时间,所以加入了首屏加载动画。 - -如果您欣赏 D2Admin 的设计风格,希望基于它开发您的管理系统,**建议使用 [d2-admin-start-kit 简化模板](https://github.com/d2-projects/d2-admin-start-kit)**,简化版模板保留了所有的系统功能,包括登陆注销,主题切换,图标,数据持久化等。其它不必要的组件和插件您可以参照 D2Admin 完整版自行加入。 - -如果您执意在完整版基础上开发,请您在发布之前一定要删除没有用到的代码,比如项目没有用到图表、示例、插件组件。 - -D2Admin 是完全开源免费的管理系统集成方案,由 [FairyEver](https://github.com/FairyEver) 工作之余完完成(希望您看到这里,可以移步 [Github](https://github.com/d2-projects/d2-admin) 点个 star 支持我)。 - ## 功能 * 使用 vue-cli3 构建 * 首屏加载等待动画 避免首次加载白屏尴尬 * 简约主题 * 每个插件和组件都配有介绍文档 -* 图片资源 sketch 源文件( 可以在这个文件内重新生成所有图片资源 ) * 登陆和注销 * 根据路由自动生成菜单 * 可折叠侧边栏 @@ -54,9 +45,8 @@ D2Admin 是完全开源免费的管理系统集成方案,由 [FairyEver](https * 图标选择器(组件) * 自动引入下载的 SVG 图标 * 前端假数据支持( mock ) -* 集成蚂蚁金服出品的 G2 图表 -* 图表自适应可拖拽大小的卡片容器(示例) * 简化剪贴板操作 +* 集成图表插件 * 时间日期计算工具 * 导入 Excel ( xlsx 格式 + csv 格式 ) * 数据导出 Excel ( xlsx 格式 + csv 格式 ) @@ -74,7 +64,6 @@ D2Admin 是完全开源免费的管理系统集成方案,由 [FairyEver](https * 自定义滚动条和滚动控制 * 内置5种主题 * 公用样式抽离,方便的主题定制 -* 支持百万级数据量的表格组件 * 打包后随意目录部署(已经做好兼容设置) * 支持临时菜单配置 * 提供“试验台”功能 方便展示系统功能调用方法 `1.1.4 +` @@ -82,13 +71,16 @@ D2Admin 是完全开源免费的管理系统集成方案,由 [FairyEver](https * 美化滚动条 `1.1.4 +` * json view `1.1.4 +` * cookie 封装 `1.1.5 +` -* 本地持久化存储封装,可根据用户区分存储 `1.1.5 +` * 多标签页全局控制 API `1.1.5 +` * 菜单全局控制 API `1.1.5 +` +* 多标签页关闭控制支持右键菜单 `1.1.10 +` +* 模块化全局状态管理 `1.2.0 +` +* 多种数据持久化方式:区分用户,区分路由,页面数据快照功能 `1.2.0 +` +* 支持跳出外部链接的菜单系统 `1.2.0 +` ## 目录结构 -``` +
 ├─ dev
 │  └─ snippets 帮助开发的代码片段
 ├─ docs 文档
@@ -106,7 +98,8 @@ D2Admin 是完全开源免费的管理系统集成方案,由 [FairyEver](https
 │  ├─ router 路由
 │  ├─ store 全局状态
 │  ├─ App.vue
-│  └─ main.js
+│  ├─ main.js
+│  └─ setting.js 设置
 ├─ tests 单元测试
 ├─ .env 环境变量
 ├─ .env.development 环境变量 开发环境
@@ -120,34 +113,7 @@ D2Admin 是完全开源免费的管理系统集成方案,由 [FairyEver](https
 ├─ jest.config.js
 ├─ package.json
 └─ vue.config.js 配置文件
-```
-
-## 获取代码
-
-有两种方式可以获得 D2Admin 的代码
-
-* 在 [releases](https://github.com/d2-projects/d2-admin/releases) 页面下载最新的发行版。发行版一般是完成了某个大升级或者修复重要 bug 后发布的压缩包,你可以下载下来直接使用
-
-* Fork 仓库到你的 github 然后克隆到本地,然后使用 master 分支继续你的开发。这种方式得到的是最新的代码,但是会有未完成的新功能。**不建议使用这种方式**
-
-* 由于 github 访问较慢,推荐前往码云仓库下载 [gitee.com/fairyever/d2-admin](https://gitee.com/fairyever/d2-admin),码云上的仓库**在每次发布版本或者修复 bug 才会更新**,所以如果你选择此方法,请直接 fork 仓库并克隆到本地
-
-> 码云的仓库由 github 同步,但是发行版和标签同步有一些问题,所以推荐直接 fork 仓库
-
-## 使用
-
-```
-// 安装依赖
-npm i
-
-// 运行
-npm run dev
-
-// 打包
-npm run build
-```
-
-> 如果上述步骤出现错误,建议您升级 node 版本 > 8,如果有其它疑问请参考[常见问题](/zh/question)
+
## Thanks diff --git a/docs/zh/question/README.md.REMOVED.git-id b/docs/zh/question/README.md.REMOVED.git-id index 8e91321d..b1b40e5a 100644 --- a/docs/zh/question/README.md.REMOVED.git-id +++ b/docs/zh/question/README.md.REMOVED.git-id @@ -1 +1 @@ -a25839f07ff223296de4b9330e10b08a04ae28ce \ No newline at end of file +f3b84d8ced6af221315de841779746e43c8e3a56 \ No newline at end of file From 5354f5c4ecbc3050a89e5ad462bee6c6c4b91aef Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Tue, 21 Aug 2018 14:57:54 +0800 Subject: [PATCH 31/36] no message Former-commit-id: 70bbebca6872653900f5cfc000dd79d05ff93846 [formerly 70bbebca6872653900f5cfc000dd79d05ff93846 [formerly 70bbebca6872653900f5cfc000dd79d05ff93846 [formerly 70bbebca6872653900f5cfc000dd79d05ff93846 [formerly bae309ef53729d5936edd7945faf734489b75fc0 [formerly 41182f46a0524a61fa1bf9fbf2b6bc1fb3d0f42c]]]]] Former-commit-id: 11c54d41ca6ea8dabe16407b260169515e9a6d59 Former-commit-id: 0a64e4394eaf0c2363faf2b913c2e68aadae9c48 Former-commit-id: c256dfe764102aa39d939d78ff0f1df706e13fd2 [formerly 7ffffe24ca99f6b4590abadecb4e1b1d14db0cde] Former-commit-id: 87ec3c50e90d2f27cf0018a4c0ad2eeb4fe40220 Former-commit-id: e8506d5c8fca44159d992190ace8a95b1c03ce95 Former-commit-id: e7226fa87facb512cd03339436f6963ff908f93d Former-commit-id: 6ab5a82f685eed5a2413e0b2d8b2fcfd4271738a Former-commit-id: ab4fe8d35befa41c461b617644af1c0f70d1b082 --- docs/zh/README.md | 25 ++++++++--------------- docs/zh/question/README.md.REMOVED.git-id | 2 +- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/docs/zh/README.md b/docs/zh/README.md index 72bd6624..29643ebf 100644 --- a/docs/zh/README.md +++ b/docs/zh/README.md @@ -2,26 +2,19 @@ home: true heroImage: /logo@2x.png actionText: 快速上手 → -actionLink: /zh/guide/ +actionLink: /zh/learn-guide/ features: - title: Vue驱动 details: 享受 Vue + webpack 的开发体验,超快虚拟 DOM 和最省心的优化。 +- title: 强大的数据持久化方案 + details: 内部封装了多种数据持久化方式,您可以在数据持久化时区分用户,区分页面,甚至可以创建页面数据快照。 +- title: 模块化全局状态管理 + details: D2Admin 的系统管理为独立模块,在此模块内根据功能划分为十几个模块,每个模块都分工明确。 +- title: 贴心小工具 + details: 为您准备了实用的 JavaScript Util 以及 CSS 常用类。 - title: 丰富集成 - details: 已经为你准备好了很可能用到的插件和组件,有的来自第三方,有的专为 d2admin 设计。 + details: 已经为你准备好了很可能用到的插件和组件,专为 D2Admin 设计,或者来自第三方。 - title: ElementUI组件库 details: 集成完善且强大的 ElementUI,随意搭配使用任何 ElementUI 组件。 footer: MIT Licensed | Copyright © 2018-present FairyEver ---- - -``` -// 安装依赖 -npm i - -// 运行 -npm run dev - -// 打包 -npm run build -``` - -> 如果上述步骤出现错误,建议您升级 node 版本 > 8,如果有其它疑问请参考[常见问题](/zh/question) \ No newline at end of file +--- \ No newline at end of file diff --git a/docs/zh/question/README.md.REMOVED.git-id b/docs/zh/question/README.md.REMOVED.git-id index b1b40e5a..0adf592d 100644 --- a/docs/zh/question/README.md.REMOVED.git-id +++ b/docs/zh/question/README.md.REMOVED.git-id @@ -1 +1 @@ -f3b84d8ced6af221315de841779746e43c8e3a56 \ No newline at end of file +4e764edd485ea1ac95564199fd4c2411ffcc59c7 \ No newline at end of file From d89d3b8becde458f88d00f7d95da40225dd082ed Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Tue, 21 Aug 2018 15:43:51 +0800 Subject: [PATCH 32/36] no message Former-commit-id: cb2d622ffea624c9faa9d1f2524611ea2f5c2d7b [formerly cb2d622ffea624c9faa9d1f2524611ea2f5c2d7b [formerly cb2d622ffea624c9faa9d1f2524611ea2f5c2d7b [formerly cb2d622ffea624c9faa9d1f2524611ea2f5c2d7b [formerly 7a94a5be6a319cc09f2e5359ee71702ac46c4c64 [formerly 24004a0faf2ce140c5ff3c195439d35a9e691712]]]]] Former-commit-id: 292ab805bdba23d33c4a0cc729aff0697eccafcf Former-commit-id: b805adc52b73f58fad48b4ab4a54deed9a95faeb Former-commit-id: 30cdb555fcdb1bb495482ae2184e723317ead5a4 [formerly 1d0839a5fcf98231c1ed81a1359ef5a0727c8483] Former-commit-id: 20bc8a3af2b263be0b1fe24e5c42b14e1ccee8fe Former-commit-id: c4713b67ed280ddab16a59920dffdd30241eaea9 Former-commit-id: 343ad721ef465da1b44601da6462d2c169216edf Former-commit-id: 39f4afdf9e826f8a1e89310f89011f1eacc565b5 Former-commit-id: 4994b617f1e7b0713bc4a3c2e58b0ead9e005974 --- docs/.vuepress/config.js | 5 +++-- docs/zh/question/README.md.REMOVED.git-id | 2 +- docs/zh/sys-cli3-webpack/README.md.REMOVED.git-id | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 docs/zh/sys-cli3-webpack/README.md.REMOVED.git-id diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 0f893aef..1ec5d421 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -49,7 +49,7 @@ module.exports = { ] }, { - text: '系统模块', + text: '模块', items: [ { text: '组件', link: '/zh/sys-components/' }, { text: '插件', link: '/zh/sys-plugins/' }, @@ -59,7 +59,8 @@ module.exports = { { text: '多页面', link: '/zh/sys-multi-page/' }, { text: '数据持久化', link: '/zh/sys-db/' }, { text: 'CSS 实用类', link: '/zh/sys-css/' }, - { text: 'JS Util', link: '/zh/sys-util/' } + { text: 'JS Util', link: '/zh/sys-util/' }, + { text: 'cli3 和 webpack', link: '/zh/sys-cli3-webpack/' } ] }, { diff --git a/docs/zh/question/README.md.REMOVED.git-id b/docs/zh/question/README.md.REMOVED.git-id index 0adf592d..77fc82ad 100644 --- a/docs/zh/question/README.md.REMOVED.git-id +++ b/docs/zh/question/README.md.REMOVED.git-id @@ -1 +1 @@ -4e764edd485ea1ac95564199fd4c2411ffcc59c7 \ No newline at end of file +99c8b3f602498f3dacc3b8503d8dfad58e47430b \ No newline at end of file diff --git a/docs/zh/sys-cli3-webpack/README.md.REMOVED.git-id b/docs/zh/sys-cli3-webpack/README.md.REMOVED.git-id new file mode 100644 index 00000000..021f3b48 --- /dev/null +++ b/docs/zh/sys-cli3-webpack/README.md.REMOVED.git-id @@ -0,0 +1 @@ +1ad656c02671d6f1ab2e1bb10adfd45f48f96abc \ No newline at end of file From ebee74bd2b73c2fa2a5b922046020d68962f74df Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Tue, 21 Aug 2018 15:45:07 +0800 Subject: [PATCH 33/36] no message Former-commit-id: 4d540e252f13877aef4c3128688d82c97c8cf285 [formerly 4d540e252f13877aef4c3128688d82c97c8cf285 [formerly 4d540e252f13877aef4c3128688d82c97c8cf285 [formerly 4d540e252f13877aef4c3128688d82c97c8cf285 [formerly eb0362716406d9adc15ad52b6b231087492d3321 [formerly 153fdb6a6d8195504532f103aa48f667fb925604]]]]] Former-commit-id: 6a1334130f342143ffc8e4dcd91a50be3df8e462 Former-commit-id: a54d6f76adfc84fc0b4740876cf2f757bc802119 Former-commit-id: 378b59fd8a9d8d4eb5e2e9089bb4150b37653466 [formerly 60b060f869e91c615c586ef013ceb9d9c537e983] Former-commit-id: 144046f26181976241fd1e696173f2f55abf4ffe Former-commit-id: 7c0fc3cb434df0600b7a0744007fa4d4fb01a30b Former-commit-id: 2eb6b609924e267e66c776d74788f86ee4608043 Former-commit-id: 11ef3ae14b8b5ab9a0dbff07f65fbd211538c8e1 Former-commit-id: 73547c23aca79251ba94b0f16bfb6e28f7313d9e --- docs/zh/learn-knowledge/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/learn-knowledge/README.md b/docs/zh/learn-knowledge/README.md index 51cf1993..2b6cebd1 100644 --- a/docs/zh/learn-knowledge/README.md +++ b/docs/zh/learn-knowledge/README.md @@ -35,7 +35,7 @@ sidebar: auto | 名称 | 介绍 | | --- | --- | -| [vue-cli3](https://github.com/vuejs/vue-docs-zh-cn/tree/master/vue-cli) | 项目脚手架 | +| [vue-cli3](https://cli.vuejs.org/zh/) | 项目脚手架 | | [webpack-chain](https://github.com/mozilla-neutrino/webpack-chain) | vue-cli3 中 webpack 的配置语法 | 插件: From 465d07beece061596f6a4fe48b4920227e6d87f1 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Tue, 21 Aug 2018 15:47:08 +0800 Subject: [PATCH 34/36] no message Former-commit-id: 56c8ba6bca70cbd2d4919cd42c4bab8b6210ef2a [formerly 56c8ba6bca70cbd2d4919cd42c4bab8b6210ef2a [formerly 56c8ba6bca70cbd2d4919cd42c4bab8b6210ef2a [formerly 56c8ba6bca70cbd2d4919cd42c4bab8b6210ef2a [formerly 30076b50aaf9973af0543dfb8d0f0df2387e446b [formerly 3b336554871578671496c6049e141414b59eaa23]]]]] Former-commit-id: 90a25312e9122db034dde4079fe9432151d594e9 Former-commit-id: 9e56d7dbdbc32a1a5130ff22ed32b0cd943b7d87 Former-commit-id: c7823cc9cf5f05ae92dfcb1cd2c6dff26faeb935 [formerly d7fd98720e40d9a13c59f87cde2887347bbd28e6] Former-commit-id: 08b87c2b41387787afa3f071bfede0eb85b253f9 Former-commit-id: d1e85b69bb8912ba557f09e3d23f285842916408 Former-commit-id: 56eeb6ec6ab5ca78efd8ac2c3f3309a868c1962f Former-commit-id: 376761eba2521c2991df0e82e3e78186c4ba1e1a Former-commit-id: 7331e2094c3aef47b71ae3dcea8d4b5d0b82e15e --- docs/zh/learn-guide/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/learn-guide/getting-started.md b/docs/zh/learn-guide/getting-started.md index 9dfa1168..3b5a1727 100644 --- a/docs/zh/learn-guide/getting-started.md +++ b/docs/zh/learn-guide/getting-started.md @@ -139,7 +139,7 @@ npm run serve ``` -上面的代码生成了一个带有 header 和 footer 的页面,页面内容只有一句话,如果您好奇为什么这么写,可以参考 [页面容器](../components/container.md) +上面的代码生成了一个带有 header 和 footer 的页面,页面内容只有一句话,如果您好奇为什么这么写,可以参考 [页面容器](../sys-components/container.md) ![](http://fairyever.qiniudn.com/20180729095919.png?imageMogr2/auto-orient/thumbnail/1480x/blur/1x0/quality/100|imageslim) From 5e28b9bad120c207a9d87dd6bc42ae3118d5aa8f Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Tue, 21 Aug 2018 15:52:43 +0800 Subject: [PATCH 35/36] no message Former-commit-id: 0452211d33d5f89cf016c5ba9f375a182d6ee867 [formerly 0452211d33d5f89cf016c5ba9f375a182d6ee867 [formerly 0452211d33d5f89cf016c5ba9f375a182d6ee867 [formerly 0452211d33d5f89cf016c5ba9f375a182d6ee867 [formerly 9e839520a925727ac4032ec2851532a1cca5832e [formerly de141c93c25b9c84c06b7fa6c358727f1e19ec7c]]]]] Former-commit-id: 75bc9cdd1e1350739375136131bda23fd1268590 Former-commit-id: 50ad37c5b1788e2563e459edebbad86a2f70faf7 Former-commit-id: 8a721a3a4c79f8f32c17e57ac7965f803e96d471 [formerly 5e07da6e7680f8f8ec264c5174a4eed1b77f3b1b] Former-commit-id: 9027f9942d8ee6971abcff0aad55ea9ef5f7404c Former-commit-id: 324405c7683add4fed12237e0698162624ea6de7 Former-commit-id: c8eb46bc7c33f5694aa4d229c001760bd6a67dd3 Former-commit-id: e176fd7176a53831650e3015f150b10f8b36c1d2 Former-commit-id: 6a5d0f5ffe3a8816567f39e03b790af95dd497b2 --- docs/zh/learn-knowledge/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/learn-knowledge/README.md b/docs/zh/learn-knowledge/README.md index 2b6cebd1..6200b009 100644 --- a/docs/zh/learn-knowledge/README.md +++ b/docs/zh/learn-knowledge/README.md @@ -44,7 +44,7 @@ sidebar: auto | --- | --- | | [lodash](https://lodash.com/docs/4.17.10) | 一致性、模块化、高性能的 JavaScript 实用工具库 | | [axios](https://github.com/axios/axios) | 最流行的网络请求库 | -| [better-scroll](https://github.com/ustbhuangyi/better-scroll) | [d2-container](../components/container.md) 的自定义滚动条依赖 | +| [better-scroll](https://github.com/ustbhuangyi/better-scroll) | [d2-container](../sys-components/container.md) 的自定义滚动条依赖 | | [dayjs](https://github.com/iamkun/dayjs) | 日期处理库 | | [v-charts](https://v-charts.js.org/#/props) | vue 版本的 echarts 由饿了么开发 | | [echarts](http://echarts.baidu.com/index.html) | v-charts 的核心 | From b82b109231882662bd01d83b5a14c133f04b4103 Mon Sep 17 00:00:00 2001 From: liyang <1711467488@qq.com> Date: Tue, 21 Aug 2018 15:57:29 +0800 Subject: [PATCH 36/36] no message Former-commit-id: a45633a8276a0c932334be3fdb2d4778737567d9 [formerly a45633a8276a0c932334be3fdb2d4778737567d9 [formerly a45633a8276a0c932334be3fdb2d4778737567d9 [formerly a45633a8276a0c932334be3fdb2d4778737567d9 [formerly 57ad83bae41a7d256c86621a3fe2aeb04ad16b39 [formerly 14d0f80c1cf51073a631c418eea148bfca788629]]]]] Former-commit-id: f2e73d95ad898cc98ce7317fe14e69a064c1ccc4 Former-commit-id: 09f8c8dcacef6cad04c75d307b81fdeea17a608e Former-commit-id: fa15471f423a3ccc47178ada1a9bf089ca8cfaf4 [formerly eb3ac0b652c74b1b2f494c7d033a4d36755a0f5f] Former-commit-id: adbd2cd183a15410702930a3bdb2871b241142b8 Former-commit-id: dec600a57658c27a425cd45b73b11a482565f784 Former-commit-id: df2472ebf4142d7016b7f1fc02f0d72732d6ff44 Former-commit-id: 1cfb1cfa3600487346d295ab9d9116df11ce5ebc Former-commit-id: 47d63ffe24a6ec4bfa650a94a59dd33a62ba415b --- docs/zh/change-log/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/zh/change-log/README.md b/docs/zh/change-log/README.md index 12f3ec08..b55a0f7f 100644 --- a/docs/zh/change-log/README.md +++ b/docs/zh/change-log/README.md @@ -4,6 +4,14 @@ sidebar: auto # 更新日志 +## v1.2.0 + +* [ 新增 ] 全局状态管理模块化并且重新设计了 API +* [ 新增 ] 全新的数据持久化 API +* [ 新增 ] 文档重构 +* [ 新增 ] 菜单支持跳转到外部链接 +* [ 修改 ] bug 修复 + ## v1.1.11 * [ 修改 ] 优化 v1.1.10 的更新代码