diff --git a/pc4mobx/hrmSalary/apis/statistics.js b/pc4mobx/hrmSalary/apis/statistics.js
index 71166256..a4d16bbc 100644
--- a/pc4mobx/hrmSalary/apis/statistics.js
+++ b/pc4mobx/hrmSalary/apis/statistics.js
@@ -150,7 +150,7 @@ export const getPageListTemplatelist = (params) => {
export const changePageListTemplate = (params) => {
return postFetch("/api/bs/hrmsalary/common/pageList/template/change", params);
};
-//薪酬统计报表-重置自定义列
-export const resetPageListSetting = (params) => {
- return postFetch("/api/bs/hrmsalary/common/pageList/reset/setting", params);
+//薪酬统计报表-删除模板
+export const deleteTemplatePageList = (params) => {
+ return postFetch("/api/bs/hrmsalary/common/pageList/template/delete", params);
};
diff --git a/pc4mobx/hrmSalary/components/CustomBrowser/components/customTransferDialog.js b/pc4mobx/hrmSalary/components/CustomBrowser/components/customTransferDialog.js
index 6d2a8f6f..5714241e 100644
--- a/pc4mobx/hrmSalary/components/CustomBrowser/components/customTransferDialog.js
+++ b/pc4mobx/hrmSalary/components/CustomBrowser/components/customTransferDialog.js
@@ -42,8 +42,9 @@ class CustomTransferDialog extends Component {
}
} else if (nextProps.visible !== this.props.visible && !nextProps.visible) {
this.setState({
- query: { [this.props.searchParamsKey]: "" },
- rightDatas: [], rightCheckedKeys: [], leftListSelectedData: [], leftListSelectedKeys: []
+ query: { [this.props.searchParamsKey]: "" }, selectedRowKeys: [],
+ rightDatas: [], rightCheckedKeys: [], leftListSelectedData: [], leftListSelectedKeys: [],
+ pageInfo: { current: 1, pageSize: 10, total: 0 }
});
this.selectedData = {};
}
@@ -145,7 +146,7 @@ class CustomTransferDialog extends Component {
columns
} = this.state;
const {
- searchParamsKey, saveLoading, dialogType = "", rowKey, buttons = [
+ searchParamsKey, saveLoading, dialogType = "", rowKey, tableOpts = {}, buttons = [
,
@@ -203,7 +204,7 @@ class CustomTransferDialog extends Component {
;
if (dialogType === "table") {
- const sheight = this.dialog ? this.dialog.state.height - 116 : 260;
+ const sheight = this.dialog ? this.dialog.state.height - 156 : 260;
const pagination = {
...pageInfo,
showTotal: total => `${getLabel(18609, "共")} ${total} ${getLabel(18256, "条")}`,
@@ -221,17 +222,19 @@ class CustomTransferDialog extends Component {
};
const rowSelection = {
selectedRowKeys,
- onChange: selectedRowKeys => this.setState({ selectedRowKeys })
+ onChange: selectedRowKeys => this.setState({ selectedRowKeys }, () => this.props.onSelect(selectedRowKeys))
};
dom =
+ {this.props.children}
+ rowSelection={rowSelection} rowKey={rowKey || "id"}
+ columns={!_.isEmpty(tableOpts) ? [...columns, tableOpts] : columns}/>
;
}
return (
this.dialog = dom} title={this.renderTitle()}
- className="custom_browser_dialog" draggable={false} style={{
+ className="custom_browser_dialog" draggable={true} style={{
width: 784, height: 460, minHeight: 200, minWidth: 380,
maxHeight: "90%", maxWidth: "90%", overflow: "hidden", transform: "translate(0px, 0px)"
}} buttons={buttons}>{dom}
diff --git a/pc4mobx/hrmSalary/components/CustomBrowser/index.less b/pc4mobx/hrmSalary/components/CustomBrowser/index.less
index a4818c60..e49d982a 100644
--- a/pc4mobx/hrmSalary/components/CustomBrowser/index.less
+++ b/pc4mobx/hrmSalary/components/CustomBrowser/index.less
@@ -24,6 +24,19 @@
padding: 8px 16px;
height: 100%;
+ .table_opts {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ width: 100%;
+ height: 40px;
+ background: #FFF;
+
+ .wea-button-icon {
+ margin-right: 10px;
+ }
+ }
+
.wea-new-table {
background: #FFF;
}
diff --git a/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/salaryDetails.js b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/salaryDetails.js
index 0c7f9b7d..352d2571 100644
--- a/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/salaryDetails.js
+++ b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/salaryDetails.js
@@ -8,7 +8,7 @@ import React, { Component } from "react";
import { inject, observer } from "mobx-react";
import { WeaTableNew } from "comsMobx";
import { WeaLoadingGlobal, WeaLocaleProvider, WeaSelect } from "ecCom";
-import { Button, message, Spin } from "antd";
+import { Button, message, Modal, Spin } from "antd";
import { getIframeParentHeight } from "../../../util";
import { sysConfCodeRule } from "../../../apis/ruleconfig";
import CustomTransferDialog from "../../../components/CustomBrowser/components/customTransferDialog";
@@ -31,7 +31,7 @@ class SalaryDetails extends Component {
super(props);
this.state = {
loading: false, dataSource: [], columns: [], selectedRowKeys: [], tempPageList: [], sumRow: {},
- pageInfo: { current: 1, pageSize: 10, total: 0 }, payload: {}, templateId: "",
+ pageInfo: { current: 1, pageSize: 10, total: 0 }, payload: {}, templateId: "", tempManageQuery: false,
showTotalCell: false, updateSum: true, tempDialog: { visible: false, setting: [], id: "", template: {} },
transferDialog: {
visible: false, searchParamsKey: "name", saveLoading: false,
@@ -39,14 +39,13 @@ class SalaryDetails extends Component {
completeURL: "", convertDatasource: datas => {
return {
listDatas: _.map(datas.setting, o => ({ id: o.id || o.column, name: o.name || o.text })),
- checked: this.converCheckedCol(datas)
+ checked: converCheckedCol(datas)
};
},
dialogType: "temp"
},
tempManageDialog: { //模板管理
- visible: false, completeURL: "", dialogType: "table",
- dataParams: { page: "salary_details_report" }
+ visible: false, completeURL: "", dialogType: "table", dataParams: { page: "salary_details_report" }
}
};
}
@@ -180,13 +179,6 @@ class SalaryDetails extends Component {
completeURL: "/api/bs/hrmsalary/common/pageList/template/get", dialogType: "temp"
}
}, () => this.getPageListTemplatelist());
- converCheckedCol = (data) => {
- return _.reduce(data.checked || [], (pre, cur) => {
- const item = _.find(data.setting, k => k.column === cur.column);
- if (!_.isEmpty(item)) return [...pre, { ...item, id: item.id || item.column, name: item.name || item.text }];
- return pre;
- }, []);
- };
savePageListSetting = (values) => {
const { transferDialog } = this.state;
@@ -217,27 +209,46 @@ class SalaryDetails extends Component {
};
changePageListTemplate = (templateId) => {
this.setState({ templateId }, () => {
- API.changePageListTemplate({ page: "salary_details_report", templateId }).then(({ status, errormsg }) => {
- if (status) {
- message.success(getLabel(111, "操作成功!"));
- this.setState({
- transferDialog: {
- ...this.state.transferDialog,
- dataParams: { ...this.state.transferDialog.dataParams, id: templateId }
- }
- }, () => {
- this.transferRef.getData(true);
- this.getSalaryList();
- });
- } else {
- message.error(errormsg);
- }
- });
+ API.changePageListTemplate({ page: "salary_details_report", templateId })
+ .then(({ status, errormsg }) => {
+ if (status) {
+ message.success(getLabel(111, "操作成功!"));
+ this.setState({
+ transferDialog: {
+ ...this.state.transferDialog,
+ dataParams: { ...this.state.transferDialog.dataParams, id: templateId }
+ }
+ }, () => {
+ this.transferRef.getData(true);
+ this.getSalaryList();
+ });
+ } else {
+ message.error(errormsg);
+ }
+ });
+ });
+ };
+ handleDelTemp = (ids) => {
+ Modal.confirm({
+ title: getLabel(131329, "信息确认"),
+ content: getLabel(111, "确认删除吗?"),
+ onOk: () => {
+ API.deleteTemplatePageList({ ids }).then(({ status, errormsg }) => {
+ if (status) {
+ message.success(getLabel(111, "操作成功!"));
+ this.setState({ tempManageQuery: !this.state.tempManageQuery }, () => this.getPageListTemplatelist());
+ } else {
+ message.error(errormsg);
+ }
+ });
+ }
});
};
render() {
- const { loading, dataSource, transferDialog, tempDialog, tempPageList, templateId, tempManageDialog } = this.state;
+ const {
+ loading, dataSource, transferDialog, tempDialog, tempPageList, templateId, tempManageDialog, tempManageQuery
+ } = this.state;
const { dateRange, showSearchAd } = this.props;
const { dialogType } = transferDialog;
return (
@@ -295,7 +306,9 @@ class SalaryDetails extends Component {
tempDialog: { ...tempDialog, visible: false, setting: [] }
}, () => callback && callback())}
onSuccess={this.getPageListTemplatelist}/>
- this.setState({
+ {/*薪资明细自定义列模板管理*/}
+ this.setState({
tempManageDialog: { ...tempManageDialog, completeURL: "", visible: false }
})}/>
@@ -305,3 +318,11 @@ class SalaryDetails extends Component {
}
export default SalaryDetails;
+
+export const converCheckedCol = (data) => {
+ return _.reduce(data.checked || [], (pre, cur) => {
+ const item = _.find(data.setting, k => k.column === cur.column);
+ if (!_.isEmpty(item)) return [...pre, { ...item, id: item.id || item.column, name: item.name || item.text }];
+ return pre;
+ }, []);
+};
diff --git a/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/salaryTempAdminDialog.js b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/salaryTempAdminDialog.js
new file mode 100644
index 00000000..0006cac0
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/salaryTempAdminDialog.js
@@ -0,0 +1,59 @@
+/*
+ * 薪酬报表-薪酬明细
+ * 模板管理新增编辑弹框
+ * @Author: 黎永顺
+ * @Date: 2024/12/4
+ * @Wechat:
+ * @Email: 971387674@qq.com
+ * @description:
+*/
+import React, { Component } from "react";
+import { WeaDialog, WeaLocaleProvider, WeaTransfer } from "ecCom";
+import { postFetch } from "../../../util/request";
+import { Button } from "antd";
+
+const getLabel = WeaLocaleProvider.getLabel;
+
+class SalaryTempAdminDialog extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ loading: false, selectedKeys: [], dataSource: []
+ };
+ }
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ if (nextProps.visible !== this.props.visible && nextProps.visible) {
+ const { dataParams = {} } = nextProps;
+ this.setState({ loading: true });
+ postFetch("/api/bs/hrmsalary/common/pageList/template/get", { ...dataParams })
+ .then(({ status, data }) => {
+ if (status) {
+ this.setState({
+ dataSource: _.map(data.setting, o => ({ id: o.column, name: o.text })),
+ selectedKeys: _.map(data.checked, o => o.column)
+ });
+ }
+ });
+ }
+ }
+
+ render() {
+ const { dataSource, selectedKeys } = this.state, { dataParams } = this.props;
+ return ( this.dialog = dom} title={getLabel(111, "模板管理")}
+ className="temp_admin_dialog" style={{
+ width: 784, height: 460, minHeight: 200, minWidth: 380,
+ maxHeight: "90%", maxWidth: "90%", overflow: "hidden", transform: "translate(0px, 0px)"
+ }} buttons={[
+ ,
+
+ ]}>
+ this.setState({ selectedKeys: v })}
+ height={this.dialog ? this.dialog.state.height - 10 : 260}/>
+ );
+ }
+}
+
+export default SalaryTempAdminDialog;
diff --git a/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/salaryTempMangerDialog.js b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/salaryTempMangerDialog.js
index cf9ea23b..5995a9c5 100644
--- a/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/salaryTempMangerDialog.js
+++ b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/salaryTempMangerDialog.js
@@ -8,14 +8,80 @@
* @description:
*/
import React, { Component } from "react";
-import { WeaLocaleProvider } from "ecCom";
+import { WeaButtonIcon, WeaLocaleProvider } from "ecCom";
import CustomTransferDialog from "../../../components/CustomBrowser/components/customTransferDialog";
+import SalaryTempAdminDialog from "./salaryTempAdminDialog";
+import SalaryDetailsTempDialog from "./salaryDetailsTempDialog";
const getLabel = WeaLocaleProvider.getLabel;
class SalaryTempMangerDialog extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ selectedRowKeys: [], tempAdminDialog: { visible: false, dataParams: { page: "salary_details_report" } },
+ tempDialog: { visible: false, setting: [], id: "", template: {} }
+ };
+ }
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ if (nextProps.isQuery !== this.props.isQuery) this.setState({ selectedRowKeys: [] }, () => this.tempManageRef.getData());
+ }
+
+ handleTempAdminCols = (params = {}) => this.setState({
+ tempAdminDialog: { visible: true, dataParams: { ...this.state.tempAdminDialog.dataParams, ...params } }
+ });
+ handelAddTemp = (id = "", setting = []) => {
+ this.setState({
+ tempDialog: {
+ visible: true, setting, id, template: _.find(this.tempManageRef.state.listDatas, o => o.id === id)
+ }
+ });
+ };
+
render() {
- return ();
+ const { selectedRowKeys, tempAdminDialog, tempDialog } = this.state;
+ return ( this.tempManageRef = dom} {...this.props} buttons={[]}
+ title={getLabel(111, "模板管理")}
+ onSelect={v => this.setState({ selectedRowKeys: v })}
+ tableOpts={{
+ title: getLabel(111, "操作"),
+ dataIndex: "options",
+ width: 120,
+ render: (text, record) => (
+ {
+ record.canEdit &&
+ this.handleTempAdminCols({ id: record.id })}
+ style={{ marginRight: 10 }}>{getLabel(111, "编辑")}
+ }
+ {
+ record.canEdit &&
+ this.props.onDelete([record.id])}>{getLabel(111, "删除")}
+ }
+
+ )
+ }}>
+
+ this.handleTempAdminCols()}/>
+ this.props.onDelete(selectedRowKeys)} disabled={_.isEmpty(selectedRowKeys)}/>
+
+ {/*模板管理*/}
+ this.setState({
+ tempAdminDialog: { visible: false, dataParams: { page: "salary_details_report" } }
+ })}/>
+ {/*薪资明细模板设置*/}
+ this.setState({
+ tempDialog: { ...tempDialog, visible: false, setting: [] }
+ }, () => callback && callback())}
+ onSuccess={() => this.setState({
+ tempAdminDialog: { visible: false, dataParams: { page: "salary_details_report" } }
+ }, () => this.tempManageRef.getData())}/>
+ );
}
}