From 5e1dac055496c3f9f7f5536739835dbae9a2886f Mon Sep 17 00:00:00 2001 From: 18652063575 Date: Fri, 16 Sep 2022 11:30:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=BC=82=E5=B8=B8=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/dataAcquisition/attendance/index.js | 63 +---- .../dataAcquisition/attendance/index.less | 15 ++ .../attendance/itemMangeFormModal.js | 237 +++++++++--------- pc4mobx/hrmSalary/stores/attendanceStore.js | 18 +- 4 files changed, 157 insertions(+), 176 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/index.js b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/index.js index f4f790f6..4a945429 100644 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/index.js +++ b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/index.js @@ -89,14 +89,6 @@ export default class Attendance extends React.Component { setSlideVisiable(true); } - onItemOperatesClick(record, index, operate, flag) { - switch (operate.index.toString()) { - case "0": // 查看明细 - this.onItemEdit(record); - break; - } - } - onItemEdit(record) { this.setState({ itemMangeVisible: true @@ -291,51 +283,20 @@ export default class Attendance extends React.Component { render() { const { attendanceStore, taxAgentStore: { showOperateBtn } } = this.props; const { modalParam } = this.state; - const { - loading, - hasRight, - tableStore + const { loading, hasRight, tableStore } = attendanceStore; + const { step, setStep, setSlideVisiable, slideVisiable, doBatchDelete,searchFieldSettingList, + fieldSettingAttendList, fieldSettingCustomList, setFieldSettingAttendList, setFieldSettingCustomList, } = attendanceStore; - const { - step, - setStep, - setSlideVisiable, - slideVisiable, - doBatchDelete, - fieldSettingAttendList, - fieldSettingCustomList, - setFieldSettingAttendList, - setFieldSettingCustomList, - searchFieldSettingList - } = attendanceStore; - const { - getAttendanceFieldSettingList, - saveAttendanceFieldSetting, - fieldDataSource, - fieldTableStore, - fieldPageInfo, - attendanceDataSource, - attendanceColumns, - attendancePageInfo, - importLedgerList, - previewAttendQuoteColumns, - previewAttendQuoteDataSource, - importResult, - cycle - } = attendanceStore; - const selectedRowKeys = toJS(tableStore.selectedRowKeys) || []; // tableStore 右侧选中数组 + const { getAttendanceFieldSettingList, saveAttendanceFieldSetting, fieldDataSource, + fieldTableStore, fieldPageInfo, attendanceDataSource, attendanceColumns, + attendancePageInfo, importLedgerList, previewAttendQuoteColumns, previewAttendQuoteDataSource, + importResult, cycle } = attendanceStore; if (!hasRight && !loading) { // 无权限处理 return renderNoright(); } - const batchDelete = () => { - doBatchDelete(); - this.fieldSearch = { fieldName: this.state.fieldName }; - getAttendanceFieldList({ fieldName: this.state.fieldName }); - }; - const rightMenu = [ // 右键菜单 // { @@ -651,17 +612,17 @@ export default class Attendance extends React.Component { attendanceStore: { saveAttendanceField, getAttendanceFieldList } } = this.props; value.fieldType = value.fieldType == "1" ? "NUMBER" : "TEXT"; - saveAttendanceField(value); - this.fieldSearch = { fieldName: this.state.fieldName }; - getAttendanceFieldList(this.fieldSearch); - this.setState({ itemMangeVisible: false }); + 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; - // alert(JSON.stringify(value)); value.fieldType = value.fieldType == "1" ? "NUMBER" : "TEXT"; updateAttendanceField(value); this.fieldSearch = { fieldName: this.state.fieldName }; diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/index.less b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/index.less index 5c937394..3bbe0224 100644 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/index.less +++ b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/index.less @@ -34,3 +34,18 @@ } } +//新建考勤自定义字段弹框 +.itemManageModalWrapper{ + .wea-select,.ant-select-selection,.ant-select{ + width: 100%; + } + .wea-select{ + display: inline-block; + position: relative; + } + .ant-select-selection{ + height: 30px; + border-radius: 0; + } +} + diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/itemMangeFormModal.js b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/itemMangeFormModal.js index 59ff92f1..adf2d2ff 100644 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/itemMangeFormModal.js +++ b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/itemMangeFormModal.js @@ -1,123 +1,124 @@ -import React from 'react' -import { Modal, Row, Col, Button,Switch, Select } from 'antd' -import { inject, observer } from 'mobx-react'; -import { WeaInput, WeaSelect } from 'ecCom' -import SelectItemModal, { items } from '../../../components/selectItemsModal/selectItemsWrapper'; +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') +@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: '' + 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; } - } - } else { - this.state = { - request: currentItem - } - } - } + this.handleChange({ enableStatus }); + }}/> + + + + + 备注 + + + { + this.handleChange({ description: v }); + }}/> + + +
- 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}) - }}/> - - -
- -
- ) - } -} \ No newline at end of file +
+ ); + } +} diff --git a/pc4mobx/hrmSalary/stores/attendanceStore.js b/pc4mobx/hrmSalary/stores/attendanceStore.js index 8066e6dd..2b4e1691 100644 --- a/pc4mobx/hrmSalary/stores/attendanceStore.js +++ b/pc4mobx/hrmSalary/stores/attendanceStore.js @@ -196,13 +196,17 @@ export class AttendanceStore { @action saveAttendanceField = params => { - API.saveAttendanceField(params).then(res => { - if (res.status) { - message.success("保存成功"); - } else { - message.error(res.errormsg || "保存失败"); - } - }); + return new Promise((resolve,reject)=>{ + API.saveAttendanceField(params).then(res => { + if (res.status) { + message.success("保存成功"); + resolve(); + } else { + message.error(res.errormsg || "保存失败"); + reject(); + } + }); + }) }; @action