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': 'Name',
'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',
};
class APIGroupCard extends Component {
constructor(props) {
super(props);
let {groupName, environmentName, defaultDomain, frontType, userDomain, userStatus, region} = props.group;
props.group !== '' ?
this.state = {
showOK: false,
groupName,
environmentName,
defaultDomain,
frontType,
userDomain,
userStatus,
groupRegion: region
}
:
this.state = {
showOK: false,
groupName: 'graphql_endpoint',
environmentName: 'test',
defaultDomain: '',
frontType: 'http&https',
userDomain: '',
userStatus: 'open',
groupRegion: props.region
};
}
componentWillReceiveProps(next) {
if(next.group !== '') {
let {groupName, environmentName, defaultDomain, frontType, userDomain, userStatus, region} = next.group;
this.setState( {
groupName,
environmentName,
defaultDomain,
frontType,
userDomain,
userStatus,
groupRegion: region
})
} else {
this.setState ( {
groupName: 'graphql_endpoint',
environmentName: 'test',
defaultDomain: '',
frontType: 'http&https',
userDomain: '',
userStatus: 'open',
groupRegion: next.region
});
}
};
switchConfig = (label) => {
return (e) => {
this.setState({
[label]: e.target.value
})
};
};
ok = (id) => {
let {userStatus, userDomain, groupName, frontType, environmentName} = this.state;
let varObj = {
id,
cloud_id: this.props.cloudID,
user_id: this.props.userID,
userStatus,
userDomain,
groupName,
frontType,
region: this.state.groupRegion,
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, frontType, environmentName} = this.state;
let varObj = {
id: this.props.group.id,
userStatus,
userDomain,
groupName,
frontType,
region: this.state.groupRegion,
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 (
{valueToKey['groupName']}
{valueToKey['region']}
Guangzhou
Shanghai
Beijing
Chengdu
{valueToKey['frontType']}
http
https
http&https
{valueToKey['defaultDomain']}
{valueToKey['environmentName']}
test
prepub
release
{valueToKey['userDomain']}
{valueToKey['userStatus']}
open
close
{
manageUsers.includes(this.props.userID)?
{
this.state.showOK === true?
:
''
}
:
this.props.trialcase?
''
:
{
this.state.showOK === true?
:
''
}
}
)
}
}
export default APIGroupCard;