/* * Author: 黎永顺 * name: 考勤引用数据查看 * Description: * Date: 2023/3/7 */ import React, { Component } from "react"; import { WeaFormItem, WeaInput, WeaInputSearch, WeaSlideModal } from "ecCom"; import { Button } from "antd"; import SlideModalTitle from "../../../../components/slideModalTitle"; import { viewAttendQuote } from "../../../../apis/attendance"; import UnifiedTable from "../../../../components/UnifiedTable"; import "./index.less"; class AttendanceDataViewSlide extends Component { constructor(props) { super(props); this.state = { loading: { query: false }, keyword: "", dataSource: [], columns: [], pageInfo: { current: 1, pageSize: 10, total: 0 } }; } componentWillReceiveProps(nextProps, nextContext) { if (nextProps.visible !== this.props.visible && nextProps.visible) this.viewAttendQuote({}, nextProps); } viewAttendQuote = (extraPayload = {}, props) => { const { loading, pageInfo, keyword } = this.state; const { attendQuoteId } = props; this.setState({ loading: { ...loading, query: true } }); viewAttendQuote({ ...pageInfo, attendQuoteId, keyword, ...extraPayload }).then(({ status, data }) => { this.setState({ loading: { ...loading, query: false } }); if (status) { const { columns, list: dataSource, pageNum: current, pageSize, total } = data.pageInfo; this.setState({ pageInfo: { ...pageInfo, current, pageSize, total }, dataSource, columns }); } }).catch(() => this.setState({ loading: { ...loading, query: false } })); }; renderCustomOperate = () => { const { keyword } = this.state; const { showOperateBtn } = this.props; return ([
{showOperateBtn && } this.setState({ keyword })} onSearch={() => this.viewAttendQuote({ current: 1 }, this.props)} />
]); }; handleExportAttendQuote = () => { if (!this.handleDebounce) { this.handleDebounce = _.debounce(() => { const { attendQuoteId } = this.props; const url = `${window.location.origin}/api/bs/hrmsalary/attendQuote/export?attendQuoteId=${attendQuoteId}`; window.open(url, "_self"); this.handleDebounce = null; }, 500); } this.handleDebounce(); }; render() { const { showOperateBtn, salaryYearMonth, ...extra } = this.props; const { columns, dataSource, loading, pageInfo } = this.state; const pagination = { ...pageInfo, showTotal: (total) => `共 ${total} 条`, pageSizeOptions: ["10", "20", "50", "100"], showSizeChanger: true, showQuickJumper: true, onShowSizeChange: (current, pageSize) => { this.setState({ pageInfo: { ...pageInfo, current, pageSize } }, () => this.viewAttendQuote({}, this.props)); }, onChange: (current) => { this.setState({ pageInfo: { ...pageInfo, current } }, () => this.viewAttendQuote({}, this.props)); } }; return ( } content={
({ ...item, render: (text) => { return {text} ; } }))} dataSource={dataSource} pagination={pagination} loading={loading.query} xWidth={columns.length * 180} />
} /> ); } } export default AttendanceDataViewSlide;