From a411e6a6e8baf3a0f0ebf6255f312669903d3754 Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期一, 22 一月 2024 17:38:23 +0800 Subject: [PATCH] 安装适配样式的插件和配置vite+调整页面样式 --- src/views/dashboard/index.vue | 99 ++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 89 insertions(+), 10 deletions(-) diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue index 49b5c8e..fea5c74 100644 --- a/src/views/dashboard/index.vue +++ b/src/views/dashboard/index.vue @@ -16,7 +16,7 @@ </el-tab-pane> <el-tab-pane label="宸ヨ壓淇℃伅" name="宸ヨ壓淇℃伅"> <div style="height: 300px"> - <el-scrollbar always style="height: 100%"> + <el-scrollbar always class="scroller" style="height: 100%"> <div v-infinite-scroll="craftModelStore.loadMore" infinite-scroll-delay="500" @@ -26,8 +26,11 @@ <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"> @@ -35,7 +38,7 @@ <Loading /> </el-icon> - <div v-if="!craftModelStore.hasMore">鍔犺浇瀹屾垚</div> + <div v-if="!craftModelStore.hasMore && craftModelStore.craftModelList.length > 6">鍔犺浇瀹屾垚</div> </div> </el-scrollbar> </div> @@ -55,10 +58,12 @@ <template #middleBlock3> <SubTitle>浠诲姟璇︽儏</SubTitle> <div class="task-detail"> - <TaskControl :task="activeTask" @should-reload="reloadChannel"></TaskControl> + <el-scrollbar always class="scroller"> + <TaskControl :task="activeTask" :workers="currentWorkers" @should-reload="reloadChannel"></TaskControl> + <ColorInfo :type="1"></ColorInfo> + <ColorInfo :type="2"></ColorInfo> + </el-scrollbar> </div> - <ColorInfo :type="1"></ColorInfo> - <ColorInfo :type="2"></ColorInfo> </template> <template #middleBlock4> <SubTitle>浜哄憳淇℃伅</SubTitle> @@ -76,17 +81,29 @@ </template> <template #rightBlock3> <SubTitle>鐭ヨ瘑搴�</SubTitle> - <KnowledgeInfo></KnowledgeInfo> + <div class="task-detail-right-3"> + <el-scrollbar always class="scroller"> + <KnowledgeInfo></KnowledgeInfo> + </el-scrollbar> + </div> <BigButton class="btn" bg-color="red">绾㈢伅鍛煎彨</BigButton> </template> </DashboardLayout> - <CraftDetailModal v-model="showCraftModelDetail" @close="showCraftModelDetail = false"></CraftDetailModal> + <CraftDetailModal + v-model="showCraftModelDetail" + :active-arr="activeArr" + :craft-model="currentCraftModelInfo" + @renew="updateCraft" + @close="showCraftModelDetail = false" + ></CraftDetailModal> <MaterialDetails v-model="showMaterialDetail" :material="currentMaterialInfo"></MaterialDetails> </template> <script setup lang="ts"> import { computed, ref } from 'vue' import ChannelCollapse from '@/views/dashboard/components/ChannelCollapse.vue' + import type { Task, Material } from '@/api/task' +import type { CraftModel } from '@/api/craftModel' import PersonInfo from '@/views/dashboard/components/PersonInfo.vue' import ProcessInfo from '@/views/dashboard/components/ProcessInfo.vue' import ColorInfo from '@/views/dashboard/components/ColorInfo.vue' @@ -110,7 +127,10 @@ 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' +import { isNumber } from 'lodash-es' defineOptions({ name: 'DashboardView' @@ -141,7 +161,7 @@ const tasksStore = useTasksStore() const { activeTask, channels } = storeToRefs(tasksStore) -tasksStore.getChannels(1) +tasksStore.getChannels(1, true) function changeTab(tab: LabelValue) { tasksStore.getChannels(tab.value) @@ -152,11 +172,14 @@ * @param task */ function reloadChannel(task: Task) { - tasksStore.reloadChannel(task.Channel) + tasksStore.reloadChannel(task.Channel).then(() => { + plcStore.startPollingPLC() + }) } function reloadAllData() { tasksStore.reloadAllData() + location.reload() } // 鍚姩plc 杞 const plcStore = usePLCStore() @@ -170,8 +193,43 @@ craftModelStore.getCraftModelList() const showCraftModelDetail = ref(false) -function openCraftModelDetailModal() { +// 褰撳墠瑕佸睍绀虹殑宸ヨ壓璇︽儏 +const currentCraftModelInfo = ref<CraftModel>() +const activeArr = ref<string[]>([]) +function openCraftModelDetailModal(craftModel: CraftModel) { + currentCraftModelInfo.value = craftModel showCraftModelDetail.value = true +} +// 鏇存柊宸ヨ壓 +function updateCraft(craftModel: CraftModel) { + if (activeTask?.value?.Procedure?.ID) { + activeArr.value.push(craftModel.number) + updateCraftParams({ procedureId: activeTask!.value.Procedure.ID }).then( + (res) => { + if (res.code == 200) { + editActive(craftModel) + ElMessage({ + message: '鏇存柊鎴愬姛锛�', + type: 'success' + }) + craftModelStore.getCraftModelList() + } + }, + (err) => { + console.error(err, '----err') + setTimeout(() => { + editActive(craftModel) + }, 300) + } + ) + } +} +function editActive(craftModel: CraftModel) { + for (let i in activeArr.value) { + if (activeArr.value[i] == craftModel.number) { + activeArr.value.splice(Number(i), 1) + } + } } // 鏄惁灞曠ず鐗╂枡璇︽儏寮圭獥 @@ -187,6 +245,15 @@ currentMaterialInfo.value = material showMaterialDetail.value = true } + +const currentWorkers = computed(() => { + const channel = activeTask.value?.Channel + if (isNumber(channel)) { + return channels.value[channel].workers ?? [] + } else { + return [] + } +}) </script> <style scoped lang="scss"> @@ -243,4 +310,16 @@ align-items: center; justify-content: center; } +.scroller { + padding: 4px 10px; +} +.task-detail { + width: 100%; + height: calc(100% - 32px); + padding-right: 5px; +} +.task-detail-right-3 { + width: 100%; + height: calc(100% - 32px - 50px); +} </style> -- Gitblit v1.8.0