/* * Author: 黎永顺 * name: 考勤引用数据查看 * Description: * Date: 2023/3/7 */ import React, { Component } from "react"; import { WeaInputSearch, WeaLocaleProvider, WeaSlideModal, WeaTable, WeaTop } from "ecCom"; import { Button } from "antd"; import { viewAttendQuote } from "../../../../apis/attendance"; import "./index.less"; const { getLabel } = WeaLocaleProvider; 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) { document.querySelector(".attendanceRefWrapper").classList.add("zIndex0-attendance"); this.viewAttendQuote({}, nextProps); } else if (nextProps.visible !== this.props.visible && !nextProps.visible) { document.querySelector(".attendanceRefWrapper").classList.remove("zIndex0-attendance"); this.setState({ pageInfo: { current: 1, pageSize: 10, total: 0 } }); } } 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, // o.dataIndex === "username" ? "left" : columns: _.map(columns, o => ({ ...o, width: 150, fixed: null })) }); } }).catch(() => this.setState({ loading: { ...loading, query: false } })); }; 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, keyword } = 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)); } }; const btns = [ , this.setState({ keyword })} onSearch={() => this.viewAttendQuote({ current: 1 }, this.props)} /> ]; return ( } iconBgcolor="#F14A2D" buttons={showOperateBtn ? btns : btns.slice(1)}/> } content={
{getLabel(543376, "考勤周期")}:{salaryYearMonth}
} /> ); } } export default AttendanceDataViewSlide;