From 7a4604a86054e4fa7d27bd436e4911cb385ee4d1 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, 8 Mar 2023 18:35:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=87=87=E9=9B=86-=E8=80=83?= =?UTF-8?q?=E5=8B=A4=E5=BC=95=E7=94=A8=E9=A1=B5=E9=9D=A2=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/selectItemsModal/index11.js | 93 -- .../selectItemsWrappercopy.js | 78 -- .../components/attendanceRefrenceDataModal.js | 124 ++- .../attendance/editSlideContent.js | 103 -- .../attendance/editSlideContent.less | 26 - .../attendance/headerSetModal.js | 14 - .../dataAcquisition/attendance/indexcopy.js | 921 ------------------ .../attendance/itemMangeFormModal.js | 124 --- .../attendance/refereAttendFormModal.js | 198 ---- 9 files changed, 120 insertions(+), 1561 deletions(-) delete mode 100644 pc4mobx/hrmSalary/components/selectItemsModal/index11.js delete mode 100644 pc4mobx/hrmSalary/components/selectItemsModal/selectItemsWrappercopy.js delete mode 100644 pc4mobx/hrmSalary/pages/dataAcquisition/attendance/editSlideContent.js delete mode 100644 pc4mobx/hrmSalary/pages/dataAcquisition/attendance/editSlideContent.less delete mode 100644 pc4mobx/hrmSalary/pages/dataAcquisition/attendance/headerSetModal.js delete mode 100644 pc4mobx/hrmSalary/pages/dataAcquisition/attendance/indexcopy.js delete mode 100644 pc4mobx/hrmSalary/pages/dataAcquisition/attendance/itemMangeFormModal.js delete mode 100644 pc4mobx/hrmSalary/pages/dataAcquisition/attendance/refereAttendFormModal.js diff --git a/pc4mobx/hrmSalary/components/selectItemsModal/index11.js b/pc4mobx/hrmSalary/components/selectItemsModal/index11.js deleted file mode 100644 index 27cc02a7..00000000 --- a/pc4mobx/hrmSalary/components/selectItemsModal/index11.js +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Author: 黎永顺 - * Description: - * Date: 2022-05-19 15:18:09 - * LastEditTime: 2022-06-29 10:06:13 - */ -import React from "react"; -import { WeaCheckbox, WeaInputSearch, WeaDialog } from "ecCom"; -import { Button, Dropdown, Menu, Modal } from "antd"; -import "../../pages/dataAcquisition/attendance/index.less" - - -export const items = [ - { - key: "1", - title: "测试", - checked: false - }, - { - key: "2", - title: "测试2", - checked: true - } -]; - -export default class SelectItemModal extends React.Component { - constructor(props) { - super(props); - this.state = { - searchValue: "" - }; - } - - handleShowChecked(value) { - value = value == 1 ? true : false; - this.props.onShowChecked(value); - } - - handleMenuClick(e) { - if (e.key == "1") { //恢复默认设置 - this.props.onRestoreDefault(); - } else if (e.key == "2") { - this.props.onSetDefault(); - } else if (e.key == "3") { - - } - } - - render() { - const menu = ( - this.handleMenuClick(e)}> - 恢复默认设置 - 设置默认设置 - {/* 操作日志 */} - - ); - return ( - { - this.props.onSave(); - }}>保存, - 更多 - ]} - > -
- { - this.setState({ searchValue: value }); - }} - onSearch={(value) => { - this.props.onSearch(value); - }} - /> -
- {this.props.children} -
- { - this.handleShowChecked(value); - }}/> -
-
- ); - } -} diff --git a/pc4mobx/hrmSalary/components/selectItemsModal/selectItemsWrappercopy.js b/pc4mobx/hrmSalary/components/selectItemsModal/selectItemsWrappercopy.js deleted file mode 100644 index b29f38b8..00000000 --- a/pc4mobx/hrmSalary/components/selectItemsModal/selectItemsWrappercopy.js +++ /dev/null @@ -1,78 +0,0 @@ -import React from "react"; -import { WeaCheckbox } from "ecCom"; -import { Col, Icon, Row } from "antd"; - -export default class SelectItemsWrapper extends React.Component { - constructor(props) { - super(props); - this.state = { - showContent: true, - checkStatus: false - }; - } - - handleAllChecked(value) { - value = value == 1 ? true : false; - let items = [...this.props.items]; - items.map(item => { - item.checked = value; - }); - this.setState({ - checkStatus: value - }); - this.props.onChange(items); - } - - handleItemChange(value, record) { - value = value == 1 ? true : false; - let items = [...this.props.items]; - items.map(item => { - if (item.id == record.id) { - item.checked = value; - } - }); - this.props.onChange(items); - } - - render() { - return ( -
-
-
{this.props.title}} onChange={(value) => { - this.handleAllChecked(value); - }} value={this.state.checkStatus}/>
-
this.setState({ - showContent: !this.state.showContent - })}>已选中{this.props.items ? this.props.items.filter(item => item.checked).length : 0}个字段 - - { - this.state.showContent ? : - } - -
-
- { - this.state.showContent &&
- - { - this.props.items && this.props.items.map(item => ( - { - this.handleItemChange(value, item); - }}/> - )) - } - -
- } - -
- ); - } -} diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/components/attendanceRefrenceDataModal.js b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/components/attendanceRefrenceDataModal.js index 3b96d14b..2308b556 100644 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/components/attendanceRefrenceDataModal.js +++ b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/components/attendanceRefrenceDataModal.js @@ -10,7 +10,14 @@ import { WeaDialog } from "ecCom"; import { Button, message } from "antd"; import { reFrenceConditions } from "../columns"; import { getSearchs } from "../../../../util"; -import { checkOperation, getLedgerList, syncAttendanceRefer } from "../../../../apis/attendance"; +import { + checkOperation, + getAttendanceFieldSettingList, + getLedgerList, returnToAttendanceFieldSettingDefault, saveAttendanceFieldSetting, saveAttendanceFieldSettingAsDefault, + syncAttendanceRefer +} from "../../../../apis/attendance"; +import SelectItemModal from "../../../../components/selectItemsModal"; +import SelectItemsWrapper from "../../../../components/selectItemsModal/selectItemsWrapper"; import "./index.less"; @inject("attendanceStore") @@ -20,7 +27,9 @@ class AttendanceRefrenceDataModal extends Component { super(props); this.state = { loading: false, - condition: [] + headerSetLoading: false, + condition: [], + headerSetPayload: { visible: false, title: "", children: null } }; } @@ -92,12 +101,112 @@ class AttendanceRefrenceDataModal extends Component { const { attendanceStore: { refenceform } } = this.props; refenceform.resetForm(); }; + /* + * Author: 黎永顺 + * Description: 表头设置 + * Params: + * Date: 2023/3/8 + */ + handleHeaderSetting = () => { + const { headerSetPayload } = this.state; + this.setState({ headerSetLoading: true }); + getAttendanceFieldSettingList({ sourceType: "QUOTE" }).then(({ status, data }) => { + this.setState({ headerSetLoading: false }); + if (status) { + this.setState({ + headerSetPayload: { + ...headerSetPayload, + visible: true, title: "引用考勤字段设置", + children: this.setItemRef = dom} + dataSource={data} + onSelectGroupAll={this.handleSelectGroupAll} + onSelectItem={this.handleSelectItem} + /> + } + }); + } + }).catch(() => this.setState({ headerSetLoading: false })); + }; + handleCloseSettings = () => { + const { headerSetPayload } = this.state; + this.setState({ + headerSetPayload: { + ...headerSetPayload, + visible: false, title: "", children: null + } + }); + }; + handleSearchItemSet = (val) => this.setItemRef.handleSearchItemSet(val); + handleShowOnlyChecked = (checked) => this.setItemRef.handleShowOnlyChecked(checked); + handleSelectGroupAll = (groupId, checked) => this.setItemRef.handleSelectGroupAll(groupId, checked); + handleSelectItem = (id, checked) => this.setItemRef.handleSelectItem(id, checked); + handleMoreOpts = (key) => { + switch (key) { + case "recovery": + returnToAttendanceFieldSettingDefault({ sourceType: "QUOTE" }).then(({ status, errormsg }) => { + if (status) { + message.success("操作成功"); + this.handleHeaderSetting({ sourceType: "QUOTE" }); + } else { + message.error(errormsg || "操作失败"); + } + }); + break; + case "setting": + const { state, props } = this.setItemRef; + let currentSettingFields = []; + const { selectItem } = state, { dataSource } = props; + _.forEach(dataSource, item => { + currentSettingFields = _.map([...currentSettingFields, ...item.items], child => { + return { + id: child.id, + checked: selectItem.includes(child.id) + }; + }); + }); + const payload = { currentSettingFields, sourceType: "QUOTE" }; + saveAttendanceFieldSettingAsDefault(payload).then(({ status, errormsg }) => { + if (status) { + message.success("操作成功"); + } else { + message.error(errormsg || "操作失败"); + } + }); + break; + default: + break; + } + }; + handleSave = () => { + const { state, props } = this.setItemRef; + let currentSettingFields = []; + const { selectItem } = state, { dataSource } = props; + _.forEach(dataSource, item => { + currentSettingFields = _.map([...currentSettingFields, ...item.items], child => { + return { + id: child.id, + checked: selectItem.includes(child.id) + }; + }); + }); + const payload = { currentSettingFields, sourceType: "QUOTE" }; + saveAttendanceFieldSetting(payload).then(({ status, errormsg }) => { + if (status) { + message.success("保存成功"); + this.handleCloseSettings(); + } else { + message.error(errormsg || "保存失败"); + } + }); + }; render() { - const { condition, loading } = this.state; + const { condition, loading, headerSetLoading, headerSetPayload } = this.state; const { attendanceStore: { refenceform } } = this.props; const buttons = [ - + , + ]; return ( {getSearchs(refenceform, condition, 1)} + {/* 表头设置 */} + ); } diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/editSlideContent.js b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/editSlideContent.js deleted file mode 100644 index 76d7df05..00000000 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/editSlideContent.js +++ /dev/null @@ -1,103 +0,0 @@ -import React from "react"; -import { DatePicker } from "antd"; -import { inject, observer } from "mobx-react"; -import { WeaTable } from "ecCom"; -import "./editSlideContent.less"; - -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("attendanceStore") -@observer -export default class EditSlideContent extends React.Component { - constructor(props) { - super(props); - } - - componentWillMount() { - // 初始化渲染页面 - const { attendanceStore: { viewAttendQuote } } = this.props; - viewAttendQuote({ attendQuoteId: this.props.id }); - } - - getColumns(columns) { - let result = [...columns]; - return result.filter(item => item.hide == "false"); - } - - getScrollWidth() { - const { attendanceStore } = this.props; - const { attendQuoteDetailTableStore } = attendanceStore; - return ( - this.getColumns( - attendQuoteDetailTableStore.columns - ? attendQuoteDetailTableStore.columns - : [] - ).length * 150 - ); - } - - render() { - const { - attendanceStore, - attendanceStore: { viewAttendQuote } - } = this.props; - const { - attendQuoteDetailPageInfo, - attendQuoteDetailTableStore - } = attendanceStore; - - const pagination = { - total: attendQuoteDetailPageInfo.total, - showTotal: total => `共 ${total} 条`, - showSizeChanger: true, - pageSizeOptions: ["10", "20", "50", "100"], - onShowSizeChange: (current, pageSize) => { - viewAttendQuote({ attendQuoteId: this.props.id, current, pageSize }); - }, - onChange: current => { - viewAttendQuote({ - attendQuoteId: this.props.id, - current, - pageSize: attendQuoteDetailPageInfo.pageSize - }); - } - }; - return ( -
-
- {this.props.salaryYearMonth != "" && -
- 考勤周期: {this.props.salaryYearMonth} -
} -
-
- -
-
- ); - } -} diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/editSlideContent.less b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/editSlideContent.less deleted file mode 100644 index fd7858c8..00000000 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/editSlideContent.less +++ /dev/null @@ -1,26 +0,0 @@ -.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/headerSetModal.js b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/headerSetModal.js deleted file mode 100644 index c8ee03f1..00000000 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/headerSetModal.js +++ /dev/null @@ -1,14 +0,0 @@ -import React from 'react' -import { Modal } from 'antd' -import SelectItemModal, { items } from '../../../components/selectItemsModal/selectItemsWrapper'; - - -export default class HeaderSetModal extends React.Component { - render() { - return ( - - - - ) - } -} \ No newline at end of file diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/indexcopy.js b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/indexcopy.js deleted file mode 100644 index 3b4727bd..00000000 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/indexcopy.js +++ /dev/null @@ -1,921 +0,0 @@ -import React from "react"; -import { inject, observer } from "mobx-react"; -import { Button, Col, DatePicker, Dropdown, Menu, message, Modal, Row, Switch } from "antd"; -import { WeaDatePicker, WeaInputSearch, WeaNewScroll, WeaSelect, WeaSlideModal, WeaTop } from "ecCom"; -import moment from "moment"; -import { renderNoright } from "../../../util"; -import CustomTab from "../../../components/customTab"; -import { columns } from "./columns"; -import ImportModal from "../../../components/importModal"; -import HeaderSet from "../../../components/importModal/headerSet"; -import SelectItemModal from "../../../components/selectItemsModal"; -import RefereAttendFormModal from "./refereAttendFormModal"; -import SelectItemsWrapper from "../../../components/selectItemsModal/selectItemsWrapper"; -import SlideModalTitle from "../../../components/slideModalTitle"; -import EditSlideContent from "./editSlideContent"; -import TwoColContent from "../../../components/twoColContent"; -import TipLabel from "../../../components/TipLabel"; -import ItemMangeFormModal from "./itemMangeFormModal"; -import CustomPaginationTable from "../../../components/customPaginationTable"; -import "../otherDeduct/index.less"; - -const MonthPicker = DatePicker.MonthPicker; - -@inject("attendanceStore", "taxAgentStore") -@observer -export default class Attendance extends React.Component { - constructor(props) { - super(props); - columns.map(item => { - if (item.key == "cz") { - item.render = (text, record) => { - return ( -
- this.onShowSlide()}> - 查看 - - this.onDelete()} - style={{ marginLeft: "10px" }}> - 删除 - -
- ); - }; - } - }); - this.state = { - value: "", - selectedKey: "0", - searchValue: "", - modalParam: { - salarySobId: "", - salaryYearMonth: moment(new Date()).format("YYYY-MM") // 薪资所属月 - }, - modalVisiable: false, - selectItemVisible: false, - refereAttendFormVisible: false, - tabSelectedKey: "0", - itemMangeVisible: false, - itemMangeValue: {}, - fieldName: "", - fieldSettingSearchValue: "", - fieldCurrent: 1, - inited: false - }; - this.fieldSearch = {}; - this.listSearch = { - salaryYearMonth: [moment(new Date()).startOf("year").format("YYYY-MM"), moment(new Date()).startOf("month").format("YYYY-MM")], - current: 1 - }; - this.recordId = ""; // 考勤数据列表查看选择项 - this.salaryYearMonth = ""; // 考勤数据查看,当前数据的薪资所属月 - this.pageInfo = { current: 1, pageSize: 10 }; - } - - componentWillMount() { - const { attendanceStore: { doInit, getLedgerList } } = this.props; - doInit(this.listSearch); - getLedgerList().then(() => { - this.setState({ - inited: true - }); - }); - } - - onShowSlide() { - const { attendanceStore: { setSlideVisiable } } = this.props; - setSlideVisiable(true); - } - - onItemEdit(record) { - this.setState({ - itemMangeVisible: true - }); - - const { - attendanceStore: { setCurrentItemOperate, setCurrentItem } - } = this.props; - setCurrentItemOperate("update"); - setCurrentItem(record); - } - - // 字段列表分页 - handleFieldPageChange(value) { - const { attendanceStore: { getAttendanceFieldList } } = this.props; - this.fieldSearch.current = value; - this.fieldSearch.pageSize = this.pageInfo.pageSize; - getAttendanceFieldList(this.fieldSearch); - } - - handleFieldShowSizeChange(pageInfo) { - const { attendanceStore: { getAttendanceFieldList } } = this.props; - this.fieldSearch.current = pageInfo; - getAttendanceFieldList({ ...this.fieldSearch, ...pageInfo }); - } - - // 列表 - handleDataPageChange(value) { - const { attendanceStore: { getAttendanceList } } = this.props; - this.listSearch.current = value; - getAttendanceList(this.listSearch); - } - - handleDataShowSizeChange(pageInfo) { - const { attendanceStore: { getAttendanceList } } = this.props; - getAttendanceList({ ...this.listSearch, ...pageInfo }); - } - - // 下载导入模板链接点击 - handleTemplateLinkClick() { - const { attendanceStore: { downloadTemplate } } = this.props; - const { modalParam: { salarySobId, salaryYearMonth } } = this.state; - if (!salaryYearMonth || salaryYearMonth == "") { - message.warning("薪资所属月不能为空"); - return; - } - - if (!salarySobId || salarySobId == "") { - message.warning("薪资账套不能为空"); - return; - } - downloadTemplate(salaryYearMonth, salarySobId); - } - - // 导入预览 - handlePreviewImport(params) { - const { attendanceStore: { previewAttendQuote } } = this.props; - previewAttendQuote(params); - } - - // 考勤导入 - handleImport(params) { - const { attendanceStore: { importAttendQuoteData } } = this.props; - importAttendQuoteData(params); - } - - // 导入完成 - handleFinish() { - this.setState({ modalVisiable: false }); - const { attendanceStore: { getAttendanceList, step } } = this.props; - if (step === 2) { - getAttendanceList({ ...this.pageInfo }); - } - } - - // 考情引用的列 - getColumns(columns) { - const { - attendanceStore: { deleteAttendance, doInit }, - taxAgentStore: { showOperateBtn } - } = this.props; - let result = [...columns]; - result.push({ - title: "操作", - key: "operate", - render: (text, record) => { - return ( -
- this.handleViewAttendance(record)}>查看 - {showOperateBtn && - { - Modal.confirm({ - title: "信息确认", - content: "确认删除", - onOk: () => { - deleteAttendance([ - record.id - ]).then(({ status, errormsg }) => { - if (status) { - message.success("删除成功"); - doInit(this.listSearch); - } else { - message.error(errormsg || "删除失败"); - } - }); - }, - onCancel: () => { - } - }); - }}> - 删除 - - }> - - - - } -
- ); - } - }); - return result; - } - - // 查看考勤详情 - handleViewAttendance(record) { - const { attendanceStore: { setSlideVisiable } } = this.props; - this.recordId = record.id; - this.salaryYearMonth = record.attendCycle; - setSlideVisiable(true); - } - - // 引用同步Cancel事件 - handleRefereCancel() { - this.setState({ refereAttendFormVisible: false }); - const { attendanceStore: { getAttendanceList } } = this.props; - this.listSearch.current = 1; - getAttendanceList(this.listSearch); - } - - // 获取周期 - handleLoadCycle(month, sob) { - if (!month || month == "") { - return; - } - if (!sob || sob == "") { - return; - } - const { attendanceStore: { getSalaryCycleAndAttendCycle } } = this.props; - getSalaryCycleAndAttendCycle(month, sob); - } - - // 初始导入参数 - handleInitImportModal() { - const { - attendanceStore: { - setPreviewAttendQuoteColumns, - setPreviewAttendQuoteDataSource, - setImportResult - } - } = this.props; - setPreviewAttendQuoteColumns([]); - setPreviewAttendQuoteDataSource([]); - setImportResult({}); - } - - // 引用详情列表搜索 - handleSearch(params) { - const { attendanceStore: { viewAttendQuote } } = this.props; - let request = { attendQuoteId: this.recordId, ...params }; - viewAttendQuote(request); - } - - handleExportAttendQuote = () => { - const url = `${window.location - .origin}/api/bs/hrmsalary/attendQuote/export?attendQuoteId=${this - .recordId}`; - window.open(url, "_self"); - }; - - handleChangeMonth = (type, val) => { - const { attendanceStore: { getAttendanceList } } = this.props; - this.listSearch.salaryYearMonth[type] = val && moment(val).format("YYYY-MM"); - !this.listSearch.salaryYearMonth[0] && (this.listSearch.salaryYearMonth[0] = moment(new Date()).startOf("year").format("YYYY-MM")); - !this.listSearch.salaryYearMonth[1] && (this.listSearch.salaryYearMonth = this.listSearch.salaryYearMonth.filter(n => n)); - getAttendanceList(this.listSearch); - }; - - render() { - const { attendanceStore, taxAgentStore: { showOperateBtn } } = this.props; - const { modalParam } = this.state; - const { loading, hasRight, tableStore } = attendanceStore; - const { - step, setStep, setSlideVisiable, slideVisiable, doBatchDelete, searchFieldSettingList, - fieldSettingAttendList, fieldSettingCustomList, setFieldSettingAttendList, setFieldSettingCustomList - } = attendanceStore; - const { - getAttendanceFieldSettingList, saveAttendanceFieldSetting, fieldDataSource, - fieldTableStore, fieldPageInfo, attendanceDataSource, attendanceColumns, - attendancePageInfo, importLedgerList, previewAttendQuoteColumns, previewAttendQuoteDataSource, - importResult, cycle - } = attendanceStore; - - if (!hasRight && !loading) { - // 无权限处理 - return renderNoright(); - } - - const rightMenu = [ - // 右键菜单 - // { - // key: 'BTN_DEL', - // icon: , - // content : '批量删除', - // disable: selectedRowKeys.length === 0, // 没有选中禁用 - // onClick : batchDelete, - // } - ]; - const collectParams = { - // 收藏功能配置 - favname: "考勤引用", - favouritetype: 1, - objid: 0, - link: "wui/index.html#/ns_demo03/index", - importantlevel: 1 - }; - - const topTab = [ - { - title: "考勤数据", - viewcondition: "0" - }, - { - title: "字段管理", - viewcondition: "1" - } - ]; - - const renderSearchOperationItem = () => { - const { taxAgentStore: { showOperateBtn } } = this.props; - return showOperateBtn - ?
- - -
- : null; - }; - - const renderLeftOperation = () => { - return ( -
- 薪资所属月: - { - return current && this.listSearch.salaryYearMonth[1] && current.getTime() > new Date(this.listSearch.salaryYearMonth[1]).getTime(); - }} - format="YYYY-MM" - onChange={(val) => this.handleChangeMonth("0", val)} - /> - - { - return current && this.listSearch.salaryYearMonth[0] && current.getTime() < new Date(this.listSearch.salaryYearMonth[0]).getTime(); - }} - format="YYYY-MM" - onChange={(val) => this.handleChangeMonth("1", val)} - /> -
- ); - }; - - const renderHeaderSetCompoent = () => { - return ( - { - getAttendanceFieldSettingList({ sourceType: "IMPORT" }); - this.setState({ - selectItemVisible: true - }); - }} - /> - ); - }; - - const renderFormComponent = () => { - return ( - - - - 薪资所属月: - - { - this.setState({ - modalParam: { ...modalParam, salaryYearMonth: value } - }); - this.handleLoadCycle(value, this.state.modalParam.salarySobId); - }} - /> - - - - 薪资账套: - - {this.state.inited && - ({ key: it.id, showname: it.content }))] : [{ - key: "", - showname: "" - }] - } - onChange={value => { - this.setState({ - modalParam: { ...modalParam, salarySobId: value } - }); - this.handleLoadCycle( - this.state.modalParam.salaryYearMonth, - value - ); - }}/>} - - - - 薪资周期: - - {cycle.salaryCycle} - - - - 考勤周期: - - {cycle.attendCycle} - - - ); - }; - - const renderCustomOperate = () => { - return ([ -
- {showOperateBtn && - - // 导出全部 - } - { - this.setState({ searchValue: v }); - }} - onSearch={v => { - this.handleSearch({ keyword: v }); - }} - /> -
- ]); - }; - - const handleItemSearch = value => { - const { attendanceStore: { getAttendanceFieldList } } = this.props; - this.fieldSearch = { fieldName: value }; - getAttendanceFieldList(this.fieldSearch); - }; - - const handleNewClick = () => { - const { attendanceStore: { setCurrentItemOperate } } = this.props; - this.setState({ itemMangeVisible: true }); - setCurrentItemOperate("add"); - }; - - const renderRightOperation = () => { - return ( -
- {showOperateBtn && - } - { - this.setState({ fieldName: value }); - }} - placeholder="请输入字段名称" - onSearch={value => { - this.setState({ fieldSettingSearchValue: value }); - handleItemSearch(value); - }} - /> -
- ); - }; - - const menu = ( - - 导出选中 - - ); - - const handleTabChange = v => { - const { - attendanceStore: { getAttendanceFieldList, getAttendanceList } - } = this.props; - this.setState({ - tabSelectedKey: v - }); - - if (v == "1") { - this.fieldSearch = { fieldName: this.state.fieldName }; - getAttendanceFieldList(this.fieldSearch); - } else if (v == "0") { - this.listSearch = { - salaryYearMonth: [] - }; - getAttendanceList({}); - } - }; - - const handleSwitchItemChange = (record, value) => { - const { - attendanceStore: { updateAttendanceFieldStatus, getAttendanceFieldList } - } = this.props; - let request = { - id: record.id, - enableStatus: value - }; - updateAttendanceFieldStatus(request).then(result => { - this.fieldSearch = { fieldName: this.state.fieldName }; - getAttendanceFieldList(this.fieldSearch); - }); - }; - - // 字段Columns - const getFieldColumns = columns => { - let newColumns = columns.filter(item => item.hide == "false"); - newColumns = newColumns.map(column => { - let newColumn = column; - newColumn.render = (text, record, index) => { - //前端元素转义 - let valueSpan = - record[newColumn.dataIndex + "span"] !== undefined - ? record[newColumn.dataIndex + "span"] - : record[newColumn.dataIndex]; - switch (newColumn.dataIndex) { - case "username": - return ( - { - this.onItemEdit(record); - }} - dangerouslySetInnerHTML={{ __html: valueSpan }} - /> - ); - case "enableStatus": - return ( - { - handleSwitchItemChange(record, value); - }} - /> - ); - default: - return
; - } - }; - return newColumn; - }); - // 与e10保持一致,先去掉字段管理页面的操作列 - // newColumns.push({ - // title: "操作", - // dataIndex: "operate", - // render: (text, record) => { - // return ( - // {this.onItemEdit(record)}}>查看明细 - // ) - // } - // }) - return [ - // { - // title: "序号", - // dataIndex: "index", - // width: 80, - // render: (text, record, index) => { - // const { current, pageSize } = this.pageInfo; - // return (current - 1) * pageSize + index + 1; - // } - // }, - ...newColumns - ]; - }; - - // 保存回调 - const handleItemMangeSave = value => { - const { - attendanceStore: { saveAttendanceField, getAttendanceFieldList } - } = this.props; - value.fieldType = value.fieldType == "1" ? "NUMBER" : "TEXT"; - saveAttendanceField(value).then(() => { - this.fieldSearch = { fieldName: this.state.fieldName }; - getAttendanceFieldList(this.fieldSearch); - this.setState({ itemMangeVisible: false }); - }); - }; - - const handleItemMangeUpdate = value => { - const { - attendanceStore: { updateAttendanceField, getAttendanceFieldList } - } = this.props; - value.fieldType = value.fieldType == "1" ? "NUMBER" : "TEXT"; - updateAttendanceField(value); - this.fieldSearch = { fieldName: this.state.fieldName }; - getAttendanceFieldList(this.fieldSearch); - this.setState({ itemMangeVisible: false }); - }; - - const handleShowChecked = value => { - const { - attendanceStore: { - fieldSettingAttendList, - fieldSettingCustomList, - setFieldSettingAttendList, - setFieldSettingCustomList, - searchFieldSettingList - } - } = this.props; - if (value) { - let attendList = [...fieldSettingAttendList]; - let customList = [...fieldSettingCustomList]; - setFieldSettingAttendList( - attendList.filter(item => item.checked == value) - ); - setFieldSettingCustomList( - customList.filter(item => item.checked == value) - ); - } else { - searchFieldSettingList(this.state.fieldSettingSearchValue); - } - }; - - const handleonRestoreDefault = (sourceType = "IMPORT") => { - const { - attendanceStore: { returnToAttendanceFieldSettingDefault } - } = this.props; - returnToAttendanceFieldSettingDefault(sourceType); - }; - - const handleSetDefault = (sourceType = "IMPORT") => { - const { - attendanceStore: { saveAttendanceFieldSettingAsDefault } - } = this.props; - saveAttendanceFieldSettingAsDefault(sourceType); - }; - - const handleRefereHeaderSet = () => { - const { attendanceStore: { getAttendanceFieldSettingList } } = this.props; - getAttendanceFieldSettingList({ sourceType: "QUOTE" }); - }; - - return ( -
- } // 左侧图标 - iconBgcolor="#F14A2D" // 左侧图标背景色 - showDropIcon={false} // 是否显示下拉按钮 - dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同) - dropMenuProps={{ collectParams }}> - {this.state.tabSelectedKey == 0 - ?
- { - this.pageInfo = { current: 1, pageSize: 10 }; - handleTabChange(v); - }} - /> - { - }} - /> -
- - { - this.pageInfo.current = value; - this.handleDataPageChange(value); - }} - onShowSizeChange={(current, pageSize) => { - this.pageInfo = { current, pageSize }; - this.handleDataShowSizeChange(this.pageInfo); - }} - /> - -
-
- :
- { - this.setState({ - tabSelectedKey: v - }, () => { - this.pageInfo = { current: 1, pageSize: 10 }; - }); - }} - /> - - - { - this.pageInfo.current = value; - this.handleFieldPageChange(value); - }} - onShowSizeChange={(current, pageSize) => { - this.pageInfo = { current, pageSize }; - this.handleFieldShowSizeChange(this.pageInfo); - }} - /> - -
- } - rightContent={ - - } - /> -
} - - { - this.handleInitImportModal(); - }} - params={this.state.modalParam} - columns={previewAttendQuoteColumns} - step={step} - setStep={setStep} - slideDataSource={previewAttendQuoteDataSource} - importResult={importResult} - onFinish={() => { - this.handleFinish(); - }} - previewImport={params => { - this.handlePreviewImport(params); - }} - importFile={params => { - this.handleImport(params); - }} - headerSetCompoent={renderHeaderSetCompoent()} - templateLink={() => { - this.handleTemplateLinkClick(); - }} - renderFormComponent={() => renderFormComponent()} - visiable={this.state.modalVisiable} - onCancel={() => { - this.handleFinish(); - }} - /> - - { - handleonRestoreDefault(); - }} - onSetDefault={() => { - handleSetDefault(); - }} - onSave={() => { - saveAttendanceFieldSetting(); - }} - onShowChecked={value => { - handleShowChecked(value); - }} - onSearch={value => { - searchFieldSettingList(value); - }} - visible={this.state.selectItemVisible} - onCancel={() => this.setState({ selectItemVisible: false })}> -
- { - setFieldSettingAttendList(value); - }} - items={fieldSettingAttendList} - title="考勤模块" - /> - { - setFieldSettingCustomList(value); - }} - items={fieldSettingCustomList} - title={"自定义"} - /> -
-
- - {this.state.refereAttendFormVisible && - { - saveAttendanceFieldSetting("QUOTE"); - }} - onRestoreDefault={() => { - handleonRestoreDefault("QUOTE"); - }} - onSetDefault={() => { - handleSetDefault("QUOTE"); - }} - onShowChecked={value => { - handleShowChecked(value); - }} - onSearch={value => { - searchFieldSettingList(value); - }} - onChange={value => { - setFieldSettingAttendList(value); - }} - items={fieldSettingAttendList} - onHeaderSet={() => { - handleRefereHeaderSet(); - }} - visible={this.state.refereAttendFormVisible} - onCancel={() => { - this.handleRefereCancel(); - }} - />} - {this.state.itemMangeVisible && - { - handleItemMangeUpdate(value); - }} - onSave={value => handleItemMangeSave(value)} - onCancel={() => { - this.setState({ itemMangeVisible: false }); - }} - />} - {slideVisiable && - - } - content={ - - } - onClose={() => setSlideVisiable(false)} - showMask={true} - closeMaskOnClick={() => setSlideVisiable(false)} - />} -
- ); - } -} diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/itemMangeFormModal.js b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/itemMangeFormModal.js deleted file mode 100644 index adf2d2ff..00000000 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/itemMangeFormModal.js +++ /dev/null @@ -1,124 +0,0 @@ -import React from "react"; -import { Button, Col, Row, Switch } from "antd"; -import { inject, observer } from "mobx-react"; -import { WeaDialog, WeaInput, WeaSelect } from "ecCom"; -import "./index.less"; - -@inject("attendanceStore") -@observer -export default class ItemMangeFormModal extends React.Component { - componentWillMount() { - const { attendanceStore: { currentItem, currentItemOperate } } = this.props; - if (currentItemOperate == "add") { - this.state = { - request: { - fieldName: "", - fieldType: "1", - enableStatus: 0, - description: "" - } - }; - } else { - this.state = { - request: currentItem - }; - } - } - - handleChange(params) { - const { request } = this.state; - let result = { ...request, ...params }; - this.setState({ request: result }); - } - - convertFieldType = (fileTypeStr) => { - if (fileTypeStr == "数值") { - return "1"; - } else if (fileTypeStr == "文本") { - return "2"; - } else if (fileTypeStr == "1" || fileTypeStr == "2") { - return fileTypeStr; - } - return ""; - }; - - render() { - const options = [ - { - key: "1", - selected: true, - showname: "数值" - }, - { - key: "2", - selected: false, - showname: "文本" - } - ]; - const { request } = this.state; - const { fieldName, fieldType, enableStatus, description } = request; - let fileTypeKey = this.convertFieldType(fieldType); - const { attendanceStore: { currentItemOperate } } = this.props; - return ( - { - currentItemOperate == "add" ? this.props.onSave(this.state.request) : - this.props.onUpdate(this.state.request); - } - }>保存 - ]}> -
- - - 字段名称 - - - { - this.handleChange({ fieldName: v }); - }}/> - - - - - 类型 - - - this.handleChange({ fieldType: v })} - /> - - - - - 是否启用 - - - { - let enableStatus = 0; - if (value) { - enableStatus = 1; - } - this.handleChange({ enableStatus }); - }}/> - - - - - 备注 - - - { - this.handleChange({ description: v }); - }}/> - - -
- -
- ); - } -} diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/refereAttendFormModal.js b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/refereAttendFormModal.js deleted file mode 100644 index 8b9ccee7..00000000 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/refereAttendFormModal.js +++ /dev/null @@ -1,198 +0,0 @@ -import React from "react"; -import { Button, Col, message, Row, Select } from "antd"; -import moment from "moment"; -import { WeaDatePicker, WeaDialog, WeaError, WeaInput, WeaSelect } from "ecCom"; -import SelectItemModal from "../../../components/selectItemsModal"; -import SelectItemsWrapper from "../../../components/selectItemsModal/selectItemsWrapper"; -import { inject, observer } from "mobx-react"; -import { notNull } from "../../../util/validate"; - -const { Option } = Select; - -@inject("attendanceStore") -@observer -export default class RefereAttendFormModal extends React.Component { - constructor(props) { - super(props); - this.state = { - headerSetVisible: false, - inited: false, - request: { - salarySobId: "", - salaryYearMonth: moment(new Date()).format("YYYY-MM"), - employeeIds: [], - description: "" - } - }; - } - - handleHeaderSet() { - this.setState({ headerSetVisible: true }); - this.props.onHeaderSet(); - } - - componentWillMount() { - const { attendanceStore: { getLedgerList } } = this.props; - getLedgerList().then(() => { - this.setState({ - inited: true - }); - }); - } - - // 请求参数改变事件 - handleRequestChange(params) { - const { request } = this.state; - let result = { ...request, ...params }; - this.setState({ request: result }); - } - - // 同步点击回调 - handleSync = () => { - if (!this.handleAsync) { - this.handleAsync = _.debounce(() => { - const { attendanceStore: { syncAttendanceRefer, checkOperation } } = this.props; - if (!this.validate()) { - return; - } - const { salarySobId, salaryYearMonth: salaryYearMonthStr } = this.state.request; - const payload = { - salaryYearMonthStr, - salarySobId - }; - checkOperation(payload).then(({ status, data, errorMsg }) => { - if (status && data) { - syncAttendanceRefer(this.state.request).then(() => { - this.props.onCancel(); - }); - } else { - message.warning("已经核算过不可操作"); - } - }); - this.handleAsync = null; - }, 500); - } - this.handleAsync(); - }; - - // 校验数据 - validate() { - const { request } = this.state; - if (!notNull(request.salarySobId) && !notNull(request.salaryYearMonth)) { - this.refs.weaError.showError(); - this.refs.weaError1.showError(); - return false; - } - if (!notNull(request.salarySobId)) { - this.refs.weaError1.showError(); - return false; - } - if (!notNull(request.salaryYearMonth)) { - this.refs.weaError.showError(); - return false; - } - return true; - } - - - render() { - const { attendanceStore: { importLedgerList } } = this.props; - return ( - 同步, - - ]} - visible={this.props.visible} - onCancel={this.props.onCancel}> - - 薪资所属月: - - - { - if (value === "") this.refs.weaError.showError(); - this.handleRequestChange({ salaryYearMonth: value }); - }} - /> - - - - - 薪资账套: - - { - this.state.inited && - - ({ - key: it.id, - showname: it.content - }))] - } - onChange={(value) => { - if (value === "") this.refs.weaError1.showError(); - this.handleRequestChange({ salarySobId: value }); - }}/> - - } - - - - 备注 - - { - this.handleRequestChange({ description: value }); - }}/> - - - - - { - this.props.onShowChecked(value); - }} - onRestoreDefault={() => { - this.props.onRestoreDefault(); - }} - onSetDefault={() => { - this.props.onSetDefault(); - }} - onSearch={(value) => { - this.props.onSearch(value); - }} - onSave={(value) => { - this.props.onSave(value); - }} - visible={this.state.headerSetVisible} onCancel={() => this.setState({ headerSetVisible: false })}> - { - this.props.onChange(value); - }}/> - - - ); - } -}