| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-tabs v-model="activeTab" @tab-change="handleTabChange"> |
| | | <el-tab-pane v-for="tab in tabs" |
| | | :label="tab.label" |
| | | :name="tab.name" |
| | | :key="tab.name"> |
| | | <component :is="tab.name === 'qualified' ? QualifiedRecord : UnqualifiedRecord" /> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | <div v-loading="loading" element-loading-text="加载中..." style="min-height: 80vh;"> |
| | | <el-tabs v-model="activeTab" @tab-change="handleTabChange" v-if="!loading"> |
| | | <el-tab-pane v-for="tab in products" |
| | | :label="tab.productName" |
| | | :name="tab.id" |
| | | :key="tab.id"> |
| | | <Record :product-id="tab.id" v-if="tab.id === activeTab" /> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import QualifiedRecord from "@/views/inventoryManagement/stockManagement/Qualified.vue"; |
| | | import UnqualifiedRecord from "@/views/inventoryManagement/stockManagement/Unqualified.vue"; |
| | | |
| | | const activeTab = ref('qualified') |
| | | const tabs = ref([ |
| | | { |
| | | label: '合格库存', |
| | | name: 'qualified' |
| | | }, |
| | | { |
| | | label: '不合格库存', |
| | | name: 'unqualified' |
| | | } |
| | | ]) |
| | | import { ref, onMounted } from 'vue'; |
| | | import { productTreeList } from "@/api/basicData/product.js"; |
| | | import Record from "@/views/inventoryManagement/stockManagement/Record.vue"; |
| | | const products = ref([]) |
| | | const activeTab = ref(null) |
| | | const loading = ref(false) |
| | | |
| | | const handleTabChange = (tabName) => { |
| | | activeTab.value = tabName; |
| | | } |
| | | </script> |
| | | |
| | | const fetchProducts = async () => { |
| | | loading.value = true; |
| | | try { |
| | | const res = await productTreeList(); |
| | | products.value = res.filter((item) => item.parentId === null).map(({ id, productName }) => ({ id, productName })); |
| | | if (products.value.length > 0) { |
| | | activeTab.value = products.value[0].id; |
| | | } |
| | | } finally { |
| | | loading.value = false; |
| | | } |
| | | } |
| | | |
| | | onMounted(() => { |
| | | fetchProducts(); |
| | | }) |
| | | </script> |