Browse Source

Merge branch 'master-fetch-dev' into master-fetch

奔跑的面条 2 years ago
parent
commit
4c968aee18
76 changed files with 230 additions and 177 deletions
  1. 1 2
      src/packages/components/Charts/Bars/BarCommon/index.ts
  2. 1 2
      src/packages/components/Charts/Bars/BarCrossrange/index.ts
  3. 1 2
      src/packages/components/Charts/Bars/CapsuleChart/index.ts
  4. 1 2
      src/packages/components/Charts/Lines/LineCommon/index.ts
  5. 1 2
      src/packages/components/Charts/Lines/LineGradientSingle/index.ts
  6. 1 2
      src/packages/components/Charts/Lines/LineGradients/index.ts
  7. 1 2
      src/packages/components/Charts/Lines/LineLinearSingle/index.ts
  8. 1 2
      src/packages/components/Charts/Maps/MapAmap/index.ts
  9. 2 3
      src/packages/components/Charts/Maps/MapBase/index.ts
  10. 1 2
      src/packages/components/Charts/Mores/Funnel/index.ts
  11. 1 2
      src/packages/components/Charts/Mores/Heatmap/index.ts
  12. 1 3
      src/packages/components/Charts/Mores/Process/index.ts
  13. 1 2
      src/packages/components/Charts/Mores/Radar/index.ts
  14. 1 2
      src/packages/components/Charts/Mores/TreeMap/index.ts
  15. 1 2
      src/packages/components/Charts/Mores/WaterPolo/index.ts
  16. 1 1
      src/packages/components/Charts/Pies/PieCircle/index.ts
  17. 1 2
      src/packages/components/Charts/Pies/PieCommon/index.ts
  18. 1 2
      src/packages/components/Charts/Scatters/ScatterCommon/index.ts
  19. 1 2
      src/packages/components/Charts/Scatters/ScatterLogarithmicRegression/index.ts
  20. 1 2
      src/packages/components/Decorates/Borders/Border01/index.ts
  21. 1 1
      src/packages/components/Decorates/Borders/Border02/index.ts
  22. 1 2
      src/packages/components/Decorates/Borders/Border03/index.ts
  23. 1 2
      src/packages/components/Decorates/Borders/Border04/index.ts
  24. 1 2
      src/packages/components/Decorates/Borders/Border05/index.ts
  25. 1 2
      src/packages/components/Decorates/Borders/Border06/index.ts
  26. 1 2
      src/packages/components/Decorates/Borders/Border07/index.ts
  27. 1 2
      src/packages/components/Decorates/Borders/Border08/index.ts
  28. 1 2
      src/packages/components/Decorates/Borders/Border09/index.ts
  29. 1 2
      src/packages/components/Decorates/Borders/Border10/index.ts
  30. 1 2
      src/packages/components/Decorates/Borders/Border11/index.ts
  31. 1 2
      src/packages/components/Decorates/Borders/Border12/index.ts
  32. 1 2
      src/packages/components/Decorates/Borders/Border13/index.ts
  33. 1 2
      src/packages/components/Decorates/Decorates/Decorates01/index.ts
  34. 1 2
      src/packages/components/Decorates/Decorates/Decorates02/index.ts
  35. 1 2
      src/packages/components/Decorates/Decorates/Decorates03/index.ts
  36. 1 2
      src/packages/components/Decorates/Decorates/Decorates04/index.ts
  37. 1 1
      src/packages/components/Decorates/Decorates/Decorates05/index.ts
  38. 1 2
      src/packages/components/Decorates/Decorates/Decorates06/index.ts
  39. 1 2
      src/packages/components/Decorates/Mores/Clock/index.ts
  40. 1 2
      src/packages/components/Decorates/Mores/CountDown/index.ts
  41. 1 2
      src/packages/components/Decorates/Mores/FlipperNumber/index.ts
  42. 1 2
      src/packages/components/Decorates/Mores/Number/index.ts
  43. 1 2
      src/packages/components/Decorates/Mores/TimeCommon/index.ts
  44. 3 3
      src/packages/components/Decorates/Mores/TimeCommon/index.vue
  45. 1 2
      src/packages/components/Decorates/Three/ThreeEarth01/index.ts
  46. 1 1
      src/packages/components/Decorates/Three/ThreeEarth01/index.vue
  47. 1 2
      src/packages/components/Informations/Mores/Iframe/index.ts
  48. 1 2
      src/packages/components/Informations/Mores/Image/index.ts
  49. 1 2
      src/packages/components/Informations/Mores/Video/index.ts
  50. 1 2
      src/packages/components/Informations/Mores/WordCloud/index.ts
  51. 1 2
      src/packages/components/Informations/Texts/TextBarrage/index.ts
  52. 1 2
      src/packages/components/Informations/Texts/TextCommon/index.ts
  53. 1 2
      src/packages/components/Informations/Texts/TextGradient/index.ts
  54. 1 2
      src/packages/components/Tables/Tables/TableList/index.ts
  55. 1 2
      src/packages/components/Tables/Tables/TableScrollBoard/index.ts
  56. 1 1
      src/packages/index.d.ts
  57. 30 14
      src/packages/index.ts
  58. 7 7
      src/settings/designColorRecommend.json
  59. 4 1
      src/store/modules/chartEditStore/chartEditStore.d.ts
  60. 2 0
      src/store/modules/chartEditStore/chartEditStore.ts
  61. 4 2
      src/utils/storage.ts
  62. 42 0
      src/utils/utils.ts
  63. 5 3
      src/views/chart/ContentCharts/components/ChartsItemBox/index.vue
  64. 3 0
      src/views/chart/ContentCharts/components/ChartsItemImage/index.ts
  65. 24 0
      src/views/chart/ContentCharts/components/ChartsItemImage/index.vue
  66. 3 3
      src/views/chart/ContentConfigurations/components/ChartData/hooks/useFile.hooks.ts
  67. 3 3
      src/views/chart/ContentEdit/components/EditTools/hooks/useFile.hooks.ts
  68. 7 7
      src/views/chart/ContentEdit/components/EditTools/index.vue
  69. 2 4
      src/views/chart/ContentEdit/components/EditTools/utils/index.ts
  70. 2 2
      src/views/chart/ContentEdit/hooks/useDrag.hook.ts
  71. 8 4
      src/views/chart/ContentHeader/headerTitle/index.vue
  72. 11 5
      src/views/chart/ContentLayers/components/LayersListItem/index.vue
  73. 3 3
      src/views/chart/hooks/useSync.hook.ts
  74. 7 6
      src/views/edit/index.vue
  75. 2 1
      src/views/preview/suspenseIndex.vue
  76. 2 2
      src/views/preview/utils/storage.ts

+ 1 - 2
src/packages/components/Charts/Bars/BarCommon/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/charts/bar_x.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const BarCommonConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.BAR,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.ECHARTS,
-  image
+  image: 'bar_x.png'
 }

+ 1 - 2
src/packages/components/Charts/Bars/BarCrossrange/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/charts/bar_y.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const BarCrossrangeConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.BAR,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.ECHARTS,
-  image
+  image: 'bar_y.png'
 }

+ 1 - 2
src/packages/components/Charts/Bars/CapsuleChart/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/charts/capsule.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const CapsuleChartConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.BAR,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.COMMON,
-  image
+  image: 'capsule.png'
 }

+ 1 - 2
src/packages/components/Charts/Lines/LineCommon/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/charts/line.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const LineCommonConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.LINE,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.ECHARTS,
-  image
+  image: 'line.png'
 }

+ 1 - 2
src/packages/components/Charts/Lines/LineGradientSingle/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/charts/line_gradient_single.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const LineGradientSingleConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.LINE,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.ECHARTS,
-  image
+  image: 'line_gradient_single.png'
 }

+ 1 - 2
src/packages/components/Charts/Lines/LineGradients/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/charts/line_gradient.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const LineGradientsConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.LINE,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.ECHARTS,
-  image
+  image: 'line_gradient.png'
 }

+ 1 - 2
src/packages/components/Charts/Lines/LineLinearSingle/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/charts/line_linear_single.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const LineLinearSingleConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.LINE,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.ECHARTS,
-  image
+  image: 'line_linear_single.png'
 }

+ 1 - 2
src/packages/components/Charts/Maps/MapAmap/index.ts

@@ -1,5 +1,4 @@
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
-import image from '@/assets/images/chart/charts/map_amap.png'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
 export const MapAmapConfig: ConfigType = {
@@ -11,5 +10,5 @@ export const MapAmapConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.MAP,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.COMMON,
-  image
+  image: 'map_amap.png'
 }

+ 2 - 3
src/packages/components/Charts/Maps/MapBase/index.ts

@@ -1,5 +1,4 @@
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
-import image from '@/assets/images/chart/charts/map.png'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
 export const MapBaseConfig: ConfigType = {
@@ -11,5 +10,5 @@ export const MapBaseConfig: ConfigType = {
     categoryName: ChatCategoryEnumName.MAP,
     package: PackagesCategoryEnum.CHARTS,
     chartFrame: ChartFrameEnum.COMMON,
-    image
-  }
+    image: 'map.png'
+}

+ 1 - 2
src/packages/components/Charts/Mores/Funnel/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/charts/funnel.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const FunnelConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.MORE,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.ECHARTS,
-  image
+  image: 'funnel.png'
 }

+ 1 - 2
src/packages/components/Charts/Mores/Heatmap/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/charts/heatmap.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const HeatmapConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.MORE,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.COMMON,
-  image
+  image: 'heatmap.png'
 }

+ 1 - 3
src/packages/components/Charts/Mores/Process/index.ts

@@ -1,5 +1,3 @@
-// 展示图片
-import image from '@/assets/images/chart/charts/process.png'
 // 公共类型声明
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 // 当前[信息模块]分类声明
@@ -21,5 +19,5 @@ export const ProcessConfig: ConfigType = {
   // 包分类
   package: PackagesCategoryEnum.CHARTS,
   // 图片
-  image: image
+  image: 'process.png'
 }

+ 1 - 2
src/packages/components/Charts/Mores/Radar/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/charts/radar.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const RadarConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.MORE,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.COMMON,
-  image
+  image: 'radar.png'
 }

+ 1 - 2
src/packages/components/Charts/Mores/TreeMap/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/charts/tree_map.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const TreeMapConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.MORE,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.COMMON,
-  image
+  image: 'tree_map.png'
 }

+ 1 - 2
src/packages/components/Charts/Mores/WaterPolo/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/charts/water_WaterPolo.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const WaterPoloConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.MORE,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.COMMON,
-  image
+  image: 'water_WaterPolo.png'
 }

+ 1 - 1
src/packages/components/Charts/Pies/PieCircle/index.ts

@@ -11,5 +11,5 @@ export const PieCircleConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.PIE,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.ECHARTS,
-  image
+  image: 'pie-circle.png'
 }

+ 1 - 2
src/packages/components/Charts/Pies/PieCommon/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/charts/pie.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const PieCommonConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.PIE,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.ECHARTS,
-  image
+  image: 'pie.png'
 }

+ 1 - 2
src/packages/components/Charts/Scatters/ScatterCommon/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/charts/scatter-multi.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const ScatterCommonConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.SCATTER,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.ECHARTS,
-  image
+  image: 'scatter-multi.png'
 }

+ 1 - 2
src/packages/components/Charts/Scatters/ScatterLogarithmicRegression/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/charts/scatter-logarithmic-regression.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const ScatterLogarithmicRegressionConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.SCATTER,
   package: PackagesCategoryEnum.CHARTS,
   chartFrame: ChartFrameEnum.ECHARTS,
-  image
+  image: 'scatter-logarithmic-regression.png'
 }

+ 1 - 2
src/packages/components/Decorates/Borders/Border01/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/border01.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const Border01Config: ConfigType = {
   category: ChatCategoryEnum.BORDER,
   categoryName: ChatCategoryEnumName.BORDER,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'border01.png'
 }

+ 1 - 1
src/packages/components/Decorates/Borders/Border02/index.ts

@@ -10,5 +10,5 @@ export const Border02Config: ConfigType = {
   category: ChatCategoryEnum.BORDER,
   categoryName: ChatCategoryEnumName.BORDER,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'border02.png'
 }

+ 1 - 2
src/packages/components/Decorates/Borders/Border03/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/border03.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const Border03Config: ConfigType = {
   category: ChatCategoryEnum.BORDER,
   categoryName: ChatCategoryEnumName.BORDER,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'border03.png'
 }

+ 1 - 2
src/packages/components/Decorates/Borders/Border04/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/border04.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const Border04Config: ConfigType = {
   category: ChatCategoryEnum.BORDER,
   categoryName: ChatCategoryEnumName.BORDER,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'border04.png'
 }

+ 1 - 2
src/packages/components/Decorates/Borders/Border05/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/border05.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const Border05Config: ConfigType = {
   category: ChatCategoryEnum.BORDER,
   categoryName: ChatCategoryEnumName.BORDER,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'border05.png'
 }

+ 1 - 2
src/packages/components/Decorates/Borders/Border06/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/border06.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const Border06Config: ConfigType = {
   category: ChatCategoryEnum.BORDER,
   categoryName: ChatCategoryEnumName.BORDER,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'border06.png'
 }

+ 1 - 2
src/packages/components/Decorates/Borders/Border07/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/border07.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const Border07Config: ConfigType = {
   category: ChatCategoryEnum.BORDER,
   categoryName: ChatCategoryEnumName.BORDER,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'border07.png'
 }

+ 1 - 2
src/packages/components/Decorates/Borders/Border08/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/border08.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const Border08Config: ConfigType = {
   category: ChatCategoryEnum.BORDER,
   categoryName: ChatCategoryEnumName.BORDER,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'border08.png'
 }

+ 1 - 2
src/packages/components/Decorates/Borders/Border09/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/border09.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const Border09Config: ConfigType = {
   category: ChatCategoryEnum.BORDER,
   categoryName: ChatCategoryEnumName.BORDER,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'border09.png'
 }

+ 1 - 2
src/packages/components/Decorates/Borders/Border10/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/border10.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const Border10Config: ConfigType = {
   category: ChatCategoryEnum.BORDER,
   categoryName: ChatCategoryEnumName.BORDER,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'border10.png'
 }

+ 1 - 2
src/packages/components/Decorates/Borders/Border11/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/border11.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const Border11Config: ConfigType = {
   category: ChatCategoryEnum.BORDER,
   categoryName: ChatCategoryEnumName.BORDER,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'border11.png'
 }

+ 1 - 2
src/packages/components/Decorates/Borders/Border12/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/border12.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const Border12Config: ConfigType = {
   category: ChatCategoryEnum.BORDER,
   categoryName: ChatCategoryEnumName.BORDER,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'border12.png'
 }

+ 1 - 2
src/packages/components/Decorates/Borders/Border13/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/border13.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const Border13Config: ConfigType = {
   category: ChatCategoryEnum.BORDER,
   categoryName: ChatCategoryEnumName.BORDER,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'border13.png'
 }

+ 1 - 2
src/packages/components/Decorates/Decorates/Decorates01/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/decorates01.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum,ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const Decorates01Config: ConfigType = {
   category: ChatCategoryEnum.DECORATE,
   categoryName: ChatCategoryEnumName.DECORATE,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'decorates01.png'
 }

+ 1 - 2
src/packages/components/Decorates/Decorates/Decorates02/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/decorates02.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum,ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const Decorates02Config: ConfigType = {
   category: ChatCategoryEnum.DECORATE,
   categoryName: ChatCategoryEnumName.DECORATE,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'decorates02.png'
 }

+ 1 - 2
src/packages/components/Decorates/Decorates/Decorates03/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/decorates03.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const Decorates03Config: ConfigType = {
   category: ChatCategoryEnum.DECORATE,
   categoryName: ChatCategoryEnumName.DECORATE,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'decorates01.png'
 }

+ 1 - 2
src/packages/components/Decorates/Decorates/Decorates04/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/decorates04.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const Decorates04Config: ConfigType = {
   category: ChatCategoryEnum.DECORATE,
   categoryName: ChatCategoryEnumName.DECORATE,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'decorates04.png'
 }

+ 1 - 1
src/packages/components/Decorates/Decorates/Decorates05/index.ts

@@ -10,5 +10,5 @@ export const Decorates05Config: ConfigType = {
   category: ChatCategoryEnum.DECORATE,
   categoryName: ChatCategoryEnumName.DECORATE,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'decorates05.png'
 }

+ 1 - 2
src/packages/components/Decorates/Decorates/Decorates06/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/decorates06.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const Decorates06Config: ConfigType = {
   categoryName: ChatCategoryEnumName.DECORATE,
   package: PackagesCategoryEnum.DECORATES,
   chartFrame: ChartFrameEnum.COMMON,
-  image
+  image: 'decorates06.png'
 }

+ 1 - 2
src/packages/components/Decorates/Mores/Clock/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/clock.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const ClockConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.MORE,
   package: PackagesCategoryEnum.DECORATES,
   chartFrame: ChartFrameEnum.STATIC,
-  image
+  image: 'clock.png'
 }

+ 1 - 2
src/packages/components/Decorates/Mores/CountDown/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/countdown.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const CountDownConfig: ConfigType = {
   category: ChatCategoryEnum.MORE,
   categoryName: ChatCategoryEnumName.MORE,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'countdown.png'
 }

+ 1 - 2
src/packages/components/Decorates/Mores/FlipperNumber/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/flipper-number.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const FlipperNumberConfig: ConfigType = {
   category: ChatCategoryEnum.MORE,
   categoryName: ChatCategoryEnumName.MORE,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'flipper-number.png'
 }

+ 1 - 2
src/packages/components/Decorates/Mores/Number/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/number.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const NumberConfig: ConfigType = {
   category: ChatCategoryEnum.MORE,
   categoryName: ChatCategoryEnumName.MORE,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'number.png'
 }

+ 1 - 2
src/packages/components/Decorates/Mores/TimeCommon/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/time.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum,ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const TimeCommonConfig: ConfigType = {
   category: ChatCategoryEnum.MORE,
   categoryName: ChatCategoryEnumName.MORE,
   package: PackagesCategoryEnum.DECORATES,
-  image
+  image: 'time.png'
 }

+ 3 - 3
src/packages/components/Decorates/Mores/TimeCommon/index.vue

@@ -26,7 +26,7 @@ let yearMonthDay = ref('2021-2-3')
 let nowData = ref('08:00:00')
 let newData = ref('2021-2-3 08:00:00')
 let boxShadow = ref('none')
-
+let timer: any = null
 const { w, h } = toRefs(props.chartConfig.attr)
 
 let {
@@ -60,7 +60,7 @@ watch(
   }
 )
 onMounted(() => {
-  const timer = setInterval(() => {
+  timer = setInterval(() => {
     var datetime = new Date()
     var year = datetime.getFullYear()
     var month = datetime.getMonth() + 1 < 10 ? '0' + (datetime.getMonth() + 1) : datetime.getMonth() + 1
@@ -81,7 +81,7 @@ onMounted(() => {
   }, 500)
 })
 onUnmounted(() => {
-  clearInterval()
+  clearInterval(timer)
 })
 useChartDataFetch(props.chartConfig, useChartEditStore)
 </script>

+ 1 - 2
src/packages/components/Decorates/Three/ThreeEarth01/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/decorates/threeEarth01.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const ThreeEarth01Config: ConfigType = {
   categoryName: ChatCategoryEnumName.THREE,
   package: PackagesCategoryEnum.DECORATES,
   chartFrame: ChartFrameEnum.STATIC,
-  image
+  image: 'threeEarth01.png'
 }

+ 1 - 1
src/packages/components/Decorates/Three/ThreeEarth01/index.vue

@@ -66,7 +66,7 @@ watch(
 // DOM 渲染之后进行初始化
 onMounted(() => {
   try {
-    if (navigator.userAgent.indexOf('Chrome') < -1 || navigator.userAgent.indexOf('Edg') > -1) {
+    if (navigator.userAgent.indexOf('Chrome') < -1 || navigator.userAgent.indexOf('Edg') < -1) {
       window['$message'].error('三维地图组件仅在【谷歌】浏览器上能正常展示!')
       chartEditStore.removeComponentList(undefined, false)
       return

+ 1 - 2
src/packages/components/Informations/Mores/Iframe/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/informations/iframe.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum,ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const IframeConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.MORE,
   package: PackagesCategoryEnum.INFORMATIONS,
   chartFrame: ChartFrameEnum.COMMON,
-  image
+  image: 'iframe.png'
 }

+ 1 - 2
src/packages/components/Informations/Mores/Image/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/informations/photo.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum,ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const ImageConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.MORE,
   package: PackagesCategoryEnum.INFORMATIONS,
   chartFrame: ChartFrameEnum.COMMON,
-  image
+  image: 'photo.png'
 }

+ 1 - 2
src/packages/components/Informations/Mores/Video/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/informations/video.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const VideoConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.MORE,
   package: PackagesCategoryEnum.INFORMATIONS,
   chartFrame: ChartFrameEnum.COMMON,
-  image
+  image: 'video.png'
 }

+ 1 - 2
src/packages/components/Informations/Mores/WordCloud/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/informations/words_cloud.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const WordCloudConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.MORE,
   package: PackagesCategoryEnum.INFORMATIONS,
   chartFrame: ChartFrameEnum.COMMON,
-  image
+  image: 'words_cloud.png'
 }

+ 1 - 2
src/packages/components/Informations/Texts/TextBarrage/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/informations/text_barrage.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum,ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const TextBarrageConfig: ConfigType = {
   category: ChatCategoryEnum.TEXT,
   categoryName: ChatCategoryEnumName.TEXT,
   package: PackagesCategoryEnum.INFORMATIONS,
-  image
+  image: 'text_barrage.png'
 }

+ 1 - 2
src/packages/components/Informations/Texts/TextCommon/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/informations/text_static.png'
 import { ConfigType, PackagesCategoryEnum } from '@/packages/index.d'
 import { ChatCategoryEnum,ChatCategoryEnumName } from '../../index.d'
 
@@ -10,5 +9,5 @@ export const TextCommonConfig: ConfigType = {
   category: ChatCategoryEnum.TEXT,
   categoryName: ChatCategoryEnumName.TEXT,
   package: PackagesCategoryEnum.INFORMATIONS,
-  image
+  image: 'text_static.png'
 }

+ 1 - 2
src/packages/components/Informations/Texts/TextGradient/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/informations/text_gradient.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum,ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const TextGradientConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.TEXT,
   package: PackagesCategoryEnum.INFORMATIONS,
   chartFrame: ChartFrameEnum.NAIVE_UI,
-  image
+  image: 'text_gradient.png'
 }

+ 1 - 2
src/packages/components/Tables/Tables/TableList/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/tables/tables_list.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const TableListConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.TABLE,
   package: PackagesCategoryEnum.TABLES,
   chartFrame: ChartFrameEnum.COMMON,
-  image
+  image: 'tables_list.png'
 }

+ 1 - 2
src/packages/components/Tables/Tables/TableScrollBoard/index.ts

@@ -1,4 +1,3 @@
-import image from '@/assets/images/chart/tables/table_scrollboard.png'
 import { ConfigType, PackagesCategoryEnum, ChartFrameEnum } from '@/packages/index.d'
 import { ChatCategoryEnum, ChatCategoryEnumName } from '../../index.d'
 
@@ -11,5 +10,5 @@ export const TableScrollBoardConfig: ConfigType = {
   categoryName: ChatCategoryEnumName.TABLE,
   package: PackagesCategoryEnum.TABLES,
   chartFrame: ChartFrameEnum.COMMON,
-  image
+  image: 'table_scrollboard.png'
 }

+ 1 - 1
src/packages/index.d.ts

@@ -22,7 +22,7 @@ export type ConfigType = {
   categoryName: string
   package: string
   chartFrame?: ChartFrameEnum
-  image: string | (() => Promise<typeof import('*.png')>)
+  image: string
 }
 
 // 数据请求

+ 30 - 14
src/packages/index.ts

@@ -2,15 +2,11 @@ import { ChartList } from '@/packages/components/Charts/index'
 import { DecorateList } from '@/packages/components/Decorates/index'
 import { InformationList } from '@/packages/components/Informations/index'
 import { TableList } from '@/packages/components/Tables/index'
-import {
-  PackagesCategoryEnum,
-  PackagesType,
-  ConfigType,
-  FetchComFlagType
-} from '@/packages/index.d'
+import { PackagesCategoryEnum, PackagesType, ConfigType, FetchComFlagType } from '@/packages/index.d'
 
-const configModules = import.meta.globEager("./components/**/config.vue")
-const indexModules = import.meta.globEager("./components/**/index.vue")
+const configModules = import.meta.globEager('./components/**/config.vue')
+const indexModules = import.meta.globEager('./components/**/index.vue')
+const imagesModules = import.meta.globEager('../assets/images/chart/**')
 
 // * 所有图表
 export let packagesList: PackagesType = {
@@ -24,7 +20,7 @@ export let packagesList: PackagesType = {
  * * 获取目标组件配置信息
  * @param targetData
  */
- export const createComponent = async (targetData: ConfigType) => {
+export const createComponent = async (targetData: ConfigType) => {
   const { category, key } = targetData
   const chart = await import(`./components/${targetData.package}/${category}/${key}/config.ts`)
   return new chart.default()
@@ -36,10 +32,10 @@ export let packagesList: PackagesType = {
  * @param {FetchComFlagType} flag 标识 0为展示组件, 1为配置组件
  */
 const fetchComponent = (chartName: string, flag: FetchComFlagType) => {
-  const module = flag === FetchComFlagType.VIEW ? indexModules: configModules
+  const module = flag === FetchComFlagType.VIEW ? indexModules : configModules
   for (const key in module) {
     const urlSplit = key.split('/')
-    if(urlSplit[urlSplit.length -2 ] === chartName) {
+    if (urlSplit[urlSplit.length - 2] === chartName) {
       return module[key]
     }
   }
@@ -49,7 +45,7 @@ const fetchComponent = (chartName: string, flag: FetchComFlagType) => {
  * * 获取展示组件
  * @param {ConfigType} dropData 配置项
  */
- export const fetchChartComponent = (dropData: ConfigType) => {
+export const fetchChartComponent = (dropData: ConfigType) => {
   const { key } = dropData
   return fetchComponent(key, FetchComFlagType.VIEW)?.default
 }
@@ -58,7 +54,27 @@ const fetchComponent = (chartName: string, flag: FetchComFlagType) => {
  * * 获取配置组件
  * @param {ConfigType} dropData 配置项
  */
- export const fetchConfigComponent = (dropData: ConfigType) => {
+export const fetchConfigComponent = (dropData: ConfigType) => {
   const { key } = dropData
   return fetchComponent(key, FetchComFlagType.CONFIG)?.default
-}
+}
+
+/**
+ * * 获取图片内容
+ * @param {ConfigType} targetData 配置项
+ */
+export const fetchImages = async (targetData: ConfigType) => {
+  // 新数据动态处理
+  const { image, package: targetDataPackage } = targetData
+  // 兼容旧数据
+  if (image.includes('@') || image.includes('base64')) return image
+
+  const imageName = image.substring(image.lastIndexOf('/') + 1)
+  for (const key in imagesModules) {
+    const urlSplit = key.split('/')
+    if (urlSplit[urlSplit.length - 1] === imageName) {
+      return imagesModules[key]?.default
+    }
+  }
+  return ''
+}

+ 7 - 7
src/settings/designColorRecommend.json

@@ -6,6 +6,13 @@
     "name": "碧空绿",
     "pinyin": "bikonlv"
   },
+  {
+    "CMYK": [73, 17, 20, 1],
+    "RGB": [102, 169, 201],
+    "hex": "#66a9c9",
+    "name": "涧石蓝",
+    "pinyin": "jianshilan"
+  },
   {
     "CMYK": [4, 13, 67, 0],
     "RGB": [248, 223, 114],
@@ -19,12 +26,5 @@
     "hex": "#3c7eff",
     "name": "深海蓝",
     "pinyin": "shenhailan"
-  },
-  {
-    "CMYK": [59, 12, 19, 0],
-    "RGB": [138, 188, 209],
-    "hex": "#8abcd1",
-    "name": "秋波蓝",
-    "pinyin": "qiubolan"
   }
 ]

+ 4 - 1
src/store/modules/chartEditStore/chartEditStore.d.ts

@@ -75,6 +75,7 @@ export type EditCanvasType = {
 
 // 画布数据/滤镜/背景色/宽高主题等
 export enum EditCanvasConfigEnum {
+  PROJECT_NAME = 'projectName',
   WIDTH = 'width',
   HEIGHT = 'height',
   CHART_THEME_COLOR = 'chartThemeColor',
@@ -90,7 +91,7 @@ export type EditCanvasConfigType = {
   // ID
   [EditCanvasConfigEnum.PROJECT_ID]: string,
   // 项目名称
-  [EditCanvasConfigEnum.PROJECT_NAME]: string,
+  [EditCanvasConfigEnum.PROJECT_NAME]?: string,
   // 项目描述
   [EditCanvasConfigEnum.REMARKS]: string,
   // 滤镜-启用
@@ -112,6 +113,8 @@ export type EditCanvasConfigType = {
   [FilterEnum.SKEW_X]: number
   [FilterEnum.SKEW_Y]: number
   [FilterEnum.BLEND_MODE]: string
+  // 大屏名称
+  [EditCanvasConfigEnum.PROJECT_NAME]?: string
   // 大屏宽度
   [EditCanvasConfigEnum.WIDTH]: number
   // 大屏高度

+ 2 - 0
src/store/modules/chartEditStore/chartEditStore.ts

@@ -93,6 +93,8 @@ export const useChartEditStore = defineStore({
     // -----------------------
     // 画布属性(需存储给后端)
     editCanvasConfig: {
+      // 项目名称
+      projectName: undefined,
       // 默认宽度
       width: 1920,
       // 默认高度

+ 4 - 2
src/utils/storage.ts

@@ -1,3 +1,5 @@
+import { JSONStringify, JSONParse } from './utils'
+
 /**
  * * 存储本地会话数据
  * @param k 键名
@@ -6,7 +8,7 @@
  */
 export const setLocalStorage = <T>(k: string, v: T) => {
   try {
-    window.localStorage.setItem(k, JSON.stringify(v))
+    window.localStorage.setItem(k, JSONStringify(v))
   } catch (error) {
     return false
   }
@@ -20,7 +22,7 @@ export const setLocalStorage = <T>(k: string, v: T) => {
 export const getLocalStorage = (k: string) => {
   const item = window.localStorage.getItem(k)
   try {
-    return item ? JSON.parse(item) : item
+    return item ? JSONParse(item) : item
   } catch (err) {
     return item
   }

+ 42 - 0
src/utils/utils.ts

@@ -268,3 +268,45 @@ export const setKeyboardDressShow = (keyCode?: number) => {
   }
 }
 
+/**
+ * * JSON序列化,支持函数和 undefined
+ * @param data
+ */
+export const JSONStringify = <T>(data: T) => {
+  return JSON.stringify(
+    data,
+    (key, val) => {
+      // 处理函数丢失问题
+      if (typeof val === 'function') {
+        return `${val}`
+      }
+      // 处理 undefined 丢失问题
+      if (typeof val === 'undefined') {
+        return 'undefined'
+      }
+      return val
+    },
+    2
+  )
+}
+
+/**
+ * * JSON反序列化,支持函数和 undefined
+ * @param data
+ */
+export const JSONParse = (data: string) => {
+  return JSON.parse(data, (k, v) => {
+    if (typeof v === 'string' && v.indexOf && (v.indexOf('function') > -1 || v.indexOf('=>') > -1)) {
+      return eval(`(function(){return ${v}})()`)
+    }
+    return v
+  })
+}
+
+/**
+ * * 修改顶部标题
+ * @param title
+ */
+export const setTitle = (title?: string) => {
+  title && (document.title = title)
+}

+ 5 - 3
src/views/chart/ContentCharts/components/ChartsItemBox/index.vue

@@ -22,7 +22,7 @@
           </n-text>
         </div>
         <div class="list-center go-flex-center go-transition">
-          <img class="list-img" v-lazy="item.image" alt="图表图片" />
+          <charts-item-image class="list-img" :chartConfig="item"></charts-item-image>
         </div>
         <div class="list-bottom">
           <n-text class="list-bottom-text" depth="3">
@@ -37,16 +37,18 @@
 <script setup lang="ts">
 import { PropType, watch, ref, Ref, computed, nextTick } from 'vue'
 import { MacOsControlBtn } from '@/components/Tips/MacOsControlBtn/index'
+import { ChartsItemImage } from '../ChartsItemImage'
 import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
 import { EditCanvasTypeEnum } from '@/store/modules/chartEditStore/chartEditStore.d'
 import { ChartModeEnum } from '@/store/modules/chartLayoutStore/chartLayoutStore.d'
 import { useChartLayoutStore } from '@/store/modules/chartLayoutStore/chartLayoutStore'
-import { componentInstall, loadingStart, loadingFinish, loadingError } from '@/utils'
+import { componentInstall, loadingStart, loadingFinish, loadingError, JSONStringify } from '@/utils'
 import { DragKeyEnum } from '@/enums/editPageEnum'
 import { createComponent } from '@/packages'
 import { ConfigType, CreateComponentType } from '@/packages/index.d'
 import { fetchConfigComponent, fetchChartComponent } from '@/packages/index'
 import omit from 'lodash/omit'
+
 const chartEditStore = useChartEditStore()
 
 defineProps({
@@ -70,7 +72,7 @@ const dragStartHandle = (e: DragEvent, item: ConfigType) => {
   componentInstall(item.chartKey, fetchChartComponent(item))
   componentInstall(item.conKey, fetchConfigComponent(item))
   // 将配置项绑定到拖拽属性上
-  e!.dataTransfer!.setData(DragKeyEnum.DRAG_KEY, JSON.stringify(omit(item, ['image'])))
+  e!.dataTransfer!.setData(DragKeyEnum.DRAG_KEY, JSONStringify(omit(item, ['image'])))
   // 修改状态
   chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_CREATE, true)
 }

+ 3 - 0
src/views/chart/ContentCharts/components/ChartsItemImage/index.ts

@@ -0,0 +1,3 @@
+import ChartsItemImage from './index.vue'
+
+export { ChartsItemImage }

+ 24 - 0
src/views/chart/ContentCharts/components/ChartsItemImage/index.vue

@@ -0,0 +1,24 @@
+<template>
+  <img class="list-img" v-lazy="imageInfo" alt="图表图片" />
+</template>
+
+<script setup lang="ts">
+import { ref, PropType } from 'vue'
+import { fetchImages } from '@/packages'
+import { ConfigType } from '@/packages/index.d'
+
+const props = defineProps({
+  chartConfig: {
+    type: Object as PropType<ConfigType>,
+    required: true
+  },
+})
+
+const imageInfo = ref('')
+
+// 获取图片
+const fetchImageUrl = async () => {
+  imageInfo.value = await fetchImages(props.chartConfig)
+}
+fetchImageUrl()
+</script>

+ 3 - 3
src/views/chart/ContentConfigurations/components/ChartData/hooks/useFile.hooks.ts

@@ -1,7 +1,7 @@
 import { ref, toRef, nextTick } from 'vue'
 import { UploadCustomRequestOptions } from 'naive-ui'
 import { FileTypeEnum } from '@/enums/fileTypeEnum'
-import { readFile, downloadTextFile } from '@/utils'
+import { readFile, downloadTextFile, JSONStringify, JSONParse } from '@/utils'
 
 export const useFile = (targetData: any) => {
   const uploadFileListRef = ref()
@@ -23,7 +23,7 @@ export const useFile = (targetData: any) => {
     nextTick(() => {
       if (file.file) {
         readFile(file.file).then((fileData: any) => {
-          targetData.value.option.dataset = JSON.parse(fileData)
+          targetData.value.option.dataset = JSONParse(fileData)
         })
       } else {
         window['$message'].error('导入数据失败,请稍后重试或联系管理员!')
@@ -35,7 +35,7 @@ export const useFile = (targetData: any) => {
   const download = () => {
     try {
       window['$message'].success('下载中,请耐心等待...')
-      downloadTextFile(JSON.stringify(targetData.value.option.dataset), undefined, 'json')
+      downloadTextFile(JSONStringify(targetData.value.option.dataset), undefined, 'json')
     } catch (error) {
       window['$message'].error('下载失败,数据错误!')
     }

+ 3 - 3
src/views/chart/ContentEdit/components/EditTools/hooks/useFile.hooks.ts

@@ -1,7 +1,7 @@
 import { ref, nextTick } from 'vue'
 import { UploadCustomRequestOptions } from 'naive-ui'
 import { FileTypeEnum } from '@/enums/fileTypeEnum'
-import { readFile, goDialog } from '@/utils'
+import { readFile, goDialog, JSONParse } from '@/utils'
 import { useSync } from '@/views/chart/hooks/useSync.hook'
 
 export const useFile = () => {
@@ -33,7 +33,7 @@ export const useFile = () => {
             // 新增
             onPositiveCallback: async () => {
               try {
-                fileData = JSON.parse(fileData)
+                fileData = JSONParse(fileData)
                 await updateComponent(fileData, false, true)
                 window['$message'].success('导入成功!')
               } catch (error) {
@@ -44,7 +44,7 @@ export const useFile = () => {
             // 覆盖
             onNegativeCallback: async () => {
               try {
-                fileData = JSON.parse(fileData)
+                fileData = JSONParse(fileData)
                 await updateComponent(fileData, true, true)
                 window['$message'].success('导入成功!')
               } catch (error) {

+ 7 - 7
src/views/chart/ContentEdit/components/EditTools/index.vue

@@ -172,19 +172,19 @@ const updateToSession = (id: string) => {
 
 // 配置列表
 const btnList: BtnListType[] = [
+  {
+    key: 'import',
+    type: TypeEnum.IMPORTUPLOAD,
+    name: '导入',
+    icon: ShareIcon
+  },
   {
     key: 'export',
     type: TypeEnum.BUTTON,
     name: '导出',
-    icon: ShareIcon,
+    icon: DownloadIcon,
     handle: exportHandle
   },
-  {
-    key: 'import',
-    type: TypeEnum.IMPORTUPLOAD,
-    name: '导入',
-    icon: DownloadIcon
-  },
   {
     key: 'edit',
     type: TypeEnum.BUTTON,

+ 2 - 4
src/views/chart/ContentEdit/components/EditTools/utils/index.ts

@@ -1,5 +1,5 @@
 import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
-import { canvasCut, downloadTextFile } from '@/utils'
+import { canvasCut, downloadTextFile, JSONStringify } from '@/utils'
 const chartEditStore = useChartEditStore()
 
 // 导出
@@ -9,9 +9,7 @@ export const exportHandle = () => {
 
   // 导出数据
   downloadTextFile(
-    JSON.stringify(chartEditStore.getStorageInfo || {}, (k, v) => {
-      return v === undefined ? null : v
-    }),
+    JSONStringify(chartEditStore.getStorageInfo || []),
     undefined,
     'json'
   )

+ 2 - 2
src/views/chart/ContentEdit/hooks/useDrag.hook.ts

@@ -6,7 +6,7 @@ import { CreateComponentType, CreateComponentGroupType, PickCreateComponentType
 import { useContextMenu } from '@/views/chart/hooks/useContextMenu.hook'
 import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
 import { EditCanvasTypeEnum } from '@/store/modules/chartEditStore/chartEditStore.d'
-import { loadingStart, loadingFinish, loadingError, setComponentPosition } from '@/utils'
+import { loadingStart, loadingFinish, loadingError, setComponentPosition, JSONParse } from '@/utils'
 import { throttle, cloneDeep } from 'lodash'
 
 const chartEditStore = useChartEditStore()
@@ -28,7 +28,7 @@ export const dragHandle = async (e: DragEvent) => {
 
     // 修改状态
     chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_CREATE, false)
-    const dropData: Exclude<ConfigType, ['image']> = JSON.parse(drayDataString)
+    const dropData: Exclude<ConfigType, ['image']> = JSONParse(drayDataString)
 
     // 创建新图表组件
     let newComponent: CreateComponentType = await createComponent(dropData)

+ 8 - 4
src/views/chart/ContentHeader/headerTitle/index.vue

@@ -29,9 +29,9 @@
 <script setup lang="ts">
 import { ref, nextTick, computed, watchEffect } from 'vue'
 import { ResultEnum } from '@/enums/httpEnum'
-import { fetchRouteParamsLocation, httpErrorHandle } from '@/utils'
+import { fetchRouteParamsLocation, httpErrorHandle, setTitle } from '@/utils'
 import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
-import { ProjectInfoEnum } from '@/store/modules/chartEditStore/chartEditStore.d'
+import { ProjectInfoEnum, EditCanvasConfigEnum } from '@/store/modules/chartEditStore/chartEditStore.d'
 import { updateProjectApi } from '@/api/path'
 import { useSync } from '../../hooks/useSync.hook'
 import { icon } from '@/plugins'
@@ -50,8 +50,12 @@ watchEffect(() => {
 })
 
 const comTitle = computed(() => {
-  title.value = title.value && title.value.replace(/\s/g, '')
-  return title.value.length ? title.value : fetchRouteParamsLocation()
+  // eslint-disable-next-line vue/no-side-effects-in-computed-properties
+  title.value = title.value.replace(/\s/g, '')
+  const newTitle = title.value.length ? title.value : '新项目'
+  setTitle(`工作空间-${newTitle}`)
+  chartEditStore.setEditCanvasConfig(EditCanvasConfigEnum.PROJECT_NAME, newTitle)
+  return newTitle
 })
 
 const handleFocus = () => {

+ 11 - 5
src/views/chart/ContentLayers/components/LayersListItem/index.vue

@@ -5,7 +5,7 @@
         class="list-img"
         object-fit="contain"
         preview-disabled
-        :src="image"
+        :src="imageInfo"
         :fallback-src="requireErrorImg()"
       ></n-image>
       <n-ellipsis style="margin-right: auto">
@@ -20,16 +20,18 @@
 </template>
 
 <script setup lang="ts">
-import { computed, PropType } from 'vue'
+import { computed, PropType, ref, watch } from 'vue'
 import { requireErrorImg } from '@/utils'
 import { useDesignStore } from '@/store/modules/designStore/designStore'
 import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
 import { LayerModeEnum } from '@/store/modules/chartLayoutStore/chartLayoutStore.d'
+import { fetchImages } from '@/packages'
+import { CreateComponentType, CreateComponentGroupType } from '@/packages/index.d'
 import { LayersStatus } from '../LayersStatus/index'
 
 const props = defineProps({
   componentData: {
-    type: Object,
+    type: Object as PropType<CreateComponentType | CreateComponentGroupType>,
     required: true
   },
   isGroup: {
@@ -45,9 +47,13 @@ const props = defineProps({
 // 全局颜色
 const designStore = useDesignStore()
 const chartEditStore = useChartEditStore()
+const imageInfo = ref('')
 
-// eslint-disable-next-line vue/no-setup-props-destructure
-const { image } = props.componentData.chartConfig
+// 获取图片
+const fetchImageUrl = async () => {
+  imageInfo.value = await fetchImages(props.componentData.chartConfig)
+}
+fetchImageUrl()
 
 // 颜色
 const themeColor = computed(() => {

+ 3 - 3
src/views/chart/hooks/useSync.hook.ts

@@ -1,6 +1,6 @@
 import { onUnmounted } from 'vue';
 import html2canvas from 'html2canvas'
-import { getUUID, httpErrorHandle, fetchRouteParamsLocation, base64toFile } from '@/utils'
+import { getUUID, httpErrorHandle, fetchRouteParamsLocation, base64toFile, JSONStringify, JSONParse } from '@/utils'
 import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
 import { EditCanvasTypeEnum, ChartEditStoreEnum, ProjectInfoEnum, ChartEditStorage } from '@/store/modules/chartEditStore/chartEditStore.d'
 import { useChartHistoryStore } from '@/store/modules/chartHistoryStore/chartHistoryStore'
@@ -245,7 +245,7 @@ export const useSync = () => {
         if (res.data) {
           updateStoreInfo(res.data)
           // 更新全局数据
-          await updateComponent(JSON.parse(res.data.content))
+          await updateComponent(JSONParse(res.data.content))
           return
         }else {
           chartEditStore.setProjectInfo(ProjectInfoEnum.PROJECT_ID, fetchRouteParamsLocation())
@@ -305,7 +305,7 @@ export const useSync = () => {
     // 保存数据
     let params = new FormData()
     params.append('projectId', projectId)
-    params.append('content', JSON.stringify(chartEditStore.getStorageInfo || {}))
+    params.append('content', JSONStringify(chartEditStore.getStorageInfo || {}))
     const res= await saveProjectApi(params)
 
     if (res && res.code === ResultEnum.SUCCESS) {

+ 7 - 6
src/views/edit/index.vue

@@ -26,7 +26,7 @@
             lineNumbers: 'on',
             minimap: { enabled: true }
           }"
-      />
+        />
       </n-layout-content>
     </n-layout>
   </div>
@@ -38,7 +38,7 @@ import { MonacoEditor } from '@/components/Pages/MonacoEditor'
 import { SavePageEnum } from '@/enums/editPageEnum'
 import { getSessionStorageInfo } from '../preview/utils'
 import type { ChartEditStorageType } from '../preview/index.d'
-import { setSessionStorage, fetchRouteParamsLocation } from '@/utils'
+import { setSessionStorage, fetchRouteParamsLocation, JSONStringify, JSONParse, setTitle } from '@/utils'
 import { StorageEnum } from '@/enums/storageEnum'
 import { icon } from '@/plugins'
 import { useSync } from '@/views/chart/hooks/useSync.hook'
@@ -51,8 +51,9 @@ const showOpenFilePicker: Function = (window as any).showOpenFilePicker
 const content = ref('')
 // 从sessionStorage 获取数据
 async function getDataBySession() {
-  const localStorageInfo: ChartEditStorageType = await getSessionStorageInfo() as unknown as ChartEditStorageType
-  content.value = JSON.stringify(localStorageInfo, undefined, 2)
+  const localStorageInfo: ChartEditStorageType = (await getSessionStorageInfo()) as unknown as ChartEditStorageType
+  setTitle(`编辑-${localStorageInfo.editCanvasConfig.projectName}`)
+  content.value = JSONStringify(localStorageInfo)
 }
 setTimeout(getDataBySession)
 
@@ -76,7 +77,7 @@ async function importJSON() {
 // 同步 [画布页失去焦点时同步数据到JSON页,JSON页Ctrl+S 时同步数据到画布页]
 window.opener.addEventListener(SavePageEnum.CHART, (e: any) => {
   setSessionStorage(StorageEnum.GO_CHART_STORAGE_LIST, [e.detail])
-  content.value = JSON.stringify(e.detail, undefined, 2)
+  content.value = JSONStringify(e.detail)
 })
 
 // 窗口失焦 + 保存 => 同步数据
@@ -94,7 +95,7 @@ async function updateSync() {
     return window['$message'].error('源窗口已关闭,视图同步失败')
   }
   try {
-    const detail = JSON.parse(content.value)
+    const detail = JSONParse(content.value)
     delete detail.id
     // 保持id不变
     // 带后端版本额外处理请求

+ 2 - 1
src/views/preview/suspenseIndex.vue

@@ -35,7 +35,7 @@
 <script setup lang="ts">
 import { computed } from 'vue'
 import { PreviewRenderList } from './components/PreviewRenderList'
-import { getFilterStyle, routerTurnByName, getSessionStorage } from '@/utils'
+import { getFilterStyle, routerTurnByName, getSessionStorage, setTitle } from '@/utils'
 import { getEditCanvasConfigStyle, getSessionStorageInfo } from './utils'
 import { PageEnum } from '@/enums/pageEnum'
 import { StorageEnum } from '@/enums/storageEnum'
@@ -50,6 +50,7 @@ const storageList: ChartEditStorageType[] = getSessionStorage(
 )
 
 const localStorageInfo = await getSessionStorageInfo() as unknown as ChartEditStorageType
+setTitle(`预览-${localStorageInfo.editCanvasConfig.projectName}`)
 
 // @ts-ignore
 if(localStorageInfo.isRelease === false) {

+ 2 - 2
src/views/preview/utils/storage.ts

@@ -1,4 +1,4 @@
-import { getSessionStorage, fetchRouteParamsLocation, httpErrorHandle } from '@/utils'
+import { getSessionStorage, fetchRouteParamsLocation, httpErrorHandle, JSONParse } from '@/utils'
 import { ResultEnum } from '@/enums/httpEnum'
 import { StorageEnum } from '@/enums/storageEnum'
 import { ChartEditStorage } from '@/store/modules/chartEditStore/chartEditStore.d'
@@ -23,7 +23,7 @@ export const getSessionStorageInfo = async () => {
         // 跳转未发布页
         return { isRelease: false }
       }
-      return { ...JSON.parse(content), id }
+      return { ...JSONParse(content), id }
     } else {
       httpErrorHandle()
     }