chartEditStore.d.ts 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. import { CreateComponentType } from '@/packages/index.d'
  2. import { HistoryActionTypeEnum } from '@/store/modules/chartHistoryStore/chartHistoryStore.d'
  3. import { RequestHttpEnum, RequestDataTypeEnum } from '@/enums/httpEnum'
  4. import type {
  5. ChartColorsNameType,
  6. GlobalThemeJsonType,
  7. } from '@/settings/chartThemes/index'
  8. // 编辑画布属性
  9. export enum EditCanvasTypeEnum {
  10. EDIT_LAYOUT_DOM = 'editLayoutDom',
  11. EDIT_CONTENT_DOM = 'editContentDom',
  12. OFFSET = 'offset',
  13. SCALE = 'scale',
  14. USER_SCALE = 'userScale',
  15. LOCK_SCALE = 'lockScale',
  16. IS_DRAG = 'isDrag',
  17. }
  18. // 编辑区域
  19. export type EditCanvasType = {
  20. // 编辑区域 DOM
  21. [EditCanvasTypeEnum.EDIT_LAYOUT_DOM]: HTMLElement | null
  22. [EditCanvasTypeEnum.EDIT_CONTENT_DOM]: HTMLElement | null
  23. // 偏移大小
  24. [EditCanvasTypeEnum.OFFSET]: number
  25. // 缩放
  26. [EditCanvasTypeEnum.SCALE]: number
  27. // 缩放
  28. [EditCanvasTypeEnum.USER_SCALE]: number
  29. // 锁定缩放
  30. [EditCanvasTypeEnum.LOCK_SCALE]: boolean
  31. // 拖拽中
  32. [EditCanvasTypeEnum.IS_DRAG]: boolean
  33. }
  34. // 滤镜/背景色/宽高主题等
  35. export enum EditCanvasConfigEnum {
  36. WIDTH = 'width',
  37. HEIGHT = 'height',
  38. HUE_ROTATE = 'hueRotate',
  39. SATURATE = 'saturate',
  40. BRIGHTNESS = 'brightness',
  41. CONTRAST = 'contrast',
  42. UN_OPACITY = 'unOpacity',
  43. CHART_THEME_COLOR = 'chartThemeColor',
  44. CHART_THEME_SETTING = 'chartThemeSetting',
  45. BACKGROUND = 'background',
  46. BACKGROUND_IAMGE = 'backgroundImage',
  47. SELECT_COLOR = 'selectColor',
  48. }
  49. export interface EditCanvasConfigType {
  50. // 大屏宽度
  51. [EditCanvasConfigEnum.WIDTH]: number
  52. // 大屏高度
  53. [EditCanvasConfigEnum.HEIGHT]: number
  54. // 色相
  55. [EditCanvasConfigEnum.HUE_ROTATE]: number
  56. // 饱和度
  57. [EditCanvasConfigEnum.SATURATE]: number
  58. // 亮度
  59. [EditCanvasConfigEnum.BRIGHTNESS]: number
  60. // 对比度
  61. [EditCanvasConfigEnum.CONTRAST]: number
  62. // 不透明度
  63. [EditCanvasConfigEnum.UN_OPACITY]: number
  64. // 背景色
  65. [EditCanvasConfigEnum.BACKGROUND]?: string
  66. [EditCanvasConfigEnum.BACKGROUND_IAMGE]?: string | null
  67. // 图表主题颜色
  68. [EditCanvasConfigEnum.CHART_THEME_COLOR]: ChartColorsNameType
  69. // 图表全局配置
  70. [EditCanvasConfigEnum.CHART_THEME_SETTING]: GlobalThemeJsonType
  71. // 图表主题颜色
  72. [EditCanvasConfigEnum.SELECT_COLOR]: boolean
  73. }
  74. // 坐标轴信息
  75. export enum EditCanvasTypeEnum {
  76. START_X = 'startX',
  77. START_Y = 'startY',
  78. X = 'x',
  79. Y = 'y',
  80. }
  81. // 鼠标位置
  82. export type MousePositionType = {
  83. // 开始 X
  84. [EditCanvasTypeEnum.START_X]: number
  85. // 开始 Y
  86. [EditCanvasTypeEnum.START_Y]: number
  87. // X
  88. [EditCanvasTypeEnum.X]: number
  89. // y
  90. [EditCanvasTypeEnum.Y]: number
  91. }
  92. // 操作目标
  93. export type TargetChartType = {
  94. hoverId?: string
  95. selectId?: string
  96. }
  97. // 数据记录
  98. export type RecordChartType = {
  99. charts: CreateComponentType | CreateComponentType[]
  100. type: HistoryActionTypeEnum.CUT | HistoryActionTypeEnum.COPY
  101. }
  102. // Store 枚举
  103. export enum ChartEditStoreEnum {
  104. EDIT_RANGE = 'editRange',
  105. EDIT_CANVAS = 'editCanvas',
  106. RIGHT_MENU_SHOW = 'rightMenuShow',
  107. MOUSE_POSITION = 'mousePosition',
  108. TARGET_CHART = 'targetChart',
  109. RECORD_CHART = 'recordChart',
  110. // 以下需要存储
  111. EDIT_CANVAS_CONFIG = 'editCanvasConfig',
  112. REQUEST_GLOBAL_CONFIG = 'requestGlobalConfig',
  113. COMPONENT_LIST = 'componentList',
  114. }
  115. // 全局的图表请求配置
  116. export type RequestGlobalConfigType = {
  117. // 请求源地址
  118. requestOriginUrl?: string
  119. // 轮询时间
  120. requestInterval: number
  121. }
  122. // 单个图表请求配置
  123. export type RequestConfigType = {
  124. // 获取数据的方式
  125. requestDataType: RequestDataTypeEnum
  126. // 请求方式 get/post/del/put/patch
  127. requestHttpType: RequestHttpEnum
  128. // 去除源的 url
  129. requestUrl?: string
  130. }
  131. // Store 类型
  132. export interface ChartEditStoreType {
  133. [ChartEditStoreEnum.EDIT_CANVAS]: EditCanvasType
  134. [ChartEditStoreEnum.EDIT_CANVAS_CONFIG]: EditCanvasConfigType
  135. [ChartEditStoreEnum.RIGHT_MENU_SHOW]: boolean
  136. [ChartEditStoreEnum.MOUSE_POSITION]: MousePositionType
  137. [ChartEditStoreEnum.TARGET_CHART]: TargetChartType
  138. [ChartEditStoreEnum.RECORD_CHART]?: RecordChartType
  139. [ChartEditStoreEnum.REQUEST_GLOBAL_CONFIG]: RequestGlobalConfigType
  140. [ChartEditStoreEnum.COMPONENT_LIST]: CreateComponentType[]
  141. }
  142. export interface ChartEditStorage {
  143. [ChartEditStoreEnum.EDIT_CANVAS_CONFIG]: EditCanvasConfigType
  144. [ChartEditStoreEnum.REQUEST_GLOBAL_CONFIG]: RequestGlobalConfigType
  145. [ChartEditStoreEnum.COMPONENT_LIST]: CreateComponentType[]
  146. }