Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
datax-cloud
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄营
datax-cloud
Commits
c7ccc12b
Commit
c7ccc12b
authored
Oct 23, 2020
by
yuwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
项目初始化
parent
f8b26ff2
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
525 additions
and
246 deletions
+525
-246
AuthorizeData.java
...cn/datax/service/data/metadata/api/dto/AuthorizeData.java
+25
-0
MetadataAuthorizeDto.java
...x/service/data/metadata/api/dto/MetadataAuthorizeDto.java
+33
-0
MetadataAuthorizeEntity.java
...ice/data/metadata/api/entity/MetadataAuthorizeEntity.java
+48
-0
MetadataAuthorizeQuery.java
...rvice/data/metadata/api/query/MetadataAuthorizeQuery.java
+20
-0
MetadataAuthorizeVo.java
...tax/service/data/metadata/api/vo/MetadataAuthorizeVo.java
+24
-0
MetadataAuthorizeController.java
...data/metadata/controller/MetadataAuthorizeController.java
+46
-0
MetadataAuthorizeDao.java
...datax/service/data/metadata/dao/MetadataAuthorizeDao.java
+18
-0
MetadataAuthorizeMapper.java
...vice/data/metadata/mapstruct/MetadataAuthorizeMapper.java
+20
-0
MetadataAuthorizeService.java
...rvice/data/metadata/service/MetadataAuthorizeService.java
+22
-0
MetadataAuthorizeServiceImpl.java
...a/metadata/service/impl/MetadataAuthorizeServiceImpl.java
+57
-0
MetadataColumnServiceImpl.java
...data/metadata/service/impl/MetadataColumnServiceImpl.java
+1
-1
MetadataAuthorizeMapper.xml
...ice/src/main/resources/mapper/MetadataAuthorizeMapper.xml
+19
-0
dataauthorize.js
datax-ui/src/api/metadata/dataauthorize.js
+16
-0
index.vue
datax-ui/src/views/masterdata/dataapply/index.vue
+0
-15
index.vue
datax-ui/src/views/metadata/dataauthorize/index.vue
+176
-3
DataPermissionList.vue
.../src/views/metadata/datapermission/DataPermissionList.vue
+0
-194
index.vue
datax-ui/src/views/metadata/datapermission/index.vue
+0
-33
No files found.
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/dto/AuthorizeData.java
0 → 100644
View file @
c7ccc12b
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
import
java.io.Serializable
;
@ApiModel
(
value
=
"数据授权信息Model"
)
@Data
public
class
AuthorizeData
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@NotBlank
(
message
=
"目标表主键ID不能为空"
)
@ApiModelProperty
(
value
=
"目标表主键ID"
)
private
String
objectId
;
@NotBlank
(
message
=
"角色ID不能为空"
)
@ApiModelProperty
(
value
=
"角色ID"
)
private
String
roleId
;
@NotBlank
(
message
=
"目标表类型不能为空"
)
@ApiModelProperty
(
value
=
"目标表类型(1数据源2表3字段)"
)
private
String
objectType
;
}
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/dto/MetadataAuthorizeDto.java
0 → 100644
View file @
c7ccc12b
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.Valid
;
import
javax.validation.constraints.NotBlank
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* <p>
* 数据授权信息表 实体DTO
* </p>
*
* @author yuwei
* @since 2020-10-23
*/
@ApiModel
(
value
=
"数据授权信息表Model"
)
@Data
public
class
MetadataAuthorizeDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@NotBlank
(
message
=
"角色ID不能为空"
)
@ApiModelProperty
(
value
=
"角色ID"
)
private
String
roleId
;
@Valid
@ApiModelProperty
(
value
=
"授权信息"
)
private
List
<
AuthorizeData
>
authorizeDataList
;
}
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/entity/MetadataAuthorizeEntity.java
0 → 100644
View file @
c7ccc12b
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
cn.datax.common.base.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* <p>
* 数据授权信息表
* </p>
*
* @author yuwei
* @since 2020-10-23
*/
@Data
@Accessors
(
chain
=
true
)
@TableName
(
"metadata_authorize"
)
public
class
MetadataAuthorizeEntity
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键
*/
@TableId
(
value
=
"id"
,
type
=
IdType
.
ASSIGN_ID
)
private
String
id
;
/**
* 目标表主键ID
*/
private
String
objectId
;
/**
* 角色ID
*/
private
String
roleId
;
/**
* 目标表类型(1数据源2表3字段)
*/
private
String
objectType
;
}
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/query/MetadataAuthorizeQuery.java
0 → 100644
View file @
c7ccc12b
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
query
;
import
cn.datax.common.base.BaseQueryParams
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* <p>
* 数据授权信息表 查询实体
* </p>
*
* @author yuwei
* @since 2020-10-23
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
MetadataAuthorizeQuery
extends
BaseQueryParams
{
private
static
final
long
serialVersionUID
=
1L
;
}
datax-modules/data-metadata-service-parent/data-metadata-service-api/src/main/java/cn/datax/service/data/metadata/api/vo/MetadataAuthorizeVo.java
0 → 100644
View file @
c7ccc12b
package
cn
.
datax
.
service
.
data
.
metadata
.
api
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* <p>
* 数据授权信息表 实体VO
* </p>
*
* @author yuwei
* @since 2020-10-23
*/
@Data
public
class
MetadataAuthorizeVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
String
id
;
private
String
objectId
;
private
String
roleId
;
private
String
objectType
;
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/controller/MetadataAuthorizeController.java
0 → 100644
View file @
c7ccc12b
package
cn
.
datax
.
service
.
data
.
metadata
.
controller
;
import
cn.datax.common.core.R
;
import
cn.datax.service.data.metadata.api.dto.MetadataAuthorizeDto
;
import
cn.datax.service.data.metadata.mapstruct.MetadataAuthorizeMapper
;
import
cn.datax.service.data.metadata.service.MetadataAuthorizeService
;
import
io.swagger.annotations.Api
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
cn.datax.common.base.BaseController
;
import
java.util.List
;
/**
* <p>
* 数据授权信息表 前端控制器
* </p>
*
* @author yuwei
* @since 2020-10-23
*/
@Api
(
tags
=
{
"元数据授权信息表"
})
@RestController
@RequestMapping
(
"/authorizes"
)
public
class
MetadataAuthorizeController
extends
BaseController
{
@Autowired
private
MetadataAuthorizeService
metadataAuthorizeService
;
@Autowired
private
MetadataAuthorizeMapper
metadataAuthorizeMapper
;
@GetMapping
(
"/getAuthorizedMetadata/{id}"
)
public
R
getAuthorizedMetadata
(
@PathVariable
String
id
)
{
List
<
String
>
list
=
metadataAuthorizeService
.
getAuthorizedMetadata
(
id
);
return
R
.
ok
().
setData
(
list
);
}
@PostMapping
(
"/metadata"
)
public
R
metadataAuthorize
(
@RequestBody
@Validated
MetadataAuthorizeDto
metadataAuthorizeDto
)
{
metadataAuthorizeService
.
metadataAuthorize
(
metadataAuthorizeDto
);
return
R
.
ok
();
}
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/dao/MetadataAuthorizeDao.java
0 → 100644
View file @
c7ccc12b
package
cn
.
datax
.
service
.
data
.
metadata
.
dao
;
import
cn.datax.common.base.BaseDao
;
import
cn.datax.service.data.metadata.api.entity.MetadataAuthorizeEntity
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* <p>
* 数据授权信息表 Mapper 接口
* </p>
*
* @author yuwei
* @since 2020-10-23
*/
@Mapper
public
interface
MetadataAuthorizeDao
extends
BaseDao
<
MetadataAuthorizeEntity
>
{
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/mapstruct/MetadataAuthorizeMapper.java
0 → 100644
View file @
c7ccc12b
package
cn
.
datax
.
service
.
data
.
metadata
.
mapstruct
;
import
cn.datax.common.mapstruct.EntityMapper
;
import
cn.datax.service.data.metadata.api.dto.MetadataAuthorizeDto
;
import
cn.datax.service.data.metadata.api.entity.MetadataAuthorizeEntity
;
import
cn.datax.service.data.metadata.api.vo.MetadataAuthorizeVo
;
import
org.mapstruct.Mapper
;
/**
* <p>
* 数据授权信息表 Mapper 实体映射
* </p>
*
* @author yuwei
* @since 2020-10-23
*/
@Mapper
(
componentModel
=
"spring"
)
public
interface
MetadataAuthorizeMapper
extends
EntityMapper
<
MetadataAuthorizeDto
,
MetadataAuthorizeEntity
,
MetadataAuthorizeVo
>
{
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/service/MetadataAuthorizeService.java
0 → 100644
View file @
c7ccc12b
package
cn
.
datax
.
service
.
data
.
metadata
.
service
;
import
cn.datax.service.data.metadata.api.dto.MetadataAuthorizeDto
;
import
cn.datax.service.data.metadata.api.entity.MetadataAuthorizeEntity
;
import
cn.datax.common.base.BaseService
;
import
java.util.List
;
/**
* <p>
* 数据授权信息表 服务类
* </p>
*
* @author yuwei
* @since 2020-10-23
*/
public
interface
MetadataAuthorizeService
extends
BaseService
<
MetadataAuthorizeEntity
>
{
List
<
String
>
getAuthorizedMetadata
(
String
id
);
void
metadataAuthorize
(
MetadataAuthorizeDto
metadataAuthorizeDto
);
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/service/impl/MetadataAuthorizeServiceImpl.java
0 → 100644
View file @
c7ccc12b
package
cn
.
datax
.
service
.
data
.
metadata
.
service
.
impl
;
import
cn.datax.service.data.metadata.api.dto.MetadataAuthorizeDto
;
import
cn.datax.service.data.metadata.api.entity.MetadataAuthorizeEntity
;
import
cn.datax.service.data.metadata.api.enums.DataLevel
;
import
cn.datax.service.data.metadata.service.MetadataAuthorizeService
;
import
cn.datax.service.data.metadata.mapstruct.MetadataAuthorizeMapper
;
import
cn.datax.service.data.metadata.dao.MetadataAuthorizeDao
;
import
cn.datax.common.base.BaseServiceImpl
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* <p>
* 数据授权信息表 服务实现类
* </p>
*
* @author yuwei
* @since 2020-10-23
*/
@Service
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
,
rollbackFor
=
Exception
.
class
)
public
class
MetadataAuthorizeServiceImpl
extends
BaseServiceImpl
<
MetadataAuthorizeDao
,
MetadataAuthorizeEntity
>
implements
MetadataAuthorizeService
{
@Autowired
private
MetadataAuthorizeDao
metadataAuthorizeDao
;
@Autowired
private
MetadataAuthorizeMapper
metadataAuthorizeMapper
;
@Override
public
List
<
String
>
getAuthorizedMetadata
(
String
id
)
{
List
<
MetadataAuthorizeEntity
>
metadataAuthorizeList
=
metadataAuthorizeDao
.
selectList
(
Wrappers
.<
MetadataAuthorizeEntity
>
lambdaQuery
().
eq
(
MetadataAuthorizeEntity:
:
getRoleId
,
id
));
List
<
String
>
list
=
metadataAuthorizeList
.
stream
().
map
(
s
->
s
.
getObjectId
()).
collect
(
Collectors
.
toList
());
return
list
;
}
@Override
public
void
metadataAuthorize
(
MetadataAuthorizeDto
metadataAuthorizeDto
)
{
// 先删除
metadataAuthorizeDao
.
delete
(
Wrappers
.<
MetadataAuthorizeEntity
>
lambdaQuery
().
eq
(
MetadataAuthorizeEntity:
:
getRoleId
,
metadataAuthorizeDto
.
getRoleId
()));
metadataAuthorizeDto
.
getAuthorizeDataList
().
stream
().
forEach
(
s
->
{
MetadataAuthorizeEntity
metadataAuthorizeEntity
=
new
MetadataAuthorizeEntity
();
metadataAuthorizeEntity
.
setRoleId
(
s
.
getRoleId
());
metadataAuthorizeEntity
.
setObjectId
(
s
.
getObjectId
());
Integer
level
=
DataLevel
.
getLevel
(
s
.
getObjectType
()).
getLevel
();
metadataAuthorizeEntity
.
setObjectType
(
String
.
valueOf
(
level
));
metadataAuthorizeDao
.
insert
(
metadataAuthorizeEntity
);
});
}
}
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/java/cn/datax/service/data/metadata/service/impl/MetadataColumnServiceImpl.java
View file @
c7ccc12b
...
@@ -129,7 +129,7 @@ public class MetadataColumnServiceImpl extends BaseServiceImpl<MetadataColumnDao
...
@@ -129,7 +129,7 @@ public class MetadataColumnServiceImpl extends BaseServiceImpl<MetadataColumnDao
.
map
(
m
->
{
.
map
(
m
->
{
MetadataTreeVo
tree
=
new
MetadataTreeVo
();
MetadataTreeVo
tree
=
new
MetadataTreeVo
();
tree
.
setId
(
m
.
getId
());
tree
.
setId
(
m
.
getId
());
tree
.
setType
(
DataLevel
.
TABLE
.
getKey
());
tree
.
setType
(
DataLevel
.
COLUMN
.
getKey
());
tree
.
setName
(
m
.
getColumnComment
());
tree
.
setName
(
m
.
getColumnComment
());
tree
.
setCode
(
m
.
getColumnName
());
tree
.
setCode
(
m
.
getColumnName
());
tree
.
setLabel
(
StrUtil
.
isBlank
(
m
.
getColumnComment
())
?
m
.
getColumnName
()
:
m
.
getColumnComment
());
tree
.
setLabel
(
StrUtil
.
isBlank
(
m
.
getColumnComment
())
?
m
.
getColumnName
()
:
m
.
getColumnComment
());
...
...
datax-modules/data-metadata-service-parent/data-metadata-service/src/main/resources/mapper/MetadataAuthorizeMapper.xml
0 → 100644
View file @
c7ccc12b
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"cn.datax.service.data.metadata.dao.MetadataAuthorizeDao"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.datax.service.data.metadata.api.entity.MetadataAuthorizeEntity"
>
<result
column=
"id"
property=
"id"
/>
<result
column=
"object_id"
property=
"objectId"
/>
<result
column=
"role_id"
property=
"roleId"
/>
<result
column=
"object_type"
property=
"objectType"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id,
object_id, role_id, object_type
</sql>
</mapper>
datax-ui/src/api/metadata/dataauthorize.js
0 → 100644
View file @
c7ccc12b
import
request
from
'@/utils/request'
export
function
getAuthorizedMetadata
(
id
)
{
return
request
({
url
:
'/data/metadata/authorizes/getAuthorizedMetadata/'
+
id
,
method
:
'get'
})
}
export
function
metadataAuthorize
(
data
)
{
return
request
({
url
:
'/data/metadata/authorizes/metadata'
,
method
:
'post'
,
data
:
data
})
}
datax-ui/src/views/masterdata/dataapply/index.vue
deleted
100644 → 0
View file @
f8b26ff2
<
template
>
<div
class=
"app-container"
>
DataApply
</div>
</
template
>
<
script
>
export
default
{
name
:
'DataApply'
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
datax-ui/src/views/metadata/dataauthorize/index.vue
View file @
c7ccc12b
<
template
>
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container"
>
DataAuthorize
<el-row
:gutter=
"20"
>
<el-col
:span=
"6"
>
<el-card
class=
"box-card tree-wrapper"
shadow=
"always"
>
<el-tree
ref=
"leftTree"
:data=
"leftTreeOptions"
node-key=
"id"
empty-text=
"加载中,请稍后"
:props=
"leftTreeDefaultProps"
default-expand-all
highlight-current
:expand-on-click-node=
"false"
@
node-click=
"handleNodeClick"
>
<span
slot-scope=
"
{ node, data }" class="custom-tree-node">
<span><i
v-if=
"node.level === 1"
class=
"iconfont icon-zuzhi tree-folder"
/>
{{
node
.
label
}}
</span>
</span>
</el-tree>
</el-card>
</el-col>
<el-col
:span=
"18"
>
<el-card
class=
"box-card tree-wrapper"
shadow=
"always"
>
<el-row
type=
"flex"
justify=
"space-between"
>
<el-col
:span=
"12"
>
<el-button-group>
<el-button
type=
"warning"
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"handleCacheRefresh"
>
刷新缓存
</el-button>
</el-button-group>
</el-col>
<el-col
:span=
"12"
>
<el-button-group
style=
"float: right;"
>
<template
v-if=
"showBtns"
>
<el-button
v-if=
"disabled"
size=
"mini"
round
@
click=
"disabled = false"
>
修改
</el-button>
<el-button
v-else
size=
"mini"
round
@
click=
"handSubmit"
>
保存
</el-button>
</
template
>
</el-button-group>
</el-col>
</el-row>
<el-divider
/>
<el-form
ref=
"form"
:model=
"form"
:disabled=
"disabled"
>
<el-tree
ref=
"rightTree"
:data=
"rightTreeOptions"
show-checkbox
accordion
node-key=
"id"
empty-text=
"加载中,请稍后"
:props=
"rightTreeDefaultProps"
highlight-current
:expand-on-click-node=
"false"
:check-strictly=
"checkStrictly"
>
<span
slot-scope=
"{ node, data }"
class=
"custom-tree-node"
>
<span>
<i
v-if=
"node.level === 1"
class=
"iconfont icon-shujuku tree-folder"
/>
<i
v-else-if=
"node.level === 2"
class=
"iconfont icon-shujubiao tree-folder"
/>
<i
v-else-if=
"node.level === 3"
class=
"iconfont icon-shujuziduan tree-folder"
/>
{{ data.code ? (data.name ? data.code + '(' + data.name + ')' : data.code) : data.name }}
</span>
</span>
</el-tree>
</el-form>
</el-card>
</el-col>
</el-row>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
listRole
}
from
'@/api/system/role'
import
{
getDataMetadataTree
}
from
'@/api/metadata/datacolumn'
import
{
getAuthorizedMetadata
,
metadataAuthorize
}
from
'@/api/metadata/dataauthorize'
export
default
{
export
default
{
name
:
'DataAuthorize'
name
:
'DataAuthorize'
,
data
()
{
return
{
tableHeight
:
document
.
body
.
offsetHeight
-
310
+
'px'
,
// 左侧树
leftTreeOptions
:
[],
leftTreeDefaultProps
:
{
children
:
'children'
,
label
:
'roleName'
},
// 右侧树
rightTreeOptions
:
[],
rightTreeDefaultProps
:
{
children
:
'children'
,
label
:
'label'
},
checkStrictly
:
false
,
form
:
{},
disabled
:
true
,
showBtns
:
false
,
btnSubmitEnable
:
false
}
},
created
()
{
this
.
getLeftTree
()
this
.
getRightTree
()
},
methods
:
{
getLeftTree
()
{
listRole
().
then
(
response
=>
{
if
(
response
.
success
)
{
const
{
data
}
=
response
const
tree
=
{}
tree
.
roleName
=
'角色组'
tree
.
children
=
data
this
.
leftTreeOptions
=
[]
this
.
leftTreeOptions
.
push
(
tree
)
}
})
},
handleNodeClick
(
data
)
{
if
(
data
.
id
)
{
this
.
form
.
roleId
=
data
.
id
getAuthorizedMetadata
(
data
.
id
).
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
$refs
.
rightTree
.
setCheckedKeys
([])
const
checkedKeys
=
response
.
data
||
[]
if
(
checkedKeys
&&
checkedKeys
.
length
>
0
)
{
this
.
checkStrictly
=
true
this
.
$nextTick
(()
=>
{
this
.
$refs
.
rightTree
.
setCheckedKeys
(
checkedKeys
)
this
.
checkStrictly
=
false
})
}
this
.
showBtns
=
true
}
})
}
},
getRightTree
()
{
getDataMetadataTree
(
'column'
).
then
(
response
=>
{
if
(
response
.
success
)
{
const
{
data
}
=
response
this
.
rightTreeOptions
=
data
}
})
},
handSubmit
()
{
const
data
=
[]
const
checkedNodes
=
this
.
$refs
.
rightTree
.
getCheckedNodes
(
false
,
true
)
checkedNodes
.
forEach
((
item
,
index
,
arr
)
=>
{
const
obj
=
{}
obj
.
objectId
=
item
.
id
obj
.
roleId
=
this
.
form
.
roleId
obj
.
objectType
=
item
.
type
data
.
push
(
obj
)
})
metadataAuthorize
({
roleId
:
this
.
form
.
roleId
,
authorizeDataList
:
data
}).
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
$message
.
success
(
'保存成功'
)
this
.
disabled
=
true
}
})
},
handleCacheRefresh
()
{}
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.el-card
::v-deep
.el-card__body
{
height
:
calc
(
100vh
-
170px
);
}
.tree-wrapper
{
overflow-y
:
auto
;
::v-deep
.custom-tree-node
{
flex
:
1
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
font-size
:
14px
;
.tree-folder
{
margin-right
:
5px
;
color
:
#f6cf07
;
}
}
}
</
style
>
</
style
>
datax-ui/src/views/metadata/datapermission/DataPermissionList.vue
deleted
100644 → 0
View file @
f8b26ff2
<
template
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"6"
>
<el-card
class=
"box-card tree-wrapper"
shadow=
"always"
>
<el-tree
ref=
"tree"
:data=
"treeOptions"
node-key=
"id"
empty-text=
"加载中,请稍后"
:props=
"defaultProps"
default-expand-all
highlight-current
:expand-on-click-node=
"false"
@
node-click=
"handleNodeClick"
>
<span
class=
"custom-tree-node"
slot-scope=
"
{ node, data }">
<span><i
v-if=
"node.level === 1"
class=
"iconfont icon-zuzhi tree-folder"
/>
{{
node
.
label
}}
</span>
</span>
</el-tree>
</el-card>
</el-col>
<el-col
:span=
"18"
>
<el-card
class=
"box-card tree-wrapper"
shadow=
"always"
>
<el-row
type=
"flex"
justify=
"space-between"
>
<el-col
:span=
"12"
>
<el-button-group>
<el-button
type=
"warning"
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"handleCacheRefresh"
>
刷新缓存
</el-button>
</el-button-group>
</el-col>
<el-col
:span=
"12"
>
<el-button-group
style=
"float: right;"
>
<template
v-if=
"showBtns"
>
<el-button
size=
"mini"
round
v-if=
"disabled"
@
click=
"disabled = false"
>
修改
</el-button>
<el-button
size=
"mini"
round
v-else
@
click=
"handSubmit"
>
保存
</el-button>
</
template
>
</el-button-group>
</el-col>
</el-row>
<el-divider></el-divider>
<el-form
ref=
"form"
:model=
"form"
:disabled=
"disabled"
>
<el-tree
ref=
"data"
:data=
"dataTreeOptions"
show-checkbox
node-key=
"id"
empty-text=
"加载中,请稍后"
:props=
"dataDefaultProps"
highlight-current
:expand-on-click-node=
"false"
:check-strictly=
"checkStrictly"
>
<span
class=
"custom-tree-node"
slot-scope=
"{ node, data }"
>
<span>
<i
v-if=
"node.level === 1"
class=
"iconfont icon-shujuku tree-folder"
/>
<i
v-else-if=
"node.level === 2"
class=
"iconfont icon-shujubiao tree-folder"
/>
<i
v-else-if=
"node.level === 3"
class=
"iconfont icon-shujuziduan tree-folder"
/>
{{ data.code ? (data.name ? data.code + '(' + data.name + ')' : data.code) : data.name }}
</span>
</span>
</el-tree>
</el-form>
</el-card>
</el-col>
</el-row>
</template>
<
script
>
import
{
listRole
}
from
'@/api/system/role'
import
{
getDataMetadataTree
,
getGrantPermission
,
grantPermission
}
from
'@/api/metadata/datacolumn'
export
default
{
name
:
'DataPermissionList'
,
data
()
{
return
{
tableHeight
:
document
.
body
.
offsetHeight
-
310
+
'px'
,
// 展示切换
showOptions
:
{
data
:
{},
showList
:
true
},
// 左侧树
treeOptions
:
[],
defaultProps
:
{
children
:
'children'
,
label
:
'roleName'
},
// 右侧树
dataTreeOptions
:
[],
dataDefaultProps
:
{
children
:
'children'
,
label
:
'label'
},
checkStrictly
:
false
,
form
:
{},
disabled
:
true
,
showBtns
:
false
,
btnSubmitEnable
:
false
}
},
created
()
{
this
.
getLeftTree
()
this
.
getRightTree
()
},
methods
:
{
getLeftTree
()
{
listRole
().
then
(
response
=>
{
if
(
response
.
success
)
{
const
{
data
}
=
response
const
tree
=
{}
tree
.
roleName
=
'角色组'
tree
.
children
=
data
this
.
treeOptions
=
[]
this
.
treeOptions
.
push
(
tree
)
}
})
},
handleNodeClick
(
data
)
{
if
(
data
.
id
)
{
this
.
form
.
roleId
=
data
.
id
getGrantPermission
(
data
.
id
).
then
(
response
=>
{
if
(
response
.
success
)
{
const
{
data
}
=
response
const
checkedKeys
=
data
||
[]
if
(
checkedKeys
&&
checkedKeys
.
length
>
0
)
{
this
.
checkStrictly
=
true
this
.
$nextTick
(()
=>
{
this
.
$refs
.
data
.
setCheckedKeys
(
checkedKeys
)
this
.
checkStrictly
=
false
})
}
this
.
showBtns
=
true
}
})
}
},
getRightTree
()
{
getDataMetadataTree
(
'column'
).
then
(
response
=>
{
if
(
response
.
success
)
{
const
{
data
}
=
response
this
.
dataTreeOptions
=
data
}
})
},
// 获取选中节点数据
getAllCheckedKeys
()
{
// 目前被选中的节点
const
checkedKeys
=
this
.
$refs
.
data
.
getHalfCheckedKeys
()
// 半选中的菜单节点
const
halfCheckedKeys
=
this
.
$refs
.
data
.
getCheckedKeys
()
checkedKeys
.
unshift
.
apply
(
checkedKeys
,
halfCheckedKeys
)
return
checkedKeys
},
handSubmit
()
{
this
.
form
.
ids
=
this
.
getAllCheckedKeys
()
grantPermission
(
this
.
form
).
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
$message
.
success
(
'保存成功'
)
this
.
disabled
=
true
}
})
},
handleCacheRefresh
()
{}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.right-toolbar
{
float
:
right
;
}
.el-card
::v-deep
.el-card__body
{
height
:
calc
(
100vh
-
170px
);
}
.tree-wrapper
{
overflow-y
:
auto
;
::v-deep
.custom-tree-node
{
flex
:
1
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
font-size
:
14px
;
.tree-folder
{
margin-right
:
5px
;
color
:
#f6cf07
;
}
}
}
</
style
>
datax-ui/src/views/metadata/datapermission/index.vue
deleted
100644 → 0
View file @
f8b26ff2
<
template
>
<div
class=
"app-container"
>
<transition
name=
"el-zoom-in-center"
>
<data-permission-list
v-if=
"options.showList"
@
showCard=
"showCard"
/>
</transition>
</div>
</
template
>
<
script
>
import
DataPermissionList
from
'./DataPermissionList'
export
default
{
name
:
'DataPermission'
,
components
:
{
DataPermissionList
},
data
()
{
return
{
options
:
{
data
:
{},
showList
:
true
}
}
},
methods
:
{
showCard
(
data
)
{
Object
.
assign
(
this
.
options
,
data
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
Write
Preview
Markdown
is supported
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