| | |
| | | import './index.scss' |
| | | |
| | | const { TextArea } = Input |
| | | const { confirm } = Modal |
| | | |
| | | class KeyInterface extends Component { |
| | | static propTpyes = { |
| | |
| | | url: '', |
| | | key: '', |
| | | visible: false, |
| | | apptoken: '', |
| | | setting: null |
| | | } |
| | | |
| | |
| | | |
| | | if (this.state.key && _setting && typeof(_setting) === 'string') { |
| | | _setting = this.decrypt(this.state.key, _setting) |
| | | |
| | | if (!_setting) { |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '信息解析失败!', |
| | | duration: 5 |
| | | }) |
| | | this.props.onChange('') |
| | | } |
| | | } |
| | | |
| | | this.setState({visible: true, setting: _setting || {}}) |
| | | this.setState({visible: true, setting: _setting || {ssoInterface: 'http://sso.mk9h.cn/cloud/webapi/dostars'}}) |
| | | } |
| | | |
| | | decrypt = (token, value) => { |
| | |
| | | |
| | | setting = JSON.parse(window.decodeURIComponent(window.atob(setting))) |
| | | } catch (e) { |
| | | notification.warning({ |
| | | top: 92, |
| | | message: '信息解析失败!', |
| | | duration: 5 |
| | | }) |
| | | setting = {} |
| | | setting = null |
| | | } |
| | | |
| | | return setting |
| | |
| | | let _setting = this.state.setting |
| | | if (_setting && typeof(_setting) === 'string') { |
| | | _setting = this.decrypt(key, _setting) |
| | | |
| | | if (!_setting) { |
| | | const that = this |
| | | confirm({ |
| | | title: '信息解析失败!', |
| | | content: '点击确定会清除配置信息,点击取消可重新输入appkey。', |
| | | onOk() { |
| | | that.setState({key: key, setting: {}, url: ''}) |
| | | that.props.onChange('') |
| | | }, |
| | | onCancel() {} |
| | | }) |
| | | return |
| | | } |
| | | } |
| | | this.setState({key: key, setting: _setting}) |
| | | this.setState({key: key, apptoken: values.apptoken, setting: _setting}) |
| | | return |
| | | } |
| | | |
| | |
| | | |
| | | this.props.onChange(content) |
| | | |
| | | this.setState({setting: message, url: values.interface, visible: false}) |
| | | this.setState({setting: message, url: values.interface, apptoken: '', visible: false}) |
| | | |
| | | if (this.props.type !== 'develop') { |
| | | this.setState({key: ''}) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | delKey = () => { |
| | | const { url } = this.state |
| | | const { type } = this.props |
| | | |
| | | if (!url) return |
| | | |
| | | if (type === 'develop') { |
| | | this.setState({setting: null, url: ''}) |
| | | } else { |
| | | this.setState({key: '', setting: null, url: ''}) |
| | | this.setState({key: '', apptoken: '', setting: null, url: ''}) |
| | | } |
| | | |
| | | this.props.onChange('') |
| | | } |
| | | |
| | | cancel = () => { |
| | | const { type } = this.props |
| | | |
| | | if (type !== 'develop') { |
| | | this.setState({key: '', apptoken: ''}) |
| | | } |
| | | this.setState({visible: false}) |
| | | } |
| | | |
| | | render() { |
| | | const { type } = this.props |
| | | const { getFieldDecorator } = this.props.form |
| | | const { url, visible, setting, key } = this.state |
| | | const { url, visible, setting, key, apptoken } = this.state |
| | | |
| | | return ( |
| | | <div className="mk-key-wrap"> |
| | | <TextArea value={url} rows={2} readOnly={true}/> |
| | | <div className="mk-key-edit"><EditOutlined onClick={this.editKey}/><DeleteOutlined onClick={this.delKey}/></div> |
| | | <div className="mk-key-edit"> |
| | | <EditOutlined onClick={this.editKey}/> |
| | | <DeleteOutlined className={!url ? 'disable' : ''} onClick={this.delKey}/> |
| | | </div> |
| | | <Modal |
| | | wrapClassName='mk-key-modal' |
| | | visible={visible} |
| | |
| | | maskClosable={false} |
| | | width={650} |
| | | onOk={this.handleConfirm} |
| | | onCancel={() => this.setState({visible: false})} |
| | | onCancel={this.cancel} |
| | | destroyOnClose |
| | | > |
| | | {key && setting ? |
| | | <Form> |
| | | {apptoken && type !== 'develop' ? <Form.Item style={{color: 'red'}} label="正式系统appkey"> |
| | | {apptoken} |
| | | </Form.Item> : null} |
| | | <Form.Item label="接口地址"> |
| | | {getFieldDecorator('interface', { |
| | | initialValue: setting.interface, |
| | | initialValue: setting.interface || 'http://******/webapi/dostars', |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: '请输入接口地址!' |
| | | }, |
| | | { |
| | | pattern: /^[0-9a-zA-Z:_./]+$/, |
| | | message: '只可使用英文、数字以及:_./' |
| | | pattern: /^[0-9a-zA-Z:_\-./]+$/, |
| | | message: '只可使用英文、数字以及:_-./' |
| | | } |
| | | ] |
| | | })(<TextArea rows={2}/>)} |
| | | })(<TextArea placeholder="http://******/webapi/dostars" rows={2}/>)} |
| | | </Form.Item> |
| | | <Form.Item label="sso地址"> |
| | | {getFieldDecorator('ssoInterface', { |
| | | initialValue: setting.ssoInterface || '', |
| | | rules: [ |
| | | { |
| | | pattern: /^[0-9a-zA-Z:_./]+$/, |
| | | message: '只可使用英文、数字以及:_./' |
| | | pattern: /^[0-9a-zA-Z:_\-./]+$/, |
| | | message: '只可使用英文、数字以及:_-./' |
| | | } |
| | | ] |
| | | })(<TextArea rows={2}/>)} |
| | | })(<TextArea placeholder="http://sso.mk9h.cn/cloud/webapi/dostars" rows={2}/>)} |
| | | </Form.Item> |
| | | <Form.Item label="appkey"> |
| | | <Form.Item label="目标系统appkey"> |
| | | {getFieldDecorator('appkey', { |
| | | initialValue: setting.appkey || '', |
| | | rules: [ |
| | |
| | | message: '不可小于16位!' |
| | | } |
| | | ] |
| | | })(<Input placeholder="请输入appkey" autoComplete="off" />)} |
| | | })(<Input placeholder="请输入目标系统appkey" autoComplete="off" />)} |
| | | </Form.Item> |
| | | <Form.Item label="用户名"> |
| | | {getFieldDecorator('username', { |
| | |
| | | </Form.Item> |
| | | </Form> : null} |
| | | {!key ? <Form style={{marginTop: '20px', marginBottom: '50px'}}> |
| | | <Form.Item label="apptoken"> |
| | | <Form.Item label="正式系统appkey"> |
| | | {getFieldDecorator('apptoken', { |
| | | initialValue: '', |
| | | rules: [ |