Merge branch 'release/2.9.42310.01' into release/2.9.42310.01-个税

This commit is contained in:
黎永顺 2023-10-23 10:57:27 +08:00
commit 8f23fc6c8b
8 changed files with 102 additions and 29 deletions

View File

@ -7,6 +7,7 @@
import React, { Component } from "react"; import React, { Component } from "react";
import { WeaInputSearch, WeaLocaleProvider } from "ecCom"; import { WeaInputSearch, WeaLocaleProvider } from "ecCom";
import { Tree } from "antd"; import { Tree } from "antd";
import cs from "classnames";
import { formualSearchField, formualSearchGroup, getFormulaDes } from "../../../apis/item"; import { formualSearchField, formualSearchGroup, getFormulaDes } from "../../../apis/item";
import "../index.less"; import "../index.less";
@ -139,7 +140,7 @@ class CodeAction extends Component {
return <TreeNode title={value} key={key}> return <TreeNode title={value} key={key}>
{ {
_.map([...children.slice(0, 1), ...itemChildren], (child, childIndex) => { _.map([...children.slice(0, 1), ...itemChildren], (child, childIndex) => {
const { name, fieldId } = child; const { name, fieldId, fieldType } = child;
return ( return (
fieldId === "searchInput" ? fieldId === "searchInput" ?
<TreeNode <TreeNode
@ -151,7 +152,17 @@ class CodeAction extends Component {
/> />
} }
key={fieldId + "_" + childIndex}/> : key={fieldId + "_" + childIndex}/> :
<TreeNode title={name} key={fieldId}/> <TreeNode title={
<div className="weapp-excel-code-action-list-variable">
<span className="weapp-excel-code-action-list-variable-name">{name}</span>
{
fieldType ?
<span
className={cs("weapp-excel-code-action-list-variable-tip", { "danger": fieldType === "string" })}>{fieldType === "number" ? "数字" : "文本"}</span> :
<span></span>
}
</div>
} key={fieldId}/>
); );
}) })
} }

View File

@ -186,14 +186,53 @@
.code-action-list { .code-action-list {
padding: 10px 0; padding: 10px 0;
.code-action-tips-title{
.code-action-tips-title {
height: 22px; height: 22px;
line-height: 22px; line-height: 22px;
} }
.code-action-tips-info{
.code-action-tips-info {
color: #999 color: #999
} }
} }
.weapp-excel-code-action-list-variable {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
.weapp-excel-code-action-list-variable-name {
height: 20px;
line-height: 18px;
-webkit-flex: 1 1;
flex: 1 1;
overflow: hidden;
text-overflow: ellipsis;
word-break: keep-all;
white-space: nowrap;
cursor: pointer;
}
.danger {
color: rgb(255, 102, 106)!important;
border: 1px solid rgb(255, 193, 195)!important;
background-color: rgb(255, 223, 224)!important;
}
.weapp-excel-code-action-list-variable-tip {
width: 40px;
height: 20px;
line-height: 18px;
text-align: center;
vertical-align: middle;
color: rgb(255, 205, 80);
border: 1px solid rgb(255, 222, 138);
background-color: rgb(255, 245, 219);
border-radius: 2px;
}
}
} }
} }
} }

View File

@ -50,7 +50,7 @@ class EditSalaryCalcSlide extends Component {
<div className="title">{getLabel(543559, "编辑薪资")}</div> <div className="title">{getLabel(543559, "编辑薪资")}</div>
</div> </div>
<div className="titleCol titleRightBox"> <div className="titleCol titleRightBox">
<Button type="primary" onClick={this.save} loading={loading}>{getLabel(111, "保存并核算")}</Button> <Button type="primary" onClick={this.save} loading={loading}>{getLabel(537558, "保存")}</Button>
</div> </div>
</div>; </div>;
}; };

View File

@ -6,7 +6,6 @@
*/ */
import React, { Component } from "react"; import React, { Component } from "react";
import { WeaHelpfulTip, WeaLocaleProvider } from "ecCom"; import { WeaHelpfulTip, WeaLocaleProvider } from "ecCom";
import { Alert } from "antd";
import { getColumnDesc, getSalarySobCycle } from "../../../../../apis/calculate"; import { getColumnDesc, getSalarySobCycle } from "../../../../../apis/calculate";
import { sysConfCodeRule } from "../../../../../apis/ruleconfig"; import { sysConfCodeRule } from "../../../../../apis/ruleconfig";
import EditCalcAdvanceSearchPannel from "./editCalcAdvanceSearchPannel"; import EditCalcAdvanceSearchPannel from "./editCalcAdvanceSearchPannel";
@ -52,14 +51,10 @@ class Index extends Component {
render() { render() {
const { salarySobCycle, showSearchAd, formulaTd, columnDesc, showTotalCell } = this.state; const { salarySobCycle, showSearchAd, formulaTd, columnDesc, showTotalCell } = this.state;
const { accountExceptInfo, routeParams: { salaryAcctRecordId } } = this.props; const { routeParams: { salaryAcctRecordId } } = this.props;
const formulaObj = _.get(columnDesc, [formulaTd]) || {}; const formulaObj = _.get(columnDesc, [formulaTd]) || {};
return ( return (
<div className="salary-edit-calc-content"> <div className="salary-edit-calc-content">
{
accountExceptInfo &&
<Alert message="" description={accountExceptInfo} type="error" closable/>
}
<div className="salary-flex-between weapp-salary-tb-tip"> <div className="salary-flex-between weapp-salary-tb-tip">
<div> <div>
<span>{getLabel(542604, "薪资所属月")}</span> <span>{getLabel(542604, "薪资所属月")}</span>

View File

@ -130,7 +130,7 @@ class Index extends Component {
} }
}; };
renderReqBtns = () => { renderReqBtns = () => {
const { selectedKey } = this.state; const { selectedKey, accountExceptInfo } = this.state;
let reqBtns = []; let reqBtns = [];
switch (selectedKey) { switch (selectedKey) {
case "calc": case "calc":
@ -155,21 +155,32 @@ class Index extends Component {
<AdvanceInputBtn onOpenAdvanceSearch={() => this.calc.openAdvanceSearch()} <AdvanceInputBtn onOpenAdvanceSearch={() => this.calc.openAdvanceSearch()}
onAdvanceSearch={() => this.calc.onAdSearch(false)}/> onAdvanceSearch={() => this.calc.onAdSearch(false)}/>
]; ];
accountExceptInfo && reqBtns.unshift(<i className="iconfont icon-jinggao"
title={getLabel(111, "存在异常信息,点击下载!")}
onClick={() => this.downloadTxtfile(accountExceptInfo)}/>);
break; break;
default: default:
break; break;
} }
return reqBtns; return reqBtns;
}; };
downloadTxtfile = (value) => {
const element = document.createElement("a");
const file = new Blob([value], { type: "text/plain" });
element.href = URL.createObjectURL(file);
element.download = "核算异常信息.txt";
document.body.appendChild(element);
element.click();
};
renderContent = () => { renderContent = () => {
const { selectedKey, accountExceptInfo } = this.state; const { selectedKey } = this.state;
let dom = null; let dom = null;
switch (selectedKey) { switch (selectedKey) {
case "person": case "person":
dom = <SalaryCalcPersonConfirm {...this.props}/>; dom = <SalaryCalcPersonConfirm {...this.props}/>;
break; break;
case "calc": case "calc":
dom = <SalaryEditCalc {...this.props} accountExceptInfo={accountExceptInfo} ref={dom => this.calc = dom}/>; dom = <SalaryEditCalc {...this.props} ref={dom => this.calc = dom}/>;
break; break;
default: default:
break; break;

View File

@ -5,6 +5,13 @@
height: 100%; height: 100%;
background: #f6f6f6; background: #f6f6f6;
.icon-jinggao {
color: red;
font-size: 20px;
margin-right: 10px;
cursor: pointer;
}
.wea-new-top-req { .wea-new-top-req {
z-index: 0 !important; z-index: 0 !important;
} }

View File

@ -306,20 +306,25 @@ class FieldSlide extends Component {
onChange={value => this.handleChangeFields("dataType", value)} onChange={value => this.handleChangeFields("dataType", value)}
/> />
</WeaFormItem> </WeaFormItem>
<WeaFormItem label="舍入规则" labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}> {
<WeaSelect dataType === "number" &&
value={roundingMode} <React.Fragment>
options={roundingModeOptions} <WeaFormItem label="舍入规则" labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}>
onChange={value => this.handleChangeFields("roundingMode", value)} <WeaSelect
/> value={roundingMode}
</WeaFormItem> options={roundingModeOptions}
<WeaFormItem label="保留小数位" labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}> onChange={value => this.handleChangeFields("roundingMode", value)}
<WeaSelect />
value={pattern} </WeaFormItem>
options={patternOptions} <WeaFormItem label="保留小数位" labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}>
onChange={value => this.handleChangeFields("pattern", value)} <WeaSelect
/> value={pattern}
</WeaFormItem> options={patternOptions}
onChange={value => this.handleChangeFields("pattern", value)}
/>
</WeaFormItem>
</React.Fragment>
}
<WeaFormItem label="显示顺序" labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}> <WeaFormItem label="显示顺序" labelCol={{ span: 6 }} wrapperCol={{ span: 12 }}>
<WeaInputNumber value={sortedIndex} precision={0} <WeaInputNumber value={sortedIndex} precision={0}
onChange={value => this.handleChangeFields("sortedIndex", value)}/> onChange={value => this.handleChangeFields("sortedIndex", value)}/>

View File

@ -30,7 +30,7 @@ class SalaryItemForm extends Component {
componentDidMount() { componentDidMount() {
const { salaryItemFieldsList } = this.state; const { salaryItemFieldsList } = this.state;
const { request, editable, record, isAdd = false, taxAgentAdminOption, isLedger = false } = this.props; const { request, editable, record, isAdd = false, taxAgentAdminOption, isLedger = false } = this.props;
const { systemType = "", sharedType, valueType, useInEmployeeSalary } = request; const { systemType = "", sharedType, valueType, useInEmployeeSalary, dataType } = request;
this.setState({ this.setState({
salaryItemFieldsList: _.map(salaryItemFieldsList, item => { salaryItemFieldsList: _.map(salaryItemFieldsList, item => {
const { key } = item; const { key } = item;
@ -43,6 +43,9 @@ class SalaryItemForm extends Component {
viewAttr: (!isLedger && ((editable && record.canEdit) || isAdd)) ? 2 : 1, viewAttr: (!isLedger && ((editable && record.canEdit) || isAdd)) ? 2 : 1,
display: !isLedger display: !isLedger
}; };
case "pattern":
case "roundingMode":
return { ...item, display: dataType === "number" };
case "sortedIndex": case "sortedIndex":
return { ...item }; return { ...item };
case "useInEmployeeSalary": case "useInEmployeeSalary":
@ -101,6 +104,8 @@ class SalaryItemForm extends Component {
salaryItemFieldsList: _.map(salaryItemFieldsList, item => { salaryItemFieldsList: _.map(salaryItemFieldsList, item => {
if (key === "sharedType" && item.key === "taxAgentIds") { if (key === "sharedType" && item.key === "taxAgentIds") {
return { ...item, display: v === "1", viewAttr: 3 }; return { ...item, display: v === "1", viewAttr: 3 };
} else if (key === "dataType" && (item.key === "roundingMode" || item.key === "pattern")) {
return { ...item, display: v === "number" };
} else if (key === "valueType" && (item.key === "originSqlContent" || item.key === "originFormulaContent")) { } else if (key === "valueType" && (item.key === "originSqlContent" || item.key === "originFormulaContent")) {
return { return {
...item, ...item,