接口异常报错提示
This commit is contained in:
parent
3131de6446
commit
5e1dac0554
|
|
@ -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 };
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 (
|
||||
<WeaDialog style={{ width: 600 }} visible={this.props.visible} onCancel={this.props.onCancel}
|
||||
title="新建考勤自定义字段"
|
||||
initLoadCss
|
||||
className="itemManageModalWrapper"
|
||||
buttons={[
|
||||
<Button type="primary" onClick={() => {
|
||||
currentItemOperate == "add" ? this.props.onSave(this.state.request) :
|
||||
this.props.onUpdate(this.state.request);
|
||||
}
|
||||
}>保存</Button>
|
||||
]}>
|
||||
<div style={{ padding: "16px 120px" }}>
|
||||
<Row gutter={[10, 10]} style={{ marginBottom: "10px" }}>
|
||||
<Col span={8}>
|
||||
字段名称
|
||||
</Col>
|
||||
<Col span={16}>
|
||||
<WeaInput viewAttr={3} style={{ width: "200px" }} value={fieldName} onChange={(v) => {
|
||||
this.handleChange({ fieldName: v });
|
||||
}}/>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row gutter={[10, 10]} style={{ marginBottom: "10px" }}>
|
||||
<Col span={8}>
|
||||
类型
|
||||
</Col>
|
||||
<Col span={16}>
|
||||
<WeaSelect style={{ width: "200px" }} options={options} value={fileTypeKey}
|
||||
onChange={(v) => this.handleChange({ fieldType: v })}
|
||||
/>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row gutter={[10, 10]} style={{ marginBottom: "10px" }}>
|
||||
<Col span={8}>
|
||||
是否启用
|
||||
</Col>
|
||||
<Col span={16}>
|
||||
<Switch checked={enableStatus == 1} onChange={(value) => {
|
||||
let enableStatus = 0;
|
||||
if (value) {
|
||||
enableStatus = 1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.state = {
|
||||
request: currentItem
|
||||
}
|
||||
}
|
||||
}
|
||||
this.handleChange({ enableStatus });
|
||||
}}/>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row gutter={[10, 10]} style={{ marginBottom: "10px" }}>
|
||||
<Col span={8}>
|
||||
备注
|
||||
</Col>
|
||||
<Col span={16}>
|
||||
<WeaInput style={{ width: "200px" }} value={description} onChange={(v) => {
|
||||
this.handleChange({ description: v });
|
||||
}}/>
|
||||
</Col>
|
||||
</Row>
|
||||
</div>
|
||||
|
||||
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 (
|
||||
<Modal width={600} visible={this.props.visible} onCancel={this.props.onCancel}
|
||||
title={"新建自定义字段"}
|
||||
footer={
|
||||
<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"}}>
|
||||
<Col span={8}>
|
||||
字段名称
|
||||
</Col>
|
||||
<Col span={16}>
|
||||
<WeaInput style={{width: "200px"}} value={fieldName} onChange={(v) => {
|
||||
this.handleChange({fieldName: v})
|
||||
}}/>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row gutter={[10, 10]} style={{marginBottom: "10px"}}>
|
||||
<Col span={8}>
|
||||
类型
|
||||
</Col>
|
||||
<Col span={16}>
|
||||
<WeaSelect style={{width: "200px"}} options={options} value={fileTypeKey}
|
||||
onChange={(v) => this.handleChange({fieldType: v})}
|
||||
/>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row gutter={[10, 10]} style={{marginBottom: "10px"}}>
|
||||
<Col span={8}>
|
||||
是否启用
|
||||
</Col>
|
||||
<Col span={16}>
|
||||
<Switch checked={enableStatus == 1} onChange={(value) => {
|
||||
let enableStatus = 0
|
||||
if(value) {
|
||||
enableStatus = 1
|
||||
}
|
||||
this.handleChange({enableStatus})
|
||||
}}/>
|
||||
</Col>
|
||||
</Row>
|
||||
<Row gutter={[10, 10]} style={{marginBottom: "10px"}}>
|
||||
<Col span={8}>
|
||||
备注
|
||||
</Col>
|
||||
<Col span={16}>
|
||||
<WeaInput style={{width: "200px"}} value={description} onChange={(v) => {
|
||||
this.handleChange({description: v})
|
||||
}}/>
|
||||
</Col>
|
||||
</Row>
|
||||
</div>
|
||||
|
||||
</Modal>
|
||||
)
|
||||
}
|
||||
}
|
||||
</WeaDialog>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue