import React, { Component } from 'react';
import { connect } from 'dva';
import {
Input,
Button,
Form,
DatePicker,
InputNumber,
Modal,
Drawer
} from 'antd';
import moment from 'moment';
import $perModal from '../../../utils/modal/perModal';
// import Drawer from 'react-motion-drawer';
import PSelect from '../../../components/Pro/PSelect';
import './less/devices.less';
import * as api from '../../../services/api';
import PartmentButton from '../../../components/PartmentButton';
const FormItem = Form.Item;
const { TextArea } = Input;
@connect(state => ({ profile: state.profile }))
@Form.create()
export default class CheckInOutDrawer extends Component {
constructor(props, context) {
super(props, context);
this.state = {
lostState: 'no',
open: this.props.visible, //出入库
comEquipId: 0,
comEquipList: {
equipNo: '', //设备编号
equipName: '', //设备名称
equipType: '', //设备类型
totalNum: '', //总库存
curNum: '' //当前库存
},
perId: '', //人员id
checkedkeys: '',
getDevInfo: true,
visibleModal: false //提示框状态
};
}
onChangeRadio = e => {
this.setState({ lostState: e.target.value });
};
componentWillReceiveProps(nextProps) {
this.setState({ open: nextProps.visible });
this.setState(
{
comEquipId: nextProps.comEquipId
},
() => {
if (this.state.comEquipId !== 0 && this.state.getDevInfo && nextProps.visible) {
api
.enterpriseEquipComEquipGetComEquipById({
comEquipId: nextProps.comEquipId
})
.then(data => {
this.setState({
comEquipList: data.data,
getDevInfo: false
});
});
}
}
);
}
//表单提交
handleAddDeviceSubmit = e => {
e.preventDefault();
this.props.form.validateFields((err, values) => {
if (!err) {
// values.perIdStr=values.perIdStr[0];
// values.perIdStr = this.state.perId;
values.operaDate = values['operaDate'].format('YYYY-MM-DD HH:mm');
values.comEquipId = this.state.comEquipId;
delete values.storage;
delete values.equipName;
delete values.equipNo;
delete values.equipType;
// delete values.perId;
Reflect.deleteProperty(values, 'name');
api.comEquipInOutAddComEquipInOut({ ...values }).then(
() => {
this.props.tableUpdate();
this.setState({
open: false,
getDevInfo: true
});
},
err1 => {
console.log(err1);
}
);
}
});
};
//保证数量小于实际库存
checkNumber = (rule, value, callback) => {
const stockType = this.props.form.getFieldValue('inOutStockType');
const curNum = this.state.comEquipList.curNum;
const totalNum = this.state.comEquipList.totalNum;
const outNum = totalNum - curNum;
if (stockType === undefined) {
callback('请先选择出入库类型!');
} else if (stockType === '2' && value > outNum) {
callback('设备入库数量不能大于实际出库数量!');
} else if (stockType === '1' && value > curNum) {
callback('设备出库数量不能大于实际库存数量!');
} else if (stockType === '4' && value > totalNum) {
callback('设备损耗数量不能大于库存总数量!');
} else if (value && !/^[1-9]\d*$/.test(value)) {
callback('输入格式不正确!');
} else {
callback();
}
};
//抽屉视图处理
changeDrawer = () => {
this.setState({ open: true });
};
handleOperationDate = (value) => {
if(!value) {
this.props.form.setFieldsValue({
operaDate: moment(new Date())
});
}
}
hideDrawer = () => {
// this.setState({ open: false, getDevInfo: true});
const values = this.props.form.getFieldsValue();
if(values.operaDate){
const operaValue = values['operaDate'];
values.operaDate = operaValue.format('YYYY-MM-DD');
}
const updateDate = values.inOutStockType || values.perId || values.operaDate || values.remark;
if(this.state.lostState === 'no'){
if(updateDate || values.operaNum) {
this.setState({
visibleModal: true,
});
} else {
this.handleModalOk();
}
} else if(updateDate || values.storageNumber || values.loseNumber || values.loseRemark){
this.setState({
visibleModal: true,
});
} else {
this.handleModalOk();
}
};
handleModalOk = () => {
this.setState({
open:false,
getDevInfo: true,
visibleModal:false
});
}
handleModalCancel = () =>{
this.setState({
visibleModal: false
});
}
render() {
const formItemLayout = {
labelCol: {
xs: {
span: 24
},
sm: {
span: 7
}
},
wrapperCol: {
xs: {
span: 24
},
sm: {
span: 17
},
md: {
span: 17
}
}
};
const { getFieldDecorator, setFieldsValue } = this.props.form;
const lostView =
this.state.lostState === 'no' ? (
当前信息未保存,是否确认返回?