Merge pull request #11072 from dataease/pr@dev-v2@refactor_app-import

refactor(仪表板): app导入优化
This commit is contained in:
王嘉豪 2024-07-22 14:37:03 +08:00 committed by GitHub
commit 2262b06ed6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 48 additions and 29 deletions

View File

@ -305,12 +305,14 @@ public class DataVisualizationServer implements DataVisualizationApi {
//表名映射更新
Map<String,String> appDsTableNamesMap = dsTableNamesMap.get(key);
Map<String,String> systemDsTableNamesMap = dsTableNamesMap.get(value);
if(!CollectionUtils.isEmpty(appDsTableNamesMap) && !CollectionUtils.isEmpty(systemDsTableNamesMap) ){
appDsTableNamesMap.forEach((keyName,valueName) ->{
if(StringUtils.isNotEmpty(systemDsTableNamesMap.get(keyName))){
dsGroup.setInfo(dsGroup.getInfo().replaceAll(valueName,systemDsTableNamesMap.get(keyName)));
}
});
}
appDsTableNamesMap.forEach((keyName,valueName) ->{
if(StringUtils.isNotEmpty(systemDsTableNamesMap.get(keyName))){
dsGroup.setInfo(dsGroup.getInfo().replaceAll(valueName,systemDsTableNamesMap.get(keyName)));
}
});
});

View File

@ -46,11 +46,13 @@ export const findDvType = async dvId =>
export const save = data => request.post({ url: '/dataVisualization/save', data })
export const saveCanvas = data => request.post({ url: '/dataVisualization/saveCanvas', data })
export const saveCanvas = data =>
request.post({ url: '/dataVisualization/saveCanvas', data, loading: true })
export const updateBase = data => request.post({ url: '/dataVisualization/updateBase', data })
export const updateCanvas = data => request.post({ url: '/dataVisualization/updateCanvas', data })
export const updateCanvas = data =>
request.post({ url: '/dataVisualization/updateCanvas', data, loading: true })
export const moveResource = data => request.post({ url: '/dataVisualization/move', data })

View File

@ -179,25 +179,27 @@ const saveCanvasWithCheck = () => {
const saveResource = () => {
wsCache.delete('DE-DV-CATCH-' + dvInfo.value.id)
if (styleChangeTimes.value > 0) {
snapshotStore.resetStyleChangeTimes()
dvMainStore.matrixSizeAdaptor()
queryList.value.forEach(ele => {
useEmitt().emitter.emit(`updateQueryCriteria${ele.id}`)
})
canvasSave(() => {
snapshotStore.resetStyleChangeTimes()
ElMessage.success('保存成功')
window.history.pushState({}, '', `#/dashboard?resourceId=${dvInfo.value.id}`)
if (appData.value) {
initCanvasData(dvInfo.value.id, 'dashboard', () => {
useEmitt().emitter.emit('refresh-dataset-selector')
resourceAppOpt.value.close()
dvMainStore.setAppDataInfo(null)
snapshotStore.resetSnapshot()
})
}
})
try {
canvasSave(() => {
snapshotStore.resetStyleChangeTimes()
ElMessage.success('保存成功')
window.history.pushState({}, '', `#/dashboard?resourceId=${dvInfo.value.id}`)
if (appData.value) {
initCanvasData(dvInfo.value.id, 'dashboard', () => {
useEmitt().emitter.emit('refresh-dataset-selector')
resourceAppOpt.value.close()
dvMainStore.setAppDataInfo(null)
snapshotStore.resetSnapshot()
})
}
})
} catch (e) {
console.error(e)
}
}
}
@ -663,7 +665,7 @@ const initOpenHandler = newWindow => {
:dv-info="dvInfo"
:canvas-view-info="canvasViewInfo"
cur-canvas-type="dashboard"
@saveApp="saveCanvasWithCheck"
@saveAppCanvas="saveCanvasWithCheck"
></de-app-apply>
</template>

View File

@ -383,7 +383,7 @@ const fullScreenPreview = () => {
:dv-info="dvInfo"
:canvas-view-info="canvasViewInfo"
cur-canvas-type="dataV"
@saveApp="saveCanvasWithCheck"
@saveAppCanvas="saveCanvasWithCheck"
></de-app-apply>
</div>
<de-fullscreen ref="fullScreeRef" show-position="dvEdit"></de-fullscreen>

View File

@ -2,11 +2,11 @@
<el-drawer
:title="'保存应用'"
v-model="state.appApplyDrawer"
custom-class="de-user-drawer"
custom-class="de-app-drawer"
size="500px"
direction="rtl"
>
<div class="app-export">
<div class="app-export" v-loading="requestStore.loadingMap[permissionStore.currentPath]">
<el-form
ref="appSaveForm"
:model="state.form"
@ -143,12 +143,18 @@ import DatasetSelect from '@/views/chart/components/editor/dataset-select/Datase
import { dvMainStoreWithOut } from '@/store/modules/data-visualization/dvMain'
import { storeToRefs } from 'pinia'
import { deepCopy } from '@/utils/utils'
import eventBus from '@/utils/eventBus'
import { snapshotStoreWithOut } from '@/store/modules/data-visualization/snapshot'
import { useRequestStoreWithOut } from '@/store/modules/request'
import { usePermissionStoreWithOut } from '@/store/modules/permission'
const { t } = useI18n()
const emits = defineEmits(['closeDraw', 'saveApp'])
const appSaveForm = ref(null)
const dvMainStore = dvMainStoreWithOut()
const { dvInfo, appData } = storeToRefs(dvMainStore)
const snapshotStore = snapshotStoreWithOut()
const requestStore = useRequestStoreWithOut()
const permissionStore = usePermissionStoreWithOut()
const props = defineProps({
componentData: {
type: Object,
@ -309,7 +315,8 @@ const saveApp = () => {
dvInfo.value['datasetFolderPid'] = state.form.datasetFolderPid
dvInfo.value['datasetFolderName'] = state.form.datasetFolderName
dvInfo.value['dataState'] = 'ready'
emits('saveApp')
eventBus.emit('save')
snapshotStore.recordSnapshotCache('renderChart')
} else {
return false
}
@ -393,3 +400,9 @@ defineExpose({
justify-content: center;
}
</style>
<style lang="less">
.de-app-drawer {
z-index: 1000;
}
</style>

View File

@ -238,13 +238,13 @@ onUnmounted(() => {
<div
class="dv-common-layout dv-teleport-query"
:class="isDataEaseBi && !newWindowFromDiv && 'dataease-w-h'"
v-loading="requestStore.loadingMap[permissionStore.currentPath]"
v-if="loadFinish && !mobileConfig"
>
<DbToolbar />
<el-container
class="dv-layout-container"
:class="{ 'preview-content': editMode === 'preview' }"
v-loading="requestStore.loadingMap[permissionStore.currentPath]"
element-loading-background="rgba(0, 0, 0, 0)"
>
<!-- 中间画布 -->