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);