index.vue 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <div class="m-4">
  3. <div class="mb-4">
  4. <XTTitle :title="title" :go-back="true" />
  5. </div>
  6. <div class="py-2 bg-white">
  7. <a-tabs v-model:activeKey="activeKey" :destroyInactiveTabPane="true">
  8. <a-tab-pane
  9. v-for="item in tabData"
  10. :key="item.key"
  11. :tab="item.title"
  12. :class="'tab-' + item.key"
  13. >
  14. <!-- 基础信息 0 -->
  15. <div v-if="item.value == 0 && info.id">
  16. <DeviceBasic :info="info" />
  17. </div>
  18. <!-- 维修记录 1 -->
  19. <div v-if="item.value == 1 && info.id">
  20. <MaintenanceList :info="info" />
  21. </div>
  22. <!-- 保养记录 2 -->
  23. <div v-if="item.value == 2 && info.id">
  24. <UpkeepList :info="info" />
  25. </div>
  26. <!-- 检查记录 3 -->
  27. <div v-if="item.value == 3 && info.id">
  28. <TreatmentList :info="info" />
  29. </div>
  30. </a-tab-pane>
  31. </a-tabs>
  32. </div>
  33. </div>
  34. </template>
  35. <script setup lang="ts">
  36. import { ref } from 'vue';
  37. import { BasicTab, BasicTabActive } from './data';
  38. import DeviceBasic from '../deviceBasic/index.vue';
  39. import MaintenanceList from '../maintenanceList/index.vue';
  40. import UpkeepList from '../upkeepList/index.vue';
  41. import TreatmentList from '../treatmentList/index.vue';
  42. import { useRoute } from 'vue-router';
  43. import { XTTitle } from '/@/components/XTTitle/index';
  44. const route = useRoute();
  45. console.log('🚀 ~ file: index.vue:25 ~ route:', route);
  46. const info = ref({
  47. id: String(route.query?.id),
  48. name: route.query?.name,
  49. });
  50. const activeKey = ref(BasicTabActive);
  51. const tabData = ref(BasicTab);
  52. const title = `设备详情 — ${info.value.name}`;
  53. </script>
  54. <style lang="less" scoped>
  55. ::v-deep(.ant-tabs-tab) {
  56. padding: 12px;
  57. }
  58. ::v-deep(.ant-tabs-tabpane) {
  59. padding: 12px;
  60. }
  61. .tab-medicalDocuments {
  62. padding: 0;
  63. }
  64. </style>