import React, { PureComponent } from 'react';
import {
Form,
Input,
Card,
Row,
Col,
Button,
InputNumber,
TreeSelect,
Radio,
Icon,
Modal,
message,
} from 'antd';
import { connect } from 'dva';
import Panel from '../../../components/Panel';
import styles from '../../../layouts/Sword.less';
import { MENU_DETAIL, MENU_INIT, MENU_SUBMIT } from '../../../actions/menu';
import func from '../../../utils/Func';
import IconPreview from '../../../components/IconPreview';
const FormItem = Form.Item;
const { TextArea, Search } = Input;
const RadioGroup = Radio.Group;
@connect(({ menu, loading }) => ({
menu,
submitting: loading.effects['menu/submit'],
}))
@Form.create()
class MenuEdit extends PureComponent {
state = { visible: false };
componentWillMount() {
const {
dispatch,
match: {
params: { id },
},
} = this.props;
dispatch(MENU_DETAIL(id));
dispatch(MENU_INIT());
}
handleSubmit = e => {
e.preventDefault();
const {
dispatch,
match: {
params: { id },
},
form,
} = this.props;
const parentId = form.getFieldValue('parentId');
if (id === parentId.toString()) {
message.warn('上级菜单不能选择自身!');
return;
}
form.validateFieldsAndScroll((err, values) => {
if (!err) {
const params = {
id,
...values,
};
dispatch(MENU_SUBMIT(params));
}
});
};
showModal = () => {
this.setState({
visible: true,
});
};
handleCancel = () => {
this.setState({
visible: false,
});
};
handleSyncLocale = () => {
const { form } = this.props;
const locale = form.getFieldValue('menuLocale');
if (func.isEmpty(locale)) {
const code = form.getFieldValue('code');
form.setFieldsValue({ menuLocale: code });
}
};
render() {
const {
form: { getFieldDecorator },
menu: {
detail,
init: { tree },
},
submitting,
} = this.props;
const { visible } = this.state;
const formItemLayout = {
labelCol: {
span: 8,
},
wrapperCol: {
span: 16,
},
};
const formAllItemLayout = {
labelCol: {
span: 4,
},
wrapperCol: {
span: 20,
},
};
const action = (
);
return (
);
}
}
export default MenuEdit;