| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-dialog |
| | | v-model="visible" |
| | | title="è®¾å¤æ¥ä¿®è¯¦æ
" |
| | | width="800px" |
| | | destroy-on-close |
| | | :close-on-click-modal="false" |
| | | @close="handleClose" |
| | | > |
| | | <el-descriptions border :column="2" class="repair-detail"> |
| | | <el-descriptions-item label="设å¤åç§°">{{ form.deviceName }}</el-descriptions-item> |
| | | <el-descriptions-item label="è§æ ¼åå·">{{ form.deviceModel }}</el-descriptions-item> |
| | | |
| | | <el-descriptions-item label="æ¥ä¿®æ¥æ">{{ form.repairTime }}</el-descriptions-item> |
| | | <el-descriptions-item label="æ¥ä¿®äºº">{{ form.repairName }}</el-descriptions-item> |
| | | |
| | | <el-descriptions-item label="æ¥ä¿®é¡¹ç®">{{ form.machineryCategory }}</el-descriptions-item> |
| | | <el-descriptions-item label="维修人">{{ form.maintenanceName }}</el-descriptions-item> |
| | | |
| | | <el-descriptions-item label="æ¥ä¿®ç¶æ"> |
| | | <el-tag v-if="form.status === 2" type="danger">失败</el-tag> |
| | | <el-tag v-else-if="form.status === 1" type="success">å·²éªæ¶</el-tag> |
| | | <el-tag v-else-if="form.status === 3" type="info">å¾
éªæ¶</el-tag> |
| | | <el-tag v-else-if="form.status === 0" type="warning">å¾
ç»´ä¿®</el-tag> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="æ
éç°è±¡">{{ form.remark }}</el-descriptions-item> |
| | | |
| | | <!-- éªæ¶ä¿¡æ¯ --> |
| | | <template v-if="form.status === 1 || form.status === 3"> |
| | | <el-descriptions-item label="éªæ¶äºº">{{ form.acceptanceName }}</el-descriptions-item> |
| | | <el-descriptions-item label="éªæ¶æ¶é´">{{ form.acceptanceTime }}</el-descriptions-item> |
| | | <el-descriptions-item label="éªæ¶å¤æ³¨" :span="2">{{ form.acceptanceRemark }}</el-descriptions-item> |
| | | </template> |
| | | |
| | | <!-- éä»¶ --> |
| | | <el-descriptions-item label="éä»¶" :span="2"> |
| | | <ImageUpload |
| | | v-if="form.storageBlobDTOs && form.storageBlobDTOs.length > 0" |
| | | v-model:file-list="form.storageBlobDTOs" |
| | | :disabled="true" |
| | | /> |
| | | <span v-else style="color: #999;">æ éä»¶</span> |
| | | </el-descriptions-item> |
| | | </el-descriptions> |
| | | |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | | <el-button @click="handleClose">å
³é</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { ref, nextTick } from "vue"; |
| | | import { getRepairById } from "@/api/equipmentManagement/repair"; |
| | | import ImageUpload from "@/components/AttachmentUpload/image/index.vue"; |
| | | |
| | | const visible = ref(false); |
| | | const form = ref({}); |
| | | |
| | | const openView = async (id) => { |
| | | visible.value = true; |
| | | await nextTick(); |
| | | try { |
| | | const { data } = await getRepairById(id); |
| | | // ç¡®ä¿éä»¶åæ®µåç§°å¹é
ç»ä»¶éè¦ |
| | | data.storageBlobDTOs = data.storageBlobVOs || []; |
| | | form.value = data || {}; |
| | | } catch (error) { |
| | | console.error("Failed to load repair details:", error); |
| | | } |
| | | }; |
| | | |
| | | const handleClose = () => { |
| | | visible.value = false; |
| | | form.value = {}; |
| | | }; |
| | | |
| | | defineExpose({ |
| | | openView, |
| | | }); |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .repair-detail :deep(.el-descriptions__label) { |
| | | width: 120px; |
| | | justify-content: flex-end; |
| | | } |
| | | .repair-detail :deep(.el-upload) { |
| | | display: none !important; |
| | | } |
| | | </style> |