From 4dca3e3d7ddc8ba1cd88a9f868b57b07859785e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Mon, 19 Jun 2023 17:51:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A7=E5=93=81-=E5=B7=A5=E8=B5=84=E5=8D=95?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E5=88=97=E8=A1=A8=E9=A1=B5=E9=9D=A2=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/hrmSalary/pages/payroll/index.js | 21 +++- .../pages/payroll/templateSettingList.js | 117 ++++++++++++------ pc4mobx/hrmSalary/stores/payroll.js | 35 ++++-- 3 files changed, 128 insertions(+), 45 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/payroll/index.js b/pc4mobx/hrmSalary/pages/payroll/index.js index 960fbfa9..75fe7f6f 100644 --- a/pc4mobx/hrmSalary/pages/payroll/index.js +++ b/pc4mobx/hrmSalary/pages/payroll/index.js @@ -254,7 +254,15 @@ export default class Payroll extends React.Component { render() { const { payrollStore, taxAgentStore: { showOperateBtn } } = this.props; - const { loading, hasRight, templateStore, deletePayroll, templateBaseData } = payrollStore; + const { + loading, + hasRight, + templateTableSelectedRowKeys, + setTemplateTableSelectedRowKeys, + deletePayroll, + templateBaseData, + setTemplateTablePageInfo + } = payrollStore; const { currentStep, selectedTab, templateSearchValue, templateSelect, startDate, endDate } = this.state; if (!hasRight && !loading) { // 无权限处理 return renderLoading(); @@ -317,7 +325,7 @@ export default class Payroll extends React.Component { style={{ marginLeft: 10 }} type="ghost" onClick={() => { - const selectedRowKeys = toJS(templateStore.selectedRowKeys); + const selectedRowKeys = toJS(templateTableSelectedRowKeys); if (!selectedRowKeys.length) { message.info("未选中任何数据!"); return; @@ -391,7 +399,14 @@ export default class Payroll extends React.Component { topTab={topTab} searchOperationItem={renderRightOperation()} onChange={(v) => { - this.setState({ selectedKey: v, stepSlideVisible: false, editSlideVisible: false }); + this.setState({ + selectedKey: v, + stepSlideVisible: false, + editSlideVisible: false + }, () => { + setTemplateTablePageInfo({ current: 1 }); + setTemplateTableSelectedRowKeys([]); + }); }} />
diff --git a/pc4mobx/hrmSalary/pages/payroll/templateSettingList.js b/pc4mobx/hrmSalary/pages/payroll/templateSettingList.js index 1711e103..05d75b27 100644 --- a/pc4mobx/hrmSalary/pages/payroll/templateSettingList.js +++ b/pc4mobx/hrmSalary/pages/payroll/templateSettingList.js @@ -1,10 +1,10 @@ import React from "react"; import { inject, observer } from "mobx-react"; +import { WeaLocaleProvider, WeaTable } from "ecCom"; +import { toJS } from "mobx"; import { Radio, Spin } from "antd"; -import { WeaTableNew } from "comsMobx"; - -const WeaTable = WeaTableNew.WeaTable; +const getLabel = WeaLocaleProvider.getLabel; @inject("payrollStore") @observer export default class TemplateSettingList extends React.Component { @@ -15,23 +15,23 @@ export default class TemplateSettingList extends React.Component { } // 编辑操作按钮 - onEdit(record) { + onEdit = (record) => { this.props.onEdit && this.props.onEdit(record); - } + }; // 复制操作按钮 - onCopy(record) { + onCopy = (record) => { this.props.onCopy && this.props.onCopy(record); - } + }; // 删除操作按钮 - onDelete(record) { + onDelete = (record) => { this.props.onDelete && this.props.onDelete(record); - } + }; // 操作按钮 - onOperatesClick = (record, index, operate, flag) => { - switch (operate.index.toString()) { + onOperatesClick = (record, operate) => { + switch (operate) { case "0": // 编辑 this.onEdit(record); break; @@ -45,21 +45,22 @@ export default class TemplateSettingList extends React.Component { }; // 默认使用配置 - recordItemChange(record) { + recordItemChange = (record) => { const { payrollStore } = this.props; const { changePayrollDefaultUse, getPayrollTemplateList } = payrollStore; changePayrollDefaultUse(record.id).then(() => { getPayrollTemplateList(); }); - } + }; // 增加编辑功能,重写columns绑定事件 - getColumns = columns => { - const { showOperateBtn } = this.props; - let newColumns = ""; - newColumns = columns.map(column => { + getColumns = () => { + const { showOperateBtn, payrollStore } = this.props; + const { templateTableColumns: columns } = payrollStore; + let newColumns = []; + newColumns = _.filter(toJS(columns), item => item.dataIndex !== "id").map(column => { let newColumn = column; - newColumn.render = (text, record, index) => { + newColumn.render = (text, record) => { //前端元素转义 let valueSpan = record[newColumn.dataIndex + "span"] !== undefined @@ -70,10 +71,8 @@ export default class TemplateSettingList extends React.Component { return ( { - this.recordItemChange(record); - }} + checked={record.useType === "1"} + onChange={() => this.recordItemChange(record)} /> ); default: @@ -82,25 +81,73 @@ export default class TemplateSettingList extends React.Component { }; return newColumn; }); - return newColumns; + return [ + ...newColumns, + { + dataIndex: "operate", + title: getLabel(30585, "操作"), + width: 150, + render: (_, record) => { + return + this.onOperatesClick(record, "0")}>{getLabel(501169, "编辑")} + this.onOperatesClick(record, "1")}>{getLabel(77, "复制")} + this.onOperatesClick(record, "2")}>{getLabel(535052, "删除")} + ; + } + } + ]; }; render() { const { payrollStore } = this.props; - const { templateStore, loading } = payrollStore; + const { + templateTableDataSource, + loading, + templateTablePageInfo, + setTemplateTablePageInfo, + getPayrollTemplateList, + templateTableSelectedRowKeys, + setTemplateTableSelectedRowKeys + } = payrollStore; + const pagination = { + ...templateTablePageInfo, + showTotal: total => `${getLabel(18609, "共")} ${total} ${getLabel(18256, "条")}`, + showQuickJumper: true, + showSizeChanger: true, + pageSizeOptions: ["10", "20", "50", "100"], + onShowSizeChange: (current, pageSize) => { + setTemplateTablePageInfo({ ...templateTablePageInfo, current, pageSize }, () => { + getPayrollTemplateList(); + }); + }, + onChange: current => { + setTemplateTablePageInfo({ ...templateTablePageInfo, current }, () => { + getPayrollTemplateList(); + }); + } + }; + const rowSelection = { + selectedRowKeys: toJS(templateTableSelectedRowKeys), + onChange: selectedRowKeys => setTemplateTableSelectedRowKeys(selectedRowKeys) + }; return (
- {loading - ?
- -
- : } + { + loading + ?
+ +
+ : + }
); } diff --git a/pc4mobx/hrmSalary/stores/payroll.js b/pc4mobx/hrmSalary/stores/payroll.js index d6d3be81..7a2e18d7 100644 --- a/pc4mobx/hrmSalary/stores/payroll.js +++ b/pc4mobx/hrmSalary/stores/payroll.js @@ -55,6 +55,14 @@ export class payrollStore { @observable canWidthdrawColumns = []; // 可以撤回的列表列名 @observable canWithdrawPageInfo = {}; // 可以撤回列表分页对象 + // **** 工资单模板 **** + @observable templateTableColumns = []; // 工资单模板columns + @observable templateTableDataSource = []; // 工资单模板dataSource + @observable templateTablePageInfo = { + current: 1, pageSize: 10, total: 0 + }; // 工资单模板pageInfo + @observable templateTableSelectedRowKeys = []; // 工资单模板复选框 + @action setReplenishSalaryTemplateSalaryItemSet = replenishSalaryTemplateSalaryItemSet => (this.replenishSalaryTemplateSalaryItemSet = replenishSalaryTemplateSalaryItemSet); @@ -80,6 +88,14 @@ export class payrollStore { @action setSalaryItemSet = salaryItemSet => (this.salaryItemSet = salaryItemSet); + @action("工资单模板分页信息修改") + setTemplateTablePageInfo = (pageInfo, callback) => { + this.templateTablePageInfo = { ...this.templateTablePageInfo, ...pageInfo }; + callback && callback(); + }; + @action("工资单模板复选框选择") + setTemplateTableSelectedRowKeys = (selectedRowKeys) => this.templateTableSelectedRowKeys = selectedRowKeys; + // 初始化操作 @action doInit = () => { @@ -136,9 +152,15 @@ export class payrollStore { @action getPayrollTemplateList = (params = {}) => { this.loading = true; - API.getPayrollTemplateList(params).then(res => { + API.getPayrollTemplateList({ ...params, ...this.templateTablePageInfo }).then(res => { if (res.status) { - this.templateStore.getDatas(res.data.datas); + this.templateTableColumns = res.data.columns; + this.templateTableDataSource = res.data.list; + this.setTemplateTablePageInfo({ + current: res.data.pageNum, + pageSize: res.data.pageSize, + total: res.data.total + }); } else { message.error(res.errormsg || "获取失败"); } @@ -149,9 +171,7 @@ export class payrollStore { // 工资单模板-获取工资单模板基础设置表单 @action getPayrollBaseForm = (id = "") => { - let params = { - id - }; + let params = { id }; return new Promise((resolve, reject) => { API.getPayrollBaseForm(params).then(res => { if (res.status) { @@ -354,6 +374,7 @@ export class payrollStore { API.deletePayroll(ids).then(res => { if (res.status) { message.success("删除成功"); + this.setTemplateTableSelectedRowKeys([]); this.getPayrollTemplateList(); } else { message.error(res.errormsg || "删除失败"); @@ -525,7 +546,7 @@ export class payrollStore { reject(); } }).catch(() => { - this.btnLoading = false + this.btnLoading = false; // WeaLoadingGlobal.end(); // WeaLoadingGlobal.destroy(); }); @@ -553,7 +574,7 @@ export class payrollStore { reject(); } }).catch(() => { - this.btnLoading = false + this.btnLoading = false; WeaLoadingGlobal.end(); WeaLoadingGlobal.destroy(); });