|
|
|
|
@ -31,8 +31,8 @@
|
|
|
|
|
</div>
|
|
|
|
|
<div class="mold-brand-detail__actions">
|
|
|
|
|
<el-button @click="goBack"><Icon icon="ep:arrow-left" class="mr-5px" /> {{ t('MoldManagement.MoldBrandDetail.back') }}</el-button>
|
|
|
|
|
<el-button type="primary" @click="handleReservedAction(t('MoldManagement.MoldBrandDetail.moldUp'))">{{ t('MoldManagement.MoldBrandDetail.moldUp') }}</el-button>
|
|
|
|
|
<el-button type="success" @click="handleReservedAction(t('MoldManagement.MoldBrandDetail.moldDown'))">{{ t('MoldManagement.MoldBrandDetail.moldDown') }}</el-button>
|
|
|
|
|
<el-button type="primary" @click="goOperate(1)" v-if="detailData?.status === 1">{{ t('MoldManagement.MoldBrandDetail.moldUp') }}</el-button>
|
|
|
|
|
<el-button type="success" @click="goOperate(2)" v-if="detailData?.status === 0">{{ t('MoldManagement.MoldBrandDetail.moldDown') }}</el-button>
|
|
|
|
|
<el-button type="warning" @click="handleReservedAction(t('MoldManagement.MoldBrandDetail.repair'))">{{ t('MoldManagement.MoldBrandDetail.repair') }}</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
@ -62,6 +62,7 @@
|
|
|
|
|
<component :is="MoldListComp" :brand-id="brandId" />
|
|
|
|
|
</el-tab-pane>
|
|
|
|
|
<el-tab-pane :label="t('MoldManagement.MoldBrandDetail.tabInspection')" name="inspection">
|
|
|
|
|
<div v-loading="inspectionLoading">
|
|
|
|
|
<el-form :inline="true" class="device-ledger-tab-toolbar">
|
|
|
|
|
<el-form-item :label="t('MoldManagement.MoldBrandDetail.time')">
|
|
|
|
|
<el-date-picker v-model="inspectionDateRange" type="daterange" value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
|
@ -113,8 +114,10 @@
|
|
|
|
|
</template>
|
|
|
|
|
</el-step>
|
|
|
|
|
</el-steps>
|
|
|
|
|
</div>
|
|
|
|
|
</el-tab-pane>
|
|
|
|
|
<el-tab-pane :label="t('MoldManagement.MoldBrandDetail.tabRepair')" name="repair">
|
|
|
|
|
<div v-loading="repairLoading">
|
|
|
|
|
<el-form :inline="true" class="device-ledger-tab-toolbar">
|
|
|
|
|
<el-form-item :label="t('MoldManagement.MoldBrandDetail.time')">
|
|
|
|
|
<el-date-picker v-model="repairDateRange" type="daterange" value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
|
@ -168,8 +171,10 @@
|
|
|
|
|
</div>
|
|
|
|
|
</el-collapse-item>
|
|
|
|
|
</el-collapse>
|
|
|
|
|
</div>
|
|
|
|
|
</el-tab-pane>
|
|
|
|
|
<el-tab-pane :label="t('MoldManagement.MoldBrandDetail.tabMaintain')" name="maintain">
|
|
|
|
|
<div v-loading="maintainLoading">
|
|
|
|
|
<el-form :inline="true" class="device-ledger-tab-toolbar">
|
|
|
|
|
<el-form-item :label="t('MoldManagement.MoldBrandDetail.time')">
|
|
|
|
|
<el-date-picker v-model="maintainDateRange" type="daterange" value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
|
@ -221,8 +226,10 @@
|
|
|
|
|
</template>
|
|
|
|
|
</el-step>
|
|
|
|
|
</el-steps>
|
|
|
|
|
</div>
|
|
|
|
|
</el-tab-pane>
|
|
|
|
|
<el-tab-pane :label="t('MoldManagement.MoldBrandDetail.tabInstall')" name="install">
|
|
|
|
|
<div v-loading="installLoading">
|
|
|
|
|
<el-form :inline="true" class="device-ledger-tab-toolbar">
|
|
|
|
|
<el-form-item :label="t('MoldManagement.MoldBrandDetail.mold')"><el-select v-model="installMoldId" filterable clearable :placeholder="t('MoldManagement.MoldBrandDetail.selectMold')"
|
|
|
|
|
class="!w-200px"><el-option v-for="item in childMolds" :key="item.id" :label="item.name"
|
|
|
|
|
@ -250,6 +257,7 @@
|
|
|
|
|
<el-empty v-if="!installRecords.length" :description="t('MoldManagement.MoldBrandDetail.noInstallRecords')" />
|
|
|
|
|
<Pagination :total="installTotal" v-model:page="installPageNo" v-model:limit="installPageSize"
|
|
|
|
|
@pagination="fetchInstallRecords" />
|
|
|
|
|
</div>
|
|
|
|
|
</el-tab-pane>
|
|
|
|
|
</el-tabs>
|
|
|
|
|
</div>
|
|
|
|
|
@ -282,6 +290,7 @@ const detailLoading = ref(false)
|
|
|
|
|
const detailData = ref<(MoldBrandVO & Record<string, any>) | null>(null)
|
|
|
|
|
const childMolds = ref<any[]>([])
|
|
|
|
|
const activeTab = ref('molds')
|
|
|
|
|
const loadedTabs = ref<Set<string>>(new Set(['molds']))
|
|
|
|
|
const inspectionHistory = ref<any[]>([])
|
|
|
|
|
const maintainHistory = ref<any[]>([])
|
|
|
|
|
const repairList = ref<any[]>([])
|
|
|
|
|
@ -299,6 +308,10 @@ const repairDateRange = ref<string[] | undefined>()
|
|
|
|
|
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<number | null>(() => {
|
|
|
|
|
@ -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<any>, 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()
|
|
|
|
|
})
|
|
|
|
|
|