diff --git a/pc4mobx/hrmSalary/apis/attendance.js b/pc4mobx/hrmSalary/apis/attendance.js
index 85a8f932..7f2f37dd 100644
--- a/pc4mobx/hrmSalary/apis/attendance.js
+++ b/pc4mobx/hrmSalary/apis/attendance.js
@@ -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())
}
diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/index.js b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/index.js
index eb1686d2..7c861b16 100644
--- a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/index.js
+++ b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/index.js
@@ -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: ,
+ 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 (
-
+
)
@@ -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 {this.onEdit(record)}}
dangerouslySetInnerHTML={{ __html: valueSpan }} />
case "enableStatus":
- return
+ return {handleSwitchItemChange(record, value)}}/>
case "operate":
return {this.onEdit(record)}}>查看明细
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 (
@@ -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 {
this.setState({refereAttendFormVisible: false})}/>
- handleItemMangeSave(value)} onCancel={() => {this.setState({itemMangeVisible: false})}}/>
+ {
+ this.state.itemMangeVisible && {handleItemMangeUpdate(value)}} onSave={(value) => handleItemMangeSave(value)} onCancel={() => {this.setState({itemMangeVisible: false})}}/>
+ }
{
slideVisiable && this.props.onSave(this.state.request)}>保存
+
}>
diff --git a/pc4mobx/hrmSalary/stores/attendanceStore.js b/pc4mobx/hrmSalary/stores/attendanceStore.js
index 46a22503..c5f0239f 100644
--- a/pc4mobx/hrmSalary/stores/attendanceStore.js
+++ b/pc4mobx/hrmSalary/stores/attendanceStore.js
@@ -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);
+ })
+ }
+ })
+ }
+
}
\ No newline at end of file