Commit c44c2783c1838264d2a269867d1877c3879eb08a

Authored by fengwotao
1 parent 90d58d1a

feat:大屏新增保存缩略图

@@ -76,6 +76,16 @@ export const getDataViewList = (params: object) => { @@ -76,6 +76,16 @@ export const getDataViewList = (params: object) => {
76 params 76 params
77 }) 77 })
78 } 78 }
  79 +/**
  80 + * @description: 大屏内容 保存 api
  81 + */
  82 +
  83 +export const saveDataViewList = (data: object) => {
  84 + return defHttp.put({
  85 + url: `${Api.DATA_VIEW}`,
  86 + data
  87 + })
  88 +}
79 89
80 /** 90 /**
81 * @description: file Upload 91 * @description: file Upload
@@ -29,6 +29,11 @@ export enum PageEnum { @@ -29,6 +29,11 @@ export enum PageEnum {
29 RELOAD = '/reload', 29 RELOAD = '/reload',
30 RELOAD_NAME = 'Reload', 30 RELOAD_NAME = 'Reload',
31 31
  32 + // THINGS_KIT
  33 + // 未发布
  34 + REDIRECT_UN_PUBLISH = '/redirect/unPublish',
  35 + REDIRECT_UN_PUBLISH_NAME = 'redirect-un-publish',
  36 +
32 37
33 // 首页 38 // 首页
34 BASE_HOME = '/project', 39 BASE_HOME = '/project',
1 -import {CreateComponentType, CreateComponentGroupType, FilterEnum} from '@/packages/index.d'  
2 -import {HistoryActionTypeEnum} from '@/store/modules/chartHistoryStore/chartHistoryStore.d' 1 +import { CreateComponentType, CreateComponentGroupType, FilterEnum } from '@/packages/index.d'
  2 +import { HistoryActionTypeEnum } from '@/store/modules/chartHistoryStore/chartHistoryStore.d'
3 import { SyncEnum } from '@/enums/editPageEnum' 3 import { SyncEnum } from '@/enums/editPageEnum'
4 import { 4 import {
5 - RequestHttpEnum,  
6 - RequestContentTypeEnum,  
7 - RequestDataTypeEnum,  
8 - RequestHttpIntervalEnum,  
9 - RequestParams,  
10 - RequestBodyEnum,  
11 - RequestParamsObjType 5 + RequestHttpEnum,
  6 + RequestContentTypeEnum,
  7 + RequestDataTypeEnum,
  8 + RequestHttpIntervalEnum,
  9 + RequestParams,
  10 + RequestBodyEnum,
  11 + RequestParamsObjType
12 } from '@/enums/httpEnum' 12 } from '@/enums/httpEnum'
13 -import {PreviewScaleEnum} from '@/enums/styleEnum'  
14 -import type {ChartColorsNameType, GlobalThemeJsonType} from '@/settings/chartThemes/index' 13 +import { PreviewScaleEnum } from '@/enums/styleEnum'
  14 +import type { ChartColorsNameType, GlobalThemeJsonType } from '@/settings/chartThemes/index'
15 15
  16 +// THINGS_KIT
16 // 项目数据枚举 17 // 项目数据枚举
17 export enum ProjectInfoEnum { 18 export enum ProjectInfoEnum {
18 - // ID  
19 - PROJECT_ID = "projectId",  
20 - // 名称  
21 - PROJECT_NAME = 'projectName',  
22 - // 描述  
23 - REMARKS = 'remarks',  
24 - // 缩略图  
25 - THUMBNAIL = 'thumbnail',  
26 - // 是否公开发布  
27 - RELEASE = 'release'  
28 -}  
29 - 19 + // ID
  20 + PROJECT_ID = 'projectId',
  21 + // 名称
  22 + PROJECT_NAME = 'projectName',
  23 + // 描述
  24 + REMARKS = 'remarks',
  25 + // 缩略图
  26 + THUMBNAIL = 'thumbnail',
  27 + // 是否公开发布
  28 + RELEASE = 'release',
  29 + // organizationId
  30 + ORGANIZATIONID = 'organizationId',
  31 + //保存给服务端的state
  32 + STATE_DATA = 'state',
  33 +}
  34 +// THINGS_KIT
30 // 项目数据 35 // 项目数据
31 export type ProjectInfoType = { 36 export type ProjectInfoType = {
32 - [ProjectInfoEnum.PROJECT_ID]: string,  
33 - [ProjectInfoEnum.PROJECT_NAME]: string,  
34 - [ProjectInfoEnum.REMARKS]: string,  
35 - [ProjectInfoEnum.THUMBNAIL]: string,  
36 - [ProjectInfoEnum.RELEASE]: boolean 37 + [ProjectInfoEnum.PROJECT_ID]: string
  38 + [ProjectInfoEnum.PROJECT_NAME]: string
  39 + [ProjectInfoEnum.REMARKS]: string
  40 + [ProjectInfoEnum.THUMBNAIL]: string
  41 + [ProjectInfoEnum.RELEASE]: boolean
  42 + [ProjectInfoEnum.RELEASE]: boolean
  43 + [ProjectInfoEnum.ORGANIZATIONID]: string
  44 + [ProjectInfoEnum.STATE_DATA]: number
37 } 45 }
38 46
39 // 编辑画布属性 47 // 编辑画布属性
40 export enum EditCanvasTypeEnum { 48 export enum EditCanvasTypeEnum {
41 - EDIT_LAYOUT_DOM = 'editLayoutDom',  
42 - EDIT_CONTENT_DOM = 'editContentDom',  
43 - OFFSET = 'offset',  
44 - SCALE = 'scale',  
45 - USER_SCALE = 'userScale',  
46 - LOCK_SCALE = 'lockScale',  
47 - SAVE_STATUS = 'saveStatus', 49 + EDIT_LAYOUT_DOM = 'editLayoutDom',
  50 + EDIT_CONTENT_DOM = 'editContentDom',
  51 + OFFSET = 'offset',
  52 + SCALE = 'scale',
  53 + USER_SCALE = 'userScale',
  54 + LOCK_SCALE = 'lockScale',
  55 + SAVE_STATUS = 'saveStatus',
48 56
49 - IS_CREATE = 'isCreate',  
50 - IS_DRAG = 'isDrag',  
51 - IS_SELECT = 'isSelect' 57 + IS_CREATE = 'isCreate',
  58 + IS_DRAG = 'isDrag',
  59 + IS_SELECT = 'isSelect'
52 } 60 }
53 61
54 // 编辑区域 62 // 编辑区域
55 export type EditCanvasType = { 63 export type EditCanvasType = {
56 - // 编辑区域 DOM  
57 - [EditCanvasTypeEnum.EDIT_LAYOUT_DOM]: HTMLElement | null  
58 - [EditCanvasTypeEnum.EDIT_CONTENT_DOM]: HTMLElement | null  
59 - // 偏移大小  
60 - [EditCanvasTypeEnum.OFFSET]: number  
61 - // 缩放  
62 - [EditCanvasTypeEnum.SCALE]: number  
63 - // 缩放  
64 - [EditCanvasTypeEnum.USER_SCALE]: number  
65 - // 锁定缩放  
66 - [EditCanvasTypeEnum.LOCK_SCALE]: boolean  
67 - // 初始化创建  
68 - [EditCanvasTypeEnum.IS_CREATE]: boolean  
69 - // 保存状态  
70 - [EditCanvasTypeEnum.SAVE_STATUS]: SyncEnum  
71 - // 拖拽中  
72 - [EditCanvasTypeEnum.IS_DRAG]: boolean  
73 - // 框选中  
74 - [EditCanvasTypeEnum.IS_SELECT]: boolean 64 + // 编辑区域 DOM
  65 + [EditCanvasTypeEnum.EDIT_LAYOUT_DOM]: HTMLElement | null
  66 + [EditCanvasTypeEnum.EDIT_CONTENT_DOM]: HTMLElement | null
  67 + // 偏移大小
  68 + [EditCanvasTypeEnum.OFFSET]: number
  69 + // 缩放
  70 + [EditCanvasTypeEnum.SCALE]: number
  71 + // 缩放
  72 + [EditCanvasTypeEnum.USER_SCALE]: number
  73 + // 锁定缩放
  74 + [EditCanvasTypeEnum.LOCK_SCALE]: boolean
  75 + // 初始化创建
  76 + [EditCanvasTypeEnum.IS_CREATE]: boolean
  77 + // 保存状态
  78 + [EditCanvasTypeEnum.SAVE_STATUS]: SyncEnum
  79 + // 拖拽中
  80 + [EditCanvasTypeEnum.IS_DRAG]: boolean
  81 + // 框选中
  82 + [EditCanvasTypeEnum.IS_SELECT]: boolean
75 } 83 }
76 84
77 // 滤镜/背景色/宽高主题等 85 // 滤镜/背景色/宽高主题等
78 export enum EditCanvasConfigEnum { 86 export enum EditCanvasConfigEnum {
79 - PROJECT_NAME = 'projectName',  
80 - WIDTH = 'width',  
81 - HEIGHT = 'height',  
82 - CHART_THEME_COLOR = 'chartThemeColor',  
83 - CHART_THEME_SETTING = 'chartThemeSetting',  
84 - BACKGROUND = 'background',  
85 - BACKGROUND_IMAGE = 'backgroundImage',  
86 - SELECT_COLOR = 'selectColor',  
87 - PREVIEW_SCALE_TYPE = 'previewScaleType' 87 + PROJECT_NAME = 'projectName',
  88 + WIDTH = 'width',
  89 + HEIGHT = 'height',
  90 + CHART_THEME_COLOR = 'chartThemeColor',
  91 + CHART_THEME_SETTING = 'chartThemeSetting',
  92 + BACKGROUND = 'background',
  93 + BACKGROUND_IMAGE = 'backgroundImage',
  94 + SELECT_COLOR = 'selectColor',
  95 + PREVIEW_SCALE_TYPE = 'previewScaleType'
88 } 96 }
89 97
90 export interface EditCanvasConfigType { 98 export interface EditCanvasConfigType {
91 - // 滤镜-启用  
92 - [FilterEnum.FILTERS_SHOW]: boolean  
93 - // 滤镜-色相  
94 - [FilterEnum.HUE_ROTATE]: number  
95 - // 滤镜-饱和度  
96 - [FilterEnum.SATURATE]: number  
97 - // 滤镜-亮度  
98 - [FilterEnum.BRIGHTNESS]: number  
99 - // 滤镜-对比度  
100 - [FilterEnum.CONTRAST]: number  
101 - // 滤镜-不透明度  
102 - [FilterEnum.OPACITY]: number  
103 - // 变换(暂不使用)  
104 - [FilterEnum.ROTATE_Z]: number  
105 - [FilterEnum.ROTATE_X]: number  
106 - [FilterEnum.ROTATE_Y]: number  
107 - [FilterEnum.SKEW_X]: number  
108 - [FilterEnum.SKEW_Y]: number  
109 - [FilterEnum.BLEND_MODE]: string  
110 - // 大屏名称  
111 - [EditCanvasConfigEnum.PROJECT_NAME]?: string  
112 - // 大屏宽度  
113 - [EditCanvasConfigEnum.WIDTH]: number  
114 - // 大屏高度  
115 - [EditCanvasConfigEnum.HEIGHT]: number  
116 - // 背景色  
117 - [EditCanvasConfigEnum.BACKGROUND]?: string  
118 - [EditCanvasConfigEnum.BACKGROUND_IMAGE]?: string | null  
119 - // 图表主题颜色  
120 - [EditCanvasConfigEnum.CHART_THEME_COLOR]: ChartColorsNameType  
121 - // 图表全局配置  
122 - [EditCanvasConfigEnum.CHART_THEME_SETTING]: GlobalThemeJsonType  
123 - // 图表主题颜色  
124 - [EditCanvasConfigEnum.SELECT_COLOR]: boolean  
125 - // 预览展示方式  
126 - [EditCanvasConfigEnum.PREVIEW_SCALE_TYPE]: PreviewScaleEnum 99 + // 滤镜-启用
  100 + [FilterEnum.FILTERS_SHOW]: boolean
  101 + // 滤镜-色相
  102 + [FilterEnum.HUE_ROTATE]: number
  103 + // 滤镜-饱和度
  104 + [FilterEnum.SATURATE]: number
  105 + // 滤镜-亮度
  106 + [FilterEnum.BRIGHTNESS]: number
  107 + // 滤镜-对比度
  108 + [FilterEnum.CONTRAST]: number
  109 + // 滤镜-不透明度
  110 + [FilterEnum.OPACITY]: number
  111 + // 变换(暂不使用)
  112 + [FilterEnum.ROTATE_Z]: number
  113 + [FilterEnum.ROTATE_X]: number
  114 + [FilterEnum.ROTATE_Y]: number
  115 + [FilterEnum.SKEW_X]: number
  116 + [FilterEnum.SKEW_Y]: number
  117 + [FilterEnum.BLEND_MODE]: string
  118 + // 大屏名称
  119 + [EditCanvasConfigEnum.PROJECT_NAME]?: string
  120 + // 大屏宽度
  121 + [EditCanvasConfigEnum.WIDTH]: number
  122 + // 大屏高度
  123 + [EditCanvasConfigEnum.HEIGHT]: number
  124 + // 背景色
  125 + [EditCanvasConfigEnum.BACKGROUND]?: string
  126 + [EditCanvasConfigEnum.BACKGROUND_IMAGE]?: string | null
  127 + // 图表主题颜色
  128 + [EditCanvasConfigEnum.CHART_THEME_COLOR]: ChartColorsNameType
  129 + // 图表全局配置
  130 + [EditCanvasConfigEnum.CHART_THEME_SETTING]: GlobalThemeJsonType
  131 + // 图表主题颜色
  132 + [EditCanvasConfigEnum.SELECT_COLOR]: boolean
  133 + // 预览展示方式
  134 + [EditCanvasConfigEnum.PREVIEW_SCALE_TYPE]: PreviewScaleEnum
127 } 135 }
128 136
129 // 坐标轴信息 137 // 坐标轴信息
130 // eslint-disable-next-line no-redeclare 138 // eslint-disable-next-line no-redeclare
131 export enum EditCanvasTypeEnum { 139 export enum EditCanvasTypeEnum {
132 - START_X = 'startX',  
133 - START_Y = 'startY',  
134 - X = 'x',  
135 - Y = 'y' 140 + START_X = 'startX',
  141 + START_Y = 'startY',
  142 + X = 'x',
  143 + Y = 'y'
136 } 144 }
137 145
138 // 鼠标位置 146 // 鼠标位置
139 export type MousePositionType = { 147 export type MousePositionType = {
140 - // 开始 X  
141 - [EditCanvasTypeEnum.START_X]: number  
142 - // 开始 Y  
143 - [EditCanvasTypeEnum.START_Y]: number  
144 - // X  
145 - [EditCanvasTypeEnum.X]: number  
146 - // y  
147 - [EditCanvasTypeEnum.Y]: number 148 + // 开始 X
  149 + [EditCanvasTypeEnum.START_X]: number
  150 + // 开始 Y
  151 + [EditCanvasTypeEnum.START_Y]: number
  152 + // X
  153 + [EditCanvasTypeEnum.X]: number
  154 + // y
  155 + [EditCanvasTypeEnum.Y]: number
148 } 156 }
149 157
150 // 操作目标 158 // 操作目标
151 export type TargetChartType = { 159 export type TargetChartType = {
152 - hoverId?: string  
153 - selectId: string[] 160 + hoverId?: string
  161 + selectId: string[]
154 } 162 }
155 163
156 // 数据记录 164 // 数据记录
157 export type RecordChartType = { 165 export type RecordChartType = {
158 - charts: CreateComponentType | CreateComponentGroupType | Array<CreateComponentType | CreateComponentGroupType>  
159 - type: HistoryActionTypeEnum.CUT | HistoryActionTypeEnum.COPY 166 + charts: CreateComponentType | CreateComponentGroupType | Array<CreateComponentType | CreateComponentGroupType>
  167 + type: HistoryActionTypeEnum.CUT | HistoryActionTypeEnum.COPY
160 } 168 }
161 169
162 // Store 枚举 170 // Store 枚举
163 export enum ChartEditStoreEnum { 171 export enum ChartEditStoreEnum {
164 - PROJECT_INFO = 'projectInfo', 172 + PROJECT_INFO = 'projectInfo',
165 173
166 - EDIT_RANGE = 'editRange',  
167 - EDIT_CANVAS = 'editCanvas',  
168 - RIGHT_MENU_SHOW = 'rightMenuShow',  
169 - MOUSE_POSITION = 'mousePosition',  
170 - TARGET_CHART = 'targetChart',  
171 - RECORD_CHART = 'recordChart',  
172 - // 以下需要存储  
173 - EDIT_CANVAS_CONFIG = 'editCanvasConfig',  
174 - REQUEST_GLOBAL_CONFIG = 'requestGlobalConfig',  
175 - COMPONENT_LIST = 'componentList' 174 + EDIT_RANGE = 'editRange',
  175 + EDIT_CANVAS = 'editCanvas',
  176 + RIGHT_MENU_SHOW = 'rightMenuShow',
  177 + MOUSE_POSITION = 'mousePosition',
  178 + TARGET_CHART = 'targetChart',
  179 + RECORD_CHART = 'recordChart',
  180 + // 以下需要存储
  181 + EDIT_CANVAS_CONFIG = 'editCanvasConfig',
  182 + REQUEST_GLOBAL_CONFIG = 'requestGlobalConfig',
  183 + COMPONENT_LIST = 'componentList'
176 } 184 }
177 185
178 // 请求公共类型 186 // 请求公共类型
179 type RequestPublicConfigType = { 187 type RequestPublicConfigType = {
180 - // 时间单位(时分秒)  
181 - requestIntervalUnit: RequestHttpIntervalEnum  
182 - // 请求内容  
183 - requestParams: RequestParams 188 + // 时间单位(时分秒)
  189 + requestIntervalUnit: RequestHttpIntervalEnum
  190 + // 请求内容
  191 + requestParams: RequestParams
184 } 192 }
185 193
186 // 数据池项类型 194 // 数据池项类型
187 export type RequestDataPondItemType = { 195 export type RequestDataPondItemType = {
188 - dataPondId: string,  
189 - dataPondName: string,  
190 - dataPondRequestConfig: RequestConfigType 196 + dataPondId: string
  197 + dataPondName: string
  198 + dataPondRequestConfig: RequestConfigType
191 } 199 }
192 200
193 // 全局的图表请求配置 201 // 全局的图表请求配置
194 export interface RequestGlobalConfigType extends RequestPublicConfigType { 202 export interface RequestGlobalConfigType extends RequestPublicConfigType {
195 - // 组件定制轮询时间  
196 - requestInterval: number  
197 - // 请求源地址  
198 - requestOriginUrl?: string  
199 - // 公共数据池  
200 - requestDataPond: RequestDataPondItemType[] 203 + // 组件定制轮询时间
  204 + requestInterval: number
  205 + // 请求源地址
  206 + requestOriginUrl?: string
  207 + // 公共数据池
  208 + requestDataPond: RequestDataPondItemType[]
201 } 209 }
202 210
203 // 单个图表请求配置 211 // 单个图表请求配置
204 export interface RequestConfigType extends RequestPublicConfigType { 212 export interface RequestConfigType extends RequestPublicConfigType {
205 - // 所选全局数据池的对应 id  
206 - requestDataPondId?: string  
207 - // 组件定制轮询时间  
208 - requestInterval?: number  
209 - // 获取数据的方式  
210 - requestDataType: RequestDataTypeEnum  
211 - // 请求方式 get/post/del/put/patch  
212 - requestHttpType: RequestHttpEnum  
213 - // 源后续的 url  
214 - requestUrl?: string  
215 - // 请求内容主体方式 普通/sql  
216 - requestContentType: RequestContentTypeEnum  
217 - // 请求体类型  
218 - requestParamsBodyType: RequestBodyEnum  
219 - // SQL 请求对象  
220 - requestSQLContent: {  
221 - sql: string  
222 - } 213 + // 所选全局数据池的对应 id
  214 + requestDataPondId?: string
  215 + // 组件定制轮询时间
  216 + requestInterval?: number
  217 + // 获取数据的方式
  218 + requestDataType: RequestDataTypeEnum
  219 + // 请求方式 get/post/del/put/patch
  220 + requestHttpType: RequestHttpEnum
  221 + // 源后续的 url
  222 + requestUrl?: string
  223 + // 请求内容主体方式 普通/sql
  224 + requestContentType: RequestContentTypeEnum
  225 + // 请求体类型
  226 + requestParamsBodyType: RequestBodyEnum
  227 + // SQL 请求对象
  228 + requestSQLContent: {
  229 + sql: string
  230 + }
223 } 231 }
224 232
225 // Store 类型 233 // Store 类型
226 export interface ChartEditStoreType { 234 export interface ChartEditStoreType {
227 - [ChartEditStoreEnum.PROJECT_INFO]: ProjectInfoType  
228 - [ChartEditStoreEnum.EDIT_CANVAS]: EditCanvasType  
229 - [ChartEditStoreEnum.EDIT_CANVAS_CONFIG]: EditCanvasConfigType  
230 - [ChartEditStoreEnum.RIGHT_MENU_SHOW]: boolean  
231 - [ChartEditStoreEnum.MOUSE_POSITION]: MousePositionType  
232 - [ChartEditStoreEnum.TARGET_CHART]: TargetChartType  
233 - [ChartEditStoreEnum.RECORD_CHART]?: RecordChartType  
234 - [ChartEditStoreEnum.REQUEST_GLOBAL_CONFIG]: RequestGlobalConfigType  
235 - [ChartEditStoreEnum.COMPONENT_LIST]: Array<CreateComponentType | CreateComponentGroupType> 235 + [ChartEditStoreEnum.PROJECT_INFO]: ProjectInfoType
  236 + [ChartEditStoreEnum.EDIT_CANVAS]: EditCanvasType
  237 + [ChartEditStoreEnum.EDIT_CANVAS_CONFIG]: EditCanvasConfigType
  238 + [ChartEditStoreEnum.RIGHT_MENU_SHOW]: boolean
  239 + [ChartEditStoreEnum.MOUSE_POSITION]: MousePositionType
  240 + [ChartEditStoreEnum.TARGET_CHART]: TargetChartType
  241 + [ChartEditStoreEnum.RECORD_CHART]?: RecordChartType
  242 + [ChartEditStoreEnum.REQUEST_GLOBAL_CONFIG]: RequestGlobalConfigType
  243 + [ChartEditStoreEnum.COMPONENT_LIST]: Array<CreateComponentType | CreateComponentGroupType>
236 } 244 }
237 245
238 // 存储数据类型 246 // 存储数据类型
239 export interface ChartEditStorage { 247 export interface ChartEditStorage {
240 - [ChartEditStoreEnum.EDIT_CANVAS_CONFIG]: EditCanvasConfigType  
241 - [ChartEditStoreEnum.REQUEST_GLOBAL_CONFIG]: RequestGlobalConfigType  
242 - [ChartEditStoreEnum.COMPONENT_LIST]: Array<CreateComponentType | CreateComponentGroupType> 248 + [ChartEditStoreEnum.EDIT_CANVAS_CONFIG]: EditCanvasConfigType
  249 + [ChartEditStoreEnum.REQUEST_GLOBAL_CONFIG]: RequestGlobalConfigType
  250 + [ChartEditStoreEnum.COMPONENT_LIST]: Array<CreateComponentType | CreateComponentGroupType>
243 } 251 }
@@ -44,7 +44,11 @@ export const useChartEditStore = defineStore({ @@ -44,7 +44,11 @@ export const useChartEditStore = defineStore({
44 projectName: '', 44 projectName: '',
45 remarks: '', 45 remarks: '',
46 thumbnail: '', 46 thumbnail: '',
47 - release: false 47 + release: false,
  48 + // THINGS_KIT
  49 + //保存缩图需要的组织id
  50 + organizationId: '',
  51 + state: 0,
48 }, 52 },
49 // 画布属性 53 // 画布属性
50 editCanvas: { 54 editCanvas: {
@@ -184,7 +188,7 @@ export const useChartEditStore = defineStore({ @@ -184,7 +188,7 @@ export const useChartEditStore = defineStore({
184 actions: { 188 actions: {
185 // THINGS_KIT 189 // THINGS_KIT
186 // * 设置 peojectInfo 数据项 190 // * 设置 peojectInfo 数据项
187 - setProjectInfo<T extends keyof ProjectInfoType, K extends ProjectInfoType[T]>(key: T, value: K) { 191 + setProjectInfo<T extends keyof ProjectInfoType, K extends ProjectInfoType[T]>(key: T, value: K) {
188 this.projectInfo[key] = value 192 this.projectInfo[key] = value
189 }, 193 },
190 // * 设置 editCanvas 数据项 194 // * 设置 editCanvas 数据项
@@ -521,7 +525,7 @@ export const useChartEditStore = defineStore({ @@ -521,7 +525,7 @@ export const useChartEditStore = defineStore({
521 e.id = getUUID() 525 e.id = getUUID()
522 // 分组列表生成新 id 526 // 分组列表生成新 id
523 if (e.isGroup) { 527 if (e.isGroup) {
524 - (e as CreateComponentGroupType).groupList.forEach((item: CreateComponentType) => { 528 + ;(e as CreateComponentGroupType).groupList.forEach((item: CreateComponentType) => {
525 item.id = getUUID() 529 item.id = getUUID()
526 }) 530 })
527 } 531 }
@@ -529,7 +533,7 @@ export const useChartEditStore = defineStore({ @@ -529,7 +533,7 @@ export const useChartEditStore = defineStore({
529 return e 533 return e
530 } 534 }
531 const isCut = recordCharts.type === HistoryActionTypeEnum.CUT 535 const isCut = recordCharts.type === HistoryActionTypeEnum.CUT
532 - const targetList = Array.isArray(recordCharts.charts) ? recordCharts.charts : [ recordCharts.charts ] 536 + const targetList = Array.isArray(recordCharts.charts) ? recordCharts.charts : [recordCharts.charts]
533 // 多项 537 // 多项
534 targetList.forEach((e: CreateComponentType | CreateComponentGroupType) => { 538 targetList.forEach((e: CreateComponentType | CreateComponentGroupType) => {
535 this.addComponentList(parseHandle(e), undefined, true) 539 this.addComponentList(parseHandle(e), undefined, true)
1 // THINGS_KIT 1 // THINGS_KIT
2 -import { getUUID, fetchRouteParamsLocation, JSONStringify, JSONParse } from '@/utils' 2 +import { getUUID, fetchRouteParamsLocation, JSONStringify, JSONParse, base64toFile } from '@/utils'
3 import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' 3 import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
4 import { 4 import {
5 EditCanvasTypeEnum, 5 EditCanvasTypeEnum,
@@ -20,7 +20,7 @@ import { saveInterval } from '@/settings/designSetting' @@ -20,7 +20,7 @@ import { saveInterval } from '@/settings/designSetting'
20 import throttle from 'lodash/throttle' 20 import throttle from 'lodash/throttle'
21 // THINGS_KIT 21 // THINGS_KIT
22 import html2canvas from 'html2canvas' 22 import html2canvas from 'html2canvas'
23 -import { contentUpdateApi, getDataView, uploadFile } from '@/api/external/contentSave/content' 23 +import { saveDataViewList, contentUpdateApi, getDataView, uploadFile } from '@/api/external/contentSave/content'
24 // 画布枚举 24 // 画布枚举
25 import { SyncEnum } from '@/enums/editPageEnum' 25 import { SyncEnum } from '@/enums/editPageEnum'
26 26
@@ -221,9 +221,10 @@ export const useSync = () => { @@ -221,9 +221,10 @@ export const useSync = () => {
221 indexImage: string 221 indexImage: string
222 id: string 222 id: string
223 state: number 223 state: number
  224 + organizationId: string
224 dataViewContent: { id: string; content: string; enabled: boolean } 225 dataViewContent: { id: string; content: string; enabled: boolean }
225 }) => { 226 }) => {
226 - const { dataViewId, dataViewName, indexImage, state, dataViewContent } = projectData 227 + const { dataViewId, dataViewName, indexImage, state, dataViewContent, organizationId } = projectData
227 // ID 228 // ID
228 chartEditStore.setProjectInfo(ProjectInfoEnum.PROJECT_ID, dataViewId) 229 chartEditStore.setProjectInfo(ProjectInfoEnum.PROJECT_ID, dataViewId)
229 // 名称 230 // 名称
@@ -234,6 +235,8 @@ export const useSync = () => { @@ -234,6 +235,8 @@ export const useSync = () => {
234 chartEditStore.setProjectInfo(ProjectInfoEnum.THUMBNAIL, indexImage) 235 chartEditStore.setProjectInfo(ProjectInfoEnum.THUMBNAIL, indexImage)
235 // 发布 236 // 发布
236 chartEditStore.setProjectInfo(ProjectInfoEnum.RELEASE, state === 1) 237 chartEditStore.setProjectInfo(ProjectInfoEnum.RELEASE, state === 1)
  238 + chartEditStore.setProjectInfo(ProjectInfoEnum.ORGANIZATIONID, organizationId)
  239 + chartEditStore.setProjectInfo(ProjectInfoEnum.STATE_DATA, state)
237 } 240 }
238 // THINGS_KIT 241 // THINGS_KIT
239 // * 数据获取 242 // * 数据获取
@@ -255,7 +258,7 @@ export const useSync = () => { @@ -255,7 +258,7 @@ export const useSync = () => {
255 setTimeout(() => { 258 setTimeout(() => {
256 chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.SUCCESS) 259 chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.SUCCESS)
257 }, 1000) 260 }, 1000)
258 - return 261 + // return
259 // } 262 // }
260 // chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.FAILURE) 263 // chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.FAILURE)
261 } catch (error) { 264 } catch (error) {
@@ -270,6 +273,8 @@ export const useSync = () => { @@ -270,6 +273,8 @@ export const useSync = () => {
270 const projectId = chartEditStore.getProjectInfo[ProjectInfoEnum.PROJECT_ID] 273 const projectId = chartEditStore.getProjectInfo[ProjectInfoEnum.PROJECT_ID]
271 const id = chartEditStore.getProjectInfo[ProjectInfoEnum.REMARKS] 274 const id = chartEditStore.getProjectInfo[ProjectInfoEnum.REMARKS]
272 const dataViewName = chartEditStore.getProjectInfo[ProjectInfoEnum.PROJECT_NAME] 275 const dataViewName = chartEditStore.getProjectInfo[ProjectInfoEnum.PROJECT_NAME]
  276 + const organizationId = chartEditStore.getProjectInfo[ProjectInfoEnum.ORGANIZATIONID]
  277 + const state = chartEditStore.getProjectInfo[ProjectInfoEnum.STATE_DATA]
273 278
274 if (projectId === null || projectId === '') { 279 if (projectId === null || projectId === '') {
275 window['$message'].error('数据初未始化成功,请刷新页面!') 280 window['$message'].error('数据初未始化成功,请刷新页面!')
@@ -277,35 +282,39 @@ export const useSync = () => { @@ -277,35 +282,39 @@ export const useSync = () => {
277 } 282 }
278 chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.START) 283 chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.START)
279 // 异常处理:缩略图上传失败不影响JSON的保存 284 // 异常处理:缩略图上传失败不影响JSON的保存
280 - // try {  
281 - // if (updateImg) {  
282 - // // 获取缩略图片  
283 - // const range = document.querySelector('.go-edit-range') as HTMLElement  
284 - // // 生成图片  
285 - // const canvasImage: HTMLCanvasElement = await html2canvas(range, {  
286 - // backgroundColor: null,  
287 - // allowTaint: true,  
288 - // useCORS: true  
289 - // })  
290 - //  
291 - // // 上传预览图  
292 - // const uploadParams = new FormData()  
293 - // uploadParams.append(  
294 - // 'object',  
295 - // base64toFile(canvasImage.toDataURL(), `${fetchRouteParamsLocation()}_index_preview.png`)  
296 - // )  
297 - // const uploadRes = await uploadFile(uploadParams)  
298 - // // 保存预览图  
299 - // if (uploadRes && uploadRes.code === ResultEnum.SUCCESS) {  
300 - // await updateProjectApi({  
301 - // id: fetchRouteParamsLocation(),  
302 - // thumbnail: `${systemStore.getFetchInfo.OSSUrl}${uploadRes.data.fileName}`  
303 - // })  
304 - // }  
305 - // }  
306 - // } catch (e) {  
307 - // console.log(e)  
308 - // } 285 + try {
  286 + if (updateImg) {
  287 + // 获取缩略图片
  288 + const range = document.querySelector('.go-edit-range') as HTMLElement
  289 + // 生成图片
  290 + const canvasImage: HTMLCanvasElement = await html2canvas(range, {
  291 + backgroundColor: null,
  292 + allowTaint: true,
  293 + useCORS: true
  294 + })
  295 +
  296 + // 上传预览图
  297 + const uploadParams = new FormData()
  298 + uploadParams.append(
  299 + 'file',
  300 + base64toFile(canvasImage.toDataURL(), `${fetchRouteParamsLocation()}_index_preview.png`)
  301 + )
  302 + const uploadRes = await uploadFile(uploadParams)
  303 + console.log(uploadRes.fileStaticUri)
  304 + // 保存预览图
  305 + if (uploadRes) {
  306 + await saveDataViewList({
  307 + name: dataViewName,
  308 + organizationId,
  309 + state,
  310 + id: fetchRouteParamsLocation(),
  311 + thumbnail: `${uploadRes.fileStaticUri}`
  312 + })
  313 + }
  314 + }
  315 + } catch (e) {
  316 + console.log(e)
  317 + }
309 // 保存数据 318 // 保存数据
310 const saveContent = { 319 const saveContent = {
311 dataViewContent: { 320 dataViewContent: {