Compare commits
19 Commits
fea2c5921e
...
8801015c55
| Author | SHA1 | Date |
|---|---|---|
|
|
8801015c55 | |
|
|
1ab4d6f4fc | |
|
|
c00d3f446d | |
|
|
92c966310c | |
|
|
27f9da9aa9 | |
|
|
7f4e47b5bd | |
|
|
b0d60afc11 | |
|
|
40d84b30fd | |
|
|
efb5af1b10 | |
|
|
61ff174303 | |
|
|
915e946c3e | |
|
|
ff1da8b19b | |
|
|
9cda9aa414 | |
|
|
000e8acdaf | |
|
|
5ef2c5ecb4 | |
|
|
5da8661bbd | |
|
|
5f80e9e6b3 | |
|
|
2b39980ed0 | |
|
|
2321266533 |
|
|
@ -62,7 +62,7 @@ class Index extends Component {
|
|||
if (o.dataIndex === "username") {
|
||||
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, "操作"),
|
||||
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,17 +125,18 @@ class EditCalcTable extends Component {
|
|||
}, 500);
|
||||
});
|
||||
const { routeParams: { salaryAcctRecordId } } = this.props;
|
||||
updateLockStatus({ ...payload, salaryAcctRecordId }).then(({ status, errormsg }) => {
|
||||
if (status) {
|
||||
clearInterval(this.timerLock);
|
||||
this.setState({
|
||||
progressVisible: false,
|
||||
progress: 0
|
||||
}, () => this.queryCalcResultList());
|
||||
} else {
|
||||
message.error(errormsg);
|
||||
}
|
||||
});
|
||||
updateLockStatus({ ...payload, salaryAcctRecordId, acctEmpIds: this.state.selectedRowKeys })
|
||||
.then(({ status, errormsg }) => {
|
||||
if (status) {
|
||||
clearInterval(this.timerLock);
|
||||
this.setState({
|
||||
progressVisible: false,
|
||||
progress: 0
|
||||
}, () => this.queryCalcResultList());
|
||||
} else {
|
||||
message.error(errormsg);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
@ -341,4 +342,4 @@ const traverse = (arr, calcDetail) => {
|
|||
};
|
||||
}
|
||||
});
|
||||
};
|
||||
};
|
||||
|
|
@ -7,7 +7,9 @@
|
|||
import React, { Component } from "react";
|
||||
import { inject, observer } from "mobx-react";
|
||||
import { Button, DatePicker } from "antd";
|
||||
import { WeaFormItem, WeaInputSearch, WeaLocaleProvider, WeaNewScroll, WeaReqTop } from "ecCom";
|
||||
import { WeaInputSearch, WeaLocaleProvider, WeaNewScroll, WeaReqTop } from "ecCom";
|
||||
import { postFetch } from "../../../util/request";
|
||||
import CustomSelect from "../../../components/CustomSelect";
|
||||
import AttendanceDataComp from "./components/attendanceDataComp";
|
||||
import FieldMangComp from "./components/fieldMangComp";
|
||||
import LogDialog from "../../../components/logViewModal";
|
||||
|
|
@ -23,11 +25,17 @@ class Index extends Component {
|
|||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
fieldName: "", selectedKey: "DATA", salaryMonth: [],
|
||||
fieldName: "", selectedKey: "DATA", salaryMonth: [], taxAgentIds: "", options: [],
|
||||
logDialogVisible: false, filterConditions: "[]"
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
postFetch("/api/bs/hrmsalary/taxAgent/listAuth", { filterType: "QUERY_DATA" }).then(({ status, data }) => {
|
||||
if (status) this.setState({ options: _.map(data, k => ({ key: k.id + "", showname: k.name })) });
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
* Author: 黎永顺
|
||||
* Description: 考勤数据删选条件
|
||||
|
|
@ -35,27 +43,43 @@ class Index extends Component {
|
|||
* Date: 2023/2/24
|
||||
*/
|
||||
getAttendanceDataScreen = () => {
|
||||
const { salaryMonth } = this.state;
|
||||
const { salaryMonth, taxAgentIds, options } = this.state;
|
||||
const [value1 = "", value2 = ""] = salaryMonth;
|
||||
return <WeaFormItem label="薪资所属月" labelCol={{ span: 2 }} wrapperCol={{ span: 22 }}>
|
||||
<MonthPicker
|
||||
value={value1} format="YYYY-MM"
|
||||
disabledDate={(current) => {
|
||||
return current && value2 && current.getTime() > new Date(value2).getTime();
|
||||
}}
|
||||
onChange={(val) => this.handleChangeSalaryMonth([val ? moment(val).format("YYYY-MM") : "", value2])}
|
||||
/>
|
||||
<span className="to">至</span>
|
||||
<MonthPicker
|
||||
value={value2} format="YYYY-MM"
|
||||
disabledDate={(current) => {
|
||||
return current && value1 && current.getTime() < new Date(value1).getTime();
|
||||
}}
|
||||
onChange={(val) => this.handleChangeSalaryMonth([value1, val ? moment(val).format("YYYY-MM") : ""])}
|
||||
/>
|
||||
</WeaFormItem>;
|
||||
return <div className="query-row">
|
||||
<div className="query-row-item">
|
||||
<span className="title">{getLabel(111, "薪资所属月")}:</span>
|
||||
<div className="query-row-item-content">
|
||||
<MonthPicker
|
||||
value={value1} format="YYYY-MM"
|
||||
disabledDate={(current) => {
|
||||
return current && value2 && current.getTime() > new Date(value2).getTime();
|
||||
}}
|
||||
onChange={(val) => this.handleChangeSalaryMonth([val ? moment(val).format("YYYY-MM") : "", value2])}
|
||||
/>
|
||||
<span className="to">至</span>
|
||||
<MonthPicker
|
||||
value={value2} format="YYYY-MM"
|
||||
disabledDate={(current) => {
|
||||
return current && value1 && current.getTime() < new Date(value1).getTime();
|
||||
}}
|
||||
onChange={(val) => this.handleChangeSalaryMonth([value1, val ? moment(val).format("YYYY-MM") : ""])}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="query-row-item">
|
||||
<span className="title">{getLabel(111, "个税扣缴义务人")}:</span>
|
||||
<CustomSelect value={taxAgentIds} options={options}
|
||||
onChange={(val) => this.setState({ taxAgentIds: val }, () => this.attendanceTableRef.getAttendanceList({
|
||||
salaryYearMonth: _.compact(this.state.salaryMonth),
|
||||
taxAgentIds: this.state.taxAgentIds ? this.state.taxAgentIds.split(",") : []
|
||||
}))}/>
|
||||
</div>
|
||||
</div>;
|
||||
};
|
||||
handleChangeSalaryMonth = (salaryMonth) => this.setState({ salaryMonth }, () => this.attendanceTableRef.getAttendanceList({ salaryYearMonth: _.compact(this.state.salaryMonth) }));
|
||||
handleChangeSalaryMonth = (salaryMonth) => this.setState({ salaryMonth }, () => this.attendanceTableRef.getAttendanceList({
|
||||
salaryYearMonth: _.compact(this.state.salaryMonth),
|
||||
taxAgentIds: this.state.taxAgentIds ? this.state.taxAgentIds.split(",") : []
|
||||
}));
|
||||
handleAddAttendFileds = () => this.fieldMangRef.handleTriggerAttendFileds();
|
||||
handleImportAttendanceData = () => this.attendanceTableRef.handleImportAttendanceData({ visible: true, params: {} });
|
||||
handleQuoteAttendanceData = () => {
|
||||
|
|
@ -137,4 +161,4 @@ class Index extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
export default Index;
|
||||
export default Index;
|
||||
|
|
@ -3,19 +3,38 @@
|
|||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.wea-form-item {
|
||||
height: 46px;
|
||||
line-height: 46px;
|
||||
background: #FFF;
|
||||
margin: 8px 16px 0 16px;
|
||||
.wea-new-top-req-content {
|
||||
.query-row {
|
||||
background: #FFF;
|
||||
margin: 8px 16px 0 16px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.wea-form-item-label {
|
||||
line-height: 46px !important;
|
||||
padding-left: 8px !important;
|
||||
}
|
||||
& > div.query-row-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 46px;
|
||||
padding: 0 8px;
|
||||
|
||||
.to {
|
||||
padding: 0 10px
|
||||
.title {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.query-row-item-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.to {
|
||||
padding: 0 10px
|
||||
}
|
||||
}
|
||||
|
||||
.customMuiSelect {
|
||||
min-width: 200px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -98,5 +117,4 @@
|
|||
height: 30px;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@ import React from "react";
|
|||
import { inject, observer } from "mobx-react";
|
||||
import { WeaLocaleProvider, WeaTable, WeaTop } from "ecCom";
|
||||
import { getQueryString } from "../../util/url";
|
||||
import { sysinfo } from "../../apis/ruleconfig";
|
||||
import * as API from "../../apis/declare";
|
||||
import { Button } from "antd";
|
||||
import "./index.less";
|
||||
|
|
@ -14,15 +15,21 @@ export default class GenerateDeclarationDetail extends React.Component {
|
|||
super(props);
|
||||
this.state = {
|
||||
loading: false, dataSource: [], columns: [], declareInfo: {},
|
||||
pageInfo: { current: 1, pageSize: 10, total: 0 }
|
||||
pageInfo: { current: 1, pageSize: 10, total: 0 }, sysinfo: {}
|
||||
};
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
this.getDetailList();
|
||||
this.getDeclareInfo();
|
||||
this.getSysinfo();
|
||||
}
|
||||
|
||||
getSysinfo = () => {
|
||||
sysinfo().then(({ status, data: sysinfo }) => {
|
||||
if (status) this.setState({ sysinfo });
|
||||
});
|
||||
};
|
||||
getDetailList = () => {
|
||||
const { pageInfo } = this.state;
|
||||
const payload = {
|
||||
|
|
@ -64,9 +71,10 @@ export default class GenerateDeclarationDetail extends React.Component {
|
|||
window.open(url, "_self");
|
||||
};
|
||||
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>
|
||||
<span>{getLabel(111, "薪资所属月")}:{declareInfo.salaryMonth}</span>
|
||||
<span>{title}:{declareInfo.salaryMonth}</span>
|
||||
<span style={{ marginLeft: "10px" }}>{getLabel(111, "个税扣缴义务人")}:{declareInfo.taxAgentName}</span>
|
||||
</React.Fragment>);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import Content from "../../components/pcTemplate/content";
|
|||
import { confirmSalaryBill, feedBackSalaryBill, payrollCheckType } from "../../apis/payroll";
|
||||
import CaptchaModal from "../../components/captchaModal";
|
||||
import "./index.less";
|
||||
import { getQueryString } from "../../util/url";
|
||||
|
||||
const isIPhone = new RegExp("\\biPhone\\b|\\biPod\\b", "i").test(window.navigator.userAgent);
|
||||
const isEm = window.navigator.userAgent.indexOf("E-Mobile7") >= 0;
|
||||
|
|
@ -84,7 +85,18 @@ class MySalaryView extends Component {
|
|||
const { captchaVisible, mySalaryStore } = this.state;
|
||||
const { params: { salaryInfoId } } = this.props;
|
||||
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 salaryProps = {
|
||||
|
|
@ -106,11 +118,6 @@ class MySalaryView extends Component {
|
|||
</Content>
|
||||
</div>
|
||||
</Authority>
|
||||
<CaptchaModal
|
||||
visible={captchaVisible} id={salaryInfoId}
|
||||
onCancel={() => this.setState({ captchaVisible: false })}
|
||||
onConfirm={() => mySalaryStore.setInitEmVerify()}
|
||||
/>
|
||||
</React.Fragment>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,7 +60,8 @@ class PayrollDetail extends Component {
|
|||
|
||||
render() {
|
||||
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 dropMenuDatas = [
|
||||
{
|
||||
|
|
@ -110,4 +111,4 @@ class PayrollDetail extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
export default PayrollDetail;
|
||||
export default PayrollDetail;
|
||||
|
|
@ -70,10 +70,10 @@ class StatisticalMicroSettingsSlide extends Component {
|
|||
|
||||
getTaxAgentSelectList = async (props) => {
|
||||
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" })
|
||||
]);
|
||||
postFetch("/api/bs/hrmsalary/taxAgent/listAuth", { filterType: "QUERY_DATA" })
|
||||
postFetch("/api/bs/hrmsalary/taxAgent/listAuth", { filterType: "QUERY_DATA", isShare: props.isShare })
|
||||
.then(({ status, data }) => {
|
||||
if (status) {
|
||||
const conditions = _.map(condition, item => {
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ class MakeupDifference extends Component {
|
|||
tmpUrl: "exportSiaccountWelfarebalanceimporttemplatetetemplate",
|
||||
cacheUrl: "cacheBalanceWelfareList",
|
||||
importUrl: "importBalanceInsuranceDetail",
|
||||
importparams: {}
|
||||
importparams: {}, ..._.pick(this.props, ["billMonth", "paymentOrganization"])
|
||||
},
|
||||
returnEditPersonSlide: {
|
||||
title: "", editId: "", visible: false
|
||||
|
|
@ -152,4 +152,4 @@ class MakeupDifference extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
export default MakeupDifference;
|
||||
export default MakeupDifference;
|
||||
Loading…
Reference in New Issue