Merge branch 'hotfix/1.5.5' into develop
Former-commit-id: b5ae17ba8fb2007804ada9ab8c9a414f46242531 [formerly b5ae17ba8fb2007804ada9ab8c9a414f46242531 [formerly b5ae17ba8fb2007804ada9ab8c9a414f46242531 [formerly b5ae17ba8fb2007804ada9ab8c9a414f46242531 [formerly 820e21f7444903c2c74e1dffce6754d4280aa8a9 [formerly 022308ef3a40e0e9fac3bf9e363f8482e5896fbc]]]]] Former-commit-id: 4a540e299e997294dc9243db51710a4ec3b69e56 Former-commit-id: db3810befd8d6db837108b63aa7e38d268d100b7 Former-commit-id: 8f334a03c9c4ee7f5fa80027ce27df2f8bcd39b2 [formerly e51b11a3c9e03ba262fb7d03b80bdae62c3050a6] Former-commit-id: f3113990057a0783c908269dc87ab6b4f2c6e6cb Former-commit-id: 62bb0faa68f090f974d394edaabc068c7d24d71d Former-commit-id: 7c458daaadd8a191b6463a2e70439da1d75e84e3 Former-commit-id: b83e3f2821bf69552ea52fbeb85fd0141bca33f7 Former-commit-id: 8f6f54f625a9e0ec1b391cae5d98965f4f115149
This commit is contained in:
29
README.md
29
README.md
@@ -17,11 +17,11 @@
|
|||||||
<a><img src="https://img.shields.io/github/stars/d2-projects/d2-admin.svg"/></a>
|
<a><img src="https://img.shields.io/github/stars/d2-projects/d2-admin.svg"/></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
[D2Admin](https://github.com/d2-projects/d2-admin) 是一个完全**开源免费**的管理系统前端集成方案,为您做好大部分项目前期准备工作,提供大量示例代码,方便快速进行管理系统开发。
|
[D2Admin](https://github.com/d2-projects/d2-admin) 是一个完全 **开源免费** 的企业中后台产品前端集成方案,使用最新的前端技术栈,已经做好大部分项目前期准备工作,并且带有大量示例代码,助力管理系统敏捷开发。
|
||||||
|
|
||||||
## 文档
|
## 文档
|
||||||
|
|
||||||
[中文文档](https://doc.d2admin.fairyever.com/zh/)
|
[文档](https://doc.d2admin.fairyever.com)
|
||||||
|
|
||||||
## 预览
|
## 预览
|
||||||
|
|
||||||
@@ -83,12 +83,10 @@
|
|||||||
* 日志记录和错误捕捉 `1.3.0 +`
|
* 日志记录和错误捕捉 `1.3.0 +`
|
||||||
* 全局菜单搜索 `1.3.0 +`
|
* 全局菜单搜索 `1.3.0 +`
|
||||||
* 自定义登录重定向 `1.3.0 +`
|
* 自定义登录重定向 `1.3.0 +`
|
||||||
|
* 切换全局基础组件尺寸 `1.4.0 +`
|
||||||
## TODO
|
* 页面载入进度条 `1.4.1 +`
|
||||||
|
* 自适应的顶部菜单栏 `1.4.7 +`
|
||||||
* 可以折叠后显示一行输入控件的的表格搜索栏组件
|
* 数据导出 xslx 时支持合并单元格 `1.5.4 +`
|
||||||
* 用户管理示例界面(用户管理、权限管理、角色管理等)方便对接后台
|
|
||||||
* 更多的错误信息页面以及美化错误页面(404、401...)
|
|
||||||
|
|
||||||
## 其它版本
|
## 其它版本
|
||||||
|
|
||||||
@@ -101,10 +99,13 @@
|
|||||||
|
|
||||||
| 名称 | Github / 主页 | 预览 | 介绍 |
|
| 名称 | Github / 主页 | 预览 | 介绍 |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
|
| D2 日报 | [Github](https://github.com/d2-projects/d2-awesome) | [网站](https://awesome.fairyever.com/daily/) | 每天更新设计与技术圈的新闻和资源 |
|
||||||
| D2 CRUD | [Github](https://github.com/d2-projects/d2-crud) | [预览](https://d2admin.fairyever.com/#/demo/d2-crud/index) | 表格常用操作封装 |
|
| D2 CRUD | [Github](https://github.com/d2-projects/d2-crud) | [预览](https://d2admin.fairyever.com/#/demo/d2-crud/index) | 表格常用操作封装 |
|
||||||
| D2 Ribbons | [Github](https://github.com/d2-projects/d2-ribbons) | [预览](https://github.com/d2-projects/d2-ribbons) | 开源项目徽标库 |
|
| D2 Ribbons | [Github](https://github.com/d2-projects/d2-ribbons) | [预览](https://github.com/d2-projects/d2-ribbons) | 开源项目徽标库 |
|
||||||
|
|
||||||
## 后端实现
|
## 开源后端实现
|
||||||
|
|
||||||
|
> 后端由开源社区贡献,不保证使用 D2Admin 最新版本,相关使用问题请联系其开源作者。
|
||||||
|
|
||||||
| 名称 | Github / 主页 | 预览 | 介绍 |
|
| 名称 | Github / 主页 | 预览 | 介绍 |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
@@ -134,12 +135,12 @@ D2Admin 是完全开源免费的项目,旨在帮助开发者更方便地进行
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
## 支持
|
## License
|
||||||
|
|
||||||
D2 Projects 相关项目全部完全免费,但是也有相关的费用支出,比如七牛图床、码云付费 page 服务(已经废弃)、服务器和域名(现已全部转至 Github)、QQ 群扩容、群内红包福利等,现已花费数百元。所以如果您喜欢这些项目欢迎小额捐助一下,十分感谢。
|
[MIT](https://github.com/d2-projects/d2-admin/blob/master/LICENSE)
|
||||||
|
|
||||||

|
Copyright (c) 2018-present FairyEver
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
如果希望您的博客或者网站出现在 [D2 Projects](https://github.com/d2-projects) 项目的 README 以及文档中,请联系作者。
|
|
||||||
|
|
||||||

|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "d2-admin",
|
"name": "d2-admin",
|
||||||
"version": "1.5.4",
|
"version": "1.5.5",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"serve": "vue-cli-service serve --open",
|
"serve": "vue-cli-service serve --open",
|
||||||
|
|||||||
6
public/image/loading/loading-spin.svg
Normal file
6
public/image/loading/loading-spin.svg
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32" fill="white">
|
||||||
|
<path opacity=".25" d="M16 0 A16 16 0 0 0 16 32 A16 16 0 0 0 16 0 M16 4 A12 12 0 0 1 16 28 A12 12 0 0 1 16 4"/>
|
||||||
|
<path d="M16 0 A16 16 0 0 1 32 16 L28 16 A12 12 0 0 0 16 4z">
|
||||||
|
<animateTransform attributeName="transform" type="rotate" from="0 16 16" to="360 16 16" dur="0.8s" repeatCount="indefinite" />
|
||||||
|
</path>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 422 B |
@@ -7,144 +7,19 @@
|
|||||||
<link rel="icon" href="<%= BASE_URL %>icon.ico">
|
<link rel="icon" href="<%= BASE_URL %>icon.ico">
|
||||||
<title><%= VUE_APP_TITLE %></title>
|
<title><%= VUE_APP_TITLE %></title>
|
||||||
<style>
|
<style>
|
||||||
html, body, #app {
|
html, body, #app { height: 100%; margin: 0px; padding: 0px; }
|
||||||
height: 100%;
|
.d2-home { background-color: #303133; height: 100%; display: flex; flex-direction: column; }
|
||||||
margin: 0px;
|
.d2-home__main { user-select: none; width: 100%; flex-grow: 1; display: flex; justify-content: center; align-items: center; flex-direction: column; }
|
||||||
padding: 0px;
|
.d2-home__footer { width: 100%; flex-grow: 0; text-align: center; padding: 1em 0; }
|
||||||
}
|
.d2-home__footer > a { font-size: 12px; color: #ABABAB; text-decoration: none; }
|
||||||
.d2-app-loading-group {
|
.d2-home__loading { height: 32px; width: 32px; margin-bottom: 20px; }
|
||||||
height: 100%;
|
.d2-home__title { color: #FFF; font-size: 14px; margin-bottom: 10px; }
|
||||||
width: 100%;
|
.d2-home__sub-title { color: #ABABAB; font-size: 12px; }
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
flex-direction: column;
|
|
||||||
background: linear-gradient(to bottom, rgba(255,255,255,0.15) 0%, rgba(0,0,0,0.15) 100%), radial-gradient(at top center, rgba(255,255,255,0.40) 0%, rgba(0,0,0,0.40) 120%) #989898;
|
|
||||||
background-blend-mode: multiply,multiply;
|
|
||||||
}
|
|
||||||
.d2-app-loading-title {
|
|
||||||
color: #FFF;
|
|
||||||
font-weight: bold;
|
|
||||||
font-size: 14px;
|
|
||||||
margin-top: 40px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
letter-spacing: 0.2em;
|
|
||||||
}
|
|
||||||
.d2-app-loading-sub-title {
|
|
||||||
color: #FFF;
|
|
||||||
font-size: 10px;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
.d2-app-loading-sub-info {
|
|
||||||
color: #FFF;
|
|
||||||
font-size: 10px;
|
|
||||||
opacity: .8;
|
|
||||||
margin-bottom: 4px;
|
|
||||||
}
|
|
||||||
.d2-app-loading-btn {
|
|
||||||
text-decoration: none;
|
|
||||||
display: inline-block;
|
|
||||||
line-height: 1;
|
|
||||||
white-space: nowrap;
|
|
||||||
cursor: pointer;
|
|
||||||
background: #fff;
|
|
||||||
border: 1px solid #dcdfe6;
|
|
||||||
border-color: #dcdfe6;
|
|
||||||
color: #606266;
|
|
||||||
-webkit-appearance: none;
|
|
||||||
text-align: center;
|
|
||||||
box-sizing: border-box;
|
|
||||||
outline: none;
|
|
||||||
margin: 0;
|
|
||||||
transition: .1s;
|
|
||||||
font-weight: 500;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-webkit-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
padding: 12px 20px;
|
|
||||||
font-size: 14px;
|
|
||||||
border-radius: 4px;
|
|
||||||
/* 圆角 */
|
|
||||||
padding: 7px 15px;
|
|
||||||
border-radius: 20px;
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
.d2-app-loading-grid {
|
|
||||||
width: 30px;
|
|
||||||
height: 30px;
|
|
||||||
}
|
|
||||||
.d2-app-loading-grid .d2-app-loading {
|
|
||||||
width: 10px;
|
|
||||||
height: 10px;
|
|
||||||
background-color: #FFF;
|
|
||||||
float: left;
|
|
||||||
-webkit-animation: d2-app-loading-grid-scale-delay 1.3s infinite ease-in-out;
|
|
||||||
animation: d2-app-loading-grid-scale-delay 1.3s infinite ease-in-out;
|
|
||||||
}
|
|
||||||
.d2-app-loading-grid .d2-app-loading1 {
|
|
||||||
border-top-left-radius: 4px;
|
|
||||||
-webkit-animation-delay: 0.2s;
|
|
||||||
animation-delay: 0.2s; }
|
|
||||||
.d2-app-loading-grid .d2-app-loading2 {
|
|
||||||
-webkit-animation-delay: 0.3s;
|
|
||||||
animation-delay: 0.3s; }
|
|
||||||
.d2-app-loading-grid .d2-app-loading3 {
|
|
||||||
border-top-right-radius: 4px;
|
|
||||||
-webkit-animation-delay: 0.4s;
|
|
||||||
animation-delay: 0.4s; }
|
|
||||||
.d2-app-loading-grid .d2-app-loading4 {
|
|
||||||
-webkit-animation-delay: 0.1s;
|
|
||||||
animation-delay: 0.1s; }
|
|
||||||
.d2-app-loading-grid .d2-app-loading5 {
|
|
||||||
-webkit-animation-delay: 0.2s;
|
|
||||||
animation-delay: 0.2s; }
|
|
||||||
.d2-app-loading-grid .d2-app-loading6 {
|
|
||||||
-webkit-animation-delay: 0.3s;
|
|
||||||
animation-delay: 0.3s; }
|
|
||||||
.d2-app-loading-grid .d2-app-loading7 {
|
|
||||||
border-bottom-left-radius: 4px;
|
|
||||||
-webkit-animation-delay: 0s;
|
|
||||||
animation-delay: 0s; }
|
|
||||||
.d2-app-loading-grid .d2-app-loading8 {
|
|
||||||
-webkit-animation-delay: 0.1s;
|
|
||||||
animation-delay: 0.1s; }
|
|
||||||
.d2-app-loading-grid .d2-app-loading9 {
|
|
||||||
border-bottom-right-radius: 4px;
|
|
||||||
-webkit-animation-delay: 0.2s;
|
|
||||||
animation-delay: 0.2s; }
|
|
||||||
|
|
||||||
@-webkit-keyframes d2-app-loading-grid-scale-delay {
|
|
||||||
0%, 70%, 100% {
|
|
||||||
-webkit-transform: scale3D(1, 1, 1);
|
|
||||||
transform: scale3D(1, 1, 1);
|
|
||||||
} 35% {
|
|
||||||
-webkit-transform: scale3D(0, 0, 1);
|
|
||||||
transform: scale3D(0, 0, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes d2-app-loading-grid-scale-delay {
|
|
||||||
0%, 70%, 100% {
|
|
||||||
-webkit-transform: scale3D(1, 1, 1);
|
|
||||||
transform: scale3D(1, 1, 1);
|
|
||||||
} 35% {
|
|
||||||
-webkit-transform: scale3D(0, 0, 1);
|
|
||||||
transform: scale3D(0, 0, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
<script>
|
<script>
|
||||||
// 感谢您使用 D2Admin
|
|
||||||
// D2Admin 完全开源免费,并且长期更新维护
|
|
||||||
// 下面的百度统计代码不会拖慢您的应用速度也不会占用多少网络带宽,我们只是想统计一下我们的用户量
|
|
||||||
// 所以希望您不要删除我们的统计代码,让我们知道有更多人的在使用,给我们继续开发的动力
|
|
||||||
var _hmt = _hmt || [];
|
var _hmt = _hmt || [];
|
||||||
(function() {
|
var hmid = "bc38887aa5588add05a38704342ad7e8";
|
||||||
var hm = document.createElement("script");
|
(function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?" + hmid; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s);})();
|
||||||
hm.src = "https://hm.baidu.com/hm.js?bc38887aa5588add05a38704342ad7e8";
|
|
||||||
var s = document.getElementsByTagName("script")[0];
|
|
||||||
s.parentNode.insertBefore(hm, s);
|
|
||||||
})();
|
|
||||||
</script>
|
</script>
|
||||||
<!-- ua -->
|
<!-- ua -->
|
||||||
<script src="<%= BASE_URL %>script/ua-parser.min.js"></script>
|
<script src="<%= BASE_URL %>script/ua-parser.min.js"></script>
|
||||||
@@ -152,30 +27,32 @@
|
|||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<noscript>
|
<noscript>
|
||||||
<strong>We're sorry but d2-admin doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
|
<strong>
|
||||||
|
很抱歉,如果没有 JavaScript 支持,D2Admin 将不能正常工作。请启用浏览器的 JavaScript 然后继续。
|
||||||
|
</strong>
|
||||||
</noscript>
|
</noscript>
|
||||||
<div id="app">
|
<div id="app">
|
||||||
<div class="d2-app-loading-group">
|
<div class="d2-home">
|
||||||
<div class="d2-app-loading-grid">
|
<div class="d2-home__main">
|
||||||
<div class="d2-app-loading d2-app-loading1"></div>
|
<img
|
||||||
<div class="d2-app-loading d2-app-loading2"></div>
|
class="d2-home__loading"
|
||||||
<div class="d2-app-loading d2-app-loading3"></div>
|
src="./image/loading/loading-spin.svg"
|
||||||
<div class="d2-app-loading d2-app-loading4"></div>
|
alt="loading">
|
||||||
<div class="d2-app-loading d2-app-loading5"></div>
|
<div class="d2-home__title">
|
||||||
<div class="d2-app-loading d2-app-loading6"></div>
|
正在加载资源
|
||||||
<div class="d2-app-loading d2-app-loading7"></div>
|
|
||||||
<div class="d2-app-loading d2-app-loading8"></div>
|
|
||||||
<div class="d2-app-loading d2-app-loading9"></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="d2-app-loading-title">加载中</div>
|
<div class="d2-home__sub-title">
|
||||||
<div class="d2-app-loading-sub-title">欢迎使用 D2Admin。初次加载较慢,请耐心等待</div>
|
初次加载资源可能需要较多时间 请耐心等待
|
||||||
<div class="d2-app-loading-sub-info">如果很久很久都没有加载成功,请清空缓存重新加载页面</div>
|
</div>
|
||||||
<div style="margin-top: 10px;">
|
</div>
|
||||||
<a class="d2-app-loading-btn" href="https://github.com/d2-projects/d2-admin" target="blank">Github仓库</a>
|
<div class="d2-home__footer">
|
||||||
<a class="d2-app-loading-btn" href="https://doc.d2admin.fairyever.com/zh/" target="blank">中文文档</a>
|
<a
|
||||||
|
href="https://github.com/d2-projects/d2-admin"
|
||||||
|
target="_blank">
|
||||||
|
https://github.com/d2-projects/d2-admin
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- built files will be auto injected -->
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<p class="page_title">page not found</p>
|
<p class="page_title">404 page not found</p>
|
||||||
<el-button class="d2-mt" @click="$router.replace({ path: '/' })">
|
<el-button class="d2-mt" @click="$router.replace({ path: '/' })">
|
||||||
返回首页
|
返回首页
|
||||||
</el-button>
|
</el-button>
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import '~@/assets/style/public.scss';
|
@import '~@/assets/style/public.scss';
|
||||||
.page {
|
.page {
|
||||||
background: linear-gradient(to bottom, rgba(255,255,255,0.15) 0%, rgba(0,0,0,0.15) 100%), radial-gradient(at top center, rgba(255,255,255,0.40) 0%, rgba(0,0,0,0.40) 120%) #989898;
|
background: #303133;
|
||||||
background-blend-mode: multiply,multiply;
|
background-blend-mode: multiply,multiply;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ export default {
|
|||||||
component: layoutHeaderAside,
|
component: layoutHeaderAside,
|
||||||
children: (pre => [
|
children: (pre => [
|
||||||
{ path: 'index', name: `${pre}index`, component: () => import('@/pages/demo/playground/index'), meta: { ...meta, title: '试验台首页' } },
|
{ path: 'index', name: `${pre}index`, component: () => import('@/pages/demo/playground/index'), meta: { ...meta, title: '试验台首页' } },
|
||||||
{ path: 'page-cache/on', name: `${pre}page-cache-on`, component: () => import('@/pages/demo/playground/page-cache/on.vue'), meta: { ...meta, title: '开启缓存' } },
|
{ path: 'page-cache/on', name: `${pre}page-cache-on`, component: () => import('@/pages/demo/playground/page-cache/on.vue'), meta: { ...meta, cache: true, title: '开启缓存' } },
|
||||||
{ path: 'page-cache/off', name: `${pre}page-cache-off`, component: () => import('@/pages/demo/playground/page-cache/off.vue'), meta: { ...meta, notCache: true, title: '关闭缓存' } },
|
{ path: 'page-cache/off', name: `${pre}page-cache-off`, component: () => import('@/pages/demo/playground/page-cache/off.vue'), meta: { ...meta, title: '关闭缓存' } },
|
||||||
{ path: 'page-argu/send', name: `${pre}page-argu-send`, component: () => import('@/pages/demo/playground/page-argu/send.vue'), meta: { ...meta, title: '参数传递 发送' } },
|
{ path: 'page-argu/send', name: `${pre}page-argu-send`, component: () => import('@/pages/demo/playground/page-argu/send.vue'), meta: { ...meta, title: '参数传递 发送' } },
|
||||||
{ path: 'page-argu/get/:username', name: `${pre}page-argu-get`, component: () => import('@/pages/demo/playground/page-argu/get.vue'), meta: { ...meta, title: '参数传递 接收' } },
|
{ path: 'page-argu/get/:username', name: `${pre}page-argu-get`, component: () => import('@/pages/demo/playground/page-argu/get.vue'), meta: { ...meta, title: '参数传递 接收' } },
|
||||||
{ path: 'store/menu', name: `${pre}store-menu`, component: () => import('@/pages/demo/playground/store/menu'), meta: { ...meta, title: '菜单控制' } },
|
{ path: 'store/menu', name: `${pre}store-menu`, component: () => import('@/pages/demo/playground/store/menu'), meta: { ...meta, title: '菜单控制' } },
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { version } from '../package'
|
import { version } from '../package'
|
||||||
|
|
||||||
const setting = {
|
export default {
|
||||||
// 快捷键
|
// 快捷键
|
||||||
// 支持快捷键 例如 ctrl+shift+s
|
// 支持快捷键 例如 ctrl+shift+s
|
||||||
hotkey: {
|
hotkey: {
|
||||||
@@ -76,5 +76,3 @@ const setting = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default setting
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
3cac6fb289611555b60a92937c3b5ba99e7b9ec1
|
78d2ffb63408e98c92632f7fd5d2596dcad9e199
|
||||||
Reference in New Issue
Block a user