amis-saas-7948 Merge remote-tracking branch 'origin/feat-log' into amis-saas-7944

Change-Id: I0253c53c211cd7aa6924424e58ca7c7416c62ff6
This commit is contained in:
igrowp 2022-12-19 15:17:48 +08:00
commit 2131df7dd6
2 changed files with 111 additions and 18 deletions

View File

@ -3,7 +3,7 @@
*/ */
import {registerEditorPlugin} from 'amis-editor-core'; import {registerEditorPlugin} from 'amis-editor-core';
import {BaseEventContext, BasePlugin} from 'amis-editor-core'; import {BaseEventContext, BasePlugin} from 'amis-editor-core';
import {getSchemaTpl} from 'amis-editor-core'; import {getSchemaTpl, tipedLabel} from 'amis-editor-core';
export class LogPlugin extends BasePlugin { export class LogPlugin extends BasePlugin {
// 关联渲染器名字 // 关联渲染器名字
@ -20,31 +20,123 @@ export class LogPlugin extends BasePlugin {
tags = ['展示']; tags = ['展示'];
previewSchema = { previewSchema = {
type: 'log', type: 'log',
height: 120 height: 120,
autoScroll: true
}; };
scaffold: any = { scaffold: any = {
type: 'log' type: 'log',
autoScroll: true,
height: 500,
encoding: 'utf-8'
}; };
panelJustify = true;
panelTitle = '日志'; panelTitle = '日志';
panelBodyCreator = (context: BaseEventContext) => { panelBodyCreator = (context: BaseEventContext) => {
const renderer: any = context.info.renderer;
return getSchemaTpl('tabs', [ return getSchemaTpl('tabs', [
{ {
title: '常规', title: '属性',
body: [ body: getSchemaTpl('collapseGroup', [
getSchemaTpl('api', { {
label: '日志数据源', title: '基本',
name: 'source' body: [
}) getSchemaTpl('apiControl', {
] required: true,
name: 'source',
renderLabel: true,
label: tipedLabel('数据源', `返回日志信息的服务,后端需要通过流的方式返回结果。
<a target="_blank" href="https://baidu.github.io/amis/zh-CN/components/log#%E5%90%8E%E7%AB%AF%E5%AE%9E%E7%8E%B0%E5%8F%82%E8%80%83"></a>`)
}),
{
type: 'input-text',
label: tipedLabel('文本编码', '返回内容的字符编码,例如 UTF-8、ISO-8859-2、KOI8-R、GBK等等。默认UTF-8'),
name: 'encoding'
},
getSchemaTpl('placeholder', {
label: '加载提示',
placeholder: '加载中'
}),
{
type: 'switch',
label: tipedLabel('跟随底部', '自动滚动到底部,方便查看最新日志内容'),
name: 'autoScroll',
value: true,
inputClassName: 'is-inline'
},
{
label: tipedLabel('操作', '可在日志顶部添加以下操作按钮'),
type: 'checkboxes',
name: 'operation',
inline: false,
options: [
{
label: '停止',
value: 'stop'
},
{
label: '刷新',
value: 'restart'
},
{
label: '清空',
value: 'clear'
},
{
label: '隐藏行号',
value: 'showLineNumber'
},
{
label: '查询',
value: 'filter'
}
]
}
]
},
{
title: '性能优化',
body: [
{
type: 'input-number',
label: tipedLabel('每行高度', `设置每行高度,这时就会默认启用虚拟渲染,避免渲染卡顿。
<ul><li></li>
<li></li></ul>
`),
name: 'rowHeight',
min: 1
},
{
type: 'input-number',
label: tipedLabel('显示行数', `限制最大显示行数,避免渲染卡顿,默认不限制。
<ul><li></li>
<li></li></ul>
`),
name: 'maxLength',
min: 1
}
]
},
getSchemaTpl('status', {isFormItem: false})
])
}, },
{ {
title: '外观', title: '外观',
body: [getSchemaTpl('className')] body: getSchemaTpl('collapseGroup', [
}, {
{ title: '基本',
title: '显隐', body: [
body: [getSchemaTpl('ref'), getSchemaTpl('visible')] {
type: 'input-number',
label: tipedLabel('高度', '展示区域高度'),
name: 'height',
min: 1
}
]
},
getSchemaTpl('style:classNames', {
isFormItem: false
})
])
} }
]); ]);
}; };

View File

@ -985,7 +985,8 @@ export default class APIControl extends React.Component<
labelField = 'label', labelField = 'label',
useMobileUI, useMobileUI,
popOverContainer, popOverContainer,
env env,
renderLabel
} = this.props; } = this.props;
let {apiStr, selectedItem, loading} = this.state; let {apiStr, selectedItem, loading} = this.state;
selectedItem = selectedItem =
@ -1003,7 +1004,7 @@ export default class APIControl extends React.Component<
}) })
) : ( ) : (
<> <>
{this.renderHeader()} {!renderLabel && this.renderHeader()}
<div className="ae-ApiControl-content" key="content"> <div className="ae-ApiControl-content" key="content">
<div className={cx('ae-ApiControl-input')}> <div className={cx('ae-ApiControl-input')}>