From 0a1173faaa72e2eb6250199d9b9e8746000f17f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Mon, 13 Nov 2023 10:41:47 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feature/2.9.42311.02-=E6=88=91=E7=9A=84?= =?UTF-8?q?=E8=96=AA=E8=B5=84=E7=A6=8F=E5=88=A9=E7=A7=BB=E5=8A=A8=E7=AB=AF?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=9F=A5=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/hrmSalary/index.js | 3 + .../components/mobileDatePicker/index.js | 101 ++++++++++++ .../components/payrollList/index.js | 36 +++++ .../hrmSalary/pages/mySalaryMobile/index.js | 144 ++++++++++++++++++ .../hrmSalary/pages/mySalaryMobile/index.less | 101 ++++++++++++ 5 files changed, 385 insertions(+) create mode 100644 pc4mobx/hrmSalary/pages/mySalaryMobile/components/mobileDatePicker/index.js create mode 100644 pc4mobx/hrmSalary/pages/mySalaryMobile/components/payrollList/index.js create mode 100644 pc4mobx/hrmSalary/pages/mySalaryMobile/index.js create mode 100644 pc4mobx/hrmSalary/pages/mySalaryMobile/index.less diff --git a/pc4mobx/hrmSalary/index.js b/pc4mobx/hrmSalary/index.js index af5bbfb0..4781c1cc 100644 --- a/pc4mobx/hrmSalary/index.js +++ b/pc4mobx/hrmSalary/index.js @@ -1,6 +1,7 @@ import React from "react"; import Route from "react-router/lib/Route"; import { WeaLocaleProvider } from "ecCom"; +import MySalaryMobile from "./pages/mySalaryMobile"; import MySalary from "./pages/mySalary"; import Programme from "./pages/socialSecurityBenefits/programme"; import Archives from "./pages/socialSecurityBenefits/archives"; @@ -59,6 +60,7 @@ const Home = (props) => props.children; const SocialSecurityBenefits = (props) => props.children; const DataAcquisition = (props) => props.children; +// mySalaryMobile 我的薪资福利-移动端 // mySalary 我的薪资福利 // mySalaryView 我的薪资福利-查看工资单 // socialSecurityBenefits 社保福利 @@ -102,6 +104,7 @@ const Routes = ( path="hrmSalary" onEnter={getLocaleLabel} component={Home}> + { + console.log(this.state); + }); + } + } + + handleChangeYear = (year) => { + this.setState({ + yearList: { + ...this.state.yearList, + defaultValue: year + } + }, () => this.props.onChange(this.props.type, "defaultValueYear", year)); + }; + handleChangeMonth = (month) => { + this.setState({ + monthList: { + ...this.state.monthList, + defaultValue: "" + } + }, () => this.props.onChange(this.props.type, "defaultValueMonth", month)); + }; + + render() { + const { yearList, monthList } = this.state; + return ( +
+ + + + +
+ ); + } +} + +export default Index; +const YearFn = (lowEnd, highEnd) => { + let list = []; + for (let i = lowEnd; i <= highEnd; i++) { + list.push(i.toString()); + } + return list; +}; diff --git a/pc4mobx/hrmSalary/pages/mySalaryMobile/components/payrollList/index.js b/pc4mobx/hrmSalary/pages/mySalaryMobile/components/payrollList/index.js new file mode 100644 index 00000000..ce3d6de2 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/mySalaryMobile/components/payrollList/index.js @@ -0,0 +1,36 @@ +/* + * Author: 黎永顺 + * name: 我的薪资福利-移动端列表数据 + * Description: + * Date: 2023/11/13 + */ +import React, { Component } from "react"; +import { WeaLocaleProvider } from "ecCom"; +import moment from "moment"; + +const getLabel = WeaLocaleProvider.getLabel; + +class Index extends Component { + + render() { + const { dataSource } = this.props; + return ( +
    + { + _.map(dataSource, it => { + return
  • +
    {moment(it.salaryYearMonth).format("YYYY-MM")}
    +
    + {getLabel(111, "发放时间")} + {moment(it.sendTime).format("YYYY-MM")} +
    + {`${getLabel(33564, "查看")}>`} +
  • ; + }) + } +
+ ); + } +} + +export default Index; diff --git a/pc4mobx/hrmSalary/pages/mySalaryMobile/index.js b/pc4mobx/hrmSalary/pages/mySalaryMobile/index.js new file mode 100644 index 00000000..ede6ce6f --- /dev/null +++ b/pc4mobx/hrmSalary/pages/mySalaryMobile/index.js @@ -0,0 +1,144 @@ +/* + * Author: 黎永顺 + * name: 我的薪资福利-移动端列表 + * Description: + * Date: 2023/11/10 + */ +import React, { Component } from "react"; +import { WeaLocaleProvider, WeaTab } from "ecCom"; +import { message } from "antd"; +import moment from "moment"; +import MobileDatePicker from "./components/mobileDatePicker"; +import PayrollList from "./components/payrollList"; +import { mySalaryBillList } from "../../apis/mySalaryBenefits"; +import "./index.less"; + +const getLabel = WeaLocaleProvider.getLabel; + +class Index extends Component { + constructor(props) { + super(props); + this.state = { + dataSource: [], loading: false, pageInfo: { current: 1, pageSize: 10, total: 0 }, + salaryYearMonth: [moment().startOf("year").format("YYYY-MM"), moment().startOf("month").format("YYYY-MM")], + salaryStart: { + visible: false, type: "", + salaryStart: { + defaultValueYear: moment().year().toString(), + defaultValueMonth: (moment().startOf("year").month() + 1).toString() + } + }, + salaryEnd: { + visible: false, + salaryEnd: { + defaultValueYear: moment().year().toString(), + defaultValueMonth: (moment().month() + 1).toString() + } + } + }; + } + + componentDidMount() { + this.getMySalaryBillList(); + const mySalaryMobile = document.getElementById("mySalaryMobile"); + mySalaryMobile.addEventListener("scroll", this.handleScroll, true); + } + + handleScroll = () => { + this.isTouchBottom(this.handleLoadMore); + }; + + componentWillUnmount() { + const mySalaryMobile = document.getElementById("mySalaryMobile"); + mySalaryMobile.removeEventListener("scroll", this.handleScroll, true); + } + + getMySalaryBillList = () => { + const { salaryYearMonth, pageInfo } = this.state; + this.setState({ loading: true }); + mySalaryBillList({ salaryYearMonth, ...pageInfo }).then(({ status, data }) => { + this.setState({ loading: false }); + if (status) { + const { datas: dataSource, pageInfo } = data; + const { pageNum: current, pageSize, total } = pageInfo; + this.setState({ + dataSource, pageInfo: { ...pageInfo, current, pageSize, total } + }); + } + }).catch(() => this.setState({ loading: false })); + }; + handleLoadMore = () => { + // 为测试效果临时使用 message + message.info("触底了~"); + }; + isTouchBottom = (handler) => { + const div = document.getElementById("mySalaryMobile"); + if ((div.scrollHeight - div.scrollTop) === div.clientHeight) handler(); + }; + handleChange = (type, key, val) => { + this.setState({ + [type]: { + ...this.state[type], + [type]: { + ...this.state[type][type], + [key]: val + } + } + }); + }; + handleCancel = () => { + this.setState({ + salaryStart: { + visible: false, type: "", + salaryStart: { + defaultValueYear: moment().year().toString(), + defaultValueMonth: (moment().startOf("year").month() + 1).toString() + } + }, + salaryEnd: { + visible: false, + salaryEnd: { + defaultValueYear: moment().year().toString(), + defaultValueMonth: (moment().month() + 1).toString() + } + } + }); + }; + handleConfirm = () => { + this.handleCancel(); + }; + + render() { + const { salaryStart, salaryEnd, salaryYearMonth, dataSource } = this.state; + const [salaryStartYearMonth, salaryEndYearMonth] = salaryYearMonth; + const mobilePorps = { ...salaryStart, ...salaryEnd, visible: salaryEnd.visible || salaryStart.visible }; + return ( +
+
+ +
+
+ this.setState({ + salaryStart: { ...salaryStart, visible: true, type: "salaryStart" } + })}>{salaryStartYearMonth} + {getLabel(15322, "至")} + this.setState({ + salaryEnd: { ...salaryEnd, visible: true, type: "salaryEnd" } + })}>{salaryEndYearMonth} +
+ + +
+ ); + } +} + +export default Index; diff --git a/pc4mobx/hrmSalary/pages/mySalaryMobile/index.less b/pc4mobx/hrmSalary/pages/mySalaryMobile/index.less new file mode 100644 index 00000000..259f5e9e --- /dev/null +++ b/pc4mobx/hrmSalary/pages/mySalaryMobile/index.less @@ -0,0 +1,101 @@ +.salary-mobile-list-wrapper { + height: 100%; + overflow-y: auto; + background: #f6f6f6; + position: relative; + + .salary-mobile-list-tab { + background: #fff; + position: fixed; + width: 100%; + } + + .wea-tab { + display: flex; + justify-content: center; + } + + .searchWrapper { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + padding: 10px 0; + background: #fff; + height: 40px; + position: fixed; + top: 47px; + + .date { + color: #333; + } + + .to { + margin: 0 10px; + color: #999; + } + } + + .ui-picker-address { + .ui-popup-title { + font-size: 12px !important; + } + + .ui-popup-content { + display: flex; + + .ui-picker-wrapper { + flex: 1; + + .ui-picker-item { + font-size: 12px !important; + } + } + } + } +} + +.payrollList-wrapper { + padding: 8px 0; + margin-top: 87px; + + li { + display: flex; + flex-direction: column; + border-radius: 5px; + background: #FFF; + margin: 0 8px 8px; + + .salaryMonth { + display: flex; + padding: 10px; + border-bottom: 1px solid #e5e5e5; + + & > span:first-child { + color: #2db7f5; + font-size: 14px; + } + } + + .sendTime { + padding: 10px; + + & > span:first-child { + color: #999; + margin-right: 80px; + } + + & > span:last-child { + color: #333; + } + } + + a { + color: #2db7f5; + display: inline-block; + width: 100%; + text-align: center; + padding-bottom: 10px; + } + } +} From 3ab54027f9bb24ef9a4cf0806a436ceccfda1079 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Mon, 13 Nov 2023 14:13:03 +0800 Subject: [PATCH 2/5] =?UTF-8?q?feature/2.9.42311.02-=E6=88=91=E7=9A=84?= =?UTF-8?q?=E8=96=AA=E8=B5=84=E7=A6=8F=E5=88=A9=E7=A7=BB=E5=8A=A8=E7=AB=AF?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=9F=A5=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/mobileDatePicker/index.js | 65 +++++++---------- .../hrmSalary/pages/mySalaryMobile/index.js | 73 +++---------------- .../hrmSalary/pages/mySalaryMobile/index.less | 8 +- 3 files changed, 43 insertions(+), 103 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/mySalaryMobile/components/mobileDatePicker/index.js b/pc4mobx/hrmSalary/pages/mySalaryMobile/components/mobileDatePicker/index.js index a17b065e..dde59609 100644 --- a/pc4mobx/hrmSalary/pages/mySalaryMobile/components/mobileDatePicker/index.js +++ b/pc4mobx/hrmSalary/pages/mySalaryMobile/components/mobileDatePicker/index.js @@ -16,60 +16,49 @@ class Index extends Component { constructor(props) { super(props); this.state = { - yearList: {}, monthList: {} + visible: false, + salaryYearMonth: { year: "", month: "" } }; } componentWillReceiveProps(nextProps, nextContext) { - if (nextProps.visible !== this.props.visible && nextProps.visible) { - this.setState({ - yearList: { - list: YearFn(Number(moment().subtract(100, "year").format("YYYY")), Number(moment().add(100, "year").format("YYYY"))), - defaultValue: nextProps[nextProps.type].defaultValueYear, - displayValue(name) { - return name; - } - }, - monthList: { - list: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], - defaultValue: nextProps.type === "salaryStart" ? "0" : nextProps[nextProps.type].defaultValueMonth, - displayValue(name) { - return name; - } - } - }, () => { - console.log(this.state); - }); - } + const { value } = nextProps; + const [year, month] = value.split("-"); + this.setState({ + salaryYearMonth: { year, month } + }); } handleChangeYear = (year) => { - this.setState({ - yearList: { - ...this.state.yearList, - defaultValue: year - } - }, () => this.props.onChange(this.props.type, "defaultValueYear", year)); + this.setState({ salaryYearMonth: { ...this.state.salaryYearMonth, year } }); }; handleChangeMonth = (month) => { - this.setState({ - monthList: { - ...this.state.monthList, - defaultValue: "" - } - }, () => this.props.onChange(this.props.type, "defaultValueMonth", month)); + + this.setState({ salaryYearMonth: { ...this.state.salaryYearMonth, month: parseInt(month).toString() } }); + }; + handleCancel = () => { + this.setState({ visible: false }); + }; + handleConfirm = () => { + const { year, month } = this.state.salaryYearMonth; + this.setState({ visible: false }, () => { + this.props.onChange(moment(new Date(`${year}- ${month}`)).format("YYYY-MM")); + }); }; render() { - const { yearList, monthList } = this.state; + const { value } = this.props; + const { visible } = this.state; + const [year, month] = value.split("-"); return (
- + this.setState({ visible: true })}>{value} + { this.setState({ loading: false }); if (status) { - const { datas: dataSource, pageInfo } = data; - const { pageNum: current, pageSize, total } = pageInfo; + const { datas: dataSource, pageInfo: pageResult } = data; + const { pageNum: current, pageSize, total } = pageResult; this.setState({ dataSource, pageInfo: { ...pageInfo, current, pageSize, total } }); @@ -75,43 +61,17 @@ class Index extends Component { const div = document.getElementById("mySalaryMobile"); if ((div.scrollHeight - div.scrollTop) === div.clientHeight) handler(); }; - handleChange = (type, key, val) => { + handleChange = (type, val) => { + const { salaryYearMonth } = this.state; + const [salaryStartYearMonth, salaryEndYearMonth] = salaryYearMonth; this.setState({ - [type]: { - ...this.state[type], - [type]: { - ...this.state[type][type], - [key]: val - } - } - }); - }; - handleCancel = () => { - this.setState({ - salaryStart: { - visible: false, type: "", - salaryStart: { - defaultValueYear: moment().year().toString(), - defaultValueMonth: (moment().startOf("year").month() + 1).toString() - } - }, - salaryEnd: { - visible: false, - salaryEnd: { - defaultValueYear: moment().year().toString(), - defaultValueMonth: (moment().month() + 1).toString() - } - } - }); - }; - handleConfirm = () => { - this.handleCancel(); + salaryYearMonth: type === "salaryStartYearMonth" ? [val, salaryEndYearMonth] : [salaryStartYearMonth, val] + }, () => this.getMySalaryBillList()); }; render() { - const { salaryStart, salaryEnd, salaryYearMonth, dataSource } = this.state; + const { salaryYearMonth, dataSource } = this.state; const [salaryStartYearMonth, salaryEndYearMonth] = salaryYearMonth; - const mobilePorps = { ...salaryStart, ...salaryEnd, visible: salaryEnd.visible || salaryStart.visible }; return (
@@ -121,21 +81,12 @@ class Index extends Component { />
- this.setState({ - salaryStart: { ...salaryStart, visible: true, type: "salaryStart" } - })}>{salaryStartYearMonth} + this.handleChange("salaryStartYearMonth", v)}/> {getLabel(15322, "至")} - this.setState({ - salaryEnd: { ...salaryEnd, visible: true, type: "salaryEnd" } - })}>{salaryEndYearMonth} + this.handleChange("salaryEndYearMonth", v)}/>
-
); } diff --git a/pc4mobx/hrmSalary/pages/mySalaryMobile/index.less b/pc4mobx/hrmSalary/pages/mySalaryMobile/index.less index 259f5e9e..16ae3726 100644 --- a/pc4mobx/hrmSalary/pages/mySalaryMobile/index.less +++ b/pc4mobx/hrmSalary/pages/mySalaryMobile/index.less @@ -26,10 +26,6 @@ position: fixed; top: 47px; - .date { - color: #333; - } - .to { margin: 0 10px; color: #999; @@ -37,6 +33,10 @@ } .ui-picker-address { + .date { + color: #333; + } + .ui-popup-title { font-size: 12px !important; } From 1d110fe25db7db946520f8111bff79a93e94dac0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Mon, 13 Nov 2023 15:35:43 +0800 Subject: [PATCH 3/5] =?UTF-8?q?feature/2.9.42311.02-=E6=88=91=E7=9A=84?= =?UTF-8?q?=E8=96=AA=E8=B5=84=E7=A6=8F=E5=88=A9=E7=A7=BB=E5=8A=A8=E7=AB=AF?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=9F=A5=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/payrollList/index.js | 10 ++++++++-- .../hrmSalary/pages/mySalaryMobile/index.js | 20 ++++++++++++------- .../hrmSalary/pages/mySalaryMobile/index.less | 7 ++++++- 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/mySalaryMobile/components/payrollList/index.js b/pc4mobx/hrmSalary/pages/mySalaryMobile/components/payrollList/index.js index ce3d6de2..5e4cf85b 100644 --- a/pc4mobx/hrmSalary/pages/mySalaryMobile/components/payrollList/index.js +++ b/pc4mobx/hrmSalary/pages/mySalaryMobile/components/payrollList/index.js @@ -13,12 +13,12 @@ const getLabel = WeaLocaleProvider.getLabel; class Index extends Component { render() { - const { dataSource } = this.props; + const { dataSource, isMore, loading } = this.props; return (
    { _.map(dataSource, it => { - return
  • + return
  • {moment(it.salaryYearMonth).format("YYYY-MM")}
    {getLabel(111, "发放时间")} @@ -28,6 +28,12 @@ class Index extends Component {
  • ; }) } + { + loading &&
  • {getLabel(31230, "加载中")}
  • + } + { + !isMore &&
  • {getLabel(83553, "暂无数据")}
  • + }
); } diff --git a/pc4mobx/hrmSalary/pages/mySalaryMobile/index.js b/pc4mobx/hrmSalary/pages/mySalaryMobile/index.js index e4d5d47f..e1fade72 100644 --- a/pc4mobx/hrmSalary/pages/mySalaryMobile/index.js +++ b/pc4mobx/hrmSalary/pages/mySalaryMobile/index.js @@ -6,7 +6,6 @@ */ import React, { Component } from "react"; import { WeaLocaleProvider, WeaTab } from "ecCom"; -import { message } from "antd"; import moment from "moment"; import MobileDatePicker from "./components/mobileDatePicker"; import PayrollList from "./components/payrollList"; @@ -20,7 +19,8 @@ class Index extends Component { super(props); this.state = { dataSource: [], loading: false, pageInfo: { current: 1, pageSize: 10, total: 0 }, - salaryYearMonth: [moment().startOf("year").format("YYYY-MM"), moment().startOf("month").format("YYYY-MM")] + salaryYearMonth: [moment().startOf("year").format("YYYY-MM"), moment().startOf("month").format("YYYY-MM")], + isMore: true //是否还有更多数据 }; } @@ -48,14 +48,20 @@ class Index extends Component { const { datas: dataSource, pageInfo: pageResult } = data; const { pageNum: current, pageSize, total } = pageResult; this.setState({ - dataSource, pageInfo: { ...pageInfo, current, pageSize, total } - }); + dataSource: [...this.state.dataSource, ...dataSource], + pageInfo: { ...pageInfo, current, pageSize, total } + }, () => this.setState({ isMore: this.state.dataSource.length < total })); } }).catch(() => this.setState({ loading: false })); }; handleLoadMore = () => { // 为测试效果临时使用 message - message.info("触底了~"); + const { pageInfo, isMore } = this.state; + if (!isMore) return; + const { current } = pageInfo; + this.setState({ + pageInfo: { ...pageInfo, current: current + 1 } + }, () => this.getMySalaryBillList()); }; isTouchBottom = (handler) => { const div = document.getElementById("mySalaryMobile"); @@ -70,7 +76,7 @@ class Index extends Component { }; render() { - const { salaryYearMonth, dataSource } = this.state; + const { salaryYearMonth, dataSource, isMore, loading } = this.state; const [salaryStartYearMonth, salaryEndYearMonth] = salaryYearMonth; return (
@@ -86,7 +92,7 @@ class Index extends Component { {getLabel(15322, "至")} this.handleChange("salaryEndYearMonth", v)}/>
- +
); } diff --git a/pc4mobx/hrmSalary/pages/mySalaryMobile/index.less b/pc4mobx/hrmSalary/pages/mySalaryMobile/index.less index 16ae3726..2db7cfab 100644 --- a/pc4mobx/hrmSalary/pages/mySalaryMobile/index.less +++ b/pc4mobx/hrmSalary/pages/mySalaryMobile/index.less @@ -59,7 +59,12 @@ padding: 8px 0; margin-top: 87px; - li { + li.empty, li.more { + text-align: center; + color: #999; + } + + li.item { display: flex; flex-direction: column; border-radius: 5px; From f51de576619a1e8568e9b2e1307e2094f076b2b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Mon, 13 Nov 2023 15:49:45 +0800 Subject: [PATCH 4/5] =?UTF-8?q?feature/2.9.42311.02-=E6=88=91=E7=9A=84?= =?UTF-8?q?=E8=96=AA=E8=B5=84=E7=A6=8F=E5=88=A9=E7=A7=BB=E5=8A=A8=E7=AB=AF?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=9F=A5=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mySalaryMobile/components/payrollList/index.js | 5 ++++- pc4mobx/hrmSalary/pages/mySalaryMobile/index.less | 11 +++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/pc4mobx/hrmSalary/pages/mySalaryMobile/components/payrollList/index.js b/pc4mobx/hrmSalary/pages/mySalaryMobile/components/payrollList/index.js index 5e4cf85b..ae884bc6 100644 --- a/pc4mobx/hrmSalary/pages/mySalaryMobile/components/payrollList/index.js +++ b/pc4mobx/hrmSalary/pages/mySalaryMobile/components/payrollList/index.js @@ -19,7 +19,10 @@ class Index extends Component { { _.map(dataSource, it => { return
  • -
    {moment(it.salaryYearMonth).format("YYYY-MM")}
    +
    + {moment(it.salaryYearMonth).format("YYYY-MM")} + {`${getLabel(15323, "第")}${it.acctTimes}${getLabel(18929, "次")}`} +
    {getLabel(111, "发放时间")} {moment(it.sendTime).format("YYYY-MM")} diff --git a/pc4mobx/hrmSalary/pages/mySalaryMobile/index.less b/pc4mobx/hrmSalary/pages/mySalaryMobile/index.less index 2db7cfab..9dd4d275 100644 --- a/pc4mobx/hrmSalary/pages/mySalaryMobile/index.less +++ b/pc4mobx/hrmSalary/pages/mySalaryMobile/index.less @@ -74,12 +74,23 @@ .salaryMonth { display: flex; padding: 10px; + justify-content: space-between; + align-items: center; border-bottom: 1px solid #e5e5e5; & > span:first-child { color: #2db7f5; font-size: 14px; } + + & > span:last-child { + background: rgba(45, 183, 245, .1); + color: #2db7f5; + font-size: 12px; + display: inline-block; + padding: 4px; + transform: scale(.8); + } } .sendTime { From f1b0fc588a747b9b8bb4ad125535630c34f94e82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Wed, 6 Dec 2023 14:49:34 +0800 Subject: [PATCH 5/5] 1release/2.9.9.2312.01 --- pc4mobx/hrmSalary/util/index.js | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/pc4mobx/hrmSalary/util/index.js b/pc4mobx/hrmSalary/util/index.js index 65a739ff..e5b3c1aa 100644 --- a/pc4mobx/hrmSalary/util/index.js +++ b/pc4mobx/hrmSalary/util/index.js @@ -117,17 +117,10 @@ export const padding0 = (num, length) => { } return "0." + num; }; -export const toDecimal_n = (x, num) => { - if (isNaN(parseFloat(x))) return false; - let f = Math.round(x * Math.pow(10, num)) / Math.pow(10, num); - let s = f.toString(); - let rs = s.indexOf("."); - if (rs < 0) { - rs = s.length; - s += "."; - } - while (s.length <= rs + num) { - s += "0"; - } - return s; +export const toDecimal_n = (num, decimalPlaces) => { + if (num === null || !isFinite(num)) return null + if (decimalPlaces < 0) return null; + const multiplier = Math.pow(10, decimalPlaces); + const roundedNum = Math.round(num * multiplier) / multiplier; + return roundedNum.toFixed(decimalPlaces); };