index.d.ts 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. import type { GlobalThemeJsonType } from '@/settings/chartThemes/index'
  2. import type { RequestConfigType } from '@/store/modules/chartEditStore/chartEditStore.d'
  3. export enum ChartFrameEnum {
  4. // echarts 框架
  5. ECHARTS = 'echarts',
  6. // UI 组件框架
  7. NAIVE_UI = 'naiveUI',
  8. // 自定义带数据组件
  9. COMMON = 'common',
  10. // 无数据变更
  11. STATIC = 'static'
  12. }
  13. // 组件配置
  14. export type ConfigType = {
  15. key: string
  16. chartKey: string
  17. conKey: string
  18. title: string
  19. category: string
  20. categoryName: string
  21. package: string
  22. chartFrame?: ChartFrameEnum
  23. image: string | (() => Promise<typeof import('*.png')>)
  24. }
  25. // 数据请求
  26. interface requestConfig {
  27. data: RequestConfigType,
  28. // 暂时约定为数据存储区域(未使用)
  29. requestData: any
  30. }
  31. // Echarts 数据类型
  32. interface EchartsDataType {
  33. dimensions: string[],
  34. source: any[]
  35. }
  36. // 滤镜/变换枚举
  37. export enum FilterEnum {
  38. // 透明度
  39. OPACITY = 'opacity',
  40. // 饱和度
  41. SATURATE = 'saturate',
  42. // 对比度
  43. CONTRAST = 'contrast',
  44. // 色相
  45. HUE_ROTATE = 'hueRotate',
  46. // 亮度
  47. BRIGHTNESS = 'brightness',
  48. // 旋转
  49. ROTATE_Z = 'rotateZ',
  50. ROTATE_X = 'rotateX',
  51. ROTATE_Y = 'rotateY',
  52. // 倾斜
  53. SKEW_X = 'skewX',
  54. SKEW_Y = 'skewY',
  55. }
  56. // 组件实例类
  57. export interface PublicConfigType extends requestConfig {
  58. id: string
  59. rename?: string
  60. attr: { x: number; y: number; w: number; h: number; zIndex: number }
  61. styles: {
  62. [FilterEnum.OPACITY]: number;
  63. [FilterEnum.SATURATE]: number;
  64. [FilterEnum.CONTRAST]: number;
  65. [FilterEnum.HUE_ROTATE]: number;
  66. [FilterEnum.BRIGHTNESS]: number;
  67. [FilterEnum.ROTATE_Z]: number;
  68. [FilterEnum.ROTATE_X]: number;
  69. [FilterEnum.ROTATE_Y]: number;
  70. [FilterEnum.SKEW_X]: number;
  71. [FilterEnum.SKEW_Y]: number;
  72. // 动画
  73. animations: string[]
  74. }
  75. filter?: string
  76. setPosition: Function
  77. }
  78. export interface CreateComponentType extends PublicConfigType {
  79. key: string
  80. chartConfig: ConfigType
  81. option: GlobalThemeJsonType
  82. }
  83. // 获取组件实例类中某个key对应value类型的方法
  84. export type PickCreateComponentType<T extends keyof CreateComponentType> = Pick<CreateComponentType, T>[T]
  85. // 包分类枚举
  86. export enum PackagesCategoryEnum {
  87. CHARTS = 'Charts',
  88. TABLES = 'Tables',
  89. INFORMATIONS = 'Informations',
  90. DECORATES = 'Decorates'
  91. }
  92. // 包分类名称
  93. export enum PackagesCategoryName {
  94. CHARTS = '图表',
  95. TABLES = '列表',
  96. INFORMATIONS = '信息',
  97. DECORATES = '小组件'
  98. }
  99. // 获取组件
  100. export enum FetchComFlagType {
  101. VIEW,
  102. CONFIG
  103. }
  104. // 图表包类型
  105. export type PackagesType = {
  106. [PackagesCategoryEnum.CHARTS]: ConfigType[]
  107. [PackagesCategoryEnum.INFORMATIONS]: ConfigType[]
  108. [PackagesCategoryEnum.TABLES]: ConfigType[]
  109. [PackagesCategoryEnum.DECORATES]: ConfigType[]
  110. }