import { createRouter, createWebHashHistory } from 'vue-router';
import type { RouteRecordRaw } from 'vue-router';
import type { App } from 'vue';
import { Layout } from '@/utils/routerHelper';
import { useI18n } from '@/hooks/web/useI18n';

const { t } = useI18n();

export const constantRouterMap: AppRouteRecordRaw[] = [
  {
    path: '/',
    component: Layout,
    redirect: '/dashboard/home',
    name: 'Root',
    meta: {
      hidden: true
    }
  },
  {
    path: '/dashboard',
    component: Layout,
    redirect: '/dashboard/home',
    name: 'Dashboard',
    menuId: 'Dashboard',
    meta: {
      title: '首页',
      icon: 'ant-design:home-outlined',
      hidden: true,
    },
    children: [
      {
        path: 'home',
        component: () => import('@/views/csck/CsckWorkFlow/CsckWorkFlow.vue'),
        name: 'Home',
        menuId: 'Home',
        meta: {
          title: '待办任务',
          affix: true,
          hidden: true,
        },
      },
    ],
  },
  {
    path: '/redirect',
    component: Layout,
    name: 'Redirect',
    children: [
      {
        path: '/redirect/:path(.*)',
        name: 'Redirect',
        component: () => import('@/views/Redirect/Redirect.vue'),
        meta: {},
      },
    ],
    meta: {
      hidden: true,
      noTagsView: true,
    },
  },
  {
    path: '/login',
    component: () => import('@/views/Login/Login.vue'),
    name: 'Login',
    meta: {
      hidden: true,
      title: t('router.login'),
      noTagsView: true,
    },
  },
  {
    path: '/thirdPlatLogin',
    component: () => import('@/views/Login/thirdPlatLogin.vue'),
    name: 'thirdPlatLogin',
    meta: {
      hidden: true
    },
  },
  {
    path: '/404',
    component: () => import('@/views/Error/404.vue'),
    name: 'NoFind',
    meta: {
      hidden: true,
      title: '404',
      noTagsView: true,
    },
  },

  {
    path: '/Job2',
    component: () => import('@/views/job/RepJob/RepJob.vue'),
    name: 'RepJob',
    meta: {
      title: '作业配置',
      hidden:true
    },
  },

  //  可疑案例处理界面
  {
    path: '/caseManageT',
    component: Layout,
    // redirect: '/caseManageT/caseManageInfo',
    name: 'CaseManageT',
    menuId: 'CaseManageT',
    meta: {
      title: '信息处理',
      hidden: true,
    },
    children: [
      {
        path: 'editLargScaleCase',
        component: () => import('@/views/amld/CaseManageComponents/editLargScaleCase.vue'),
        name: 'EditLargScaleCase',
        menuId: 'caseManageT/editLargScaleCase',
        meta: {
          title: '大额案例处理',
          sort:1,
          hidden:true
        }
      },
      {
        path: 'customerInfo',
        component: () => import('@/views/amld/CaseManageComponents/customerManage/customerInfo.vue'),
        name: 'CustomerInfo',
        menuId: 'caseManageT/customerInfo',
        meta: {
          title: '可疑案例处理',
          sort:2,
          hidden:true
        }
      },
      {
        path: 'transicationInfoAddRecord',
        component: () => import('@/views/amld/CaseManageComponents/transicationInfoAddRecord.vue'),
        name: 'TransicationInfoAddRecord',
        menuId: 'caseManageT/transicationInfoAddRecord',
        meta: {
          title: '交易信息补录',
          sort:1,
          hidden:true
        }
      },
      {
        path: 'customerInfoAddRecord',
        component: () => import('@/views/amld/CaseManageComponents/customerInfoAddRecord.vue'),
        name: 'CustomerInfoAddRecord',
        menuId: 'caseManageT/customerInfoAddRecord',
        meta: {
          title: '客户信息补录',
          sort:1,
          hidden:true
        }
      },
      {
        path: 'addRivalInfo',
        component: () => import('@/views/amld/CaseManageComponents/DataAddRecord/addRivalInfo.vue'),
        name: 'AddRivalInfo',
        menuId: 'caseManageT/addRivalInfo',
        meta: {
          title: '对手信息补录',
          sort:1,
          hidden:true
        }
      },
      {
        path: 'CustomerIdentification',
        component: () => import('@/views/amld/CaseManageComponents/CustomerInfoManage/CustomerIdentification.vue'),
        name: 'CustomerIdentification',
        menuId: 'caseManageT/CustomerIdentification',
        meta: {
          title: '客户识别',
          sort:1,
          hidden:true
        }
      },
      {
        path: 'CustomerRiskRate',
        component: () => import('@/views/amld/CaseManageComponents/CustomerInfoManage/CustomerRiskRate.vue'),
        name: 'CustomerRiskRate',
        menuId: 'caseManageT/CustomerRiskRate',
        meta: {
          title: '客户评级',
          sort:1,
          hidden:true
        }
      },
      
    ],
  },
];

export const asyncRouterMap: AppRouteRecordRaw[] = [
  /*---------------------案例预警start------------------------*/ 
  {
    path: '/caseManage',
    component: Layout,
    redirect: '/caseManage',
    name: 'CaseManage',
    menuId: 'CaseManage',
    meta: {
      title: '案例管理',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"bslc",
      sort:1,
    },
    children: [
      {
        path: 'LargScaleCaseDeal',
        component: () => import('@/views/amld/LargScaleCaseDeal/LargScaleCaseDeal.vue'),
        name: 'LargScaleCaseDeal',
        menuId: 'caseManage/LargScaleCaseDeal',
        meta: {
          title: '大额案例处理',
          sort:1,
        },
      },
      {
        path: 'SuspiciousCaseDeal',
        component: () => import('@/views/amld/SuspiciousCaseDeal/SuspiciousCaseDeal.vue'),
        name: 'SuspiciousCaseDeal',
        menuId: 'caseManage/SuspiciousCaseDeal',
        meta: {
          title: '可疑案例处理',
          sort:2,
        },
      },
      {
        path: 'SuspiciousCaseReview',
        component: () => import('@/views/amld/SuspiciousCaseReview/SuspiciousCaseReview.vue'),
        name: 'SuspiciousCaseReview',
        menuId: 'caseManage/SuspiciousCaseReview',
        meta: {
          title: '可疑案例上报复核',
          sort:3,
        },
      },
      {
        path: 'SuspiciousCaseExclude',
        component: () => import('@/views/amld/SuspiciousCaseExclude/SuspiciousCaseExclude.vue'),
        name: 'SuspiciousCaseExclude',
        menuId: 'caseManage/SuspiciousCaseExclude',
        meta: {
          title: '可疑案例排除复核',
          sort:4,
        },
      },
      {
        path: 'SuspiciousTraceDeal',
        component: () => import('@/views/amld/SuspiciousTraceDeal/SuspiciousTraceDeal.vue'),
        name: 'SuspiciousTraceDeal',
        menuId: 'caseManage/SuspiciousTraceDeal',
        meta: {
          title: '案例跟踪处理',
          sort:5,
        },
      },
      {
        path: 'LargeCaseReview',
        component: () => import('@/views/amld/LargeCaseReview/LargeCaseReview.vue'),
        name: 'LargeCaseReview',
        menuId: 'caseManage/LargeCaseReview',
        meta: {
          title: '大额案例审核',
          sort:6,
        },
      },
      {
        path: 'SuspiciousCaseVerify',
        component: () => import('@/views/amld/SuspiciousCaseVerify/SuspiciousCaseVerify.vue'),
        name: 'SuspiciousCaseVerify',
        menuId: 'caseManage/SuspiciousCaseVerify',
        meta: {
          title: '可疑案例审批',
          sort:7,
        },
      },
    ]
  },
  {
    path: '/dataSupplement',
    component: Layout,
    redirect: '/dataSupplement',
    name: 'DataSupplement',
    menuId: 'DataSupplement',
    meta: {
      title: '数据补录',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"bslc",
      sort:2,
    },
    children: [
      {
        path: 'TransactionInfo',
        component: () => import('@/views/amld/TransactionInfo/TransactionInfo.vue'),
        name: 'TransactionInfo',
        menuId: 'dataSupplement/TransactionInfo',
        meta: {
          title: '交易信息补录',
          sort:1,
        }
      },
      {
        path: 'AmlRuleCust',
        component: () => import('@/views/amld/AmlRuleCust/AmlRuleCust.vue'),
        name: 'AmlRuleCust',
        menuId: 'dataSupplement/AmlRuleCust',
        meta: {
          title: '客户信息补录',
          sort:2,
        }
      },
      {
        path: 'CompetitorMaintain',
        component: () => import('@/views/amld/CompetitorMaintain/CompetitorMaintain.vue'),
        name: 'CompetitorMaintain',
        menuId: 'dataSupplement/CompetitorMaintain',
        meta: {
          title: '对手信息维护',
          sort:3,
        },
      },
      {
        path: 'amlRuleAutoslay',
        component: () => import('@/views/amld/AmlRuleAutoslay/AmlRuleAutoslay.vue'),
        name: 'AmlRuleAutoslay',
        menuId: 'dataSupplement/AmlRuleAutoslay',
        meta: {
          title: '上报交易补录',
          sort:4,
        },
      },
      {
        path: 'CompetitorInstitution',
        component: () => import('@/views/amld/CompetitorInstitution/CompetitorInstitution.vue'),
        name: 'CompetitorInstitution',
        menuId: 'dataSupplement/CompetitorInstitution',
        meta: {
          title: '对手金融机构维护',
          sort:5,
        },
      },
    ]
  },
  {
    path: '/taskTracking',
    component: Layout,
    redirect: '/taskTracking',
    name: 'TaskTracking',
    menuId: 'TaskTracking',
    meta: {
      title: '任务跟踪',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"bslc",
      sort:3,
    },
    children: [
      {
        path: 'ExpirationManagement',
        component: () => import('@/views/amld/ExpirationManagement/ExpirationManagement.vue'),
        name: 'ExpirationManagement',
        menuId: 'taskTracking/ExpirationManagement',
        meta: {
          title: '逾期管理',
          sort:1,
        },
      },
      {
        path: 'DataurgeManage',
        component: () => import('@/views/amld/DataurgeManage/DataurgeManage.vue'),
        name: 'DataurgeManage',
        menuId: 'taskTracking/DataurgeManage',
        meta: {
          title: '督办管理',
          sort:2,
        },
      },
      {
        path: 'DataurgeQuery',
        component: () => import('@/views/amld/DataurgeQuery/DataurgeQuery.vue'),
        name: 'DataurgeQuery',
        menuId: 'taskTracking/DataurgeQuery',
        meta: {
          title: '督办查询',
          sort:3,
        },
      },
    ]
  },
  {
    path: '/receiptManagement',
    component: Layout,
    redirect: '/receiptManagement',
    name: 'ReceiptManagement',
    menuId: 'ReceiptManagement',
    meta: {
      title: '回执管理',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"bslc",
      sort:4,
    },
    children: [
      {
        path: 'amlRetRgjxAnalysis',
        component: () => import('@/views/amld/AmlRetRgjxAnalysis/AmlRetRgjxAnalysis.vue'),
        name: 'AmlRetRgjxAnalysis',
        menuId: 'receiptManagement/AmlRetRgjxAnalysis',
        meta: {
          title: '人工补正回执解析',
          sort:1,
        },
      },
      {
        path: 'HzwjAnalysis',
        component: () => import('@/views/amld/HzwjAnalysis/HzwjAnalysis.vue'),
        name: 'HzwjAnalysis',
        menuId: 'receiptManagement/HzwjAnalysis',
        meta: {
          title: '回执文件解析',
          sort:2,
        },
      },
      {
        path: 'amlRuleAutoslayError',
        component: () => import('@/views/amld/AmlRuleAutoslayError/AmlRuleAutoslayError.vue'),
        name: 'AmlRuleAutoslayError',
        menuId: 'receiptManagement/AmlRuleAutoslayError',
        meta: {
          title: '错误回执客户补录',
          sort:3,
        },
      },
      {
        path: 'ErrorTransaction',
        component: () => import('@/views/amld/ErrorTransaction/ErrorTransaction.vue'),
        name: 'ErrorTransaction',
        menuId: 'receiptManagement/ErrorTransaction',
        meta: {
          title: '错误回执交易补录',
          sort:4,
        },
      },
      {
        path: 'amlRetRgjxDealing',
        component: () => import('@/views/amld/AmlRetRgjxDealing/AmlRetRgjxDealing.vue'),
        name: 'AmlRetRgjxDealing',
        menuId: 'receiptManagement/AmlRetRgjxDealing',
        meta: {
          title: '人工补正回执处理',
          sort:5,
        },
      },
      {
        path: 'UploadInvalidDeal',
        component: () => import('@/views/amld/UploadInvalidDeal/UploadInvalidDeal.vue'),
        name: 'UploadInvalidDeal',
        menuId: 'receiptManagement/UploadInvalidDeal',
        meta: {
          title: '上报无效处理',
          sort:6,
        },
      },
      {
        path: 'amlSysDataurgeQuery',
        component: () => import('@/views/amld/AmlSysDataurgeQuery/AmlSysDataurgeQuery.vue'),
        name: 'AmlSysDataurgeQuery',
        menuId: 'receiptManagement/AmlSysDataurgeQuery',
        meta: {
          title: '回执管理查询',
          sort:7,
        },
      },
      {
        path: 'UploadDataDelete',
        component: () => import('@/views/amld/UploadDataDelete/UploadDataDelete.vue'),
        name: 'UploadDataDelete',
        menuId: 'receiptManagement/UploadDataDelete',
        meta: {
          title: '上报数据删除',
          sort:8,
        },
      },
      {
        path: 'UploadDataError',
        component: () => import('@/views/amld/UploadDataError/UploadDataError.vue'),
        name: 'UploadDataError',
        menuId: 'receiptManagement/UploadDataError',
        meta: {
          title: '上报数据纠错',
          sort:9,
        },
      },
    ]
  },
  {
    path: '/paperManagement',
    component: Layout,
    redirect: '/paperManagement',
    name: 'PaperManagement',
    menuId: 'PaperManagement',
    meta: {
      title: '报文管理',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"bslc",
      sort:6
    },
    children: [
      {
        path: 'LargeMessageGenerate',
        component: () => import('@/views/amld/LargeMessageGenerate/LargeMessageGenerate.vue'),
        name: 'LargeMessageGenerate',
        menuId: 'paperManagement/LargeMessageGenerate',
        meta: {
          title: '大额报文生成',
          sort:1,
        },
      },
      {
        path: 'SuspiciousMessageGenerate',
        component: () => import('@/views/amld/SuspiciousMessageGenerate/SuspiciousMessageGenerate.vue'),
        name: 'SuspiciousMessageGenerate',
        menuId: 'paperManagement/SuspiciousMessageGenerate',
        meta: {
          title: '可疑报文生成',
          sort:2,
        },
      },
      {
        path: 'deletePaper',
        component: () => import('@/views/amld/DeletePaper/DeletePaper.vue'),
        name: 'DeletePaper',
        menuId: 'paperManagement/DeletePaper',
        meta: {
          title: '删除报文生成',
          sort:3,
        },
      },
      {
        path: 'RepPackageDown',
        component: () => import('@/views/amld/RepPackageDown/RepPackageDown.vue'),
        name: 'RepPackageDown',
        menuId: 'paperManagement/RepPackageDown',
        meta: {
          title: '数据包下载',
          sort:4,
        },
      },
      {
        path: 'SuspiciousPackageDown',
        component: () => import('@/views/amld/SuspiciousPackageDown/SuspiciousPackageDown.vue'),
        name: 'SuspiciousPackageDown',
        menuId: 'paperManagement/SuspiciousPackageDown',
        meta: {
          title: '可疑附件打包',
          sort:5,
        },
      },
    ]
  },
  {
    path: '/namePaperManagement',
    component: Layout,
    redirect: '/namePaperManagement',
    name: 'NamePaperManagement',
    menuId: 'NamePaperManagement',
    meta: {
      title: '名单库管理',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"bslc",
      sort:7,
    },
    children: [
      {
        path: 'SuspiciousMain',
        component: () => import('@/views/amld/SuspiciousMain/SuspiciousMain.vue'),
        name: 'SuspiciousMain',
        menuId: 'namePaperManagement/SuspiciousMain',
        meta: {
          title: '可疑库',
          sort:1,
        },
      },
      {
        path: 'AttentionMain',
        component: () => import('@/views/amld/AttentionMain/AttentionMain.vue'),
        name: 'AttentionMain',
        menuId: 'namePaperManagement/AttentionMain',
        meta: {
          title: '关注库',
          sort:2,
        },
      },
    ]
  },
  /*---------------------案例预警end------------------------*/ 

  /*---------------------统计分析start------------------------*/ 
  {
    path: '/nameListManagement',
    component: Layout,
    redirect: '/nameListManagement',
    name: 'NameListManagement',
    menuId: 'NameListManagement',
    meta: {
      title: '名单管理',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"mdgl",
      sort:1,
    },
    children: [
      {
        path: 'whiteListMaintain',
        component: () => import('@/views/amld/whiteListMaintain/whiteListMaintain.vue'),
        name: 'whiteListMaintain',
        menuId: 'nameListManagement/whiteListMaintain',
        meta: {
          title: '白名单维护',
          sort:1,
        },
      },
      {
        path: 'whiteListVerify',
        component: () => import('@/views/amld/whiteListVerify/whiteListVerify.vue'),
        name: 'whiteListVerify',
        menuId: 'nameListManagement/whiteListVerify',
        meta: {
          title: '白名单审核',
          sort:2,
        },
      },
      {
        path: 'whiteListQuery',
        component: () => import('@/views/amld/whiteListQuery/whiteListQuery.vue'),
        name: 'whiteListQuery',
        menuId: 'nameListManagement/whiteListQuery',
        meta: {
          title: '白名单查询',
          sort:3,
        },
      },
      {
        path: 'blackListMaitain',
        component: () => import('@/views/amld/blackListMaitain/blackListMaitain.vue'),
        name: 'blackListMaitain',
        menuId: 'nameListManagement/blackListMaitain',
        meta: {
          title: '黑名单维护',
          sort:4,
        },
      },
      {
        path: 'blackListShare',
        component: () => import('@/views/amld/blackListShare/blackListShare.vue'),
        name: 'blackListShare',
        menuId: 'nameListManagement/blackListShare',
        meta: {
          title: '黑名单共享',
          sort:5,
        },
      },
      {
        path: 'BlacklistsScreen',
        component: () => import('@/views/amld/BlacklistsScreen/BlacklistsScreen.vue'),
        name: 'BlacklistsScreen',
        menuId: 'nameListManagement/BlacklistsScreen',
        meta: {
          title: '黑名单回溯性调查',
          sort:6,
        },
      },
      {
        path: 'blackListQuery',
        component: () => import('@/views/amld/blackListQuery/blackListQuery.vue'),
        name: 'blackListQuery',
        menuId: 'nameListManagement/blackListQuery',
        meta: {
          title: '黑名单查询',
          sort:7,
        },
      },
    ]
  },
  {
    path: '/statisticalManagement',
    component: Layout,
    redirect: '/statisticalManagement',
    name: 'StatisticalManagement',
    menuId: 'StatisticalManagement',
    meta: {
      title: '统计分析',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:'mdgl',
      sort:2
    },
    children: [
      {
        path: 'KytzStatistics',
        component: () => import('@/views/amld/KytzStatistics/KytzStatistics.vue'),
        name: 'KytzStatistics',
        menuId: 'statisticalManagement/KytzStatistics',
        meta: {
          title: '可疑特征统计',
          sort:1,
        },
      },
      {
        path: 'PcyjStatistics',
        component: () => import('@/views/amld/PcyjStatistics/PcyjStatistics.vue'),
        name: 'PcyjStatistics',
        menuId: 'statisticalManagement/PcyjStatistics',
        meta: {
          title: '排除预警统计',
          sort:2,
        },
      },
      {
        path: 'SuspiciousPaperQuery',
        component: () => import('@/views/amld/SuspiciousPaperQuery/SuspiciousPaperQuery.vue'),
        name: 'SuspiciousPaperQuery',
        menuId: 'statisticalManagement/SuspiciousPaperQuery',
        meta: {
          title: '可疑报告查询',
          sort:3,
        },
      },
      {
        path: 'KyjyStatistics',
        component: () => import('@/views/amld/KyjyStatistics/KyjyStatistics.vue'),
        name: 'KyjyStatistics',
        menuId: 'statisticalManagement/KyjyStatistics',
        meta: {
          title: '可疑交易报告统计',
          sort:4,
        },
      },
      {
        path: 'WarnOutQuery',
        component: () => import('@/views/amld/WarnOutQuery/WarnOutQuery.vue'),
        name: 'WarnOutQuery',
        menuId: 'statisticalManagement/WarnOutQuery',
        meta: {
          title: '排除预警查询',
          sort:5,
        },
      },
      {
        path: 'LargePaperQuery',
        component: () => import('@/views/amld/LargePaperQuery/LargePaperQuery.vue'),
        name: 'LargePaperQuery',
        menuId: 'statisticalManagement/LargePaperQuery',
        meta: {
          title: '大额报告查询',
          sort:6,
        },
      },
      {
        path: 'DejyStatistics',
        component: () => import('@/views/amld/DejyStatistics/DejyStatistics.vue'),
        name: 'DejyStatistics',
        menuId: 'statisticalManagement/DejyStatistics',
        meta: {
          title: '大额交易报告统计',
          sort:7,
        },
      },
      {
        path: 'YjqkStatistics',
        component: () => import('@/views/amld/YjqkStatistics/YjqkStatistics.vue'),
        name: 'YjqkStatistics',
        menuId: 'statisticalManagement/YjqkStatistics',
        meta: {
          title: '预警情况统计',
          sort:8,
        },
      },
      {
        path: 'JyqdStatistics',
        component: () => import('@/views/amld/JyqdStatistics/JyqdStatistics.vue'),
        name: 'JyqdStatistics',
        menuId: 'statisticalManagement/JyqdStatistics',
        meta: {
          title: '交易渠道统计',
          sort:9,
        },
      },
      {
        path: 'KyjxStatistics',
        component: () => import('@/views/amld/KyjxStatistics/KyjxStatistics.vue'),
        name: 'KyjxStatistics',
        menuId: 'statisticalManagement/KyjxStatistics',
        meta: {
          title: '可疑接续报告统计',
          sort:10,
        },
      },
      
      
      
    ]
  },

  /*---------------------统计分析end------------------------*/ 

  /*---------------------风险评级start（pjgl）------------------------*/ 
  {
    path: '/customerInfoManagement',
    component: Layout,
    redirect: '/customerInfoManagement',
    name: 'CustomerInfoManagement',
    menuId: 'CustomerInfoManagement',
    meta: {
      title: '客户信息管理',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"pjgl",
      sort:1,
    },
    children: [
      {
        path: 'CustomerQuery',
        component: () => import('@/views/amld/CustomerQuery/CustomerQuery.vue'),
        name: 'CustomerQuery',
        menuId: 'customerInfoManagement/CustomerQuery',
        meta: {
          title: '客户信息查询',
          sort:1,
        },
      },
      {
        path: 'CustomerMaintain',
        component: () => import('@/views/amld/CustomerMaintain/CustomerMaintain.vue'),
        name: 'CustomerMaintain',
        menuId: 'customerInfoManagement/CustomerMaintain',
        meta: {
          title: '客户信息维护',
          sort:2,
        },
      },
      
    ]
  },
  {
    path: '/localCheck',
    component: Layout,
    redirect: '/localCheck/localCheckTask',
    name: 'LocalCheck',
    menuId: 'LocalCheck',
    meta: {
      title: '现场检查',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"pjgl",
      sort:2,
    },
    children: [
      {
        path: 'LocalCheckTask',
        component: () => import('@/views/amld/LocalCheckTask/LocalCheckTask.vue'),
        name: 'LocalCheckTask',
        menuId: 'localCheckTask/LocalCheckTask',
        meta: {
          title: '现场检查',
          sort:1
        },
      },
      {
        path: 'LocalCheckVerify',
        component: () => import('@/views/amld/LocalCheckVerify/LocalCheckVerify.vue'),
        name: 'LocalCheckVerify',
        menuId: 'localCheckVerify/LocalCheckVerify',
        meta: {
          title: '现场检查审核',
          sort:2
        },
      }
    ]
  },
  {
    path: '/customerRiskLevel',
    component: Layout,
    redirect: '/customerRiskLevel',
    name: 'CustomerRiskLevel',
    menuId: 'CustomerRiskLevel',
    meta: {
      title: '客户风险评级',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"pjgl",
      sort:3,
    },
    children: [
      {
        path: 'crrRiskResultFirst',
        component: () => import('@/views/amld/crrRiskResultFirst/crrRiskResultFirst.vue'),
        name: 'crrRiskResultFirst',
        menuId: 'customerRiskLevel/crrRiskResultFirst',
        meta: {
          title: '客户评级初评',
          sort:1,
        },
      },
      {
        path: 'crrRiskResultSecond',
        component: () => import('@/views/amld/crrRiskResultSecond/crrRiskResultSecond.vue'),
        name: 'crrRiskResultSecond',
        menuId: 'customerRiskLevel/crrRiskResultSecond',
        meta: {
          title: '客户评级复评',
          sort:2,
        },
      },
      {
        path: 'crrRiskResultVerify',
        component: () => import('@/views/amld/crrRiskResultVerify/crrRiskResultVerify.vue'),
        name: 'crrRiskResultVerify',
        menuId: 'customerRiskLevel/crrRiskResultVerify',
        meta: {
          title: '客户评级审核',
          sort:3,
        },
      },
    ]
  },
  {
    path: '/automaticRatingManagement',
    component: Layout,
    redirect: '/automaticRatingManagement',
    name: 'AutomaticRatingManagement',
    menuId: 'AutomaticRatingManagement',
    meta: {
      title: '自动评级管理',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"pjgl",
      sort:4,
    },
    children: [
      {
        path: 'CustomerLevelStatus',
        component: () => import('@/views/amld/CustomerLevelStatus/CustomerLevelStatus.vue'),
        name: 'CustomerLevelStatus',
        menuId: 'automaticRatingManagement/CustomerLevelStatus',
        meta: {
          title: '客户评级状态查询',
          sort:1
        },
      },
      {
        path: 'UserLevelQuery',
        component: () => import('@/views/amld/UserLevelQuery/UserLevelQuery.vue'),
        name: 'UserLevelQuery',
        menuId: 'automaticRatingManagement/UserLevelQuery',
        meta: {
          title: '人工发起评级查询',
          sort:2
        },
      },
    ]
  },
  {
    path: '/customerRiskLevelController',
    component: Layout,
    redirect: '/customerRiskLevel',
    name: 'CustomerRiskLevelController',
    menuId: 'CustomerRiskLevelController',
    meta: {
      title: '客户风险等级控制',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"pjgl",
      sort:5,
    },
    children: [
      {
        path: 'CustomerRiskLevelQuery',
        component: () => import('@/views/amld/CustomerRiskLevelQuery/CustomerRiskLevelQuery.vue'),
        name: 'CustomerRiskLevelQuery',
        menuId: 'customerRiskLevelController/CustomerRiskLevelQuery',
        meta: {
          title: '客户风险等级查询',
          sort:1
        },
      },
      {
        path: 'RGDBQuery',
        component: () => import('@/views/amld/RGDBQuery/RGDBQuery.vue'),
        name: 'RGDBQuery',
        menuId: 'customerRiskLevelController/RGDBQuery',
        meta: {
          title: '人工督办查询',
          sort:2
        },
      },
      {
        path: 'CustomerRiskLevelChange',
        component: () => import('@/views/amld/CustomerRiskLevelChange/CustomerRiskLevelChange.vue'),
        name: 'CustomerRiskLevelChange',
        menuId: 'customerRiskLevelController/CustomerRiskLevelChange',
        meta: {
          title: '客户风险等级变化',
          sort:3
        },
      },
      
      
    ]
  },
  {
    path: '/riskLevelConfig',
    component: Layout,
    redirect: '/riskLevelConfig',
    name: 'RiskLevelConfig',
    menuId: 'RiskLevelConfig',
    meta: {
      title: '风险等级参数配置',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"pjgl",
      sort:6
    },
    children: [
      {
        path: 'LevelMaintain',
        component: () => import('@/views/amld/LevelMaintain/LevelMaintain.vue'),
        name: 'LevelMaintain',
        menuId: 'riskLevelConfig/LevelMaintain',
        meta: {
          title: '评级参数维护',
          sort:1
        },
      },
      {
        path: 'ScoreLevelAdjust',
        component: () => import('@/views/amld/ScoreLevelAdjust/ScoreLevelAdjust.vue'),
        name: 'ScoreLevelAdjust',
        menuId: 'riskLevelConfig/ScoreLevelAdjust',
        meta: {
          title: '评分区间调整',
          sort:2
        },
      },
    ]
  },
  {
    path: '/customerIdentityVerify',
    component: Layout,
    redirect: '/customerIdentityVerify',
    name: 'CustomerIdentityVerify',
    menuId: 'CustomerIdentityVerify',
    meta: {
      title: '客户身份识别',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"pjgl",
      sort:8,
    },
    children: [
      {
        path: 'NewCustomerIdentity',
        component: () => import('@/views/amld/NewCustomerIdentity/NewCustomerIdentity.vue'),
        name: 'NewCustomerIdentity',
        menuId: 'customerIdentityVerify/NewCustomerIdentity',
        meta: {
          title: '新开客户识别',
          sort:1,
        },
      },
      {
        path: 'ReCustomerIdentity',
        component: () => import('@/views/amld/ReCustomerIdentity/ReCustomerIdentity.vue'),
        name: 'ReCustomerIdentity',
        menuId: 'customerIdentityVerify/ReCustomerIdentity',
        meta: {
          title: '重新客户识别',
          sort:2,
        },
      },
      {
        path: 'CustomerIdentityQuery',
        component: () => import('@/views/amld/CustomerIdentityQuery/CustomerIdentityQuery.vue'),
        name: 'CustomerIdentityQuery',
        menuId: 'customerIdentityVerify/CustomerIdentityQuery',
        meta: {
          title: '客户识别查询',
          sort:3,
        },
      },
    ]
  },
  {
    path: '/financeProRiskEvaluation',
    component: Layout,
    redirect: '/financeProRiskEvaluation',
    name: 'FinanceProRiskEvaluation',
    menuId: 'FinanceProRiskEvaluation',
    meta: {
      title: '金融产品(业务)风险评估管理',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"pjgl",
      sort:9
    },
    children: [
      {
        path: 'JRCPSelfEvaluation',
        component: () => import('@/views/amld/JRCPSelfEvaluation/JRCPSelfEvaluation.vue'),
        name: 'JRCPSelfEvaluation',
        menuId: 'financeProRiskEvaluation/JRCPSelfEvaluation',
        meta: {
          title: '金融产品业务自评',
          sort:1
        },
      },
      {
        path: 'JRCPVerify',
        component: () => import('@/views/amld/JRCPVerify/JRCPVerify.vue'),
        name: 'JRCPVerify',
        menuId: 'financeProRiskEvaluation/JRCPVerify',
        meta: {
          title: '金融产品业务审核',
          sort:2
        },
      },
      {
        path: 'JRCPRiskLevelQuery',
        component: () => import('@/views/amld/JRCPRiskLevelQuery/JRCPRiskLevelQuery.vue'),
        name: 'JRCPRiskLevelQuery',
        menuId: 'financeProRiskEvaluation/JRCPRiskLevelQuery',
        meta: {
          title: '金融产品业务风险等级查询',
          sort:3
        },
      },
      {
        path: 'JRCPEvaluateQuery',
        component: () => import('@/views/amld/JRCPEvaluateQuery/JRCPEvaluateQuery.vue'),
        name: 'JRCPEvaluateQuery',
        menuId: 'financeProRiskEvaluation/JRCPEvaluateQuery',
        meta: {
          title: '金融产品业务评估状态查询',
          sort:4
        },
      },
      {
        path: 'UserFinanceEvaluate',
        component: () => import('@/views/amld/UserFinanceEvaluate/UserFinanceEvaluate.vue'),
        name: 'UserFinanceEvaluate',
        menuId: 'financeProRiskEvaluation/UserFinanceEvaluate',
        meta: {
          title: '人工发起金融产品(业务)评估查询',
          sort:5
        },
      },
    ]
  },
  {
    path: '/financialProLevelConfig',
    component: Layout,
    redirect: '/financialProLevelConfig',
    name: 'FinancialProLevelConfig',
    menuId: 'FinancialProLevelConfig',
    meta: {
      title: '金融产品(业务)等级参数配置',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"pjgl",
      sort:10,
    },
    children: [
      {
        path: 'ProductRiskItem',
        component: () => import('@/views/amld/ProductRiskItem/ProductRiskItem.vue'),
        name: 'ProductRiskItem',
        menuId: 'financialProLevelConfig/ProductRiskItem',
        meta: {
          title: '金融产品(业务)风险子项',
          sort:1
        },
      },
      {
        path: 'ProductRiskLevel',
        component: () => import('@/views/amld/ProductRiskLevel/ProductRiskLevel.vue'),
        name: 'ProductRiskLevel',
        menuId: 'financialProLevelConfig/ProductRiskLevel',
        meta: {
          title: '金融产品(业务)风险评估规则',
          sort:2
        },
      },
    ]
  },
  /*---------------------风险评级end（pjgl）------------------------*/ 

  /*---------------------系统管理start------------------------*/ 
  {
    path: '/ruleModelManagement',
    component: Layout,
    redirect: '/ruleModelManagement',
    name: 'RuleModelManagement',
    menuId: 'RuleModelManagement',
    meta: {
      title: '规则模型管理',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"xtgl",
      sort:1
    },
    children: [
      {
        path: 'ModelMaintain',
        component: () => import('@/views/amld/ModelMaintain/ModelMaintain.vue'),
        name: 'ModelMaintain',
        menuId: 'ruleModelManagement/ModelMaintain',
        meta: {
          title: '模型维护',
          sort:1
        },
      },
      {
        path: 'ModelConfig',
        component: () => import('@/views/amld/ModelConfig/ModelConfig.vue'),
        name: 'ModelConfig',
        menuId: 'ruleModelManagement/ModelConfig',
        meta: {
          title: '模型阈值配置',
          sort:2
        },
      },
      {
        path: 'ModleVerify',
        component: () => import('@/views/amld/ModleVerify/ModleVerify.vue'),
        name: 'ModleVerify',
        menuId: 'ruleModelManagement/ModleVerify',
        meta: {
          title: '模型阈值审核',
          sort:3
        },
      },
      {
        path: 'ModelEvaluate',
        component: () => import('@/views/amld/ModelEvaluate/ModelEvaluate.vue'),
        name: 'ModelEvaluate',
        menuId: 'ruleModelManagement/ModelEvaluate',
        meta: {
          title: '模型评价',
          sort:4
        },
      },
      {
        path: 'ModelOutPut',
        component: () => import('@/views/amld/ModelOutPut/ModelOutPut.vue'),
        name: 'ModelOutPut',
        menuId: 'ruleModelManagement/ModelOutPut',
        meta: {
          title: '模型出数情况',
          sort:5
        },
      },
    ]
  },
  {
    path: '/system',
    component: Layout,
    redirect: '/system/sys-menu',
    name: 'System',
    menuId: 'System',
    meta: {
      title: '系统管理',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"xtgl",
      sort:2,
    },
    children: [
      {
        path: 'sys-user',
        component: () => import('@/views/system/SysUser/SysUser.vue'),
        name: 'SysUser',
        menuId: 'system/SysUser',
        meta: {
          title: '用户信息维护',
          sort:1
        },
      },
      {
        path: 'sys-role',
        component: () => import('@/views/system/SysRole/SysRole.vue'),
        name: 'SysRole',
        menuId: 'system/SysRole',
        meta: {
          title: '角色信息维护',
          sort:2
        },
      },
      {
        path: 'sys-organ',
        component: () => import('@/views/param/SysOrgan/SysOrgan.vue'),
        name: 'SysOrgan',
        menuId: 'param/SysOrgan',
        meta: {
          title: '机构信息维护',
          sort:3
        },
      },
      {
        path: 'sys-menu',
        component: () => import('@/views/system/SysMenu/SysMenu.vue'),
        name: 'SysMenu',
        menuId: 'system/SysMenu',
        meta: {
          title: '菜单信息维护',
          sort:4
        },
      },
      {
        path: 'rep-data-source',
        component: () => import('@/views/param/RepDataSource/RepDataSource.vue'),
        name: 'RepDataSource',
        menuId: 'param/RepDataSource',
        meta: {
          title: '数据源管理',
          sort:5
        }
      },
      
      {
        path: 'sys-login-log',
        component: () => import('@/views/system/SysLoginLog/SysLoginLog.vue'),
        name: 'SysLoginLog',
        menuId: 'system/SysLoginLog',
        meta: {
          title: '登录日志查询',
          sort:6
        },
      },
      {
        path: 'sys-organ-tree',
        component: () => import('@/views/param/SysOrganTree/SysOrganTree.vue'),
        name: 'SysOrganTree',
        menuId: 'param/SysOrganTree',
        meta: {
          title: '机构树管理',
          sort:7
        }
      },
      {
        path: 'AmlBsiHoliday',
        component: () => import('@/views/amld/AmlBsiHoliday/AmlBsiHoliday.vue'),
        name: 'AmlBsiHoliday',
        menuId: 'system/AmlBsiHoliday',
        meta: {
          title: '节假日',
          sort:8
        },
      },
      {
        path: 'job',
        component: Layout,
        redirect: '/job/rep-job',
        name: 'Job',
        menuId: 'Job',
        meta: {
          title: '作业管理',
          // icon: 'tdesign:task-setting',
          alwaysShow: true,
          sort:9
        },
        children: [
          {
            path: 'rep-job',
            component: () => import('@/views/job/RepJob/RepJob.vue'),
            name: 'RepJob',
            menuId: 'job/RepJob',
            meta: {
              title: '作业配置',
              sort:1
            },
          },
          {
            path: 'JobMonitor',
            component: () => import('@/views/job/RepTask/RepTask.vue'),
            name: 'JobMonitor',
            menuId: 'job/JobMonitor',
            meta: {
              title: '任务监控',
              sort:2
            },
          },  
          {
            path: 'RepScheduleJob',
            component: () => import('@/views/job/RepScheduleJob/RepScheduleJob.vue'),
            name: 'RepScheduleJob',
            menuId: 'job/RepScheduleJob',
            meta: {
              title: '定时任务列表',
              sort:3
            },
          }
          
        ],
      },
      // {
      //   path: 'sys-dictcode',
      //   component: () => import('@/views/param/SysDictcode/SysDictcode.vue'),
      //   name: 'SysDictcode',
      //   menuId: 'param/SysDictcode',
      //   meta: {
      //     title: '参数管理',
      //   },
      // },
    ],
  },
  {
    path: '/workGuidance',
    component: Layout,
    redirect: '/workGuidance',
    name: 'WorkGuidance',
    menuId: 'WorkGuidance',
    meta: {
      title: '工作指引',
      icon: 'eos-icons:role-binding',
      alwaysShow: true,
      type:"xtgl",
      sort:3
    },
    children: [
      {
        path: 'JGWJQuery',
        component: () => import('@/views/amld/JGWJQuery/JGWJQuery.vue'),
        name: 'JGWJQuery',
        menuId: 'workGuidance/JGWJQuery',
        meta: {
          title: '监管文件查询',
          sort:5
        },
      },
      {
        path: 'JGWJMaintain',
        component: () => import('@/views/amld/JGWJMaintain/JGWJMaintain.vue'),
        name: 'JGWJMaintain',
        menuId: 'workGuidance/JGWJMaintain',
        meta: {
          title: '监管文件维护',
          sort:6
        },
      },
    ]
  },


  /*---------------------系统管理end------------------------*/
  // {
  //   path: '/system',
  //   component: Layout,
  //   redirect: '/system/sys-menu',
  //   name: 'System',
  //   menuId: 'System',
  //   meta: {
  //     title: '报送',
  //     icon: 'eos-icons:role-binding',
  //     alwaysShow: true,
  //     // type:"bslc"
  //   },
  //   children: []
  // },
  // {
  //   path: '/system',
  //   component: Layout,
  //   redirect: '/system/sys-menu',
  //   name: 'System',
  //   menuId: 'System',
  //   meta: {
  //     title: '查询分析',
  //     icon: 'eos-icons:role-binding',
  //     alwaysShow: true,
  //   },
  //   children: []
  // },
  // {
  //   path: '/system',
  //   component: Layout,
  //   redirect: '/system/sys-menu',
  //   name: 'System',
  //   menuId: 'System',
  //   meta: {
  //     title: '评级',
  //     icon: 'eos-icons:role-binding',
  //     alwaysShow: true,
  //   },
  //   children: []
  // },
  //   {
  //   path: '/system',
  //   component: Layout,
  //   redirect: '/system/sys-menu',
  //   name: 'System',
  //   menuId: 'System',
  //   meta: {
  //     title: '管理',
  //     icon: 'eos-icons:role-binding',
  //     alwaysShow: true,
  //     type:"xtgl"
  //   },
  //   children: []
  // },
  

  // {
  //   path: '/system',
  //   component: Layout,
  //   redirect: '/system/sys-menu',
  //   name: 'System',
  //   menuId: 'System',
  //   meta: {
  //     title: '系统管理',
  //     icon: 'eos-icons:role-binding',
  //     alwaysShow: true,
  //   },
  //   children: [
  //     {

  //     }
  //   ]
  // },

  
  {
    path: '/business',
    component: Layout,
    redirect: '/business/businesssystem',
    name: 'business',
    menuId: 'business',
    meta: {
      title: '业务系统管理',
      icon: 'tdesign:task-setting',
      alwaysShow: true,
    },
    children: [
      {
        path: 'businesssystem',
        component: () => import('@/views/csck/CsckBusinessSystem/CsckBusinessSystem.vue'),
        name: 'Businesssystem',
        menuId: 'businesssystem',
        meta: {
          title: '业务系统管理',
        },
      },
    ],
  },
  {
    path: '/model',
    component: Layout,
    redirect: '/csck/model',
    name: 'model',
    menuId: 'model',
    meta: {
      title: '模型配置管理',
      icon: 'tdesign:task-setting',
      alwaysShow: true,
    },
    children: [
      {
        path: 'modeldetail',
        component: () => import('@/views/csck/CsckModelDetail/CsckModelDetail.vue'),
        name: 'Modeldetail',
        menuId: 'modeldetail',
        meta: {
          title: '明细模型管理',
        },
      },
      {
        path: 'modelitem',
        component: () => import('@/views/csck/CsckModelItem/CsckModelItem.vue'),
        name: 'Modelitem',
        menuId: 'modelitem',
        meta: {
          title: '指标模型管理',
        },
      },
    ],
  },
  // {
  //   path: '/update',
  //   component: Layout,
  //   redirect: '/csck/update',
  //   name: 'update',
  //   menuId: 'update',
  //   meta: {
  //     title: '制度管理',
  //     icon: 'tdesign:task-setting',
  //     alwaysShow: true,
  //   },
  //   children: [
  //     {
  //       path: 'updatepack',
  //       component: () => import('@/views/csck/CsckPackageUpgrade/index.vue'),
  //       name: 'updatepack',
  //       menuId: 'updatepack',
  //       meta: {
  //         title: '制度包升级',
  //       },
  //     },
  //   ],
  // },
  {
    path: '/check',
    component: Layout,
    redirect: '/csck/check',
    name: 'check',
    menuId: 'check',
    meta: {
      title: '数据校验中心',
      icon: 'tdesign:data-checked',
      alwaysShow: true,
    },
    children: [
      {
        path: 'checkversion',
        component: () => import('@/views/csck/CsckCheckVesrion/CsckCheckVesrion.vue'),
        name: 'Checkversion',
        menuId: 'checkversion',
        meta: {
          title: '校验版本管理',
        },
      },
      {
        path: 'checkrule',
        component: () => import('@/views/csck/CsckCheckRule/CsckCheckRule.vue'),
        name: 'Checkrule',
        menuId: 'checkrule',
        meta: {
          title: '校验规则定义',
        },
      },
      {
        path: 'datacheckresult/:organCode/:id/:date',
        component: () => import('@/views/csck/CsckDataCheckResult/CsckDataCheckResult.vue'),
        name: 'Datacheckresult',
        menuId: 'datacheckresult',
        meta: {
          title: '校验结果监控',
        },
      },
      {
        path: 'datacheckimport',
        component: () => import('@/views/csck/CsckDataCheckImport/CsckDataCheckImport.vue'),
        name: 'Datacheckimport',
        menuId: 'datacheckimport',
        meta: {
          title: '校验数据导出',
        },
      },
    ],
  },
];

const router = createRouter({
  history: createWebHashHistory(),
  strict: true,
  routes: constantRouterMap as RouteRecordRaw[],
  scrollBehavior: () => ({ left: 0, top: 0 }),
});

export const resetRouter = (): void => {
  const resetWhiteNameList = ['Redirect', 'Login', 'NoFind', 'Root'];
  router.getRoutes().forEach(route => {
    const { name } = route;
    if (name && !resetWhiteNameList.includes(name as string)) {
      router.hasRoute(name) && router.removeRoute(name);
    }
  });
};

export const setupRouter = (app: App<Element>) => {
  app.use(router);
};

export default router;
