forked from p96170835/amis
commit
1497f4cb8b
|
@ -146,7 +146,9 @@ export default class SubFormControl extends React.PureComponent<SubFormProps, Su
|
||||||
disabled,
|
disabled,
|
||||||
labelField,
|
labelField,
|
||||||
value,
|
value,
|
||||||
btnLabel
|
btnLabel,
|
||||||
|
render,
|
||||||
|
data
|
||||||
} = this.props;
|
} = this.props;
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
@ -177,8 +179,15 @@ export default class SubFormControl extends React.PureComponent<SubFormProps, Su
|
||||||
data-tooltip="编辑详情"
|
data-tooltip="编辑详情"
|
||||||
data-position="bottom"
|
data-position="bottom"
|
||||||
>
|
>
|
||||||
{(value && labelField && value[labelField] && stripTag(value[labelField])) ||
|
{(value && labelField && value[labelField] && stripTag(value[labelField]))
|
||||||
btnLabel}
|
|| render('label',
|
||||||
|
{
|
||||||
|
type: 'tpl',
|
||||||
|
tpl: btnLabel
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data
|
||||||
|
})}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
))
|
))
|
||||||
|
@ -199,7 +208,7 @@ export default class SubFormControl extends React.PureComponent<SubFormProps, Su
|
||||||
}
|
}
|
||||||
|
|
||||||
renderSingle() {
|
renderSingle() {
|
||||||
const {classPrefix: ns, btnClassName, disabled, value, labelField, btnLabel} = this.props;
|
const {classPrefix: ns, btnClassName, disabled, value, labelField, btnLabel, render, data} = this.props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={`${ns}SubForm-values`} key="values">
|
<div className={`${ns}SubForm-values`} key="values">
|
||||||
|
@ -216,7 +225,16 @@ export default class SubFormControl extends React.PureComponent<SubFormProps, Su
|
||||||
data-position="bottom"
|
data-position="bottom"
|
||||||
>
|
>
|
||||||
<span className={`${ns}SubForm-valueLabel`}>
|
<span className={`${ns}SubForm-valueLabel`}>
|
||||||
{(value && labelField && value[labelField] && stripTag(value[labelField])) || btnLabel}
|
{(value && labelField && value[labelField] && stripTag(value[labelField]))
|
||||||
|
|| render('label',
|
||||||
|
{
|
||||||
|
type: 'tpl',
|
||||||
|
tpl: btnLabel
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data
|
||||||
|
}
|
||||||
|
)}}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {Renderer, RendererProps} from '../factory';
|
import {Renderer, RendererProps} from '../factory';
|
||||||
import {filter} from '../utils/tpl';
|
import {filter} from '../utils/tpl';
|
||||||
|
import {autobind} from '../utils/helper';
|
||||||
|
import {ScopedContext, IScopedContext} from '../Scoped';
|
||||||
|
|
||||||
export interface IFrameProps extends RendererProps {
|
export interface IFrameProps extends RendererProps {
|
||||||
className?: string;
|
className?: string;
|
||||||
|
@ -8,6 +10,7 @@ export interface IFrameProps extends RendererProps {
|
||||||
}
|
}
|
||||||
|
|
||||||
export default class IFrame extends React.Component<IFrameProps, object> {
|
export default class IFrame extends React.Component<IFrameProps, object> {
|
||||||
|
IFrameRef: React.RefObject<HTMLIFrameElement> = React.createRef();
|
||||||
static propsList: Array<string> = ['src', 'className'];
|
static propsList: Array<string> = ['src', 'className'];
|
||||||
static defaultProps: Partial<IFrameProps> = {
|
static defaultProps: Partial<IFrameProps> = {
|
||||||
className: '',
|
className: '',
|
||||||
|
@ -16,6 +19,11 @@ export default class IFrame extends React.Component<IFrameProps, object> {
|
||||||
frameBorder: 0
|
frameBorder: 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@autobind
|
||||||
|
reload() {
|
||||||
|
(this.IFrameRef.current as HTMLIFrameElement).src = (this.IFrameRef.current as HTMLIFrameElement).src;
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let {className, src, width, height, frameBorder, data, style} = this.props;
|
let {className, src, width, height, frameBorder, data, style} = this.props;
|
||||||
|
|
||||||
|
@ -31,6 +39,7 @@ export default class IFrame extends React.Component<IFrameProps, object> {
|
||||||
className={className}
|
className={className}
|
||||||
frameBorder={frameBorder}
|
frameBorder={frameBorder}
|
||||||
style={style}
|
style={style}
|
||||||
|
ref={this.IFrameRef}
|
||||||
src={src ? filter(src, data) : undefined}
|
src={src ? filter(src, data) : undefined}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
@ -41,4 +50,16 @@ export default class IFrame extends React.Component<IFrameProps, object> {
|
||||||
test: /(^|\/)iframe$/,
|
test: /(^|\/)iframe$/,
|
||||||
name: 'iframe'
|
name: 'iframe'
|
||||||
})
|
})
|
||||||
export class IFrameRenderer extends IFrame {}
|
export class IFrameRenderer extends IFrame {
|
||||||
|
static contextType = ScopedContext;
|
||||||
|
|
||||||
|
componentWillMount() {
|
||||||
|
const scoped = this.context as IScopedContext;
|
||||||
|
scoped.registerComponent(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
componentWillUnmount() {
|
||||||
|
const scoped = this.context as IScopedContext;
|
||||||
|
scoped.unRegisterComponent(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue