| | |
| | | { |
| | | "appId": "202108312122504607B107A83F55B40C98CCF", |
| | | "appkey": "20210831212235413F287EC3BF489424496C8", |
| | | "appId": "201912040924165801464FF1788654BC5AC73", |
| | | "appkey": "20191106103859640976D6E924E464D029CF0", |
| | | "mainSystemApi": "http://sso.mk9h.cn/cloud/webapi/dostars", |
| | | "systemType": "", |
| | | "externalDatabase": "", |
| | | "lineColor": "", |
| | | "filter": "false", |
| | | "defaultApp": "mkindustry", |
| | | "defaultApp": "mk", |
| | | "defaultLang": "zh-CN", |
| | | "WXAppID": "", |
| | | "WXminiAppID": "", |
| | |
| | | "transfer": "false", |
| | | "keepPassword": "true", |
| | | "platforms": ["H5", "wechat", "android", "ios", "wxMiniProgram"], |
| | | "host": "http://demo.mk9h.cn", |
| | | "service": "erp_new/" |
| | | "host": "http://qingqiumarket.cn", |
| | | "service": "MKWMS/" |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | this.setState({visible: true, setting: _setting || {}}) |
| | | this.setState({visible: true, setting: _setting || {ssoInterface: 'http://sso.mk9h.cn/cloud/webapi/dostars'}}) |
| | | } |
| | | |
| | | decrypt = (token, value) => { |
| | |
| | | <Form> |
| | | <Form.Item label="接口地址"> |
| | | {getFieldDecorator('interface', { |
| | | initialValue: setting.interface, |
| | | initialValue: setting.interface || 'http://******/webapi/dostars', |
| | | rules: [ |
| | | { |
| | | required: true, |
| | |
| | | message: '只可使用英文、数字以及:_./' |
| | | } |
| | | ] |
| | | })(<TextArea rows={2}/>)} |
| | | })(<TextArea placeholder="http://******/webapi/dostars" rows={2}/>)} |
| | | </Form.Item> |
| | | <Form.Item label="sso地址"> |
| | | {getFieldDecorator('ssoInterface', { |
| | |
| | | message: '只可使用英文、数字以及:_./' |
| | | } |
| | | ] |
| | | })(<TextArea rows={2}/>)} |
| | | })(<TextArea placeholder="http://sso.mk9h.cn/cloud/webapi/dostars" rows={2}/>)} |
| | | </Form.Item> |
| | | <Form.Item label="appkey"> |
| | | {getFieldDecorator('appkey', { |
| | |
| | | timeline: '时间轴', |
| | | officialAccount: '关注公众号', |
| | | sharecode: '分享码', |
| | | iframe: 'iframe', |
| | | login: '登录' |
| | | } |
| | | let i = 1 |
| | |
| | | balcony: '浮动卡', |
| | | timeline: '时间轴', |
| | | antvG6: '树图', |
| | | login: '登录' |
| | | login: '登录', |
| | | iframe: 'iframe' |
| | | } |
| | | let i = 1 |
| | | |
| | |
| | | import React, {Component} from 'react' |
| | | import PropTypes from 'prop-types' |
| | | import { is, fromJS } from 'immutable' |
| | | import { Input, Modal, notification, Empty } from 'antd' |
| | | import { Input, Modal, notification, Empty, Spin } from 'antd' |
| | | |
| | | import Api from '@/api' |
| | | import UtilsDM from '@/utils/utils-datamanage.js' |
| | |
| | | |
| | | this.setState({ |
| | | linkUrl: _data[config.wrap.linkField] || '', |
| | | data: _data, |
| | | loading: false |
| | | data: _data |
| | | }) |
| | | } else { |
| | | this.setState({ |
| | | loading: false |
| | | }) |
| | | if (result.ErrCode === 'N') { |
| | | Modal.error({ |
| | | title: result.message, |
| | |
| | | } |
| | | |
| | | if (submit) { |
| | | this.setState({linkUrl: val}, () => { |
| | | let node = document.getElementById(this.state.config.uuid) |
| | | node && node.select && node.select() |
| | | this.setState({linkUrl: '', loading: true}, () => { |
| | | this.setState({linkUrl: val}) |
| | | }) |
| | | |
| | | setTimeout(() => { |
| | | this.setState({loading: false}, () => { |
| | | let node = document.getElementById(this.state.config.uuid) |
| | | node && node.select && node.select() |
| | | }) |
| | | }, 500) |
| | | } |
| | | } |
| | | |
| | | enterUrl = (val) => { |
| | | this.setState({linkUrl: val}, () => { |
| | | let node = document.getElementById(this.state.config.uuid) |
| | | node && node.select && node.select() |
| | | this.setState({linkUrl: '', loading: true}, () => { |
| | | this.setState({linkUrl: val}) |
| | | }) |
| | | |
| | | setTimeout(() => { |
| | | this.setState({loading: false}, () => { |
| | | let node = document.getElementById(this.state.config.uuid) |
| | | node && node.select && node.select() |
| | | }) |
| | | }, 500) |
| | | } |
| | | |
| | | render() { |
| | | const { config, linkUrl } = this.state |
| | | const { config, linkUrl, loading } = this.state |
| | | |
| | | return ( |
| | | <div className="menu-iframe-box" style={config.style}> |
| | | {config.wrap.title || config.wrap.linkType === 'input' ? <div className="iframe-header" style={config.headerStyle}> |
| | | <span className="title">{config.wrap.title}</span> |
| | | {config.wrap.linkType === 'input' ? <Search id={config.uuid} placeholder="请输入地址" onChange={this.inputUrl} onSearch={this.enterUrl} enterButton="确定"/> : null} |
| | | {config.wrap.linkType === 'input' ? <Search id={config.uuid} disabled={loading} placeholder="请输入地址" onChange={this.inputUrl} onSearch={this.enterUrl} enterButton="确定"/> : null} |
| | | </div> : null} |
| | | <div className="iframe-wrap" style={{height: config.wrap.height}}> |
| | | {loading ? <div className="mask"><Spin size="large" /></div> : null} |
| | | {linkUrl ? <iframe title="mk" className="iframe" src={linkUrl} frameBorder="0"></iframe> : <Empty description={false}/>} |
| | | </div> |
| | | </div> |
| | |
| | | margin-top: 5px; |
| | | width: 65%; |
| | | float: right; |
| | | |
| | | .ant-btn[disabled] { |
| | | background-color: var(--mk-sys-color)!important; |
| | | border-color: var(--mk-sys-color)!important; |
| | | color: #ffffff!important; |
| | | opacity: 0.5; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | vertical-align: top; |
| | | margin-top: 0px; |
| | | } |
| | | |
| | | .mask { |
| | | position: absolute; |
| | | width: 100%; |
| | | height: 100%; |
| | | left: 0px; |
| | | top: 0px; |
| | | background: #ffffff; |
| | | z-index: 1; |
| | | |
| | | .ant-spin { |
| | | position: absolute; |
| | | left: calc(50% - 16px); |
| | | top: calc(50% - 16px); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | filterOption={(input, option) => option.props.children.indexOf(input) > -1} |
| | | onSelect={this.complete} |
| | | defaultValue={val} |
| | | onChange={(val) => this.onChange(val)} |
| | | defaultOpen={true} |
| | | > |
| | | <Input.TextArea id={col.uuid + record.uuid} autoSize={false} defaultValue={val} onChange={(e) => this.onChange(e.target.value)} onPressEnter={this.enterPress} onBlur={this.onBlur}/> |
| | | <Input.TextArea id={col.uuid + record.uuid} autoSize={false} defaultValue={val} onPressEnter={this.enterPress} onBlur={this.onBlur}/> |
| | | </AutoComplete> |
| | | } else { |
| | | children = <div className="content-wrap" onClick={this.focus}>{val}</div> |