chore: 修改项目信息结构
This commit is contained in:
parent
423890a4df
commit
9098443c83
@ -8,6 +8,23 @@ import type {
|
|||||||
GlobalThemeJsonType,
|
GlobalThemeJsonType,
|
||||||
} from '@/settings/chartThemes/index'
|
} from '@/settings/chartThemes/index'
|
||||||
|
|
||||||
|
// 项目数据枚举
|
||||||
|
export enum ProjectInfoEnum {
|
||||||
|
// 名称
|
||||||
|
PROJECT_NAME = 'projectName',
|
||||||
|
// 描述
|
||||||
|
REMARKS = 'remarks',
|
||||||
|
// 缩略图
|
||||||
|
THUMBNAIL= 'thumbnail'
|
||||||
|
}
|
||||||
|
|
||||||
|
// 项目数据
|
||||||
|
export type ProjectInfoType = {
|
||||||
|
projectName: string,
|
||||||
|
remarks: string,
|
||||||
|
thumbnail: string
|
||||||
|
}
|
||||||
|
|
||||||
// 编辑画布属性
|
// 编辑画布属性
|
||||||
export enum EditCanvasTypeEnum {
|
export enum EditCanvasTypeEnum {
|
||||||
EDIT_LAYOUT_DOM = 'editLayoutDom',
|
EDIT_LAYOUT_DOM = 'editLayoutDom',
|
||||||
@ -44,8 +61,6 @@ export type EditCanvasType = {
|
|||||||
|
|
||||||
// 画布数据/滤镜/背景色/宽高主题等
|
// 画布数据/滤镜/背景色/宽高主题等
|
||||||
export enum EditCanvasConfigEnum {
|
export enum EditCanvasConfigEnum {
|
||||||
PROJECT_NAME = 'projectName',
|
|
||||||
REMARKS = 'remarks',
|
|
||||||
WIDTH = 'width',
|
WIDTH = 'width',
|
||||||
HEIGHT = 'height',
|
HEIGHT = 'height',
|
||||||
CHART_THEME_COLOR = 'chartThemeColor',
|
CHART_THEME_COLOR = 'chartThemeColor',
|
||||||
@ -57,7 +72,7 @@ export enum EditCanvasConfigEnum {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 画布属性(需保存)
|
// 画布属性(需保存)
|
||||||
export interface EditCanvasConfigType {
|
export type EditCanvasConfigType = {
|
||||||
// 项目名称
|
// 项目名称
|
||||||
[EditCanvasConfigEnum.PROJECT_NAME]: string,
|
[EditCanvasConfigEnum.PROJECT_NAME]: string,
|
||||||
// 项目描述
|
// 项目描述
|
||||||
@ -129,6 +144,7 @@ export type RecordChartType = {
|
|||||||
|
|
||||||
// Store 枚举
|
// Store 枚举
|
||||||
export enum ChartEditStoreEnum {
|
export enum ChartEditStoreEnum {
|
||||||
|
PROJECT_INFO = 'projectInfo',
|
||||||
EDIT_RANGE = 'editRange',
|
EDIT_RANGE = 'editRange',
|
||||||
EDIT_CANVAS = 'editCanvas',
|
EDIT_CANVAS = 'editCanvas',
|
||||||
RIGHT_MENU_SHOW = 'rightMenuShow',
|
RIGHT_MENU_SHOW = 'rightMenuShow',
|
||||||
@ -161,6 +177,7 @@ export type RequestConfigType = {
|
|||||||
|
|
||||||
// Store 类型
|
// Store 类型
|
||||||
export interface ChartEditStoreType {
|
export interface ChartEditStoreType {
|
||||||
|
[ChartEditStoreEnum.PROJECT_INFO]: ProjectInfoType
|
||||||
[ChartEditStoreEnum.EDIT_CANVAS]: EditCanvasType
|
[ChartEditStoreEnum.EDIT_CANVAS]: EditCanvasType
|
||||||
[ChartEditStoreEnum.EDIT_CANVAS_CONFIG]: EditCanvasConfigType
|
[ChartEditStoreEnum.EDIT_CANVAS_CONFIG]: EditCanvasConfigType
|
||||||
[ChartEditStoreEnum.RIGHT_MENU_SHOW]: boolean
|
[ChartEditStoreEnum.RIGHT_MENU_SHOW]: boolean
|
||||||
|
@ -15,6 +15,7 @@ import { HistoryActionTypeEnum, HistoryItemType, HistoryTargetTypeEnum } from '@
|
|||||||
import { MenuEnum, SyncEnum } from '@/enums/editPageEnum'
|
import { MenuEnum, SyncEnum } from '@/enums/editPageEnum'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
ProjectInfoType,
|
||||||
ChartEditStoreEnum,
|
ChartEditStoreEnum,
|
||||||
ChartEditStorage,
|
ChartEditStorage,
|
||||||
ChartEditStoreType,
|
ChartEditStoreType,
|
||||||
@ -33,6 +34,12 @@ const settingStore = useSettingStore()
|
|||||||
export const useChartEditStore = defineStore({
|
export const useChartEditStore = defineStore({
|
||||||
id: 'useChartEditStore',
|
id: 'useChartEditStore',
|
||||||
state: (): ChartEditStoreType => ({
|
state: (): ChartEditStoreType => ({
|
||||||
|
// 项目数据
|
||||||
|
projectInfo: {
|
||||||
|
projectName: '',
|
||||||
|
remarks: '',
|
||||||
|
thumbnail: ''
|
||||||
|
},
|
||||||
// 画布属性
|
// 画布属性
|
||||||
editCanvas: {
|
editCanvas: {
|
||||||
// 编辑区域 Dom
|
// 编辑区域 Dom
|
||||||
@ -72,10 +79,6 @@ export const useChartEditStore = defineStore({
|
|||||||
// -----------------------
|
// -----------------------
|
||||||
// 画布属性(需存储给后端)
|
// 画布属性(需存储给后端)
|
||||||
editCanvasConfig: {
|
editCanvasConfig: {
|
||||||
// 项目名称
|
|
||||||
projectName: '',
|
|
||||||
// 描述
|
|
||||||
remarks: '',
|
|
||||||
// 默认宽度
|
// 默认宽度
|
||||||
width: 1920,
|
width: 1920,
|
||||||
// 默认高度
|
// 默认高度
|
||||||
@ -117,6 +120,9 @@ export const useChartEditStore = defineStore({
|
|||||||
componentList: []
|
componentList: []
|
||||||
}),
|
}),
|
||||||
getters: {
|
getters: {
|
||||||
|
getProjectInfo(): ProjectInfoType {
|
||||||
|
return this.projectInfo
|
||||||
|
},
|
||||||
getMousePosition(): MousePositionType {
|
getMousePosition(): MousePositionType {
|
||||||
return this.mousePosition
|
return this.mousePosition
|
||||||
},
|
},
|
||||||
@ -151,6 +157,10 @@ export const useChartEditStore = defineStore({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
|
// * 设置 peojectInfo 数据项
|
||||||
|
setProjectInfo<T extends keyof ProjectInfoType, K extends ProjectInfoType[T]>(key: T, value: K) {
|
||||||
|
this.projectInfo[key] = value
|
||||||
|
},
|
||||||
// * 设置 editCanvas 数据项
|
// * 设置 editCanvas 数据项
|
||||||
setEditCanvas<T extends keyof EditCanvasType, K extends EditCanvasType[T]>(key: T, value: K) {
|
setEditCanvas<T extends keyof EditCanvasType, K extends EditCanvasType[T]>(key: T, value: K) {
|
||||||
this.editCanvas[key] = value
|
this.editCanvas[key] = value
|
||||||
|
@ -28,7 +28,7 @@ import { ref, nextTick, computed, watchEffect } from 'vue'
|
|||||||
import { ResultEnum } from '@/enums/httpEnum'
|
import { ResultEnum } from '@/enums/httpEnum'
|
||||||
import { fetchRouteParamsLocation, httpErrorHandle } from '@/utils'
|
import { fetchRouteParamsLocation, httpErrorHandle } from '@/utils'
|
||||||
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
|
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
|
||||||
import { EditCanvasConfigEnum } from '@/store/modules/chartEditStore/chartEditStore.d'
|
import { ProjectInfoEnum } from '@/store/modules/chartEditStore/chartEditStore.d'
|
||||||
import { updateProjectApi } from '@/api/path/project'
|
import { updateProjectApi } from '@/api/path/project'
|
||||||
import { useSync } from '../../hooks/useSync.hook'
|
import { useSync } from '../../hooks/useSync.hook'
|
||||||
import { icon } from '@/plugins'
|
import { icon } from '@/plugins'
|
||||||
@ -43,7 +43,7 @@ const inputInstRef = ref(null)
|
|||||||
const title = ref<string>(fetchRouteParamsLocation())
|
const title = ref<string>(fetchRouteParamsLocation())
|
||||||
|
|
||||||
watchEffect(() => {
|
watchEffect(() => {
|
||||||
title.value = chartEditStore.getEditCanvasConfig.projectName || ''
|
title.value = chartEditStore.getProjectInfo.projectName || ''
|
||||||
})
|
})
|
||||||
|
|
||||||
const comTitle = computed(() => {
|
const comTitle = computed(() => {
|
||||||
@ -60,13 +60,10 @@ const handleFocus = () => {
|
|||||||
|
|
||||||
const handleBlur = async () => {
|
const handleBlur = async () => {
|
||||||
focus.value = false
|
focus.value = false
|
||||||
chartEditStore.setEditCanvasConfig(EditCanvasConfigEnum.PROJECT_NAME, title.value || '')
|
chartEditStore.setProjectInfo(ProjectInfoEnum.PROJECT_NAME, title.value || '')
|
||||||
const { remarks, backgroundImage, background } = chartEditStore.getEditCanvasConfig
|
|
||||||
const res:any = await updateProjectApi({
|
const res:any = await updateProjectApi({
|
||||||
id: fetchRouteParamsLocation(),
|
id: fetchRouteParamsLocation(),
|
||||||
projectName: title.value,
|
projectName: title.value,
|
||||||
indexImage: backgroundImage || background,
|
|
||||||
remarks: remarks
|
|
||||||
})
|
})
|
||||||
if(res.code === ResultEnum.SUCCESS) {
|
if(res.code === ResultEnum.SUCCESS) {
|
||||||
dataSyncUpdate()
|
dataSyncUpdate()
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { onUnmounted } from 'vue';
|
import { onUnmounted } from 'vue';
|
||||||
import { getUUID, httpErrorHandle, fetchRouteParamsLocation } from '@/utils'
|
import { getUUID, httpErrorHandle, fetchRouteParamsLocation } from '@/utils'
|
||||||
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
|
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
|
||||||
import { EditCanvasTypeEnum, ChartEditStoreEnum, EditCanvasConfigEnum, ChartEditStorage } from '@/store/modules/chartEditStore/chartEditStore.d'
|
import { EditCanvasTypeEnum, ChartEditStoreEnum, ProjectInfoEnum, ChartEditStorage } from '@/store/modules/chartEditStore/chartEditStore.d'
|
||||||
import { useChartHistoryStore } from '@/store/modules/chartHistoryStore/chartHistoryStore'
|
import { useChartHistoryStore } from '@/store/modules/chartHistoryStore/chartHistoryStore'
|
||||||
import { fetchChartComponent, createComponent } from '@/packages/index'
|
import { fetchChartComponent, createComponent } from '@/packages/index'
|
||||||
import { CreateComponentType } from '@/packages/index.d'
|
import { CreateComponentType } from '@/packages/index.d'
|
||||||
@ -50,7 +50,6 @@ export const useSync = () => {
|
|||||||
let newComponent: CreateComponentType = await createComponent(
|
let newComponent: CreateComponentType = await createComponent(
|
||||||
comItem.chartConfig
|
comItem.chartConfig
|
||||||
)
|
)
|
||||||
// 不保存到记录
|
|
||||||
chartEditStore.addComponentList(
|
chartEditStore.addComponentList(
|
||||||
Object.assign(newComponent, {...comItem, id: getUUID()}),
|
Object.assign(newComponent, {...comItem, id: getUUID()}),
|
||||||
false,
|
false,
|
||||||
@ -70,10 +69,19 @@ export const useSync = () => {
|
|||||||
* @param projectData 项目数据
|
* @param projectData 项目数据
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
const updateStoreInfo = (projectData: ChartEditStorage) => {
|
const updateStoreInfo = (projectData: {
|
||||||
const { projectName, remarks } = projectData.editCanvasConfig
|
id: string,
|
||||||
chartEditStore.setEditCanvasConfig(EditCanvasConfigEnum.PROJECT_NAME, projectName)
|
projectName: string,
|
||||||
chartEditStore.setEditCanvasConfig(EditCanvasConfigEnum.REMARKS, remarks)
|
indexImage: string,
|
||||||
|
remarks: string,
|
||||||
|
}) => {
|
||||||
|
const { projectName, remarks, indexImage } = projectData
|
||||||
|
// 名称
|
||||||
|
chartEditStore.setProjectInfo(ProjectInfoEnum.PROJECT_NAME, projectName)
|
||||||
|
// 描述
|
||||||
|
chartEditStore.setProjectInfo(ProjectInfoEnum.REMARKS, remarks)
|
||||||
|
// 缩略图
|
||||||
|
chartEditStore.setProjectInfo(ProjectInfoEnum.THUMBNAIL, indexImage)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 数据获取
|
// 数据获取
|
||||||
@ -83,10 +91,9 @@ export const useSync = () => {
|
|||||||
const res: any = await fetchProjectApi({ projectId: fetchRouteParamsLocation() })
|
const res: any = await fetchProjectApi({ projectId: fetchRouteParamsLocation() })
|
||||||
if (res.code === ResultEnum.SUCCESS) {
|
if (res.code === ResultEnum.SUCCESS) {
|
||||||
if (res.data) {
|
if (res.data) {
|
||||||
const data = JSON.parse(res.data)
|
updateStoreInfo(res.data)
|
||||||
updateStoreInfo(data)
|
|
||||||
// 更新全局数据
|
// 更新全局数据
|
||||||
await updateComponent(data)
|
await updateComponent(JSON.parse(res.data.content))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@ -103,6 +110,7 @@ export const useSync = () => {
|
|||||||
|
|
||||||
// 数据保存
|
// 数据保存
|
||||||
const dataSyncUpdate = async () => {
|
const dataSyncUpdate = async () => {
|
||||||
|
if(!fetchRouteParamsLocation()) return
|
||||||
chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.START)
|
chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.START)
|
||||||
|
|
||||||
let params = new FormData()
|
let params = new FormData()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user