产品-多语言话

This commit is contained in:
黎永顺 2023-04-14 13:29:21 +08:00
parent f4f024867b
commit 5545b59b3a
23 changed files with 325 additions and 381 deletions

View File

@ -1,12 +1,14 @@
import React from "react";
import { WeaLocaleProvider } from "ecCom";
import "./index.less";
const getLabel = WeaLocaleProvider.getLabel;
export default class TipLabel extends React.Component {
render() {
return (
<div className="tipLabelWrapper">
<div className="titleWrapper">
<span className="title">{this.props.title ? this.props.title : "小提示"}</span>
<span className="title">{this.props.title ? this.props.title : getLabel(111, "小提示")}</span>
</div>
<div className="tipContentWrapper">
{this.props.tipList && this.props.tipList.map(item => <div className="tipContentItem">{item}</div>)}

View File

@ -1,5 +1,5 @@
import React from "react";
import { WeaDialog, WeaSteps } from "ecCom";
import { WeaDialog, WeaLocaleProvider, WeaSteps } from "ecCom";
import { Button, message } from "antd";
import { inject, observer } from "mobx-react";
import { toJS } from "mobx";
@ -9,6 +9,7 @@ import ModalStep1 from "./modalStep1";
import ModalStep2 from "./modalStep2";
import ModalStep3 from "./modalStep3";
const getLabel = WeaLocaleProvider.getLabel;
const Step = WeaSteps.Step;
@inject("taxAgentStore")
@ -45,8 +46,8 @@ export default class ImportModal extends React.Component {
if (this.props.renderFormComponent) {
params && Object.keys(params).forEach((key) => {
if (!params[key] || params[key] == "") {
message.warning("请完善导入选项");
throw new Error("请完善导入选项");
message.warning(getLabel(111, "请完善导入选项"));
throw new Error(getLabel(111, "请完善导入选项"));
}
});
}
@ -64,7 +65,7 @@ export default class ImportModal extends React.Component {
if (this.state.fileId) {
this.props.setStep(1);
} else {
message.warning("请上传文件");
message.warning(getLabel(111, "请上传文件"));
}
}
@ -102,7 +103,7 @@ export default class ImportModal extends React.Component {
const { step, slideDataSource, isInit, isStandingBook, params, needimportSelected } = this.props;
return (
<WeaDialog
title="数据导入" visible={this.props.visiable}
title={getLabel(111, "数据导入")} visible={this.props.visiable}
onCancel={() => {
localStorage.removeItem("fileList");
this.props.onCancel();
@ -113,26 +114,26 @@ export default class ImportModal extends React.Component {
initLoadCss
buttons={
this.props.step === 0 ? [
<Button type="primary" onClick={() => this.handleStep1Next()}>下一步</Button>
<Button type="primary" onClick={() => this.handleStep1Next()}>{getLabel(111, "下一步")}</Button>
] : this.props.step === 1 ? [
<Button type="primary" onClick={() => this.preStep()}>上一步</Button>,
<Button type="primary" onClick={() => this.preStep()}>{getLabel(111, "上一步")}</Button>,
<Button type="primary" onClick={() => {
this.nextStep();
this.hanleImportData();
}}>下一步</Button>
}}>{getLabel(111, "下一步")}</Button>
] : [
<Button type="primary" onClick={() => {
localStorage.removeItem("fileList");
this.props.onFinish();
}}>完成</Button>
}}>{getLabel(111, "完成")}</Button>
]
}
>
<div className="stepWrapper">
<WeaSteps current={step}>
<Step description="上传Excel"/>
<Step description="数据预览"/>
<Step description="导入数据"/>
<Step description={getLabel(111, "数据预览")}/>
<Step description={getLabel(111, "导入数据")}/>
</WeaSteps>
</div>
{

View File

@ -1,9 +1,11 @@
import React from "react";
import { WeaCheckbox,WeaTools } from "ecCom";
import { WeaCheckbox, WeaLocaleProvider, WeaTools } from "ecCom";
import { inject, observer } from "mobx-react";
import { Icon, message, Upload } from "antd";
const Dragger = Upload.Dragger;
const getLabel = WeaLocaleProvider.getLabel;
;
@inject("taxAgentStore")
@observer
@ -14,7 +16,7 @@ export default class ModalStep1 extends React.Component {
datetime: "",
taxAgentId: "",
hasData: "0",
fileList: WeaTools.ls.getJSONObj('fileList') || []
fileList: WeaTools.ls.getJSONObj("fileList") || []
};
}
@ -52,7 +54,7 @@ export default class ModalStep1 extends React.Component {
this.props.onFileIdChange("");
}
this.setState({ fileList },()=>localStorage.setItem("fileList", JSON.stringify(this.state.fileList)));
this.setState({ fileList }, () => localStorage.setItem("fileList", JSON.stringify(this.state.fileList)));
}
render() {
@ -77,7 +79,7 @@ export default class ModalStep1 extends React.Component {
{
this.props.formComponent && <div className="stepInformItem">
<div className="stepInformTitle" style={{ margin: "10px 0 10px 0" }}>
导入选项
{getLabel(111, "导入选项")}
</div>
<div className="formWrapper" style={{ border: "1px solid #eee", borderRadiu: "5px", padding: "10px" }}>
{this.props.formComponent}
@ -87,7 +89,7 @@ export default class ModalStep1 extends React.Component {
<div className="stepInformItem">
<div className="stepInformTitle" style={{ margin: "10px 0 10px 0" }}>
导入Excel
{getLabel(111, "导入Excel")}
</div>
<div>
<Dragger {...dragger} fileList={this.state.fileList}>
@ -95,8 +97,9 @@ export default class ModalStep1 extends React.Component {
<p className="ant-upload-drag-icon">
<Icon type="inbox"/>
</p>
<p className="ant-upload-text">点击或将文件拖拽到此区域上传</p>
<p className="ant-upload-hint">支持单个或批量上传严禁上传公司内部资料及其他违禁文件</p>
<p className="ant-upload-text">{getLabel(111, "点击或将文件拖拽到此区域上传")}</p>
<p
className="ant-upload-hint">{getLabel(111, "支持单个或批量上传,严禁上传公司内部资料及其他违禁文件")}</p>
</div>
</Dragger>
</div>
@ -105,11 +108,11 @@ export default class ModalStep1 extends React.Component {
<div className="stepInformItem">
<div className="stepInformTitle" style={{ margin: "10px 0 10px 0" }}>
操作步骤
{getLabel(111, "操作步骤")}
</div>
<div style={{ lineHeight: "30px" }}>
<p>1. 第一步请选择导出的Excel文件或
<p>{`1. ${getLabel(111, "第一步")},${getLabel(111, "请选择导出的Excel文件或")}`}
{
(typeof this.props.templateLink) == "string" ?
<a href="javascript:void(0);" onClick={() => {
@ -118,8 +121,8 @@ export default class ModalStep1 extends React.Component {
try {
params && Object.keys(params).forEach((key) => {
if (!params[key] || params[key] == "") {
message.warning("请完善导入选项,再下载!");
throw new Error("请完善导入选项,再下载!");
message.warning(`${getLabel(111, "请完善导入选项")}, ${getLabel(111, "再下载")}`);
throw new Error(`${getLabel(111, "请完善导入选项")}, ${getLabel(111, "再下载")}`);
} else {
if (url.indexOf("?") > 0) {
url = `${url}&${key}=${params[key]}`;
@ -133,11 +136,11 @@ export default class ModalStep1 extends React.Component {
}
}
window.open(url, "_blank");
}}>点击这里下载模板</a>
}}>{getLabel(111, "点击这里下载模板")}</a>
:
<a onClick={() => {
this.props.templateLink(hasData === "1" ? `true` : `false`);
}}>点击这里下载模板</a>
}}>{getLabel(111, "点击这里下载模板")}</a>
}
{this.props.headerSetCompoent && this.props.headerSetCompoent};
@ -145,31 +148,33 @@ export default class ModalStep1 extends React.Component {
this.props.isInit &&
<WeaCheckbox
value={hasData}
content="导出现有数据"
helpfulTip="提示:建议先导出现有最新数据,修改后再导入"
content={getLabel(111, "导出现有数据")}
helpfulTip={`${getLabel(111, "提示")}:${getLabel(111, "建议先导出现有最新数据")}${getLabel(111, "修改后再导入")}`}
style={{ marginLeft: 10 }}
onChange={(hasData) => this.setState({ hasData })}
/>
}
</p>
<p>2. 第二步请一定要确定Excel文档中的格式是模板中的格式没有被修改掉</p>
<p>3. 第三步选择填写好的Excel文档点击下一步按钮进行数据预览</p>
<p>4. 第四步如果以上步骤和Excel文档正确的话数据会被正确导入导入成功会有提示如果有问题则会提示Excel文档的错误之处</p>
<p>{`2. ${getLabel(111, "第二步")},${getLabel(111, "请一定要确定Excel文档中的格式是模板中的格式")},${getLabel(111, "没有被修改掉")}`}</p>
<p>{`3. ${getLabel(111, "第三步")},${getLabel(111, "选择填写好的Excel文档")},${getLabel(111, "点击“下一步”按钮进行数据预览")}`}</p>
<p>
{`4. ${getLabel(111, "第四步")},${getLabel(111, "如果以上步骤和Excel文档正确的话")},${getLabel(111, "导入成功会有提示")},${getLabel(111, "数据会被正确导入")}${getLabel(111, "如果有问题")},${getLabel(111, "则会提示Excel文档的错误之处")}`}
</p>
</div>
</div>
<div className="stepInformItem">
<div className="stepInformTitle" style={{ margin: "10px 0 10px 0" }}>
Excel文件说明
{getLabel(111, "Excel文件说明")}
</div>
<div style={{ lineHeight: "30px" }}>
1. 后缀名为xls或者xlsx<br/>
2. 数据请勿放在合并的单元格中<br/>
{`1. ${getLabel(111, "后缀名为xls或者xlsx")};`}<br/>
{`2. ${getLabel(111, "数据请勿放在合并的单元格中")};`}<br/>
{
this.props.isStandingBook &&
<span>3. 账单月份格式必须为YYYY-MM</span>
<span>{`3. ${getLabel(111, "账单月份格式必须为")}:YYYY-MM`}</span>
}
</div>

View File

@ -1,13 +1,14 @@
import React from "react";
import successImg from "./success.svg";
import { Spin } from "antd";
import { WeaTable } from "ecCom";
import { WeaLocaleProvider, WeaTable } from "ecCom";
const getLabel = WeaLocaleProvider.getLabel;
export default class ModalStep3 extends React.Component {
componentWillMount() {
this.columns = [
{
title: "错误信息",
title: getLabel(111, "错误信息"),
dataIndex: "message",
key: "message"
}
@ -30,21 +31,21 @@ export default class ModalStep3 extends React.Component {
{importResult.successCount === undefined
? <div style={{ textAlign: "center", marginTop: "20px" }}>
<Spin/>
正在导入请稍后...
{`${getLabel(111, "正在导入请稍后")}...`}
</div>
: <div style={{ marginTop: "20px" }}>
<img src={successImg} style={{ marginBottom: "10px" }} alt=""/>
<div style={{ fontSize: "20px", marginBottom: "10px" }}>
数据导入完成
{getLabel(111, "数据导入完成")}
</div>
<div>
已导入
{getLabel(111, "已导入")}
<span style={{ color: "green" }}>
{importResult.successCount}{" "}
</span>
条数据失败<span style={{ color: "red" }}>
{`${getLabel(111, "条数据")},${getLabel(111, "失败")}`}<span style={{ color: "red" }}>
{importResult.errorCount}{" "}
</span>
</span>{getLabel(111, "")}
</div>
</div>}
<div>

View File

@ -1,8 +1,9 @@
import React from "react";
import { Button } from "antd";
import { WeaReqTop } from "ecCom";
import { WeaReqTop, WeaLocaleProvider } from "ecCom";
import "./index.less";
const getLabel = WeaLocaleProvider.getLabel;
export default class SlideModalTitle extends React.Component {
componentWillMount() { // 初始化渲染页面
this.state = {
@ -25,7 +26,7 @@ export default class SlideModalTitle extends React.Component {
icon={<i className="icon-coms-fa"/>}
iconBgcolor="#F14A2D"
buttons={(this.props.showOperateBtn && this.state.editable && this.props.selectedTab != 1) ? [
<Button type="primary" className="saveBtn" onClick={this.props.onSave} loading={loading}>保存</Button>
<Button type="primary" className="saveBtn" onClick={this.props.onSave} loading={loading}>{getLabel(111, "保存")}</Button>
] : !_.isEmpty(customOperate) ? customOperate : []}
showDropIcon={false}
dropMenuDatas={[]}

View File

@ -58,13 +58,13 @@ export default class MySalary extends React.Component {
}
});
columns.push({
title: "操作",
title: getLabel(30585, "操作"),
dataIndex: "operate",
render: (text, record) => {
return (
<a onClick={() => {
this.handleView(record);
}}>{getLabel(130277, "查看1")}</a>
}}>{getLabel(33564, "查看")}</a>
);
}
});

View File

@ -2,7 +2,7 @@ import React from "react";
import { inject, observer } from "mobx-react";
import { message } from "antd";
import { toJS } from "mobx";
import { WeaSearchGroup } from "ecCom";
import { WeaSearchGroup, WeaLocaleProvider } from "ecCom";
import {
ConsistentWelfare,
SocialDatePicker,
@ -13,6 +13,7 @@ import {
} from "./socialSecurityForm";
import "./index.less";
const getLabel = WeaLocaleProvider.getLabel;
@inject("archivesStore")
@observer
export default class AccumulationFundForm extends React.Component {
@ -66,7 +67,7 @@ export default class AccumulationFundForm extends React.Component {
const { min, max, domkey } = it;
const minNum = !_.isNil(min) ? Number(min) : 0, maxNum = !_.isNil(max) ? Number(max) : 0;
if ((val < minNum || val > maxNum) && !_.isNil(min) && !_.isNil(max) && (!!maxNum || !!minNum)) {
message.warning("超出所选缴纳方案设置的基数上下限范围,将自动按基数上下限填充。");
message.warning(`${getLabel(111, "超出所选缴纳方案设置的基数上下限范围,将自动按基数上下限填充")}`);
paymentData = {
...paymentData,
[domkey[0]]: (val < minNum && !!minNum) ? minNum : (val > maxNum && !!maxNum) ? maxNum : val
@ -108,7 +109,7 @@ export default class AccumulationFundForm extends React.Component {
{
com: SocialDatePicker({
key: "fundStartTime",
label: "公积金起始缴纳月",
label: getLabel(111, "公积金起始缴纳月"),
viewAttr: fundSchemeId ? 3 : 2,
value: fundStartTime,
disabledDate: (current) => {
@ -120,7 +121,7 @@ export default class AccumulationFundForm extends React.Component {
{
com: SocialEditInput({
key: "fundAccount",
label: "公积金账号",
label: getLabel(111, "公积金账号"),
value: fundAccount,
onChange: this.handleFormChange
})
@ -128,7 +129,7 @@ export default class AccumulationFundForm extends React.Component {
{
com: SocialDatePicker({
key: "fundEndTime",
label: "公积金最后缴纳月",
label: getLabel(111, "公积金最后缴纳月"),
value: fundEndTime,
disabledDate: (current) => {
return current && fundStartTime && current.getTime() < new Date(fundStartTime).getTime();
@ -139,7 +140,7 @@ export default class AccumulationFundForm extends React.Component {
{
com: SocialEditInput({
key: "supplementFundAccount",
label: "补充公积金账号",
label: getLabel(111, "补充公积金账号"),
value: supplementFundAccount,
onChange: this.handleFormChange
})
@ -148,7 +149,7 @@ export default class AccumulationFundForm extends React.Component {
return (
<div className="socialFormWrapper">
<WeaSearchGroup
title="公积金基础信息"
title={getLabel(111, "公积金基础信息")}
customComponent={<SocialTitle keyname="nonPayment" value={!_.isNil(nonPayment) ? nonPayment.toString() : "0"}
onChange={this.handleFormChange}/>}
items={foundItems} col={2} showGroup needTigger={false}/>

View File

@ -1,8 +1,9 @@
import React from "react";
import { WeaFormItem, WeaInput, WeaSearchGroup } from "ecCom";
import { WeaFormItem, WeaInput, WeaLocaleProvider, WeaSearchGroup } from "ecCom";
import { inject, observer } from "mobx-react";
import "./index.less";
const getLabel = WeaLocaleProvider.getLabel;
@inject("archivesStore")
@observer
export default class BaseForm extends React.Component {
@ -16,20 +17,20 @@ export default class BaseForm extends React.Component {
const { username, department, position, telephone, hiredate, dimissionDate } = baseFormData;
const { paymentOrganizationName } = record;
const baseItems = [
{ com: Input("姓名", username) },
{ com: Input("部门", department) },
{ com: Input("岗位", position) },
{ com: Input("手机号", telephone) },
{ com: Input("入职日期", hiredate) },
{ com: Input("合同到期日期", dimissionDate) }
{ com: Input(getLabel(111, "姓名"), username) },
{ com: Input(getLabel(111, "部门"), department) },
{ com: Input(getLabel(111, "岗位"), position) },
{ com: Input(getLabel(111, "手机号"), telephone) },
{ com: Input(getLabel(111, "入职日期"), hiredate) },
{ com: Input(getLabel(111, "合同到期日期"), dimissionDate) }
];
const taxagentItems = [
{ com: Input("个税扣缴义务人", paymentOrganizationName) }
{ com: Input(getLabel(111, "个税扣缴义务人"), paymentOrganizationName) }
];
return (
<div className="socialFormWrapper">
<WeaSearchGroup title="基本信息" items={baseItems} col={1} showGroup/>
<WeaSearchGroup title="个税扣缴义务人" items={taxagentItems} col={1} showGroup/>
<WeaSearchGroup title={getLabel(111, "基本信息")} items={baseItems} col={1} showGroup/>
<WeaSearchGroup title={getLabel(111, "个税扣缴义务人")} items={taxagentItems} col={1} showGroup/>
</div>
);
}

View File

@ -1,30 +1,33 @@
import { WeaFormItem, WeaInput, WeaLocaleProvider, WeaSearchGroup } from "ecCom";
const getLabel = WeaLocaleProvider.getLabel;
export const tabCondition = [
{
color: "#000000",
groupid: "stayAdd",
showcount: true,
title: "待增员",
title: getLabel(111, "待增员"),
viewcondition: "pending"
},
{
color: "#000000",
groupid: "paying",
showcount: true,
title: "在缴员工",
title: getLabel(111, "在缴员工"),
viewcondition: "fixed"
},
{
color: "#000000",
groupid: "stayDel",
showcount: true,
title: "待减员",
title: getLabel(111, "待减员"),
viewcondition: "suspend"
},
{
color: "#000000",
groupid: "stopPay",
showcount: true,
title: "停缴员工",
title: getLabel(111, "停缴员工"),
viewcondition: "stop"
}
];

View File

@ -2,7 +2,7 @@ import React from "react";
import { inject, observer } from "mobx-react";
import { toJS } from "mobx";
import { Button, Dropdown, Menu, message, Modal, Popover } from "antd";
import { WeaHelpfulTip, WeaNewScroll, WeaSlideModal, WeaTab, WeaTop } from "ecCom";
import { WeaHelpfulTip, WeaLocaleProvider, WeaNewScroll, WeaSlideModal, WeaTab, WeaTop } from "ecCom";
import { getSearchs, renderLoading } from "../../../util";
import BaseForm from "./baseForm";
import SlideModalTitle from "../../../components/slideModalTitle";
@ -16,6 +16,7 @@ import TipLabel from "../../../components/TipLabel";
import UnifiedTable from "../../../components/UnifiedTable";
import "./index.less";
const getLabel = WeaLocaleProvider.getLabel;
@inject("archivesStore", "taxAgentStore")
@observer
export default class Archives extends React.Component {
@ -117,13 +118,13 @@ export default class Archives extends React.Component {
});
return tmpV.length > 0 ? [
...tmpV, {
title: "操作",
title: getLabel(30585, "操作"),
dataIndex: "operate",
render: (text, record) => {
return (
<div className="optWrapper">
<a href="javascript:void(0);" className="mr10"
onClick={() => this.handleEdit(record)}>{(showOperateBtn && selectedKey !== "stop") ? "编辑" : "查看"}</a>
onClick={() => this.handleEdit(record)}>{(showOperateBtn && selectedKey !== "stop") ? getLabel(111, "编辑") : getLabel(111, "查看")}</a>
{
showOperateBtn && selectedKey === "pending" &&
<Popover
@ -134,14 +135,14 @@ export default class Archives extends React.Component {
this.stayAddToPay([record.baseInfo]);
} else {
Modal.warning({
title: "信息确认",
content: `确定要删除该条待办人员吗`,
title: getLabel(111, "信息确认"),
content: `${getLabel(111, "确定要删除该条待办人员吗")}`,
onOk: () => this.deleteTodoList({ runStatus: "4", ids: [record.baseInfo] })
});
}
}}>
<Menu.Item key="addMember">增员</Menu.Item>
<Menu.Item key="stopSalary">删除待办</Menu.Item>
<Menu.Item key="addMember">{getLabel(111, "增员")}</Menu.Item>
<Menu.Item key="stopSalary">{getLabel(111, "删除待办")}</Menu.Item>
</Menu>} title="">
<i className="icon-coms-more"/>
</Popover>
@ -154,16 +155,16 @@ export default class Archives extends React.Component {
content={<Menu onClick={({ key }) => {
if (key === "stopSalary") {
Modal.confirm({
title: "信息确认",
content: `确定要删除该条待办人员吗`,
title: getLabel(111, "信息确认"),
content: `${getLabel(111, "确定要删除该条待办人员吗")}`,
onOk: () => this.cancelStayDel({ runStatus: "3", ids: [record.baseInfo] })
});
} else {
this.stayDelToStop([record.baseInfo]);
}
}}>
<Menu.Item key="stayDelToStop">减员</Menu.Item>
<Menu.Item key="stopSalary">删除待办</Menu.Item>
<Menu.Item key="stayDelToStop">{getLabel(111, "减员")}</Menu.Item>
<Menu.Item key="stopSalary">{getLabel(111, "删除待办")}</Menu.Item>
</Menu>} title="">
<i className="icon-coms-more"/>
</Popover>
@ -176,7 +177,7 @@ export default class Archives extends React.Component {
content={<Menu onClick={({ key }) => {
if (key === "stopPaying") this.cancelStopPayment([record.baseInfo]);
}}>
<Menu.Item key="stopPaying">取消停缴</Menu.Item>
<Menu.Item key="stopPaying">{getLabel(111, "取消停缴")}</Menu.Item>
</Menu>} title="">
<i className="icon-coms-more"/>
</Popover>
@ -198,8 +199,8 @@ export default class Archives extends React.Component {
const { socialSchemeId, socialStartTime } = data;
if (socialSchemeId && !socialStartTime) {
Modal.warning({
title: "信息确认",
content: "必要信息不完整,红色*为必填项"
title: getLabel(111, "信息确认"),
content: `${getLabel(111, "必要信息不完整,红色*为必填项")}`
});
return;
}
@ -211,8 +212,8 @@ export default class Archives extends React.Component {
const { fundSchemeId, fundStartTime } = data;
if (fundSchemeId && !fundStartTime) {
Modal.warning({
title: "信息确认",
content: "必要信息不完整,红色*为必填项"
title: getLabel(111, "信息确认"),
content: `${getLabel(111, "必要信息不完整,红色*为必填项")}`
});
return;
}
@ -224,8 +225,8 @@ export default class Archives extends React.Component {
const { otherSchemeId, otherStartTime } = data;
if (otherSchemeId && !otherStartTime) {
Modal.warning({
title: "信息确认",
content: "必要信息不完整,红色*为必填项"
title: getLabel(111, "信息确认"),
content: `${getLabel(111, "必要信息不完整,红色*为必填项")}`
});
return;
}
@ -338,13 +339,13 @@ export default class Archives extends React.Component {
if (status) {
const { msg, type } = data;
if (type === "fail") {
message.error(msg || "操作失败");
message.error(msg || getLabel(111, "操作失败"));
} else if (type === "success") {
message.success(msg || "操作成功!");
message.success(msg || getLabel(111, "操作成功"));
this.query();
}
} else {
message.error(errormsg || "操作失败!");
message.error(errormsg || getLabel(111, "操作失败"));
}
});
} else if (selectedKey === "suspend") {
@ -353,13 +354,13 @@ export default class Archives extends React.Component {
if (status) {
const { msg, type } = data;
if (type === "fail") {
message.error(msg || "操作失败");
message.error(msg || getLabel(111, "操作失败"));
} else if (type === "success") {
message.success(msg || "操作成功!");
message.success(msg || getLabel(111, "操作成功"));
this.query();
}
} else {
message.error(errormsg || "操作失败!");
message.error(errormsg || getLabel(111, "操作失败"));
}
});
}
@ -367,7 +368,7 @@ export default class Archives extends React.Component {
handleMenuItemClick = ({ key }) => {
const { selectedRowKeys, selectedKey } = this.state;
if (selectedRowKeys.length === 0) {
message.warning("未选择任何条目", 1);
message.warning(getLabel(111, "未选择任何条目"), 1);
return;
}
switch (selectedKey) {
@ -399,14 +400,14 @@ export default class Archives extends React.Component {
if (status) {
const { msg, type } = data;
if (type === "fail") {
message.error(msg || "操作失败");
message.error(msg || getLabel(111, "操作失败"));
} else if (type === "success") {
message.success(msg || "操作成功");
message.success(msg || getLabel(111, "操作成功"));
this.query();
this.onSelectChange([]);
}
} else {
message.error(errormsg || "操作失败");
message.error(errormsg || getLabel(111, "操作失败"));
}
});
};
@ -416,14 +417,14 @@ export default class Archives extends React.Component {
if (status) {
const { msg, type } = data;
if (type === "fail") {
message.error(msg || "操作失败");
message.error(msg || getLabel(111, "操作失败"));
} else if (type === "success") {
message.success(msg || "操作成功");
message.success(msg || getLabel(111, "操作成功"));
this.query();
this.onSelectChange([]);
}
} else {
message.error(errormsg || "操作失败");
message.error(errormsg || getLabel(111, "操作失败"));
}
});
};
@ -432,11 +433,11 @@ export default class Archives extends React.Component {
cancelStopPayment = (payload) => {
API.cancelStopPayment(payload).then(({ status, errormsg }) => {
if (status) {
message.success("操作成功");
message.success(getLabel(111, "操作成功"));
this.query();
this.onSelectChange([]);
} else {
message.error(errormsg || "操作失败");
message.error(errormsg || getLabel(111, "操作失败"));
}
});
};
@ -444,11 +445,11 @@ export default class Archives extends React.Component {
deleteTodoList = (payload) => {
API.updateRunStatus(payload).then(({ status, errormsg }) => {
if (status) {
message.success("操作成功");
message.success(getLabel(111, "操作成功"));
this.query();
this.onSelectChange([]);
} else {
message.error(errormsg || "操作失败");
message.error(errormsg || getLabel(111, "操作失败"));
}
});
};
@ -456,11 +457,11 @@ export default class Archives extends React.Component {
cancelStayDel = (payload) => {
API.cancelStayDel(payload).then(({ status, errormsg }) => {
if (status) {
message.success("操作成功");
message.success(getLabel(111, "操作成功"));
this.query();
this.onSelectChange([]);
} else {
message.error(errormsg || "操作失败");
message.error(errormsg || getLabel(111, "操作失败"));
}
});
};
@ -536,9 +537,9 @@ export default class Archives extends React.Component {
}, () => {
this.query();
});
}}>搜索</Button>,
<Button type="ghost" onClick={() => form.resetForm()}>重置</Button>,
<Button type="ghost" onClick={() => setShowSearchAd(false)}>取消</Button>
}}>{getLabel(111, "搜索")}</Button>,
<Button type="ghost" onClick={() => form.resetForm()}>{getLabel(111, "重置")}</Button>,
<Button type="ghost" onClick={() => setShowSearchAd(false)}>{getLabel(111, "取消")}</Button>
];
// 导出全部
@ -566,7 +567,7 @@ export default class Archives extends React.Component {
const handleMenuClick = () => {
const { selectedRowKeys } = this.state;
if (selectedRowKeys.length == 0) {
message.warning("未选择任何条目", 1);
message.warning(getLabel(111, "未选择任何条目"), 1);
return;
}
let ids = selectedRowKeys.join(",");
@ -591,13 +592,13 @@ export default class Archives extends React.Component {
const btns = selectedKey === "fixed" ? [
<Button type="primary" onClick={() => {
this.handleBtnImport("2");
}}>导入</Button>,
}}>{getLabel(111, "导入")}</Button>,
<Dropdown.Button onClick={handleButtonClick} overlay={
<Menu onClick={handleMenuClick}>
<Menu.Item key="1">导出选中</Menu.Item>
<Menu.Item key="1">{getLabel(111, "导出选中")}</Menu.Item>
</Menu>
} type="ghost">
导出全部
{getLabel(111, "导出全部")}
</Dropdown.Button>
] : selectedKey === "pending" ? [
<WeaHelpfulTip
@ -610,22 +611,22 @@ export default class Archives extends React.Component {
onClick={this.handleMenuBtnClick}
overlay={
<Menu onClick={this.handleMenuItemClick}>
<Menu.Item key="1">批量增员</Menu.Item>
<Menu.Item key="4">批量删除待办</Menu.Item>
<Menu.Item key="1">{getLabel(111, "批量增员")}</Menu.Item>
<Menu.Item key="4">{getLabel(111, "批量删除待办")}</Menu.Item>
</Menu>
} type="ghost"
>
全量增员
{getLabel(111, "全量增员")}
</Dropdown.Button>,
<Button type="primary" onClick={() => {
this.handleBtnImport("1");
}}>导入</Button>,
}}>{getLabel(111, "导入")}</Button>,
<Dropdown.Button onClick={handleButtonClick} overlay={
<Menu onClick={handleMenuClick}>
<Menu.Item key="1">导出选中</Menu.Item>
<Menu.Item key="1">{getLabel(111, "导出选中")}</Menu.Item>
</Menu>
} type="ghost">
导出全部
{getLabel(111, "导出全部")}
</Dropdown.Button>
] : selectedKey === "suspend" ? [
<WeaHelpfulTip
@ -637,20 +638,20 @@ export default class Archives extends React.Component {
onClick={this.handleMenuBtnClick}
overlay={
<Menu onClick={this.handleMenuItemClick}>
<Menu.Item key="1">批量减员</Menu.Item>
<Menu.Item key="2">批量删除待办</Menu.Item>
<Menu.Item key="1">{getLabel(111, "批量减员")}</Menu.Item>
<Menu.Item key="2">{getLabel(111, "批量删除待办")}</Menu.Item>
</Menu>
}
type="primary"
>
全量减员
{getLabel(111, "全量减员")}
</Dropdown.Button>,
<Dropdown.Button onClick={handleButtonClick} overlay={
<Menu onClick={handleMenuClick}>
<Menu.Item key="1">导出选中</Menu.Item>
<Menu.Item key="1">{getLabel(111, "导出选中")}</Menu.Item>
</Menu>
} type="ghost">
导出全部
{getLabel(111, "导出全部")}
</Dropdown.Button>
] : [
<WeaHelpfulTip
@ -658,13 +659,13 @@ export default class Archives extends React.Component {
title={<CancelHelpfulDiv/>}
placement="topLeft"
/>,
<Button type="primary" onClick={() => this.cancelStopPayment(selectedRowKeys)}>批量取消停缴</Button>,
<Button type="primary" onClick={() => this.cancelStopPayment(selectedRowKeys)}>{getLabel(111, "批量取消停缴")}</Button>,
<Dropdown.Button onClick={handleButtonClick} overlay={
<Menu onClick={handleMenuClick}>
<Menu.Item key="1">导出选中</Menu.Item>
<Menu.Item key="1">{getLabel(111, "导出选中")}</Menu.Item>
</Menu>
} type="ghost">
导出全部
{getLabel(111, "导出全部")}
</Dropdown.Button>
];
@ -672,7 +673,7 @@ export default class Archives extends React.Component {
current: pageInfo.current,
pageSize: pageInfo.pageSize,
total: pageInfo.total,
showTotal: total => `${total}`,
showTotal: total => `${getLabel(111, "共")} ${total} ${getLabel(111, "条")}`,
showQuickJumper: true,
showSizeChanger: true,
pageSizeOptions: ["10", "20", "50", "100"],
@ -695,7 +696,7 @@ export default class Archives extends React.Component {
return (
<div className="mySalaryBenefitsWrapper">
<WeaTop
title="社保福利档案" // 文字
title={getLabel(111, "社保福利档案")} // 文字
icon={<i className="icon-coms-fa"/>} // 左侧图标
iconBgcolor="#F14A2D" // 左侧图标背景色
showDropIcon={false} // 是否显示下拉按钮
@ -713,7 +714,7 @@ export default class Archives extends React.Component {
setShowSearchAd={bool => setShowSearchAd(bool)} //高级搜索面板受控
searchsAd={getSearchs(form, toJS(condition), 2)} // 高级搜索内部数据
buttonsAd={adBtn} // 高级搜索内部按钮
searchsBasePlaceHolder={"请输入姓名"}
searchsBasePlaceHolder={getLabel(111, "请输入姓名")}
onSearch={() => {
this.setState({
pageInfo: {
@ -760,17 +761,17 @@ export default class Archives extends React.Component {
direction="right"
title={
<SlideModalTitle
subtitle={"员工福利档案"}
subtitle={getLabel(111, "员工福利档案")}
tabs={[
{ title: "基础设置", key: 0 }, { title: "社保", key: 1 },
{ title: "公积金", key: 2 }, { title: "企业年金及其他福利", key: 3 }]
{ title: getLabel(111, "基础设置"), key: 0 }, { title: getLabel(111, "社保"), key: 1 },
{ title: getLabel(111, "公积金"), key: 2 }, { title: getLabel(111, "企业年金及其他福利"), key: 3 }]
}
editable={false}
selectedTab={selectedTab}
showOperateBtn={showOperateBtn}
customOperate={
(showOperateBtn && selectedKey !== "stop" && selectedTab != 0) ?
[<Button type="primary" onClick={() => this.handleEditSlideSave()}>保存</Button>] : []
[<Button type="primary" onClick={() => this.handleEditSlideSave()}>{getLabel(111, "保存")}</Button>] : []
}
subItemChange={selectedTab => this.setState({ selectedTab })}
/>

View File

@ -1,7 +1,7 @@
import React from "react";
import { inject, observer } from "mobx-react";
import { message } from "antd";
import { WeaSearchGroup } from "ecCom";
import { WeaSearchGroup, WeaLocaleProvider } from "ecCom";
import { toJS } from "mobx";
import {
ConsistentWelfare,
@ -12,6 +12,7 @@ import {
} from "./socialSecurityForm";
import "./index.less";
const getLabel = WeaLocaleProvider.getLabel;
@inject("archivesStore")
@observer
export default class OtherForm extends React.Component {
@ -65,7 +66,7 @@ export default class OtherForm extends React.Component {
const { min, max, domkey } = it;
const minNum = !_.isNil(min) ? Number(min) : 0, maxNum = !_.isNil(max) ? Number(max) : 0;
if ((val < minNum || val > maxNum) && !_.isNil(min) && !_.isNil(max) && (!!maxNum || !!minNum)) {
message.warning("超出所选缴纳方案设置的基数上下限范围,将自动按基数上下限填充。");
message.warning(`${getLabel(111, "超出所选缴纳方案设置的基数上下限范围,将自动按基数上下限填充")}`);
paymentData = {
...paymentData,
[domkey[0]]: (val < minNum && !!minNum) ? minNum : (val > maxNum && !!maxNum) ? maxNum : val
@ -104,7 +105,7 @@ export default class OtherForm extends React.Component {
{
com: SocialDatePicker({
key: "otherStartTime",
label: "其他福利起始缴纳月",
label: getLabel(111, "其他福利起始缴纳月"),
viewAttr: otherSchemeId ? 3 : 2,
value: otherStartTime,
disabledDate: (current) => {
@ -116,7 +117,7 @@ export default class OtherForm extends React.Component {
{
com: SocialDatePicker({
key: "otherEndTime",
label: "其他福利最后缴纳月",
label: getLabel(111, "其他福利最后缴纳月"),
value: otherEndTime,
disabledDate: (current) => {
return current && otherStartTime && current.getTime() < new Date(otherStartTime).getTime();
@ -128,7 +129,7 @@ export default class OtherForm extends React.Component {
return (
<div className="socialFormWrapper">
<WeaSearchGroup
title="其他福利基础信息"
title={getLabel(111, "其他福利基础信息")}
customComponent={<SocialTitle keyname="nonPayment" value={!_.isNil(nonPayment) ? nonPayment.toString() : "0"}
onChange={this.handleFormChange}/>}
items={otherItems} col={2} showGroup needTigger={false}/>

View File

@ -1,10 +1,11 @@
import React from "react";
import { WeaCheckbox, WeaDatePicker, WeaFormItem, WeaInput, WeaInputNumber, WeaSearchGroup, WeaSelect } from "ecCom";
import { WeaCheckbox, WeaDatePicker, WeaFormItem, WeaInput, WeaInputNumber, WeaSearchGroup, WeaSelect, WeaLocaleProvider } from "ecCom";
import { message } from "antd";
import { inject, observer } from "mobx-react";
import { toJS } from "mobx";
import "./index.less";
const getLabel = WeaLocaleProvider.getLabel;
@inject("archivesStore")
@observer
export default class SocialSecurityForm extends React.Component {
@ -64,7 +65,7 @@ export default class SocialSecurityForm extends React.Component {
const { min, max, domkey } = it;
const minNum = !_.isNil(min) ? Number(min) : 0, maxNum = !_.isNil(max) ? Number(max) : 0;
if ((val < minNum || val > maxNum) && !_.isNil(min) && !_.isNil(max) && (!!maxNum || !!minNum)) {
message.warning("超出所选缴纳方案设置的基数上下限范围,将自动按基数上下限填充。");
message.warning(`${getLabel(111, "超出所选缴纳方案设置的基数上下限范围,将自动按基数上下限填充")}`);
paymentData = {
...paymentData,
[domkey[0]]: (val < minNum && !!minNum) ? minNum : (val > maxNum && !!maxNum) ? maxNum : val
@ -106,7 +107,7 @@ export default class SocialSecurityForm extends React.Component {
{
com: SocialDatePicker({
key: "socialStartTime",
label: "社保起始缴纳月",
label: getLabel(111, "社保起始缴纳月"),
viewAttr: socialSchemeId ? 3 : 2,
value: socialStartTime,
disabledDate: (current) => {
@ -118,7 +119,7 @@ export default class SocialSecurityForm extends React.Component {
{
com: SocialEditInput({
key: "schemeAccount",
label: "社保账号",
label: getLabel(111, "社保账号"),
value: schemeAccount,
onChange: this.handleFormChange
})
@ -126,7 +127,7 @@ export default class SocialSecurityForm extends React.Component {
{
com: SocialDatePicker({
key: "socialEndTime",
label: "社保最后缴纳月",
label: getLabel(111, "社保最后缴纳月"),
value: socialEndTime,
disabledDate: (current) => {
return current && socialStartTime && current.getTime() < new Date(socialStartTime).getTime();
@ -138,7 +139,7 @@ export default class SocialSecurityForm extends React.Component {
return (
<div className="socialFormWrapper">
<WeaSearchGroup
title="社保基础信息"
title={getLabel(111, "社保基础信息")}
customComponent={<SocialTitle keyname="nonPayment" value={!_.isNil(nonPayment) ? nonPayment.toString() : "0" }
onChange={this.handleFormChange}/>}
items={socialItems} col={2} showGroup needTigger={false}/>
@ -169,7 +170,7 @@ export default class SocialSecurityForm extends React.Component {
export const ConsistentWelfare = (props) => {
const { onChange, onBlurChange, value } = props;
return <div className="welfareBaseWrapper">
<span className="title">各项福利基数一致</span>
<span className="title">{`${getLabel(111, "各项福利基数一致")}`}</span>
<WeaInputNumber
style={{ width: 100 }}
onBlur={onBlurChange}
@ -181,7 +182,7 @@ export const ConsistentWelfare = (props) => {
};
export const SocialTitle = (props) => {
const { value, onChange, keyname: key } = props;
return <WeaCheckbox value={value} content="暂不缴纳" onChange={(val) => onChange({ key, value: val })}/>;
return <WeaCheckbox value={value} content={getLabel(111, "暂不缴纳")} onChange={(val) => onChange({ key, value: val })}/>;
};
export const SocialSelect = (props) => {
const { key, value, onChange, options, label, labelColSpan = 12, wrapperColSpan = 12 } = props;

View File

@ -1,171 +1,92 @@
import { WeaLocaleProvider } from "ecCom";
const getLabel = WeaLocaleProvider.getLabel;
// 社保
export const socialSecurityColumns = [{
title: "方案名称",
title: getLabel(111, "方案名称"),
dataIndex: "title",
key: "title"
}, {
title: "缴纳类型",
title: getLabel(111, "缴纳类型"),
dataIndex: "username",
key: "username"
}, {
title: "缴纳范围",
title: getLabel(111, "缴纳范围"),
dataIndex: "projectName",
key: "projectName"
}, {
title: "备注",
title: getLabel(111, "备注"),
dataIndex: "customer",
key: "customer"
}, {
title: "操作",
title: getLabel(111, "操作"),
dataIndex: "customer",
key: "customer"
}];
// 公积金
export const accumulationFundColumns = [{
title: "方案名称",
dataIndex: "title",
key: "title"
}, {
title: "缴纳类型",
dataIndex: "username",
key: "username"
}, {
title: "缴纳范围",
dataIndex: "projectName",
key: "projectName"
}, {
title: "备注",
dataIndex: "customer",
key: "customer"
}, {
title: "操作",
dataIndex: "customer",
key: "customer"
}];
// 企业年金及其他福利
export const otherBenefitsColumns = [
{
title: "方案名称",
dataIndex: "title",
key: "title"
},
{
title: "缴纳类型",
dataIndex: "title",
key: "title"
},
{
title: "缴纳范围",
dataIndex: "title",
key: "title"
},
{
title: "备注",
dataIndex: "title",
key: "title"
},
{
title: "操作",
dataIndex: "title",
key: "title"
}
];
export const CustomBenefitsColumns = [
{
title: "福利名称",
dataIndex: "title",
key: "title"
},
{
title: "启用",
dataIndex: "title",
key: "title"
},
{
title: "类型",
dataIndex: "title",
key: "title"
},
{
title: "缴纳对象",
dataIndex: "title",
key: "title"
},
{
title: "操作",
dataIndex: "title",
key: "title"
}
];
export const insertUpdateColumns = [
{
title: "类型名称",
title: getLabel(111, "类型名称"),
dataIndex: "insuranceName",
key: "insuranceName",
width: 120,
fixed: 'left'
fixed: "left"
},
{
title: "是否缴费",
title: getLabel(111, "是否缴费"),
dataIndex: "isPayment",
key: "isPayment",
width: 100
},
{
title: "缴纳对象",
title: getLabel(111, "缴纳对象"),
dataIndex: "paymentScope",
key: "paymentScope",
width: 100
},
{
title: "缴纳周期",
title: getLabel(111, "缴纳周期"),
dataIndex: "paymentCycle",
key: "paymentCycle",
width: 200
},
{
title: "核算方式",
title: getLabel(111, "核算方式"),
dataIndex: "accountType",
key: "accountType",
width: 200
},
{
title: "基数下限",
title: getLabel(111, "基数下限"),
dataIndex: "lowerLimit",
key: "lowerLimit",
width: 100
},
{
title: "基数上限",
title: getLabel(111, "基数上限"),
dataIndex: "upperLimit",
key: "upperLimit",
width: 100
},
{
title: "缴纳比例%",
title: getLabel(111, "缴纳比例%"),
dataIndex: "paymentProportion",
key: "paymentProportion",
width: 100
},
{
title: "固定费用",
title: getLabel(111, "固定费用"),
dataIndex: "fixedCost",
key: "fixedCost",
width: 100
},
{
title: "有效小数位",
title: getLabel(111, "有效小数位"),
dataIndex: "validNum",
key: "validNum",
width: 100
},
{
title: "进位规则",
title: getLabel(111, "进位规则"),
dataIndex: "rententionRule",
key: "rententionRule",
width: 100

View File

@ -1,7 +1,8 @@
import React from "react";
import { WeaDialog, WeaError, WeaFormItem, WeaInput } from "ecCom";
import { WeaDialog, WeaError, WeaFormItem, WeaInput, WeaLocaleProvider } from "ecCom";
import "./index.less";
const getLabel = WeaLocaleProvider.getLabel;
export default class CopySchemaModal extends React.Component {
constructor(props) {
super(props);
@ -13,7 +14,7 @@ export default class CopySchemaModal extends React.Component {
render() {
return (
<WeaDialog
title={`复制${this.props.title}`}
title={`${getLabel(111, "复制")}${this.props.title}`}
initLoadCss
className="copyDialogWrapper"
buttons={this.props.footer}
@ -21,7 +22,7 @@ export default class CopySchemaModal extends React.Component {
visible={this.props.visible}>
<div className='contentWrapper'>
<WeaFormItem
label={`${this.props.title}名称`}
label={`${this.props.title}${getLabel(111, "名称")}`}
labelCol={{ span: 6 }}
wrapperCol={{ span: 18 }}
>
@ -29,7 +30,7 @@ export default class CopySchemaModal extends React.Component {
tipPosition="bottom"
ref="weaError"
style={{ width: "90%" }}
error={`${this.props.title}名称不能为空`}>
error={`${this.props.title}${getLabel(111, "名称不能为空")}`}>
<WeaInput
value={this.state.value}
style={{ width: "100%" }}

View File

@ -5,10 +5,12 @@
* Date: 2023/3/2
*/
import React, { Component } from "react";
import { WeaCheckbox, WeaTable } from "ecCom";
import { WeaCheckbox, WeaLocaleProvider, WeaTable } from "ecCom";
import { message, Modal } from "antd";
import { getCustomCategoryList, updateCustomCategoryStatus } from "../../../apis/welfareScheme";
const getLabel = WeaLocaleProvider.getLabel;
class CustomBenefitsTable extends Component {
constructor(props) {
super(props);
@ -70,14 +72,14 @@ class CustomBenefitsTable extends Component {
}
}
})), {
title: "操作",
title: getLabel(30585, "操作"),
width: 120,
dataIndex: "operate",
render: (_, record) => {
return (
<div className="linkWapper">
{showOperateBtn &&
<a href="javascript: void(0);" onClick={() => onCustomEdit(record)}>编辑</a>
<a href="javascript: void(0);" onClick={() => onCustomEdit(record)}>{getLabel(93, "编辑")}</a>
}
</div>
);
@ -86,16 +88,16 @@ class CustomBenefitsTable extends Component {
};
handleCustomBenefitsSwitch = ({ id }, isUse) => {
Modal.confirm({
title: "信息确认",
content: `确认要${isUse ? "启用" : "停用"}`,
title: getLabel(514612, "确认信息"),
content: `${getLabel(33703, "确认")}${isUse ? getLabel(31676, "启用") : getLabel(26471, "停用")}${getLabel(514612, "确认信息")}`,
onOk: () => {
const payload = { id, isUse };
updateCustomCategoryStatus(payload).then(({ status, errormsg }) => {
if (status) {
message.success("操作成功");
message.success(getLabel(30700, "操作成功"));
this.getCustomCategoryList();
} else {
message.error(errormsg || "操作失败");
message.error(errormsg || getLabel(30651, "操作失败"));
}
});
}
@ -106,7 +108,7 @@ class CustomBenefitsTable extends Component {
const { dataSource, pageInfo, loading } = this.state;
const pagination = {
...pageInfo,
showTotal: total => `${total}`,
showTotal: total => `${getLabel(83698, "共")} ${total} ${getLabel(18256, "条")}`,
showQuickJumper: true,
showSizeChanger: true,
pageSizeOptions: ["10", "20", "50", "100"],

View File

@ -1,10 +1,11 @@
import React from "react";
import { WeaDialog } from "ecCom";
import { WeaDialog, WeaLocaleProvider } from "ecCom";
import { Button } from "antd";
import { inject, observer } from "mobx-react";
import CustomForm from "../../../components/customForm";
import "./index.less";
const getLabel = WeaLocaleProvider.getLabel;
@inject("programmeStore")
@observer
export default class CustomNewModal extends React.Component {
@ -33,11 +34,11 @@ export default class CustomNewModal extends React.Component {
className="customFLOuter"
visible={this.props.visible}
onCancel={() => this.props.onCancel()}
title={this.props.edit ? "编辑自定义福利" : "新建自定义福利"}
title={this.props.edit ? getLabel(111, "编辑自定义福利") : getLabel(111, "新建自定义福利")}
style={{ height: "auto!important" }}
buttons={[
<Button type="ghost" onClick={() => this.props.onCancel()}>取消</Button>,
<Button type="primary" onClick={() => this.handleOK()}>确定</Button>
<Button type="ghost" onClick={() => this.props.onCancel()}>{getLabel(111, "取消")}</Button>,
<Button type="primary" onClick={() => this.handleOK()}>{getLabel(111, "确定")}</Button>
]}
>
<CustomForm

View File

@ -1,5 +1,5 @@
import React from "react";
import { WeaHelpfulTip, WeaInputNumber, WeaSelect, WeaTab, WeaTable } from "ecCom";
import { WeaHelpfulTip, WeaInputNumber, WeaLocaleProvider, WeaSelect, WeaTab } from "ecCom";
import { Switch, Table } from "antd";
import { insertUpdateColumns } from "./columns";
import { inject, observer } from "mobx-react";
@ -7,6 +7,7 @@ import PaymentPeriodModal from "./paymentPeriodModal";
import "./index.less";
import SchemeInfoForm from "./schemeInfoForm";
const getLabel = WeaLocaleProvider.getLabel;
@inject("programmeStore", "salaryFileStore", "taxAgentStore")
@observer
export default class DefaultSlideForm extends React.Component {
@ -159,32 +160,32 @@ export default class DefaultSlideForm extends React.Component {
{
key: "1",
selected: false,
showname: "原始数据"
showname: getLabel(111, "原始数据")
},
{
key: "2",
selected: false,
showname: "四舍五入"
showname: getLabel(111, "四舍五入")
},
{
key: "3",
selected: false,
showname: "向上舍入"
showname: getLabel(111, "向上舍入")
},
{
key: "4",
selected: false,
showname: "向下舍入"
showname: getLabel(111, "向下舍入")
},
{
key: "5",
selected: false,
showname: "见分进角"
showname: getLabel(111, "见分进角")
},
{
key: "6",
selected: false,
showname: "向上取偶"
showname: getLabel(111, "向上取偶")
}
];
item.render = (text, record) => {
@ -253,7 +254,7 @@ export default class DefaultSlideForm extends React.Component {
};
} else if (item.dataIndex === "paymentCycle") {
item.title = <div>
<span>缴纳周期</span>
<span>{getLabel(111, "缴纳周期")}</span>
<WeaHelpfulTip
style={{ paddingLeft: 8 }}
width={480}
@ -288,8 +289,8 @@ export default class DefaultSlideForm extends React.Component {
<div>
<WeaSelect
options={[
{ key: "0", showname: "月缴" },
{ key: "1", showname: "自定义" }
{ key: "0", showname: getLabel(111, "月缴") },
{ key: "1", showname: getLabel(131673, "自定义") }
]}
style={{ width: "80%" }}
value={text}
@ -306,7 +307,7 @@ export default class DefaultSlideForm extends React.Component {
record: record,
cycleSetting: record.cycleSetting || "000000000000"
}
})}>设置</a>
})}>{getLabel(68, "设置")}</a>
}
</div>
);
@ -315,15 +316,15 @@ export default class DefaultSlideForm extends React.Component {
item.render = (text, record) => {
if (record.paymentCycle === "0") {
return (
<div>基数*比例+固定费用</div>
<div>{getLabel(111, "基数*比例+固定费用")}</div>
);
} else {
return (
<WeaSelect
style={{ width: "100%" }}
options={[
{ key: "1", showname: "∑基数*比例+∑固定费用" },
{ key: "2", showname: "∑(基数*比例+固定费用)" }
{ key: "1", showname: getLabel(111, "∑基数*比例+∑固定费用") },
{ key: "2", showname: getLabel(111, "∑(基数*比例+固定费用)") }
]}
value={text}
onChange={v => {
@ -342,8 +343,8 @@ export default class DefaultSlideForm extends React.Component {
<div className="tableBar">
<WeaTab
datas={[
{ title: "个人", viewcondition: "PERSONAL" },
{ title: "公司", viewcondition: "COMPANY" }
{ title: getLabel(111, "个人"), viewcondition: "PERSONAL" },
{ title: getLabel(111, "公司"), viewcondition: "COMPANY" }
]}
keyParam="viewcondition"
selectedKey={this.state.selectedKey}

View File

@ -1,3 +1,6 @@
import { WeaLocaleProvider } from "ecCom";
const getLabel = WeaLocaleProvider.getLabel;
export const paymentScopeEnum = {
1: "SCOPE_COMPANY",
2: "SCOPE_PERSON"
@ -12,7 +15,7 @@ export const welfareTypeEnum = {
export const schemeFields = [
{
key: "paymentType",
label: "缴纳类型",
label: getLabel(111, "缴纳类型"),
type: "SELECT",
options: [
{
@ -23,12 +26,12 @@ export const schemeFields = [
{
key: "SCHEME_TOWN",
selected: true,
showname: "城镇"
showname: getLabel(111, "城镇"),
},
{
key: "SCHEME_VILLAGE",
selected: false,
showname: "农村"
showname: getLabel(111, "农村")
}
],
viewAttr: 3,
@ -36,28 +39,28 @@ export const schemeFields = [
},
{
key: "schemeName",
label: "方案名称",
label: getLabel(111, "方案名称"),
type: "INPUT",
viewAttr: 3,
tip: ""
},
{
key: "sharedType",
label: "可见性",
label: getLabel(111, "可见性"),
type: "SELECT",
viewAttr: 2,
tip: ""
},
{
key: "taxAgentIds",
label: "可见性范围",
label: getLabel(111, "可见性范围"),
type: "SELECT",
viewAttr: 3,
tip: ""
},
{
key: "remarks",
label: "备注",
label: getLabel(111, "备注"),
type: "TEXTAREA",
viewAttr: 2,
tip: ""

View File

@ -1,8 +1,8 @@
import React from "react";
import { inject, observer } from "mobx-react";
import { toJS } from "mobx";
import { Button, Dropdown, Menu, message, Modal, Switch } from "antd";
import { WeaNewScroll, WeaSelect, WeaSlideModal, WeaTop } from "ecCom";
import { Button, Dropdown, Menu, message, Modal } from "antd";
import { WeaLocaleProvider, WeaNewScroll, WeaSelect, WeaSlideModal, WeaTop } from "ecCom";
import { WeaTableNew } from "comsMobx";
import { renderNoright } from "../../../util"; // 渲染form数据的方法因为多个页面都会使用所以抽的公共方法在util中
import CustomTab from "../../../components/customTab";
@ -17,6 +17,7 @@ import CopySchemaModal from "./copySchemaModal";
import "./index.less";
import CustomBenefitsTable from "./customBenefitsTable";
const getLabel = WeaLocaleProvider.getLabel;
const WeaMobxTable = WeaTableNew.WeaTable;
@inject("programmeStore", "taxAgentStore", "salaryFileStore")
@ -74,7 +75,7 @@ export default class Programme extends React.Component {
onClick={() => {
this.onEdit(record);
}}>
编辑
{getLabel(93, "编辑")}
</a>
);
default:
@ -85,7 +86,7 @@ export default class Programme extends React.Component {
});
newColumns.push({
title: "操作",
title: getLabel(30585, "操作"),
dataIndex: "operate",
render: (text, record) => {
return (
@ -94,7 +95,7 @@ export default class Programme extends React.Component {
onClick={() => {
this.onEdit(record);
}}>
{showOperateBtn ? "编辑" : "查看"}
{showOperateBtn ? getLabel(93, "编辑") : getLabel(33564, "查看")}
</a>
);
}
@ -112,7 +113,7 @@ export default class Programme extends React.Component {
onClick={() => {
this.onCopy(record);
}}>
复制
{getLabel(77, "复制")}
</a>
</Menu.Item>
{/*暂时隐藏*/}
@ -121,7 +122,7 @@ export default class Programme extends React.Component {
onClick={() => {
this.onDelete(record);
}}>
删除
{getLabel(91, "删除")}
</a>
</Menu.Item>
</Menu>
@ -139,19 +140,6 @@ export default class Programme extends React.Component {
return newColumns;
};
handleCategoryStatusChange(record, value) {
const { programmeStore: { updateCustomCategoryStatus } } = this.props;
Modal.confirm({
title: "信息确认",
content: `确认要${value ? "启用" : "停用"}`,
onOk: () => {
updateCustomCategoryStatus(record.id, value);
},
onCancel: () => {
}
});
}
onEdit(record) {
let id = record.id;
const { programmeStore } = this.props;
@ -175,8 +163,8 @@ export default class Programme extends React.Component {
onDelete = (record) => {
const { programmeStore: { deleteScheme, deleteLoading, selectedKey } } = this.props;
Modal.confirm({
title: "确认信息",
content: "确认删除本条数据吗?",
title: getLabel(514612, "确认信息"),
content: getLabel(518815, "确认删除本条数据吗?"),
confirmLoading: deleteLoading,
onOk: () => {
deleteScheme({ ids: [record.id], welfareTypeEnum: selectedKey });
@ -192,7 +180,7 @@ export default class Programme extends React.Component {
taxAgentStore: { showOperateBtn }
} = this.props;
if (!showOperateBtn) {
message.warning("请设置编辑权限!");
message.warning(getLabel(111, "请设置编辑权限!"));
return;
}
getCustomForm();
@ -237,38 +225,38 @@ export default class Programme extends React.Component {
const topTab = [
{
title: "社保",
title: getLabel(111, "社保"),
viewcondition: "SOCIAL_SECURITY"
},
{
title: "公积金",
title: getLabel(111, "公积金"),
viewcondition: "ACCUMULATION_FUND"
},
{
title: "企业年金及其他福利",
title: getLabel(111, "企业年金及其他福利"),
viewcondition: "OTHER"
},
{
title: "自定义福利",
title: getLabel(111, "自定义福利"),
viewcondition: "custom"
}
];
const options = [
{
showname: "全部",
showname: getLabel(126831, "全部"),
key: ""
},
{
showname: "社保",
showname: getLabel(111, "社保"),
key: "SOCIAL_SECURITY"
},
{
showname: "公积金",
showname: getLabel(111, "公积金"),
key: "ACCUMULATION_FUND"
},
{
showname: "企业年金及其他福利",
showname: getLabel(111, "企业年金及其他福利"),
key: "OTHER"
}
];
@ -365,7 +353,7 @@ export default class Programme extends React.Component {
return (
<div className="socialSecurityAndWelfareSchemeWrapper">
<WeaTop
title="社保福利方案" // 文字
title={getLabel(111, "社保福利方案")} // 文字
icon={<i className="icon-coms-fa"/>} // 左侧图标
iconBgcolor="#F14A2D" // 左侧图标背景色
showDropIcon={false} // 是否显示下拉按钮
@ -386,7 +374,7 @@ export default class Programme extends React.Component {
handleNewClick();
}
}}>
新建
{getLabel(365, "新建")}
</Button>}
{selectedKey == "custom" &&
@ -467,8 +455,8 @@ export default class Programme extends React.Component {
<SlideModalTitle
subtitle={
this.state.customEdit ?
`修改${_.find(topTab, it => it.viewcondition === selectedKey).title}方案` :
`新增${_.find(topTab, it => it.viewcondition === selectedKey).title}方案`
`${getLabel(103, "修改")}${_.find(topTab, it => it.viewcondition === selectedKey).title}${getLabel(103, "方案")}` :
`${getLabel(1421, "新增")}${_.find(topTab, it => it.viewcondition === selectedKey).title}${getLabel(103, "方案")}`
}
editable={true}
showOperateBtn={showOperateBtn}
@ -506,7 +494,7 @@ export default class Programme extends React.Component {
onClick={() => {
handleCopyModalSave();
}}>
保存
{getLabel(86, "保存")}
</Button>]
}
/>}

View File

@ -5,10 +5,11 @@
* Date: 2023/2/1
*/
import React, { Component } from "react";
import { WeaDialog } from "ecCom";
import { WeaDialog, WeaLocaleProvider } from "ecCom";
import { Button, Checkbox } from "antd";
import "./index.less";
const getLabel = WeaLocaleProvider.getLabel;
const CheckboxGroup = Checkbox.Group;
class PaymentPeriodModal extends Component {
@ -60,27 +61,28 @@ class PaymentPeriodModal extends Component {
const { onCancel, visible } = this.props;
const { monthList, allSelect } = this.state;
const buttons = [
<Button type="primary" onClick={onCancel}>保存</Button>,
<Button type="ghost" onClick={() => this.setState({ monthList: [], allSelect: false })}>重置</Button>
<Button type="primary" onClick={onCancel}>{getLabel(111, "保存")}</Button>,
<Button type="ghost"
onClick={() => this.setState({ monthList: [], allSelect: false })}>{getLabel(111, "重置")}</Button>
];
const options = [
{ label: "一月", value: "1" },
{ label: "二月", value: "2" },
{ label: "三月", value: "3" },
{ label: "四月", value: "4" },
{ label: "五月", value: "5" },
{ label: "六月", value: "6" },
{ label: "七月", value: "7" },
{ label: "八月", value: "8" },
{ label: "九月", value: "9" },
{ label: "十月", value: "10" },
{ label: "十一月", value: "11" },
{ label: "十二月", value: "12" }
{ label: getLabel(111, "一月"), value: "1" },
{ label: getLabel(111, "二月"), value: "2" },
{ label: getLabel(111, "三月"), value: "3" },
{ label: getLabel(111, "四月"), value: "4" },
{ label: getLabel(111, "五月"), value: "5" },
{ label: getLabel(111, "六月"), value: "6" },
{ label: getLabel(111, "七月"), value: "7" },
{ label: getLabel(111, "八月"), value: "8" },
{ label: getLabel(111, "九月"), value: "9" },
{ label: getLabel(111, "十月"), value: "10" },
{ label: getLabel(111, "十一月"), value: "11" },
{ label: getLabel(111, "十二月"), value: "12" }
];
return (
<WeaDialog
onCancel={onCancel}
title="设置缴纳周期"
title={getLabel(111, "设置缴纳周期")}
visible={visible}
style={{ width: 450 }}
buttons={buttons}
@ -89,7 +91,7 @@ class PaymentPeriodModal extends Component {
>
<div className="paymentPeriodContent">
<div className="paymentPeriodAll">
<Checkbox checked={allSelect} onChange={this.handleChangeALl}>全选</Checkbox>
<Checkbox checked={allSelect} onChange={this.handleChangeALl}>{getLabel(111, "全选")}</Checkbox>
</div>
<CheckboxGroup options={options} value={monthList} onChange={this.handleChangeMonth}/>
</div>

View File

@ -5,17 +5,19 @@
* LastEditTime: 2022-04-21 20:08:59
*/
import React, { Component } from "react";
import { Button, Table, Dropdown, Menu, Tooltip, Icon } from "antd";
import { WeaSlideModal, WeaTable } from "ecCom";
import { Button, Dropdown, Icon, Menu, Tooltip } from "antd";
import { WeaLocaleProvider, WeaSlideModal, WeaTable } from "ecCom";
import "./index.less";
const getLabel = WeaLocaleProvider.getLabel;
export default class AbnormalDrawer extends Component {
constructor(props) {
super(props);
this.state = {
selectedRowKeys: [],
selectedRowKeys: []
};
}
onSelectChange = (selectedRowKeys) => {
this.setState({ selectedRowKeys });
};
@ -25,7 +27,7 @@ export default class AbnormalDrawer extends Component {
const { loading } = this.props;
const rowSelection = {
selectedRowKeys,
onChange: this.onSelectChange,
onChange: this.onSelectChange
};
return (
<WeaSlideModal
@ -39,19 +41,20 @@ export default class AbnormalDrawer extends Component {
<div className="top">
<Tooltip
placement="bottom"
title="提示核算范围内人员福利项目在福利方案中开启缴纳但核算数值为0的进行异常统计点击忽略视为该数据主观判断为非异常数据导出档案只导出异常数据点击核算也不再重新核算">
<Icon type="question-circle" />
title={`${getLabel(111, "提示")}: ${getLabel(111, "核算范围内人员福利项目在福利方案中开启缴纳但核算数值为0的进行异常统计")}${getLabel(111, "点击忽略")}${getLabel(111, "视为该数据主观判断为非异常数据")}${getLabel(111, "导出档案只导出异常数据")}${getLabel(111, "点击核算也不再重新核算")}`}
>
<Icon type="question-circle"/>
</Tooltip>
<Button type="primary">导出档案</Button>
<Button>核算</Button>
<Button type="primary">{getLabel(111, "导出档案")}</Button>
<Button>{getLabel(111, "核算")}</Button>
<Dropdown
overlay={
<Menu>
<Menu.Item key="log">忽略全部</Menu.Item>
<Menu.Item key="column">取消全部忽略</Menu.Item>
<Menu.Item key="log">{getLabel(111, "忽略全部")}</Menu.Item>
<Menu.Item key="column">{getLabel(111, "取消全部忽略")}</Menu.Item>
</Menu>
}>
<i className="icon-coms-more" />
<i className="icon-coms-more"/>
</Dropdown>
</div>
{/* table */}
@ -62,10 +65,10 @@ export default class AbnormalDrawer extends Component {
loading={loading}
pagination={{
onChange: (value) => {
this.props.onPageChange(value)
},
this.props.onPageChange(value);
},
total: this.props.total,
showTotal: (total) => ` ${total} `,
showTotal: total => `${getLabel(111, "共")} ${total} ${getLabel(111, "")}`
}}
rowSelection={rowSelection}
scroll={{ x: 1200 }}

View File

@ -6,12 +6,14 @@
*/
import React, { Component } from "react";
import { Button, Form, Input } from "antd";
import { WeaDatePicker, WeaDialog, WeaSelect } from "ecCom";
import { WeaDatePicker, WeaDialog, WeaLocaleProvider, WeaSelect } from "ecCom";
import "./index.less";
const createForm = Form.create;
const FormItem = Form.Item;
const getLabel = WeaLocaleProvider.getLabel;
class Accountdialog extends Component {
constructor(props) {
super(props);
@ -46,36 +48,36 @@ class Accountdialog extends Component {
type="primary"
onClick={this.handleSubmit}
loading={this.props.loading}>
保存并进入核算
{getLabel(111, "保存并进入核算")}
</Button>
]}>
<Form horizontal form={this.props.form} style={{ marginTop: 16 }}>
<FormItem {...formItemLayout} label="账单月份">
<FormItem {...formItemLayout} label={getLabel(111, "账单月份")}>
<WeaDatePicker
viewAttr={3}
style={{ width: "100%" }}
format="YYYY-MM"
{...getFieldProps("billMonth", {
initialValue: new Date(),
rules: [{ required: true, message: "请选择日期" }]
rules: [{ required: true, message: getLabel(111, "请选择日期") }]
})}
/>
</FormItem>
{/* {
this.props.isAdmin && */}
<FormItem {...formItemLayout} label="个税扣缴义务人">
<FormItem {...formItemLayout} label={getLabel(111, "个税扣缴义务人")}>
<WeaSelect
style={{ width: "100%" }}
viewAttr={3}
options={this.props.options}
{...getFieldProps("paymentOrganization", {
initialValue: "",
rules: [{ required: true, message: "请选择个税扣缴义务人" }]
rules: [{ required: true, message: getLabel(111, "请选择个税扣缴义务人") }]
})}
/>
</FormItem>
{/* } */}
<FormItem {...formItemLayout} label="备注">
<FormItem {...formItemLayout} label={getLabel(111, "备注")}>
<Input
type="textarea"
{...getFieldProps("remarks", { initialValue: "" })}

View File

@ -1,7 +1,7 @@
import React from "react";
import { inject, observer } from "mobx-react";
import { Button, DatePicker, Dropdown, Menu, message, Modal } from "antd";
import { WeaNewScroll, WeaTop } from "ecCom";
import { WeaLocaleProvider, WeaNewScroll, WeaTop } from "ecCom";
import { renderNoright } from "../../../util";
import Accountdialog from "./components/accountDialog";
import AbnormalDrawer from "./components/abnormalDrawer";
@ -13,6 +13,7 @@ import "./index.less";
import UnifiedTable from "../../../components/UnifiedTable";
const MonthPicker = DatePicker.MonthPicker;
const getLabel = WeaLocaleProvider.getLabel;
@inject("standingBookStore", "taxAgentStore")
@observer
@ -137,30 +138,30 @@ export default class StandingBook extends React.Component {
columns = [
...columns,
{
title: "操作",
title: getLabel(111, "操作"),
dataIndex: "operate",
key: "operate",
render: (text, r) => {
const { billStatus, billMonth, creator } = r;
return (
<React.Fragment>
{billStatus === "未归档" && (
{billStatus === getLabel(111, "未归档") && (
<a
href="javascript:void(0);"
className="linkTo"
onClick={() => this.handleGoDetail(billMonth, "", r.paymentOrganizationId, creator)}>
核算
{getLabel(111, "核算")}
</a>
)}
{billStatus === "已归档" && (
{billStatus === getLabel(111, "已归档") && (
<a
href="javascript:void(0);"
className="linkTo"
onClick={() => this.socialSecurityBenefitsRecalculate({ id: r.id })}>
重新核算
{getLabel(111, "重新核算")}
</a>
)}
{billStatus === "未归档" && (
{billStatus === getLabel(111, "未归档") && (
<Dropdown
overlay={
<Menu
@ -172,16 +173,16 @@ export default class StandingBook extends React.Component {
creator
})
}>
<Menu.Item key="archive">归档</Menu.Item>
<Menu.Item key="archive">{getLabel(111, "归档")}</Menu.Item>
{/* <Menu.Item key="detail">异常详情</Menu.Item> */}
<Menu.Item key="delete">删除</Menu.Item>
<Menu.Item key="delete">{getLabel(111, "删除")}</Menu.Item>
{/* <Menu.Item key="operate">操作日志</Menu.Item> */}
</Menu>
}>
<i className="icon-coms-more more"/>
</Dropdown>
)}
{billStatus === "已归档" && (
{billStatus === getLabel(111, "已归档") && (
<Dropdown
overlay={
<Menu
@ -193,7 +194,7 @@ export default class StandingBook extends React.Component {
creator
})
}>
<Menu.Item key="view">查看</Menu.Item>
<Menu.Item key="view">{getLabel(111, "查看")}</Menu.Item>
</Menu>
}>
<i className="icon-coms-more more"/>
@ -219,7 +220,7 @@ export default class StandingBook extends React.Component {
socialSecurityBenefitsRecalculate = (params) => {
const { socialSecurityBenefitsRecalculate } = this.props.standingBookStore;
socialSecurityBenefitsRecalculate(params).then(() => {
message.success("重新核算成功");
message.success(getLabel(111, "重新核算成功"));
this.init();
}).catch(err => {
message.error(err);
@ -271,8 +272,8 @@ export default class StandingBook extends React.Component {
switch (key) {
case "archive":
Modal.confirm({
title: "确认信息",
content: "确认要归档吗?",
title: getLabel(111, "信息确认"),
content: `${getLabel(111, "确认要归档吗")}`,
onOk: () => {
siaccountFile({ billMonth, paymentOrganization: paymentOrganizationId }).then((res) => {
const { current } = this.state;
@ -288,19 +289,19 @@ export default class StandingBook extends React.Component {
this.setState({
drawerProps: {
...this.state.drawerProps,
title: "核算异常",
title: getLabel(111, "核算异常"),
visible: true
}
});
break;
case "delete":
Modal.confirm({
title: "确认信息",
content: "确认删除本条数据吗?",
title: getLabel(111, "信息确认"),
content: `${getLabel(111, "确认删除本条数据吗")}`,
confirmLoading: deleteLoading,
onOk: () => {
siaccountDelete({ billMonth, paymentOrganization: paymentOrganizationId }).then(() => {
message.success("删除成功");
message.success(getLabel(111, "删除成功"));
this.getCommonList({
...this.state.tableParams,
current: this.state.current
@ -350,7 +351,7 @@ export default class StandingBook extends React.Component {
progressVisible: false,
progress: 0
}, () => {
message.success("核算成功");
message.success(getLabel(111, "核算成功"));
this.handleClose();
this.getCommonList({
...this.state.tableParams,
@ -432,18 +433,19 @@ export default class StandingBook extends React.Component {
this.setState({
dialogProps: {
...this.state.dialogProps,
title: "核算",
title: getLabel(111, "核算"),
visible: true
}
});
}}>
核算
{getLabel(111, "核算")}
</Button>
];
const pagination = {
...this.pageInfo,
total: total,
showTotal: (total) => `${total}`,
showTotal: total => `${getLabel(111, "共")} ${total} ${getLabel(111, "条")}`,
pageSizeOptions: ["10", "20", "50", "100"],
showSizeChanger: true,
showQuickJumper: true,
@ -460,13 +462,13 @@ export default class StandingBook extends React.Component {
return (
<div className="standingbookWrapper">
<WeaTop
title="社保福利台账" // 文字
title={getLabel(111, "社保福利台账")} // 文字
icon={<i className="icon-coms-fa"/>} // 左侧图标
iconBgcolor="#F14A2D" // 左侧图标背景色
buttons={showOperateBtn ? rightBtns : []}
>
<div className="billDateWrapper">
<div>账单月份</div>
<div>{getLabel(111, "账单月份")}</div>
<MonthPicker
value={startTime}
format="YYYY-MM"
@ -475,7 +477,7 @@ export default class StandingBook extends React.Component {
}}
onChange={(val) => this.handleChangeMonth("startTime", val)}
/>
<span className="to"></span>
<span className="to">{getLabel(111, "")}</span>
<MonthPicker
value={endTime}
format="YYYY-MM"