feat: 添加任务列表框架

This commit is contained in:
Junyan Qin 2024-10-24 18:28:57 +08:00
parent d5e3120350
commit 2f05f5b456
No known key found for this signature in database
GPG Key ID: 22FE3AFADC710CEB
2 changed files with 89 additions and 1 deletions

View File

@ -34,6 +34,23 @@
<template v-slot:append>
<div>
<v-list density="compact" nav>
<!-- <v-list-item id="system-tasks-list-item" title="系统任务" prepend-icon="mdi-align-horizontal-left" v-tooltip="系统任务" @click="showTaskDialog" v-bind="props">
<v-dialog activator="parent" max-width="500" persistent v-model="taskDialogShow">
<template v-slot:default="{ isActive }">
</template>
</v-dialog>
</v-list-item> -->
<v-dialog max-width="500" persistent v-model="taskDialogShow">
<template v-slot:activator="{ props: activatorProps }">
<v-list-item id="system-tasks-list-item" title="系统任务" prepend-icon="mdi-align-horizontal-left" v-tooltip="任务列表" v-bind="activatorProps">
</v-list-item>
</template>
<template v-slot:default="{ isActive }">
<TaskDialog :dialog="{ show: isActive }" @close="closeTaskDialog" />
</template>
</v-dialog>
<v-list-item id="about-list-item" title="系统信息" prepend-icon="mdi-cog-outline" v-tooltip="系统信息">
</v-list-item>
</v-list>
@ -52,6 +69,8 @@
import { getCurrentInstance } from 'vue'
import {provide, ref, watch} from 'vue';
import TaskDialog from '@/components/TaskDialog.vue'
const { proxy } = getCurrentInstance()
const snackbar = ref(false);
@ -84,6 +103,15 @@ function info(content) {
text.value = content;
}
const taskDialogShow = ref(false)
function showTaskDialog() {
taskDialogShow.value = true
}
function closeTaskDialog() {
taskDialogShow.value = false
}
provide('snackbar', {success, error, warning, info, location, timeout});
</script>
@ -141,4 +169,13 @@ provide('snackbar', {success, error, warning, info, location, timeout});
#about-list-item:active {
background-color: #ddd;
}
</style>
#system-tasks-list-item:hover {
cursor: pointer;
background-color: #eee;
}
#system-tasks-list-item:active {
background-color: #ddd;
}
</style>

View File

@ -0,0 +1,51 @@
<template>
<v-card prepend-icon="mdi-align-horizontal-left" text="用户发起的任务列表" title="任务列表">
<v-list id="plugin-orchestration-list">
<draggable v-model="plugins" item-key="name" group="plugins" @start="drag = true"
id="plugin-orchestration-draggable"
@end="drag = false">
<template #item="{ element }">
<div class="plugin-orchestration-item">
<div class="plugin-orchestration-item-title">
<div class="plugin-orchestration-item-author">
{{ element.author }} /
</div>
<div class="plugin-orchestration-item-name">
{{ element.name }}
</div>
</div>
<div class="plugin-orchestration-item-action">
<v-icon>mdi-drag</v-icon>
</div>
</div>
</template>
</draggable>
</v-list>
<template v-slot:actions>
<v-btn class="ml-auto" text="关闭" prepend-icon="mdi-close" @click="close"></v-btn>
</template>
</v-card>
</template>
<script setup>
defineProps({
})
const emit = defineEmits(['close'])
import { ref } from 'vue'
import { inject } from 'vue'
const snackbar = inject('snackbar')
const close = () => {
emit('close')
}
</script>
<style scoped>
</style>