Compare commits

...

19 Commits

Author SHA1 Message Date
lys 8801015c55 custom/钱智 2025-10-29 15:38:50 +08:00
lys 1ab4d6f4fc Merge branch 'release/3.0.1.2504.01-合并业务线' into custom/钱智 2025-10-29 11:32:36 +08:00
lys c00d3f446d release/3.0.1.2504.01-合并业务线 2025-10-28 15:09:36 +08:00
lys 92c966310c feature/3.0.1.2504.01-下拉框多选支持搜索 2025-10-27 14:55:34 +08:00
lys 27f9da9aa9 release/3.0.1.2504.01-合并业务线 2025-10-14 15:54:00 +08:00
lys 7f4e47b5bd release/3.0.1.2504.01-合并业务线 2025-10-13 17:11:10 +08:00
lys b0d60afc11 release/3.0.1.2504.01-合并业务线 2025-10-13 16:14:09 +08:00
lys 40d84b30fd Merge branch 'release/2.19.1.2501.01' into release/3.0.1.2504.01-合并业务线 2025-10-10 11:05:48 +08:00
lys efb5af1b10 release/2.19.1.2501.01 2025-10-10 11:05:18 +08:00
lys 61ff174303 Merge branch 'release/2.19.1.2501.01' into release/3.0.1.2504.01-合并业务线 2025-09-12 09:58:22 +08:00
lys 915e946c3e release/2.19.1.2501.01 2025-09-12 09:57:54 +08:00
lys ff1da8b19b release/2.19.1.2501.01 2025-09-04 09:59:22 +08:00
lys 9cda9aa414 release/3.0.1.2504.01-合并业务线 2025-09-04 09:58:43 +08:00
lys 000e8acdaf Merge branch 'release/2.19.1.2501.01' into release/3.0.1.2504.01-合并业务线 2025-09-02 15:04:34 +08:00
lys 5ef2c5ecb4 release/2.19.1.2501.01 2025-09-02 14:52:58 +08:00
lys 5da8661bbd 0release/3.0.1.2504.01-合并业务线 2025-08-26 14:25:26 +08:00
lys 5f80e9e6b3 release/2.19.1.2501.01 2025-08-04 16:29:06 +08:00
lys 2b39980ed0 release/2.19.1.2501.01 2025-08-04 16:24:41 +08:00
lys 2321266533 release/2.19.1.2501.01 2025-08-04 16:23:10 +08:00
10 changed files with 132 additions and 63 deletions

View File

@ -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) => (

View File

@ -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;
}
}
}

View File

@ -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) => {
};
}
});
};
};

View File

@ -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;

View File

@ -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;
}
}
}

View File

@ -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>);
};

View File

@ -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>
);
}

View File

@ -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;

View File

@ -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 => {

View File

@ -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;