| | |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | |
| | | <div class="section-title" style="margin-bottom: 10px;">产品结构</div> |
| | | <ProductStructureDetail |
| | | class="product-structure-panel" |
| | | style="margin-bottom: 20px;" |
| | | embedded |
| | | :bom-id="route.query.bomId" |
| | | /> |
| | | <!-- 表格视图 --> |
| | | <div v-if="viewMode === 'table'" class="section-header"> |
| | | <div class="section-title">工艺路线项目列表</div> |
| | |
| | | {{scope.row.isQuality ? "是" : "否"}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="是否入库" prop="isInbound" width="100"> |
| | | <el-table-column label="是否入库" prop="inbound" width="100"> |
| | | <template #default="scope"> |
| | | {{ scope.row.isInbound ? "是" : "否" }} |
| | | {{ scope.row.inbound ? "是" : "否" }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="是否报工" prop="isReportWork" width="100"> |
| | | <el-table-column label="是否报工" prop="reportWork" width="100"> |
| | | <template #default="scope"> |
| | | {{ scope.row.isReportWork ? "是" : "否" }} |
| | | {{ scope.row.reportWork ? "是" : "否" }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" fixed="right" width="150"> |
| | |
| | | </div> |
| | | <el-tag type="primary" class="product-tag" v-if="item.isQuality">质检</el-tag> |
| | | <div class="product-flags"> |
| | | <span>入库:{{ item.isInbound ? "是" : "否" }}</span> |
| | | <span>报工:{{ item.isReportWork ? "是" : "否" }}</span> |
| | | <span>入库:{{ item.inbound ? "是" : "否" }}</span> |
| | | <span>报工:{{ item.reportWork ? "是" : "否" }}</span> |
| | | </div> |
| | | </div> |
| | | <div v-else class="product-info empty">暂无产品信息</div> |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { ref, computed, getCurrentInstance, onMounted, onUnmounted, nextTick } from "vue"; |
| | | import { ref, computed, getCurrentInstance, onMounted, onUnmounted, nextTick, defineAsyncComponent } from "vue"; |
| | | import ProductSelectDialog from "@/views/basicData/product/ProductSelectDialog.vue"; |
| | | import { findProcessRouteItemList, addOrUpdateProcessRouteItem, sortProcessRouteItem, batchDeleteProcessRouteItem } from "@/api/productionManagement/processRouteItem.js"; |
| | | import { findProductProcessRouteItemList, deleteRouteItem, addRouteItem, addOrUpdateProductProcessRouteItem, sortRouteItem } from "@/api/productionManagement/productProcessRoute.js"; |
| | |
| | | |
| | | const route = useRoute() |
| | | const { proxy } = getCurrentInstance() || {}; |
| | | const ProductStructureDetail = defineAsyncComponent(() => import("@/views/productionManagement/productStructure/Detail/index.vue")); |
| | | |
| | | const routeId = computed(() => route.query.id); |
| | | const orderId = computed(() => route.query.orderId); |
| | |
| | | align-items: center; |
| | | } |
| | | |
| | | .product-structure-panel { |
| | | margin: 12px 0 20px; |
| | | } |
| | | |
| | | /* 工艺路线信息卡片样式 */ |
| | | .route-info-card { |
| | | margin-bottom: 20px; |