|
@@ -13,13 +13,13 @@
|
|
|
<el-form ref="formRef" :disabled="false" :model="formData" label-width="120px">
|
|
|
<el-row>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item :label="t('chooseMaintain.deviceCode')" prop="deviceCode"
|
|
|
- >{{ formData.deviceCode }}
|
|
|
+ <el-form-item :label="t('chooseMaintain.deviceCode')" prop="deviceCode">
|
|
|
+ {{ formData.deviceCode }}
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item :label="t('chooseMaintain.deviceName')" prop="deviceName"
|
|
|
- >{{ formData.deviceName }}
|
|
|
+ <el-form-item :label="t('chooseMaintain.deviceName')" prop="deviceName">
|
|
|
+ {{ formData.deviceName }}
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
@@ -67,7 +67,7 @@
|
|
|
</div>
|
|
|
</ContentWrap>
|
|
|
<ContentWrap v-loading="formLoading">
|
|
|
- <el-tabs v-model="activeName">
|
|
|
+ <el-tabs v-model="activeName" @tab-click="handleTabClick">
|
|
|
<el-tab-pane :label="t('deviceInfo.basicInformation')" name="info">
|
|
|
<el-form style="margin-top: 5px; margin-left: 35px; margin-right: 35px">
|
|
|
<el-row style="border-bottom: 1px solid #dcdfe6">
|
|
@@ -144,54 +144,58 @@
|
|
|
</el-form>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane :label="t('deviceInfo.fileLibrary')" name="file">
|
|
|
- <DeviceUpload ref="fileRef" v-model:activeName="activeName" />
|
|
|
+ <DeviceUpload ref="fileRef" v-if="loadedTabs.includes('1')" />
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane :label="t('deviceInfo.deviceBOM')" name="bom">
|
|
|
-<!-- <BomInfo ref="bomRef" v-model:activeName="activeName" />-->
|
|
|
- <BomList ref="bomRef" v-model:activeName="activeName" :deviceId="id" />
|
|
|
+ <BomList ref="bomRef" v-model:activeName="activeName" :deviceId="id" v-if="loadedTabs.includes('2')" />
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane :label="t('deviceInfo.operationRecords')" name="record">
|
|
|
- <RecordList ref="recordRef" v-model:activeName="activeName" :deviceId="id" />
|
|
|
+ <RecordList ref="recordRef" v-model:activeName="activeName" :deviceId="id" v-if="loadedTabs.includes('3')" />
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane :label="t('deviceInfo.faultRecords')" name="failure">
|
|
|
- <FailureList ref="failureRef" v-model:activeName="activeName" :deviceId="id" />
|
|
|
+ <FailureList ref="failureRef" v-model:activeName="activeName" :deviceId="id" v-if="loadedTabs.includes('4')" />
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane :label="t('deviceInfo.repairRecords')" name="maintain">
|
|
|
- <MaintainList ref="maintainRef" v-model:activeName="activeName" :deviceId="id" />
|
|
|
+ <MaintainList ref="maintainRef" v-model:activeName="activeName" :deviceId="id" v-if="loadedTabs.includes('5')" />
|
|
|
</el-tab-pane>
|
|
|
- <el-tab-pane :label="t('deviceInfo.maintenanceRecords')" name="maintenance">
|
|
|
+ <el-tab-pane :label="t('deviceInfo.maintenanceRecords')" name="maintenance">
|
|
|
<MaintenanceList
|
|
|
ref="maintenanceRef"
|
|
|
v-model:activeName="activeName"
|
|
|
- :deviceId = "id"
|
|
|
+ :deviceId="id"
|
|
|
+ v-if="loadedTabs.includes('6')"
|
|
|
/>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane :label="t('deviceInfo.inspectionRecords')" name="inspect">
|
|
|
<InspectList
|
|
|
ref="inspectRef"
|
|
|
v-model:activeName="activeName"
|
|
|
- :deviceId = "id"
|
|
|
+ :deviceId="id"
|
|
|
+ v-if="loadedTabs.includes('7')"
|
|
|
/>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane :label="t('deviceInfo.transferRecords')" name="allot">
|
|
|
<AllotLogList
|
|
|
ref="allotRef"
|
|
|
v-model:activeName="activeName"
|
|
|
- :deviceId = "id"
|
|
|
+ :deviceId="id"
|
|
|
+ v-if="loadedTabs.includes('8')"
|
|
|
/>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane :label="t('deviceInfo.statusChangeRecords')" name="status">
|
|
|
<DeviceStatusLogList
|
|
|
ref="statusRef"
|
|
|
v-model:activeName="activeName"
|
|
|
- :deviceId = "id"
|
|
|
+ :deviceId="id"
|
|
|
+ v-if="loadedTabs.includes('9')"
|
|
|
/>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane :label="t('deviceInfo.RPAdjustmentRecords')" name="person">
|
|
|
<PersonList
|
|
|
ref="personRef"
|
|
|
v-model:activeName="activeName"
|
|
|
- :deviceId = "id"
|
|
|
+ :deviceId="id"
|
|
|
+ v-if="loadedTabs.includes('10')"
|
|
|
/>
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
@@ -213,6 +217,7 @@ import DeviceStatusLogList from "@/views/pms/device/statuslog/DeviceStatusLogLis
|
|
|
import PersonList from '@/views/pms/device/personlog/PersonList.vue'
|
|
|
import RecordList from '@/views/pms/device/record/RecordList.vue'
|
|
|
import { createImageViewer } from '@/components/ImageViewer'
|
|
|
+import { ref, onMounted } from 'vue';
|
|
|
|
|
|
const defaultPicUrl = ref(
|
|
|
'https://iot.deepoil.cc/admin-api/infra/file/29/get/IntegratedSolution.png'
|
|
@@ -251,6 +256,8 @@ const formData = ref({
|
|
|
})
|
|
|
const pics = ref([])
|
|
|
const imgSrc = ref('')
|
|
|
+const loadedTabs = ref(['info']); // 记录已加载的标签
|
|
|
+
|
|
|
/** 获得详情 */
|
|
|
const getDetail = async () => {
|
|
|
if (id) {
|
|
@@ -272,11 +279,20 @@ const getDetail = async () => {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
const imagePreview = (imgUrl: string) => {
|
|
|
createImageViewer({
|
|
|
urlList: [imgUrl]
|
|
|
})
|
|
|
}
|
|
|
+
|
|
|
+const handleTabClick = (tab) => {
|
|
|
+ if (!loadedTabs.value.includes(tab.index)) {
|
|
|
+ // 这里可以添加每个标签对应的加载逻辑,如果有的话
|
|
|
+ loadedTabs.value.push(tab.index);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/** 初始化 */
|
|
|
onMounted(async () => {
|
|
|
await getDetail()
|