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