可视化大屏的开发文档。
这里会分享本人开发文档。
会持续更新。
可视化大屏的开发文档。
这里会分享本人开发文档。
会持续更新。
为了能二次开发,筛选一些功能或者一些限制。
在最外层入口文件提供了一个统一配置的方法,免去了自己在文件中一一寻找的麻烦。
入口文件未/src/app.tsx
方法为:
GlobalConfig.enableConfig({});
以下是当前可以进行配置的功能。
CONDITION_COUNTER
组件、组的可设置条件的最大个数。
默认为4。
DEFAULT_CHART_SERIES_COUNTER
图表组件的最大系列个数。
默认为8。
可以对特定组件做特定设置。
CHART_SERIES_COUNTER
特定图表组件的最大系列个数。
ENABLE_MOCK_DATA_CONFIG
是否开启mock
数据配置。
DEFAULT_SCREEN_COVER
大屏的默认封面图片地址。
DEFAULT_SCREEN_SAVE_TYPE
大屏保存模式的类型。
auto 自动保存。
manual 手动保存。
auto-all 全量保存(2022-08-12&1.8)。
SERVICE_SIDE_REQUEST_URL
服务端请求地址(2022-08-12&1.8)。
MOCK_REQUEST_URL
mock数据的请求地址(2022-08-12&1.8)。
本地二次开发自定义定制化组件。
改动位置包括:
目录:/src/component.d.ts
declare namespace ComponentData {
export type TComponentSelfType = "CUSTOM_COMPONENT_TYPE" // 自定义组件的类型
}
目录:/src/utils/constants/components.tsx
type COMPONENT_TYPE_LIST = {
type: string // 组件的类型
icon: string // 组件的显示图标
title: string // 组件的名称
}
目录:/src/components/ChartComponents/index.ts
import CustomComponent from '/path/to/component'
COMPONENT_MAP.set(CustomComponent.label, CustomComponent)
目录:/src/components/ChartComponents/CustomComponent
CustomComponent
为自定义的文件夹名称
/src/components/ChartComponents/CustomComponent/type.ts
组件特殊化配置的类型文件。
/src/components/ChartComponents/CustomComponent/config
配置文件的文件夹,包含组件的所有配置。
props
为:
export type IProps<T extends object = {}> = {
value: TComponentData<T>;
onChange: (value: SuperPartial<TComponentData<T>>) => void;
};
格式为:
import { Component } from 'react';
import { Tabs } from 'antd';
import ComponentOptionConfig, {
Tab,
} from '@/components/ChartComponents/Common/ComponentOptionConfig';
import ConfigList from '@/components/ChartComponents/Common/Structure/ConfigList';
import { TBarBasicConfig } from '../type';
const { TabPane } = Tabs;
const TemplateComponent = (props: IProps) => {
const { value, onChange } = props
return (
<ComponentOptionConfig>
<TabPane key={'1'} tab={<Tab>配置类型1</Tab>}>
<ConfigList level={1}>
配置内容
</ConfigList>
</TabPane>
</ComponentOptionConfig>
)
}
/src/components/ChartComponents/CustomComponent/defaultConfig.ts
组件的默认样式属性配置。
export default {
interactive: {
base: [], // 没有交互事件
},
data: {
disabled: true // 没有数据获取配置
}
}
/src/components/ChartComponents/CustomComponent/component
实际渲染在画布中的样式。
import {
useComponent, // 提供了组件的实用方法的hook
useChartComponentResize, // 屏幕发生变化的hook
useChartValueMapField, // 字段映射的hook
useComponentResize, // 组件大小发生变化的hook
useAnimationChange, // echarts的animation发生变化的hook
useCondition, // 组件条件处理的hook
useChartComponentTooltip, // echart的tooltip轮播hook
useChartPerConfig, // echart的config预处理hook
} from '@/components/ChartComponents/Common/Component/hook';
import FetchFragment, {
TFetchFragmentRef,
} from '@/components/ChartComponents/Common/FetchFragment'; // 数据交互的wrapper
export type IProps<T> = {
className?: string;
style?: CSSProperties;
value: ComponentData.TComponentData<T>;
global: ComponentProps['global'];
}
关于以上的细节请自行查看对应的已内置的组件的代码。
/src/components/ChartComponents/CustomComponent/index.ts
import defaultConfig from './defaultConfig';
import Component from './component';
import Config from './config';
// 需要导出以下几个属性
export default {
defaultConfig,
configComponent: Config,
render: Component,
type: Component.id,
};
设计器的整体色调为可自定义。
自定义文件存放位置为/src/theme
文件内容可根据echarts,来进行配置。
将配置文件下载后放在上述文件夹下。
配置注入
/src/utils/Assit/Theme/index.ts
代码步骤:
// 新增的色调配置文件
import CustomeTheme from '../../../theme/custom-theme.json';
class ThemeUtil {
themeDataSource = {
// 色调配置列表
[CustomeTheme.themeName]: CustomeTheme.theme,
}
// 初始化色调
// 设置默认的大屏色调
init() {
this.initCurrentThemeData(WonderlandTheme.themeName);
}
}