Commit c7c5270a by yuwei

项目初始化

parent abb4d48c
......@@ -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;
......
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);
}
}
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();
}
}
......@@ -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.QueryWrapper;
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);
}
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);
}
......@@ -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);
}
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;
}
}
......@@ -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;
}
}
......@@ -24,9 +24,9 @@
</insert>
<!-- 验证表是否存在 -->
<update id="dropTable" parameterType="java.lang.String">
<delete id="dropTable" parameterType="java.lang.String">
DROP TABLE IF EXISTS ${tableName}
</update>
</delete>
<!-- 插入数据 -->
<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>
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
})
}
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'
})
}
<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>
<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>
......@@ -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'
......
......@@ -284,7 +284,7 @@ export default {
isRequired: '0',
isInsert: '0',
isEdit: '0',
isList: '0',
isList: '1',
isQuery: '0',
queryType: '',
htmlType: 'input'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment