654 lines
21 KiB
JavaScript

/*
* @Description: router
* @Author: zenghua.wang
* @Date: 2023-06-20 11:48:41
* @LastEditors: zenghua.wang
* @LastEditTime: 2025-04-14 09:27:05
*/
import { createRouter, createWebHistory } from 'vue-router';
import Layout from '@/layouts/index.vue';
import BrandLayout from '@/views/brand/index.vue';
import Views from '@/layouts/Views.vue';
import userCentre from '@/layouts/userCentre.vue';
export const constantRoutes = [
{
path: '/sub-operation-service/404',
name: '404',
component: () => import('@/views/error/404.vue'),
hidden: true,
},
{
path: '/sub-operation-service/403',
name: '403',
component: () => import('@/views/error/403.vue'),
hidden: true,
},
// {
// path: '/sub-operation-service/userCenter',
// name: 'userCenter',
// component: () => import('@/views/userCenter/shoppingCart.vue'),
// hidden: true,
// },
{
path: '/sub-operation-service/userCenter',
name: 'userCenter',
// component: Layout,
redirect: '/sub-operation-service/userCenter',
meta: { title: '个人中心' },
children: [
// {
// path: '/sub-operation-service/userCenter',
// component: () => import('@/views/userCenter/shoppingCart.vue'),
// name: 'shoppingCart',
// meta: { title: '我的购物车' },
// },
{
path: '/sub-operation-service/userCenter',
component: () => import('@/views/userCenter/userOrders.vue'),
name: 'userOrders',
meta: { title: '我的订单', keepAlive: true },
},
{
path: '/sub-operation-service/sureOrder',
component: () => import('@/views/userCenter/sureOrder.vue'),
name: 'sureOrder',
meta: { title: '结算' },
},
{
path: '/sub-operation-service/addressList',
component: () => import('@/views/userCenter/addressList.vue'),
name: 'addressList',
meta: { title: '我的地址' },
},
{
path: '/sub-operation-service/orderSuccess',
component: () => import('@/views/userCenter/orderSuccess.vue'),
name: 'orderSuccess',
meta: { title: '提交订单' },
},
{
path: '/sub-operation-service/paySuccess',
component: () => import('@/views/userCenter/paySuccess.vue'),
name: 'paySuccess',
meta: { title: '支付成功' },
},
{
path: '/sub-operation-service/orderDetails',
component: () => import('@/views/userCenter/orderDetails.vue'),
name: 'orderDetails',
meta: { title: '订单详情', keepAlive: true },
},
{
path: '/sub-operation-service/userLands',
component: () => import('@/views/userCenter/userLands.vue'),
name: 'userLands',
meta: { title: '我的土地' },
},
{
path: '/sub-operation-service/mySource',
component: () => import('@/views/userCenter/mySource.vue'),
name: 'mySource',
meta: { title: '我的溯源' },
},
{
path: '/sub-operation-service/myFinance',
component: () => import('@/views/userCenter/myFinance.vue'),
name: 'myFinance',
meta: { title: '我的金融' },
},
{
path: '/sub-operation-service/myBrand',
component: () => import('@/views/userCenter/myBrand.vue'),
name: 'myBrand',
meta: { title: '我的品牌' },
},
],
},
{
path: '/sub-operation-service/shoppingCarts',
name: 'shoppingCarts',
// component: Layout,
redirect: '/sub-operation-service/shoppingCarts',
meta: { title: '购物车' },
children: [
{
path: '/sub-operation-service/shoppingCarts',
component: () => import('@/views/shoppingCarts/shoppingCarts.vue'),
name: 'shoppingCartss',
meta: { title: '购物车' },
},
{
path: '/sub-operation-service/sureOrders',
component: () => import('@/views/shoppingCarts/sureOrders.vue'),
name: 'sureOrders',
meta: { title: '结算' },
},
{
path: '/sub-operation-service/addressLists',
component: () => import('@/views/shoppingCarts/addressLists.vue'),
name: 'addressLists',
meta: { title: '我的地址' },
},
{
path: '/sub-operation-service/orderSuccesss',
component: () => import('@/views/shoppingCarts/orderSuccesss.vue'),
name: 'orderSuccesss',
meta: { title: '提交订单' },
},
{
path: '/sub-operation-service/paySuccesss',
component: () => import('@/views/shoppingCarts/paySuccesss.vue'),
name: 'paySuccesss',
meta: { title: '支付成功' },
},
],
},
{
path: '/sub-operation-service',
name: 'layout',
component: Layout,
redirect: '/sub-operation-service/dashboard',
meta: { title: '运营服务' },
children: [
{
path: '/sub-operation-service/home',
component: () => import('@/views/home/index.vue'),
name: 'home',
meta: { title: '首页' },
},
],
},
{
path: '/sub-operation-service/finance',
component: Layout,
name: 'RuralFinance',
redirect: '/sub-operation-service/finance/integratedSector',
meta: { title: '涉农金融' },
children: [
{
path: 'integratedSector',
component: Views,
name: 'integratedSectors',
meta: { title: '综合板块' },
children: [
{
path: '',
component: () => import('@/views/ruralFinance/integratedSector/index.vue'),
name: 'integratedSectorMain',
meta: { title: '综合板块', hideInBread: true },
},
{
path: 'detail',
component: () => import('@/views/ruralFinance/integratedSector/detail.vue'),
name: 'integratedSectorDetail',
meta: { title: '查看详情', hideInBread: true },
},
{
path: 'loan',
component: () => import('@/views/ruralFinance/integratedSector/loan.vue'),
name: 'integratedSectorLoan',
meta: { title: '我要贷款', hideInBread: true },
},
],
},
],
},
{
path: '/sub-operation-service/farmService',
component: Layout,
name: 'farmService',
redirect: '/sub-operation-service/farmService/consult/policy',
meta: { title: '农事服务' },
children: [
{
path: 'consult',
component: Views,
redirect: '/sub-operation-service/farmService/consult/policy',
name: 'farmServiceMain',
meta: { title: '农事咨询' },
children: [
{
path: 'policy',
component: Views,
name: 'farmPolicys',
meta: { title: '农业政策' },
children: [
{
path: '',
component: () => import('@/views/farmingService/farmingConsult/index.vue'),
name: 'farmPolicy',
meta: { title: '农业政策', hideInBread: true },
},
{
path: 'detail',
component: () => import('@/views/farmingService/farmingConsult/policyDetail.vue'),
name: 'farmPolicyDetail',
meta: { title: '农业政策详情' },
},
],
},
{
path: 'technology',
component: () => import('@/views/farmingService/farmingConsult/farmingTec.vue'),
name: 'farmTechnology',
meta: { title: '农事技术' },
},
{
path: 'situation',
component: () => import('@/views/farmingService/farmingConsult/situation.vue'),
name: 'farmSituation',
meta: { title: '市场行情' },
},
],
},
],
},
{
path: '/sub-operation-service/dashboard',
component: Layout,
name: 'dashboard',
redirect: '/sub-operation-service/dashboard/home',
meta: { title: '综合看板' },
children: [
{
path: '/sub-operation-service/dashboard/home',
component: () => import('@/views/dashboard/breed/index.vue'),
name: 'dashboardHome',
meta: { title: '综合看板首页' },
},
],
},
{
path: '/sub-operation-service/smartFarm',
name: 'smartFarm',
component: Layout,
redirect: '/sub-operation-service/smartFarm/main',
meta: { title: '智慧种植' },
children: [
{
path: '/sub-operation-service/smartFarm/main',
component: () => import('@/views/smartFarm/index.vue'),
name: 'smartFarmMain',
meta: { title: '智慧种植首页' },
},
{
path: '/sub-operation-service/smartFarm/fieldInspection',
component: () => import('@/views/smartFarm/inspection/fieldInspection.vue'),
name: 'fieldInspection',
meta: { title: '田间监测' },
},
{
path: '/sub-operation-service/smartFarm/waterInspection',
component: () => import('@/views/smartFarm/inspection/waterInspection.vue'),
name: 'waterInspection',
meta: { title: '水质监测' },
},
{
path: '/sub-operation-service/smartFarm/bugInspection',
component: () => import('@/views/smartFarm/inspection/bugInspection.vue'),
name: 'bugInspection',
meta: { title: '病虫害监测' },
},
{
path: '/sub-operation-service/smartFarm/envInspection',
component: () => import('@/views/smartFarm/inspection/envInspection.vue'),
name: 'envInspection',
meta: { title: '环境监测' },
},
{
path: '/sub-operation-service/smartFarm/intelligentFertilizer',
component: () => import('@/views/smartFarm/inspection/intelligentFertilizer.vue'),
name: 'intelligentFertilizer',
meta: { title: '智能配肥' },
},
{
path: '/sub-operation-service/smartFarm/IntelligentIrrigation',
component: () => import('@/views/smartFarm/inspection/IntelligentIrrigation.vue'),
name: 'IntelligentIrrigation',
meta: { title: '智能灌溉' },
},
{
path: '/sub-operation-service/smartFarm/IntelligentSeedSoaking',
component: () => import('@/views/smartFarm/inspection/IntelligentSeedSoaking.vue'),
name: 'IntelligentSeedSoaking',
meta: { title: '智能浸种' },
},
{
path: '/sub-operation-service/smartFarm/growSeedlings',
component: () => import('@/views/smartFarm/manageControl/growSeedlings.vue'),
name: 'growSeedlings',
meta: { title: '一体育苗' },
},
{
path: '/sub-operation-service/smartFarm/pestPrevention',
component: () => import('@/views/smartFarm/manageControl/pestPrevention.vue'),
name: 'pestPrevention',
meta: { title: '病虫害防治' },
},
{
path: '/sub-operation-service/smartFarm/irrigationSystem',
component: () => import('@/views/smartFarm/manageControl/irrigationSystem.vue'),
name: 'irrigationSystem',
meta: { title: '喷灌滴灌' },
},
{
path: '/sub-operation-service/smartFarm/drainageControl',
component: () => import('@/views/smartFarm/manageControl/drainageControl.vue'),
name: 'drainageControl',
meta: { title: '排集水控制' },
},
{
path: '/sub-operation-service/smartFarm/openCurtain',
component: () => import('@/views/smartFarm/manageControl/openCurtain.vue'),
name: 'openCurtain',
meta: { title: '开窗卷帘' },
},
],
},
{
path: '/sub-operation-service/ruralFinance',
name: 'ruralFinance',
component: Layout,
redirect: '/sub-operation-service/ruralFinance/index',
meta: { title: '涉农金融' },
children: [
{
path: '/sub-operation-service/ruralFinance/index',
component: () => import('@/views/error/blank.vue'),
name: 'ruralFinanceMain',
meta: { title: '涉农金融首页' },
},
// {
// path: '/sub-operation-service/ruralFinance/index',
// component: () => import('@/views/ruralFinance/index.vue'),
// name: 'ruralFinanceMain',
// meta: { title: '涉农金融首页' },
// },
],
},
{
path: '/sub-operation-service/packaging',
name: 'packaging',
component: Layout,
redirect: '/sub-operation-service/packaging/sorting',
meta: { title: '分拣包装' },
children: [
{
path: '/sub-operation-service/packaging/sorting',
component: () => import('@/views/error/blank.vue'),
name: 'sortingMain',
meta: { title: '分拣首页' },
},
// {
// path: '/sub-operation-service/packaging/sorting',
// component: () => import('@/views/packaging/sorting.vue'),
// name: 'sortingMain',
// meta: { title: '分拣首页' },
// },
{
path: '/sub-operation-service/packaging/index',
component: () => import('@/views/error/blank.vue'),
name: 'packagingMain',
meta: { title: '包装首页' },
},
// {
// path: '/sub-operation-service/packaging/index',
// component: () => import('@/views/packaging/index.vue'),
// name: 'packagingMain',
// meta: { title: '包装首页' },
// },
{
path: '/sub-operation-service/packaging/details',
component: () => import('@/views/packaging/details.vue'),
name: 'detailsMain',
meta: { title: '详情页' },
},
],
},
{
path: '/sub-operation-service/warehouseLogistics',
name: 'warehouseLogistics',
component: Layout,
redirect: '/sub-operation-service/warehouse',
meta: { title: '仓储物流' },
children: [
{
path: '/sub-operation-service/warehouse',
component: () => import('@/views/error/blank.vue'),
name: 'warehouseMain',
meta: { title: '仓储首页' },
},
// {
// path: '/sub-operation-service/warehouse',
// component: () => import('@/views/warehouseLogistics/warehouse/index.vue'),
// name: 'warehouseMain',
// meta: { title: '仓储首页' },
// },
{
path: '/sub-operation-service/warehouse-detail',
component: () => import('@/views/warehouseLogistics/warehouse/detail.vue'),
name: 'warehouse-detail',
meta: { title: '仓储详情' },
},
{
path: '/sub-operation-service/logistics',
component: () => import('@/views/error/blank.vue'),
name: 'logistics-list',
meta: { title: '物流首页' },
},
// {
// path: '/sub-operation-service/logistics',
// component: () => import('@/views/warehouseLogistics/logistics/index.vue'),
// name: 'logistics-list',
// meta: { title: '物流首页' },
// },
{
path: '/sub-operation-service/logistics-detail',
component: () => import('@/views/warehouseLogistics/logistics/detail.vue'),
name: 'logistics-detail',
meta: { title: '物流详情' },
},
],
},
{
path: '/sub-operation-service/brand',
name: 'brand',
component: Layout,
redirect: '/sub-operation-service/brand/apply', // 默认页
meta: { title: '公共品牌' },
children: [
{
path: 'apply',
component: BrandLayout,
meta: { title: '使用申请' },
name: 'brandList',
redirect: '/sub-operation-service/brand/apply',
children: [
{
path: '',
component: () => import('@/views/brand/components/ApplyList.vue'),
meta: { title: '使用申请', hideInBread: true },
name: 'brandApplyList',
},
{
path: 'detail',
component: () => import('@/views/brand/components/ApplyDetail.vue'),
meta: { title: '申请详情' },
name: 'brandApplyDetail',
},
],
},
{
path: 'auth',
component: BrandLayout,
meta: { title: '授权管理' },
name: 'authManage',
redirect: 'record',
children: [
{
path: 'record',
name: 'authRecord',
component: () => import('@/views/brand/components/Auth.vue'),
meta: { title: '授权记录' },
},
{
path: 'manage',
name: 'brandManage',
component: () => import('@/views/brand/components/BrandSystem.vue'),
meta: { title: '品牌使用管理' },
},
],
},
],
},
{
path: '/sub-operation-service/ecommerce',
name: 'ecommerce',
component: Layout,
redirect: '/sub-operation-service/ecommerce-agricultural',
meta: { title: '电商交易' },
children: [
{
path: '/sub-operation-service/ecommerce-agricultural',
component: Views,
name: 'agricultural',
meta: { title: '农资交易', headerActive: 'ecommerce' },
children: [
{
path: '',
component: () => import('@/views/ecommerce/index.vue'),
name: 'agriculturalMain',
meta: { title: '农资交易', headerActive: 'ecommerce', hideInBread: true },
},
{
path: 'ecommerce-agriculturalDetail',
component: Views,
name: 'agriculturalDetails',
meta: { title: '农资详情', headerActive: 'ecommerce' },
children: [
{
path: '',
component: () => import('@/views/ecommerce/agriculturalDetail.vue'),
name: 'agriculturalDetail',
meta: { title: '农资详情', headerActive: 'ecommerce', hideInBread: true },
},
{
path: 'source',
component: () => import('@/views/ecommerce/sourceCodeDetail.vue'),
name: 'sourceCodeDetail',
meta: { title: '农产品溯源详情', headerActive: 'ecommerce' },
},
],
},
],
},
{
path: '/sub-operation-service/purchaser',
component: Views,
redirect: '/sub-operation-service/ecommerce-purchaser',
name: 'purchaserParent',
meta: { title: '采购商服务', headerActive: 'ecommerce' },
children: [
{
path: '/sub-operation-service/ecommerce-purchaser',
component: () => import('@/views/ecommerce/purchaser.vue'),
name: 'purchaser',
meta: { title: '采购商服务', headerActive: 'ecommerce' },
},
{
path: '/sub-operation-service/ecommerce-purchaserDetail',
component: () => import('@/views/ecommerce/purchaserDetail.vue'),
name: 'purchaserDetail',
meta: { title: '采购详情', headerActive: 'ecommerce' },
},
],
},
{
path: '/sub-operation-service/ecommerce-supplier',
component: Views,
name: 'supplier',
meta: { title: '农产品交易', headerActive: 'ecommerce' },
children: [
{
path: '',
component: () => import('@/views/ecommerce/supplier.vue'),
name: 'supplierMain',
meta: { title: '农产品交易', headerActive: 'ecommerce', hideInBread: true },
},
{
path: 'detail',
component: Views,
name: 'supplierDetails',
meta: { title: '农产品详情', headerActive: 'ecommerce' },
children: [
{
path: '',
component: () => import('@/views/ecommerce/supplierDetail.vue'),
name: 'supplierDetail',
meta: { title: '农产品详情', headerActive: 'ecommerce', hideInBread: true },
},
{
path: 'source',
component: () => import('@/views/ecommerce/sourceCodeDetail.vue'),
name: 'sourceDetail',
meta: { title: '溯源详情', headerActive: 'ecommerce' },
},
],
},
],
},
{
path: '/sub-operation-service/ecommerce-land',
component: Views,
redirect: '/sub-operation-service/ecommerce-land',
name: 'landParent',
meta: { title: '土地交易', headerActive: 'ecommerce' },
children: [
{
path: '/sub-operation-service/ecommerce-land',
component: () => import('@/views/ecommerce/land.vue'),
name: 'land',
meta: { title: '土地交易', headerActive: 'ecommerce' },
},
{
path: '/sub-operation-service/ecommerce-landDetail',
component: () => import('@/views/ecommerce/landDetail.vue'),
name: 'landDetail',
meta: { title: '土地详情', headerActive: 'ecommerce' },
},
],
},
],
},
// ...demo,
];
/**
* @Title notFoundRouter(找不到路由)
*/
export const notFoundRouter = {
path: '/sub-operation-service/:pathMatch(.*)',
name: 'notFound',
redirect: '/sub-operation-service/404',
};
const router = createRouter({
history: createWebHistory(), // history
routes: constantRoutes,
});
router.beforeEach((to, from) => {
console.log(from.path);
console.log(to.path);
if (from.path === '/sub-operation-service/orderDetails' && to.path === '/sub-operation-service/userOrders') {
to.meta.keepAlive = true; // 从详情页返回列表页时启用缓存
}
});
export default router;