字段设置
This commit is contained in:
parent
9c57f58212
commit
79ac8960af
|
|
@ -82,17 +82,38 @@ export const saveAttendanceField = params => {
|
|||
|
||||
//数据采集-考勤引用-修改考勤字段
|
||||
export const updateAttendanceField = params => {
|
||||
return WeaTools.callApi('/api/bs/hrmsalary/attendQuote/updateField', 'POST', params);
|
||||
return fetch('/api/bs/hrmsalary/attendQuote/updateField', {
|
||||
method: 'POST',
|
||||
mode: 'cors',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(params)
|
||||
}).then(res => res.json())
|
||||
}
|
||||
|
||||
//数据采集-考勤引用-启用/停用自定义字段
|
||||
export const updateAttendanceFieldStatus = params => {
|
||||
return WeaTools.callApi('/api/bs/hrmsalary/attendQuote/updateEnableStatus', 'POST', params);
|
||||
return fetch('/api/bs/hrmsalary/attendQuote/updateEnableStatus', {
|
||||
method: 'POST',
|
||||
mode: 'cors',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(params)
|
||||
}).then(res => res.json())
|
||||
}
|
||||
|
||||
//数据采集-考勤引用-删除考勤字段
|
||||
export const deleteAttendanceField = params => {
|
||||
return WeaTools.callApi('/api/bs/hrmsalary/attendQuote/deleteField', 'POST', params);
|
||||
return fetch('/api/bs/hrmsalary/attendQuote/deleteField', {
|
||||
method: 'POST',
|
||||
mode: 'cors',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(params)
|
||||
}).then(res => res.json())
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,8 @@ export default class Attendance extends React.Component {
|
|||
selectItemVisible: false,
|
||||
refereAttendFormVisible: false,
|
||||
tabSelectedKey: "0",
|
||||
itemMangeVisible: false
|
||||
itemMangeVisible: false,
|
||||
itemMangeValue: {}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -62,19 +63,39 @@ export default class Attendance extends React.Component {
|
|||
setSlideVisiable(true)
|
||||
}
|
||||
|
||||
onItemOperatesClick(record, index, operate, flag) {
|
||||
switch(operate.index.toString()){
|
||||
case '0': // 查看明细
|
||||
this.onItemEdit(record);
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
onDelete() {
|
||||
|
||||
onItemEdit(record) {
|
||||
this.setState({
|
||||
itemMangeVisible: true
|
||||
})
|
||||
|
||||
const { attendanceStore: { setCurrentItemOperate, setCurrentItem }} = this.props;
|
||||
setCurrentItemOperate("update")
|
||||
setCurrentItem(record)
|
||||
}
|
||||
|
||||
render() {
|
||||
const { attendanceStore } = this.props;
|
||||
const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = attendanceStore;
|
||||
const { step, setStep, setSlideVisiable, slideVisiable } = attendanceStore;
|
||||
const { step, setStep, setSlideVisiable, slideVisiable, doBatchDelete } = attendanceStore;
|
||||
const selectedRowKeys = toJS(tableStore.selectedRowKeys) || []; // tableStore 右侧选中数组
|
||||
if (!hasRight && !loading) { // 无权限处理
|
||||
return renderNoright();
|
||||
}
|
||||
|
||||
const batchDelete = () => {
|
||||
doBatchDelete()
|
||||
getAttendanceFieldList({})
|
||||
}
|
||||
|
||||
|
||||
const rightMenu = [// 右键菜单
|
||||
{
|
||||
key: 'BTN_COLUMN',
|
||||
|
|
@ -82,6 +103,13 @@ export default class Attendance extends React.Component {
|
|||
content: '显示列定制',
|
||||
onClick: this.showColumn
|
||||
},
|
||||
{
|
||||
key: 'BTN_DEL',
|
||||
icon: <i className='icon-coms-delete'/>,
|
||||
content : '批量删除',
|
||||
disable: selectedRowKeys.length === 0, // 没有选中禁用
|
||||
onClick : batchDelete,
|
||||
}
|
||||
];
|
||||
const collectParams = { // 收藏功能配置
|
||||
favname: '考勤引用',
|
||||
|
|
@ -169,10 +197,16 @@ export default class Attendance extends React.Component {
|
|||
)
|
||||
}
|
||||
|
||||
const handleNewClick = () => {
|
||||
const { attendanceStore: {setCurrentItemOperate}} = this.props;
|
||||
this.setState({itemMangeVisible: true})
|
||||
setCurrentItemOperate("add")
|
||||
}
|
||||
|
||||
const renderRightOperation = () => {
|
||||
return (
|
||||
<div style={{display: "inline-block"}}>
|
||||
<Button type="primary" style={{marginRight: "10px"}} onClick={() => this.setState({itemMangeVisible: true})}>新建</Button>
|
||||
<Button type="primary" style={{marginRight: "10px"}} onClick={() => handleNewClick()}>新建</Button>
|
||||
<WeaInputSearch />
|
||||
</div>
|
||||
)
|
||||
|
|
@ -195,6 +229,18 @@ export default class Attendance extends React.Component {
|
|||
}
|
||||
}
|
||||
|
||||
const handleSwitchItemChange = (record, value) => {
|
||||
const { attendanceStore : {updateAttendanceFieldStatus, getAttendanceFieldList}} = this.props;
|
||||
let request = {
|
||||
id: record.id,
|
||||
enableStatus: value
|
||||
}
|
||||
updateAttendanceFieldStatus(request).then(result => {
|
||||
getAttendanceFieldList({})
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// 字段Columns
|
||||
const getFieldColumns = (columns) => {
|
||||
let newColumns = '';
|
||||
|
|
@ -207,7 +253,7 @@ export default class Attendance extends React.Component {
|
|||
return <a onClick={() => {this.onEdit(record)}}
|
||||
dangerouslySetInnerHTML={{ __html: valueSpan }} />
|
||||
case "enableStatus":
|
||||
return <Switch checked={text == '1'}/>
|
||||
return <Switch checked={text == '1'} onChange={(value) => {handleSwitchItemChange(record, value)}}/>
|
||||
case "operate":
|
||||
return <a onClick={() => {this.onEdit(record)}}>查看明细</a>
|
||||
default:
|
||||
|
|
@ -225,8 +271,17 @@ export default class Attendance extends React.Component {
|
|||
value.fieldType = value.fieldType == "1" ? "NUMBER" : "TEXT"
|
||||
saveAttendanceField(value)
|
||||
getAttendanceFieldList({})
|
||||
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)
|
||||
getAttendanceFieldList({})
|
||||
this.setState({itemMangeVisible: false})
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="mySalaryBenefitsWrapper">
|
||||
|
|
@ -291,7 +346,7 @@ export default class Attendance extends React.Component {
|
|||
needScroll={true} // 是否启用table内部列表滚动,将自适应到父级高度
|
||||
|
||||
getColumns={getFieldColumns}
|
||||
// onOperatesClick={this.onOperatesClick.bind(this)}
|
||||
onOperatesClick={this.onItemOperatesClick.bind(this)}
|
||||
/>
|
||||
}
|
||||
rightContent={
|
||||
|
|
@ -334,7 +389,9 @@ export default class Attendance extends React.Component {
|
|||
</SelectItemModal>
|
||||
|
||||
<RefereAttendFormModal visible={this.state.refereAttendFormVisible} onCancel={() => this.setState({refereAttendFormVisible: false})}/>
|
||||
<ItemMangeFormModal visible={this.state.itemMangeVisible} onSave={(value) => handleItemMangeSave(value)} onCancel={() => {this.setState({itemMangeVisible: false})}}/>
|
||||
{
|
||||
this.state.itemMangeVisible && <ItemMangeFormModal visible={this.state.itemMangeVisible} onUpdate={(value) => {handleItemMangeUpdate(value)}} onSave={(value) => handleItemMangeSave(value)} onCancel={() => {this.setState({itemMangeVisible: false})}}/>
|
||||
}
|
||||
{
|
||||
slideVisiable && <WeaSlideModal visible={slideVisiable}
|
||||
top={0}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,26 @@
|
|||
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';
|
||||
|
||||
@inject('attendanceStore')
|
||||
@observer
|
||||
export default class ItemMangeFormModal extends React.Component {
|
||||
constructor(props) {
|
||||
super(props)
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -37,11 +46,18 @@ export default class ItemMangeFormModal extends React.Component {
|
|||
]
|
||||
const { request } = this.state;
|
||||
const {fieldName, fieldType, enableStatus, description} = request
|
||||
const { attendanceStore : {currentItemOperate}} = this.props;
|
||||
return (
|
||||
<Modal width={600} visible={this.props.visible} onCancel={this.props.onCancel}
|
||||
title={"新建自定义字段"}
|
||||
footer={
|
||||
<Button type="primary" onClick={() => this.props.onSave(this.state.request)}>保存</Button>
|
||||
<Button type="primary" onClick={() =>
|
||||
{
|
||||
currentItemOperate == "add" ? this.props.onSave(this.state.request) :
|
||||
this.props.onUpdate(this.state.request)
|
||||
}
|
||||
|
||||
}>保存</Button>
|
||||
}>
|
||||
<div style={{padding: "20px"}}>
|
||||
<Row gutter={[10, 10]} style={{marginBottom: "10px"}}>
|
||||
|
|
|
|||
|
|
@ -16,6 +16,15 @@ export class AttendanceStore {
|
|||
@observable step = 0 ;
|
||||
@observable modalVisiable = false;
|
||||
@observable slideVisiable = false;
|
||||
@observable currentItem = {};
|
||||
@observable currentItemOperate = "add";
|
||||
|
||||
|
||||
@action
|
||||
setCurrentItem = currentItem => this.currentItem = currentItem;
|
||||
|
||||
@action
|
||||
setCurrentItemOperate = currentItemOperate => this.currentItemOperate = currentItemOperate;
|
||||
|
||||
@action
|
||||
setSlideVisiable = slideVisiable => this.slideVisiable = slideVisiable;
|
||||
|
|
@ -95,4 +104,61 @@ export class AttendanceStore {
|
|||
})
|
||||
}
|
||||
|
||||
@action deleteAttendanceField = (params) => {
|
||||
API.deleteAttendanceField(params).then(res => {
|
||||
if(res.status) {
|
||||
message.success("删除成功")
|
||||
} else {
|
||||
message.error("删除失败")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 批量删除
|
||||
@action
|
||||
doBatchDelete = () => {
|
||||
let ids = toJS(this.tableStore.selectedRowKeys)
|
||||
if(ids.length == 0) {
|
||||
message.warning("未选择任何条目");
|
||||
return
|
||||
}
|
||||
API.deleteAttendanceField(this.tableStore.selectedRowKeys).then(res => {
|
||||
if(res.status) {
|
||||
message.success("删除成功")
|
||||
} else {
|
||||
message.error("删除失败")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 更新
|
||||
@action
|
||||
updateAttendanceField = (params) => {
|
||||
API.updateAttendanceField(params).then(res => {
|
||||
if(res.status) {
|
||||
message.success("修改成功")
|
||||
} else {
|
||||
message.error("修改失败")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 更新状态
|
||||
@action
|
||||
updateAttendanceFieldStatus = (params) => {
|
||||
return API.updateAttendanceFieldStatus(params).then(res => {
|
||||
if(res.status) {
|
||||
message.success("修改成功");
|
||||
return new Promise((resolve, reject) => {
|
||||
resolve(true);
|
||||
})
|
||||
} else {
|
||||
message.error("修改失败")
|
||||
return new Promise((resolve, reject) => {
|
||||
resolve(false);
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue