mh-sms-web/src/components/CustomPages/PF/FormConfigByNamePage.js
2024-01-22 09:18:38 +08:00

138 lines
4.1 KiB
JavaScript

import React from 'react';
import { connect } from 'dva';
import { Button, Row, Col, Form, Input, message } from 'antd';
import EditBaseComponent from "../../../baseComponents/EditBaseComponent/index.js";
import { initFilter, extendRule } from '../../../utils/common.js';
const { TextArea } = Input;
class FormConfigByNamePage extends EditBaseComponent {
constructor(props) {
super(props);
this.state = {
data: {},
btns: [],
title: '',
historyData: [],
remark: '',
};
};
/*
{params,colConfig,thisRef}
*/
onHeadDropDownFilter(params) {
const { params: tempParams, colConfig, thisRef } = params;
if (colConfig.field === 'Nav_Menu.NAME') {
extendRule(tempParams, 'IS_LEAF', 1, 'false');
extendRule(tempParams, 'PARENT_ID', 2, '');
}
}
onLoadData() {
super.onLoadData();
const columns = [
{ controlType: 3, field: 'ConfigType', label: '类型', data: { enumName: 'PFInitFormConfigTypeEnum' } },
{ controlType: 1, field: 'TableName', label: '表名', isRequire: true },
{
controlType: 9, field: 'Nav_Menu.NAME', label: '父级菜单', data: {
api: 'PF/Menu/OrderPaged',
showField: 'NAME',
labelField: 'NAME',
filterField: 'NAME',
navField: 'NAME,ID',
saveField: 'Nav_Menu.NAME,MenuId',
idField: 'MenuId',
}
},
{ controlType: 1, field: 'MenuName', label: '菜单名称' },
{ controlType: 1, field: 'MenuIcon', label: '菜单图标' },
]
this.setEditConfig({
editConfig: {
columns,
},
});
this.setState({ btnLoading: false });
this.setState({
data: {
TableName: null,
ConfigType: 0,
},
})
}
getSqlsByFormId = () => {
const { login, dispatch } = this.props;
const { data, } = this.state;
if (!data || !data.TableName) {
message.error('请输入表名');
return;
}
var json = initFilter(login.OrgId, data.TableName, '', 1, 1, login.userId,
data.ConfigType, data.MenuId, data.MenuName, data.MenuIcon);
this.setState({ btnLoading: true });
dispatch({
type: 'PFForm/initFormConfigByName',
payload: json,
onComplete: (ret) => {
if (ret) {
message.success('执行成功');
this.setState({ data: {} });
}
setTimeout(() => { this.setState({ btnLoading: false }) }, 2000);
}
});
}
getSqlsByFormId2 = () => {
const { login, dispatch } = this.props;
const { data, } = this.state;
if (!data || !data.TableName) {
message.error('请输入表名');
return;
}
var json = initFilter(login.OrgId, data.TableName, '', 1, 1, login.userId,
data.ConfigType, data.MenuId, data.MenuName, data.MenuIcon, true);
this.setState({ btnLoading: true });
dispatch({
type: 'PFForm/initFormConfigByName',
payload: json,
onComplete: (ret) => {
if (ret) {
message.success('执行成功');
this.setState({ data: {} });
}
setTimeout(() => { this.setState({ btnLoading: false }) }, 2000);
}
});
}
render() {
const { btnLoading, sendInfo, data } = this.state;
const headColumnConfig = this.getEditConfig();
const columns = headColumnConfig ? headColumnConfig.columns : [];
return (
<div>
<Form>
<Row style={{ marginTop: '20px' }}>
{
this.createControls(columns, data)
}
</Row>
<Row style={{ marginTop: '20px' }}>
<Col style={{ textAlign: 'right' }}>
<Button type={'primary'} icon={'eye'} loading={btnLoading} onClick={this.getSqlsByFormId} >确认</Button>
<Button style={{ margin: "0 20px" }} type={'primary'} icon={'eye'} loading={btnLoading} onClick={this.getSqlsByFormId2} >保存并发送</Button>
</Col>
</Row>
</Form>
</div>
);
}
}
export default connect(({ login, loading, custom, app }) => ({ login, loading, custom, app }))(Form.create()(FormConfigByNamePage));