From 7fcd9afbed04431087c6790d0184675a069d1ccb Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Wed, 26 Mar 2025 15:46:50 +0800 Subject: [PATCH] =?UTF-8?q?release/2.19.1.2501.01-=E4=B8=AA=E7=A8=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/hrmSalary/apis/declare.js | 13 ++ .../components/deductionListConfirmDialog.js | 112 ++++++++++++++++++ .../deductionListConfirmEmployeeDialog.js | 112 ++++++++++++++++++ .../pages/employeedeclareDetail/index.js | 22 +++- .../pages/employeedeclareDetail/index.less | 19 +++ 5 files changed, 272 insertions(+), 6 deletions(-) create mode 100644 pc4mobx/hrmSalary/pages/employeedeclareDetail/components/deductionListConfirmDialog.js create mode 100644 pc4mobx/hrmSalary/pages/employeedeclareDetail/components/deductionListConfirmEmployeeDialog.js diff --git a/pc4mobx/hrmSalary/apis/declare.js b/pc4mobx/hrmSalary/apis/declare.js index 746bcf99..473621c9 100644 --- a/pc4mobx/hrmSalary/apis/declare.js +++ b/pc4mobx/hrmSalary/apis/declare.js @@ -283,3 +283,16 @@ export const getTaxdeclarationContrastList = (params) => { export const exportContrast = params => { return postExportFetch("/api/bs/hrmsalary/taxdeclaration/exportContrast", params); }; + +//扣除名单确认-人员列表 +export const getDeductionAmountList = (params) => { + return postFetch("/api/bs/hrmsalary/deductionAmount/list", params); +}; +//扣除名单确认-增加人员 +export const addDeductionAmount = (params) => { + return postFetch("/api/bs/hrmsalary/deductionAmount/add", params); +}; +//扣除名单确认-删除人员 +export const deleteDeductionAmount = (params) => { + return postFetch("/api/bs/hrmsalary/deductionAmount/delete", params); +}; diff --git a/pc4mobx/hrmSalary/pages/employeedeclareDetail/components/deductionListConfirmDialog.js b/pc4mobx/hrmSalary/pages/employeedeclareDetail/components/deductionListConfirmDialog.js new file mode 100644 index 00000000..241daac2 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/employeedeclareDetail/components/deductionListConfirmDialog.js @@ -0,0 +1,112 @@ +/* + * 扣除名单确认 + * @Author: 黎永顺 + * @Date: 2025/3/26 + * @Wechat: + * @Email: 971387674@qq.com + * @description: +*/ +import React, { Component } from "react"; +import { WeaButtonIcon, WeaDialog, WeaLocaleProvider, WeaTable, WeaTools } from "ecCom"; +import { message, Modal } from "antd"; +import DeductionListConfirmEmployeeDialog from "./deductionListConfirmEmployeeDialog"; +import * as API from "../../../apis/declare"; + +const { getLabel } = WeaLocaleProvider, { getUrlParams } = WeaTools; + +class DeductionListConfirmDialog extends Component { + constructor(props) { + super(props); + this.state = { + pageInfo: { current: 1, pageSize: 10, total: 0 }, loading: false, columns: [], dataSource: [], visible: false, + selectedRowKeys: [] + }; + } + + componentWillReceiveProps(nextProps, nextContext) { + if (nextProps.visible !== this.props.visible && nextProps.visible) this.getDeductionAmountList(nextProps); + if (nextProps.visible !== this.props.visible && !nextProps.visible) this.setState({ + pageInfo: { current: 1, pageSize: 10, total: 0 }, loading: false, dataSource: [], selectedRowKeys: [] + }); + } + + getDeductionAmountList = (props) => { + const { pageInfo } = this.state, { id: taxAgentId } = getUrlParams(), { year } = props || this.props; + const payload = { ...pageInfo, taxAgentId, year }; + this.setState({ loading: true }); + API.getDeductionAmountList(payload).then(({ status, data }) => { + this.setState({ loading: false }); + if (status) { + const { columns, list: dataSource, pageNum: current, pageSize, total } = data; + this.setState({ + columns, dataSource, + pageInfo: { ...pageInfo, current, pageSize, total } + }); + } + }).catch(() => this.setState({ loading: false })); + }; + handleDelete = () => { + Modal.confirm({ + title: getLabel(111, "信息确认"), + content: getLabel(111, "确认删除本条数据吗?"), + onOk: () => { + API.deleteDeductionAmount({ ids: this.state.selectedRowKeys }).then(({ status, errormsg }) => { + if (status) { + message.success(getLabel(111, "操作成功")); + this.getDeductionAmountList(); + } else { + message.error(errormsg); + } + }); + } + }); + }; + + render() { + const { loading, columns, dataSource, pageInfo, visible, selectedRowKeys } = this.state; + const pagination = { + ...pageInfo, + showTotal: total => `${getLabel(18609, "共")} ${total} ${getLabel(18256, "条")}`, + showQuickJumper: true, + showSizeChanger: true, + pageSizeOptions: ["10", "20", "50", "100"], + onShowSizeChange: (current, pageSize) => { + this.setState({ + pageInfo: { ...pageInfo, current, pageSize } + }, () => this.getDeductionAmountList()); + }, + onChange: current => { + this.setState({ + pageInfo: { ...pageInfo, current } + }, () => this.getDeductionAmountList()); + } + }; + const rowSelection = { + selectedRowKeys, onChange: v => this.setState({ selectedRowKeys: v }) + }; + const height = this.refs.employeeRef ? this.refs.employeeRef.state.height : 400; + return ( + +
+
+ this.setState({ visible: true })}/> + +
+ + this.setState({ visible: false }, () => callback && callback())}/> +
+
+ ); + } +} + +export default DeductionListConfirmDialog; diff --git a/pc4mobx/hrmSalary/pages/employeedeclareDetail/components/deductionListConfirmEmployeeDialog.js b/pc4mobx/hrmSalary/pages/employeedeclareDetail/components/deductionListConfirmEmployeeDialog.js new file mode 100644 index 00000000..66388df3 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/employeedeclareDetail/components/deductionListConfirmEmployeeDialog.js @@ -0,0 +1,112 @@ +/* + * 扣除名单确认 + * 人员添加列表 + * @Author: 黎永顺 + * @Date: 2025/3/26 + * @Wechat: + * @Email: 971387674@qq.com + * @description: +*/ +import React, { Component } from "react"; +import { WeaDialog, WeaLocaleProvider, WeaTable, WeaTools } from "ecCom"; +import { Button, message } from "antd"; +import * as API from "../../../apis/declare"; + +const { getLabel } = WeaLocaleProvider, { getUrlParams } = WeaTools; +const columns = [{ title: getLabel(111, "姓名"), dataIndex: "employeeName" }, { + title: getLabel(111, "分部"), + dataIndex: "subCompanyName" +}, { title: getLabel(111, "部门"), dataIndex: "departmentName" }, { + title: getLabel(111, "个税扣缴义务人"), + dataIndex: "taxAgentName" +}, { title: getLabel(111, "工号"), dataIndex: "jobNum" }, { title: getLabel(111, "手机号码"), dataIndex: "mobile" }]; + +class DeductionListConfirmEmployeeDialog extends Component { + constructor(props) { + super(props); + this.state = { + pageInfo: { current: 1, pageSize: 10, total: 0 }, loading: false, dataSource: [], selectedRowKeys: [], + saveloading: false + }; + } + + componentWillReceiveProps(nextProps, nextContext) { + if (nextProps.visible !== this.props.visible && nextProps.visible) this.employeedeclareList(nextProps); + if (nextProps.visible !== this.props.visible && !nextProps.visible) this.setState({ + pageInfo: { current: 1, pageSize: 10, total: 0 }, loading: false, dataSource: [], selectedRowKeys: [] + }); + } + + employeedeclareList = (props) => { + const { pageInfo } = this.state, { payload } = props || this.props; + this.setState({ loading: true }); + API.employeedeclareList({ ...payload, ...pageInfo }).then(({ status, data }) => { + this.setState({ loading: false }); + if (status) { + const { pageInfo: result } = data; + const { list: dataSource, pageNum: current, pageSize, total } = result; + this.setState({ dataSource, pageInfo: { ...pageInfo, current, pageSize, total } }); + } + }).catch(() => this.setState({ loading: false })); + }; + save = () => { + const { selectedRowKeys: employeeDeclareIds } = this.state, { id: taxAgentId } = getUrlParams(), { year } = this.props; + const payload = { taxAgentId, year, employeeDeclareIds }; + this.setState({ saveloading: true }); + API.addDeductionAmount(payload).then(({ status, errormsg }) => { + this.setState({ saveloading: false }); + if (status) { + message.success(getLabel(111, "操作成功")); + this.props.onCancel(this.props.onSuccess); + } else { + message.error(errormsg); + } + }); + }; + + render() { + const { loading, dataSource, pageInfo, selectedRowKeys, saveloading } = this.state; + const pagination = { + ...pageInfo, + showTotal: total => `${getLabel(18609, "共")} ${total} ${getLabel(18256, "条")}`, + showQuickJumper: true, + showSizeChanger: true, + pageSizeOptions: ["10", "20", "50", "100"], + onShowSizeChange: (current, pageSize) => { + this.setState({ + pageInfo: { ...pageInfo, current, pageSize } + }, () => this.employeedeclareList()); + }, + onChange: current => { + this.setState({ + pageInfo: { ...pageInfo, current } + }, () => this.employeedeclareList()); + } + }; + const rowSelection = { + selectedRowKeys, onChange: v => this.setState({ selectedRowKeys: v }) + }; + const height = this.refs.employeeRef ? this.refs.employeeRef.state.height : 400; + return ({getLabel(111, "确认")}, + ]} + style={{ + width: 1150, + height: 606.6, + minHeight: 200, + minWidth: 380, + maxHeight: "90%", + maxWidth: "90%", + overflow: "hidden", + transform: "translate(0px, 0px)" + }}> +
+ +
+
); + } +} + +export default DeductionListConfirmEmployeeDialog; diff --git a/pc4mobx/hrmSalary/pages/employeedeclareDetail/index.js b/pc4mobx/hrmSalary/pages/employeedeclareDetail/index.js index bfd6118f..e29cdcf3 100644 --- a/pc4mobx/hrmSalary/pages/employeedeclareDetail/index.js +++ b/pc4mobx/hrmSalary/pages/employeedeclareDetail/index.js @@ -12,6 +12,7 @@ import { Button, Dropdown, Menu, message, Modal, Spin } from "antd"; import BaseInfo from "./components/baseInfo"; import EmployeeDeclareDetailSchemaEditDialog from "./components/employeeDeclareDetailSchemaEditDialog"; import EmployeeDeclareDetailSchemaImportDialog from "./components/employeeDeclareDetailImportDialog"; +import DeductionListConfirmDialog from "./components/deductionListConfirmDialog"; import { commonEnumList } from "../../apis/payrollFiles"; import { employeedeclareDeclare, @@ -48,6 +49,7 @@ class Index extends Component { taxCycle: new Date(), pageInfo: { current: 1, pageSize: 10, total: 0 }, loading: { query: false, refresh: false, feedback: false, declare: false, exportLoading: false }, declareEditDialog: { visible: false, id: "", title: "" }, + confirmationDialog: { visible: false, payload: {} }, declareStatusList: [], employmentStatusList: [], employmentTypeList: [], adConditons: [], selectedRowKeys: [], exportPayload: {} @@ -165,7 +167,7 @@ class Index extends Component { */ queryEmployeeList = () => { const { employeeDeclareStore: { advanceForm: form } } = this.props; - const { pageInfo, declareStatus, taxCycle, selectedKey, selectedRowKeys } = this.state; + const { pageInfo, declareStatus, taxCycle, selectedKey, selectedRowKeys, confirmationDialog } = this.state; const { departmentIds, positionIds, ...formParams } = form.getFormParams(); const payload = { ...formParams, ...pageInfo, @@ -183,7 +185,8 @@ class Index extends Component { const { columns, list: dataSource, pageNum: current, pageSize, total } = result; this.baseInfoRef.getEmployeeDeclareInfo(); this.setState({ - pageInfo: { ...pageInfo, current, pageSize, total } + pageInfo: { ...pageInfo, current, pageSize, total }, + confirmationDialog: { ...confirmationDialog, payload } }, () => { const payload = { dataSource, selectedRowKeys, selectedKey, @@ -402,7 +405,7 @@ class Index extends Component { }); }; handleMenuClick = ({ key }) => { - const { selectedRowKeys } = this.state; + const { selectedRowKeys, confirmationDialog } = this.state; switch (key) { case "1": if (_.isEmpty(selectedRowKeys)) { @@ -411,6 +414,9 @@ class Index extends Component { } this.handleDeleteDeclare(selectedRowKeys); break; + case"5": + this.setState({ confirmationDialog: { ...confirmationDialog, visible: true } }); + break; default: break; } @@ -445,7 +451,7 @@ class Index extends Component { render() { const { selectedKey, showSearchAd, declareStatus, declareStatusList, taxCycle, declareEditDialog, loading, - pageInfo, adConditons, employmentTypeList, employmentStatusList + pageInfo, adConditons, employmentTypeList, employmentStatusList, confirmationDialog } = this.state; const { taxAgentStore: { showOperateBtn }, employeeDeclareStore: { advanceForm: form, declareForm } } = this.props; const menu = ( @@ -454,7 +460,7 @@ class Index extends Component { {/*{getLabel(111, "批量编辑")}*/} {/*{getLabel(81272, "导出全部")}*/} {/*{getLabel(543715, "导出所选")}*/} - {getLabel(111, "扣除名单确认")} + {/*{getLabel(111, "扣除名单确认")}*/} ); const buttons = [ @@ -473,7 +479,11 @@ class Index extends Component { loading={loading.refresh}>{getLabel(111, "刷新数据")},