| | |
| | | <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" |
| | | @detail="openCraftModelDetailModal" |
| | | ></ProcessInfo> |
| | | </el-scrollbar> |
| | | <div style="height: 300px"> |
| | | <el-scrollbar always class="scroller" 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 |
| | |
| | | <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, 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 ProcessInfo from '@/views/dashboard/components/ProcessInfo.vue' |
| | | import ColorInfo from '@/views/dashboard/components/ColorInfo.vue' |
| | |
| | | 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 = [ |
| | |
| | | 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) |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 是否展示物料详情弹窗 |
| | |
| | | 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; |
| | | } |
| | | .scroller { |
| | | padding: 4px 16px; |
| | | } |
| | | </style> |