/* * 浮动薪酬 * 新建编辑薪资档案 * @Author: 黎永顺 * @Date: 2024/8/8 * @Wechat: * @Email: 971387674@qq.com * @description: */ import React, { Component } from "react"; import { inject, observer } from "mobx-react"; import { WeaLocaleProvider, WeaSlideModal, WeaTools } from "ecCom"; import { Button, message } from "antd"; import { getSearchs } from "../../../../util"; import { salaryFileConditions } from "../../conditions"; import * as API from "../../../../apis/variableSalary"; const getKey = WeaTools.getKey; const getLabel = WeaLocaleProvider.getLabel; @inject("baseTableStore") @observer class Index extends Component { constructor(props) { super(props); this.state = { conditions: [], loading: false }; } componentWillReceiveProps(nextProps, nextContext) { if (nextProps.visible !== this.props.visible && nextProps.visible) { document.querySelector(".variable_salary_wrapper").classList.add("zIndex0-weaslide-title"); this.initForm(nextProps); } else if (nextProps.visible !== this.props.visible && !nextProps.visible) { document.querySelector(".variable_salary_wrapper").classList.remove("zIndex0-weaslide-title"); this.props.baseTableStore.initVSSalaryFileForm(); } } initForm = async (props) => { const { baseTableStore: { VSSalaryFileForm }, detail } = props; const { data: taxAgentOption } = await API.getAdminTaxAgentList(); API.getCreateForm().then(({ data }) => { this.setState({ conditions: [..._.map(salaryFileConditions, item => ({ ...item, items: _.map(item.items, o => { if (getKey(o) === "taxAgentIds") { return { ...o, viewAttr: !_.isEmpty(detail) ? 1 : 3, label: getLabel(o.lanId, o.label), value: detail[getKey(o)] || "", options: _.map(taxAgentOption, (o, i) => ({ key: o.id, showname: o.content })) }; } return { ...o, viewAttr: !_.isEmpty(detail) ? 1 : 3, label: getLabel(o.lanId, o.label), value: detail[getKey(o)] || "" }; }) })), { items: _.map(data, o => ({ conditionType: "INPUT", domkey: [String(o.id)], fieldcol: 14, label: o.name, labelcol: 6, value: detail[`${String(o.id)}_variableItem`] || "", viewAttr: 2 })), title: "", col: 2, defaultshow: true }] }, () => { VSSalaryFileForm.initFormFields(this.state.conditions); if (!_.isEmpty(detail)) { VSSalaryFileForm.updateFields({ employeeId: { value: detail["employeeId"], valueSpan: detail["username"], valueObj: [{ id: detail["employeeId"], name: detail["username"] }] } }); } }); }); }; convertPayload = (payload) => { const itemValueList = []; return _.reduce(_.keys(payload), (pre, cur) => { if (!_.isNaN(parseInt(cur))) { itemValueList.push({ variableItemId: cur, itemValue: payload[cur] }); return { ...pre, itemValueList }; } return { ...pre, [cur]: payload[cur] }; }, {}); }; save = () => { const { baseTableStore: { VSSalaryFileForm }, onSearch, detail: { id } } = this.props; VSSalaryFileForm.validateForm().then(f => { if (f.isValid) { const payload = VSSalaryFileForm.getFormParams(); this.setState({ loading: true }); API.createVariableSalary({ ...this.convertPayload(payload), id }) .then(({ status, errormsg }) => { this.setState({ loading: false }); if (status) { message.success(getLabel(30700, "操作成功")); this.props.onClose(onSearch()); } else { message.error(errormsg); } }).catch(() => this.setState({ loading: false })); } else { f.showErrors(); } }); }; renderTitle = () => { const { loading } = this.state, { title } = this.props; return