vue-launchers
Version:
224 lines (207 loc) • 6.92 kB
TypeScript
import { CreateComponentType, CreateComponentGroupType, FilterEnum } from '../../../packages/index.d'
import { HistoryActionTypeEnum } from '../../../chartStore/modules/chartHistoryStore/chartHistoryStore'
import {
RequestHttpEnum,
RequestContentTypeEnum,
RequestDataTypeEnum,
RequestHttpIntervalEnum,
RequestParams,
RequestBodyEnum,
RequestParamsObjType
} from '@/enums/httpEnum'
import { PreviewScaleEnum } from '../../../enums/styleEnum'
import type { ChartColorsNameType, CustomColorsType, GlobalThemeJsonType } from '../../../settings/chartThemes/index'
// 编辑画布属性
export enum EditCanvasTypeEnum {
EDIT_LAYOUT_DOM = 'editLayoutDom',
EDIT_CONTENT_DOM = 'editContentDom',
OFFSET = 'offset',
SCALE = 'scale',
USER_SCALE = 'userScale',
LOCK_SCALE = 'lockScale',
IS_CREATE = 'isCreate',
IS_DRAG = 'isDrag',
IS_SELECT = 'isSelect',
IS_CODE_EDIT = 'isCodeEdit'
}
// 编辑区域
export type EditCanvasType = {
// 编辑区域 DOM
[]: HTMLElement | null
[]: HTMLElement | null
// 偏移大小
[]: number
// 缩放
[]: number
// 缩放
[]: number
// 锁定缩放
[]: boolean
// 初始化创建
[]: boolean
// 拖拽中
[]: boolean
// 框选中
[]: boolean
// 代码编辑中
[]: boolean
}
// 滤镜/背景色/宽高主题等
export enum EditCanvasConfigEnum {
PROJECT_NAME = 'projectName',
WIDTH = 'width',
HEIGHT = 'height',
CHART_THEME_COLOR = 'chartThemeColor',
CHART_CUSTOM_THEME_COLOR_INFO = 'chartCustomThemeColorInfo',
CHART_THEME_SETTING = 'chartThemeSetting',
BACKGROUND = 'background',
BACKGROUND_IMAGE = 'backgroundImage',
SELECT_COLOR = 'selectColor',
PREVIEW_SCALE_TYPE = 'previewScaleType'
}
export interface EditCanvasConfigType {
projectName?: any
chartCustomThemeColorInfo?: Record<string, any>; // 可选字段,也可以指定更具体的类型
chartCustomThemeColorInfo?:any
// 滤镜-启用
[]: boolean
// 滤镜-色相
[]: number
// 滤镜-饱和度
[]: number
// 滤镜-亮度
[]: number
// 滤镜-对比度
[]: number
// 滤镜-不透明度
[]: number
// 变换(暂不使用)
[]: number
[]: number
[]: number
[]: number
[]: number
[]: string
// 大屏名称
[]?: string
// 大屏宽度
[]: number
// 大屏高度
[]: number
// 背景色
[]?: string
// 背景图片
[]?: string | null
// 图表主题颜色
[]: ChartColorsNameType
// 自定义图表主题颜色
[]?: CustomColorsType[]
// 图表全局配置
[]: GlobalThemeJsonType
// 图表主题颜色
[]: boolean
// 预览展示方式
[]: PreviewScaleEnum
}
// 坐标轴信息
// eslint-disable-next-line no-redeclare
export enum EditCanvasTypeEnum {
START_X = 'startX',
START_Y = 'startY',
X = 'x',
Y = 'y'
}
// 鼠标位置
export type MousePositionType = {
// 开始 X
[]: number
// 开始 Y
[]: number
// X
[]: number
// y
[]: number
}
// 操作目标
export type TargetChartType = {
hoverId?: string
selectId: string[]
}
// 数据记录
export type RecordChartType = {
charts: CreateComponentType | CreateComponentGroupType | Array<CreateComponentType | CreateComponentGroupType>
type: HistoryActionTypeEnum.CUT | HistoryActionTypeEnum.COPY
}
// Store 枚举
export enum ChartEditStoreEnum {
EDIT_RANGE = 'editRange',
EDIT_CANVAS = 'editCanvas',
RIGHT_MENU_SHOW = 'rightMenuShow',
MOUSE_POSITION = 'mousePosition',
TARGET_CHART = 'targetChart',
RECORD_CHART = 'recordChart',
// 以下需要存储
EDIT_CANVAS_CONFIG = 'editCanvasConfig',
REQUEST_GLOBAL_CONFIG = 'requestGlobalConfig',
COMPONENT_LIST = 'componentList'
}
// 请求公共类型
type RequestPublicConfigType = {
// 时间单位(时分秒)
requestIntervalUnit: RequestHttpIntervalEnum
// 请求内容
requestParams: RequestParams
}
// 数据池项类型
export type RequestDataPondItemType = {
dataPondId: string
dataPondName: string
dataPondRequestConfig: RequestConfigType
}
// 全局的图表请求配置
export interface RequestGlobalConfigType extends RequestPublicConfigType {
// 组件定制轮询时间
requestInterval: number
// 请求源地址
requestOriginUrl?: string
// 公共数据池
requestDataPond: RequestDataPondItemType[]
}
// 单个图表请求配置
export interface RequestConfigType extends RequestPublicConfigType {
// 所选全局数据池的对应 id
requestDataPondId?: string
// 组件定制轮询时间
requestInterval?: number
// 获取数据的方式
requestDataType: RequestDataTypeEnum
// 请求方式 get/post/del/put/patch
requestHttpType: RequestHttpEnum
// 源后续的 url
requestUrl?: string
// 请求内容主体方式 普通/sql
requestContentType: RequestContentTypeEnum
// 请求体类型
requestParamsBodyType: RequestBodyEnum
// SQL 请求对象
requestSQLContent: {
sql: string
}
}
// Store 类型
export interface ChartEditStoreType {
[]: EditCanvasType
[]: EditCanvasConfigType
[]: boolean
[]: MousePositionType
[]: TargetChartType
[]?: RecordChartType
[]: RequestGlobalConfigType
[]: Array<CreateComponentType | CreateComponentGroupType>
}
// 存储数据类型
export interface ChartEditStorage {
[]: EditCanvasConfigType
[]: RequestGlobalConfigType
[]: Array<CreateComponentType | CreateComponentGroupType>
}