From 11ac288541d124ab9eeac33a6bd9cb5f60f7ae0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Fri, 26 May 2023 14:51:17 +0800 Subject: [PATCH] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=BB=9F=E8=AE=A1=E5=88=86?= =?UTF-8?q?=E6=9E=90=E6=B7=BB=E5=8A=A0=E5=91=98=E5=B7=A5=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E7=9A=84=E7=BB=9F=E8=AE=A1=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/employeeDetails.js | 15 +--- pc4mobx/hrmSalary/pages/employeeView/index.js | 87 ++++++++++++++----- pc4mobx/hrmSalary/stores/payrollFiles.js | 22 ++++- 3 files changed, 87 insertions(+), 37 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/employeeDetails.js b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/employeeDetails.js index 1360fb57..dc89547d 100644 --- a/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/employeeDetails.js +++ b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/employeeDetails.js @@ -6,7 +6,6 @@ */ import React, { Component } from "react"; import { WeaLocaleProvider, WeaTable } from "ecCom"; -import { Dropdown, Menu } from "antd"; import { statisticsEmployeeList } from "../../../apis/statistics"; import "../index.less"; @@ -51,20 +50,12 @@ class EmployeeDetails extends Component { pageInfo: { ...pageInfo, current, pageSize, total }, dataSource, columns: [...columns, { - title: "", + title: "操作", dataIndex: "operate", width: 80, render: (_, record) => { - return
- - {getLabel(111, "查看")} - - } overlayStyle={{ width: "auto", height: "auto" }}> - - -
; + return {getLabel(111, "查看")}; } }] }); diff --git a/pc4mobx/hrmSalary/pages/employeeView/index.js b/pc4mobx/hrmSalary/pages/employeeView/index.js index 1d220a8c..412da738 100644 --- a/pc4mobx/hrmSalary/pages/employeeView/index.js +++ b/pc4mobx/hrmSalary/pages/employeeView/index.js @@ -6,17 +6,19 @@ */ import React, { Component } from "react"; import { WeaLocaleProvider, WeaSelect, WeaTop } from "ecCom"; +import { WeaTableNew } from "comsMobx"; +import { toJS } from "mobx"; import { Spin } from "antd"; import { inject, observer } from "mobx-react"; import { MonthRangePicker } from "../reportView/components/statisticalMicroSettingsSlide"; -import { statisticsEmployeeDetailList } from "../../apis/statistics"; import { optionAddWhole } from "../../util/options"; import moment from "moment"; import "./index.less"; +const WeaTableComx = WeaTableNew.WeaTable; const { getLabel } = WeaLocaleProvider; -@inject("taxAgentStore") +@inject("taxAgentStore", "payrollFilesStore") @observer class Index extends Component { constructor(props) { @@ -24,9 +26,9 @@ class Index extends Component { this.state = { loading: false, taxAgentId: "", + countResult: {}, salaryMonth: [moment().startOf("year").format("YYYY-MM"), moment().format("YYYY-MM")], dataSource: [], - columns: [], pageInfo: { current: 1, pageSize: 10, @@ -47,11 +49,18 @@ class Index extends Component { handleReceive = ({ data }) => { const { type, payload: { id, params } = {} } = data; - const { columns, dataSource, pageInfo } = this.state; + const { dataSource, pageInfo, countResult } = this.state; + const { payrollFilesStore: { employeeTableStore } } = this.props; + const columns = _.filter(toJS(employeeTableStore.columns), (item) => item.display === "true" && item.dataIndex !== "acctTimes"); if (type === "init") { this.postMessageToChild({ - columns, dataSource, - showSum: false, pageInfo + columns: _.map(columns, (it, idx) => ({ + ...it, + width: (it.dataIndex === "taxAgent" || it.dataIndex === "salarySob") ? 176 : it.oldWidth, + fixed: (idx === 1 || idx === 0) ? "left" : "", + ellipsis: true + })), dataSource, countResult, + showSum: true, pageInfo }); } else if (type === "turn") { if (id === "PAGEINFO") { @@ -62,14 +71,14 @@ class Index extends Component { }; postMessageToChild = (payload) => { const childFrameObj = document.getElementById("atdTable"); - const { dataSource, columns, showSum, pageInfo } = payload; + const { dataSource, columns, showSum, pageInfo, countResult } = payload; childFrameObj && childFrameObj.contentWindow.postMessage(JSON.stringify({ - dataSource, columns, showSum, pageInfo + dataSource, columns, showSum, pageInfo, countResult }), "*"); }; statisticsEmployeeDetailList = () => { - const { params: { employeeId } } = this.props; + const { params: { employeeId }, payrollFilesStore: { statisticsEmployeeDetailList } } = this.props; const { taxAgentId, salaryMonth, pageInfo } = this.state; const payload = { employeeId, taxAgentId, @@ -80,30 +89,43 @@ class Index extends Component { statisticsEmployeeDetailList(payload).then(({ status, data }) => { this.setState({ loading: false }); if (status) { - const { columns, pageInfo: { list, pageNum: current, pageSize, total } } = data; + const { countResult, pageInfo: { list, pageNum: current, pageSize, total } } = data; this.setState({ - columns: _.map(columns, (it, idx) => ({ - ...it, - dataIndex: it.text, width: 150, - title: it.width, align: "left", - fixed: (idx === 1 || idx === 0) ? "left" : "", - ellipsis: true - })), + countResult, dataSource: list || [], pageInfo: { ...pageInfo, current, pageSize, total } }, () => { - this.postMessageToChild({ - columns: this.state.columns, - dataSource: this.state.dataSource, - showSum: false, pageInfo: this.state.pageInfo - }); + // this.postMessageToChild({ + // columns: this.state.columns, + // dataSource: this.state.dataSource, + // showSum: false, pageInfo: this.state.pageInfo + // }); }); } }).catch(() => this.setState({ loading: false })); }; + getColumns = () => { + const { dataSource, pageInfo, countResult } = this.state; + const { payrollFilesStore: { employeeTableStore } } = this.props; + const columns = _.filter(toJS(employeeTableStore.columns), (item) => item.display === "true" && item.dataIndex !== "acctTimes"); + this.postMessageToChild({ + columns: _.map(columns, (it, idx) => ({ + ...it, + width: (it.dataIndex === "taxAgent" || it.dataIndex === "salarySob") ? 176 : it.oldWidth, + fixed: (idx === 1 || idx === 0) ? "left" : "", + ellipsis: true + })), dataSource, countResult, + showSum: true, pageInfo + }); + }; + render() { - const { location, taxAgentStore: { showOperateBtn, taxAgentOption } } = this.props; + const { + location, + taxAgentStore: { showOperateBtn, taxAgentOption }, + payrollFilesStore: { employeeTableStore } + } = this.props; const { salaryMonth, taxAgentId, loading } = this.state; const { query: { dept, name } } = location; const btns = [ @@ -112,11 +134,22 @@ class Index extends Component { this.setState({ taxAgentId: v }, () => this.statisticsEmployeeDetailList())}/> ]; + const dropMenuDatas = [ + { + key: "BTN_COLUMN", + icon: , + content: "显示列定制", + onClick: () => { + employeeTableStore.setColSetVisible(true); + employeeTableStore.tableColSet(true); + } + } + ]; return ( {name}{dept}} icon={} buttons={showOperateBtn ? btns : []} - iconBgcolor="#F14A2D" showDropIcon={false} + iconBgcolor="#F14A2D" showDropIcon={true} dropMenuDatas={dropMenuDatas} >
@@ -128,6 +161,12 @@ class Index extends Component { />
+
); } diff --git a/pc4mobx/hrmSalary/stores/payrollFiles.js b/pc4mobx/hrmSalary/stores/payrollFiles.js index 4fc882cb..d3e7094e 100644 --- a/pc4mobx/hrmSalary/stores/payrollFiles.js +++ b/pc4mobx/hrmSalary/stores/payrollFiles.js @@ -1,12 +1,15 @@ import { action, observable } from "mobx"; import { WeaTableNew } from "comsMobx"; import * as API from "../apis/payrollFiles"; +import { statisticsEmployeeDetailList } from "../apis/statistics"; const { TableStore } = WeaTableNew; export class PayrollFilesStore { @observable tableStore = new TableStore(); - @action("列表查询") + @observable employeeTableStore = new TableStore(); + + @action("薪资档案-列表查询") queryList = (payload = {}, searchItemsValue = {}, url = "") => { return new Promise((resolve, reject) => { const { departmentIds, positionIds, subcompanyIds, ...extra } = searchItemsValue; @@ -28,4 +31,21 @@ export class PayrollFilesStore { }); }); }; + + @action("薪酬统计列表员工详情-列表查询") + statisticsEmployeeDetailList = (payload) => { + return new Promise((resolve, reject) => { + statisticsEmployeeDetailList(payload).then(res => { + const { data, status } = res; + if (status) { + const { dataKey } = data; + const { datas } = dataKey; + this.employeeTableStore.getDatas(datas); // table 请求数据 + } + resolve(res); + }).catch(() => { + reject(); + }); + }); + }; }