diff --git a/pc4mobx/hrmSalary/components/slideModalTitle/index.js b/pc4mobx/hrmSalary/components/slideModalTitle/index.js index ba47f290..f51f4e73 100644 --- a/pc4mobx/hrmSalary/components/slideModalTitle/index.js +++ b/pc4mobx/hrmSalary/components/slideModalTitle/index.js @@ -17,10 +17,12 @@ export default class SlideModalTitle extends React.Component {
{this.props.subtitle}
+ {this.props.btns} { this.state.editable && } + {this.props.customOperate}
diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/columns.js b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/columns.js index f161c187..8ea97c7e 100644 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/columns.js +++ b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/columns.js @@ -1,72 +1,158 @@ export const columns = [ { title: "姓名", - dataIndex: 'title', - key: 'title', + dataIndex: 'username', + key: 'username', }, { title: "个税扣缴义务人", - dataIndex: 'title', - key: 'title', + dataIndex: 'ywr', + key: 'ywr', }, { title: "部门", - dataIndex: 'title', + dataIndex: 'bm', key: 'title', }, { title: "手机号", - dataIndex: 'title', - key: 'title', + dataIndex: 'sjh', + key: 'sjh', }, { title: "工号", - dataIndex: 'title', - key: 'title', + dataIndex: 'gh', + key: 'gh', }, { title: "证件号码", - dataIndex: 'title', - key: 'title', + dataIndex: 'sfzh', + key: 'sfzh', }, { title: "入职日期", - dataIndex: 'title', - key: 'title', + dataIndex: 'rzrq', + key: 'rzrq', }, { title: "累计子女教育", - dataIndex: 'title', - key: 'title', + dataIndex: 'ljznjy', + key: 'ljznjy', }, { title: "累计继续教育", - dataIndex: 'title', - key: 'title', + dataIndex: 'ljjxjy', + key: 'ljjxjy', }, { title: "累计住房贷款利息", - dataIndex: 'title', - key: 'title', + dataIndex: 'ljzfdklx', + key: 'ljfdklx', }, { title: "累计住房租金", - dataIndex: 'title', - key: 'title', + dataIndex: 'ljzfzj', + key: 'ljzfzj', }, { title: "累计赡养老人", - dataIndex: 'title', - key: 'title', + dataIndex: 'ljsylr', + key: 'ljsylr', }, { title: "操作", - dataIndex: 'title', - key: 'title', + dataIndex: 'cz', + key: 'cz', + render: (text, record) => { + + } } ] -export const dataSource = []; +export const slideColumns = [ + { + title: "姓名", + dataIndex: 'username', + key: 'username' + }, + { + title: "部门", + dataIndex: 'username', + key: 'username' + }, + { + title: "手机号", + dataIndex: 'username', + key: 'username' + }, + { + title: "工号", + dataIndex: 'username', + key: 'username' + }, + { + title: "在职计薪天数", + dataIndex: 'username', + key: 'username' + }, + { + title: "非在职计薪天数", + dataIndex: 'username', + key: 'username' + }, + { + title: "应出勤天数(不含节假日)", + dataIndex: 'username', + key: 'username' + }, + { + title: "实际出勤天数", + dataIndex: 'username', + key: 'username' + }, + { + title: "工作日加班", + dataIndex: 'username', + key: 'username' + }, + { + title: "双休日日加班", + dataIndex: 'username', + key: 'username' + }, + { + title: "事假时长", + dataIndex: 'username', + key: 'username' + }, + { + title: "病假时长", + dataIndex: 'username', + key: 'username' + } +] + + +export const slideDataSource = [{ + username: "测试" +}] + +export const dataSource = [ + { + username: "测试", + ywr: "测试", + bm: "测试", + sjh: "测试", + gh: "测试", + sfzh: "测试", + rzrq: "测试", + ljznjy: "测试", + ljjxjy: "测试", + ljzfdklx: "测试", + ljzfzj: "测试", + ljsylr: "测试" + } +]; diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/editSlideContent.js b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/editSlideContent.js new file mode 100644 index 00000000..ef34b569 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/editSlideContent.js @@ -0,0 +1,87 @@ +import React from 'react'; +import { Row, Col, Table, DatePicker } from "antd" +import { inject, observer } from 'mobx-react'; +import { WeaInput, WeaTextarea, WeaSearchGroup, WeaSelect, WeaCheckbox, WeaTable } from "ecCom"; +import { slideColumns, slideDataSource, columns } from './columns'; +import "./editSlideContent.less" + +// import { WeaTableNew } from "comsMobx" +// const WeaTable = WeaTableNew.WeaTable; +import moment from 'moment' + +const { MonthPicker } = DatePicker; + + +let emptyItem = { + incomeLowerLimit: "0.00", + incomeUpperLimit: "0.00", + dutyFreeValue: "0.00", + dutyFreeRate: "0.00", + taxableIncomeLl: "0.00", + taxableIncomeUl: "0.00", + taxRate: "0.00", + taxDeduction: "0.00" +} + +@inject('otherDeductStore', "taxAgentStore") +@observer +export default class EditSlideContent extends React.Component { + + constructor(props) { + super(props); + this.state = { + taxAgentId: "", + startDate: moment(new Date()).format("YYYY-MM"), + endDate: moment(new Date()).format("YYYY-MM"), + editable: this.props.editable === undefined ? "true": this.props.editable + } + } + + componentWillMount() { // 初始化渲染页面 + const { taxAgentStore: { fetchTaxAgentOption } } = this.props; + fetchTaxAgentOption(); + } + + addItem() { + const { taxRateStore: {setDataSource}} = this.props; + let dataSource = [...this.props.taxRateStore.dataSource]; + let indexNum = 1; + if(dataSource.length > 0) { + indexNum = dataSource[dataSource.length - 1].indexNum + 1 + } + let item = {...emptyItem} + item.indexNum = indexNum + dataSource.push(item); + setDataSource(dataSource) + } + + fetchCumDeductDetailList(param) { + const { otherDeductStore} = this.props; + const { getOtherDeductDetailList, currentRecord } = otherDeductStore; + getOtherDeductDetailList(currentRecord.id, param); + } + + + render() { + const { taxAgentStore: {taxAgentOption}} = this.props; + const { otherDeductStore } = this.props; + const { slideTableStore, currentRecord } = otherDeductStore; + const { startDate, endDate, taxAgentId } = this.state; + return ( +
+
+
考勤周期: 2021-01-01至2021-01-31
+ +
+ +
+ + + + ) + } +} \ No newline at end of file diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/editSlideContent.less b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/editSlideContent.less new file mode 100644 index 00000000..fd7858c8 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/editSlideContent.less @@ -0,0 +1,26 @@ +.attendSlide { + .titleWrapper { + height: 47px; + line-height: 47px; + overflow: hidden; + padding-left: 10px; + padding-right: 10px; + .slideLeftTitle { + float: left; + } + .rightTitle { + float: right; + } + } + .weaRangePickerWrapper { + display: inline-block; + .monthPickerWrapper { + width: 100px; + display: inline-block; + } + .betweenLable { + margin-left: 10px; + margin-right: 10px; + } + } +} \ No newline at end of file diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/index.js b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/index.js index 6a87ea2f..9ecbcb2d 100644 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/index.js +++ b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/index.js @@ -2,9 +2,9 @@ import React from 'react'; import { inject, observer } from 'mobx-react'; import { toJS } from 'mobx'; -import { Button, Table, DatePicker, Row, Col } from 'antd'; +import { Button, Table, DatePicker, Row, Col, Menu, Dropdown } from 'antd'; -import { WeaHelpfulTip, WeaCheckbox, WeaDatePicker, WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable, WeaSelect } from 'ecCom'; +import { WeaInputSearch, WeaSlideModal, WeaHelpfulTip, WeaCheckbox, WeaDatePicker, WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable, WeaSelect } from 'ecCom'; import { renderNoright, getSearchs } from '../../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中 import CustomTab from '../../../components/customTab'; @@ -17,7 +17,8 @@ import HeaderSet from "../../../components/importModal/headerSet" import SelectItemModal, {items} from '../../../components/selectItemsModal' import RefereAttendFormModal from './refereAttendFormModal' import SelectItemsWrapper from '../../../components/selectItemsModal/selectItemsWrapper' - +import SlideModalTitle from '../../../components/slideModalTitle' +import EditSlideContent from './editSlideContent'; const { MonthPicker } = DatePicker; @@ -34,13 +35,96 @@ export default class Attendance extends React.Component { modalParam: {}, modalVisiable: false, selectItemVisible: false, - refereAttendFormVisible: false + refereAttendFormVisible: false, + tabSelectedKey: "0", + columns: [ + { + title: "姓名", + dataIndex: 'username', + key: 'username', + }, + { + title: "个税扣缴义务人", + dataIndex: 'ywr', + key: 'ywr', + }, + { + title: "部门", + dataIndex: 'bm', + key: 'title', + }, + { + title: "手机号", + dataIndex: 'sjh', + key: 'sjh', + }, + { + title: "工号", + dataIndex: 'gh', + key: 'gh', + }, + { + title: "证件号码", + dataIndex: 'sfzh', + key: 'sfzh', + }, + { + title: "入职日期", + dataIndex: 'rzrq', + key: 'rzrq', + }, + { + title: "累计子女教育", + dataIndex: 'ljznjy', + key: 'ljznjy', + }, + { + title: "累计继续教育", + dataIndex: 'ljjxjy', + key: 'ljjxjy', + }, + { + title: "累计住房贷款利息", + dataIndex: 'ljzfdklx', + key: 'ljfdklx', + }, + { + title: "累计住房租金", + dataIndex: 'ljzfzj', + key: 'ljzfzj', + }, + { + title: "累计赡养老人", + dataIndex: 'ljsylr', + key: 'ljsylr', + }, + { + title: "操作", + key: 'cz', + render: (text, record) => { + return (
+ this.onShowSlide()}>查看 + this.onDelete()} style={{marginLeft: "10px"}}>删除 +
) + } + }] } } + + onShowSlide() { + const {attendanceStore : {setSlideVisiable}} = this.props; + setSlideVisiable(true) + } + + + onDelete() { + + } + render() { const { attendanceStore } = this.props; const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = attendanceStore; - const { step, setStep } = attendanceStore; + const { step, setStep, setSlideVisiable, slideVisiable } = attendanceStore; if (!hasRight && !loading) { // 无权限处理 return renderNoright(); } @@ -66,8 +150,14 @@ export default class Attendance extends React.Component { , ]; - const topTab = [ - ]; + const topTab = [{ + title: "社保", + viewcondition: "0" + }, + { + title: "公积金", + viewcondition: "1" + }]; const renderSearchOperationItem = () => { return
@@ -117,9 +207,32 @@ export default class Attendance extends React.Component { 2022-03-01 ~ 2022-03-31 - ) + + )} + + + const renderCustomOperate = () => { + return ( +
+ 导出 + + +
+ ) } + + const menu = ( + + 导出全部 + + ); + + + + return (
- { + }} + /> + { }} /> - + + { + this.state.tabSelectedKey == 0 ? + + : + + } + rightContent={ + + } + /> + } + @@ -174,6 +312,28 @@ export default class Attendance extends React.Component { this.setState({refereAttendFormVisible: false})}/> + + { + slideVisiable && + } + content={()} + onClose={() => setSlideVisiable(false)} + showMask={true} + closeMaskOnClick={() => setSlideVisiable(false)} /> + }
diff --git a/pc4mobx/hrmSalary/stores/attendanceStore.js b/pc4mobx/hrmSalary/stores/attendanceStore.js index 6151d400..7440f909 100644 --- a/pc4mobx/hrmSalary/stores/attendanceStore.js +++ b/pc4mobx/hrmSalary/stores/attendanceStore.js @@ -15,6 +15,10 @@ export class AttendanceStore { @observable loading = true; // 数据加载状态 @observable step = 0 ; @observable modalVisiable = false; + @observable slideVisiable = false; + + @action + setSlideVisiable = slideVisiable => this.slideVisiable = slideVisiable; @action setStep = step => this.step = step