From 0d0a7a93679c9ff00a957ee9da7e5df07111d930 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Fri, 22 Nov 2024 10:15:06 +0800 Subject: [PATCH] =?UTF-8?q?custom/=E6=B1=87=E9=80=9A=E5=BB=BA=E8=AE=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apis/custom-apis/huitong/index.js | 6 +- .../huitong/dataDetail/conditions.js | 23 +++- .../huitong/dataDetail/index.less | 4 + .../huitong/socialSecurityReport/index.js | 126 ++++++++++++++++++ pc4mobx/hrmSalary/pages/custom-pages/index.js | 4 +- 5 files changed, 160 insertions(+), 3 deletions(-) create mode 100644 pc4mobx/hrmSalary/pages/custom-pages/huitong/socialSecurityReport/index.js diff --git a/pc4mobx/hrmSalary/apis/custom-apis/huitong/index.js b/pc4mobx/hrmSalary/apis/custom-apis/huitong/index.js index 65576a1c..813d57a5 100644 --- a/pc4mobx/hrmSalary/apis/custom-apis/huitong/index.js +++ b/pc4mobx/hrmSalary/apis/custom-apis/huitong/index.js @@ -1,4 +1,4 @@ -import { postFetch, postExportFetch } from "../../../util/request"; +import { postExportFetch, postFetch } from "../../../util/request"; //汇通建设-薪酬送审数据穿透(分页) export const getXcssDataDetail = params => { @@ -16,3 +16,7 @@ export const exportXcssDataDetail = (params) => { export const exportXczfsqDataDetail = (params) => { return postExportFetch("/api/bs/hrmsalary/salaryacct/htjs/exportXczfsqDataDetail", params); }; +// 汇通建设-社保福利台账报表 +export const getHTCommonListReport = (params) => { + return postFetch("/api/bs/hrmsalary/siaccount/detail/htCommonListReport", params); +}; diff --git a/pc4mobx/hrmSalary/pages/custom-pages/huitong/dataDetail/conditions.js b/pc4mobx/hrmSalary/pages/custom-pages/huitong/dataDetail/conditions.js index c36d75df..b796b86e 100644 --- a/pc4mobx/hrmSalary/pages/custom-pages/huitong/dataDetail/conditions.js +++ b/pc4mobx/hrmSalary/pages/custom-pages/huitong/dataDetail/conditions.js @@ -1,3 +1,5 @@ +import moment from "moment"; + export const htconditions = [ { items: [ @@ -40,9 +42,28 @@ export const htconditions = [ lanId: 27511, labelcol: 8, viewAttr: 2 - }, + } ], defaultshow: true, title: "" } ]; +export const htReportConditions = [ + { + items: [ + { + conditionType: "MONTHPICKER", + domkey: ["billMonth"], + fieldcol: 16, + label: "账单月份", + lanId: 111, + labelcol: 8, + value: moment(new Date()).format("YYYY-MM"), + viewAttr: 2 + } + ], + defaultshow: true, + title: "" + } +]; + diff --git a/pc4mobx/hrmSalary/pages/custom-pages/huitong/dataDetail/index.less b/pc4mobx/hrmSalary/pages/custom-pages/huitong/dataDetail/index.less index 45ebad16..ee43e908 100644 --- a/pc4mobx/hrmSalary/pages/custom-pages/huitong/dataDetail/index.less +++ b/pc4mobx/hrmSalary/pages/custom-pages/huitong/dataDetail/index.less @@ -3,6 +3,8 @@ height: 100%; padding: 8px 16px 0 16px; background: #F6F6F6; + display: flex; + flex-direction: column; .ht_query { display: flex; @@ -25,6 +27,8 @@ } .custom_huitong_list { + flex: 1; + .ant-spin-nested-loading, .ant-spin-container { height: 100%; } diff --git a/pc4mobx/hrmSalary/pages/custom-pages/huitong/socialSecurityReport/index.js b/pc4mobx/hrmSalary/pages/custom-pages/huitong/socialSecurityReport/index.js new file mode 100644 index 00000000..4aafbbcf --- /dev/null +++ b/pc4mobx/hrmSalary/pages/custom-pages/huitong/socialSecurityReport/index.js @@ -0,0 +1,126 @@ +/* + * 汇通建设二开 + * 社保福利台账报表 + * @Author: 黎永顺 + * @Date: 2024/11/22 + * @Wechat: + * @Email: 971387674@qq.com + * @description: +*/ +import React, { Component } from "react"; +import { inject, observer } from "mobx-react"; +import { WeaLocaleProvider, WeaTop } from "ecCom"; +import { Button, Spin } from "antd"; +import { getSearchs } from "../../../../util"; +import * as API from "../../../../apis/custom-apis/huitong"; +import { htReportConditions } from "../dataDetail/conditions"; + +const getLabel = WeaLocaleProvider.getLabel; + +@inject("HTStore") +@observer +class Index extends Component { + constructor(props) { + super(props); + this.state = { + pageInfo: { current: 1, pageSize: 10, total: 0 }, loading: false, + dataSource: [], columns: [], conditions: [] + }; + } + + componentDidMount() { + this.setState({ + conditions: _.map(htReportConditions, item => ({ + ...item, items: _.map(item.items, o => ({ ...o, label: getLabel(o.lanId, o.label) })) + })) + }, () => { + const { HTStore: { queryForm } } = this.props, { conditions } = this.state; + queryForm.initFormFields(conditions); + }); + window.addEventListener("message", this.handleReceive, false); + } + + componentWillUnmount() { + window.removeEventListener("message", this.handleReceive, false); + } + + handleReceive = ({ data }) => { + const { pageInfo } = this.state; + const { type, payload: { id, params } = {} } = data; + if (type === "init") { + this.getHTCommonListReport(); + } else if (type === "turn") { + switch (id) { + case "PAGEINFO": + this.setState({ pageInfo: { ...pageInfo, ...params } }, () => this.getHTCommonListReport()); + break; + default: + break; + } + } + }; + postMessageToChild = (payload = {}) => { + const i18n = { + "共": getLabel(18609, "共"), "条": getLabel(18256, "条"), + "总计": getLabel(523, "总计") + }; + const childFrameObj = document.getElementById("unitTable"); + childFrameObj && childFrameObj.contentWindow.postMessage(JSON.stringify({ ...payload, i18n }), "*"); + }; + getHTCommonListReport = () => { + const { HTStore: { queryForm } } = this.props, { pageInfo } = this.state; + const payload = { ...pageInfo, ...queryForm.getFormParams() }; + this.setState({ loading: true }); + API.getHTCommonListReport(payload).then(({ status, data }) => { + this.setState({ loading: false }); + if (status) { + const { columns, pageInfo: result } = data; + const { list: dataSource, pageNum: current, pageSize, total } = result; + this.setState({ + pageInfo: { ...pageInfo, current, pageSize, total }, dataSource, + columns: _.map(columns, o => ({ title: o.text, dataIndex: o.column, width: o.width, ellipsis: true })) + }, () => this.postMessageToChild({ + scrollHeight: 108, dataSource: this.state.dataSource, columns: this.state.columns, + pageInfo: this.state.pageInfo, unitTableType: "999" + })); + } + }).catch(() => this.setState({ loading: false })); + }; + handleExport = () => { + }; + + render() { + const { HTStore: { queryForm } } = this.props, { conditions, pageInfo, loading } = this.state; + return (} showDropIcon={false} iconBgcolor="#F14A2D" + buttons={[]}> +
+
+ { + getSearchs(queryForm, conditions, 2, false, () => { + if (!this.handleDebounce) { + this.handleDebounce = _.debounce(() => { + this.setState({ pageInfo: { ...pageInfo, current: 1 } }, () => this.getHTCommonListReport()); + this.handleDebounce = null; + }, 500); + } + this.handleDebounce(); + }) + } +
+
+ +