import React, { Component } from 'react'; import { Card, Form, List, Input, Switch, Tooltip, Button, message } from 'antd'; import { routerRedux } from 'dva/router'; import { connect } from 'dva'; import queryString from 'query-string'; import PageHeaderLayout from '../../../layouts/PageHeaderLayout'; import CampusSelectModal from './campus'; import { Codes, pageSize } from '../../../utils/config'; @Form.create() @connect(state => ({ terminalDetail: state.terminalDetail, campus: state.campus, })) export default class TerminalProfile extends Component { handleCampusSelectClick = () => { this.props.dispatch({ type: 'terminalDetail/showModal' }); this.props.dispatch({ type: 'campus/query', payload: { pageNo: 1, pageSize }, }); } handleCampusModalOk = (data) => { this.props.dispatch({ type: 'terminalDetail/saveCampus', payload: data, }); } handleCampusModalCancel = () => { this.props.dispatch({ type: 'terminalDetail/hideModal' }); } handleCampusModalSearch = (data) => { const newData = { ...data }; if (newData.keyword) { newData[newData.field] = newData.keyword; } delete newData.field; delete newData.keyword; this.props.dispatch({ type: 'campus/query', payload: { ...newData, pageNo: 1, pageSize }, }); } handleCampusModalTableChange = (pagination, filterArgs, filters) => { const newFilters = { ...filters }; if (newFilters.keyword) { newFilters[newFilters.field] = newFilters.keyword; } delete newFilters.field; delete newFilters.keyword; const getValue = obj => Object.keys(obj).map(key => obj[key]).join(','); const tableFilters = Object.keys(filterArgs).reduce((obj, key) => { const newObj = { ...obj }; newObj[key] = getValue(filterArgs[key]); return newObj; }, {}); const data = { ...newFilters, ...tableFilters, pageNo: pagination.current, pageSize: pagination.pageSize }; Object.keys(data).map(key => (data[key] ? null : delete data[key])); this.props.dispatch({ type: 'campus/query', payload: data }); } handlePageCancel = () => { const { dispatch, terminalDetail } = this.props; const { filters } = terminalDetail; dispatch(routerRedux.push({ pathname: '/terminal/user', search: queryString.stringify(filters), })); } handlePageSubmit = (e) => { e.preventDefault(); const { dispatch, form, terminalDetail } = this.props; const { validateFields, getFieldsValue } = form; const { currentItem, operType, filters } = terminalDetail; const { campusId, id, status } = currentItem; validateFields((errors) => { if (errors) return; if (!campusId) { message.error('请选择校区!'); return; } const data = { ...getFieldsValue(), campusId }; if (operType === 'create') { data.status = Codes.CODE_NORMAL; } else if (operType === 'update') { data.status = status; data.id = id; } dispatch({ type: `terminalDetail/${operType}`, payload: data, callback: () => { dispatch(routerRedux.push({ pathname: '/terminal/user', search: queryString.stringify(filters), })); }, }); }); } render() { const { form, terminalDetail, campus } = this.props; const { currentItem, modalShow, operType } = terminalDetail; const { name, password, status, campusId, campusName, merchantName } = currentItem; const { getFieldDecorator } = form; const formItemLayout = { labelCol: { xs: { span: 24 }, sm: { span: 7 }, md: { span: 8 }, }, wrapperCol: { xs: { span: 24 }, sm: { span: 12 }, md: { span: 10 }, }, }; const submitFormLayout = { wrapperCol: { xs: { span: 24, offset: 0 }, sm: { span: 10, offset: 8 }, }, }; return (
{operType === 'update' ? ( {item}} /> ) : ( campusId ? {item}} /> : null) } {getFieldDecorator('name', { initialValue: name, })()} {operType === 'create' ? ( {getFieldDecorator('password', { rules: [{ required: true, type: 'string', message: '密码为必填项!' }], initialValue: password, })()} ) : ( {getFieldDecorator('password', { initialValue: password, })()} ) } {getFieldDecorator('status', { valuePropsName: 'checked', })( )}
{/* 校区模态选择框 */}
); } }