import React, {Component} from 'react'; import {connect} from 'dva'; import {Input, Button, Modal, Radio, Form, Checkbox, Table, Tabs} from 'antd'; import * as api from "../../../services/api"; import style from "styled-components"; import "./less/labor.less"; const FormItem = Form.Item; const RadioGroup = Radio.Group; const { confirm } = Modal; const { TabPane } = Tabs; @connect(state => ({ profile: state.profile, })) @Form.create() export default class LaborNew extends Component { constructor(props, context) { super(props, context); this.state = { laborModal: false,//表头预览弹窗 reportFieldsData: [],//报表表头请求数据集合 checkData: {},//存储用户点击选择 defaultChecks: [], } } /******************************生命周期******************************/ componentDidMount = () => { this.enterpriseSalaryComReportReportFieldList(); }; /******************************ajax请求******************************/ //请求表头字段集合 enterpriseSalaryComReportReportFieldList = () => { api.enterpriseSalaryComReportReportFieldList({}).then( (data) => { this.setState({reportFieldsData: data.data}); const defaultChecks = [...this.state.defaultChecks]; }, (err) => { console.log(err); }); }; //新建报表 enterpriseSalaryComReportAddCompanyReport = (params) => { api.enterpriseSalaryComReportAddCompanyReport(params).then((data) => { // message.success(data.msg, 1.5, () => { // this.props.history.push("/adminis/labor"); // }); const that = this; const reportId = data.data; confirm({ title: "成功创建报表!", okText: '返回报表管理', cancelText:'马上编辑报表', onOk() { that.props.history.push('/adminis/labor'); }, onCancel() { that.props.history.push(`/adminis/reportUpdate/${reportId + ""}/${params.reportType}`); }, }); }, (err) => { console.log(err); }); }; /******************************相关事件******************************/ handleSubmit = (e) => { e.preventDefault(); this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { let strArr = []; Object.keys(values).map((val, key) => { if (val.indexOf("reportFields") != -1) { values[val].map((v, k) => { let data = v.split("+"); strArr.push(data[1]); }); } }); let str = strArr.join(); let para = { remark: values.remark, reportType: values.reportType, reportName: values.reportName, reportFields: str, }; this.enterpriseSalaryComReportAddCompanyReport(para); } }); }; onCheckChange = (value, type) => { const checkData = JSON.parse(JSON.stringify(this.state.checkData)); checkData[type] = value; this.setState({checkData}); }; //预览表头 previewHeader = () => { //从表单元素获取选中的 checkbox const checks = this.props.form.getFieldsValue(); const columns = []; const dataSource = [{key: "info"}];//dataSource只有单条数据,这里手动指定。 //动态创建 columns ,dataSource Object.keys(checks).map((val, key) => { if (val.indexOf("reportFields") !== -1) { checks[val].map((v, k) => { const [name, key, index, example] = v.split("+"); columns.push({ title: name, dataIndex: key, key: index }); dataSource[0][key] = example; }); } }); //根据数据 请求的 seq 字段排序 columns.sort((a, b) => parseInt(a.key) - parseInt(b.key)); //根据表头列数返回配置 const newProps = {columns: [...columns]}; const length = columns.length; if (length < 5) { return; } else if (length > 5) { newProps.columns[0].fixed = "left"; newProps.columns[0].width = 80; newProps.scroll = {x: 1300}; } else if (length > 10) { //设置 table 部分 fixed 布局 newProps.columns[0].width = 80; newProps.scroll = {x: 1500}; } return