| | |
| | | <ChannelCollapse :channels="channels"></ChannelCollapse> |
| | | </template> |
| | | <template #middleBlock1> |
| | | <DashboardTitle></DashboardTitle> |
| | | <DashboardTitle @should-reload="reloadAllData"></DashboardTitle> |
| | | </template> |
| | | <template #middleBlock2> |
| | | <el-tabs v-model="activeMainTabName" class="main-info-tabs"> |
| | |
| | | <ProcessingInfo style="margin-top: 6px" :task="activeTask"></ProcessingInfo> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="工艺信息" name="工艺信息"> |
| | | <el-scrollbar always> |
| | | <ProcessInfo |
| | | v-for="item in craftModelStore.craftModelList" |
| | | :key="item.ID" |
| | | :craft-model="item" |
| | | :task="activeTask" |
| | | :active-arr="activeArr" |
| | | @detail="openCraftModelDetailModal" |
| | | @update="updateCraft" |
| | | ></ProcessInfo> |
| | | </el-scrollbar> |
| | | <div style="height: 300px"> |
| | | <el-scrollbar always style="height: 100%"> |
| | | <div |
| | | v-infinite-scroll="craftModelStore.loadMore" |
| | | infinite-scroll-delay="500" |
| | | infinite-scroll-distance="40" |
| | | style="display: flex; align-items: center; flex-wrap: wrap" |
| | | > |
| | | <ProcessInfo |
| | | v-for="item in craftModelStore.craftModelList" |
| | | :key="item.ID" |
| | | :task="activeTask" |
| | | :active-arr="activeArr" |
| | | :craft-model="item" |
| | | @detail="openCraftModelDetailModal" |
| | | @update="updateCraft" |
| | | ></ProcessInfo> |
| | | </div> |
| | | <div class="craft-loaded-tip"> |
| | | <el-icon v-if="craftModelStore.loading" class="is-loading" size="30"> |
| | | <Loading /> |
| | | </el-icon> |
| | | |
| | | <div v-if="!craftModelStore.hasMore">加载完成</div> |
| | | </div> |
| | | </el-scrollbar> |
| | | </div> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="物料清单" name="物料清单"> |
| | | <InputMaterialsList |
| | |
| | | <template #middleBlock3> |
| | | <SubTitle>任务详情</SubTitle> |
| | | <div class="task-detail"> |
| | | <TaskControl :task="activeTask" @should-reload="reloadAllData"></TaskControl> |
| | | <TaskControl :task="activeTask" @should-reload="reloadChannel"></TaskControl> |
| | | </div> |
| | | <ColorInfo :type="1"></ColorInfo> |
| | | <ColorInfo :type="2"></ColorInfo> |
| | |
| | | <MaterialDetails v-model="showMaterialDetail" :material="currentMaterialInfo"></MaterialDetails> |
| | | </template> |
| | | <script setup lang="ts"> |
| | | import { computed, ref, watch } from 'vue' |
| | | import { computed, ref } from 'vue' |
| | | import ChannelCollapse from '@/views/dashboard/components/ChannelCollapse.vue' |
| | | |
| | | import type { Worker, Order, Task, Material } from '@/api/task' |
| | | import type { CraftModel } from '@/api/craftModel' |
| | | import PersonInfo from '@/views/dashboard/components/PersonInfo.vue' |
| | |
| | | import { useCraftModelStore } from '@/stores/craftModel' |
| | | import CraftDetailModal from '@/views/dashboard/components/CraftDetailModal.vue' |
| | | import MaterialDetails from '@/views/dashboard/components/MaterialDetails.vue' |
| | | |
| | | import { updateCraftParams } from '@/api' |
| | | import { Loading } from '@element-plus/icons-vue' |
| | | |
| | | defineOptions({ |
| | | name: 'DashboardView' |
| | |
| | | const taskStore = useTasksStore() |
| | | const workers = computed(() => { |
| | | return taskStore.activeTask?.Procedure?.procedure?.workers ?? [] |
| | | }) |
| | | |
| | | const order = computed(() => { |
| | | return { |
| | | finishNumber: 0, |
| | | unit: '个', |
| | | amount: '10' |
| | | } as unknown as Order |
| | | }) |
| | | |
| | | const taskTabsList = [ |
| | |
| | | * 完成任务或者下发参数成功后要刷新通道数据 |
| | | * @param task |
| | | */ |
| | | function reloadAllData(task: Task) { |
| | | tasksStore.reload(task.Channel) |
| | | function reloadChannel(task: Task) { |
| | | tasksStore.reloadChannel(task.Channel) |
| | | } |
| | | |
| | | function reloadAllData() { |
| | | tasksStore.reloadAllData() |
| | | } |
| | | // 启动plc 轮询 |
| | | const plcStore = usePLCStore() |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | padding-top: 12px; |
| | | padding-top: 22px; |
| | | } |
| | | :deep(.el-tabs) { |
| | | height: 100%; |
| | |
| | | width: 100%; |
| | | font-size: 20px; |
| | | } |
| | | .craft-loaded-tip { |
| | | height: 40px; |
| | | text-align: center; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | </style> |