Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Springboot Plus
Commits
80bccb6a
Commit
80bccb6a
authored
Oct 10, 2019
by
trumansdo
Browse files
-
parent
8011e682
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
plus-admin/admin-core/src/main/java/com/ibeetl/admin/core/conf/JasonConfig.java
View file @
80bccb6a
package
com.ibeetl.admin.core.conf
;
package
com.ibeetl.admin.core.conf
;
import
cn.hutool.core.convert.Convert
;
import
com.fasterxml.jackson.annotation.JsonInclude.Include
;
import
com.fasterxml.jackson.annotation.JsonInclude.Include
;
import
com.fasterxml.jackson.core.JsonParser.NumberType
;
import
com.fasterxml.jackson.core.JsonToken
;
import
com.fasterxml.jackson.core.type.WritableTypeId
;
import
com.fasterxml.jackson.databind.DeserializationConfig
;
import
com.fasterxml.jackson.databind.DeserializationConfig
;
import
com.fasterxml.jackson.databind.JavaType
;
import
com.fasterxml.jackson.databind.JsonMappingException
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.fasterxml.jackson.databind.SerializationConfig
;
import
com.fasterxml.jackson.databind.SerializationConfig
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper
;
import
com.fasterxml.jackson.databind.jsontype.TypeSerializer
;
import
com.fasterxml.jackson.databind.ser.std.StdSerializer
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.lang.reflect.Type
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
org.beetl.sql.core.engine.PageQuery
;
import
org.beetl.sql.core.engine.PageQuery
;
...
@@ -35,12 +46,55 @@ public class JasonConfig {
...
@@ -35,12 +46,55 @@ public class JasonConfig {
SimpleModule
simpleModule
=
new
SimpleModule
(
"SimpleModule"
,
Version
.
unknownVersion
());
SimpleModule
simpleModule
=
new
SimpleModule
(
"SimpleModule"
,
Version
.
unknownVersion
());
simpleModule
.
addSerializer
(
JsonResult
.
class
,
new
CustomJsonResultSerializer
());
simpleModule
.
addSerializer
(
JsonResult
.
class
,
new
CustomJsonResultSerializer
());
simpleModule
.
addSerializer
(
Long
.
class
,
ToStri
ngSerializer
.
instance
);
simpleModule
.
addSerializer
(
Long
.
class
,
CustomLo
ngSerializer
.
instance
);
simpleModule
.
addSerializer
(
Long
.
TYPE
,
ToStri
ngSerializer
.
instance
);
simpleModule
.
addSerializer
(
Long
.
TYPE
,
CustomLo
ngSerializer
.
instance
);
objectMapper
.
registerModule
(
simpleModule
);
objectMapper
.
registerModule
(
simpleModule
);
return
objectMapper
;
return
objectMapper
;
}
}
/**
* 修正jackson转换Long类型的一个bug:
* jackson的转换Long类型时,如果数值在Integer范围,会变成Integer类型,然后通过强制转换为Long时就会报错。
* 这里采用安全的Long转换避免强制类型转换
* */
static
class
CustomLongSerializer
extends
StdSerializer
<
Object
>
{
public
static
final
CustomLongSerializer
instance
=
new
CustomLongSerializer
();
private
CustomLongSerializer
()
{
super
(
Object
.
class
);
}
@Override
public
void
serialize
(
Object
value
,
JsonGenerator
gen
,
SerializerProvider
provider
)
throws
IOException
{
gen
.
writeNumber
(
Convert
.
toLong
(
value
,
0L
));
}
@Override
public
void
serializeWithType
(
Object
value
,
JsonGenerator
g
,
SerializerProvider
provider
,
TypeSerializer
typeSer
)
throws
IOException
{
WritableTypeId
typeIdDef
=
typeSer
.
writeTypePrefix
(
g
,
typeSer
.
typeId
(
value
,
JsonToken
.
VALUE_NUMBER_INT
));
serialize
(
value
,
g
,
provider
);
typeSer
.
writeTypeSuffix
(
g
,
typeIdDef
);
}
@Override
public
JsonNode
getSchema
(
SerializerProvider
provider
,
Type
typeHint
)
{
return
createSchemaNode
(
"long"
,
true
);
}
@Override
public
void
acceptJsonFormatVisitor
(
JsonFormatVisitorWrapper
visitor
,
JavaType
typeHint
)
throws
JsonMappingException
{
visitStringFormat
(
visitor
,
typeHint
);
visitIntFormat
(
visitor
,
typeHint
,
NumberType
.
LONG
);
}
}
/**
/**
* layui 前端要求后台返回的数据格式
* layui 前端要求后台返回的数据格式
*
*
...
...
plus-admin/admin-core/src/main/resources/usually.sql
View file @
80bccb6a
...
@@ -45,103 +45,3 @@ select cm.*, cd.NAME, cd.TYPE_NAME
...
@@ -45,103 +45,3 @@ select cm.*, cd.NAME, cd.TYPE_NAME
from
core_menu
cm
from
core_menu
cm
join
core_dict
cd
on
cd
.
VALUE
=
cm
.
TYPE
;
join
core_dict
cd
on
cd
.
VALUE
=
cm
.
TYPE
;
SELECT
*
FROM
core_dict
CD
;
-- ---------------------------菜单数据修改----------------------------
USE
starter
;
INSERT
INTO
core_function
(
ID
,
CODE
,
NAME
,
ACCESS_URL
,
PARENT_ID
,
TYPE
,
CREATE_TIME
)
VALUES
(
22
,
'permission'
,
'Permission'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
21
,
'PagePermission'
,
'PagePermission'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
22
,
'DirectivePermission'
,
'DirectivePermission'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
23
,
'RolePermission'
,
'RolePermission'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
24
,
'Icon'
,
'Icon'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
25
,
'Icons'
,
'Icons'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
26
,
'ComponentDemo'
,
'ComponentDemo'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
27
,
'TinymceDemo'
,
'TinymceDemo'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
28
,
'MarkdownDemo'
,
'MarkdownDemo'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
29
,
'JsonEditorDemo'
,
'JsonEditorDemo'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
30
,
'SplitpaneDemo'
,
'SplitpaneDemo'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
31
,
'AvatarUploadDemo'
,
'AvatarUploadDemo'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
32
,
'DropzoneDemo'
,
'DropzoneDemo'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
33
,
'StickyDemo'
,
'StickyDemo'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
34
,
'CountToDemo'
,
'CountToDemo'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
35
,
'ComponentMixinDemo'
,
'ComponentMixinDemo'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
36
,
'BackToTopDemo'
,
'BackToTopDemo'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
37
,
'DragDialogDemo'
,
'DragDialogDemo'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
38
,
'DragSelectDemo'
,
'DragSelectDemo'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
39
,
'DndListDemo'
,
'DndListDemo'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
40
,
'DragKanbanDemo'
,
'DragKanbanDemo'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
41
,
'Charts'
,
'Charts'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
42
,
'KeyboardChart'
,
'KeyboardChart'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
43
,
'LineChart'
,
'LineChart'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
44
,
'MixChart'
,
'MixChart'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
45
,
'Nested'
,
'Nested'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
46
,
'Menu1'
,
'Menu1'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
47
,
'Menu1-1'
,
'Menu1-1'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
48
,
'Menu1-2'
,
'Menu1-2'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
49
,
'Menu1-2-1'
,
'Menu1-2-1'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
50
,
'Menu1-2-2'
,
'Menu1-2-2'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
51
,
'Menu1-3'
,
'Menu1-3'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
52
,
'Menu2'
,
'Menu2'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
53
,
'Table'
,
'Table'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
54
,
'DynamicTable'
,
'DynamicTable'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
55
,
'DragTable'
,
'DragTable'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
56
,
'InlineEditTable'
,
'InlineEditTable'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
57
,
'ComplexTable'
,
'ComplexTable'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
58
,
'Example'
,
'Example'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
59
,
'CreateArticle'
,
'CreateArticle'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
60
,
'EditArticle'
,
'EditArticle'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
61
,
'ArticleList'
,
'ArticleList'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
62
,
'Tab'
,
'Tab'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
63
,
'Tabs'
,
'Tabs'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
64
,
'ErrorPages'
,
'ErrorPages'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
65
,
'Page401'
,
'Page401'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
66
,
'Page404'
,
'Page404'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
67
,
'ErrorLog'
,
'ErrorLog'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
68
,
'ErrorLogs'
,
'ErrorLogs'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
69
,
'Excel'
,
'Excel'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
70
,
'ExportExcel'
,
'ExportExcel'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
71
,
'SelectExcel'
,
'SelectExcel'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
72
,
'MergeHeader'
,
'MergeHeader'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
73
,
'UploadExcel'
,
'UploadExcel'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
74
,
'Zip'
,
'Zip'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
75
,
'ExportZip'
,
'ExportZip'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
76
,
'Pdf'
,
'Pdf'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
77
,
'PDFS'
,
'PDFS'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
78
,
'PdfDown'
,
'PdfDown'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
79
,
'theme'
,
'theme'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
80
,
'Themes'
,
'Themes'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
81
,
'clipboard'
,
'clipboard'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
82
,
'ClipboardDemo'
,
'ClipboardDemo'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
83
,
'ExternalLink'
,
'ExternalLink'
,
'/permission'
,
0
,
'FN0'
,
1519868556
)
,
(
84
,
'link'
,
'link'
,
'/permission'
,
0
,
'FN0'
,
1519868556
);
plus-admin/doc/starter-mysql.sql
View file @
80bccb6a
This diff is collapsed.
Click to expand it.
ve-admin/admin-web/src/router/maps/core.js
View file @
80bccb6a
...
@@ -20,10 +20,93 @@ import Layout from '@/layout';
...
@@ -20,10 +20,93 @@ import Layout from '@/layout';
const
coreRouter
=
[
const
coreRouter
=
[
{
{
path
:
'
/profile
'
,
path
:
'
/admin
'
,
name
:
'
基础管理
'
,
component
:
Layout
,
component
:
Layout
,
name
:
'
router-name
'
,
meta
:
{},
children
:
[],
children
:
[
{
path
:
'
/admin/user/index.do
'
,
name
:
'
用户管理
'
,
meta
:
{},
},
{
path
:
'
/admin/org/index.do
'
,
name
:
'
组织机构管理
'
,
meta
:
{},
},
{
path
:
'
/admin/role/index.do
'
,
name
:
'
角色管理
'
,
meta
:
{},
},
{
path
:
'
/admin/menu/index.do
'
,
name
:
'
菜单项
'
,
meta
:
{},
},
{
path
:
'
/admin/function/index.do
'
,
name
:
'
功能点管理
'
,
meta
:
{},
},
{
path
:
'
/admin/dict/index.do
'
,
name
:
'
字典数据管理
'
,
meta
:
{},
},
{
path
:
'
/admin/role/function.do
'
,
name
:
'
角色功能授权
'
,
meta
:
{},
},
{
path
:
'
/admin/role/data.do
'
,
name
:
'
角色数据授权
'
,
meta
:
{},
},
],
},
{
path
:
'
/core
'
,
name
:
'
代码生成导航
'
,
component
:
Layout
,
meta
:
{},
children
:
[
{
path
:
'
/core/codeGen/project.do
'
,
name
:
'
子系统生成
'
,
meta
:
{},
},
{
path
:
'
/core/codeGen/index.do
'
,
name
:
'
代码生成
'
,
meta
:
{},
},
],
},
{
path
:
'
/moniter
'
,
name
:
'
监控管理
'
,
component
:
Layout
,
meta
:
{},
children
:
[
{
path
:
'
/admin/workflow/index.do
'
,
name
:
'
流程监控
'
,
meta
:
{},
},
{
path
:
'
/admin/audit/index.do
'
,
name
:
'
审计查询
'
,
meta
:
{},
},
{
path
:
'
/admin/blog/index.do
'
,
name
:
'
博客测试
'
,
meta
:
{},
},
],
},
},
];
];
...
...
ve-admin/admin-web/src/store/modules/permission.js
View file @
80bccb6a
...
@@ -43,8 +43,9 @@ export function filterAsyncRoutes(routesMap, routes, roles) {
...
@@ -43,8 +43,9 @@ export function filterAsyncRoutes(routesMap, routes, roles) {
isNotNullAndNotUndefined
(
route
.
name
)
&&
isNotNullAndNotUndefined
(
route
.
name
)
&&
isNotNullAndNotUndefined
(
rm
.
path
)
&&
isNotNullAndNotUndefined
(
rm
.
path
)
&&
isNotNullAndNotUndefined
(
route
.
path
)
&&
isNotNullAndNotUndefined
(
route
.
path
)
&&
(
rm
.
name
===
route
.
name
||
rm
.
path
===
route
.
path
)
(
rm
.
path
===
route
.
path
||
rm
.
name
===
route
.
name
)
)
{
)
{
// 优先path判断,是因为导航菜单的展开和收起是根据path判断的。
tempRouteMap
=
{
...
rm
};
tempRouteMap
=
{
...
rm
};
break
;
break
;
}
}
...
@@ -97,7 +98,7 @@ const actions = {
...
@@ -97,7 +98,7 @@ const actions = {
roles
,
roles
,
);
);
accessedRoutes
.
push
({
path
:
'
*
'
,
redirect
:
'
/404
'
,
hidden
:
true
});
accessedRoutes
.
push
({
path
:
'
*
'
,
redirect
:
'
/404
'
,
hidden
:
true
});
debugger
;
commit
(
'
SET_ROUTES
'
,
accessedRoutes
);
commit
(
'
SET_ROUTES
'
,
accessedRoutes
);
resolve
(
accessedRoutes
);
resolve
(
accessedRoutes
);
})
})
...
...
ve-admin/admin-web/src/views/dashboard/index.vue
View file @
80bccb6a
...
@@ -5,27 +5,26 @@
...
@@ -5,27 +5,26 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
mapGetters
}
from
'
vuex
'
import
{
mapGetters
}
from
'
vuex
'
;
import
adminDashboard
from
'
./admin
'
import
adminDashboard
from
'
./admin
'
;
import
editorDashboard
from
'
./editor
'
import
editorDashboard
from
'
./editor
'
;
export
default
{
export
default
{
name
:
'
Dashboard
'
,
name
:
'
Dashboard
'
,
components
:
{
adminDashboard
,
editorDashboard
},
components
:
{
adminDashboard
,
editorDashboard
},
data
()
{
data
()
{
return
{
return
{
currentRole
:
'
adminDashboard
'
currentRole
:
'
adminDashboard
'
,
}
}
;
},
},
computed
:
{
computed
:
{
...
mapGetters
([
...
mapGetters
([
'
roles
'
]),
'
roles
'
])
},
},
created
()
{
created
()
{
if
(
!
this
.
roles
.
includes
(
1
))
{
// 默认任何一个账号进入都可以看仪表盘页面
this
.
currentRole
=
'
editorDashboard
'
// if (!this.roles.includes(1)) {
}
// this.currentRole = 'editorDashboard';
}
// }
}
},
};
</
script
>
</
script
>
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment