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
c7c5270a
Commit
c7c5270a
authored
Sep 03, 2020
by
yuwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
项目初始化
parent
abb4d48c
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
703 additions
and
22 deletions
+703
-22
ModelDataQuery.java
...tax/service/data/masterdata/api/query/ModelDataQuery.java
+4
-0
ModelController.java
...x/service/data/masterdata/controller/ModelController.java
+26
-1
ModelDataController.java
...rvice/data/masterdata/controller/ModelDataController.java
+30
-8
MysqlDynamicDao.java
...cn/datax/service/data/masterdata/dao/MysqlDynamicDao.java
+4
-2
ModelDataService.java
...tax/service/data/masterdata/service/ModelDataService.java
+9
-0
ModelService.java
...n/datax/service/data/masterdata/service/ModelService.java
+5
-0
ModelDataServiceImpl.java
...ce/data/masterdata/service/impl/ModelDataServiceImpl.java
+65
-0
ModelServiceImpl.java
...ervice/data/masterdata/service/impl/ModelServiceImpl.java
+36
-0
MysqlDynamicMapper.xml
...-service/src/main/resources/mapper/MysqlDynamicMapper.xml
+7
-6
datamanage.js
datax-ui/src/api/masterdata/datamanage.js
+41
-0
datamodel.js
datax-ui/src/api/masterdata/datamodel.js
+23
-1
DataList.vue
datax-ui/src/views/masterdata/datamanage/DataList.vue
+414
-0
index.vue
datax-ui/src/views/masterdata/datamanage/index.vue
+36
-0
DataModelAdd.vue
datax-ui/src/views/masterdata/datamodel/DataModelAdd.vue
+2
-3
DataModelEdit.vue
datax-ui/src/views/masterdata/datamodel/DataModelEdit.vue
+1
-1
No files found.
datax-modules/data-masterdata-service-parent/data-masterdata-service-api/src/main/java/cn/datax/service/data/masterdata/api/query/ModelDataQuery.java
View file @
c7c5270a
...
...
@@ -10,8 +10,12 @@ public class ModelDataQuery implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
// 数据库表名
private
String
tableName
;
// 查询条件
private
List
<
Condition
>
conditions
;
// 查询字段
private
List
<
String
>
columns
;
// 关键字
private
String
keyword
;
...
...
datax-modules/data-masterdata-service-parent/data-masterdata-service/src/main/java/cn/datax/service/data/masterdata/controller/ModelController.java
View file @
c7c5270a
package
cn
.
datax
.
service
.
data
.
masterdata
.
controller
;
import
cn.datax.common.core.DataConstant
;
import
cn.datax.common.core.JsonPage
;
import
cn.datax.common.core.R
;
import
cn.datax.common.validate.ValidationGroups
;
import
cn.datax.service.data.masterdata.api.dto.ModelDto
;
import
cn.datax.service.data.masterdata.api.entity.ModelDataEntity
;
import
cn.datax.service.data.masterdata.api.entity.ModelEntity
;
import
cn.datax.service.data.masterdata.api.vo.ModelVo
;
import
cn.datax.service.data.masterdata.api.query.ModelQuery
;
...
...
@@ -24,6 +26,7 @@ import org.springframework.web.bind.annotation.*;
import
cn.datax.common.base.BaseController
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -59,6 +62,16 @@ public class ModelController extends BaseController {
return
R
.
ok
().
setData
(
modelMapstruct
.
toVO
(
modelEntity
));
}
@ApiOperation
(
value
=
"获取列表"
,
notes
=
""
)
@GetMapping
(
"/list"
)
public
R
getModelList
()
{
QueryWrapper
<
ModelEntity
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"status"
,
DataConstant
.
EnableState
.
ENABLE
.
getKey
());
List
<
ModelEntity
>
list
=
modelService
.
list
(
queryWrapper
);
List
<
ModelVo
>
collect
=
list
.
stream
().
map
(
modelMapstruct:
:
toVO
).
collect
(
Collectors
.
toList
());
return
R
.
ok
().
setData
(
collect
);
}
/**
* 分页查询信息
*
...
...
@@ -134,9 +147,21 @@ public class ModelController extends BaseController {
return
R
.
ok
();
}
@PostMapping
(
"/table/{id}"
)
@PostMapping
(
"/table/
create/
{id}"
)
public
R
createTable
(
@PathVariable
String
id
)
{
modelService
.
createTable
(
id
);
return
R
.
ok
();
}
@DeleteMapping
(
"/table/drop/{id}"
)
public
R
dropTable
(
@PathVariable
String
id
)
{
modelService
.
dropTable
(
id
);
return
R
.
ok
();
}
@GetMapping
(
"/table/param/{id}"
)
public
R
getTableParamById
(
@PathVariable
String
id
)
{
Map
<
String
,
Object
>
map
=
modelService
.
getTableParamById
(
id
);
return
R
.
ok
().
setData
(
map
);
}
}
datax-modules/data-masterdata-service-parent/data-masterdata-service/src/main/java/cn/datax/service/data/masterdata/controller/ModelDataController.java
View file @
c7c5270a
package
cn
.
datax
.
service
.
data
.
masterdata
.
controller
;
import
cn.datax.common.base.BaseController
;
import
cn.datax.service.data.masterdata.api.entity.ModelEntity
;
import
cn.datax.common.core.JsonPage
;
import
cn.datax.common.core.R
;
import
cn.datax.service.data.masterdata.api.entity.ModelDataEntity
;
import
cn.datax.service.data.masterdata.api.query.ModelDataQuery
;
import
cn.datax.service.data.masterdata.service.ModelDataService
;
import
cn.datax.service.data.masterdata.utils.SearchUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Map
;
...
...
@@ -22,9 +19,34 @@ public class ModelDataController extends BaseController {
@Autowired
private
ModelDataService
modelDataService
;
@GetMapping
(
"/{id}"
)
public
R
getModelDataById
(
@PathVariable
String
id
,
@RequestBody
ModelDataEntity
modelDataEntity
)
{
Map
<
String
,
Object
>
data
=
modelDataService
.
getModelDataById
(
modelDataEntity
);
return
R
.
ok
().
setData
(
data
);
}
@PostMapping
(
"/page"
)
public
void
getPageModelDatas
(
ModelDataQuery
modelDataQuery
)
{
public
R
getPageModelDatas
(
@RequestBody
ModelDataQuery
modelDataQuery
)
{
IPage
<
Map
<
String
,
Object
>>
page
=
modelDataService
.
getPageModelDatas
(
modelDataQuery
);
JsonPage
<
Map
<
String
,
Object
>>
jsonPage
=
new
JsonPage
<>(
page
.
getCurrent
(),
page
.
getSize
(),
page
.
getTotal
(),
page
.
getRecords
());
return
R
.
ok
().
setData
(
jsonPage
);
}
@PostMapping
(
"/addData"
)
public
R
addModelData
(
@RequestBody
ModelDataEntity
modelDataEntity
)
{
modelDataService
.
addModelData
(
modelDataEntity
);
return
R
.
ok
();
}
@PutMapping
(
"/updateData/{id}"
)
public
R
updateModelData
(
@PathVariable
String
id
,
@RequestBody
ModelDataEntity
modelDataEntity
)
{
modelDataService
.
updateModelData
(
modelDataEntity
);
return
R
.
ok
();
}
@PostMapping
(
"/delData/{id}"
)
public
R
deleteModelData
(
@PathVariable
String
id
,
@RequestBody
ModelDataEntity
modelDataEntity
)
{
modelDataService
.
delModelData
(
modelDataEntity
);
return
R
.
ok
();
}
}
datax-modules/data-masterdata-service-parent/data-masterdata-service/src/main/java/cn/datax/service/data/masterdata/dao/MysqlDynamicDao.java
View file @
c7c5270a
...
...
@@ -2,7 +2,7 @@ package cn.datax.service.data.masterdata.dao;
import
cn.datax.service.data.masterdata.api.entity.ModelDataEntity
;
import
cn.datax.service.data.masterdata.api.entity.ModelEntity
;
import
com.baomidou.mybatisplus.core.conditions.
query.Query
Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Constants
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
...
@@ -24,5 +24,7 @@ public interface MysqlDynamicDao {
void
deleteData
(
ModelDataEntity
modelDataEntity
);
IPage
<
Map
<
String
,
Object
>>
getPageModelDatas
(
Page
<
Object
>
page
,
@Param
(
Constants
.
WRAPPER
)
QueryWrapper
queryWrapper
,
@Param
(
"tableName"
)
String
tableName
);
IPage
<
Map
<
String
,
Object
>>
getPageModelDatas
(
Page
<
Object
>
page
,
@Param
(
Constants
.
WRAPPER
)
Wrapper
wrapper
,
@Param
(
"tableName"
)
String
tableName
);
Map
<
String
,
Object
>
getData
(
ModelDataEntity
modelDataEntity
);
}
datax-modules/data-masterdata-service-parent/data-masterdata-service/src/main/java/cn/datax/service/data/masterdata/service/ModelDataService.java
View file @
c7c5270a
package
cn
.
datax
.
service
.
data
.
masterdata
.
service
;
import
cn.datax.service.data.masterdata.api.entity.ModelDataEntity
;
import
cn.datax.service.data.masterdata.api.query.ModelDataQuery
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
...
...
@@ -8,4 +9,12 @@ import java.util.Map;
public
interface
ModelDataService
{
IPage
<
Map
<
String
,
Object
>>
getPageModelDatas
(
ModelDataQuery
modelDataQuery
);
void
addModelData
(
ModelDataEntity
modelDataEntity
);
void
updateModelData
(
ModelDataEntity
modelDataEntity
);
void
delModelData
(
ModelDataEntity
modelDataEntity
);
Map
<
String
,
Object
>
getModelDataById
(
ModelDataEntity
modelDataEntity
);
}
datax-modules/data-masterdata-service-parent/data-masterdata-service/src/main/java/cn/datax/service/data/masterdata/service/ModelService.java
View file @
c7c5270a
...
...
@@ -5,6 +5,7 @@ import cn.datax.service.data.masterdata.api.dto.ModelDto;
import
cn.datax.common.base.BaseService
;
import
java.util.List
;
import
java.util.Map
;
/**
* <p>
...
...
@@ -27,4 +28,8 @@ public interface ModelService extends BaseService<ModelEntity> {
void
deleteModelBatch
(
List
<
String
>
ids
);
void
createTable
(
String
id
);
void
dropTable
(
String
id
);
Map
<
String
,
Object
>
getTableParamById
(
String
id
);
}
datax-modules/data-masterdata-service-parent/data-masterdata-service/src/main/java/cn/datax/service/data/masterdata/service/impl/ModelDataServiceImpl.java
View file @
c7c5270a
package
cn
.
datax
.
service
.
data
.
masterdata
.
service
.
impl
;
import
cn.datax.common.exception.DataException
;
import
cn.datax.service.data.masterdata.api.entity.ModelDataEntity
;
import
cn.datax.service.data.masterdata.api.query.ModelDataQuery
;
import
cn.datax.service.data.masterdata.dao.MysqlDynamicDao
;
import
cn.datax.service.data.masterdata.service.ModelDataService
;
import
cn.datax.service.data.masterdata.utils.SearchUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Map
;
@Service
...
...
@@ -18,11 +23,71 @@ public class ModelDataServiceImpl implements ModelDataService {
@Autowired
private
MysqlDynamicDao
dynamicDao
;
private
static
String
DEFAULT_PRIMARY_KEY
=
"id"
;
private
static
List
<
String
>
SUPER_COLUMNS
=
Arrays
.
asList
(
"id"
,
"create_time"
);
@Override
public
IPage
<
Map
<
String
,
Object
>>
getPageModelDatas
(
ModelDataQuery
modelDataQuery
)
{
String
tableName
=
modelDataQuery
.
getTableName
();
if
(
StrUtil
.
isBlank
(
tableName
))
{
throw
new
DataException
(
"数据库表为空"
);
}
QueryWrapper
queryWrapper
=
SearchUtil
.
parseWhereSql
(
modelDataQuery
);
List
<
String
>
columns
=
modelDataQuery
.
getColumns
();
columns
.
addAll
(
SUPER_COLUMNS
);
String
[]
array
=
columns
.
toArray
(
new
String
[
columns
.
size
()]);
queryWrapper
.
select
(
array
);
IPage
<
Map
<
String
,
Object
>>
page
=
dynamicDao
.
getPageModelDatas
(
new
Page
<>(
modelDataQuery
.
getPageNum
(),
modelDataQuery
.
getPageSize
()),
queryWrapper
,
tableName
);
return
page
;
}
@Override
public
void
addModelData
(
ModelDataEntity
modelDataEntity
)
{
String
tableName
=
modelDataEntity
.
getTableName
();
if
(
StrUtil
.
isBlank
(
tableName
))
{
throw
new
DataException
(
"数据库表为空"
);
}
dynamicDao
.
insertData
(
modelDataEntity
);
}
@Override
public
void
updateModelData
(
ModelDataEntity
modelDataEntity
)
{
String
tableName
=
modelDataEntity
.
getTableName
();
if
(
StrUtil
.
isBlank
(
tableName
))
{
throw
new
DataException
(
"数据库表为空"
);
}
Map
<
String
,
Object
>
map
=
modelDataEntity
.
getDatas
();
if
(!
map
.
containsKey
(
DEFAULT_PRIMARY_KEY
))
{
throw
new
DataException
(
"数据库主键为空"
);
}
dynamicDao
.
updateData
(
modelDataEntity
);
}
@Override
public
void
delModelData
(
ModelDataEntity
modelDataEntity
)
{
String
tableName
=
modelDataEntity
.
getTableName
();
if
(
StrUtil
.
isBlank
(
tableName
))
{
throw
new
DataException
(
"数据库表为空"
);
}
Map
<
String
,
Object
>
map
=
modelDataEntity
.
getDatas
();
if
(!
map
.
containsKey
(
DEFAULT_PRIMARY_KEY
))
{
throw
new
DataException
(
"数据库主键为空"
);
}
dynamicDao
.
deleteData
(
modelDataEntity
);
}
@Override
public
Map
<
String
,
Object
>
getModelDataById
(
ModelDataEntity
modelDataEntity
)
{
String
tableName
=
modelDataEntity
.
getTableName
();
if
(
StrUtil
.
isBlank
(
tableName
))
{
throw
new
DataException
(
"数据库表为空"
);
}
Map
<
String
,
Object
>
map
=
modelDataEntity
.
getDatas
();
if
(!
map
.
containsKey
(
DEFAULT_PRIMARY_KEY
))
{
throw
new
DataException
(
"数据库主键为空"
);
}
Map
<
String
,
Object
>
data
=
dynamicDao
.
getData
(
modelDataEntity
);
return
data
;
}
}
datax-modules/data-masterdata-service-parent/data-masterdata-service/src/main/java/cn/datax/service/data/masterdata/service/impl/ModelServiceImpl.java
View file @
c7c5270a
...
...
@@ -21,7 +21,10 @@ import org.springframework.transaction.annotation.Propagation;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* <p>
...
...
@@ -115,4 +118,37 @@ public class ModelServiceImpl extends BaseServiceImpl<ModelDao, ModelEntity> imp
modelEntity
.
setIsSync
(
DataConstant
.
TrueOrFalse
.
TRUE
.
getKey
());
modelDao
.
updateById
(
modelEntity
);
}
@Override
public
void
dropTable
(
String
id
)
{
ModelEntity
modelEntity
=
super
.
getById
(
id
);
String
tableName
=
modelEntity
.
getModelPhysicalTable
();
dynamicDao
.
dropTable
(
tableName
);
}
@Override
public
Map
<
String
,
Object
>
getTableParamById
(
String
id
)
{
ModelEntity
modelEntity
=
super
.
getById
(
id
);
String
tableName
=
modelEntity
.
getModelPhysicalTable
();
List
<
ModelColumnEntity
>
modelColumns
=
modelEntity
.
getModelColumns
();
// 列表展示字段
List
<
Map
<
String
,
Object
>>
columnList
=
modelColumns
.
stream
().
filter
(
s
->
DataConstant
.
TrueOrFalse
.
TRUE
.
getKey
().
equals
(
s
.
getIsList
())).
map
(
s
->
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>(
2
);
map
.
put
(
"prop"
,
s
.
getColumnName
());
map
.
put
(
"label"
,
s
.
getColumnComment
());
return
map
;
}).
collect
(
Collectors
.
toList
());
// 查询参数字段
List
<
Map
<
String
,
Object
>>
queryList
=
modelColumns
.
stream
().
filter
(
s
->
DataConstant
.
TrueOrFalse
.
TRUE
.
getKey
().
equals
(
s
.
getIsQuery
())).
map
(
s
->
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>(
2
);
map
.
put
(
"column"
,
s
.
getColumnName
());
map
.
put
(
"type"
,
s
.
getQueryType
());
return
map
;
}).
collect
(
Collectors
.
toList
());
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"tableName"
,
tableName
);
map
.
put
(
"columnList"
,
columnList
);
map
.
put
(
"queryList"
,
queryList
);
return
map
;
}
}
datax-modules/data-masterdata-service-parent/data-masterdata-service/src/main/resources/mapper/MysqlDynamicMapper.xml
View file @
c7c5270a
...
...
@@ -24,9 +24,9 @@
</insert>
<!-- 验证表是否存在 -->
<
upda
te
id=
"dropTable"
parameterType=
"java.lang.String"
>
<
dele
te
id=
"dropTable"
parameterType=
"java.lang.String"
>
DROP TABLE IF EXISTS ${tableName}
</
upda
te>
</
dele
te>
<!-- 插入数据 -->
<insert
id=
"insertData"
parameterType=
"cn.datax.service.data.masterdata.api.entity.ModelDataEntity"
>
...
...
@@ -55,9 +55,10 @@
</delete>
<select
id=
"getPageModelDatas"
resultType=
"java.util.Map"
>
SELECT * FROM ${tableName}
<if
test=
"ew.emptyOfWhere == false"
>
${ew.customSqlSegment}
</if>
SELECT ${ew.SqlSelect} FROM ${tableName} ${ew.customSqlSegment}
</select>
<select
id=
"getData"
resultType=
"java.util.Map"
>
SELECT * FROM ${tableName} WHERE id = #{datas[id]}
</select>
</mapper>
datax-ui/src/api/masterdata/datamanage.js
0 → 100644
View file @
c7c5270a
import
request
from
'@/utils/request'
export
function
pageData
(
data
)
{
return
request
({
url
:
'/data/masterdata/datas/page'
,
method
:
'post'
,
data
:
data
})
}
export
function
getData
(
data
)
{
return
request
({
url
:
'/data/masterdata/datas/'
+
data
.
id
,
method
:
'get'
,
data
:
data
})
}
export
function
addData
(
data
)
{
return
request
({
url
:
'/data/masterdata/datas/addData'
,
method
:
'post'
,
data
:
data
})
}
export
function
updateData
(
data
)
{
return
request
({
url
:
'/data/masterdata/datas/updateData/'
+
data
.
id
,
method
:
'put'
,
data
:
data
})
}
export
function
delData
(
data
)
{
return
request
({
url
:
'/data/masterdata/datas/delData/'
+
data
.
id
,
method
:
'post'
,
data
:
data
})
}
datax-ui/src/api/masterdata/datamodel.js
View file @
c7c5270a
import
request
from
'@/utils/request'
export
function
listDataModel
(
data
)
{
return
request
({
url
:
'/data/masterdata/models/list'
,
method
:
'get'
,
params
:
data
})
}
export
function
pageDataModel
(
data
)
{
return
request
({
url
:
'/data/masterdata/models/page'
,
...
...
@@ -47,7 +55,21 @@ export function updateDataModel(data) {
export
function
createTable
(
id
)
{
return
request
({
url
:
'/data/masterdata/models/table/'
+
id
,
url
:
'/data/masterdata/models/table/
create/
'
+
id
,
method
:
'post'
})
}
export
function
dropTable
(
id
)
{
return
request
({
url
:
'/data/masterdata/models/table/drop/'
+
id
,
method
:
'delete'
})
}
export
function
getTableParam
(
id
)
{
return
request
({
url
:
'/data/masterdata/models/table/param/'
+
id
,
method
:
'get'
})
}
datax-ui/src/views/masterdata/datamanage/DataList.vue
0 → 100644
View file @
c7c5270a
<
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
:expand-on-click-node=
"false"
@
node-click=
"handleNodeClick"
>
<span
slot-scope=
"
{ node, data }" class="custom-tree-node">
<i
v-if=
"node.level === 1"
class=
"el-icon-folder tree-folder"
/>
<span>
{{
node
.
label
}}
</span>
</span>
</el-tree>
</el-card>
</el-col>
<el-col
:span=
"18"
>
<el-card
class=
"box-card"
shadow=
"always"
>
<el-form
ref=
"queryForm"
:model=
"queryParams"
:inline=
"true"
>
<el-form-item
label=
"字段名称"
prop=
"columnName"
>
<el-input
v-model=
"queryParams.columnName"
placeholder=
"请输入字段名称"
clearable
size=
"small"
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form>
<el-row
type=
"flex"
justify=
"space-between"
>
<el-col
:span=
"12"
>
<el-button-group>
<el-button
type=
"primary"
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
>
新增
</el-button>
<el-button
type=
"success"
icon=
"el-icon-edit-outline"
size=
"mini"
:disabled=
"single"
@
click=
"handleEdit"
>
修改
</el-button>
<el-button
type=
"info"
icon=
"el-icon-view"
size=
"mini"
:disabled=
"single"
@
click=
"handleDetail"
>
详情
</el-button>
<el-button
type=
"danger"
icon=
"el-icon-delete"
size=
"mini"
:disabled=
"multiple"
@
click=
"handleBatchDelete"
>
删除
</el-button>
</el-button-group>
</el-col>
<el-col
:span=
"12"
>
<div
class=
"right-toolbar"
>
<el-tooltip
content=
"密度"
effect=
"dark"
placement=
"top"
>
<el-dropdown
trigger=
"click"
@
command=
"handleCommand"
>
<el-button
circle
size=
"mini"
>
<svg-icon
class-name=
"size-icon"
icon-class=
"colum-height"
/>
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-item
command=
"medium"
>
正常
</el-dropdown-item>
<el-dropdown-item
command=
"small"
>
中等
</el-dropdown-item>
<el-dropdown-item
command=
"mini"
>
紧凑
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-tooltip>
<el-tooltip
content=
"刷新"
effect=
"dark"
placement=
"top"
>
<el-button
circle
size=
"mini"
@
click=
"handleRefresh"
>
<svg-icon
class-name=
"size-icon"
icon-class=
"shuaxin"
/>
</el-button>
</el-tooltip>
<el-tooltip
content=
"列设置"
effect=
"dark"
placement=
"top"
>
<el-popover
placement=
"bottom"
width=
"100"
trigger=
"click"
>
<el-checkbox-group
v-model=
"checkedTableColumns"
@
change=
"handleCheckedColsChange"
>
<el-checkbox
v-for=
"(item, index) in tableColumns"
:key=
"index"
:label=
"item.prop"
>
{{
item
.
label
}}
</el-checkbox>
</el-checkbox-group>
<span
slot=
"reference"
>
<el-button
circle
size=
"mini"
>
<svg-icon
class-name=
"size-icon"
icon-class=
"shezhi"
/>
</el-button>
</span>
</el-popover>
</el-tooltip>
</div>
</el-col>
</el-row>
<el-table
v-loading=
"loading"
:data=
"tableDataList"
border
tooltip-effect=
"dark"
:size=
"tableSize"
:height=
"tableHeight"
style=
"width: 100%;margin: 15px 0;"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
/>
<el-table-column
label=
"序号"
width=
"55"
align=
"center"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<
template
v-for=
"(item, index) in tableColumns"
>
<el-table-column
:key=
"index"
:prop=
"item.prop"
:label=
"item.label"
align=
"center"
show-overflow-tooltip
/>
</
template
>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-popover
placement=
"left"
trigger=
"click"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit-outline"
@
click=
"handleEdit(scope.row)"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-view"
@
click=
"handleDetail(scope.row)"
>
详情
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
>
删除
</el-button>
<el-button
slot=
"reference"
>
操作
</el-button>
</el-popover>
</
template
>
</el-table-column>
</el-table>
<el-pagination
:page-sizes=
"[10, 20, 50, 100]"
layout=
"total, sizes, prev, pager, next, jumper"
:current-page
.
sync=
"queryParams.pageNum"
:page-size
.
sync=
"queryParams.pageSize"
:total=
"total"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
/>
</el-card>
</el-col>
</el-row>
</template>
<
script
>
import
{
listDataModel
,
getTableParam
}
from
'@/api/masterdata/datamodel'
import
{
pageData
,
delData
}
from
'@/api/masterdata/datamanage'
export
default
{
name
:
'DataList'
,
data
()
{
return
{
tableHeight
:
document
.
body
.
offsetHeight
-
310
+
'px'
,
// 展示切换
showOptions
:
{
data
:
{},
showList
:
true
,
showDetail
:
false
},
// 遮罩层
loading
:
true
,
// 选中数组
ids
:
[],
// 非单个禁用
single
:
true
,
// 非多个禁用
multiple
:
true
,
// 默认选择中表格头
checkedTableColumns
:
[],
tableSize
:
'medium'
,
// 总数据条数
total
:
0
,
// 查询参数
queryParams
:
{
pageNum
:
1
,
pageSize
:
20
,
tableName
:
''
,
columns
:
[],
conditions
:
[]
},
// 左侧树
treeOptions
:
[],
defaultProps
:
{
children
:
'children'
,
label
:
'modelName'
},
tableName
:
''
,
// 表格头
tableColumns
:
[],
// 表格数据
tableDataList
:
[],
// 查询参数
tableParamList
:
[]
}
},
created
()
{
this
.
getTree
()
},
mounted
()
{
this
.
initCols
()
},
methods
:
{
/** 查询树结构 */
getTree
()
{
listDataModel
().
then
(
response
=>
{
if
(
response
.
success
)
{
const
{
data
}
=
response
const
tree
=
{}
tree
.
modelName
=
'数据模型'
tree
.
children
=
data
this
.
treeOptions
=
[]
this
.
treeOptions
.
push
(
tree
)
}
})
},
initCols
()
{
this
.
checkedTableColumns
=
this
.
tableColumns
.
map
(
col
=>
col
.
prop
)
},
handleCheckedColsChange
(
val
)
{
this
.
tableColumns
.
forEach
(
col
=>
{
if
(
!
this
.
checkedTableColumns
.
includes
(
col
.
prop
))
{
col
.
show
=
false
}
else
{
col
.
show
=
true
}
})
},
handleCommand
(
command
)
{
this
.
tableSize
=
command
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNum
=
1
this
.
getList
()
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
queryParams
=
{
pageNum
:
1
,
pageSize
:
20
,
tableName
:
this
.
tableName
,
columns
:
this
.
tableColumns
.
map
(
column
=>
column
.
prop
),
conditions
:
this
.
tableParamList
}
this
.
handleQuery
()
},
/** 刷新列表 */
handleRefresh
()
{
this
.
getList
()
},
/** 多选框选中数据 */
handleSelectionChange
(
selection
)
{
this
.
ids
=
selection
.
map
(
item
=>
item
.
id
)
this
.
single
=
selection
.
length
!==
1
this
.
multiple
=
!
selection
.
length
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
showOptions
.
data
=
{}
this
.
showOptions
.
showList
=
false
this
.
showOptions
.
showAdd
=
true
this
.
showOptions
.
showEdit
=
false
this
.
showOptions
.
showDetail
=
false
this
.
$emit
(
'showCard'
,
this
.
showOptions
)
},
/** 修改按钮操作 */
handleEdit
(
row
)
{
this
.
showOptions
.
data
.
id
=
row
.
id
||
this
.
ids
[
0
]
this
.
showOptions
.
showList
=
false
this
.
showOptions
.
showAdd
=
false
this
.
showOptions
.
showEdit
=
true
this
.
showOptions
.
showDetail
=
false
this
.
$emit
(
'showCard'
,
this
.
showOptions
)
},
/** 详情按钮操作 */
handleDetail
(
row
)
{
this
.
showOptions
.
data
.
id
=
row
.
id
||
this
.
ids
[
0
]
this
.
showOptions
.
showList
=
false
this
.
showOptions
.
showAdd
=
false
this
.
showOptions
.
showEdit
=
false
this
.
showOptions
.
showDetail
=
true
this
.
$emit
(
'showCard'
,
this
.
showOptions
)
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
this
.
$confirm
(
'选中数据将被永久删除, 是否继续?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
delData
({
tableName
:
this
.
tableName
,
datas
:
{
id
:
row
.
id
}}).
then
(
response
=>
{
if
(
response
.
success
)
{
this
.
$message
.
success
(
'删除成功'
)
this
.
getList
()
}
})
}).
catch
(()
=>
{
})
},
/** 批量删除按钮操作 */
handleBatchDelete
()
{
if
(
!
this
.
ids
.
length
)
{
this
.
$message
({
message
:
'请先选择需要操作的数据'
,
type
:
'warning'
})
}
this
.
$message
.
warning
(
'不支持批量删除'
)
},
handleSizeChange
(
val
)
{
console
.
log
(
`每页
${
val
}
条`
)
this
.
queryParams
.
pageNum
=
1
this
.
queryParams
.
pageSize
=
val
this
.
getList
()
},
handleCurrentChange
(
val
)
{
console
.
log
(
`当前页:
${
val
}
`
)
this
.
queryParams
.
pageNum
=
val
this
.
getList
()
},
/** 节点单击事件 */
handleNodeClick
(
data
)
{
getTableParam
(
data
.
id
).
then
(
response
=>
{
if
(
response
.
success
)
{
const
{
data
}
=
response
this
.
tableName
=
data
.
tableName
this
.
tableColumns
=
data
.
columnList
this
.
tableParamList
=
data
.
queryList
this
.
queryParams
.
tableName
=
data
.
tableName
this
.
queryParams
.
columns
=
data
.
columnList
.
map
(
column
=>
column
.
prop
)
this
.
queryParams
.
conditions
=
data
.
queryList
this
.
$nextTick
(()
=>
{
// 获取表格数据
console
.
log
(
this
.
queryParams
)
this
.
getList
()
})
}
})
},
/** 查询列表 */
getList
()
{
this
.
loading
=
true
pageData
(
this
.
queryParams
).
then
(
response
=>
{
this
.
loading
=
false
if
(
response
.
success
)
{
const
{
data
}
=
response
this
.
tableDataList
=
data
.
data
this
.
total
=
data
.
total
}
})
}
}
}
</
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
;
font-size
:
14px
;
.tree-folder
{
margin-right
:
5px
;
color
:
rgb
(
246
207
7
);
}
}
}
</
style
>
datax-ui/src/views/masterdata/datamanage/index.vue
0 → 100644
View file @
c7c5270a
<
template
>
<div
class=
"app-container"
>
<transition
name=
"el-zoom-in-center"
>
<data-list
v-if=
"options.showList"
@
showCard=
"showCard"
/>
</transition>
</div>
</
template
>
<
script
>
import
DataList
from
'./DataList'
export
default
{
name
:
'DataManage'
,
components
:
{
DataList
},
data
()
{
return
{
options
:
{
data
:
{},
showList
:
true
,
showAdd
:
false
,
showEdit
:
false
,
showDetail
:
false
}
}
},
methods
:
{
showCard
(
data
)
{
Object
.
assign
(
this
.
options
,
data
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
datax-ui/src/views/masterdata/datamodel/DataModelAdd.vue
View file @
c7c5270a
...
...
@@ -249,8 +249,7 @@ export default {
{
columnName
:
'create_time'
,
columnComment
:
'创建日期'
,
columnType
:
'datetime'
,
columnLength
:
'0'
,
columnScale
:
'0'
,
defaultValue
:
''
,
isPk
:
'0'
,
isRequired
:
'0'
,
isInsert
:
'0'
,
isEdit
:
'0'
,
isList
:
'0'
,
isQuery
:
'0'
,
queryType
:
''
,
htmlType
:
'input'
,
isSystem
:
'1'
},
{
columnName
:
'create_dept'
,
columnComment
:
'创建人所属部门'
,
columnType
:
'varchar'
,
columnLength
:
'20'
,
columnScale
:
'0'
,
defaultValue
:
''
,
isPk
:
'0'
,
isRequired
:
'0'
,
isInsert
:
'0'
,
isEdit
:
'0'
,
isList
:
'0'
,
isQuery
:
'0'
,
queryType
:
''
,
htmlType
:
'input'
,
isSystem
:
'1'
},
{
columnName
:
'update_by'
,
columnComment
:
'更新人'
,
columnType
:
'varchar'
,
columnLength
:
'20'
,
columnScale
:
'0'
,
defaultValue
:
''
,
isPk
:
'0'
,
isRequired
:
'0'
,
isInsert
:
'0'
,
isEdit
:
'0'
,
isList
:
'0'
,
isQuery
:
'0'
,
queryType
:
''
,
htmlType
:
'input'
,
isSystem
:
'1'
},
{
columnName
:
'update_time'
,
columnComment
:
'更新日期'
,
columnType
:
'datetime'
,
columnLength
:
'0'
,
columnScale
:
'0'
,
defaultValue
:
''
,
isPk
:
'0'
,
isRequired
:
'0'
,
isInsert
:
'0'
,
isEdit
:
'0'
,
isList
:
'0'
,
isQuery
:
'0'
,
queryType
:
''
,
htmlType
:
'input'
,
isSystem
:
'1'
},
{
columnName
:
'remark'
,
columnComment
:
'备注'
,
columnType
:
'varchar'
,
columnLength
:
'2000'
,
columnScale
:
'0'
,
defaultValue
:
''
,
isPk
:
'0'
,
isRequired
:
'0'
,
isInsert
:
'0'
,
isEdit
:
'0'
,
isList
:
'0'
,
isQuery
:
'0'
,
queryType
:
''
,
htmlType
:
'input'
,
isSystem
:
'1'
}
{
columnName
:
'update_time'
,
columnComment
:
'更新日期'
,
columnType
:
'datetime'
,
columnLength
:
'0'
,
columnScale
:
'0'
,
defaultValue
:
''
,
isPk
:
'0'
,
isRequired
:
'0'
,
isInsert
:
'0'
,
isEdit
:
'0'
,
isList
:
'0'
,
isQuery
:
'0'
,
queryType
:
''
,
htmlType
:
'input'
,
isSystem
:
'1'
}
]
}
},
...
...
@@ -296,7 +295,7 @@ export default {
isRequired
:
'0'
,
isInsert
:
'0'
,
isEdit
:
'0'
,
isList
:
'
0
'
,
isList
:
'
1
'
,
isQuery
:
'0'
,
queryType
:
''
,
htmlType
:
'input'
...
...
datax-ui/src/views/masterdata/datamodel/DataModelEdit.vue
View file @
c7c5270a
...
...
@@ -284,7 +284,7 @@ export default {
isRequired
:
'0'
,
isInsert
:
'0'
,
isEdit
:
'0'
,
isList
:
'
0
'
,
isList
:
'
1
'
,
isQuery
:
'0'
,
queryType
:
''
,
htmlType
:
'input'
...
...
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