mh-lcmk-sms-web/src/components/PageConfig/Table/TableShowPage.js
2024-05-27 09:25:22 +08:00

194 lines
8.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)