areaCheckPlanManagementDeptItem.vue 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <div class="safety-platform-container">
  3. <header class="safety-platform-container__header">
  4. <BreadcrumbBack />
  5. <span class="breadcrumb-title">{{ headerTitle }}</span>
  6. </header>
  7. <AreaCheckPlanManagementDeptDetail v-if="operateType === 'view'" />
  8. <AreaCheckPlanRecordDetailDept v-else />
  9. </div>
  10. </template>
  11. <script setup lang="ts">
  12. import { computed } from 'vue';
  13. import { useRoute } from 'vue-router';
  14. import BreadcrumbBack from '@/components/BreadcrumbBack.vue';
  15. import AreaCheckPlanManagementDeptDetail from './components/areaCheckPlanManagementDeptDetail.vue';
  16. import AreaCheckPlanRecordDetailDept from './components/areaCheckPlanRecordDetailDept.vue';
  17. const route = useRoute();
  18. const operate = computed(() => (route.query.operate as string) || '');
  19. const operateType = computed(() => {
  20. if (operate.value === 'area-check-plan-record-view') return 'record-view';
  21. if (operate.value === 'area-check-plan-record-add') return 'record-add';
  22. if (operate.value === 'area-check-plan-dept-view') return 'view';
  23. return 'view';
  24. });
  25. const headerTitle = computed(() => {
  26. switch (operateType.value) {
  27. case 'record-view':
  28. return '检查记录查看';
  29. case 'record-add':
  30. return '新增检查日志';
  31. case 'view':
  32. return '查看区域检查计划';
  33. default:
  34. return '未知操作';
  35. }
  36. });
  37. </script>
  38. <style scoped lang="scss">
  39. @use '@/styles/page-details-layout.scss' as *;
  40. @use '@/styles/page-main-layout.scss' as *;
  41. .safety-platform-container__header {
  42. flex-direction: row !important;
  43. justify-content: flex-start !important;
  44. gap: 8px !important;
  45. }
  46. </style>