Newer
Older
smart-metering-front / src / router / modules / device.ts
MrTan on 15 Feb 2023 16 KB 修改项目代码爆红
// 测量设备
import type { Route } from '@/global'

const Layout = () => import('@/layouts/index.vue')

const routes: Route.recordRaw[] = [
  {
    path: '/device',
    component: Layout,
    redirect: '/device/bench',
    name: 'DBench',
    meta: {
      title: '工作台',
      icon: 'ep:key',
      auth: '/device/bench',
    },
    children: [
      {
        path: '/device/bench',
        name: 'DeviceBench',
        component: () => import('@/views/device/bench/deviceBench.vue'),
        meta: {
          title: '工作台',
          auth: '/device/bench',
          sidebar: false,
          breadcrumb: true,
          activeMenu: '/device',
        },
      },
    ],
  },
  {
    path: '/standingBook',
    component: Layout,
    redirect: '/standingBook/measureDevice',
    name: 'standingBook',
    meta: {
      title: '设备台账',
      icon: 'ep:key',
      auth: '/device/standingBook',
    },
    children: [
      {
        path: 'measureDevice',
        name: 'measureDevice',
        component: () => import('@/views/device/standingBook/measureDevice.vue'),
        meta: {
          title: '测量设备',
          icon: 'ep:key',
          auth: '/device/measureDevice',
        },
      },
      {
        path: 'adjustDevice',
        name: 'adjustDevice',
        component: () => import('@/views/device/standingBook/adjustDevice.vue'),
        meta: {
          title: '校准/检定设备',
          icon: 'ep:key',
          auth: '/device/adjustDevice',
        },
      },
      {
        path: 'standardMatchDevice',
        name: 'standardMatchDevice',
        component: () => import('@/views/device/standingBook/standardMatchDevice.vue'),
        meta: {
          title: '标准配套设备',
          icon: 'ep:key',
          auth: '/device/standardMatchDevice',
        },
      },
      {
        path: 'measureTool',
        name: 'measureTool',
        component: () => import('@/views/device/standingBook/measureTool.vue'),
        meta: {
          title: '测量工装',
          icon: 'ep:key',
          auth: '/device/measureTool',
        },
      },
      {
        path: ':type/:id?',
        name: 'standingBookDetail',
        component: () => import('@/views/device/standingBook/components/templateAdd.vue'),
        meta: {
          title: '测量设备',
          icon: 'ep:key',
          sidebar: false,
          breadcrumb: true,
          activeMenu: '/standingBook/measureDevice',
        },
        // 独享守卫,根据form的路由动态修改meta中的activeMenu
        beforeEnter: (to, from, next) => {
          const type = from.path.split('/')[from.path.split('/').length - 1]
          console.log(type)
          switch (type) {
            case 'measureDevice':
              to.meta.activeMenu = '/standingBook/measureDevice'
              to.meta.title = '测量设备'
              break
            case 'standardMatchDevice':
              to.meta.activeMenu = '/standingBook/standardMatchDevice'
              to.meta.title = '校准检定设备'
              break
            case 'adjustDevice':
              to.meta.activeMenu = '/standingBook/adjustDevice'
              to.meta.title = '标准配套设备'
              break
            case 'measureTool':
              to.meta.activeMenu = '/standingBook/measureTool'
              to.meta.title = '测量工装'
              break
            case 'fixedAssets':
              to.meta.activeMenu = '/standingBook/fixedAssets'
              to.meta.title = '固定资产'
              break
          }
          next()
        },
      },
      {
        path: 'fixedAssets',
        name: 'fixedAssets',
        component: () => import('@/views/device/standingBook/fixedAssets.vue'),
        meta: {
          title: '固定资产',
          icon: 'ep:key',
          auth: '/device/fixedAssets',
        },
      },
      // {
      //   path: 'fixAssets/:type/:id?',
      //   name: 'fixedAssetsDetailType',
      //   component: () => import('@/views/device/standingBook/components/fixedAssetsAdd.vue'),
      //   meta: {
      //     title: '固定资产',
      //     icon: 'ep:key',
      //     sidebar: false,
      //     breadcrumb: true,
      //     activeMenu: '/standingBook/fixedAssets',
      //   },
      // },
    ],
  },
  {
    path: '/standard',
    component: Layout,
    redirect: '/standard/list',
    name: 'Standard',
    meta: {
      title: '标准装置',
      icon: 'ep:key',
      auth: '/standardEquipment',
    },
    children: [
      {
        path: 'list',
        name: 'standardList',
        component: () => import('@/views/device/standardEquipment/standardList.vue'),
        meta: {
          title: '标准装置列表',
          icon: 'ep:key',
          auth: '/standard/list',
        },
      },
      {
        path: ':type/:id?',
        name: 'fixedAssetsDetail',
        component: () => import('@/views/device/standardEquipment/components/standardListAdd.vue'),
        meta: {
          title: '标准装置列表',
          icon: 'ep:key',
          sidebar: false,
          breadcrumb: true,
          activeMenu: '/standard/list',
        },
      },
      {
        path: 'expirationRemind',
        name: 'expirationRemind',
        component: () => import('@/views/device/standardEquipment/expirationRemind.vue'),
        meta: {
          title: '到期提醒',
          icon: 'ep:key',
          auth: '/standard/expirationRemind',
        },
      },
      {
        path: 'changeApply',
        name: 'changeApply',
        component: () => import('@/views/device/standardEquipment/changeApply.vue'),
        meta: {
          title: '更换申请',
          icon: 'ep:key',
          auth: '/standard/changeApply',
        },
      },
      {
        path: 'pauseApply',
        name: 'pauseApply',
        component: () => import('@/views/device/standardEquipment/pauseApply.vue'),
        meta: {
          title: '暂停申请',
          icon: 'ep:key',
          auth: '/standard/pauseApply',
        },
      },
      {
        path: 'cancelApply',
        name: 'cancelApply',
        component: () => import('@/views/device/standardEquipment/cancelApply.vue'),
        meta: {
          title: '撤销申请',
          icon: 'ep:key',
          auth: '/standard/cancelApply',
        },
      },
      {
        path: 'resumeApply',
        name: 'resumeApply',
        component: () => import('@/views/device/standardEquipment/resumeApply.vue'),
        meta: {
          title: '恢复申请',
          icon: 'ep:key',
          auth: '/standard/resumeApply',
        },
      },
      {
        path: 'checkApply',
        name: 'checkApply',
        component: () => import('@/views/device/standardEquipment/checkApply.vue'),
        meta: {
          title: '复查申请',
          icon: 'ep:key',
          auth: '/standard/checkApply',
        },
      },
      {
        path: 'Apply:type/:id?',
        name: 'standardListAdd',
        component: () => import('@/views/device/standardEquipment/components/listApply/listPageAdd.vue'),
        meta: {
          title: '更换申请申请',
          icon: 'ep:key',
          sidebar: false,
          breadcrumb: true,
          activeMenu: '/standard/changeApply',
        },
        beforeEnter: (to, from, next) => {
          const type = from.path.split('/')[from.path.split('/').length - 1]
          console.log(type)
          switch (type) {
            case 'changeApply':
              to.meta.activeMenu = '/standard/changeApply'
              to.meta.title = '更换申请'
              break
            case 'pauseApply':
              to.meta.activeMenu = '/standard/pauseApply'
              to.meta.title = '暂停申请'
              break
            case 'cancelApply':
              to.meta.activeMenu = '/standard/cancelApply'
              to.meta.title = '撤销申请'
              break
            case 'resumeApply':
              to.meta.activeMenu = '/standard/resumeApply'
              to.meta.title = '恢复申请'
              break
            case 'checkApply':
              to.meta.activeMenu = '/standard/checkApply'
              to.meta.title = '复查申请'
              break
          }
          next()
        },
      },
    ],
  },
  {
    path: '/stateManage',
    component: Layout,
    redirect: '/stateManage/unusedApply',
    name: 'stateManage',
    meta: {
      title: '状态管理',
      icon: 'ep:key',
      auth: '/device/stateManage',
    },
    children: [
      {
        path: 'unusedApply',
        name: 'unusedApply',
        component: () => import('@/views/device/stateManage/unusedApply.vue'),
        meta: {
          title: '设备闲置申请',
          icon: 'ep:key',
          auth: '/device/unusedApply',
        },
      },
      {
        path: 'sealupApply',
        name: 'sealupApply',
        component: () => import('@/views/device/stateManage/sealupApply.vue'),
        meta: {
          title: '设备封存申请',
          icon: 'ep:key',
          auth: '/device/sealupApply',
        },
      },
      {
        path: 'openApply',
        name: 'openApply',
        component: () => import('@/views/device/stateManage/openApply.vue'),
        meta: {
          title: '设备启封申请',
          icon: 'ep:key',
          auth: '/device/openApply',
        },
      },
      {
        path: 'scrapApply',
        name: 'scrapApply',
        component: () => import('@/views/device/stateManage/scrapApply.vue'),
        meta: {
          title: '设备报废申请',
          icon: 'ep:key',
          auth: '/device/scrapApply',
        },
      },
      {
        path: 'handleApply',
        name: 'handleApply',
        component: () => import('@/views/device/stateManage/handleApply.vue'),
        meta: {
          title: '设备处置申请',
          icon: 'ep:key',
          auth: '/device/handleApply',
        },
      },
      {
        path: ':type/:id?',
        name: 'stateManageDetail',
        component: () => import('@/views/device/stateManage/components/templateAdd.vue'),
        meta: {
          title: '设备闲置申请',
          icon: 'ep:key',
          sidebar: false,
          breadcrumb: true,
          activeMenu: '/stateManage/unusedApply',
        },
        beforeEnter: (to, from, next) => {
          const type = from.path.split('/')[from.path.split('/').length - 1]
          console.log(type)
          switch (type) {
            case 'unusedApply':
              to.meta.activeMenu = '/stateManage/unusedApply'
              to.meta.title = '设备闲置申请'
              break
            case 'sealupApply':
              to.meta.activeMenu = '/stateManage/sealupApply'
              to.meta.title = '设备封存申请'
              break
            case 'openApply':
              to.meta.activeMenu = '/stateManage/openApply'
              to.meta.title = '设备启封申请'
              break
            case 'scrapApply':
              to.meta.activeMenu = '/stateManage/scrapApply'
              to.meta.title = '设备报废申请'
              break
            case 'handleApply':
              to.meta.activeMenu = '/stateManage/handleApply'
              to.meta.title = '设备处置申请'
              break
            case 'borrowapply':
              to.meta.activeMenu = '/borrow/borrowapply'
              to.meta.title = '设备借用申请'
              break
            case 'borrowhandle':
              to.meta.activeMenu = '/borrow/borrowhandle'
              to.meta.title = '设备借用处理'
              break
          }
          next()
        },
      },
    ],
  },
  {
    path: '/maintenance',
    component: Layout,
    redirect: '/maintenance/maintenanceList',
    name: 'MaintenanceManage',
    meta: {
      title: '设备维护',
      icon: 'ep:key',
      auth: '/device/maintenance',
    },
    children: [
      {
        path: 'maintenanceList',
        name: 'maintenanceList',
        component: () => import('@/views/device/deviceMaintenance/maintenanceList.vue'),
        meta: {
          title: '设备检修列表',
          icon: 'ep:key',
          auth: '/device/maintenanceList',
        },
      },
      {
        path: 'maintenanceList/:type/:id?/:processId?',
        name: 'maintenanceAdd',
        component: () => import('@/views/device/deviceMaintenance/components/listPageAdd.vue'),
        meta: {
          title: '设备检修列表',
          icon: 'ep:key',
          sidebar: false,
          breadcrumb: true,
          activeMenu: '/maintenance/maintenanceList',
        },
      },
      {
        path: 'maintenanceCheckList',
        name: 'maintenanceCheckList',
        component: () => import('@/views/device/deviceMaintenance/maintenanceCheckList.vue'),
        meta: {
          title: '设备检修保养验收单',
          icon: 'ep:key',
          auth: '/device/maintenance/checkList',
        },
      },
      {
        path: 'maintenanceCheckList/:type/:id?/:processId?',
        name: 'ListApprovalAdd',
        component: () => import('@/views/device/deviceMaintenance/components/listApprovalAdd.vue'),
        meta: {
          title: '设备检修保养验收单',
          icon: 'ep:key',
          sidebar: false,
          breadcrumb: true,
          activeMenu: '/maintenance/maintenanceCheckList',
        },
      },
      {
        path: 'manageCheckList',
        name: 'manageCheckList',
        component: () => import('@/views/device/deviceMaintenance/manageCheckList.vue'),
        meta: {
          title: '设备管理点检查表',
          icon: 'ep:key',
          auth: '/device/manage/checkList',
        },
      },
      {
        path: 'manageCheckList/:type/:id?',
        name: 'manageAdd',
        component: () => import('@/views/device/deviceMaintenance/components/manageAdd.vue'),
        meta: {
          title: '设备管理点检查表',
          icon: 'ep:key',
          sidebar: false,
          breadcrumb: true,
          activeMenu: '/maintenance/manageCheckList',
        },
      },
    ],
  },
  {
    path: '/receive',
    component: Layout,
    redirect: '/device/receive/applyList',
    name: 'Receive',
    meta: {
      title: '设备领用',
      icon: 'ep:key',
      auth: '/device/receive',
    },
    children: [
      {
        path: 'applyList',
        name: 'ApplyList',
        component: () => import('@/views/device/receive/applyList.vue'),
        meta: {
          title: '设备领用申请',
          icon: 'ep:key',
          auth: '/device/receive/applyList',
        },
      },
      {
        path: ':type',
        name: 'ApplyListDetail',
        component: () => import('@/views/device/receive/createOrCheck.vue'),
        meta: {
          title: '设备领用申请',
          icon: 'ep:key',
          sidebar: false,
          breadcrumb: true,
          activeMenu: '/receive/applyList',
        },
      },
      {
        path: 'solveList',
        name: 'SolveList',
        component: () => import('@/views/device/receive/solveList.vue'),
        meta: {
          title: '设备领用处理',
          icon: 'ep:key',
          auth: '/device/receive/solveList',
        },
      },
      {
        path: 'solveDetail',
        name: 'SolveListDetail',
        component: () => import('@/views/device/receive/solveComponent/detail.vue'),
        meta: {
          title: '设备领用处理',
          icon: 'ep:key',
          sidebar: false,
          breadcrumb: true,
          activeMenu: '/receive/solveList',
        },
      },
    ],
  },
  {
    path: '/borrow',
    component: Layout,
    redirect: '/device/borrow/borrowapply',
    name: 'Borrow',
    meta: {
      title: '设备领用',
      icon: 'ep:key',
      auth: '/device/borrow',
    },
    children: [
      {
        path: 'borrowapply',
        name: 'borroWapply',
        component: () => import('@/views/device/borrow/borrwoApply.vue'),
        meta: {
          title: '设备借用申请',
          icon: 'ep:key',
          auth: '/device/borrow/borrowapply',
        },
      },
      {
        path: 'borrowhandle',
        name: 'borrowHandle',
        component: () => import('@/views/device/borrow/borrowHandle.vue'),
        meta: {
          title: '设备借用处理',
          icon: 'ep:key',
          auth: '/device/borrow/borrowhandle',
        },
      },
    ],
  },

]

export default routes