From 94ec27862c30d1755fdb8431affe33b2b91e0116 Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Wed, 8 Nov 2023 14:02:19 +0800 Subject: [PATCH 1/5] =?UTF-8?q?fix:=20=E6=B7=BB=E5=8A=A0=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E5=90=8E=E8=83=BD=E5=90=A6=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E5=85=B3=E9=97=AD=E6=95=B0=E6=8D=AE=E9=9B=86=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E9=A1=B5=E9=9D=A2=E6=88=96=E8=80=85=E7=BB=99=E4=B8=AA?= =?UTF-8?q?=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/dataset/form/CreatDsGroup.vue | 2 ++ .../visualized/data/dataset/form/index.vue | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/core/core-frontend/src/views/visualized/data/dataset/form/CreatDsGroup.vue b/core/core-frontend/src/views/visualized/data/dataset/form/CreatDsGroup.vue index 85ec90c558..f47da32311 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/form/CreatDsGroup.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/form/CreatDsGroup.vue @@ -2,6 +2,7 @@ import { ref, reactive, computed, watch, nextTick } from 'vue' import { ElMessage } from 'element-plus-secondary' import { useI18n } from '@/hooks/web/useI18n' +import { useEmitt } from '@/hooks/web/useEmitt' import { getDatasetTree, moveDatasetTree, @@ -270,6 +271,7 @@ const saveDataset = () => { ElMessage.success('重命名成功') break default: + useEmitt().emitter.emit('onDatasetSave') ElMessage.success(t('common.save_success')) break } diff --git a/core/core-frontend/src/views/visualized/data/dataset/form/index.vue b/core/core-frontend/src/views/visualized/data/dataset/form/index.vue index 10febd87ea..1ed96e772d 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/form/index.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/form/index.vue @@ -11,6 +11,7 @@ import { onBeforeUnmount } from 'vue' import { useI18n } from '@/hooks/web/useI18n' +import { useEmitt } from '@/hooks/web/useEmitt' import { ElIcon, ElMessageBox, ElMessage } from 'element-plus-secondary' import type { Action } from 'element-plus-secondary' import FieldMore from './FieldMore.vue' @@ -316,6 +317,9 @@ const editeSave = () => { }) .then(() => { ElMessage.success('保存成功') + if (willBack) { + pushDataset() + } }) .finally(() => { loading.value = false @@ -822,8 +826,17 @@ const handleResize = debounce(() => { } dragHeight.value = clientHeight - sqlResultHeight.value - 56 }, 60) +let willBack = false +const saveAndBack = () => { + if (!willBack) return + pushDataset() +} onMounted(() => { + useEmitt({ + name: 'onDatasetSave', + callback: saveAndBack + }) window.addEventListener('resize', handleResize) getSqlResultHeight() quotaTableHeight.value = sqlResultHeight.value - 242 @@ -868,6 +881,10 @@ const datasetSave = () => { datasetName.value ) } +const datasetSaveAndBack = () => { + willBack = true + datasetSave() +} const datasetPreviewLoading = ref(false) @@ -1118,6 +1135,9 @@ const getDsIconName = data => { + 保存并返回 保存 From 60966fb6e3f5ce9b53a212075c09bc90f3b7fceb Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Wed, 8 Nov 2023 14:50:22 +0800 Subject: [PATCH 2/5] =?UTF-8?q?fix:=20=E6=94=AF=E6=8C=81=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=9B=86=E7=9A=84=E5=A4=8D=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../visualized/data/dataset/form/index.vue | 16 +++++++------ .../views/visualized/data/dataset/index.vue | 23 ++++++++++++++++++- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/core/core-frontend/src/views/visualized/data/dataset/form/index.vue b/core/core-frontend/src/views/visualized/data/dataset/form/index.vue index 1ed96e772d..0f39f2fa33 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/form/index.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/form/index.vue @@ -71,7 +71,6 @@ const editUnion = ref(false) const datasetDrag = ref() const datasetName = ref('未命名数据集') const tabActive = ref('preview') -const originName = ref('') const activeName = ref('') const dataSource = ref('') const searchTable = ref('') @@ -567,23 +566,26 @@ const getTableName = async (datasourceId, tableName) => { const initEdite = () => { const { id, datasourceId, tableName } = route.query + const { id: copyId } = route.params if (datasourceId) { dataSource.value = datasourceId as string getTableName(datasourceId as string, tableName) } - if (!id) return + if (!id && !copyId) return loading.value = true - getDatasetDetails(id) + getDatasetDetails(copyId || id) .then(res => { let arr = [] const { id, pid, name } = res || {} nodeInfo = { id, pid, - name + name: copyId ? '复制数据集' : name } - datasetName.value = name - originName.value = name + if (copyId) { + nodeInfo.id = '' + } + datasetName.value = nodeInfo.name allfields.value = res.allFields || [] dfsUnion(arr, res.union || []) const [fir] = res.union as { currentDs: { datasourceId: string } }[] @@ -868,7 +870,7 @@ const datasetSave = () => { } const union = [] dfsNodeList(union, datasetDrag.value.nodeList) - const { pid } = route.query + const pid = route.query.pid || nodeInfo.pid if (!union.length) { ElMessage.error('数据集不能为空') return diff --git a/core/core-frontend/src/views/visualized/data/dataset/index.vue b/core/core-frontend/src/views/visualized/data/dataset/index.vue index 68e58dd4c4..2448dc9845 100644 --- a/core/core-frontend/src/views/visualized/data/dataset/index.vue +++ b/core/core-frontend/src/views/visualized/data/dataset/index.vue @@ -320,6 +320,15 @@ const handleClick = (tabName: TabPaneName) => { } const operation = (cmd: string, data: BusiTreeNode, nodeType: string) => { + if (cmd === 'copy') { + router.push({ + name: 'dataset-form', + params: { + id: data.id + } + }) + return + } if (cmd === 'delete') { let options = { confirmButtonType: 'danger', @@ -417,6 +426,18 @@ const filterNode = (value: string, data: BusiTreeNode) => { if (!value) return true return data.name?.toLocaleLowerCase().includes(value.toLocaleLowerCase()) } + +const getMenuList = (val: boolean) => { + return !val + ? menuList + : [ + { + label: t('common.copy'), + svgName: 'icon_copy_filled', + command: 'copy' + } + ].concat(menuList) +}