|
@@ -1,6 +1,6 @@
|
|
|
<script setup lang="ts">
|
|
|
import { ref, computed, onUnmounted, watch, nextTick } from 'vue'
|
|
|
-import { Delete, Edit } from '@element-plus/icons-vue'
|
|
|
+import { Delete, Edit, Top, Bottom } from '@element-plus/icons-vue'
|
|
|
import Markdown from '/@/components/markdown/Markdown.vue'
|
|
|
import type { MarkdownDashBoard, Position, Size, Content, ResizeType } from './types'
|
|
|
import { MarkdownPlugin } from '/@/components/markdown/type/markdown'
|
|
@@ -23,6 +23,10 @@ const emit = defineEmits<{
|
|
|
(e: 'updateContent', id: string, content: Content): void
|
|
|
// eslint-disable-next-line no-unused-vars
|
|
|
(e: 'remove', id: string): void
|
|
|
+ // eslint-disable-next-line no-unused-vars
|
|
|
+ (e: 'moveUp', id: string): void
|
|
|
+ // eslint-disable-next-line no-unused-vars
|
|
|
+ (e: 'moveDown', id: string): void
|
|
|
}>()
|
|
|
|
|
|
const cardRef = ref<HTMLElement>()
|
|
@@ -221,6 +225,18 @@ const handleContextEdit = () => {
|
|
|
showContextMenu.value = false
|
|
|
}
|
|
|
|
|
|
+// 处理上移一层
|
|
|
+const handleMoveUp = () => {
|
|
|
+ emit('moveUp', props.card.id)
|
|
|
+ showContextMenu.value = false
|
|
|
+}
|
|
|
+
|
|
|
+// 处理下移一层
|
|
|
+const handleMoveDown = () => {
|
|
|
+ emit('moveDown', props.card.id)
|
|
|
+ showContextMenu.value = false
|
|
|
+}
|
|
|
+
|
|
|
// 清理事件监听器
|
|
|
onUnmounted(() => {
|
|
|
document.removeEventListener('mousemove', handleDrag)
|
|
@@ -303,6 +319,16 @@ watch(()=> props.card.h, () => {
|
|
|
<el-icon><Edit /></el-icon>
|
|
|
<span>编辑</span>
|
|
|
</div>
|
|
|
+ <div class="context-menu-divider"></div>
|
|
|
+ <div class="context-menu-item" @click="handleMoveUp">
|
|
|
+ <el-icon><Top /></el-icon>
|
|
|
+ <span>上移一层</span>
|
|
|
+ </div>
|
|
|
+ <div class="context-menu-item" @click="handleMoveDown">
|
|
|
+ <el-icon><Bottom /></el-icon>
|
|
|
+ <span>下移一层</span>
|
|
|
+ </div>
|
|
|
+ <div class="context-menu-divider"></div>
|
|
|
<div class="context-menu-item context-menu-item-danger" @click="handleRemove">
|
|
|
<el-icon><Delete /></el-icon>
|
|
|
<span>删除</span>
|
|
@@ -675,4 +701,10 @@ watch(()=> props.card.h, () => {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+.context-menu-divider {
|
|
|
+ height: 1px;
|
|
|
+ background: var(--el-border-color-lighter);
|
|
|
+ margin: 4px 0;
|
|
|
+}
|
|
|
</style>
|