Merge branch 'release/3.0.1.2504.01-合并业务线' into custom-中航富士达最新
This commit is contained in:
commit
a7ab42452d
|
|
@ -127,7 +127,7 @@ class AssociativeSearchMult extends Component {
|
||||||
}
|
}
|
||||||
let options = data.map(d => <Option key={d.id} title={d.name}>{d.name}</Option>);
|
let options = data.map(d => <Option key={d.id} title={d.name}>{d.name}</Option>);
|
||||||
!tags && selectedValues && selectedValues.map((v) => {
|
!tags && selectedValues && selectedValues.map((v) => {
|
||||||
v && options.unshift(<Option key={v} title={datas[v].name}>{datas[v].name}</Option>);
|
v && datas[v] && options.unshift(<Option key={v} title={datas[v].name}>{datas[v].name}</Option>);
|
||||||
});
|
});
|
||||||
const select = <Select
|
const select = <Select
|
||||||
{...this.props}
|
{...this.props}
|
||||||
|
|
|
||||||
|
|
@ -91,11 +91,11 @@ class CustomBrowserDialog extends Component {
|
||||||
this.props.onCancel && this.props.onCancel();
|
this.props.onCancel && this.props.onCancel();
|
||||||
};
|
};
|
||||||
getItemById = (id) => {
|
getItemById = (id) => {
|
||||||
const { listDatas } = this.state;
|
const { listDatas } = this.state, dataSource = [...listDatas, ..._.values(this.props.datas)];
|
||||||
if (this.selectedData[id]) return this.selectedData[id];
|
if (this.selectedData[id]) return this.selectedData[id];
|
||||||
if (!_.isEmpty(listDatas)) {
|
if (!_.isEmpty(dataSource)) {
|
||||||
for (let i = 0; i < listDatas.length; i++) {
|
for (let i = 0; i < dataSource.length; i++) {
|
||||||
if (String(id) === String(listDatas[i].id)) return listDatas[i];
|
if (String(id) === String(dataSource[i].id)) return dataSource[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ class Index extends Component {
|
||||||
if (o.dataIndex === "username") {
|
if (o.dataIndex === "username") {
|
||||||
return { ...o, width: 150, fixed: "left" };
|
return { ...o, width: 150, fixed: "left" };
|
||||||
}
|
}
|
||||||
return { ...o, width: 150 };
|
return { ...o, width: 150, render: (v) => (<span title={v}>{v}</span>) };
|
||||||
}), {
|
}), {
|
||||||
dataIndex: "options", title: getLabel(30585, "操作"),
|
dataIndex: "options", title: getLabel(30585, "操作"),
|
||||||
width: 120, render: (_, record) => (
|
width: 120, render: (_, record) => (
|
||||||
|
|
|
||||||
|
|
@ -43,5 +43,15 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.wea-new-table {
|
||||||
|
.ant-table-tbody > tr > td,
|
||||||
|
.ant-table-thead > tr > th {
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -125,7 +125,8 @@ class EditCalcTable extends Component {
|
||||||
}, 500);
|
}, 500);
|
||||||
});
|
});
|
||||||
const { routeParams: { salaryAcctRecordId } } = this.props;
|
const { routeParams: { salaryAcctRecordId } } = this.props;
|
||||||
updateLockStatus({ ...payload, salaryAcctRecordId }).then(({ status, errormsg }) => {
|
updateLockStatus({ ...payload, salaryAcctRecordId, acctEmpIds: this.state.selectedRowKeys })
|
||||||
|
.then(({ status, errormsg }) => {
|
||||||
if (status) {
|
if (status) {
|
||||||
clearInterval(this.timerLock);
|
clearInterval(this.timerLock);
|
||||||
this.setState({
|
this.setState({
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ class EditSalaryCalcSlide extends Component {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
renderTitle = () => {
|
renderTitle = () => {
|
||||||
const { loading } = this.state, { viewAttr } = this.props;
|
const { loading, itemsByGroup } = this.state, { viewAttr } = this.props;
|
||||||
return <div className="titleDialog">
|
return <div className="titleDialog">
|
||||||
<div className="titleCol titleLeftBox">
|
<div className="titleCol titleLeftBox">
|
||||||
<div className="titleIcon"><i className="icon-coms-fa"/></div>
|
<div className="titleIcon"><i className="icon-coms-fa"/></div>
|
||||||
|
|
@ -52,7 +52,7 @@ class EditSalaryCalcSlide extends Component {
|
||||||
<div className="titleCol titleRightBox">
|
<div className="titleCol titleRightBox">
|
||||||
{
|
{
|
||||||
viewAttr === 2 &&
|
viewAttr === 2 &&
|
||||||
<Button type="primary" onClick={this.save} loading={loading}>{getLabel(537558, "保存")}</Button>
|
<Button type="primary" disabled={_.isEmpty(itemsByGroup)} onClick={this.save} loading={loading}>{getLabel(537558, "保存")}</Button>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>;
|
</div>;
|
||||||
|
|
|
||||||
|
|
@ -239,6 +239,8 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
transition: margin-top .3s;
|
transition: margin-top .3s;
|
||||||
|
max-height: 80vh;
|
||||||
|
overflow: auto;
|
||||||
|
|
||||||
.anchor-list-ink {
|
.anchor-list-ink {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ import React from "react";
|
||||||
import { inject, observer } from "mobx-react";
|
import { inject, observer } from "mobx-react";
|
||||||
import { WeaLocaleProvider, WeaTable, WeaTop } from "ecCom";
|
import { WeaLocaleProvider, WeaTable, WeaTop } from "ecCom";
|
||||||
import { getQueryString } from "../../util/url";
|
import { getQueryString } from "../../util/url";
|
||||||
|
import { sysinfo } from "../../apis/ruleconfig";
|
||||||
import * as API from "../../apis/declare";
|
import * as API from "../../apis/declare";
|
||||||
import { Button } from "antd";
|
import { Button } from "antd";
|
||||||
import "./index.less";
|
import "./index.less";
|
||||||
|
|
@ -14,15 +15,21 @@ export default class GenerateDeclarationDetail extends React.Component {
|
||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
loading: false, dataSource: [], columns: [], declareInfo: {},
|
loading: false, dataSource: [], columns: [], declareInfo: {},
|
||||||
pageInfo: { current: 1, pageSize: 10, total: 0 }
|
pageInfo: { current: 1, pageSize: 10, total: 0 }, sysinfo: {}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.getDetailList();
|
this.getDetailList();
|
||||||
this.getDeclareInfo();
|
this.getDeclareInfo();
|
||||||
|
this.getSysinfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getSysinfo = () => {
|
||||||
|
sysinfo().then(({ status, data: sysinfo }) => {
|
||||||
|
if (status) this.setState({ sysinfo });
|
||||||
|
});
|
||||||
|
};
|
||||||
getDetailList = () => {
|
getDetailList = () => {
|
||||||
const { pageInfo } = this.state;
|
const { pageInfo } = this.state;
|
||||||
const payload = {
|
const payload = {
|
||||||
|
|
@ -64,17 +71,18 @@ export default class GenerateDeclarationDetail extends React.Component {
|
||||||
window.open(url, "_self");
|
window.open(url, "_self");
|
||||||
};
|
};
|
||||||
renderTitle = () => {
|
renderTitle = () => {
|
||||||
const { declareInfo } = this.state;
|
const { declareInfo, sysinfo } = this.state;
|
||||||
|
const title = sysinfo["TAX_DECLARATION_DATE_TYPE"] === "1" ? getLabel(111, "税款所属期") : getLabel(111, "薪资所属月");
|
||||||
return (<React.Fragment>
|
return (<React.Fragment>
|
||||||
<span>{getLabel(111, "薪资所属月")}:{declareInfo.salaryMonth}</span>
|
<span>{title}:{declareInfo.salaryMonth}</span>
|
||||||
<span style={{ marginLeft: "10px" }}>{getLabel(111, "个税扣缴义务人")}:{declareInfo.taxAgentName}</span>
|
<span style={{ marginLeft: "10px" }}>{getLabel(111, "个税扣缴义务人")}:{declareInfo.taxAgentName}</span>
|
||||||
</React.Fragment>);
|
</React.Fragment>);
|
||||||
};
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { loading, pageInfo, columns, dataSource } = this.state;
|
const { loading, pageInfo, columns, dataSource } = this.state;
|
||||||
const { taxAgentStore: { showOperateBtn } } = this.props;
|
const { taxAgentStore: { PageAndOptAuth } } = this.props;
|
||||||
const buttons = showOperateBtn ? [<Button type="primary"
|
const buttons = !!PageAndOptAuth.opts.length ? [<Button type="primary"
|
||||||
onClick={this.handleExport}>{getLabel(111, "导出全部")}</Button>] : [];
|
onClick={this.handleExport}>{getLabel(111, "导出全部")}</Button>] : [];
|
||||||
const pagination = {
|
const pagination = {
|
||||||
...pageInfo,
|
...pageInfo,
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import Content from "../../components/pcTemplate/content";
|
||||||
import { confirmSalaryBill, feedBackSalaryBill, payrollCheckType } from "../../apis/payroll";
|
import { confirmSalaryBill, feedBackSalaryBill, payrollCheckType } from "../../apis/payroll";
|
||||||
import CaptchaModal from "../../components/captchaModal";
|
import CaptchaModal from "../../components/captchaModal";
|
||||||
import "./index.less";
|
import "./index.less";
|
||||||
|
import { getQueryString } from "../../util/url";
|
||||||
|
|
||||||
const isIPhone = new RegExp("\\biPhone\\b|\\biPod\\b", "i").test(window.navigator.userAgent);
|
const isIPhone = new RegExp("\\biPhone\\b|\\biPod\\b", "i").test(window.navigator.userAgent);
|
||||||
const isEm = window.navigator.userAgent.indexOf("E-Mobile7") >= 0;
|
const isEm = window.navigator.userAgent.indexOf("E-Mobile7") >= 0;
|
||||||
|
|
@ -84,7 +85,18 @@ class MySalaryView extends Component {
|
||||||
const { captchaVisible, mySalaryStore } = this.state;
|
const { captchaVisible, mySalaryStore } = this.state;
|
||||||
const { params: { salaryInfoId } } = this.props;
|
const { params: { salaryInfoId } } = this.props;
|
||||||
if (_.isEmpty(mySalaryStore)) {
|
if (_.isEmpty(mySalaryStore)) {
|
||||||
return <div></div>;
|
return <div>
|
||||||
|
<CaptchaModal
|
||||||
|
visible={captchaVisible} id={salaryInfoId}
|
||||||
|
onCancel={() => this.setState({ captchaVisible: false })}
|
||||||
|
onConfirm={() => {
|
||||||
|
this.props.mySalaryStore.setInitEmVerify();
|
||||||
|
this.props.mySalaryStore.getMySalaryBill(Number(salaryInfoId)).then(data => {
|
||||||
|
this.setState({ mySalaryStore: data });
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>;
|
||||||
}
|
}
|
||||||
const { salaryTemplate, salaryGroups, employeeInformation, sendTime } = mySalaryStore;
|
const { salaryTemplate, salaryGroups, employeeInformation, sendTime } = mySalaryStore;
|
||||||
const salaryProps = {
|
const salaryProps = {
|
||||||
|
|
@ -106,11 +118,6 @@ class MySalaryView extends Component {
|
||||||
</Content>
|
</Content>
|
||||||
</div>
|
</div>
|
||||||
</Authority>
|
</Authority>
|
||||||
<CaptchaModal
|
|
||||||
visible={captchaVisible} id={salaryInfoId}
|
|
||||||
onCancel={() => this.setState({ captchaVisible: false })}
|
|
||||||
onConfirm={() => mySalaryStore.setInitEmVerify()}
|
|
||||||
/>
|
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,8 @@ class PayrollDetail extends Component {
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { salarySendDetailBaseInfo, showSearchAd, conditions, isQuery, showTotalCell } = this.state;
|
const { salarySendDetailBaseInfo, showSearchAd, conditions, isQuery, showTotalCell } = this.state;
|
||||||
const { taxAgentStore: { showOperateBtn } } = this.props;
|
const { taxAgentStore: { PageAndOptAuth } } = this.props;
|
||||||
|
const showOperateBtn = PageAndOptAuth.opts.length;
|
||||||
const { salaryMonth, template } = salarySendDetailBaseInfo;
|
const { salaryMonth, template } = salarySendDetailBaseInfo;
|
||||||
const dropMenuDatas = [
|
const dropMenuDatas = [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -70,10 +70,10 @@ class StatisticalMicroSettingsSlide extends Component {
|
||||||
|
|
||||||
getTaxAgentSelectList = async (props) => {
|
getTaxAgentSelectList = async (props) => {
|
||||||
const [salarySobList, empStatusList] = await Promise.all([
|
const [salarySobList, empStatusList] = await Promise.all([
|
||||||
postFetch("/api/bs/hrmsalary/salarysob/listAuth", { filterType: "QUERY_DATA" }),
|
postFetch("/api/bs/hrmsalary/salarysob/listAuth", { filterType: "QUERY_DATA", isShare: props.isShare }),
|
||||||
commonEnumList({ enumClass: "com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum" })
|
commonEnumList({ enumClass: "com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum" })
|
||||||
]);
|
]);
|
||||||
postFetch("/api/bs/hrmsalary/taxAgent/listAuth", { filterType: "QUERY_DATA" })
|
postFetch("/api/bs/hrmsalary/taxAgent/listAuth", { filterType: "QUERY_DATA", isShare: props.isShare })
|
||||||
.then(({ status, data }) => {
|
.then(({ status, data }) => {
|
||||||
if (status) {
|
if (status) {
|
||||||
const conditions = _.map(condition, item => {
|
const conditions = _.map(condition, item => {
|
||||||
|
|
|
||||||
|
|
@ -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, dataType } = request;
|
const { systemType = "", sharedType, valueType, useInEmployeeSalary, dataType, pattern } = request;
|
||||||
this.setState({
|
this.setState({
|
||||||
salaryItemFieldsList: _.map(salaryItemFieldsList, item => {
|
salaryItemFieldsList: _.map(salaryItemFieldsList, item => {
|
||||||
const { key } = item;
|
const { key } = item;
|
||||||
|
|
@ -87,6 +87,7 @@ class SalaryItemForm extends Component {
|
||||||
case "defaultValue":
|
case "defaultValue":
|
||||||
return {
|
return {
|
||||||
...item,
|
...item,
|
||||||
|
precision: pattern ? pattern : item.precision,
|
||||||
type: dataType === "number" ? "INPUTNUMBER" : "INPUT",
|
type: dataType === "number" ? "INPUTNUMBER" : "INPUT",
|
||||||
display: valueType && valueType.toString() === "1" && useInEmployeeSalary == 0,
|
display: valueType && valueType.toString() === "1" && useInEmployeeSalary == 0,
|
||||||
viewAttr: (isLedger && record.canEdit) || (editable && record.canEdit) || isAdd ? 2 : 1
|
viewAttr: (isLedger && record.canEdit) || (editable && record.canEdit) || isAdd ? 2 : 1
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,9 @@ export const socialAccountConditions = [
|
||||||
lanId: 537996,
|
lanId: 537996,
|
||||||
labelcol: 6,
|
labelcol: 6,
|
||||||
options: [],
|
options: [],
|
||||||
|
otherParams: {
|
||||||
|
showSearch: true, optionFilterProp: "children"
|
||||||
|
},
|
||||||
rules: "required|string",
|
rules: "required|string",
|
||||||
viewAttr: 3
|
viewAttr: 3
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ class MakeupDifference extends Component {
|
||||||
tmpUrl: "exportSiaccountWelfarebalanceimporttemplatetetemplate",
|
tmpUrl: "exportSiaccountWelfarebalanceimporttemplatetetemplate",
|
||||||
cacheUrl: "cacheBalanceWelfareList",
|
cacheUrl: "cacheBalanceWelfareList",
|
||||||
importUrl: "importBalanceInsuranceDetail",
|
importUrl: "importBalanceInsuranceDetail",
|
||||||
importparams: {}
|
importparams: {}, ..._.pick(this.props, ["billMonth", "paymentOrganization"])
|
||||||
},
|
},
|
||||||
returnEditPersonSlide: {
|
returnEditPersonSlide: {
|
||||||
title: "", editId: "", visible: false
|
title: "", editId: "", visible: false
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,12 @@ class WelfareAdvanceSearchPannel extends Component {
|
||||||
viewAttr: 2
|
viewAttr: 2
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
} else if (getKey(o) === "siSchemeId" || getKey(o) === "fundSchemeId" || getKey(o) === "otherSchemeId" || getKey(o) === "taxAgentId") {
|
||||||
|
return {
|
||||||
|
...o, otherParams: {
|
||||||
|
showSearch: true, optionFilterProp: "children"
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
return { ...o };
|
return { ...o };
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,10 @@ class Index extends Component {
|
||||||
return {
|
return {
|
||||||
...g, label: getLabel(g.lanId, g.label),
|
...g, label: getLabel(g.lanId, g.label),
|
||||||
viewAttr: (runStatuses === "4,5" || !showOperateBtn) ? 1 : g.viewAttr,
|
viewAttr: (runStatuses === "4,5" || !showOperateBtn) ? 1 : g.viewAttr,
|
||||||
options: _.find(props[`${o.title}Items`], j => j.domkey[0] === key).options
|
options: _.find(props[`${o.title}Items`], j => j.domkey[0] === key).options,
|
||||||
|
otherParams: {
|
||||||
|
showSearch: true, optionFilterProp: "children"
|
||||||
|
}
|
||||||
};
|
};
|
||||||
} else if (getKey(g).indexOf("StartTime") !== -1) {
|
} else if (getKey(g).indexOf("StartTime") !== -1) {
|
||||||
return {
|
return {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue