From 62feac7e932a1faf6c05d7ac8df4c25a113eeb88 Mon Sep 17 00:00:00 2001 From: songshankun <songshankun@foxmail.com> Date: 星期二, 31 十月 2023 20:21:08 +0800 Subject: [PATCH] feat: 添加任务信息组件 --- src/views/dashboard/index.vue | 131 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 131 insertions(+), 0 deletions(-) diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue new file mode 100644 index 0000000..e086940 --- /dev/null +++ b/src/views/dashboard/index.vue @@ -0,0 +1,131 @@ +<template> + <DashboardLayout> + <template #leftBlock1> + <TaskTabs v-model="activeTaskTab" style="margin-top: 20px" :list="taskTabsList" @change="changeTab"></TaskTabs> + </template> + <template #leftBlock2> + <ChannelCollapse :channels="channels"></ChannelCollapse> + </template> + <template #middleBlock1>鏍囬</template> + <template #middleBlock2> + <el-tabs v-model="activeMainTabName" class="main-info-tabs"> + <el-tab-pane label="鍔犲伐淇℃伅" name="鍔犲伐淇℃伅"> + <ProcessingInfo style="margin-top: 6px" :task="activeTask"></ProcessingInfo> + </el-tab-pane> + <el-tab-pane label="宸ヨ壓淇℃伅" name="宸ヨ壓淇℃伅"> + <ProcessInfo :process="process"></ProcessInfo> + </el-tab-pane> + <el-tab-pane label="鐗╂枡娓呭崟" name="鐗╂枡娓呭崟">Role</el-tab-pane> + </el-tabs> + </template> + <template #middleBlock3> + <SubTitle>浠诲姟璇︽儏</SubTitle> + <div class="task-detail"> + <TaskControl :task="activeTask"></TaskControl> + </div> + </template> + <template #middleBlock4> + <SubTitle>浜哄憳淇℃伅</SubTitle> + <PersonInfo :person="person"></PersonInfo> + </template> + <template #rightBlock1> + <div class="date-time"> + <CurrentDateTime></CurrentDateTime> + </div> + </template> + <template #rightBlock2>鐘舵�侀潰鏉�</template> + <template #rightBlock3> + <SubTitle>鐭ヨ瘑搴�</SubTitle> + </template> + </DashboardLayout> +</template> +<script setup lang="ts"> +import { computed, ref } from 'vue' +import ChannelCollapse from '@/views/dashboard/components/ChannelCollapse.vue' +import type { Worker } from '@/api/task' +import PersonInfo from '@/views/dashboard/components/PersonInfo.vue' +import ProcessInfo from '@/views/dashboard/components/ProcessInfo.vue' +import type { LabelValue } from '@/views/dashboard/components/TaskTabs.vue' +import TaskTabs from '@/views/dashboard/components/TaskTabs.vue' +import CurrentDateTime from '@/views/dashboard/components/CurrentDateTime.vue' +import { useTasksStore } from '@/stores/tasks' +import { storeToRefs } from 'pinia' +import ProcessingInfo from '@/views/dashboard/components/ProcessingInfo.vue' +import TaskControl from '@/views/dashboard/components/TaskControl.vue' +import SubTitle from '@/views/dashboard/components/SubTitle.vue' + +defineOptions({ + name: 'DashboardView' +}) + +const person = computed(() => { + return { + workerName: '濮撳悕', + phone: '111' + } as unknown as Worker +}) +const process = computed(() => { + return { name: '宸ヨ壓鍚嶇О', number: '111' } +}) +const taskTabsList = [ + { + label: '鏈畬鎴�', + value: 1 + }, + { + label: '浠婃棩浠诲姟', + value: 2 + }, + { + label: '宸插畬鎴�', + value: 3 + } +] +const activeTaskTab = ref(1) +const activeMainTabName = ref<string>('鍔犲伐淇℃伅') + +const tasksStore = useTasksStore() +const { activeTask, channels } = storeToRefs(tasksStore) +tasksStore.getChannels(1) + +function changeTab(tab: LabelValue) { + tasksStore.getChannels(tab.value) +} +</script> + +<style scoped lang="scss"> +$active-tab-color: #00dfdf; +.date-time { + width: 100%; + display: flex; + align-items: center; + justify-content: center; + padding-top: 12px; +} + +:deep(.el-tabs__item) { + color: #fff; + font-size: 20px; +} +:deep(.el-tabs__nav-scroll) { + height: 46px; +} +:deep(.el-tabs__nav) { + height: 46px; +} +:deep(.el-step__title.is-process) { + color: #fff; +} + +:deep(.el-tabs__item.is-active) { + color: $active-tab-color; + font-weight: 600; +} +:deep(.el-tabs__active-bar) { + background-color: $active-tab-color; + height: 4px; +} +:deep(.el-tabs__nav-wrap::after) { + height: 1px; +} +</style> -- Gitblit v1.8.0