From cb48add95a233bb950dc3e7bc3cf02cc1cccd934 Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期一, 06 十一月 2023 17:56:35 +0800 Subject: [PATCH] Merge branch 'dev' of http://192.168.5.5:10010/r/web/bulletin-board-style1 into wn --- /dev/null | 115 ---------------------------- src/views/dashboard/components/ProcessInfo.vue | 3 src/views/dashboard/components/ProcessingInfo.vue | 22 ++--- src/views/dashboard/index.vue | 72 +++++++++++------ 4 files changed, 56 insertions(+), 156 deletions(-) diff --git a/src/views/dashboard/components/CraftInfo.vue b/src/views/dashboard/components/CraftInfo.vue deleted file mode 100644 index 3ebac61..0000000 --- a/src/views/dashboard/components/CraftInfo.vue +++ /dev/null @@ -1,115 +0,0 @@ -<template> - <div class="craft-info"> - <div class="item-l-bng"> - <img src="~@/assets/images/process-model.png" /> - </div> - <div class="item-r"> - <div class="item-r-t font_weight">{{ process.number }}</div> - <div class="item-r-b">{{ process.name }}</div> - <div class="item-r-b">{{ process.name }}</div> - </div> - <div class="tip-r"> - <img src="~@/assets/images/process-tip.png" alt="" /> - </div> - <div class="tip-current">褰撳墠浣跨敤</div> - <div class="btn"> - <el-button type="primary" class="color_organge"> 鏇存柊宸ヨ壓</el-button> - </div> - </div> -</template> -<script setup lang="ts"> -// 宸ヨ壓淇℃伅 -import { toRefs } from 'vue' - -export interface ProcessInfoProps { - process: process -} - -const props = defineProps<ProcessInfoProps>() -const { process } = toRefs(props) -</script> - -<style scoped lang="scss"> -$status-running: #f76c0f; -$status-done: #2c5dbb82; -.font_weight { - font-weight: 600; -} -.craft-info { - width: calc(50% - 35px); - height: 110px; - padding: 23px 10px 10px; - background: $status-done; - border-radius: 8px; - float: left; - overflow: hidden; - font-size: 15px; - position: relative; - margin-bottom: 30px; - - &:nth-of-type(odd) { - margin-right: 30px; - } - - .item-l-bng { - width: 40px; - float: left; - margin-right: 20px; - - img { - width: 100%; - } - } - - .item-r { - width: calc(100% - 60px); - float: left; - line-height: 25px; - color: #fff; - font-size: 16px; - cursor: pointer; - - .item-r-t { - font-size: 16px; - } - - .item-r-b { - font-size: 14px; - } - } - - .tip-r { - position: absolute; - top: 5px; - right: 15px; - width: 20px; - - img { - width: 100%; - } - } - - .tip-current { - background: green; - color: #fff; - position: absolute; - top: 0px; - left: 70px; - width: auto; - padding: 2px 15px; - font-size: 12px; - border-radius: 0px 0px 6px 6px; - } - - .btn { - width: 100px; - position: absolute; - right: 0px; - bottom: 10px; - .el-button--primary { - background: $status-running; - border: 0 !important; - } - } -} -</style> diff --git a/src/views/dashboard/components/ProcessInfo.vue b/src/views/dashboard/components/ProcessInfo.vue index c14bb31..859f890 100644 --- a/src/views/dashboard/components/ProcessInfo.vue +++ b/src/views/dashboard/components/ProcessInfo.vue @@ -13,7 +13,6 @@ </div> <div v-if="craftModel.number == task?.Procedure?.processModelNumber" class="tip-current">褰撳墠浣跨敤</div> <div class="btn"> - <!-- --> <el-button type="primary" :disabled="craftModel.isUpdate ? false : true" @click="onUpdateClick"> <el-icon v-if="loading" color="#fff" :size="16" class="refresh-top-icon"> <Loading /> @@ -79,7 +78,7 @@ padding: 23px 10px 10px; background: $status-done; border-radius: 8px; - float: left; + //float: left; overflow: hidden; font-size: 15px; position: relative; diff --git a/src/views/dashboard/components/ProcessingInfo.vue b/src/views/dashboard/components/ProcessingInfo.vue index f29a18e..fe317d6 100644 --- a/src/views/dashboard/components/ProcessingInfo.vue +++ b/src/views/dashboard/components/ProcessingInfo.vue @@ -1,14 +1,7 @@ <template> <div class="processing-info"> <div class="step"> - <el-steps - v-if="task?.AllProcedures" - :active="task.CurrentProcedureIndex ?? 0" - finish-status="success" - class="steps" - > - <el-step v-for="(item, index) in task.AllProcedures" :key="index" icon="" :title="item"></el-step> - </el-steps> + <TaskStep :active="task?.CurrentProcedureIndex ?? 0" :steps="task?.AllProcedures ?? []"></TaskStep> </div> <div class="details"> <div class="row"> @@ -55,14 +48,12 @@ <script setup lang="ts"> // 鍔犲伐淇℃伅缁勪欢 import type { Task } from '@/api/task' -import { computed, onUnmounted, toRefs, watch } from 'vue' +import { computed, toRefs } from 'vue' import { useDateFormat } from '@vueuse/core' -import { useRequest } from 'vue-hooks-plus' -import { getProductProgress } from '@/api' -import type { ProductProgressParams } from '@/api' import { isNumber } from 'lodash-es' import { CHANNEL_NAME_MAP } from '@/common/constants' import { usePLCStore } from '@/stores/plc' +import TaskStep from '@/views/dashboard/components/TaskStep.vue' const props = defineProps<{ task?: Task @@ -133,9 +124,8 @@ .step { width: 100%; - height: 66px; + height: 46px; overflow-x: auto; - margin-top: -5px; padding: 0 20px; .steps { height: 100%; @@ -179,8 +169,12 @@ } :deep(.el-progress-bar__outer) { border-radius: 8px; + background-color: #13235a; } :deep(.el-progress-bar__inner) { border-radius: 8px; } +:deep(.el-step__icon .is-icon) { + background-color: transparent; +} </style> diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue index e1b8f18..4b3975b 100644 --- a/src/views/dashboard/index.vue +++ b/src/views/dashboard/index.vue @@ -7,7 +7,7 @@ <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"> @@ -15,17 +15,33 @@ <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 @@ -42,7 +58,7 @@ <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> @@ -77,8 +93,9 @@ <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' @@ -104,7 +121,9 @@ 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' @@ -114,14 +133,6 @@ 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 = [ @@ -153,8 +164,12 @@ * 瀹屾垚浠诲姟鎴栬�呬笅鍙戝弬鏁版垚鍔熷悗瑕佸埛鏂伴�氶亾鏁版嵁 * @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() @@ -228,7 +243,7 @@ display: flex; align-items: center; justify-content: center; - padding-top: 12px; + padding-top: 22px; } :deep(.el-tabs) { height: 100%; @@ -268,4 +283,11 @@ width: 100%; font-size: 20px; } +.craft-loaded-tip { + height: 40px; + text-align: center; + display: flex; + align-items: center; + justify-content: center; +} </style> -- Gitblit v1.8.0