New file |
| | |
| | | <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="工艺信息">Config</el-tab-pane> |
| | | <el-tab-pane label="物料清单" name="物料清单">Role</el-tab-pane> |
| | | </el-tabs> |
| | | </template> |
| | | <template #middleBlock3> 任务详情 </template> |
| | | <template #middleBlock4 |
| | | >人员信息 |
| | | <PersonInfo :person="person"></PersonInfo> |
| | | </template> |
| | | <template #rightBlock1> |
| | | <div class="date-time"> |
| | | <CurrentDateTime></CurrentDateTime> |
| | | </div> |
| | | </template> |
| | | <template #rightBlock2>状态面板</template> |
| | | <template #rightBlock3>知识库</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 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' |
| | | |
| | | defineOptions({ |
| | | name: 'DashboardView' |
| | | }) |
| | | |
| | | const person = computed(() => { |
| | | return { |
| | | workerName: '姓名', |
| | | phone: '111' |
| | | } as unknown as Worker |
| | | }) |
| | | 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> |