194 lines
8.9 KiB
JavaScript
194 lines
8.9 KiB
JavaScript
|
|
import React from 'react'
|
|||
|
|
import { connect } from 'dva'
|
|||
|
|
import { Button } from 'antd'
|
|||
|
|
import TableParamShowPage from './TableParamShowPage'
|
|||
|
|
import ColumnShowPage from './ColumnShowPage'
|
|||
|
|
import BtnShowPage from '../Common/BtnShowPage'
|
|||
|
|
import TablePanelShowPage from './TablePanelShowPage'
|
|||
|
|
import PageConfigShowBaseComponent from "../Lib/PageConfigShowBaseComponent"
|
|||
|
|
import { guid, extendRule } from "../../../utils/common"
|
|||
|
|
|
|||
|
|
class TableShowPage extends PageConfigShowBaseComponent {
|
|||
|
|
constructor (props) {
|
|||
|
|
super(props)
|
|||
|
|
this.state = {
|
|||
|
|
data: {},
|
|||
|
|
paginationIndex: 1,
|
|||
|
|
paginationTotalCount: 0,
|
|||
|
|
rowData: {},
|
|||
|
|
visible: false
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
onRowDropDownFilter (params) {
|
|||
|
|
this.onEditFilter(params)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
onEditFilter = (params) => {
|
|||
|
|
const { params: selectParams, colConfig } = params
|
|||
|
|
if (colConfig.field === 'Nav_ParamScheme.NAME') {
|
|||
|
|
extendRule(selectParams, 'ENABLE_STATUS', 1, 0)
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
onGetTableConfig () {
|
|||
|
|
const tableConfig = {
|
|||
|
|
sort: 'NUM',
|
|||
|
|
order: 0,
|
|||
|
|
api: 'PF/PageTable/OrderPaged',
|
|||
|
|
columns: [
|
|||
|
|
{ field: 'LABEL_NAME', label: '显示名称', isRequire: true },
|
|||
|
|
{ field: 'CODE', label: '编号', isRequire: true },
|
|||
|
|
{ field: 'TABLE_NAME', label: '表名' },
|
|||
|
|
{ field: 'DATA_TABLE', label: '数据库表名' },
|
|||
|
|
{ field: 'SHOW_CHECK', label: '是否显示选择列', isBool: true },
|
|||
|
|
{ field: 'IS_SHOW_ROW_NO', label: '显示序号', isBool: true },
|
|||
|
|
{ field: 'API_URL', label: 'API接口' },
|
|||
|
|
{ field: 'SEND_TYPE', label: '发送方式' },
|
|||
|
|
{ field: 'SORT', label: '排序字段' },
|
|||
|
|
{ field: 'ORDER', label: '排序方式', data: { options: '升序:0,降序:1' } },
|
|||
|
|
{ field: 'RELATION_FIELD', label: '与父表关联字段' },
|
|||
|
|
{ field: 'DEL_API_URL', label: '删除API接口' },
|
|||
|
|
{ field: 'BATCH_DEL_API_URL', label: '批次API接口' },
|
|||
|
|
{ field: 'CLASS_FUNC_NAME', label: '自定义样式函数' },
|
|||
|
|
{ field: 'FOOTER_SUM_TYPE', label: '页脚汇总类型', data: { enumName: 'TableFooterSumTypeEnum' } },
|
|||
|
|
{ field: 'CUSTOM_PARAMS', label: '自定义参数', promptInfo: '自定义参数 格式:参数名称=参数值 多个参数时以||分割' },
|
|||
|
|
{ field: 'NUM', label: '顺序索引' },
|
|||
|
|
],
|
|||
|
|
deleteApi: 'PF/PageTable/Delete',
|
|||
|
|
editConfig: {
|
|||
|
|
data: {
|
|||
|
|
ORG_ID: this.props.orgId,
|
|||
|
|
PAGE_FORM_ID: this.props.formId,
|
|||
|
|
NUM: 0,
|
|||
|
|
SEND_TYPE: 'Post',
|
|||
|
|
ORDER: 0,
|
|||
|
|
PARENT_ID: this.props.parentId
|
|||
|
|
},
|
|||
|
|
columns: [
|
|||
|
|
{ controlType: 1, field: 'LABEL_NAME', label: '显示名称', isRequire: true },
|
|||
|
|
{ controlType: 1, field: 'CODE', label: '编号', isRequire: true },
|
|||
|
|
{ controlType: 1, field: 'TABLE_NAME', label: '表名' },
|
|||
|
|
{ controlType: 1, field: 'DATA_TABLE', label: '数据库表名' },
|
|||
|
|
{ controlType: 4, field: 'SHOW_CHECK', label: '显示选择列' },
|
|||
|
|
{ controlType: 1, field: 'MAX_SELECT', label: '最多可选数', promptInfo: '多选最多可选择个数' },
|
|||
|
|
{ controlType: 4, field: 'IS_SHOW_ROW_NO', label: '显示序号' },
|
|||
|
|
{ controlType: 1, field: 'API_URL', label: 'API接口' },
|
|||
|
|
{ controlType: 1, field: 'SEND_TYPE', label: '发送方式' },
|
|||
|
|
{ controlType: 1, field: 'SORT', label: '排序字段' },
|
|||
|
|
{ controlType: 3, field: 'ORDER', label: '排序方式', data: { options: '升序:0,降序:1' } },
|
|||
|
|
{ controlType: 1, field: 'SORTS', label: '多字段排序字段', promptInfo: '多个使用逗号隔开' },
|
|||
|
|
{ controlType: 1, field: 'ORDERS', label: '多字段排序方式', promptInfo: '(0:升序,1:降序) 多个使用逗号隔开' },
|
|||
|
|
{ controlType: 1, field: 'POSITION', label: '分页位置', promptInfo: 'top|bottom|both(默认bottom)' },
|
|||
|
|
{ controlType: 1, field: 'WIDTH', label: '表格宽度' },
|
|||
|
|
{ controlType: 1, field: 'HEIGTH', label: '表格高度' },
|
|||
|
|
{ controlType: 1, field: 'CLASS_FIELD', label: '样式字段' },
|
|||
|
|
{ controlType: 1, field: 'DEL_API_URL', label: '删除API接口' },
|
|||
|
|
{ controlType: 1, field: 'BATCH_DEL_API_URL', label: '批次API接口' },
|
|||
|
|
{ controlType: 1, field: 'RELATION_FIELD', label: '与父表关联字段' },
|
|||
|
|
{ controlType: 1, field: 'PARENT_RELATION_FIELD', label: '父表关联字段', promptInfo: '子表关联父表,父表字段名称 默认为ID' },
|
|||
|
|
{
|
|||
|
|
controlType: 9, field: 'Nav_ParamScheme.NAME', label: '实体参数模板', data: {
|
|||
|
|
api: 'PF/ParamScheme/OrderPaged',
|
|||
|
|
navField: 'NAME,ID',
|
|||
|
|
saveField: 'Nav_ParamScheme.NAME,PARAM_SCHEME_ID',
|
|||
|
|
idField: 'PARAM_SCHEME_ID',
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{ controlType: 3, field: 'FILTER_ORG_TYPE', label: '过滤组织类型', data: { enumName: 'PFFilterOrgTypeEnum' } },
|
|||
|
|
{ controlType: 1, field: 'CLASS_FUNC_NAME', label: '自定义样式函数' },
|
|||
|
|
{ controlType: 3, field: 'FOOTER_SUM_TYPE', label: '页脚汇总类型', data: { enumName: 'TableFooterSumTypeEnum' } },
|
|||
|
|
{ controlType: 1, field: 'CUSTOM_PARAMS', label: '自定义参数', promptInfo: '自定义参数 格式:参数名称=参数值 多个参数时以||分割' },
|
|||
|
|
{ controlType: 1, field: 'NUM', label: '顺序索引' },
|
|||
|
|
{ controlType: 4, field: 'IS_SHOW_CARD', label: '卡片显示' },
|
|||
|
|
{ controlType: 1, field: 'PIC_CODE_FIELD', label: '卡片图片配置' },
|
|||
|
|
{ controlType: 4, field: 'NO_SELECT_FIELD', label: '禁止过滤参数' },
|
|||
|
|
{ controlType: 1, field: 'TITLE', label: '导出文件标题' },
|
|||
|
|
{ controlType: 4, field: 'IGNORE_ORG_RULE', label: '忽略组织权限' }
|
|||
|
|
],
|
|||
|
|
getApi: 'PF/PageTable/Get',
|
|||
|
|
saveApi: 'PF/PageTable/Update',
|
|||
|
|
onFilter: this.onEditFilter,
|
|||
|
|
},
|
|||
|
|
rule: {
|
|||
|
|
rules: [
|
|||
|
|
{ field: 'PAGE_FORM_ID', operator: 1, value: this.props.formId },
|
|||
|
|
{ field: 'PARENT_ID', operator: 1, value: this.props.parentId }
|
|||
|
|
]
|
|||
|
|
},
|
|||
|
|
rowBtns: [
|
|||
|
|
{ id: guid(), btnType: 7, code: 'edit' },
|
|||
|
|
{ id: guid(), btnType: 4, code: 'delete' },
|
|||
|
|
{ id: guid(), btnType: 7, code: 'column' },
|
|||
|
|
{ id: guid(), btnType: 7, code: 'table' },
|
|||
|
|
{ id: guid(), btnType: 7, code: 'tableParam' },
|
|||
|
|
{ id: guid(), btnType: 7, code: 'btn' },
|
|||
|
|
{ id: guid(), btnType: 7, code: 'panel' },
|
|||
|
|
]
|
|||
|
|
}
|
|||
|
|
return [tableConfig]
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
onTableBtnParam (params) {
|
|||
|
|
const { btnConfig, record } = params ? params : {}
|
|||
|
|
if (btnConfig.code === 'column') {
|
|||
|
|
return {
|
|||
|
|
content: <ColumnShowPage orgId={this.props.orgId} pageTableId={record.ID}>
|
|||
|
|
<Button icon={'bars'} type={'default'} size={'small'} title={'字段'} />
|
|||
|
|
</ColumnShowPage>
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else if (btnConfig.code === 'table') {
|
|||
|
|
return {
|
|||
|
|
content: <TableShowPage formId={this.props.formId} orgId={this.props.orgId} parentId={record.ID} dispatch={this.props.dispatch} app={this.props.app} login={this.props.login} custom={this.props.custom} >
|
|||
|
|
<Button icon={'folder-add'} type={'default'} size={'small'} title={'管理'} />
|
|||
|
|
</TableShowPage>
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else if (btnConfig.code === 'tableParam') {
|
|||
|
|
return {
|
|||
|
|
content: <TableParamShowPage orgId={this.props.orgId} pageTableId={record.ID}>
|
|||
|
|
<Button icon={'info'} type={'default'} size={'small'} title={'过滤'} />
|
|||
|
|
</TableParamShowPage>
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else if (btnConfig.code === 'btn') {
|
|||
|
|
return {
|
|||
|
|
content: <BtnShowPage orgId={this.props.orgId} tableId={record.ID} btnPageType={0}>
|
|||
|
|
<Button icon={'star'} type={'default'} size={'small'} title={'按钮'} />
|
|||
|
|
</BtnShowPage>
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else if (btnConfig.code === 'panel') {
|
|||
|
|
return {
|
|||
|
|
content: <TablePanelShowPage orgId={this.props.orgId} pageTableId={record.ID}>
|
|||
|
|
<Button icon={'info'} css={'default'} size={'small'} title={'区域'} />
|
|||
|
|
</TablePanelShowPage>
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return super.onTableBtnParam(params)
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
getRowOtherBtns ({ record }) {
|
|||
|
|
return <>
|
|||
|
|
<ColumnShowPage orgId={this.props.orgId} pageTableId={record.ID}>
|
|||
|
|
<Button icon={'bars'} type={'default'}>字段</Button>
|
|||
|
|
</ColumnShowPage>
|
|||
|
|
|
|||
|
|
<TableShowPage formId={this.props.formId} orgId={this.props.orgId} parentId={record.ID} dispatch={this.props.dispatch} app={this.props.app} login={this.props.login} custom={this.props.custom} >
|
|||
|
|
<Button icon={'folder-add'} type={'default'}>管理</Button>
|
|||
|
|
</TableShowPage>
|
|||
|
|
|
|||
|
|
<TableParamShowPage orgId={this.props.orgId} pageTableId={record.ID}>
|
|||
|
|
<Button icon={'info'} type={'default'}>过滤</Button>
|
|||
|
|
</TableParamShowPage>
|
|||
|
|
|
|||
|
|
<BtnShowPage orgId={this.props.orgId} tableId={record.ID} btnPageType={0}>
|
|||
|
|
<Button icon={'star'} type={'default'}>按钮</Button>
|
|||
|
|
</BtnShowPage>
|
|||
|
|
</>
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
export default connect(({ login, app, loading, custom }) => ({ login, app, loading, custom }))(TableShowPage)
|