dataCatalog.ts 7.63 KB
import type { RouteRecordRaw } from 'vue-router'

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

const routes: RouteRecordRaw[] = [
  {
    path: '/data-catalog/data-warehouse',
    component: Layout,
    meta: {
      title: '数仓目录',
      icon: 'sidebar-videos',
    },
    children: [
      {
        path: '',
        name: 'dataWarehouse',
        component: () => import('@/views/data_catalog/dataWarehouse.vue'),
        meta: {
          title: '数仓目录',
          sidebar: false,
          breadcrumb: false,
          cache: true
        }
      },
      {
        path: 'table-create-manual',
        name: 'tableCreateManual',
        component: () => import('@/views/data_catalog/tableCreateManual.vue'),
        meta: {
          title: '手动新建表',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.isLook) {
            to.meta.title = `详情-`;
            return;
          }
          if (to.query.domainName) {
            to.meta.title = `手动新建表(${to.query.domainName})`;
            to.meta.editPage = true;
          } else if (to.query.guid) {
            to.meta.title = `编辑-`;
            to.meta.editPage = true;
          }
        }
      },
       {
        path: 'dim-table-create-manual',
        name: 'dimTableCreateManual',
        component: () => import('@/views/data_catalog/dimTableCreateManual.vue'),
        meta: {
          title: '手动新建表',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.isLook) {
            to.meta.title = `详情-`;
            return;
          }
          if (to.query.domainName) {
            to.meta.title = `手动新建表(${to.query.domainName})`;
            to.meta.editPage = true;
          } else if (to.query.guid) {
            to.meta.title = `编辑-`;
            to.meta.editPage = true;
          }
        }
       },
      {
        path: 'table-create-existing',
        name: 'tableCreateExisting',
        component: () => import('@/views/data_catalog/tableCreateExisting.vue'),
        meta: {
          title: '已有表新建',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.domainName) {
            to.meta.title = `已有表新建(${to.query.domainName})`;
            to.meta.editPage = true;
          }
        }
      },
      {
        path: 'table-sort-existing-data',
        name: 'tableSortExistingData',
        component: () => import('@/views/data_catalog/tableSortExisting.vue'),
        meta: {
          title: '已有表分类',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.domainName) {
            to.meta.title = `已有表分类(${to.query.domainName})`;
            to.meta.editPage = true;
          } else if (to.query.guid) {
            to.meta.title = `编辑-`;
            to.meta.editPage = true;
          }
        }
      },
      {
        path: 'table-sort-existing-edit',
        name: 'tableSortExistingEdit',
        component: () => import('@/views/data_catalog/tableSortExistingEdit.vue'),
        meta: {
          title: '编辑',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.isLook) {
            to.meta.title = `详情-`;
            return;
          }
         if (to.query.guid) {
            to.meta.title = `编辑-`;
            to.meta.editPage = true;
          }
        }
      },
      {
        path: 'table-create-file',
        name: 'tableCreateFile',
        component: () => import('@/views/data_catalog/tableCreateFile.vue'),
        meta: {
          title: '根据文件新建',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.domainName) {
            to.meta.title = `根据文件新建(${to.query.domainName})`;
          } else if (to.query.guid) {
            to.meta.title = `编辑-`;
            to.meta.editPage = true;
          }
        }
      },
      {
        path: 'tableDataView',
        name: 'tableDataView',
        component: () => import('@/views/data_catalog/tableDataView.vue'),
        meta: {
          title: '查看数据',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.id) {
            to.meta.title = `查看数据-${to.query.name}(${to.query.domainName})`;
          }
        }
      },
      {
        path: 'import-data',
        name: 'importData',
        component: () => import('@/views/data_catalog/importData.vue'),
        meta: {
          title: '文件导入',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.bizGuid) {
            to.meta.title = `文件导入-${to.query.name}(${to.query.domainName})`;
          }
        }
      },
      {
        path: 'import-file1',
        name: 'importFile1',
        component: () => import('@/views/importFile.vue'),
        meta: {
          title: '导入数据',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.bizGuid) {
            to.meta.title = `导入数据-${to.query.name}(${to.query.domainName})`;
          }
        }
      },

      {
        path: 'syncTableStructure',
        name: 'syncTableStructure',
        component: () => import('@/views/data_catalog/syncTableStructure.vue'),
        meta: {
          title: '同步表结构',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
        beforeEnter: (to, from) => {
          if (to.query.id) {
            to.meta.title = `同步表结构-`;
          }
        }
      },
      {
        path: 'processDetail',
        name: 'subjectProcessDetail',
        component: () => import('@/views/data_catalog/detail_subjectTable.vue'),
        meta: {
          title: '流程详情',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
      },
    ],
  },
  // {
  //   path: '/data-catalog/budgetDataIndex',
  //   component: Layout,
  //   meta: {
  //     title: '资源看板',
  //     icon: 'sidebar-videos',
  //   },
  //   children: [
  //     {
  //       path: '',
  //       name: 'budgetDataIndex',
  //       component: () => import('@/views/data_catalog/budgetDataIndex.vue'),
  //       meta: {
  //         title: '资源看板',
  //         sidebar: false,
  //         breadcrumb: false,
  //         cache: true,
  //         reuse: true
  //       },
  //     }
  //   ]
  // },
  {
    path: '/data-catalog/report',
    component: Layout,
    meta: {
      title: '报表查看',
      icon: 'sidebar-videos',
    },
    children: [
      {
        path: 'budgetDataIndex',
        name: 'budgetDataIndex',
        component: () => import('@/views/data_catalog/budgetDataIndex.vue'),
        meta: {
          title: '',
          sidebar: false,
          breadcrumb: false,
          cache: true,
          reuse: true
        },
      }
    ]
  }
]

export default routes