From ada5aee430fe6ab53931e9204cec216265465e32 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com>
Date: Tue, 25 Jul 2023 16:16:39 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BA=A7=E5=93=81-=E7=A4=BE=E4=BF=9D=E6=A1=A3?=
=?UTF-8?q?=E6=A1=88=E5=9F=BA=E7=A1=80=E4=BF=A1=E6=81=AF=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pc4mobx/hrmSalary/apis/item.js | 9 +-
.../components/ledgerSalaryItemEditSlide.js | 4 +-
.../components/ledgerSalaryItemNormal.js | 69 +---------
.../components/ledgerSalaryItemTable.js | 120 ++++++++++++++++--
.../ledgerPage/components/ledgerSlide.js | 2 +
.../pages/salaryItem/formalFormModal.js | 4 +-
.../pages/salaryItem/salaryItemForm.js | 16 ++-
pc4mobx/hrmSalary/stores/salaryItem.js | 4 +-
8 files changed, 133 insertions(+), 95 deletions(-)
diff --git a/pc4mobx/hrmSalary/apis/item.js b/pc4mobx/hrmSalary/apis/item.js
index ccf93af9..3c3bb052 100644
--- a/pc4mobx/hrmSalary/apis/item.js
+++ b/pc4mobx/hrmSalary/apis/item.js
@@ -163,7 +163,14 @@ export const testFormual = params => {
// 根据id获取formual
export const detailFormual = params => {
- return WeaTools.callApi('/api/bs/hrmsalary/formula/detail', 'GET', params);
+ return fetch('/api/bs/hrmsalary/formula/detail', {
+ method: 'POST',
+ mode: 'cors',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify(params)
+ }).then(res => res.json())
}
diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemEditSlide.js b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemEditSlide.js
index 735014cd..de0c2871 100644
--- a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemEditSlide.js
+++ b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemEditSlide.js
@@ -20,8 +20,8 @@ class LedgerSalaryItemEditSlide extends Component {
handleChange = (params) => {
const request = { ...this.props.request, ...params };
- console.log(this.props.request, params);
- this.props.onUpdateRequest(request);
+ const key = Object.keys(params)[0];
+ this.props.onUpdateRequest(request, key);
};
handleShowFormal = () => this.props.onEditFormnul();
diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemNormal.js b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemNormal.js
index bb387ef6..23600c58 100644
--- a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemNormal.js
+++ b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemNormal.js
@@ -11,7 +11,6 @@ import { Button, Modal } from "antd";
import CategoryAddModal from "./categoryAddModal";
import LedgerSalaryItemAddModal from "./ledgerSalaryItemAddModal";
import LedgerSalaryItemTable from "./ledgerSalaryItemTable";
-import FormalFormModal from "../../salaryItem/formalFormModal";
import LedgerMovoTo from "./ledgerMovoTo";
import "./index.less";
@@ -28,15 +27,6 @@ class LedgerSalaryItemNormal extends Component {
name: "",
id: ""
},
- editFormulModal: {
- visible: false,
- formulaId: "",
- valueType: "",
- dataType: ""
- },
- //公式保存数据
- formnulField: {},
- formnulId: "",
moveModalPayload: {
visible: false, title: "",
dataList: [], record: null, value: ""
@@ -44,36 +34,6 @@ class LedgerSalaryItemNormal extends Component {
};
}
- componentWillUnmount() {
- this.handleResetFormnul();
- }
-
- handleEditFormnul = (field, record) => {
- console.log(record);
- const { valueType, formulaId, dateType: dataType, id, key } = record;
- const { editFormulModal } = this.state;
- this.setState({
- editFormulModal: {
- ...editFormulModal,
- visible: true,
- valueType, formulaId, dataType
- },
- formnulField: field,
- formnulId: id || key
- });
- };
- handleSaveFormnul = (data) => {
- const { onSaveFormnul } = this.props;
- const { formnulField, formnulId } = this.state;
- const tmpV = _.cloneDeep(formnulField.items);
- const formnulData = _.map(tmpV, it => {
- if (it.id === formnulId || it.key === formnulId) {
- return { ...it, formulaId: data.id, formulaContent: data.formula };
- }
- return { ...it };
- });
- onSaveFormnul(formnulField.uuid, formnulData);
- };
handleAddCategory = (name = "", id = "") => {
const { categoryModal } = this.state;
this.setState({
@@ -128,23 +88,6 @@ class LedgerSalaryItemNormal extends Component {
}
}, () => form.resetForm());
};
- handleCloseFormnul = () => {
- const { editFormulModal } = this.state;
- this.setState({
- editFormulModal: {
- ...editFormulModal,
- visible: false,
- formulaId: "",
- valueType: "", dataType: ""
- }
- });
- };
- handleResetFormnul = () => {
- this.setState({
- formnulField: {},
- formnulId: ""
- });
- };
handleCancelMove = () => {
this.setState({
moveModalPayload: {
@@ -196,7 +139,7 @@ class LedgerSalaryItemNormal extends Component {
taxAgentStore
} = this.props;
const { showOperateBtn } = taxAgentStore;
- const { categoryModal, addCategoryItemsVisible, editFormulModal, moveModalPayload } = this.state;
+ const { categoryModal, addCategoryItemsVisible, moveModalPayload } = this.state;
return (
onDropCategoryItem(field, data)}
onHandleItemhide={(data) => onHandleItemhide(field, data)}
onChangeSelectedRowKeys={(data) => onChangeSelectedRowKeys(field, data)}
- onEditFormnul={(data) => this.handleEditFormnul(field, data)}
onMoveTo={this.handleMoveTo}
/>
;
@@ -250,15 +192,6 @@ class LedgerSalaryItemNormal extends Component {
onSaveCategory={onSaveCategory}
onCancel={this.handleClose}
/>
- {/*公式编辑*/}
- {
- editFormulModal.visible &&
-
- }
);
diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemTable.js b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemTable.js
index cd401a50..b69bd02b 100644
--- a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemTable.js
+++ b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemTable.js
@@ -9,6 +9,7 @@ import { WeaCheckbox, WeaHelpfulTip, WeaLocaleProvider, WeaTable } from "ecCom";
import LedgerSalaryItemEditSlide from "./ledgerSalaryItemEditSlide";
import { getSalaryItemForm } from "../../../apis/ledger";
import { commonEnumList } from "../../../apis/ruleconfig";
+import FormalFormModal from "../../salaryItem/formalFormModal";
const getLabel = WeaLocaleProvider.getLabel;
@@ -21,6 +22,12 @@ class LedgerSalaryItemTable extends Component {
visible: false, record: {},
request: {}, isLedger: true,
userStatusList: [], loading: false
+ },
+ editFormulModal: {
+ visible: false,
+ formulaId: "",
+ valueType: "",
+ dataType: ""
}
};
}
@@ -91,11 +98,17 @@ class LedgerSalaryItemTable extends Component {
salaryItemPayload: {
...this.state.salaryItemPayload,
visible: true,
- request: { ...data, hideDefault, valueType, roundingMode, pattern },
+ request: {
+ ...data,
+ hideDefault: _.isNil(hideDefault) ? "0" : hideDefault,
+ valueType,
+ roundingMode,
+ pattern
+ },
record,
userStatusList: _.map(userStatusList, it => ({ key: it.value.toString(), showname: it.defaultLabel }))
}
- });
+ }, () => console.log(111, this.state.salaryItemPayload));
}
});
};
@@ -112,18 +125,86 @@ class LedgerSalaryItemTable extends Component {
salaryItemPayload: { ...salaryItemPayload, visible: false }
});
const { id } = record;
- const { hideDefault, roundingMode, pattern, valueType } = request;
- this.handleChangeSalaryItem({ itemHide: hideDefault.toString(), roundingMode, pattern, valueType }, id);
- //TODO:渲染列表数据
+ const {
+ hideDefault,
+ roundingMode,
+ pattern,
+ valueType,
+ originFormulaContent,
+ originSqlContent,
+ formulaId
+ } = request;
+ this.handleChangeSalaryItem({
+ itemHide: hideDefault.toString(),
+ roundingMode,
+ pattern,
+ valueType,
+ formulaContent: valueType.toString() === "2" ? originFormulaContent : originSqlContent,
+ formulaId: ((valueType.toString() === "3" && !originSqlContent) || valueType.toString() === "1") ? "" : formulaId
+ }, id);
+ };
+ handleEditFormnul = () => {
+ const { salaryItemPayload, editFormulModal } = this.state;
+ const { record } = salaryItemPayload;
+ const { valueType, formulaId, dateType: dataType } = record;
+ this.setState({
+ editFormulModal: {
+ ...editFormulModal,
+ visible: true,
+ valueType, formulaId, dataType
+ }
+ });
+ };
+ handleCloseFormnul = () => {
+ const { editFormulModal } = this.state;
+ this.setState({
+ editFormulModal: {
+ ...editFormulModal,
+ visible: false,
+ formulaId: "",
+ valueType: "", dataType: ""
+ }
+ });
+ };
+ handleSaveFormnul = (data) => {
+ const { salaryItemPayload } = this.state;
+ const { record } = salaryItemPayload;
+ const { salaryItemId } = record;
+ const { dataSource, onHandleItemhide } = this.props;
+ const tmpV = _.cloneDeep(dataSource);
+ const formnulData = _.map(tmpV, it => {
+ if (it.salaryItemId === salaryItemId) {
+ return {
+ ...it,
+ formulaId: data.id, formulaContent: data.formula,
+ originFormulaContent: data.referenceType === "formula" ? data.formula : "",
+ originSqlContent: data.referenceType === "sql" ? data.formula : ""
+ };
+ }
+ return { ...it };
+ });
+ this.setState({
+ salaryItemPayload: {
+ ...salaryItemPayload,
+ request: {
+ ...salaryItemPayload.request,
+ formulaId: data.id,
+ originFormulaContent: data.referenceType === "formula" ? data.formula : "",
+ originSqlContent: data.referenceType === "sql" ? data.formula : ""
+ }
+ }
+ }, () => {
+ this.handleCloseFormnul();
+ onHandleItemhide(formnulData);
+ });
};
render() {
- const { salaryItemPayload } = this.state;
+ const { salaryItemPayload, editFormulModal } = this.state;
const {
dataSource,
onDropCategoryItem,
onChangeSelectedRowKeys,
- onEditFormnul,
selectedRowKeys,
onMoveTo
} = this.props;
@@ -150,9 +231,10 @@ class LedgerSalaryItemTable extends Component {
,
dataIndex: "valueType",
key: "valueType",
- render: (_, record) => {
+ render: (e, record) => {
const { valueType } = record;
- return {valueType === 1 ? "输入" : valueType === 2 ? "自定义公式" : valueType === 3 ? "SQL" : ""} ;
+ const key = !_.isNil(valueType) ? valueType : "";
+ return {key.toString() === "1" ? "输入" : key.toString() === "2" ? "自定义公式" : key.toString() === "3" ? "SQL" : ""} ;
}
},
{
@@ -207,16 +289,19 @@ class LedgerSalaryItemTable extends Component {
/>
{
- const key = Object.keys(request)[0];
+ onUpdateRequest={(request, key) => {
+ console.log(salaryItemPayload);
this.setState({
salaryItemPayload: {
...salaryItemPayload, request,
- record: key === "valueType" ? { ...salaryItemPayload.record, request } : { ...salaryItemPayload.record }
+ record: key === "valueType" ? {
+ ...salaryItemPayload.record,
+ [key]: request[key]
+ } : { ...salaryItemPayload.record }
}
});
}}
- onEditFormnul={() => onEditFormnul(salaryItemPayload.record)}
+ onEditFormnul={this.handleEditFormnul}
onSave={this.handleSaveItem}
onClose={() => this.setState({
salaryItemPayload: {
@@ -224,6 +309,15 @@ class LedgerSalaryItemTable extends Component {
}
})}
/>
+ {/*公式编辑*/}
+ {
+ editFormulModal.visible &&
+
+ }
);
}
diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSlide.js b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSlide.js
index 8b2e350e..cf3a03cd 100644
--- a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSlide.js
+++ b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSlide.js
@@ -132,6 +132,8 @@ class LedgerSlide extends Component {
}) || [],
salarySobId: salarySobId || saveSalarySobId
};
+ console.log("payload", payload);
+ // return;
this.setState({ loading: true });
saveLedgerItem(payload).then(({ status, errormsg }) => {
this.setState({ loading: false });
diff --git a/pc4mobx/hrmSalary/pages/salaryItem/formalFormModal.js b/pc4mobx/hrmSalary/pages/salaryItem/formalFormModal.js
index a7044fd0..4cfea586 100644
--- a/pc4mobx/hrmSalary/pages/salaryItem/formalFormModal.js
+++ b/pc4mobx/hrmSalary/pages/salaryItem/formalFormModal.js
@@ -39,11 +39,11 @@ export default class FormalFormModal extends React.Component {
}
componentWillMount() {
- const { salaryItemStore } = this.props;
+ const { salaryItemStore, formulaId, valueType } = this.props;
const { salaryAcctImportTemplateParam, setSearchFields, detailFormual } = salaryItemStore;
setSearchFields([]);
if (!!this.props.formulaId && this.props.formulaId != 0) {
- detailFormual(this.props.formulaId).then(data => {
+ detailFormual({ formulaId, returnType: valueType.toString() === "2" ? "formula" : "sql" }).then(data => {
this.parameters = data.parameters;
this.referenceType = data.referenceType;
this.extendParam = data.extendParam;
diff --git a/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js b/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js
index 7d1e59d9..62a8837a 100644
--- a/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js
+++ b/pc4mobx/hrmSalary/pages/salaryItem/salaryItemForm.js
@@ -66,6 +66,7 @@ class SalaryItemForm extends Component {
case "formulaContent":
return {
...item,
+ key: valueType.toString() === "3" ? "originSqlContent" : "originFormulaContent",
display: valueType && (valueType.toString() === "2" || valueType.toString() === "3"),
viewAttr: (isLedger && record.canEdit) || (editable && record.canEdit) || isAdd ? 2 : 1
};
@@ -87,9 +88,10 @@ class SalaryItemForm extends Component {
salaryItemFieldsList: _.map(salaryItemFieldsList, item => {
if (key === "sharedType" && item.key === "taxAgentIds") {
return { ...item, display: v === "1", viewAttr: 3 };
- } else if (key === "valueType" && item.key === "formulaContent") {
+ } else if (key === "valueType" && (item.key === "originSqlContent" || item.key === "originFormulaContent")) {
return {
...item,
+ key: v === "3" ? "originSqlContent" : "originFormulaContent",
label: v === "2" ? "公式" : v === "3" ? "SQL" : "",
display: v === "2" || v === "3"
};
@@ -97,11 +99,11 @@ class SalaryItemForm extends Component {
return { ...item };
})
}, () => {
- if (key === "valueType" && !this.props.isLedger) {
- onChangeFieldsItem({ formulaContent: "", formulaId: 0, valueType: v });
- } else {
- onChangeFieldsItem({ [key]: (key === "useDefault" || key === "useInEmployeeSalary" || key === "hideDefault") ? Number(v) : v });
- }
+ // if (key === "valueType" && !this.props.isLedger) {
+ // onChangeFieldsItem({ formulaContent: "", formulaId: 0, valueType: v });
+ // } else {
+ onChangeFieldsItem({ [key]: (key === "useDefault" || key === "useInEmployeeSalary" || key === "hideDefault") ? Number(v) : v });
+ // }
});
};
@@ -119,7 +121,7 @@ class SalaryItemForm extends Component {
(type === "INPUT" && display) ?
key === "formulaContent" && onShowFormal()}
+ onClick={() => (key === "originSqlContent" || key === "originFormulaContent") && onShowFormal()}
onChange={v => this.handleChangeSalaryFiledItems(key, v)}/> :
(type === "SWITCH" && display) ?
diff --git a/pc4mobx/hrmSalary/stores/salaryItem.js b/pc4mobx/hrmSalary/stores/salaryItem.js
index 6eb365de..775c464a 100644
--- a/pc4mobx/hrmSalary/stores/salaryItem.js
+++ b/pc4mobx/hrmSalary/stores/salaryItem.js
@@ -334,9 +334,9 @@ export class SalaryItemStore {
// 根据id获取formual
@action
- detailFormual = (formulaId) => {
+ detailFormual = (params) => {
return new Promise((resolve, reject) => {
- API.detailFormual({ formulaId }).then(res => {
+ API.detailFormual(params).then(res => {
if (res.status) {
this.formulaDetail = res.data;
resolve(res.data);