diff --git a/pc4mobx/hrmSalary/apis/ledger.js b/pc4mobx/hrmSalary/apis/ledger.js index d5e20da8..5f29b42c 100644 --- a/pc4mobx/hrmSalary/apis/ledger.js +++ b/pc4mobx/hrmSalary/apis/ledger.js @@ -366,3 +366,7 @@ export const saveTaxMapping = params => { export const getSalaryItemForm = params => { return postFetch("/api/bs/hrmsalary/salarysob/item/getSalaryItemForm", params); }; +//薪资账套-获取薪资账套中拓扑图数据 +export const getSalaryItemTopology = params => { + return postFetch("/api/bs/hrmsalary/salarysob/item/topology", params); +}; diff --git a/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/editCalcTable.js b/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/editCalcTable.js index 4aa67eaa..6ea72244 100644 --- a/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/editCalcTable.js +++ b/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/editCalcTable.js @@ -73,7 +73,7 @@ class EditCalcTable extends Component { const { salarySobId } = this.props; const { lockStatus, salaryItemId } = payload; if (lockStatus === "DIAGRAM") { - window.open(`/spa/hrmSalary/static/index.html#/main/hrmSalary/topologyView/${salarySobId}/${salaryItemId}`, "_blank"); + window.open(`/spa/hrmSalary/static/index.html#/main/hrmSalary/topologyView/${salarySobId}/${salaryItemId}?type=ledger`, "_blank"); return; } Modal.confirm({ diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemTable.js b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemTable.js index 81a4326b..a1bce538 100644 --- a/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemTable.js +++ b/pc4mobx/hrmSalary/pages/ledgerPage/components/ledgerSalaryItemTable.js @@ -250,7 +250,7 @@ class LedgerSalaryItemTable extends Component { render: (text, record) => { const { salarySobId, salaryItemId } = record; return {text}; } }, diff --git a/pc4mobx/hrmSalary/pages/salaryItemDiagram/index.js b/pc4mobx/hrmSalary/pages/salaryItemDiagram/index.js index 51e16088..ec40beba 100644 --- a/pc4mobx/hrmSalary/pages/salaryItemDiagram/index.js +++ b/pc4mobx/hrmSalary/pages/salaryItemDiagram/index.js @@ -11,8 +11,8 @@ class Index extends Component { return ( ); diff --git a/pc4mobx/hrmSalary/pages/topologyMap/index.js b/pc4mobx/hrmSalary/pages/topologyMap/index.js index 9f7c1050..448cfb61 100644 --- a/pc4mobx/hrmSalary/pages/topologyMap/index.js +++ b/pc4mobx/hrmSalary/pages/topologyMap/index.js @@ -8,6 +8,8 @@ import React, { Component } from "react"; import { WeaLocaleProvider } from "ecCom"; import SalaryItemDiagram from "../salaryItemDiagram"; import { getQueryString } from "../../util/url"; +import { getSalaryItemTopology } from "../../apis/ledger"; +import uuidV4 from "uuid/v4"; const getLabel = WeaLocaleProvider.getLabel; @@ -25,18 +27,37 @@ class Index extends Component { window.removeEventListener("message", this.handleReceive, false); } - postMessageToChild = () => { - const i18n = { "公式": getLabel(18125, "公式") }; + postMessageToChild = async () => { + const i18n = { "薪资项目": getLabel(542362, "薪资项目"), "公式": getLabel(18125, "公式") }; const { params: payload = {} } = this.props; - const acctEmpId = getQueryString("acctEmpId"); + const acctEmpId = getQueryString("acctEmpId"), type = getQueryString("type"); + let itemsTree = []; + if (type === "ledger") { + const { data } = await getSalaryItemTopology({ ...payload }); + itemsTree = this.convertToTreeDatas([data]); + } const childFrameObj = document.getElementById("topologyDiagram"); - childFrameObj.contentWindow.postMessage(JSON.stringify({ ...payload, i18n, acctEmpId }), "*"); + childFrameObj.contentWindow.postMessage(JSON.stringify({ ...payload, i18n, acctEmpId, itemsTree }), "*"); + }; + convertToTreeDatas = (datas, parentId = "0") => { + return _.map(datas, item => { + if (_.isEmpty(item.children)) { + return { ...item, salaryItemId: item.salaryItemId ? item.salaryItemId.toString() : uuidV4(), parentId }; + } else { + return { + ...item, parentId, salaryItemId: item.salaryItemId.toString(), + children: this.convertToTreeDatas(item.children, item.salaryItemId.toString()) + }; + } + }); }; render() { + const type = getQueryString("type"); + const pathname = type === "ledger" ? "ledgerSalaryItemDiagram" : "salaryItemDiagram"; return (