dataQuality.ts 6.13 KB
import type { RouteRecordRaw } from 'vue-router'

function Layout() {
  return import('@/layouts/index.vue')
}

const routes: RouteRecordRaw[] = [
  {
    path: '/data-quality/quality-rules',
    component: Layout,
    meta: {
      title: '质量规则管理',
      icon: 'sidebar-videos',
    },
    children: [
      {
        path: '',
        name: 'qualityRules',
        component: () => import('@/views/data_quality/qualityRules.vue'),
        meta: {
          title: '质量规则管理',
          sidebar: false,
          breadcrumb: false,
          cache: true
        },
      },
      {
        path: 'rule-model',
        name: 'ruleModel',
        component: () => import('@/views/data_quality/ruleModel.vue'),
        meta: {
          title: '新建质检表',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.groupGuid) {
            to.meta.title = `新建质检表(${to.query.name})`;
            to.meta.editPage = true;
          }
        }
      },
      {
        path: 'rule-template',
        name: 'ruleTemplate',
        component: () => import('@/views/data_quality/ruleTemplate.vue'),
        meta: {
          title: '新建规则',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.modelGuid) {
            to.meta.title = `新建规则(${to.query.name})`;
            to.meta.editPage = true;
          }
        }
      },
      {
        path: 'rule-model-edit',
        name: 'ruleModelEdit',
        component: () => import('@/views/data_quality/ruleModelEdit.vue'),
        meta: {
          title: '编辑',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true,
          editPage: true
        },
        beforeEnter: (to, from) => {
          if (to.query.guid) {
            to.meta.title = `编辑-`;
          }
        }
      },
      {
        path: 'import-file',
        name: 'importFiles',
        component: () => import('@/views/importFile.vue'),
        meta: {
          title: '文件导入',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
      }
    ],
  },
  {
    path: '/data-quality/quality-assess',
    component: Layout,
    meta: {
      title: '质量评估方案',
      icon: 'sidebar-videos',
    },
    children: [
      {
        path: '',
        name: 'qualityAssess',
        component: () => import('@/views/data_quality/qualityAssess.vue'),
        meta: {
          title: '质量评估方案',
          sidebar: false,
          breadcrumb: false,
          cache: true
        },
      },
      {
        path: 'assess-template',
        name: 'assessTemplate',
        component: () => import('@/views/data_quality/assessTemplate.vue'),
        meta: {
          title: '新建质量评估方案',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true,
          editPage: true
        },
        beforeEnter: (to, from) => {
          if (to.query.detail) {
            to.meta.title = `方案详情-${to.query.planName}`;
            to.meta.editPage = false;
          } else if (to.query.planName) {
            to.meta.title = `方案编辑-${to.query.planName}`;
          }
        }
      },
      {
        path: 'assess-detail',
        name: 'assessDetail',
        component: () => import('@/views/data_quality/assessDetail.vue'),
        meta: {
          title: '查看结果',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.name) {
            to.meta.title = `查看结果-${to.query.name}`;
          }
        }
      },
      {
        path: 'assess-dirty',
        name: 'assessDirty',
        component: () => import('@/views/data_quality/assessDirty.vue'),
        meta: {
          title: '脏数据',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.name) {
            to.meta.title = `脏数据-${to.query.name}`;
          }
        }
      },
      {
        path: 'assess-log',
        name: 'assessLog',
        component: () => import('@/views/data_quality/assessLog.vue'),
        meta: {
          title: '执行日志',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.guid) {
            to.meta.title = `日志-${to.query.name}`;
          }
        }
      },
    ],
  },
  {
    path: '/data-quality/quality-analysis',
    component: Layout,
    meta: {
      title: '质量分析报告',
      icon: 'ep:grid',
    },
    children: [
      {
        path: '',
        name: 'qualityAnalysis',
        component: () => import('@/views/data_quality/qualityAnalysis.vue'),
        meta: {
          title: '质量分析报告',
          sidebar: false,
          breadcrumb: false,
          cache: true
        },
      },
      {
        path: 'analysis-log',
        name: 'analysisLog',
        component: () => import('@/views/data_quality/analysisLog.vue'),
        meta: {
          title: '执行日志',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.name) {
            to.meta.title = `日志-${to.query.name}`;
          }
        }
      },
      {
        path: 'analysis-report',
        name: 'analysisReport',
        component: () => import('@/views/data_quality/analysisReport.vue'),
        meta: {
          title: '分析报告',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.name) {
            to.meta.title = `分析报告-${to.query.name}`;
          }
        }
      },
    ],
  }
]

export default routes