diff --git a/pc4mobx/hrmSalary/components/CustomSelect/index.js b/pc4mobx/hrmSalary/components/CustomSelect/index.js
new file mode 100644
index 00000000..43068096
--- /dev/null
+++ b/pc4mobx/hrmSalary/components/CustomSelect/index.js
@@ -0,0 +1,127 @@
+/*
+ * 自定义多选下拉框
+ * 支持搜索
+ * @Author: 黎永顺
+ * @Date: 2024/9/13
+ * @Wechat:
+ * @Email: 971387674@qq.com
+ * @description:
+*/
+import React, { Component } from "react";
+import { WeaCheckbox, WeaInput, WeaLocaleProvider, WeaNewScroll } from "ecCom";
+import classNames from "classnames";
+import { Dropdown } from "antd";
+import "./index.less";
+
+const getLabel = WeaLocaleProvider.getLabel;
+
+class Index extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ visible: false, value: props.value ? props.value.split(",") : [],
+ keywords: ""
+ };
+ }
+
+ isAllChecked = () => {
+ const { options } = this.props, { value, keywords } = this.state;
+ let v = "0";
+ if (_.uniq(value).length === options.filter(k => k.showname.indexOf(keywords) >= 0).length) v = "1";
+ return v;
+ };
+
+ isChecked = (v) => {
+ const { value } = this.state;
+ return value.indexOf(v) > -1 ? "1" : "0";
+ };
+ onAllChange = (v) => {
+ const { options, onChange } = this.props, { keywords } = this.state;
+ let values = [], shownames = [];
+ if (v == 1) {
+ options.filter(k => k.showname.indexOf(keywords) >= 0).forEach(o => {
+ values.push(o.key);
+ shownames.push(o.showname);
+ });
+ }
+ this.setState({ value: values });
+ onChange && onChange(values.join(","), shownames.join(","));
+ };
+
+ onItemChange = (v, id) => {
+ const { onChange, options } = this.props, { value } = this.state;
+ let values = !_.isEmpty(value) ? value : [], shownames = [];
+ if (v == "1") {
+ values.push(id);
+ } else {
+ values = values.filter(val => val !== id);
+ }
+ values.forEach(val => {
+ let target = options.filter((data) => data.key == val)[0];
+ if (target) shownames.push(target.showname);
+ });
+ this.setState({ value: values });
+ onChange && onChange(values.join(","), shownames.join(","));
+ };
+
+ getList = () => {
+ const { options } = this.props, { keywords } = this.state;
+ let style = {};
+ if (options.length > 5) style = { height: 200 };
+ return
+
+
+ this.setState({ keywords })}/>
+
+
+
+
+
+ {options && options.filter(k => k.showname.indexOf(keywords) >= 0).map(o => {
+ return
+ this.onItemChange(v, o.key)}
+ >
+
+
;
+ })}
+
+
;
+ };
+
+ getShownames = () => {
+ const { options } = this.props;
+ let { value } = this.state;
+ let shownames = [];
+ value.forEach(val => {
+ let target = options.filter((data) => data.key == val)[0];
+ if (target) shownames.push(target.showname);
+ });
+ return shownames.join(",");
+ };
+
+ render() {
+ const { visible } = this.state, { layout } = this.props;
+ const clsname = classNames({
+ "wea-associative-search-mult": true
+ });
+ return (
+
this.setState({ visible })} visible={visible}
+ getPopupContainer={() => (layout || document.body)}>
+
+ {this.getShownames()}
+ {!this.state.visible ? : }
+
+
+
);
+ }
+}
+
+export default Index;
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/components/CustomSelect/index.less b/pc4mobx/hrmSalary/components/CustomSelect/index.less
new file mode 100644
index 00000000..1ce20fb4
--- /dev/null
+++ b/pc4mobx/hrmSalary/components/CustomSelect/index.less
@@ -0,0 +1,60 @@
+.customMuiSelect {
+ border: none;
+ padding: 0;
+
+ .wea-select-input {
+ min-width: 100px;
+ width: 100%;
+ display: inline-block;
+ padding: 4px 17px 4px 4px;
+ position: relative;
+ min-height: 30px;
+ border: 1px solid #d9d9d9;
+ user-select: none;
+ height: 30px;
+ white-space: nowrap;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -o-text-overflow: ellipsis;
+ text-overflow: ellipsis;
+ overflow: hidden;
+
+ .wdb {
+ word-break: break-all !important;
+ word-wrap: break-word !important;
+ }
+
+ .cursor-pointer {
+ cursor: pointer;
+ }
+
+ &:hover, &:focus {
+ border-color: #57c5f7;
+ }
+
+ .arrow {
+ position: absolute;
+ right: 4px;
+ top: 8px;
+ color: #979797;
+ }
+ }
+
+}
+
+.wea-select-panel {
+ padding: 5px 0;
+ max-height: 200px;
+ border-radius: 3px;
+ background: #fff;
+ border: 1px solid #ddd;
+
+ .wea-select-panel-item {
+ padding: 5px 10px;
+
+ &:hover {
+ background-color: #e9f7ff;
+ }
+ }
+}
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/pages/adjustSalaryManage/index.js b/pc4mobx/hrmSalary/pages/adjustSalaryManage/index.js
index a58245c7..813cb7d9 100644
--- a/pc4mobx/hrmSalary/pages/adjustSalaryManage/index.js
+++ b/pc4mobx/hrmSalary/pages/adjustSalaryManage/index.js
@@ -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) => ({v}) };
}), {
dataIndex: "options", title: getLabel(30585, "操作"),
width: 120, render: (_, record) => (
diff --git a/pc4mobx/hrmSalary/pages/adjustSalaryManage/index.less b/pc4mobx/hrmSalary/pages/adjustSalaryManage/index.less
index f7648ef8..fbeef936 100644
--- a/pc4mobx/hrmSalary/pages/adjustSalaryManage/index.less
+++ b/pc4mobx/hrmSalary/pages/adjustSalaryManage/index.less
@@ -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;
+ }
+ }
}
diff --git a/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/editCalcTable.js b/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/editCalcTable.js
index f5589e45..0c12752c 100644
--- a/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/editCalcTable.js
+++ b/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/editCalcTable.js
@@ -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) => {
};
}
});
-};
+};
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/pages/declare/generateDeclarationDetail.js b/pc4mobx/hrmSalary/pages/declare/generateDeclarationDetail.js
index 928f715b..a7cd8b50 100644
--- a/pc4mobx/hrmSalary/pages/declare/generateDeclarationDetail.js
+++ b/pc4mobx/hrmSalary/pages/declare/generateDeclarationDetail.js
@@ -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 (
- {getLabel(111, "薪资所属月")}:{declareInfo.salaryMonth}
+ {title}:{declareInfo.salaryMonth}
{getLabel(111, "个税扣缴义务人")}:{declareInfo.taxAgentName}
);
};
diff --git a/pc4mobx/hrmSalary/pages/mySalary/mySalaryView.js b/pc4mobx/hrmSalary/pages/mySalary/mySalaryView.js
index 5a334965..51fba0f7 100644
--- a/pc4mobx/hrmSalary/pages/mySalary/mySalaryView.js
+++ b/pc4mobx/hrmSalary/pages/mySalary/mySalaryView.js
@@ -14,7 +14,7 @@ import { confirmSalaryBill, feedBackSalaryBill, payrollCheckType } from "../../a
import CaptchaModal from "../../components/captchaModal";
import "./index.less";
-const isIPhone = new RegExp("\\biPhone\\b|\\biPod\\b", "i").test(window.navigator.userAgent);
+const isPhone = /(iPhone|iPad|iPod|iOS|Android)/i.test(window.navigator.userAgent);
const isEm = window.navigator.userAgent.indexOf("E-Mobile7") >= 0;
const { getLabel } = WeaLocaleProvider;
@@ -84,7 +84,18 @@ class MySalaryView extends Component {
const { captchaVisible, mySalaryStore } = this.state;
const { params: { salaryInfoId } } = this.props;
if (_.isEmpty(mySalaryStore)) {
- return ;
+ return
+ this.setState({ captchaVisible: false })}
+ onConfirm={() => {
+ this.props.mySalaryStore.setInitEmVerify();
+ this.props.mySalaryStore.getMySalaryBill(Number(salaryInfoId)).then(data => {
+ this.setState({ mySalaryStore: data });
+ });
+ }}
+ />
+
;
}
const { salaryTemplate, salaryGroups, employeeInformation, sendTime } = mySalaryStore;
const salaryProps = {
@@ -106,11 +117,6 @@ class MySalaryView extends Component {
- this.setState({ captchaVisible: false })}
- onConfirm={() => mySalaryStore.setInitEmVerify()}
- />
);
}
@@ -125,8 +131,8 @@ export const ConfirmBtns = (props) => {
}
{
- ((props.showFeedback === "1" && !isIPhone) || (props.showFeedback === "1" && isIPhone && isEm)) &&
+ ((props.showFeedback === "1" && !isPhone) || (props.showFeedback === "1" && isEm)) &&
}
;
-};
+};
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/pages/payroll/payrollDetail/payrollDetail.js b/pc4mobx/hrmSalary/pages/payroll/payrollDetail/payrollDetail.js
index a0c9e495..ab058017 100644
--- a/pc4mobx/hrmSalary/pages/payroll/payrollDetail/payrollDetail.js
+++ b/pc4mobx/hrmSalary/pages/payroll/payrollDetail/payrollDetail.js
@@ -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;
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/pages/reportView/components/statisticalMicroSettingsSlide.js b/pc4mobx/hrmSalary/pages/reportView/components/statisticalMicroSettingsSlide.js
index 9d1f5d7c..6124375d 100644
--- a/pc4mobx/hrmSalary/pages/reportView/components/statisticalMicroSettingsSlide.js
+++ b/pc4mobx/hrmSalary/pages/reportView/components/statisticalMicroSettingsSlide.js
@@ -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 => {
diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/columns.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/columns.js
index bc9c1816..84caeb48 100644
--- a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/columns.js
+++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/columns.js
@@ -22,6 +22,9 @@ export const socialAccountConditions = [
lanId: 537996,
labelcol: 6,
options: [],
+ otherParams: {
+ showSearch: true, optionFilterProp: "children"
+ },
rules: "required|string",
viewAttr: 3
},
diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/makeupDifference.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/makeupDifference.js
index c5e05729..66f4b8c1 100644
--- a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/makeupDifference.js
+++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBookDetail/components/makeupDifference.js
@@ -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;
\ No newline at end of file