import React, { PureComponent } from 'react';
import moment from 'moment';
import "moment/locale/zh-cn";
import { connect } from 'dva';
import style from 'styled-components';
import {
Input,
Button,
DatePicker,
Modal,
Form,
TreeSelect,
message,
Drawer,
Select
} from 'antd';
// import Drawer from 'react-motion-drawer';
import PTable from '../../../components/Pro/PTable';
import EditGoodDeeds from './EditGoodDeeds';
import {
deletePerGoodDeedsById,
addPerGoodDeeds,
getTreeperBydepart,
publicCommonDictGetDictByCodeTypes
} from '../../../services/api';
import $perModal from '../../../utils/modal/perModal';
const FormItem = Form.Item;
const dateFormat = 'YYYY-MM-DD';
const { confirm } = Modal;
const { RangePicker } = DatePicker;
const { TextArea } = Input;
const { Option } = Select;
const config = {
rules: [
{
type: 'object',
required: false,
message: '请选择日期!'
}
]
};
//首次验证trim()
function validateTrim(v) {
return v === undefined ? v : v.trim();
}
@connect(state => ({ profile: state.profile }))
@Form.create()
export default class GoodDeeds extends PureComponent {
constructor(props, context) {
super(props, context);
this.state = {
visible: false,
forceUpdate: false,
goodDeedsId: 0,
open: false, //添加窗口
openEdit: false, //修改
showPerId: 0,
perId: '',
// treeData: [
// //树
// { title: '', key: '' }
// ],
goodDeedsTypes: [], //好人好事类型
idCardValue: '',//选中的时候,对应的身份证号
pageParm: {
keyWords: '',
startDate: '',
endDate: '',
pageSize: '10',
pageNumber: '1'
},
keyWords: '',
startDate: '',
endDate: ''
};
}
componentDidMount() {
// getTreeperBydepart({}).then(
// response => {
// console.log(response, 'getTreeperBydepart-response');
// response.data = this.checkMember(response.data);
// this.setState({ treeData: response.data });
// },
// err => {
// console.log(err, 'getTreeperBydepart-err');
// }
// );
this.__getGoodDeedTypes();
}
__getGoodDeedTypes() {
publicCommonDictGetDictByCodeTypes({ codeTypes: 'goodDeedsType' }).then(res => {
this.setState({
goodDeedsTypes: res.data.goodDeedsType
});
});
}
// 遍历部门人员数据
checkMember(data) {
data = data.map(item => {
if (item.children && item.children.length) {
let needDisable = true;
const temp = subItem => {
subItem.filter(tempItem => {
if (tempItem.children && tempItem.children.length) {
temp(tempItem.children);
return tempItem;
} else {
if (tempItem.treeType === '2') {
needDisable = false;
}
return tempItem;
}
});
};
temp(item.children);
needDisable ? (item.disableCheckbox = true) : null;
this.checkMember(item.children);
return item;
} else {
if (item.treeType !== '2') {
item.disableCheckbox = true;
item.disabled = true;
item.isLeaf = true;
}
return item;
}
});
return data;
}
//修改
editDrawer = goodDeedsId => {
this.setState({ goodDeedsId });
this.setState({ openEdit: true });
};
//增加
addDrawer = () => {
this.setState({ open: true });
};
//输入框的书写
inputSerchGoodDeedsChange = e => {
console.log(e.target.value.trim());
this.setState({ keyWords: e.target.value.trim() });
};
//报表类型 change
pSelectChange = (value, type) => {
this.setState({ [type]: value });
};
//刷新方法
tableUpdate = () => {
this.setState({ forceUpdate: true }, () => {
this.setState({ forceUpdate: false });
});
};
//点击搜索
search = () => {
const pageParm = { ...this.state.pageParm };
const { keyWords, startDate, endDate } = this.state;
pageParm.keyWords = keyWords;
pageParm.startDate = startDate;
pageParm.endDate = endDate;
this.setState({ pageParm });
};
//时间选择
onChangeTime = (date, dateString) => {
this.setState({
startDate: dateString[0],
endDate: dateString[1]
});
};
//表格渲染
renderTable = () => {
const columns = [
{
title: '姓名',
dataIndex: 'name',
key: 'name',
width: 120,
render: (text, record) => (
)
},
{
title: '身份证号',
dataIndex: 'idCardNo',
key: 'idCardNo',
width: 200,
render: (text, record) => (
)
},
{
title: '日期',
dataIndex: 'happenDate',
key: 'happenDate',
width: 140,
render: (text, record) => (
)
},
{
title: '内容',
dataIndex: 'goodContent',
key: 'goodContent',
width: 320,
render: (text, record) => (
)
},
{
title: '操作',
dataIndex: 'action',
key: 'action',
width: 90,
render: (text, record) => (
)
}
];
return (
);
};
hideModal = () => {
// this.setState({
// visible: true
// });
const values = this.props.form.getFieldsValue();
console.log(values);
if (values.goodContent || values.happenDate || values.idCardNo || values.remark !== '' || this.state.perId.length !== 0) {
this.setState({
visible: true,
});
} else {
this.handleModalOk();
}
};
handleModalOk = e => {
console.log(e);
this.setState({
visible: false,
open: false,
perId: '',
idCardValue: '',
});
};
handleModalCancel = e => {
console.log(e);
this.setState({
visible: false
});
};
showDeleteConfirm = goodDeedsId => {
console.log(goodDeedsId);
const that = this;
confirm({
title: '是否删除所选信息,删除后无法找回。是否确认删除?',
okText: '确认',
cancelText: '取消',
onOk() {
console.log('ok');
that.orderDelete(goodDeedsId);
},
onCancel() {
console.log('Cancel');
}
});
};
//删除
orderDelete = goodDeedsId => {
deletePerGoodDeedsById({ goodDeedsId }).then(
(response) => {
message.success(response.msg);
this.tableUpdate();
},
err => {
console.log(err);
}
);
};
//树形选择器改编
handleTreeSelectChange = (value, label, extra) => {
console.log(value);
console.log(label);
console.log(extra.triggerNode.props.idCardNo);
this.setState({
showPerId: 0,
idCardValue: extra.triggerNode.props.idCardNo,
});
const lastValue = this.state.perId;
if (
extra.triggerNode &&
extra.triggerNode.props &&
extra.triggerNode.props.treeType === '1'
) {
console.log('部门');
this.setState({ perId: lastValue });
} else {
this.setState({ perId: value });
}
};
// 判断日期
disabledStartDate = (currentDate) => {
return currentDate && currentDate > moment(parseInt(sessionStorage.getItem('requestDate'))).endOf('day');
}
//表单提交
handleAddGoodDeedsSubmit = e => {
e.preventDefault();
this.props.form.validateFields((err, values) => {
if (!err) {
Reflect.deleteProperty(values, 'perName');
const rangeValue = values['happenDate'];
values.happenDate = rangeValue.format('YYYY-MM-DD');
addPerGoodDeeds(values).then(
data => {
// this.setState({ forceUpdate: true });
this.setState({ open: false });
this.setState({ perId: '' });
this.tableUpdate();
const { setFieldsValue } = this.props.form;
setFieldsValue({
idCardNo: '',
happenDate: '',
goodContent: '',
remark: ''
});
this.setState({
idCardValue: '',
});
},
err1 => {
console.log(err1);
}
);
}
});
};
render() {
const formItemLayout = {
labelCol: {
xs: {
span: 24
},
sm: {
span: 7
}
},
wrapperCol: {
xs: {
span: 24
},
sm: {
span: 17
},
md: {
span: 17
}
}
};
const { getFieldDecorator, getFieldValue, setFieldsValue } = this.props.form;
return (
{/* 搜索条件面板 */}
{this.renderTable()}
确认删除“好人好事”?
{/*好人好事详情*/}
{
this.setState({ open });
}}
// onClose={()=>{
// this.setState({
// open:false,
// perId: '',
// idCardValue: '',
// });
// }}
onClose={this.hideModal}
destroyOnClose
>
当前信息未保存,是否确认返回?
{
this.setState({ openEdit });
}}
goodDeedsTypes={this.state.goodDeedsTypes}
visible={this.state.openEdit}
goodDeedsId={this.state.goodDeedsId}
tableUpdate={this.tableUpdate}
// treeData={this.state.treeData}
/>
);
}
}
/************************样式************************/
const Content = style.div`{
font-size: 14px;
color: rgba(0,0,0,0.65);
.searchpanel{
margin-bottom:16px;
.post{
margin:0 8px 0 16px;
}
}
.btns{
margin-top:16px;
}
}`;
const Opton = style.span`{
font-size: 12px;
color: #0F71FF;
cursor:pointer;
margin-right:8px;
}`;
const Formitem = style.label`{
font-size: 14px;
line-height: 1.5;
color: rgba(0, 0, 0, 0.65);
-webkit-box-sizing: border-box;
box-sizing: border-box;
margin: 0;
padding: 0;
list-style: none;
vertical-align: top;
}`;
const Formlable = style.span`{
text-align: right;
vertical-align: middle;
line-height: 39.9999px;
display: inline-block;
overflow: hidden;
white-space: nowrap;
margin-right:8px;
}`;