From 1cbb7ce9436fc3e7c86b2ea22768f4cdbdb88024 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Tue, 15 Apr 2025 13:49:09 +0800 Subject: [PATCH] =?UTF-8?q?release/3.0.1.2504.01-=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/hrmSalary/apis/datapush.js | 8 ++ .../pushRecord/createPushRecordDialog.js | 134 ++++++++++++++++++ .../datapush/components/pushRecord/index.js | 10 +- .../hrmSalary/pages/datapush/conditions.js | 40 ++++++ pc4mobx/hrmSalary/pages/datapush/index.js | 59 +++++++- pc4mobx/hrmSalary/pages/datapush/index.less | 25 ++++ 6 files changed, 267 insertions(+), 9 deletions(-) create mode 100644 pc4mobx/hrmSalary/pages/datapush/components/pushRecord/createPushRecordDialog.js diff --git a/pc4mobx/hrmSalary/apis/datapush.js b/pc4mobx/hrmSalary/apis/datapush.js index 27d73608..e348875c 100644 --- a/pc4mobx/hrmSalary/apis/datapush.js +++ b/pc4mobx/hrmSalary/apis/datapush.js @@ -32,3 +32,11 @@ export const getPushRecordList = (params) => { export const getPushRecordDetail = (params) => { return postFetch("/api/bs/hrmsalary/push/record/detail", params); }; +// 推送记录-推送 +export const pushRecords = (params) => { + return postFetch("/api/bs/hrmsalary/push/record/push", params); +}; +// 推送记录-撤回 +export const withdrawRecords = (params) => { + return postFetch("/api/bs/hrmsalary/push/record/withdraw", params); +}; diff --git a/pc4mobx/hrmSalary/pages/datapush/components/pushRecord/createPushRecordDialog.js b/pc4mobx/hrmSalary/pages/datapush/components/pushRecord/createPushRecordDialog.js new file mode 100644 index 00000000..b6de8562 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/datapush/components/pushRecord/createPushRecordDialog.js @@ -0,0 +1,134 @@ +/* + * 数据推送记录 + * 创建 + * @Author: 黎永顺 + * @Date: 2025/4/15 + * @Wechat: + * @Email: 971387674@qq.com + * @description: +*/ +import React, { Component } from "react"; +import { WeaDialog, WeaFormItem, WeaLocaleProvider, WeaTable, WeaTools } from "ecCom"; +import { WeaForm, WeaSwitch } from "comsMobx"; +import { Button } from "antd"; +import moment from "moment"; +import FormInfo from "../../../../components/FormInfo"; +import { RQconditions } from "../../conditions"; +import { MonthRangePicker } from "../../../reportView/components/statisticalMicroSettingsSlide"; +import { getSalaryAcctList } from "../../../../apis/calculate"; + +const form = new WeaForm(); +const getKey = WeaTools.getKey; +const getLabel = WeaLocaleProvider.getLabel; + +class CreatePushRecordDialog extends Component { + constructor(props) { + super(props); + this.state = { + dataSource: [], columns: [], loading: false, pageInfo: { current: 1, pageSize: 10, total: 0 }, + conditions: [] + }; + } + + componentWillReceiveProps(nextProps, nextContext) { + if (nextProps.visible !== this.props.visible && nextProps.visible) { + this.setState({ + conditions: _.map(RQconditions, item => ({ + ...item, + items: _.map(item.items, o => { + o = { ...o, label: getLabel(o.lanId, o.label) }; + if (getKey(o) === "startMonthStr") { + return { + ...o, value: moment(new Date()).subtract(1, "year").startOf("year").format("YYYY-MM") + }; + } else if (getKey(o) === "endMonthStr") { + return { + ...o, value: moment(new Date()).endOf("year").format("YYYY-MM") + }; + } + return o; + }) + })) + }, () => { + form.initFormFields(this.state.conditions); + this.getSalaryAcctList(); + }); + } else { + form.resetForm(); + } + } + + getSalaryAcctList = () => { + const { pageInfo } = this.state, payload = { ...pageInfo, ...form.getFormParams() }; + this.setState({ loading: true }); + getSalaryAcctList(payload).then(({ status, data }) => { + this.setState({ loading: false }); + if (status) { + const { columns, list: dataSource, pageNum: current, pageSize, total } = data; + this.setState({ + dataSource, pageInfo: { current, pageSize, total }, + columns: _.filter(columns, it => (it.dataIndex !== "backCalcStatus" && it.dataIndex !== "acctTimes" && it.dataIndex !== "operate")) + }); + } + }).catch(() => this.setState({ loading: false })); + }; + save = (record) => { + console.log(record); + }; + + render() { + const { loading, conditions, dataSource, columns, pageInfo } = 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.getSalaryAcctList()); + }, + onChange: current => { + this.setState({ pageInfo: { ...pageInfo, current } }, () => this.getSalaryAcctList()); + } + }; + const itemRender = { + name: (field, textAreaProps, form, formParams) => { + return ( this.getSalaryAcctList(), 500)}/>); + }, + startMonthStr: () => null, + endMonthStr: () => null + }; + const childrenComponents = { + startMonthStr: () => { + const { startMonthStr, endMonthStr } = form.getFormParams(); + const coms = [], { fieldMap } = form; + const dateRange = [startMonthStr, endMonthStr]; + coms.push( + {fieldMap["startMonthStr"].label}} labelCol={{ span: 6 }} + wrapperCol={{ span: 14 }}> + { + const [v1, v2] = v; + form.updateFields({ startMonthStr: v1, endMonthStr: v2 }); + this.getSalaryAcctList(); + }}/> + + ); + return [{ com: coms, col: 2 }]; + } + }; + console.log(this.refs.recordRef); + return ({getLabel(111, "取消")} + ]}> + + + ); + } +} + +export default CreatePushRecordDialog; diff --git a/pc4mobx/hrmSalary/pages/datapush/components/pushRecord/index.js b/pc4mobx/hrmSalary/pages/datapush/components/pushRecord/index.js index 7bcb8bd5..08287119 100644 --- a/pc4mobx/hrmSalary/pages/datapush/components/pushRecord/index.js +++ b/pc4mobx/hrmSalary/pages/datapush/components/pushRecord/index.js @@ -27,7 +27,7 @@ class Index extends Component { } componentWillUnmount() { - this.setState({ selectedRowKeys: [] }); + this.setState({ selectedRowKeys: [] }, () => this.props.onChange("rowKey", [])); } componentWillReceiveProps(nextProps, nextContext) { @@ -49,9 +49,9 @@ class Index extends Component { columns: [...columns, { title: getLabel(111, "操作"), dataIndex: "opts", width: 140, render: (__, record) => ( _.debounce(this.props.onChange("push", record), 300)}>{getLabel(111, "推送")} + onClick={_.debounce(() => this.props.onChange("push", record), 300)}>{getLabel(111, "推送")} this.props.onChange("withdraw", record)}>{getLabel(111, "撤回")} + onClick={_.debounce(() => this.props.onChange("withdraw", record), 300)}>{getLabel(111, "撤回")} this.props.onChange("view", record)}>{getLabel(111, "查看详情")} ) @@ -78,9 +78,9 @@ class Index extends Component { }; const rowSelection = { selectedRowKeys, - onChange: v => this.setState({ selectedRowKeys: v }) + onChange: v => this.setState({ selectedRowKeys: v }, () => this.props.onChange("rowKey", v)) }; - return (); } } diff --git a/pc4mobx/hrmSalary/pages/datapush/conditions.js b/pc4mobx/hrmSalary/pages/datapush/conditions.js index 04401305..c4f12a09 100644 --- a/pc4mobx/hrmSalary/pages/datapush/conditions.js +++ b/pc4mobx/hrmSalary/pages/datapush/conditions.js @@ -145,3 +145,43 @@ export const PDConditions = [ defaultshow: true } ];// 推送详细配置表单 + + +export const RQconditions = [ + { + items: [ + { + conditionType: "MONTHPICKER", + domkey: ["startMonthStr"], + fieldcol: 14, + label: "薪资所属月", + lanId: 111, + labelcol: 6, + value: "", + viewAttr: 2 + }, + { + conditionType: "MONTHPICKER", + domkey: ["endMonthStr"], + fieldcol: 14, + label: "薪资所属月", + lanId: 111, + labelcol: 6, + value: "", + viewAttr: 2 + }, + { + conditionType: "INPUT", + domkey: ["name"], + fieldcol: 14, + label: "薪资账套", + lanId: 111, + labelcol: 6, + value: "", + viewAttr: 2 + } + ], + title: "", + defaultshow: true + } +];// 推送记录查询表单 diff --git a/pc4mobx/hrmSalary/pages/datapush/index.js b/pc4mobx/hrmSalary/pages/datapush/index.js index 17f23fab..49d1d69d 100644 --- a/pc4mobx/hrmSalary/pages/datapush/index.js +++ b/pc4mobx/hrmSalary/pages/datapush/index.js @@ -18,6 +18,7 @@ import PushDetailDialog from "./components/pushRecord/pushDetailDialog"; import { Button, message, Modal } from "antd"; import cs from "classnames"; import "./index.less"; +import CreatePushRecordDialog from "./components/pushRecord/createPushRecordDialog"; const getLabel = WeaLocaleProvider.getLabel; @@ -27,7 +28,8 @@ class Index extends Component { constructor(props) { super(props); this.state = { - selectedKey: "pushRecord", isQuery: false, query: { name: "" }, + selectedKey: "pushRecord", isQuery: false, query: { name: "" }, selectedRowKeys: [], + loading: { push: false, withdraw: false }, visible: false, DPDialog: { visible: false, title: "", detail: {} }, //数据推送弹框 pushDetailDialog: { visible: false, recordId: "" } //数据推送记录查看推送详情弹框 }; @@ -60,23 +62,71 @@ class Index extends Component { case "view": this.setState({ pushDetailDialog: { visible: true, recordId: detail.id } }); break; + case "rowKey": + this.setState({ selectedRowKeys: detail }); + break; + case "addRecord": + this.setState({ visible: true }); + break; case "push": - console.log(detail) + case "batchpush": + if (type === "batchpush" && _.isEmpty(this.state.selectedRowKeys)) { + message.warning(getLabel(111, "请选择数据")); + return; + } + this.pushRecords(type === "push" ? [detail.id] : this.state.selectedRowKeys); + break; + case "withdraw": + case "batchwithdraw": + if (type === "batchwithdraw" && _.isEmpty(this.state.selectedRowKeys)) { + message.warning(getLabel(111, "请选择数据")); + return; + } + this.withdrawRecords(type === "withdraw" ? [detail.id] : this.state.selectedRowKeys); break; default: break; } }; + pushRecords = (ids) => { + this.setState({ loading: { ...this.state.loading, push: true } }); + API.pushRecords({ ids }).then(({ status, errormsg }) => { + this.setState({ loading: { ...this.state.loading, push: false } }); + if (status) { + this.handleAdvanceSearch(); + message.success(getLabel(111, "推送成功!")); + } else { + message.error(errormsg); + } + }); + }; + withdrawRecords = (ids) => { + this.setState({ loading: { ...this.state.loading, withdraw: true } }); + API.withdrawRecords({ ids }).then(({ status, errormsg }) => { + this.setState({ loading: { ...this.state.loading, withdraw: false } }); + if (status) { + this.handleAdvanceSearch(); + message.success(getLabel(111, "撤回成功!")); + } else { + message.error(errormsg); + } + }); + }; render() { - const { selectedKey, DPDialog, isQuery, query, pushDetailDialog } = this.state; + const { selectedKey, DPDialog, isQuery, query, pushDetailDialog, loading, visible } = this.state; const { taxAgentStore: { PageAndOptAuth } } = this.props; const showOperateBtn = PageAndOptAuth.opts.includes("admin"); const tabs = [ { title: getLabel(111, "推送记录"), key: "pushRecord", showDropIcon: false, dropMenuDatas: [], buttons: showOperateBtn ? [ - , + , + , + , this.setState({ query: { ...query, name: v } })}/> ] : [ this.setState({ pushDetailDialog: { ...pushDetailDialog, visible: false } })}/> + this.setState({ visible: false })}/> ); } diff --git a/pc4mobx/hrmSalary/pages/datapush/index.less b/pc4mobx/hrmSalary/pages/datapush/index.less index 316932b9..71919160 100644 --- a/pc4mobx/hrmSalary/pages/datapush/index.less +++ b/pc4mobx/hrmSalary/pages/datapush/index.less @@ -167,3 +167,28 @@ } } } + +.record-dialog { + .wea-dialog-body { + background: #f6f6f6; + padding: 8px 16px; + + .record-form { + background: #FFF; + margin-bottom: 8px; + + .wea-search-group, .wea-content { + padding: 0; + } + + .rangePickerBox { + display: flex; + align-items: center; + } + } + + .wea-new-table { + background: #FFF; + } + } +}