Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
dataease
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
zhu
dataease
Commits
70898bdd
提交
70898bdd
authored
6月 24, 2021
作者:
taojinlong
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'main' of github.com:dataease/dataease into main
上级
c46ab5fd
2ae993c0
隐藏空白字符变更
内嵌
并排
正在显示
32 个修改的文件
包含
255 行增加
和
218 行删除
+255
-218
AuthUserServiceImpl.java
...va/io/dataease/auth/service/impl/AuthUserServiceImpl.java
+7
-2
PanelGroupService.java
...ain/java/io/dataease/service/panel/PanelGroupService.java
+6
-0
.eslintrc.js
frontend/.eslintrc.js
+4
-1
index.vue
frontend/src/components/DeDrag/index.vue
+17
-7
DeComplexInput.vue
...rc/components/business/condition-table/DeComplexInput.vue
+2
-0
DeComplexOperator.vue
...components/business/condition-table/DeComplexOperator.vue
+3
-0
Area.vue
frontend/src/components/canvas/components/Editor/Area.vue
+6
-3
Grid.vue
frontend/src/components/canvas/components/Editor/Grid.vue
+1
-0
Group.vue
frontend/src/components/canvas/custom-component/Group.vue
+1
-0
Picture.vue
frontend/src/components/canvas/custom-component/Picture.vue
+1
-0
RectShape.vue
...tend/src/components/canvas/custom-component/RectShape.vue
+1
-0
VText.vue
frontend/src/components/canvas/custom-component/VText.vue
+5
-3
index.vue
frontend/src/components/canvas/index.vue
+4
-2
compose.js
frontend/src/components/canvas/store/compose.js
+1
-1
shortcutKey.js
frontend/src/components/canvas/utils/shortcutKey.js
+4
-4
style.js
frontend/src/components/canvas/utils/style.js
+1
-1
DeInputSearch.vue
frontend/src/components/widget/DeWidget/DeInputSearch.vue
+1
-1
index.js
frontend/src/directive/DataPermission/index.js
+2
-0
link-router.js
frontend/src/link/link-router.js
+1
-2
mixins.scss
frontend/src/styles/common/mixins.scss
+12
-14
index.scss
frontend/src/styles/index.scss
+66
-75
mixin.scss
frontend/src/styles/mixin.scss
+5
-5
sidebar.scss
frontend/src/styles/sidebar.scss
+1
-1
topbar.scss
frontend/src/styles/topbar.scss
+93
-95
index.js
frontend/src/utils/index.js
+1
-0
line.js
frontend/src/views/chart/chart/line/line.js
+1
-1
util.js
frontend/src/views/chart/chart/util.js
+1
-0
ComponentGap.vue
...rc/views/panel/SubjectSetting/PanelStyle/ComponentGap.vue
+1
-0
panel.js
frontend/src/views/panel/panel.js
+3
-0
TemplateItem.vue
frontend/src/views/panel/template/component/TemplateItem.vue
+1
-0
authQuickConfig.vue
frontend/src/views/system/authority/authQuickConfig.vue
+1
-0
index.vue
frontend/src/views/system/authority/index.vue
+1
-0
没有找到文件。
backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java
浏览文件 @
70898bdd
...
@@ -59,8 +59,13 @@ public class AuthUserServiceImpl implements AuthUserService {
...
@@ -59,8 +59,13 @@ public class AuthUserServiceImpl implements AuthUserService {
@Cacheable
(
value
=
AuthConstants
.
USER_PERMISSION_CACHE_NAME
,
key
=
"'user' + #userId"
)
@Cacheable
(
value
=
AuthConstants
.
USER_PERMISSION_CACHE_NAME
,
key
=
"'user' + #userId"
)
@Override
@Override
public
List
<
String
>
permissions
(
Long
userId
){
public
List
<
String
>
permissions
(
Long
userId
){
// 用户登录获取菜单权限时同时更新插件菜单表
try
{
dynamicMenuService
.
syncPluginMenu
();
// 用户登录获取菜单权限时同时更新插件菜单表
dynamicMenuService
.
syncPluginMenu
();
}
catch
(
Exception
e
){
LogUtil
.
error
(
e
);
//ignore
}
List
<
String
>
permissions
;
List
<
String
>
permissions
;
SysUser
sysUser
=
sysUserMapper
.
selectByPrimaryKey
(
userId
);
SysUser
sysUser
=
sysUserMapper
.
selectByPrimaryKey
(
userId
);
if
(
sysUser
.
getIsAdmin
()!=
null
&&
sysUser
.
getIsAdmin
()){
if
(
sysUser
.
getIsAdmin
()!=
null
&&
sysUser
.
getIsAdmin
()){
...
...
backend/src/main/java/io/dataease/service/panel/PanelGroupService.java
浏览文件 @
70898bdd
...
@@ -19,6 +19,7 @@ import org.apache.commons.lang3.StringUtils;
...
@@ -19,6 +19,7 @@ import org.apache.commons.lang3.StringUtils;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.Assert
;
import
org.springframework.util.Assert
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -69,6 +70,7 @@ public class PanelGroupService {
...
@@ -69,6 +70,7 @@ public class PanelGroupService {
return
result
;
return
result
;
}
}
@Transactional
public
PanelGroup
saveOrUpdate
(
PanelGroupRequest
request
)
{
public
PanelGroup
saveOrUpdate
(
PanelGroupRequest
request
)
{
String
panelId
=
request
.
getId
();
String
panelId
=
request
.
getId
();
if
(
StringUtils
.
isEmpty
(
panelId
))
{
if
(
StringUtils
.
isEmpty
(
panelId
))
{
...
@@ -90,6 +92,7 @@ public class PanelGroupService {
...
@@ -90,6 +92,7 @@ public class PanelGroupService {
newDefaultPanel
.
setPid
(
PanelConstants
.
PANEL_GATHER_DEFAULT_PANEL
);
newDefaultPanel
.
setPid
(
PanelConstants
.
PANEL_GATHER_DEFAULT_PANEL
);
newDefaultPanel
.
setLevel
(
0
);
newDefaultPanel
.
setLevel
(
0
);
newDefaultPanel
.
setSource
(
request
.
getId
());
newDefaultPanel
.
setSource
(
request
.
getId
());
newDefaultPanel
.
setCreateBy
(
AuthUtils
.
getUser
().
getUsername
());
checkPanelName
(
newDefaultPanel
.
getName
(),
newDefaultPanel
.
getPid
(),
PanelConstants
.
OPT_TYPE_INSERT
,
newDefaultPanel
.
getId
());
checkPanelName
(
newDefaultPanel
.
getName
(),
newDefaultPanel
.
getPid
(),
PanelConstants
.
OPT_TYPE_INSERT
,
newDefaultPanel
.
getId
());
panelGroupMapper
.
insertSelective
(
newDefaultPanel
);
panelGroupMapper
.
insertSelective
(
newDefaultPanel
);
}
else
{
}
else
{
...
@@ -105,6 +108,9 @@ public class PanelGroupService {
...
@@ -105,6 +108,9 @@ public class PanelGroupService {
authRequest
.
setId
(
panelId
);
authRequest
.
setId
(
panelId
);
authRequest
.
setUserId
(
String
.
valueOf
(
AuthUtils
.
getUser
().
getUserId
()));
authRequest
.
setUserId
(
String
.
valueOf
(
AuthUtils
.
getUser
().
getUserId
()));
List
<
PanelGroupDTO
>
panelGroupDTOList
=
extPanelGroupMapper
.
panelGroupList
(
authRequest
);
List
<
PanelGroupDTO
>
panelGroupDTOList
=
extPanelGroupMapper
.
panelGroupList
(
authRequest
);
if
(
CollectionUtils
.
isNotEmpty
(
panelGroupDTOList
)){
DataEaseException
.
throwException
(
"未查询到用户对应的资源权限,请尝试刷新重新保存"
);
}
return
panelGroupDTOList
.
get
(
0
);
return
panelGroupDTOList
.
get
(
0
);
}
}
...
...
frontend/.eslintrc.js
浏览文件 @
70898bdd
...
@@ -195,6 +195,9 @@ module.exports = {
...
@@ -195,6 +195,9 @@ module.exports = {
'object-curly-spacing'
:
[
2
,
'always'
,
{
'object-curly-spacing'
:
[
2
,
'always'
,
{
objectsInObjects
:
false
objectsInObjects
:
false
}],
}],
'array-bracket-spacing'
:
[
2
,
'never'
]
'array-bracket-spacing'
:
[
2
,
'never'
],
"vue/no-use-v-if-with-v-for"
:
[
"error"
,
{
"allowUsingIterationVar"
:
true
}]
}
}
}
}
frontend/src/components/DeDrag/index.vue
浏览文件 @
70898bdd
...
@@ -20,14 +20,14 @@
...
@@ -20,14 +20,14 @@
@mouseleave="leave"
@mouseleave="leave"
>
>
<div
<div
v-for=
"(handle
, index
) in actualHandles"
v-for=
"(handle
i, indexi
) in actualHandles"
:key=
"index"
:key=
"index
i
"
:class=
"[classNameHandle, classNameHandle + '-' + handle]"
:class=
"[classNameHandle, classNameHandle + '-' + handle
i
]"
:style=
"handleStyle(handle
, index
)"
:style=
"handleStyle(handle
i, indexi
)"
@
mousedown
.
stop
.
prevent=
"handleDown(handle, $event)"
@
mousedown
.
stop
.
prevent=
"handleDown(handle
i
, $event)"
@
touchstart
.
stop
.
prevent=
"handleTouchDown(handle, $event)"
@
touchstart
.
stop
.
prevent=
"handleTouchDown(handle
i
, $event)"
>
>
<slot
:name=
"handle"
/>
<slot
:name=
"handle
i
"
/>
</div>
</div>
<slot
/>
<slot
/>
</div>
</div>
...
@@ -282,14 +282,17 @@ export default {
...
@@ -282,14 +282,17 @@ export default {
type
:
String
,
type
:
String
,
default
:
'mouseOn'
default
:
'mouseOn'
},
},
// eslint-disable-next-line vue/require-default-prop
element
:
{
element
:
{
require
:
true
,
require
:
true
,
type
:
Object
type
:
Object
},
},
// eslint-disable-next-line vue/require-default-prop
defaultStyle
:
{
defaultStyle
:
{
require
:
true
,
require
:
true
,
type
:
Object
type
:
Object
},
},
// eslint-disable-next-line vue/require-default-prop
index
:
{
index
:
{
require
:
true
,
require
:
true
,
type
:
[
Number
,
String
]
type
:
[
Number
,
String
]
...
@@ -299,6 +302,7 @@ export default {
...
@@ -299,6 +302,7 @@ export default {
type
:
Boolean
,
type
:
Boolean
,
default
:
true
default
:
true
},
},
// eslint-disable-next-line vue/require-default-prop
changeStyle
:
{
changeStyle
:
{
require
:
true
,
require
:
true
,
type
:
Object
type
:
Object
...
@@ -911,6 +915,7 @@ export default {
...
@@ -911,6 +915,7 @@ export default {
},
},
// 外部传参改动x
// 外部传参改动x
moveHorizontally
(
val
)
{
moveHorizontally
(
val
)
{
// eslint-disable-next-line no-unused-vars
const
[
deltaX
,
_
]
=
snapToGrid
(
this
.
grid
,
val
,
this
.
top
,
this
.
scale
)
const
[
deltaX
,
_
]
=
snapToGrid
(
this
.
grid
,
val
,
this
.
top
,
this
.
scale
)
const
left
=
restrictToBounds
(
deltaX
,
this
.
bounds
.
minLeft
,
this
.
bounds
.
maxLeft
)
const
left
=
restrictToBounds
(
deltaX
,
this
.
bounds
.
minLeft
,
this
.
bounds
.
maxLeft
)
this
.
left
=
left
this
.
left
=
left
...
@@ -918,6 +923,7 @@ export default {
...
@@ -918,6 +923,7 @@ export default {
},
},
// 外部传参改动y
// 外部传参改动y
moveVertically
(
val
)
{
moveVertically
(
val
)
{
// eslint-disable-next-line no-unused-vars
const
[
_
,
deltaY
]
=
snapToGrid
(
this
.
grid
,
this
.
left
,
val
,
this
.
scale
)
const
[
_
,
deltaY
]
=
snapToGrid
(
this
.
grid
,
this
.
left
,
val
,
this
.
scale
)
const
top
=
restrictToBounds
(
deltaY
,
this
.
bounds
.
minTop
,
this
.
bounds
.
maxTop
)
const
top
=
restrictToBounds
(
deltaY
,
this
.
bounds
.
minTop
,
this
.
bounds
.
maxTop
)
this
.
top
=
top
this
.
top
=
top
...
@@ -926,6 +932,7 @@ export default {
...
@@ -926,6 +932,7 @@ export default {
// 控制柄移动
// 控制柄移动
handleResize
(
e
)
{
handleResize
(
e
)
{
const
handle
=
this
.
handle
const
handle
=
this
.
handle
// eslint-disable-next-line no-unused-vars
const
scaleRatio
=
this
.
scaleRatio
const
scaleRatio
=
this
.
scaleRatio
const
{
TL
,
TR
,
BL
,
BR
}
=
this
const
{
TL
,
TR
,
BL
,
BR
}
=
this
let
{
x
:
mouseX
,
y
:
mouseY
}
=
this
.
getMouseCoordinate
(
e
)
let
{
x
:
mouseX
,
y
:
mouseY
}
=
this
.
getMouseCoordinate
(
e
)
...
@@ -1085,6 +1092,7 @@ export default {
...
@@ -1085,6 +1092,7 @@ export default {
changeWidth
(
val
)
{
changeWidth
(
val
)
{
// console.log('parentWidth', this.parentWidth)
// console.log('parentWidth', this.parentWidth)
// console.log('parentHeight', this.parentHeight)
// console.log('parentHeight', this.parentHeight)
// eslint-disable-next-line no-unused-vars
const
[
newWidth
,
_
]
=
snapToGrid
(
this
.
grid
,
val
,
0
,
this
.
scale
)
const
[
newWidth
,
_
]
=
snapToGrid
(
this
.
grid
,
val
,
0
,
this
.
scale
)
// const right = restrictToBounds(this.parentWidth - newWidth - this.left, this.bounds.minRight, this.bounds.maxRight)
// const right = restrictToBounds(this.parentWidth - newWidth - this.left, this.bounds.minRight, this.bounds.maxRight)
// private 将 this.bounds.minRight 设置为0
// private 将 this.bounds.minRight 设置为0
...
@@ -1102,6 +1110,7 @@ export default {
...
@@ -1102,6 +1110,7 @@ export default {
this
.
height
=
height
this
.
height
=
height
},
},
changeHeight
(
val
)
{
changeHeight
(
val
)
{
// eslint-disable-next-line no-unused-vars
const
[
_
,
newHeight
]
=
snapToGrid
(
this
.
grid
,
0
,
val
,
this
.
scale
)
const
[
_
,
newHeight
]
=
snapToGrid
(
this
.
grid
,
0
,
val
,
this
.
scale
)
// const bottom = restrictToBounds(this.parentHeight - newHeight - this.top, this.bounds.minBottom, this.bounds.maxBottom)
// const bottom = restrictToBounds(this.parentHeight - newHeight - this.top, this.bounds.minBottom, this.bounds.maxBottom)
// private 将 this.bounds.minBottom 设置为0
// private 将 this.bounds.minBottom 设置为0
...
@@ -1418,6 +1427,7 @@ export default {
...
@@ -1418,6 +1427,7 @@ export default {
},
},
// 修复 正则获取left与top
// 修复 正则获取left与top
formatTransformVal
(
string
)
{
formatTransformVal
(
string
)
{
// eslint-disable-next-line prefer-const
let
[
left
,
top
,
rotate
=
0
]
=
string
.
match
(
/
[\d
|
\.]
+/g
)
let
[
left
,
top
,
rotate
=
0
]
=
string
.
match
(
/
[\d
|
\.]
+/g
)
if
(
top
===
undefined
)
top
=
0
if
(
top
===
undefined
)
top
=
0
return
[
Number
(
left
),
Number
(
top
),
rotate
]
return
[
Number
(
left
),
Number
(
top
),
rotate
]
...
...
frontend/src/components/business/condition-table/DeComplexInput.vue
浏览文件 @
70898bdd
...
@@ -14,7 +14,9 @@ export default {
...
@@ -14,7 +14,9 @@ export default {
components
:
{
DeComplexOperator
},
components
:
{
DeComplexOperator
},
// mixins: [mixins],
// mixins: [mixins],
props
:
{
props
:
{
// eslint-disable-next-line vue/require-default-prop
field
:
String
,
field
:
String
,
// eslint-disable-next-line vue/require-default-prop
label
:
String
,
label
:
String
,
defaultOperator
:
{
defaultOperator
:
{
type
:
String
,
type
:
String
,
...
...
frontend/src/components/business/condition-table/DeComplexOperator.vue
浏览文件 @
70898bdd
...
@@ -30,8 +30,11 @@ export default {
...
@@ -30,8 +30,11 @@ export default {
event
:
'change'
event
:
'change'
},
},
props
:
{
props
:
{
// eslint-disable-next-line vue/require-default-prop
label
:
String
,
label
:
String
,
// eslint-disable-next-line vue/require-default-prop
operator
:
String
,
operator
:
String
,
// eslint-disable-next-line vue/require-default-prop
operators
:
Array
operators
:
Array
},
},
data
()
{
data
()
{
...
...
frontend/src/components/canvas/components/Editor/Area.vue
浏览文件 @
70898bdd
...
@@ -14,13 +14,16 @@
...
@@ -14,13 +14,16 @@
export
default
{
export
default
{
props
:
{
props
:
{
start
:
{
start
:
{
type
:
Object
type
:
Object
,
default
:
null
},
},
width
:
{
width
:
{
type
:
Number
type
:
Number
,
default
:
null
},
},
height
:
{
height
:
{
type
:
Number
type
:
Number
,
default
:
null
}
}
}
}
}
}
...
...
frontend/src/components/canvas/components/Editor/Grid.vue
浏览文件 @
70898bdd
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
export
default
{
export
default
{
props
:
{
props
:
{
// eslint-disable-next-line vue/require-default-prop
matrixStyle
:
{
matrixStyle
:
{
type
:
Object
type
:
Object
}
}
...
...
frontend/src/components/canvas/custom-component/Group.vue
浏览文件 @
70898bdd
...
@@ -25,6 +25,7 @@ export default {
...
@@ -25,6 +25,7 @@ export default {
type
:
Array
,
type
:
Array
,
default
:
()
=>
[]
default
:
()
=>
[]
},
},
// eslint-disable-next-line vue/require-default-prop
element
:
{
element
:
{
type
:
Object
type
:
Object
}
}
...
...
frontend/src/components/canvas/custom-component/Picture.vue
浏览文件 @
70898bdd
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
<
script
>
<
script
>
export
default
{
export
default
{
props
:
{
props
:
{
// eslint-disable-next-line vue/require-default-prop
propValue
:
{
propValue
:
{
type
:
String
,
type
:
String
,
require
:
true
require
:
true
...
...
frontend/src/components/canvas/custom-component/RectShape.vue
浏览文件 @
70898bdd
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
<
script
>
<
script
>
export
default
{
export
default
{
props
:
{
props
:
{
// eslint-disable-next-line vue/require-default-prop
element
:
{
element
:
{
type
:
Object
type
:
Object
}
}
...
...
frontend/src/components/canvas/custom-component/VText.vue
浏览文件 @
70898bdd
...
@@ -25,10 +25,12 @@ import { keycodes } from '@/components/canvas/utils/shortcutKey.js'
...
@@ -25,10 +25,12 @@ import { keycodes } from '@/components/canvas/utils/shortcutKey.js'
export
default
{
export
default
{
props
:
{
props
:
{
// eslint-disable-next-line vue/require-default-prop
propValue
:
{
propValue
:
{
type
:
String
,
type
:
String
,
require
:
true
require
:
true
},
},
// eslint-disable-next-line vue/require-default-prop
element
:
{
element
:
{
type
:
Object
type
:
Object
},
},
...
@@ -68,17 +70,17 @@ export default {
...
@@ -68,17 +70,17 @@ export default {
},
},
handleKeydown
(
e
)
{
handleKeydown
(
e
)
{
if
(
e
.
keyCode
==
this
.
ctrlKey
)
{
if
(
e
.
keyCode
==
=
this
.
ctrlKey
)
{
this
.
isCtrlDown
=
true
this
.
isCtrlDown
=
true
}
else
if
(
this
.
isCtrlDown
&&
this
.
canEdit
&&
keycodes
.
includes
(
e
.
keyCode
))
{
}
else
if
(
this
.
isCtrlDown
&&
this
.
canEdit
&&
keycodes
.
includes
(
e
.
keyCode
))
{
e
.
stopPropagation
()
e
.
stopPropagation
()
}
else
if
(
e
.
keyCode
==
46
)
{
// deleteKey
}
else
if
(
e
.
keyCode
==
=
46
)
{
// deleteKey
e
.
stopPropagation
()
e
.
stopPropagation
()
}
}
},
},
handleKeyup
(
e
)
{
handleKeyup
(
e
)
{
if
(
e
.
keyCode
==
this
.
ctrlKey
)
{
if
(
e
.
keyCode
==
=
this
.
ctrlKey
)
{
this
.
isCtrlDown
=
false
this
.
isCtrlDown
=
false
}
}
},
},
...
...
frontend/src/components/canvas/index.vue
浏览文件 @
70898bdd
...
@@ -38,6 +38,7 @@ import generateID from '@/utils/generateID'
...
@@ -38,6 +38,7 @@ import generateID from '@/utils/generateID'
import
{
listenGlobalKeyDown
}
from
'@/utils/shortcutKey'
import
{
listenGlobalKeyDown
}
from
'@/utils/shortcutKey'
export
default
{
export
default
{
// eslint-disable-next-line vue/no-unused-components
components
:
{
Editor
,
ComponentList
,
AttrList
,
AnimationList
,
EventList
,
Toolbar
},
components
:
{
Editor
,
ComponentList
,
AttrList
,
AnimationList
,
EventList
,
Toolbar
},
data
()
{
data
()
{
return
{
return
{
...
@@ -71,6 +72,7 @@ export default {
...
@@ -71,6 +72,7 @@ export default {
resetID
(
data
)
{
resetID
(
data
)
{
if
(
data
)
{
if
(
data
)
{
data
.
forEach
(
item
=>
{
data
.
forEach
(
item
=>
{
// eslint-disable-next-line no-undef
item
.
type
!==
'custom'
&&
(
item
.
id
=
uuid
.
v1
())
item
.
type
!==
'custom'
&&
(
item
.
id
=
uuid
.
v1
())
})
})
}
}
...
@@ -85,7 +87,7 @@ export default {
...
@@ -85,7 +87,7 @@ export default {
let
component
let
component
const
id
=
e
.
dataTransfer
.
getData
(
'componentId'
)
const
id
=
e
.
dataTransfer
.
getData
(
'componentId'
)
componentList
.
forEach
(
componentTemp
=>
{
componentList
.
forEach
(
componentTemp
=>
{
if
(
id
==
componentTemp
.
id
)
{
if
(
id
==
=
componentTemp
.
id
)
{
component
=
deepCopy
(
componentTemp
)
component
=
deepCopy
(
componentTemp
)
}
}
})
})
...
@@ -112,7 +114,7 @@ export default {
...
@@ -112,7 +114,7 @@ export default {
}
}
// 0 左击 1 滚轮 2 右击
// 0 左击 1 滚轮 2 右击
if
(
e
.
button
!=
2
)
{
if
(
e
.
button
!=
=
2
)
{
this
.
$store
.
commit
(
'hideContextMenu'
)
this
.
$store
.
commit
(
'hideContextMenu'
)
}
}
}
}
...
...
frontend/src/components/canvas/store/compose.js
浏览文件 @
70898bdd
...
@@ -77,7 +77,7 @@ export default {
...
@@ -77,7 +77,7 @@ export default {
batchDeleteComponent
({
componentData
},
deleteData
)
{
batchDeleteComponent
({
componentData
},
deleteData
)
{
deleteData
.
forEach
(
component
=>
{
deleteData
.
forEach
(
component
=>
{
for
(
let
i
=
0
,
len
=
componentData
.
length
;
i
<
len
;
i
++
)
{
for
(
let
i
=
0
,
len
=
componentData
.
length
;
i
<
len
;
i
++
)
{
if
(
component
.
id
==
componentData
[
i
].
id
)
{
if
(
component
.
id
==
=
componentData
[
i
].
id
)
{
componentData
.
splice
(
i
,
1
)
componentData
.
splice
(
i
,
1
)
break
break
}
}
...
...
frontend/src/components/canvas/utils/shortcutKey.js
浏览文件 @
70898bdd
...
@@ -56,9 +56,9 @@ let isCtrlDown = false
...
@@ -56,9 +56,9 @@ let isCtrlDown = false
export
function
listenGlobalKeyDown
()
{
export
function
listenGlobalKeyDown
()
{
window
.
onkeydown
=
(
e
)
=>
{
window
.
onkeydown
=
(
e
)
=>
{
const
{
curComponent
}
=
store
.
state
const
{
curComponent
}
=
store
.
state
if
(
e
.
keyCode
==
ctrlKey
)
{
if
(
e
.
keyCode
==
=
ctrlKey
)
{
isCtrlDown
=
true
isCtrlDown
=
true
}
else
if
(
e
.
keyCode
==
deleteKey
&&
curComponent
)
{
}
else
if
(
e
.
keyCode
==
=
deleteKey
&&
curComponent
)
{
store
.
commit
(
'deleteComponent'
)
store
.
commit
(
'deleteComponent'
)
store
.
commit
(
'recordSnapshot'
)
store
.
commit
(
'recordSnapshot'
)
}
else
if
(
isCtrlDown
)
{
}
else
if
(
isCtrlDown
)
{
...
@@ -73,7 +73,7 @@ export function listenGlobalKeyDown() {
...
@@ -73,7 +73,7 @@ export function listenGlobalKeyDown() {
}
}
window
.
onkeyup
=
(
e
)
=>
{
window
.
onkeyup
=
(
e
)
=>
{
if
(
e
.
keyCode
==
ctrlKey
)
{
if
(
e
.
keyCode
==
=
ctrlKey
)
{
isCtrlDown
=
false
isCtrlDown
=
false
}
}
}
}
...
@@ -109,7 +109,7 @@ function compose() {
...
@@ -109,7 +109,7 @@ function compose() {
function
decompose
()
{
function
decompose
()
{
const
curComponent
=
store
.
state
.
curComponent
const
curComponent
=
store
.
state
.
curComponent
if
(
curComponent
&&
!
curComponent
.
isLock
&&
curComponent
.
component
==
'Group'
)
{
if
(
curComponent
&&
!
curComponent
.
isLock
&&
curComponent
.
component
==
=
'Group'
)
{
store
.
commit
(
'decompose'
)
store
.
commit
(
'decompose'
)
store
.
commit
(
'recordSnapshot'
)
store
.
commit
(
'recordSnapshot'
)
}
}
...
...
frontend/src/components/canvas/utils/style.js
浏览文件 @
70898bdd
...
@@ -33,7 +33,7 @@ export function getStyle(style, filter = []) {
...
@@ -33,7 +33,7 @@ export function getStyle(style, filter = []) {
// 获取一个组件旋转 rotate 后的样式
// 获取一个组件旋转 rotate 后的样式
export
function
getComponentRotatedStyle
(
style
)
{
export
function
getComponentRotatedStyle
(
style
)
{
style
=
{
...
style
}
style
=
{
...
style
}
if
(
style
.
rotate
!=
0
)
{
if
(
style
.
rotate
!=
=
0
)
{
const
newWidth
=
style
.
width
*
cos
(
style
.
rotate
)
+
style
.
height
*
sin
(
style
.
rotate
)
const
newWidth
=
style
.
width
*
cos
(
style
.
rotate
)
+
style
.
height
*
sin
(
style
.
rotate
)
const
diffX
=
(
style
.
width
-
newWidth
)
/
2
// 旋转后范围变小是正值,变大是负值
const
diffX
=
(
style
.
width
-
newWidth
)
/
2
// 旋转后范围变小是正值,变大是负值
style
.
left
+=
diffX
style
.
left
+=
diffX
...
...
frontend/src/components/widget/DeWidget/DeInputSearch.vue
浏览文件 @
70898bdd
...
@@ -46,7 +46,7 @@ export default {
...
@@ -46,7 +46,7 @@ export default {
setCondition
()
{
setCondition
()
{
const
param
=
{
const
param
=
{
component
:
this
.
element
,
component
:
this
.
element
,
value
:
[
this
.
options
.
value
],
value
:
!
this
.
options
.
value
?
[]
:
Array
.
isArray
(
this
.
options
.
value
)
?
this
.
options
.
value
:
[
this
.
options
.
value
],
operator
:
this
.
operator
operator
:
this
.
operator
}
}
this
.
inDraw
&&
this
.
$store
.
commit
(
'addViewFilter'
,
param
)
this
.
inDraw
&&
this
.
$store
.
commit
(
'addViewFilter'
,
param
)
...
...
frontend/src/directive/DataPermission/index.js
浏览文件 @
70898bdd
function
checkDataPermission
(
el
,
binding
,
vnode
)
{
function
checkDataPermission
(
el
,
binding
,
vnode
)
{
// eslint-disable-next-line no-unused-vars
const
dataPermission
=
vnode
.
privileges
const
dataPermission
=
vnode
.
privileges
// eslint-disable-next-line no-unused-vars
const
{
value
}
=
binding
const
{
value
}
=
binding
// // 数据授权采用并集的方式 部门 角色 用户 有一个有权限即可
// // 数据授权采用并集的方式 部门 角色 用户 有一个有权限即可
// if (value && value instanceof Array) {
// if (value && value instanceof Array) {
...
...
frontend/src/link/link-router.js
浏览文件 @
70898bdd
...
@@ -8,8 +8,7 @@ export default new Router({
...
@@ -8,8 +8,7 @@ export default new Router({
{
{
path
:
'/'
,
path
:
'/'
,
name
:
'home'
,
name
:
'home'
,
component
:
()
=>
component
:
()
=>
import
(
'../views/link/index.vue'
),
import
(
'../views/link/index.vue'
),
meta
:
{
meta
:
{
title
:
'首页'
title
:
'首页'
}
}
...
...
frontend/src/styles/common/mixins.scss
浏览文件 @
70898bdd
@mixin
flex-row
(
$justify
:
flex-start
,
$align
:
stretch
)
{
@mixin
flex-row
(
$justify
:
flex-start
,
$align
:
stretch
)
{
display
:
flex
;
display
:
flex
;
@if
$justify
!=
flex-start
{
@if
$justify
!=
flex-start
{
justify-content
:
$justify
;
justify-content
:
$justify
;
}
@if
$align
!=
stretch
{
align-items
:
$align
;
}
}
}
@if
$align
!=
stretch
{
@mixin
variant
(
$color
,
$background-color
,
$border-color
)
{
align-items
:
$align
;
color
:
$color
;
background-color
:
$background-color
;
border-color
:
$border-color
;
}
}
}
\ No newline at end of file
@mixin
variant
(
$color
,
$background-color
,
$border-color
)
{
color
:
$color
;
background-color
:
$background-color
;
border-color
:
$border-color
;
}
frontend/src/styles/index.scss
浏览文件 @
70898bdd
...
@@ -73,34 +73,32 @@ div:focus {
...
@@ -73,34 +73,32 @@ div:focus {
}
}
.de-dialog
{
.de-dialog
{
width
:
30%
!
important
;
width
:
30%
!
important
;
.el-dialog__header
{
.el-dialog__header
{
background-color
:
#f4f4f5
;
background-color
:
#f4f4f5
;
padding
:
10px
20px
!
important
;
padding
:
10px
20px
!
important
;
}
}
.el-dialog__body
{
.el-dialog__body
{
padding
:
1px
20px
!
important
;
padding
:
1px
20px
!
important
;
}
}
}
}
.de-filter-dialog
{
.de-filter-dialog
{
min-width
:
500px
!
important
;
min-width
:
500px
!
important
;
width
:
50%
!
important
;
width
:
50%
!
important
;
.el-dialog__header
{
// background-color: #f4f4f5;
padding
:
10px
20px
!
important
;
.el-dialog__headerbtn
{
.el-dialog__header
{
top
:
15px
!
important
;
// background-color: #f4f4f5;
}
padding
:
10px
20px
!
important
;
}
.el-dialog__body
{
padding
:
1px
15px
!
important
;
.el-dialog__headerbtn
{
top
:
15px
!
important
;
}
}
}
.el-dialog__body
{
padding
:
1px
15px
!
important
;
}
}
}
.de-style-dialog
{
.de-style-dialog
{
...
@@ -117,7 +115,6 @@ div:focus {
...
@@ -117,7 +115,6 @@ div:focus {
}
}
.el-dialog__body
{
.el-dialog__body
{
padding
:
1px
15px
!
important
;
padding
:
1px
15px
!
important
;
}
}
}
}
...
@@ -129,7 +126,6 @@ div:focus {
...
@@ -129,7 +126,6 @@ div:focus {
.el-dialog__header
{
.el-dialog__header
{
display
:none
!
important
;
display
:none
!
important
;
}
}
.el-dialog__body
{
.el-dialog__body
{
padding
:
0px
!
important
;
padding
:
0px
!
important
;
...
@@ -138,79 +134,74 @@ div:focus {
...
@@ -138,79 +134,74 @@ div:focus {
}
}
.de-search-header
{
.de-search-header
{
.el-tabs__header
{
.el-tabs__header
{
display
:
none
!
important
;;
display
:
none
!
important
;;
}
}
}
}
.de-input
{
.de-input
{
margin-bottom
:
14px
;
margin-bottom
:
14px
;
margin-top
:
10px
;
margin-top
:
10px
;
.el-input
{
.el-input
{
.el-input__inner
{
.el-input__inner
{
line-height
:
30px
!
important
;
line-height
:
30px
!
important
;
height
:
30px
!
important
;
height
:
30px
!
important
;
border-right
:
none
;
border-right
:
none
;
}
}
.el-input__inner
:focus
{
border-color
:
#E6E6E6
!
important
;
}
.el-input-group__append
{
background-color
:
#ffffff
;
}
}
}
.el-input__inner
:focus
{
border-color
:
#E6E6E6
!
important
;
}
.el-input-group__append
{
background-color
:
#ffffff
;
}
}
}
.filter-card-class
{
.filter-card-class
{
width
:
100%
;
width
:
100%
;
.el-card__header
{
.el-card__header
{
padding
:
5px
0
!
important
;
padding
:
5px
0
!
important
;
border-bottom
:
none
!
important
;
border-bottom
:
none
!
important
;
}
}
.el-card__body
{
.el-card__body
{
padding
:
10px
;
padding
:
10px
;
}
}
}
}
.real-input
{
.real-input
{
.el-input__inner
{
.el-input__inner
{
height
:
25px
!
important
;
height
:
25px
!
important
;
border
:
none
!
important
;
border
:
none
!
important
;
}
}
}
}
.de-filter-data-table
{
.de-filter-data-table
{
.el-table__body-wrapper
>
table
>
{
.el-table__body-wrapper
>
table
>
{
tbody
{
tbody
{
.el-table__row
{
.el-table__row
{
:hover
{
:hover
{
cursor
:
pointer
;
cursor
:
pointer
;
}
td
{
border
:
none
!
important
;
}
}
}
}
td
{
border
:
none
!
important
;
}
}
}
}
}
}
}
.
de-filter-data-table
:
:
before
{
.
de-filter-data-table
:
:
before
{
height
:
0px
!
important
;
height
:
0px
!
important
;
}
}
.custom-component-class
{
.custom-component-class
{
width
:
100%
;
width
:
100%
;
div
.el-input-group__append
{
div
.el-input-group__append
{
width
:
10%
!
important
;
width
:
10%
!
important
;
}
}
div
{
div
{
width
:
100%
!
important
;
width
:
100%
!
important
;
}
}
}
}
%field-icon
{
%field-icon
{
...
...
frontend/src/styles/mixin.scss
浏览文件 @
70898bdd
...
@@ -38,8 +38,8 @@
...
@@ -38,8 +38,8 @@
}
}
@mixin
variant
(
$color
,
$background-color
,
$border-color
)
{
@mixin
variant
(
$color
,
$background-color
,
$border-color
)
{
color
:
$color
;
color
:
$color
;
background-color
:
$background-color
;
background-color
:
$background-color
;
border-color
:
$border-color
;
border-color
:
$border-color
;
}
}
frontend/src/styles/sidebar.scss
浏览文件 @
70898bdd
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
transition
:
width
0
.28s
;
transition
:
width
0
.28s
;
// width: $sideBarWidth !important;
// width: $sideBarWidth !important;
background-color
:
$menuBg
;
background-color
:
$menuBg
;
// width: 260px;
// width: 260px;
height
:
$contentHeight
;
height
:
$contentHeight
;
position
:
fixed
;
position
:
fixed
;
font-size
:
0px
;
font-size
:
0px
;
...
...
frontend/src/styles/topbar.scss
浏览文件 @
70898bdd
.top-nav
{
.top-nav
{
// margin-left: $sideBarWidth;
// margin-left: $sideBarWidth;
width
:
100%
;
width
:
100%
;
// background-color: #304156;
// background-color: #304156;
// background-color: $--color-primary;
// background-color: $--color-primary;
position
:
fixed
;
position
:
fixed
;
top
:
0
;
top
:
0
;
left
:
0
;
left
:
0
;
z-index
:
1001
;
z-index
:
1001
;
overflow
:
hidden
;
overflow
:
hidden
;
border-bottom
:
1px
solid
#DCDFE6
;
border-bottom
:
1px
solid
#DCDFE6
;
.log
{
.log
{
padding
:
0
16px
;
padding
:
0
16px
;
line-height
:
56px
;
line-height
:
56px
;
height
:
56px
;
height
:
56px
;
font-size
:
24px
;
font-size
:
24px
;
font-weight
:
bold
;
font-weight
:
bold
;
// color: rgb(191, 203, 217);
// color: rgb(191, 203, 217);
color
:
rgba
(
255
,
255
,
255
,
0
.87
);
color
:
rgba
(
255
,
255
,
255
,
0
.87
);
float
:
left
;
float
:
left
;
img
{
img
{
width
:
auto
;
width
:
auto
;
max-height
:
45px
;
max-height
:
45px
;
}
}
}
.el-menu
{
}
float
:
left
;
.el-menu
{
border
:
none
!
important
;
float
:
left
;
// background-color: #304156;
border
:
none
!
important
;
// background-color: #304156;
// background-color: $--color-primary;
// background-color: $--color-primary;
.nav-item
{
.nav-item
{
display
:
inline-block
;
display
:
inline-block
;
.el-menu-item
:not
(
.is-active
)
{
.el-menu-item
:not
(
.is-active
)
{
// color: rgb(191, 203, 217);
// color: rgb(191, 203, 217);
color
:
$menuText
;
color
:
$menuText
;
&
:hover
{
&
:hover
{
background-color
:
$menuHover
!
important
;
background-color
:
$menuHover
!
important
;
// color: $subMenuActiveText !important;
// color: $subMenuActiveText !important;
}
&
:focus
{
background-color
:
$subMenuHover
!
important
;
color
:
$subMenuActiveText
!
important
;
}
}
}
.is-active
{
&
:focus
{
background-color
:
$subMenuHover
!
important
;
background-color
:
$subMenuHover
!
important
;
color
:
$subMenuActiveText
!
important
;
color
:
$subMenuActiveText
!
important
;
}
}
}
.is-active
{
background-color
:
$subMenuHover
!
important
;
color
:
$subMenuActiveText
!
important
;
}
}
}
}
}
.right-menu
{
.right-menu
{
float
:
right
;
float
:
right
;
height
:
56px
;
height
:
56px
;
display
:
flex
;
display
:
flex
;
flex-direction
:
row
;
flex-direction
:
row
;
align-items
:
center
;
align-items
:
center
;
justify-content
:
center
;
justify-content
:
center
;
&
:focus
{
&
:focus
{
outline
:
none
;
outline
:
none
;
}
}
.right-menu-item
{
.right-menu-item
{
display
:
inline-block
;
display
:
inline-block
;
padding
:
10px
8px
;
padding
:
10px
8px
;
height
:
100%
;
height
:
100%
;
font-size
:
18px
;
font-size
:
18px
;
// color: #5a5e66;
// color: #5a5e66;
color
:
#606266
;
color
:
#606266
;
vertical-align
:
text-bottom
;
vertical-align
:
text-bottom
;
&
.hover-effect
{
&
.hover-effect
{
cursor
:
pointer
;
cursor
:
pointer
;
transition
:
background
.3s
;
transition
:
background
.3s
;
&
:hover
{
&
:hover
{
background-color
:
rgba
(
0
,
0
,
0
,
.025
)
background-color
:
rgba
(
0
,
0
,
0
,
.025
)
}
}
}
}
}
}
.avatar-container
{
.avatar-container
{
margin-right
:
30px
;
margin-right
:
30px
;
.avatar-wrapper
{
.avatar-wrapper
{
margin-top
:
5px
;
margin-top
:
5px
;
position
:
relative
;
position
:
relative
;
.user-avatar
{
cursor
:
pointer
;
.user-avatar
{
width
:
40px
;
cursor
:
pointer
;
height
:
40px
;
width
:
40px
;
border-radius
:
10px
;
height
:
40px
;
}
border-radius
:
10px
;
.de-user-avatar
{
}
cursor
:
pointer
;
.de-user-avatar
{
height
:
40px
;
cursor
:
pointer
;
border-radius
:
10px
;
height
:
40px
;
span
{
border-radius
:
10px
;
color
:
#ffffff
;
span
{
color
:
#ffffff
;
}
}
}
}
.el-icon-caret-bottom
{
.el-icon-caret-bottom
{
cursor
:
pointer
;
cursor
:
pointer
;
position
:
absolute
;
position
:
absolute
;
right
:
-20px
;
right
:
-20px
;
top
:
25px
;
top
:
25px
;
font-size
:
12px
;
font-size
:
12px
;
}
}
}
}
}
}
}
}
}
}
frontend/src/utils/index.js
浏览文件 @
70898bdd
...
@@ -213,6 +213,7 @@ export function formatCondition(param) {
...
@@ -213,6 +213,7 @@ export function formatCondition(param) {
return
null
return
null
}
}
const
result
=
{
conditions
:
[]
}
const
result
=
{
conditions
:
[]
}
// eslint-disable-next-line no-unused-vars
for
(
const
[
key
,
value
]
of
Object
.
entries
(
param
))
{
for
(
const
[
key
,
value
]
of
Object
.
entries
(
param
))
{
result
.
conditions
.
push
(
value
)
result
.
conditions
.
push
(
value
)
}
}
...
...
frontend/src/views/chart/chart/line/line.js
浏览文件 @
70898bdd
...
@@ -58,7 +58,7 @@ export function stackLineOption(chart_option, chart) {
...
@@ -58,7 +58,7 @@ export function stackLineOption(chart_option, chart) {
baseLineOption
(
chart_option
,
chart
)
baseLineOption
(
chart_option
,
chart
)
// ext
// ext
chart_option
.
tooltip
.
trigger
=
'axis'
//
chart_option.tooltip.trigger = 'axis'
chart_option
.
series
.
forEach
(
function
(
s
)
{
chart_option
.
series
.
forEach
(
function
(
s
)
{
s
.
stack
=
'stack'
s
.
stack
=
'stack'
})
})
...
...
frontend/src/views/chart/chart/util.js
浏览文件 @
70898bdd
...
@@ -9,6 +9,7 @@ export function hexColorToRGBA(hex, alpha) {
...
@@ -9,6 +9,7 @@ export function hexColorToRGBA(hex, alpha) {
}
}
if
(
/^#
[
0-9A-F
]{6}
$/i
.
test
(
hex
))
{
// 判断传入是否为#六位十六进制数
if
(
/^#
[
0-9A-F
]{6}
$/i
.
test
(
hex
))
{
// 判断传入是否为#六位十六进制数
hex
.
replace
(
/
[
0-9A-F
]{2}
/ig
,
function
(
kw
)
{
hex
.
replace
(
/
[
0-9A-F
]{2}
/ig
,
function
(
kw
)
{
// eslint-disable-next-line no-eval
rgb
.
push
(
eval
(
'0x'
+
kw
))
// 十六进制转化为十进制并存如数组
rgb
.
push
(
eval
(
'0x'
+
kw
))
// 十六进制转化为十进制并存如数组
})
})
return
`rgba(
${
rgb
.
join
(
','
)}
,
${
alpha
/
100
}
)`
// 输出RGB格式颜色
return
`rgba(
${
rgb
.
join
(
','
)}
,
${
alpha
/
100
}
)`
// 输出RGB格式颜色
...
...
frontend/src/views/panel/SubjectSetting/PanelStyle/ComponentGap.vue
浏览文件 @
70898bdd
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
</
template
>
</
template
>
<
script
>
<
script
>
// eslint-disable-next-line no-unused-vars
import
{
DEFAULT_PANEL_STYLE
}
from
'@/views/panel/panel'
import
{
DEFAULT_PANEL_STYLE
}
from
'@/views/panel/panel'
import
{
mapState
}
from
'vuex'
import
{
mapState
}
from
'vuex'
import
{
deepCopy
}
from
'@/components/canvas/utils/utils'
import
{
deepCopy
}
from
'@/components/canvas/utils/utils'
...
...
frontend/src/views/panel/panel.js
浏览文件 @
70898bdd
// eslint-disable-next-line no-unused-vars
import
{
BASE_CHART
,
BASE_CHART_STRING
}
from
'@/views/chart/chart/chart'
import
{
BASE_CHART
,
BASE_CHART_STRING
}
from
'@/views/chart/chart/chart'
import
{
deepCopy
}
from
'@/components/canvas/utils/utils'
import
{
deepCopy
}
from
'@/components/canvas/utils/utils'
...
@@ -48,6 +50,7 @@ export function chartTransStr2Object(targetIn, copy) {
...
@@ -48,6 +50,7 @@ export function chartTransStr2Object(targetIn, copy) {
}
}
export
function
chartTransObject2Str
(
targetIn
,
deepCopy
)
{
export
function
chartTransObject2Str
(
targetIn
,
deepCopy
)
{
// eslint-disable-next-line no-undef
const
target
=
copy
===
'Y'
?
deepCopy
(
targetIn
)
:
targetIn
const
target
=
copy
===
'Y'
?
deepCopy
(
targetIn
)
:
targetIn
if
(
target
.
chart
)
{
if
(
target
.
chart
)
{
if
(
target
.
chart
.
xaxis
&&
typeof
target
.
chart
.
xaxis
!==
'string'
)
{
if
(
target
.
chart
.
xaxis
&&
typeof
target
.
chart
.
xaxis
!==
'string'
)
{
...
...
frontend/src/views/panel/template/component/TemplateItem.vue
浏览文件 @
70898bdd
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
</
template
>
</
template
>
<
script
>
<
script
>
// eslint-disable-next-line no-unused-vars
import
{
get
,
post
}
from
'@/api/panel/panel'
import
{
get
,
post
}
from
'@/api/panel/panel'
export
default
{
export
default
{
name
:
'TemplateItem'
,
name
:
'TemplateItem'
,
...
...
frontend/src/views/system/authority/authQuickConfig.vue
浏览文件 @
70898bdd
...
@@ -52,6 +52,7 @@ import LazyTree from './components/LazyTree'
...
@@ -52,6 +52,7 @@ import LazyTree from './components/LazyTree'
export
default
{
export
default
{
name
:
'Authority'
,
name
:
'Authority'
,
// eslint-disable-next-line vue/no-unused-components
components
:
{
LazyTree
,
DeMainContainer
,
DeAsideContainer
,
DeContainer
},
components
:
{
LazyTree
,
DeMainContainer
,
DeAsideContainer
,
DeContainer
},
props
:
{
props
:
{
resourceId
:
{
resourceId
:
{
...
...
frontend/src/views/system/authority/index.vue
浏览文件 @
70898bdd
...
@@ -20,6 +20,7 @@ import AuthQuickConfig from './authQuickConfig'
...
@@ -20,6 +20,7 @@ import AuthQuickConfig from './authQuickConfig'
export
default
{
export
default
{
name
:
'Authority'
,
name
:
'Authority'
,
// eslint-disable-next-line vue/no-unused-components
components
:
{
DeContainer
,
DeMainContainer
,
AuthConfig
,
AuthQuickConfig
},
components
:
{
DeContainer
,
DeMainContainer
,
AuthConfig
,
AuthQuickConfig
},
data
()
{
data
()
{
return
{
return
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论