import React, {Component} from 'react'; import {Input, Collapse, Button, Radio, Icon, Tooltip} from 'antd'; import {ADD_APIGROUP, UPDATE_APIGROUP} from "../../../../gql"; import {request} from 'graphql-request' import {idGen} from "../../../../func"; import {graphqlUrl} from "../../../../config"; import {manageUsers} from "../../../../config"; import {FormattedMessage} from 'react-intl'; const Panel = Collapse.Panel; // 如需改变显示,请在此处 value 处更改 // 如需添加中文,请在此处 value 处添加 // eg: 'xxxx': const valueToKey = { 'groupName': 'groupName', 'environmentName': 'environmentName', 'defaultDomain': 'defaultDomain', 'frontType': 'frontType', 'userDomain': 'userDomain', 'userStatus': 'userStatus', 'region': 'region', }; const toolTipTitle = { 'groupName': 'its groupName', 'environmentName': 'its environmentName', 'defaultDomain': 'its defaultDomain', 'frontType': 'its frontType', 'userDomain': 'its userDomain', 'userStatus': 'its userStatus', 'region': 'its region', }; const youMustFill = { 'groupName': true, 'environmentName': true, 'defaultDomain': true, 'frontType': true, 'userDomain': true, 'userStatus': true, 'region': true, }; const removePrefix = (prefix, value) => { let r = new RegExp(prefix); return value.replace(r, ''); }; const shiftPrefix = (prefix, value) => { value = removePrefix(prefix, value); return prefix + value; }; class APIGroupCard extends Component { constructor(props) { super(props); if(props.group !== '' && props.group !== null) { let {groupName, environmentName, defaultDomain, frontType, userDomain, userStatus, region} = props.group; this.state = { showOK: false, groupName, environmentName, defaultDomain, frontType, userDomain, userStatus, groupRegion: region } } else { this.state = { showOK: false, groupName: 'graphql_endpoint', environmentName: 'test', defaultDomain: '', frontType: 'http&https', userDomain: '', userStatus: 'open', groupRegion: props.region === '' ? 'ap-beijing' : props.region, }; } } componentWillReceiveProps(next) { if(next.group !== '' && next.group !== null) { let {groupName, environmentName, defaultDomain, frontType, userDomain, userStatus, region} = next.group; this.setState( { groupName, environmentName, defaultDomain, frontType, userDomain, userStatus, groupRegion: next.region === '' ? region: next.region }) } else { this.setState ( { groupName: 'graphql_endpoint', environmentName: 'test', defaultDomain: '', frontType: 'http&https', userDomain: '', userStatus: 'open', groupRegion: next.region === '' ? 'ap-beijing' : next.region }); } }; switchConfig = (label) => { return (e) => { this.setState({ [label]: e.target.value }) }; }; ok = (id) => { let {userStatus, userDomain, groupName, groupRegion, frontType, environmentName} = this.state; let region = shiftPrefix('ap-', groupRegion); let varObj = { id, cloud_id: this.props.cloudID, user_id: this.props.userID, userStatus, userDomain, groupName, frontType, region, environmentName, defaultDomain: '', status: '', serviceId: '', createdAt: new Date().getTime(), updatedAt: '' }; if (this.props.group === '') { request(graphqlUrl, ADD_APIGROUP, varObj).then( data => { if (data.create_apiGWGroup !== null) { this.setState({ showOK: true }) } setTimeout(()=>{ this.setState({ showOK: false }) }, 1500) } ) } else { let {userStatus, userDomain, groupName, groupRegion, frontType, environmentName} = this.state; let region = shiftPrefix('ap-', groupRegion); let varObj = { id: this.props.group.id, userStatus, userDomain, groupName, frontType, region, environmentName, updatedAt: new Date().getTime() }; request(graphqlUrl, UPDATE_APIGROUP, varObj).then( data => { if (data.update_apiGWGroup !== null) { this.setState({ showOK: true }) } setTimeout(()=>{ this.setState({ showOK: false }) }, 1500) } ) } }; render() { const customPanelStyle = { background: '#f7f7f7', borderRadius: 4, marginBottom: 24, border: 0, overflow: 'hidden', }; return (
 
  { // 如果不想一变所有都变,就将 onchange 改成 // onChange={this.switchConfig('groupRegion')} this.props.switchRegion(e); }} value={removePrefix('ap-', this.state.groupRegion)} buttonStyle="solid">
 
style={customPanelStyle}>
  http https http&https
{/*
*/} {/*{valueToKey['defaultDomain']}*/} {/* */} {/**/} {/**/} {/**/} {/**/} {/**/} {/*
*/}
 
{/*
*/} {/*{valueToKey['userStatus']}*/} {/* */} {/**/} {/**/} {/**/} {/**/} {/**/} {/*open*/} {/*close*/} {/**/} {/*
*/}
{ manageUsers.includes(this.props.userID)?
{ this.state.showOK === true? : '' }
: this.props.trialcase? '' :
{ this.state.showOK === true? : '' }
}
) } } export default APIGroupCard;