feat: 新增项目信息修改功能

This commit is contained in:
奔跑的面条
2022-05-26 01:01:59 +08:00
parent dfb63346d3
commit e674a1ece4
6 changed files with 62 additions and 26 deletions
@@ -24,32 +24,31 @@
</template>
<script setup lang="ts">
import { ref, nextTick, computed } from 'vue'
import { fetchRouteParams } from '@/utils'
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 { updateProjectApi } from '@/api/path/project'
import { useSync } from '../../hooks/useSync.hook'
import { icon } from '@/plugins'
const chartEditStore = useChartEditStore()
const { dataSyncUpdate } = useSync()
const { FishIcon } = icon.ionicons5
const focus = ref<boolean>(false)
const inputInstRef = ref(null)
// 根据路由 id 参数获取项目信息
const fetchProhectInfoById = () => {
const routeParamsRes = fetchRouteParams()
if (!routeParamsRes) return
const { id } = routeParamsRes
if (id.length) {
return id[0]
}
return ''
}
const title = ref<string>(fetchProhectInfoById() || '')
const title = ref<string>(fetchRouteParamsLocation())
watchEffect(() => {
title.value = chartEditStore.getEditCanvasConfig.projectName || ''
})
const comTitle = computed(() => {
title.value = title.value.replace(/\s/g, "");
return title.value.length ? title.value : '新项目'
title.value = title.value && title.value.replace(/\s/g, "")
return title.value.length ? title.value : fetchRouteParamsLocation()
})
const handleFocus = () => {
@@ -59,7 +58,20 @@ const handleFocus = () => {
})
}
const handleBlur = () => {
const handleBlur = async () => {
focus.value = false
chartEditStore.setEditCanvasConfig(EditCanvasConfigEnum.PROJECT_NAME, title.value || '')
const { remarks, backgroundImage, background } = chartEditStore.getEditCanvasConfig
const res:any = await updateProjectApi({
id: fetchRouteParamsLocation(),
projectName: title.value,
indexImage: backgroundImage || background,
remarks: remarks
})
if(res.code === ResultEnum.SUCCESS) {
dataSyncUpdate()
} else {
httpErrorHandle()
}
}
</script>
+19 -5
View File
@@ -1,7 +1,7 @@
import { onUnmounted } from 'vue';
import { getUUID, httpErrorHandle, fetchRouteParamsByhistory } from '@/utils'
import { getUUID, httpErrorHandle, fetchRouteParamsLocation } from '@/utils'
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
import { EditCanvasTypeEnum, ChartEditStoreEnum } from '@/store/modules/chartEditStore/chartEditStore.d'
import { EditCanvasTypeEnum, ChartEditStoreEnum, EditCanvasConfigEnum, 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'
@@ -24,7 +24,7 @@ export const useSync = () => {
* @param isSplace 是否替换数据
* @returns
*/
const updateComponent = async (projectData: any, isSplace = false) => {
const updateComponent = async (projectData: ChartEditStorage, isSplace = false) => {
if (isSplace) {
// 清除列表
chartEditStore.componentList = []
@@ -65,14 +65,27 @@ 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 dataSyncFetch = async () => {
chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.START)
try {
const res: any = await fetchProjectApi({ projectId: fetchRouteParamsByhistory() })
const res: any = await fetchProjectApi({ projectId: fetchRouteParamsLocation() })
if (res.code === ResultEnum.SUCCESS) {
if (res.data) {
const data = JSON.parse(res.data)
updateStoreInfo(data)
// 更新全局数据
await updateComponent(data)
return
}
@@ -93,7 +106,7 @@ export const useSync = () => {
chartEditStore.setEditCanvas(EditCanvasTypeEnum.SAVE_STATUS, SyncEnum.START)
let params = new FormData()
params.append('projectId', fetchRouteParamsByhistory())
params.append('projectId', fetchRouteParamsLocation())
params.append('content', JSON.stringify(chartEditStore.getStorageInfo || {}))
const res: any = await saveProjectApi(params)
@@ -123,6 +136,7 @@ export const useSync = () => {
return {
updateComponent,
updateStoreInfo,
dataSyncFetch,
dataSyncUpdate,
intervalDataSyncUpdate