diff --git a/core/core-backend/pom.xml b/core/core-backend/pom.xml index 34caa1e919..c6fa487a40 100644 --- a/core/core-backend/pom.xml +++ b/core/core-backend/pom.xml @@ -135,6 +135,21 @@ flexmark-all ${flexmark.version} + + io.dataease + xpack-base + ${project.version} + + + io.dataease + xpack-permissions + ${project.version} + + + io.dataease + xpack-sync + ${project.version} + diff --git a/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationManage.java b/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationManage.java index bf24d1e2e1..de54e9ccd5 100644 --- a/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationManage.java +++ b/core/core-backend/src/main/java/io/dataease/visualization/manage/CoreVisualizationManage.java @@ -130,8 +130,11 @@ public class CoreVisualizationManage { DEException.throwException("resource not exist"); } visualizationInfo.setUpdateTime(System.currentTimeMillis()); + SnapshotDataVisualizationInfo snapshotVisualizationInfo = new SnapshotDataVisualizationInfo(); + BeanUtils.copyBean(snapshotVisualizationInfo, visualizationInfo); coreOptRecentManage.saveOpt(visualizationInfo.getId(), OptConstants.OPT_RESOURCE_TYPE.VISUALIZATION, OptConstants.OPT_TYPE.UPDATE); mapper.updateById(visualizationInfo); + snapshotMapper.updateById(snapshotVisualizationInfo); } } diff --git a/core/core-frontend/src/assets/svg/dv-cancel-publish.svg b/core/core-frontend/src/assets/svg/dv-cancel-publish.svg new file mode 100644 index 0000000000..2fe89236a9 --- /dev/null +++ b/core/core-frontend/src/assets/svg/dv-cancel-publish.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/core/core-frontend/src/components/handle-more/src/DvHandleMore.vue b/core/core-frontend/src/components/handle-more/src/DvHandleMore.vue index e374e65a53..36bf5733b9 100644 --- a/core/core-frontend/src/components/handle-more/src/DvHandleMore.vue +++ b/core/core-frontend/src/components/handle-more/src/DvHandleMore.vue @@ -88,7 +88,7 @@ const emit = defineEmits(['handleCommand']) :command="ele.command" v-for="ele in menus" :key="ele.label" - :disabled="ele.disabled" + :disabled="ele.disabled || (ele.command === 'cancelPublish' && node.extraFlag1 === 0)" :class="{ 'de-hidden-drop-item': ele.hidden }" > diff --git a/core/core-frontend/src/locales/en.ts b/core/core-frontend/src/locales/en.ts index 3857099b12..7ba72e38dc 100644 --- a/core/core-frontend/src/locales/en.ts +++ b/core/core-frontend/src/locales/en.ts @@ -2874,6 +2874,7 @@ export default { column_name: 'Field name' }, visualization: { + cancel_publish_tips: 'Successfully unpublished', resource_not_published: 'Resource not published', re_publish: 'Republish', published_success: 'Published successfully', diff --git a/core/core-frontend/src/locales/tw.ts b/core/core-frontend/src/locales/tw.ts index b84a7ab684..31229f4973 100644 --- a/core/core-frontend/src/locales/tw.ts +++ b/core/core-frontend/src/locales/tw.ts @@ -2795,6 +2795,7 @@ export default { column_name: '欄位名稱' }, visualization: { + cancel_publish_tips: '取消發佈成功', resource_not_published: '資源未發佈', re_publish: '重新發佈', published_success: '發佈成功', diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index 947dd20c0b..0128386138 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -2801,6 +2801,7 @@ export default { column_name: '字段名称' }, visualization: { + cancel_publish_tips: '取消发布成功', resource_not_published: '资源未发布', re_publish: '重新发布', published_success: '发布成功', diff --git a/core/core-frontend/src/views/common/DeResourceTree.vue b/core/core-frontend/src/views/common/DeResourceTree.vue index 1964ba89dc..a64889ecb7 100644 --- a/core/core-frontend/src/views/common/DeResourceTree.vue +++ b/core/core-frontend/src/views/common/DeResourceTree.vue @@ -4,6 +4,7 @@ import icon_add_outlined from '@/assets/svg/icon_add_outlined.svg' import dvCopyDark from '@/assets/svg/dv-copy-dark.svg' import dvDelete from '@/assets/svg/dv-delete.svg' import dvMove from '@/assets/svg/dv-move.svg' +import dvCancelPublish from '@/assets/svg/dv-cancel-publish.svg' import { treeDraggbleChart } from '@/utils/treeDraggbleChart' import { debounce } from 'lodash-es' import dvRename from '@/assets/svg/dv-rename.svg' @@ -23,7 +24,8 @@ import { copyResource, deleteLogic, ResourceOrFolder, - queryShareBaseApi + queryShareBaseApi, + updateBase } from '@/api/visualization/dataVisualization' import { ElIcon, ElMessage, ElMessageBox, ElScrollbar } from 'element-plus-secondary' import { Icon } from '@/components/icon-custom' @@ -170,10 +172,16 @@ const menuListWeight = id => { return pWeight < 7 ? menuList : menuListWithCopy } const menuListWithCopy = [ + { + label: t('visualization.cancel_publish'), //取消发布 + command: 'cancelPublish', + svgName: dvCancelPublish + }, { label: t('visualization.copy'), //'复制', command: 'copy', - svgName: dvCopyDark + svgName: dvCopyDark, + divided: true }, { label: t('visualization.move_to'), //'移动到', @@ -193,10 +201,16 @@ const menuListWithCopy = [ } ] const menuList = [ + { + label: t('visualization.cancel_publish'), //取消发布 + command: 'cancelPublish', + svgName: dvCancelPublish + }, { label: t('visualization.move_to'), //'移动到', command: 'move', - svgName: dvMove + svgName: dvMove, + divided: true }, { label: t('visualization.rename'), //'重命名', @@ -331,6 +345,22 @@ const operation = (cmd: string, data: BusiTreeNode, nodeType: string) => { getTree() }) }) + } else if (cmd === 'cancelPublish') { + const params = { + id: data.id, + nodeType: 'leaf', + name: data.name, + type: curCanvasType.value, + mobileLayout: data?.extraFlag, + status: 0 + } + updateBase(params).then(() => { + data['extraFlag1'] = 0 + if (dvInfo.value.id === data.id) { + dvMainStore.updateDvInfoCall(0) + } + ElMessage.warning(t('visualization.cancel_publish_tips')) + }) } else if (cmd === 'edit') { resourceEdit(data.id) } else if (cmd === 'copy') { diff --git a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/dto/BusiResourceEditor.java b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/dto/BusiResourceEditor.java index dfb738b64c..72ee5cf1dc 100644 --- a/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/dto/BusiResourceEditor.java +++ b/sdk/api/api-permissions/src/main/java/io/dataease/api/permissions/auth/dto/BusiResourceEditor.java @@ -14,4 +14,5 @@ public class BusiResourceEditor implements Serializable { private String name; private String flag; private int extraFlag; + private int extraFlag1 = 0; }