diff --git a/src/views/erp/mold/MoldBrandForm.vue b/src/views/erp/mold/MoldBrandForm.vue
index cf8dd540..b23eb975 100644
--- a/src/views/erp/mold/MoldBrandForm.vue
+++ b/src/views/erp/mold/MoldBrandForm.vue
@@ -169,7 +169,7 @@ const resetForm = () => {
productIds: [],
images: '',
version: '',
- status: 0,
+ status: 1,
useTime: 0,
maintainType: undefined,
maintainTime: undefined,
diff --git a/src/views/erp/mold/detail/brand.vue b/src/views/erp/mold/detail/brand.vue
index 315f463b..9cbc2dab 100644
--- a/src/views/erp/mold/detail/brand.vue
+++ b/src/views/erp/mold/detail/brand.vue
@@ -31,8 +31,8 @@
{{ t('MoldManagement.MoldBrandDetail.back') }}
- {{ t('MoldManagement.MoldBrandDetail.moldUp') }}
- {{ t('MoldManagement.MoldBrandDetail.moldDown') }}
+ {{ t('MoldManagement.MoldBrandDetail.moldUp') }}
+ {{ t('MoldManagement.MoldBrandDetail.moldDown') }}
{{ t('MoldManagement.MoldBrandDetail.repair') }}
@@ -62,6 +62,7 @@
+
+
+
+
+
+
+
@@ -282,6 +290,7 @@ const detailLoading = ref(false)
const detailData = ref<(MoldBrandVO & Record) | null>(null)
const childMolds = ref([])
const activeTab = ref('molds')
+const loadedTabs = ref>(new Set(['molds']))
const inspectionHistory = ref([])
const maintainHistory = ref([])
const repairList = ref([])
@@ -299,6 +308,10 @@ const repairDateRange = ref()
const inspectionExportLoading = ref(false)
const maintainExportLoading = ref(false)
const repairExportLoading = ref(false)
+const inspectionLoading = ref(false)
+const repairLoading = ref(false)
+const maintainLoading = ref(false)
+const installLoading = ref(false)
const imageList = computed(() => parseImages(detailData.value?.images))
const lifeRate = computed(() => {
@@ -453,6 +466,10 @@ const goBack = () => {
router.push('/mold/mold-brand')
}
+const goOperate = (type: number) => {
+ router.push({ path: '/mold/mold-brand', query: { operateType: String(type), moldId: String(detailData.value?.id) } })
+}
+
const handleReservedAction = (action: string) => {
message.info(t('MoldManagement.MoldBrandDetail.reservedAction', { action }))
}
@@ -494,49 +511,69 @@ const collectByChildMolds = async (worker: (moldId: number) => Promise, mer
const fetchInspectionHistory = async () => {
if (!brandId.value) return
- const params: any = { moldId: brandId.value }
- if (inspectionDateRange.value && inspectionDateRange.value.length === 2) {
- params.startTime = inspectionDateRange.value[0]
- params.endTime = inspectionDateRange.value[1]
+ inspectionLoading.value = true
+ try {
+ const params: any = { moldId: brandId.value }
+ if (inspectionDateRange.value && inspectionDateRange.value.length === 2) {
+ params.startTime = inspectionDateRange.value[0]
+ params.endTime = inspectionDateRange.value[1]
+ }
+ const data = await TicketManagementApi.getInspectionByMoldId(params)
+ inspectionHistory.value = Array.isArray(data) ? data : []
+ } finally {
+ inspectionLoading.value = false
}
- const data = await TicketManagementApi.getInspectionByMoldId(params)
- inspectionHistory.value = Array.isArray(data) ? data : []
}
const fetchMaintainHistory = async () => {
if (!brandId.value) return
- const params: any = { moldId: brandId.value }
- if (maintainDateRange.value && maintainDateRange.value.length === 2) {
- params.startTime = maintainDateRange.value[0]
- params.endTime = maintainDateRange.value[1]
+ maintainLoading.value = true
+ try {
+ const params: any = { moldId: brandId.value }
+ if (maintainDateRange.value && maintainDateRange.value.length === 2) {
+ params.startTime = maintainDateRange.value[0]
+ params.endTime = maintainDateRange.value[1]
+ }
+ const data = await TicketManagementApi.getMaintenanceByMoldId(params)
+ maintainHistory.value = Array.isArray(data) ? data : []
+ } finally {
+ maintainLoading.value = false
}
- const data = await TicketManagementApi.getMaintenanceByMoldId(params)
- maintainHistory.value = Array.isArray(data) ? data : []
}
const fetchRepairHistory = async () => {
if (!brandId.value) return
- const params: any = { moldId: brandId.value }
- if (repairDateRange.value && repairDateRange.value.length === 2) {
- params.startTime = repairDateRange.value[0]
- params.endTime = repairDateRange.value[1]
+ repairLoading.value = true
+ try {
+ const params: any = { moldId: brandId.value }
+ if (repairDateRange.value && repairDateRange.value.length === 2) {
+ params.startTime = repairDateRange.value[0]
+ params.endTime = repairDateRange.value[1]
+ }
+ const data = await MoldRepairApi.getRepairListByMoldId(params)
+ repairList.value = Array.isArray(data) ? data : []
+ repairActiveNames.value = repairGroups.value.map((item) => item.key)
+ } finally {
+ repairLoading.value = false
}
- const data = await MoldRepairApi.getRepairListByMoldId(params)
- repairList.value = Array.isArray(data) ? data : []
- repairActiveNames.value = repairGroups.value.map((item) => item.key)
}
const fetchInstallRecords = async () => {
if (!brandId.value) return
- const params: any = { pageNo: installPageNo.value, pageSize: installPageSize.value, brandId: brandId.value }
- if (installMoldId.value) params.moldId = installMoldId.value
- if (installRemark.value) params.remark = installRemark.value
- if (installDateRange.value && installDateRange.value.length === 2) {
- params.createTime = [installDateRange.value[0], installDateRange.value[1]]
+ installLoading.value = true
+ try {
+ const params: any = { pageNo: installPageNo.value, pageSize: installPageSize.value, brandId: brandId.value }
+ if (installMoldId.value) params.moldId = installMoldId.value
+ if (installRemark.value) params.remark = installRemark.value
+ if (installDateRange.value && installDateRange.value.length === 2) {
+ params.createTime = [installDateRange.value[0], installDateRange.value[1]]
+ }
+ const data = await MoldOperateApi.getMoldOperatePage(params)
+ installRecords.value = data?.list ?? []
+ installTotal.value = data?.total ?? 0
+ } finally {
+ installLoading.value = false
}
- const data = await MoldOperateApi.getMoldOperatePage(params)
- installRecords.value = data?.list ?? []
- installTotal.value = data?.total ?? 0
}
const handleQueryInstall = () => {
@@ -605,13 +642,38 @@ const getDetail = async () => {
detailLoading.value = true
try {
detailData.value = await MoldBrandApi.getMoldBrand(brandId.value)
- await getChildMolds()
- await Promise.all([fetchInspectionHistory(), fetchMaintainHistory(), fetchRepairHistory(), fetchInstallRecords()])
} finally {
detailLoading.value = false
}
}
+const loadTabData = async (tab: string) => {
+ if (loadedTabs.value.has(tab)) return
+ loadedTabs.value.add(tab)
+ switch (tab) {
+ case 'inspection':
+ await getChildMolds()
+ fetchInspectionHistory()
+ break
+ case 'repair':
+ await getChildMolds()
+ fetchRepairHistory()
+ break
+ case 'maintain':
+ await getChildMolds()
+ fetchMaintainHistory()
+ break
+ case 'install':
+ await getChildMolds()
+ fetchInstallRecords()
+ break
+ }
+}
+
+watch(activeTab, (val) => {
+ loadTabData(val)
+})
+
onMounted(() => {
getDetail()
})
diff --git a/src/views/erp/mold/index.vue b/src/views/erp/mold/index.vue
index 4551b7c7..956829e9 100644
--- a/src/views/erp/mold/index.vue
+++ b/src/views/erp/mold/index.vue
@@ -91,12 +91,12 @@
-
-
+
+
{{ t('MoldManagement.MoldBrandPage.detail') }}
- {{ t('MoldManagement.MoldBrandPage.moldUp') }}
- {{ t('MoldManagement.MoldBrandPage.moldDown') }}
+ {{ t('MoldManagement.MoldBrandPage.moldUp') }}
+ {{ t('MoldManagement.MoldBrandPage.moldDown') }}
{{ t('MoldManagement.MoldBrandPage.repair') }}
{{ t('MoldManagement.MoldBrandPage.qrcode') }}
{{ t('MoldManagement.MoldBrandPage.edit') }}
@@ -118,16 +118,6 @@
@@ -271,6 +261,7 @@ defineOptions({ name: 'MoldBrand' })
const { t } = useI18n()
const message = useMessage()
const { push } = useRouter()
+const route = useRoute()
const loading = ref(false)
const exportLoading = ref(false)
const list = ref([])
@@ -484,10 +475,6 @@ const closeOperateForm = () => {
currentMold.value = null
}
-const switchOperateType = (type: number) => {
- operateType.value = type
-}
-
const initOperateOptions = async () => {
// 获取产线选项
try {
@@ -562,6 +549,17 @@ onMounted(async () => {
productOptions.value = await ProductApi.getMesProductSimpleList()
deviceOptions.value = await DeviceLedgerApi.getDeviceLedgerList()
await getList()
+
+ // 从详情页跳转过来,自动打开上下模操作
+ const { operateType: queryOperateType, moldId: queryMoldId } = route.query
+ if (queryOperateType && queryMoldId) {
+ const moldRow = list.value.find((item) => item.id === Number(queryMoldId))
+ if (moldRow) {
+ await openOperateForm(Number(queryOperateType), moldRow)
+ }
+ // 清除 query 参数,避免刷新重复触发
+ push({ path: route.path })
+ }
})
@@ -706,7 +704,7 @@ onMounted(async () => {
}
.mold-operate-page__history {
- width: 600px;
+ width: 30vw;
background: #fff;
border-radius: 12px;
padding: 20px;