import React, {Component} from 'react'; import {Input, Collapse, Button, Radio, Icon, Tooltip} from 'antd'; import {idGen} from "../../../../../func"; import {graphqlUrl, manageUsers} from "../../../../../config"; import {FormattedMessage} from 'react-intl'; import {ADD_APIGROUP, UPDATE_APIGROUP, UPDATE_PROJECT_GROUP, UPDATE_PROJECT_ONLY_STATUS} from "../../../../../gql"; import {request} from 'graphql-request' import {removePrefix, shiftPrefix} from "../../../../../func"; 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': false, 'userStatus': true, 'region': true, }; class APIGroupCardRender 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, userID, projectID, cloudID, group) => { let {userStatus, userDomain, groupName, groupRegion, frontType, environmentName} = this.state; let region = shiftPrefix('ap-', groupRegion); let varObj = { id, cloud_id: cloudID, user_id: userID, userStatus, userDomain, groupName, frontType, region, environmentName, defaultDomain: '', status: '', serviceId: '', createdAt: new Date().getTime(), updatedAt: '' }; if (group === '' || group === null) { request(graphqlUrl, ADD_APIGROUP, varObj).then( data => { if (data.create_apiGWGroup !== null) { this.setState({ showOK: true }); // 写回 project request(graphqlUrl, UPDATE_PROJECT_GROUP, { id: projectID, updatedAt: new Date().getTime(), apiGWGroup_id: id, projectStatus: 'grouped' }).then(data => { if (data.update_project !== null) this.props.stepByStep(2); }); } setTimeout(() => { this.setState({ showOK: false }) }, 1500) } ) } else { let {userStatus, userDomain, groupName, groupRegion, frontType, environmentName} = this.state; let region = shiftPrefix('ap-', groupRegion); let varObj = { id: 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 }); request(graphqlUrl, UPDATE_PROJECT_ONLY_STATUS, { id: projectID, updatedAt: new Date().getTime(), projectStatus: 'updated' }).then(data => { if(data.update_project !== null) this.props.stepByStep(2); }) } setTimeout(() => { this.setState({ showOK: false }) }, 1500) } ) } }; render() { const customPanelStyle = { background: '#f7f7f7', borderRadius: 4, marginBottom: 24, border: 0, overflow: 'hidden', }; return (
{ youMustFill['groupName'] ? * : '' }  
{ youMustFill['region'] ? * : '' }   { // 如果不想一变所有都变,就将 onchange 改成 // onChange={this.switchConfig('groupRegion')} this.props.switchRegion(e); }} value={removePrefix('ap-', this.state.groupRegion)} buttonStyle="solid">
{ youMustFill['environmentName'] ? * : '' }  
{ youMustFill['frontType'] ? * : '' }   http https http&https
} style={customPanelStyle}> {/*
*/} {/*{valueToKey['defaultDomain']}*/} {/* */} {/**/} {/**/} {/**/} {/**/} {/**/} {/*
*/}
{ youMustFill['userDomain'] ? * : '' }  
{/*
*/} {/*{valueToKey['userStatus']}*/} {/* */} {/**/} {/**/} {/**/} {/**/} {/**/} {/*open*/} {/*close*/} {/**/} {/*
*/}
{ manageUsers.includes(this.props.userID) ?
{ this.props.stepAllShow ? '' : }
{ this.state.showOK === true ? : '' }
: this.props.trialcase ? '' :
{ this.props.stepAllShow ? '' : }
{ this.state.showOK === true ? : '' }
}
) } } export default APIGroupCardRender;