从 shccd159 合并 backend-adminend 子项目到 main
Made-with: Cursor
This commit is contained in:
203
backend-adminend/src/router/index.js
Normal file
203
backend-adminend/src/router/index.js
Normal file
@@ -0,0 +1,203 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
import Vue from 'vue';
|
||||
import Router from 'vue-router';
|
||||
|
||||
Vue.use(Router);
|
||||
|
||||
/* Layout */
|
||||
import Layout from '@/layout';
|
||||
|
||||
/* Router Modules */
|
||||
// import componentsRouter from './modules/components'
|
||||
import storeRouter from './modules/store';
|
||||
import orderRouter from './modules/order';
|
||||
import userRouter from './modules/user';
|
||||
import distributionRouter from './modules/distribution';
|
||||
import marketingRouter from './modules/marketing';
|
||||
import financialRouter from './modules/financial';
|
||||
import consignmentRouter from './modules/consignment';
|
||||
import contentRouter from './modules/content';
|
||||
import operationRouter from './modules/operation';
|
||||
import appSettingRouter from './modules/appSetting';
|
||||
import maintainRouter from './modules/maintain';
|
||||
import mobileRouter from './modules/mobile';
|
||||
import statistic from './modules/statistic';
|
||||
import designRouter from './modules/design';
|
||||
|
||||
/**
|
||||
* Note: sub-menu only appear when route children.length >= 1
|
||||
* Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html
|
||||
*
|
||||
* hidden: true if set true, item will not show in the sidebar(default is false)
|
||||
* alwaysShow: true if set true, will always show the root menu
|
||||
* if not set alwaysShow, when item has more than one children route,
|
||||
* it will becomes nested mode, otherwise not show the root menu
|
||||
* redirect: noRedirect if set noRedirect will no redirect in the breadcrumb
|
||||
* name:'router-name' the name is used by <keep-alive> (must set!!!)
|
||||
* meta : {
|
||||
roles: ['admin','editor'] control the page roles (you can set multiple roles)
|
||||
title: 'title' the name show in sidebar and breadcrumb (recommend set)
|
||||
icon: 'svg-name' the icon show in the sidebar
|
||||
noCache: true if set true, the page will no be cached(default is false)
|
||||
affix: true if set true, the tag will affix in the tags-view
|
||||
breadcrumb: false if set false, the item will hidden in breadcrumb(default is true)
|
||||
activeMenu: '/example/list' if set path, the sidebar will highlight the path you set
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* constantRoutes
|
||||
* a base page that does not have permission requirements
|
||||
* all roles can be accessed
|
||||
*
|
||||
*/
|
||||
|
||||
export const constantRoutes = [
|
||||
// 商品
|
||||
storeRouter,
|
||||
// 订单
|
||||
orderRouter,
|
||||
// 会员
|
||||
userRouter,
|
||||
// 分销
|
||||
distributionRouter,
|
||||
// 营销
|
||||
marketingRouter,
|
||||
// 财务
|
||||
financialRouter,
|
||||
// 商品寄卖服务
|
||||
consignmentRouter,
|
||||
// 内容
|
||||
contentRouter,
|
||||
// 设置
|
||||
operationRouter,
|
||||
// 应用
|
||||
appSettingRouter,
|
||||
// 维护
|
||||
maintainRouter,
|
||||
//移动端管理
|
||||
mobileRouter,
|
||||
// 统计管理
|
||||
statistic,
|
||||
//装修
|
||||
designRouter,
|
||||
{
|
||||
path: '/404',
|
||||
component: () => import('@/views/error-page/404'),
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
path: '/page/design/creatDevise/:id?/:type?',
|
||||
component: () => import('@/views/design/devise/creatDevise'),
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
path: '/redirect',
|
||||
component: Layout,
|
||||
hidden: true,
|
||||
children: [
|
||||
{
|
||||
path: '/redirect/:path(.*)',
|
||||
component: () => import('@/views/redirect/index'),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: '/auth-send',
|
||||
component: () => import('@/views/mobile/auth-send'),
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
path: '/order/detail/print',
|
||||
component: () => import('@/views/order/orderDetailPrint'),
|
||||
name: 'OrderDetailPrint',
|
||||
hidden: true,
|
||||
meta: { title: '订单详情打印' },
|
||||
},
|
||||
{
|
||||
path: '/login',
|
||||
component: () => import('@/views/login/index'),
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
path: '/auth-redirect',
|
||||
component: () => import('@/views/login/auth-redirect'),
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
path: '/401',
|
||||
component: () => import('@/views/error-page/401'),
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
path: '/',
|
||||
component: Layout,
|
||||
redirect: '/dashboard',
|
||||
children: [
|
||||
{
|
||||
path: 'dashboard',
|
||||
component: () => import('@/views/dashboard/index'),
|
||||
name: 'Dashboard',
|
||||
meta: { title: '主页', icon: 'dashboard', affix: true },
|
||||
},
|
||||
{
|
||||
path: 'product',
|
||||
name: `product`,
|
||||
meta: { title: '商品统计' },
|
||||
component: () => import('@/views/statistic/product/index'),
|
||||
},
|
||||
{
|
||||
path: 'statuser',
|
||||
name: `statuser`,
|
||||
meta: { title: '用户统计' },
|
||||
component: () => import('@/views/statistic/user/index'),
|
||||
},
|
||||
{
|
||||
path: 'transaction',
|
||||
name: `transaction`,
|
||||
meta: { title: '交易统计' },
|
||||
component: () => import('@/views/statistic/transaction/index'),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: '/setting/uploadPicture',
|
||||
component: () => import('@/components/uploadPicture/index.vue'),
|
||||
name: 'uploadPicture',
|
||||
},
|
||||
// 404 page must be placed at the end !!!
|
||||
{ path: '*', redirect: '/404', hidden: true },
|
||||
];
|
||||
|
||||
/**
|
||||
* asyncRoutes
|
||||
* the routes that need to be dynamically loaded based on user roles
|
||||
*/
|
||||
export const asyncRoutes = [];
|
||||
|
||||
const createRouter = () =>
|
||||
new Router({
|
||||
// mode: 'history', // require service support
|
||||
mode: 'history',
|
||||
scrollBehavior: () => ({ y: 0 }),
|
||||
routes: constantRoutes,
|
||||
});
|
||||
|
||||
const router = createRouter();
|
||||
|
||||
// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
|
||||
export function resetRouter() {
|
||||
const newRouter = createRouter();
|
||||
router.matcher = newRouter.matcher; // reset router
|
||||
}
|
||||
|
||||
export default router;
|
||||
106
backend-adminend/src/router/modules/appSetting.js
Normal file
106
backend-adminend/src/router/modules/appSetting.js
Normal file
@@ -0,0 +1,106 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
import Layout from '@/layout';
|
||||
|
||||
const appSettingRouter = {
|
||||
path: '/appSetting',
|
||||
component: Layout,
|
||||
redirect: '/appSetting/publicAccount/wxMenus',
|
||||
name: 'appSetting',
|
||||
meta: {
|
||||
title: '应用',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'publicAccount',
|
||||
name: 'publicAccount',
|
||||
component: () => import('@/views/appSetting/wxAccount'),
|
||||
meta: {
|
||||
title: '公众号',
|
||||
icon: 'clipboard',
|
||||
roles: ['admin'],
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'wxMenus',
|
||||
component: () => import('@/views/appSetting/wxAccount/wxMenus'),
|
||||
name: 'wxMenus',
|
||||
meta: { title: '微信菜单', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'wxReply',
|
||||
component: () => import('@/views/appSetting/wxAccount/reply/index'),
|
||||
name: 'wxReply',
|
||||
meta: { title: '自动回复', icon: '' },
|
||||
children: [
|
||||
{
|
||||
path: 'follow',
|
||||
component: () => import('@/views/appSetting/wxAccount/reply/follow'),
|
||||
name: 'wxFollow',
|
||||
meta: { title: '微信关注回复', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'keyword',
|
||||
component: () => import('@/views/appSetting/wxAccount/reply/keyword'),
|
||||
name: 'wxKeyword',
|
||||
meta: { title: '关键字回复', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'replyIndex',
|
||||
component: () => import('@/views/appSetting/wxAccount/reply/follow'),
|
||||
name: 'wxReplyIndex',
|
||||
meta: { title: '无效关键词回复', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'keyword/save/:id?',
|
||||
name: 'wechatKeywordAdd',
|
||||
meta: {
|
||||
title: '关键字添加',
|
||||
noCache: true,
|
||||
activeMenu: `/appSetting/publicAccount/wxReply/keyword`,
|
||||
},
|
||||
hidden: true,
|
||||
component: () => import('@/views/appSetting/wxAccount/reply/follow'),
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'publicRoutine',
|
||||
name: 'PublicRoutine',
|
||||
component: () => import('@/views/appSetting/routine'),
|
||||
meta: {
|
||||
title: '小程序',
|
||||
icon: 'clipboard',
|
||||
roles: ['admin'],
|
||||
hidden: true,
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'download',
|
||||
component: () => import('@/views/appSetting/routine/download/index.vue'),
|
||||
name: 'download',
|
||||
meta: { title: '小程序下载', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'deliveryManagement',
|
||||
component: () => import('@/views/appSetting/routine/deliveryManagement/index.vue'),
|
||||
name: 'deliveryManagement',
|
||||
meta: { title: '发货管理', icon: '' },
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default appSettingRouter;
|
||||
59
backend-adminend/src/router/modules/consignment.js
Normal file
59
backend-adminend/src/router/modules/consignment.js
Normal file
@@ -0,0 +1,59 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
import Layout from '@/layout';
|
||||
|
||||
const consignmentRouter = {
|
||||
path: '/consignment',
|
||||
component: Layout,
|
||||
redirect: '/consignment/merchandise',
|
||||
name: 'Consignment',
|
||||
meta: {
|
||||
title: '商品寄卖服务',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'merchandise',
|
||||
component: () => import('@/views/consignment/merchandise/index'),
|
||||
name: 'Merchandise',
|
||||
meta: { title: '寄售商品管理', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'merchandise/detail',
|
||||
component: () => import('@/views/consignment/merchandise/detail'),
|
||||
name: 'MerchandiseDetail',
|
||||
meta: { title: '寄售商品详情', noCache: true, activeMenu: '/consignment/merchandise' },
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
path: 'withdraw',
|
||||
component: () => import('@/views/consignment/withdraw/index'),
|
||||
name: 'Withdraw',
|
||||
meta: { title: '提现管理', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'withdraw/detail',
|
||||
component: () => import('@/views/consignment/withdraw/detail'),
|
||||
name: 'WithdrawDetail',
|
||||
meta: { title: '提现详情', noCache: true, activeMenu: '/consignment/withdraw' },
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
path: 'financial-log',
|
||||
component: () => import('@/views/consignment/financial-log/index'),
|
||||
name: 'FinancialLog',
|
||||
meta: { title: '财务日志管理', icon: '' },
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default consignmentRouter;
|
||||
|
||||
54
backend-adminend/src/router/modules/content.js
Normal file
54
backend-adminend/src/router/modules/content.js
Normal file
@@ -0,0 +1,54 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
import Layout from '@/layout';
|
||||
|
||||
const contentRouter = {
|
||||
path: '/content',
|
||||
component: Layout,
|
||||
redirect: '/content/articleManager',
|
||||
name: 'content',
|
||||
meta: {
|
||||
title: '内容',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'articleManager',
|
||||
name: 'articleManager',
|
||||
component: () => import('@/views/content/article/list'),
|
||||
meta: {
|
||||
title: '文章管理',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'articleCreat/:id?',
|
||||
name: 'articleCreat',
|
||||
component: () => import('@/views/content/article/edit'),
|
||||
meta: {
|
||||
title: '添加文章',
|
||||
noCache: true,
|
||||
activeMenu: `/content/articleManager`,
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'classifManager',
|
||||
name: 'classifManager',
|
||||
component: () => import('@/views/content/articleclass/list'),
|
||||
meta: {
|
||||
title: '文章分类',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default contentRouter;
|
||||
50
backend-adminend/src/router/modules/design.js
Normal file
50
backend-adminend/src/router/modules/design.js
Normal file
@@ -0,0 +1,50 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
import Layout from '@/layout';
|
||||
|
||||
const designRouter = {
|
||||
path: '/design',
|
||||
component: Layout,
|
||||
redirect: '/design/index',
|
||||
name: 'design',
|
||||
meta: {
|
||||
title: '装修',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'theme',
|
||||
name: 'theme',
|
||||
component: () => import('@/views/design/theme/index'),
|
||||
meta: {
|
||||
title: '一键换色',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'viewDesign',
|
||||
name: 'viewDesign',
|
||||
component: () => import('@/views/design/viewDesign/index'),
|
||||
meta: {
|
||||
title: '页面设计',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'devise',
|
||||
name: 'devise',
|
||||
component: () => import('@/views/design/devise/index'),
|
||||
meta: {
|
||||
title: '首页装修',
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default designRouter;
|
||||
38
backend-adminend/src/router/modules/distribution.js
Normal file
38
backend-adminend/src/router/modules/distribution.js
Normal file
@@ -0,0 +1,38 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
import Layout from '@/layout';
|
||||
|
||||
const distributionRouter = {
|
||||
path: '/distribution',
|
||||
component: Layout,
|
||||
redirect: '/distribution/index',
|
||||
name: 'Distribution',
|
||||
meta: {
|
||||
title: '分销',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'index',
|
||||
component: () => import('@/views/distribution/index'),
|
||||
name: 'distributionIndex',
|
||||
meta: { title: '分销员管理', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'distributionconfig',
|
||||
component: () => import('@/views/distribution/config/index'),
|
||||
name: 'distributionConfig',
|
||||
meta: { title: '分销配置', icon: '' },
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default distributionRouter;
|
||||
68
backend-adminend/src/router/modules/financial.js
Normal file
68
backend-adminend/src/router/modules/financial.js
Normal file
@@ -0,0 +1,68 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
import Layout from '@/layout';
|
||||
|
||||
const financialRouter = {
|
||||
path: '/financial',
|
||||
component: Layout,
|
||||
redirect: '/financial',
|
||||
name: 'Financial',
|
||||
meta: {
|
||||
title: '财务',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'commission',
|
||||
component: () => import('@/views/financial/index'),
|
||||
name: 'Commission',
|
||||
meta: { title: '财务操作', icon: '' },
|
||||
alwaysShow: true,
|
||||
children: [
|
||||
{
|
||||
path: 'template',
|
||||
component: () => import('@/views/financial/commission/withdrawal/index'),
|
||||
name: 'commissionTemplate',
|
||||
meta: { title: '申请提现', icon: '' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'record',
|
||||
component: () => import('@/views/financial/record/index'),
|
||||
name: 'financialRecord',
|
||||
meta: { title: '财务记录', icon: '' },
|
||||
alwaysShow: true,
|
||||
children: [
|
||||
{
|
||||
path: 'charge',
|
||||
component: () => import('@/views/financial/record/charge/index'),
|
||||
name: 'Charge',
|
||||
meta: { title: '充值记录', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'monitor',
|
||||
component: () => import('@/views/financial/record/monitor/index'),
|
||||
name: 'Monitor',
|
||||
meta: { title: '资金监控', icon: '' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'brokerage',
|
||||
component: () => import('@/views/financial/brokerage/index'),
|
||||
name: 'Brokerage',
|
||||
meta: { title: '佣金记录', icon: '' },
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default financialRouter;
|
||||
176
backend-adminend/src/router/modules/maintain.js
Normal file
176
backend-adminend/src/router/modules/maintain.js
Normal file
@@ -0,0 +1,176 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
/** When your routing table is too long, you can split it into small modules **/
|
||||
|
||||
import Layout from '@/layout';
|
||||
|
||||
const maintainRouter = {
|
||||
path: '/maintain',
|
||||
component: Layout,
|
||||
redirect: '/maintain/devconfiguration/configCategory',
|
||||
name: 'maintain',
|
||||
meta: {
|
||||
title: '维护',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'devconfiguration',
|
||||
name: 'devconfiguration',
|
||||
component: () => import('@/views/maintain'),
|
||||
meta: {
|
||||
title: '开发配置',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'configCategory',
|
||||
name: 'configCategory',
|
||||
component: () => import('@/views/maintain/devconfig/configCategroy'),
|
||||
meta: {
|
||||
title: '配置分类',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'combineddata',
|
||||
name: 'combineddata',
|
||||
component: () => import('@/views/maintain/devconfig/combinedData'),
|
||||
meta: {
|
||||
title: '组合数据',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'formConfig',
|
||||
name: 'formConfig',
|
||||
component: () => import('@/views/maintain/formConfig/index'),
|
||||
meta: {
|
||||
title: '表单配置',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'user',
|
||||
name: 'user',
|
||||
component: () => import('@/views/maintain/user'),
|
||||
meta: {
|
||||
title: '个人中心',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
path: 'update',
|
||||
name: 'update',
|
||||
component: () => import('@/views/maintain/user/update'),
|
||||
meta: {
|
||||
title: '修改密码',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
path: 'picture',
|
||||
name: 'picture',
|
||||
component: () => import('@/views/maintain/picture'),
|
||||
meta: {
|
||||
title: '素材管理',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
hidden: false,
|
||||
},
|
||||
{
|
||||
path: 'authCRMEB',
|
||||
name: 'authCRMEB',
|
||||
component: () => import('@/views/maintain/authCRMEB'),
|
||||
meta: {
|
||||
title: '授权',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
hidden: false,
|
||||
}, //sensitiveList
|
||||
{
|
||||
path: 'logistics',
|
||||
name: 'Logistics',
|
||||
alwaysShow: true,
|
||||
redirect: '/logistics/cityList',
|
||||
component: () => import('@/views/maintain'),
|
||||
meta: {
|
||||
title: '物流设置',
|
||||
icon: 'clipboard',
|
||||
roles: ['admin'],
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'cityList',
|
||||
component: () => import('@/views/maintain/logistics/cityList'),
|
||||
name: 'cityList',
|
||||
meta: { title: '城市数据', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'companyList',
|
||||
component: () => import('@/views/maintain/logistics/companyList'),
|
||||
name: 'companyList',
|
||||
meta: { title: '物流公司', icon: '' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'sensitiveLog',
|
||||
name: 'sensitiveLog',
|
||||
component: () => import('@/views/maintain/sensitiveList'),
|
||||
meta: {
|
||||
title: '敏感操作日志',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
hidden: false,
|
||||
},
|
||||
{
|
||||
path: 'clearCache',
|
||||
name: 'clearCache',
|
||||
component: () => import('@/views/maintain/clearCache'),
|
||||
meta: {
|
||||
title: '缓存清除',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
hidden: false,
|
||||
},
|
||||
{
|
||||
path: 'schedule',
|
||||
name: 'schedule',
|
||||
component: () => import('@/views/maintain/schedule'),
|
||||
meta: {
|
||||
title: '定时任务管理',
|
||||
icon: 'clipboard',
|
||||
roles: ['admin'],
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'list',
|
||||
component: () => import('@/views/maintain/schedule/list'),
|
||||
name: 'list',
|
||||
meta: { title: '定时任务', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'logList',
|
||||
component: () => import('@/views/maintain/schedule/logList'),
|
||||
name: 'logList',
|
||||
meta: { title: '定时任务日志', icon: '' },
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default maintainRouter;
|
||||
250
backend-adminend/src/router/modules/marketing.js
Normal file
250
backend-adminend/src/router/modules/marketing.js
Normal file
@@ -0,0 +1,250 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
/** When your routing table is too long, you can split it into small modules **/
|
||||
|
||||
import Layout from '@/layout';
|
||||
|
||||
const marketingRouter = {
|
||||
path: '/marketing',
|
||||
component: Layout,
|
||||
redirect: '/coupon/list',
|
||||
name: 'Marketing',
|
||||
meta: {
|
||||
title: '营销',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'coupon',
|
||||
component: () => import('@/views/marketing/coupon/index'),
|
||||
name: 'Coupon',
|
||||
meta: { title: '优惠券', icon: '' },
|
||||
children: [
|
||||
{
|
||||
path: 'template',
|
||||
component: () => import('@/views/marketing/coupon/couponTemplate/index'),
|
||||
name: 'couponTemplate',
|
||||
hidden: true,
|
||||
meta: { title: '优惠券模板', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'list/save/:id?',
|
||||
name: 'couponAdd',
|
||||
meta: {
|
||||
title: '优惠劵添加',
|
||||
noCache: true,
|
||||
activeMenu: `/marketing/coupon/list`,
|
||||
},
|
||||
hidden: true,
|
||||
component: () => import('@/views/marketing/coupon/list/creatCoupon'),
|
||||
},
|
||||
{
|
||||
path: 'list',
|
||||
component: () => import('@/views/marketing/coupon/list/index'),
|
||||
name: 'List',
|
||||
meta: { title: '优惠券列表', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'record',
|
||||
component: () => import('@/views/marketing/coupon/record/index'),
|
||||
name: 'Record',
|
||||
meta: { title: '领取记录', icon: '' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'bargain',
|
||||
component: () => import('@/views/marketing/bargain/index'),
|
||||
name: 'Bargain',
|
||||
meta: { title: '砍价管理', icon: '' },
|
||||
alwaysShow: true,
|
||||
hidden: true,
|
||||
children: [
|
||||
{
|
||||
path: 'bargainGoods',
|
||||
component: () => import('@/views/marketing/bargain/bargainGoods/index'),
|
||||
name: 'bargainGoods',
|
||||
meta: { title: '砍价商品', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'creatBargain/:id?',
|
||||
component: () => import('@/views/marketing/bargain/bargainGoods/creatBargain'),
|
||||
name: 'creatBargain',
|
||||
meta: { title: '砍价商品', icon: '', noCache: true, activeMenu: `/marketing/bargain/bargainGoods` },
|
||||
},
|
||||
{
|
||||
path: 'bargainList',
|
||||
component: () => import('@/views/marketing/bargain/bargainList/index'),
|
||||
name: 'bargainList',
|
||||
meta: { title: '砍价列表', icon: '' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'groupBuy',
|
||||
component: () => import('@/views/marketing/groupBuy/index'),
|
||||
name: 'groupBuy',
|
||||
meta: { title: '拼团管理', icon: '' },
|
||||
hidden: true,
|
||||
children: [
|
||||
{
|
||||
path: 'groupGoods',
|
||||
component: () => import('@/views/marketing/groupBuy/groupGoods/index'),
|
||||
name: 'groupGoods',
|
||||
meta: { title: '拼团商品', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'creatGroup/:id?/:type?',
|
||||
component: () => import('@/views/marketing/groupBuy/groupGoods/creatGroup'),
|
||||
name: 'creatGroup',
|
||||
meta: { title: '拼团商品', icon: '', noCache: true, activeMenu: `/marketing/groupBuy/groupGoods` },
|
||||
},
|
||||
{
|
||||
path: 'groupList',
|
||||
component: () => import('@/views/marketing/groupBuy/groupList/index'),
|
||||
name: 'groupList',
|
||||
meta: { title: '拼团列表', icon: '' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'seckill',
|
||||
component: () => import('@/views/marketing/seckill/index'),
|
||||
name: 'Seckill',
|
||||
meta: { title: '秒杀管理', icon: '' },
|
||||
children: [
|
||||
{
|
||||
path: 'config',
|
||||
component: () => import('@/views/marketing/seckill/seckillConfig/index'),
|
||||
name: 'SeckillConfig',
|
||||
meta: { title: '秒杀配置', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'list/:timeId?',
|
||||
component: () => import('@/views/marketing/seckill/seckillList/index'),
|
||||
name: 'SeckillList',
|
||||
meta: { title: '秒杀商品', icon: '', noCache: true, activeMenu: `/marketing/seckill/list` },
|
||||
},
|
||||
{
|
||||
path: 'creatSeckill/:name?/:timeId?/:id?',
|
||||
component: () => import('@/views/marketing/seckill/seckillList/creatSeckill'),
|
||||
name: 'CreatSeckill',
|
||||
meta: { title: '添加秒杀商品', icon: '', noCache: true, activeMenu: `/marketing/seckill/list` },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'integral',
|
||||
component: () => import('@/views/marketing/integral/index'),
|
||||
name: 'Integral',
|
||||
meta: { title: '积分', icon: '' },
|
||||
children: [
|
||||
{
|
||||
path: 'integralconfig',
|
||||
component: () => import('@/views/marketing/integral/config/index'),
|
||||
name: 'integralConfig',
|
||||
meta: { title: '积分配置', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'integrallog',
|
||||
component: () => import('@/views/marketing/integral/integralLog/index'),
|
||||
name: 'integralLog',
|
||||
meta: { title: '积分日志', icon: '' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'videoChannel',
|
||||
component: () => import('@/views/marketing/integral/index'),
|
||||
name: 'videoChannel',
|
||||
meta: { title: '视频号管理', icon: '' },
|
||||
children: [
|
||||
{
|
||||
path: 'list',
|
||||
component: () => import('@/views/marketing/videoChannel/videoList/index'),
|
||||
name: 'VideoChannelList',
|
||||
meta: { title: '商品列表', icon: '', noCache: true },
|
||||
},
|
||||
{
|
||||
path: 'creatVideoChannel/:id?',
|
||||
component: () => import('@/views/marketing/videoChannel/draftList/creatVideoChannel'),
|
||||
name: 'CreatVideoChannel',
|
||||
meta: { title: '添加视频号商品', icon: '', noCache: true, activeMenu: `/marketing/videoChannel/draftList` },
|
||||
},
|
||||
{
|
||||
path: 'draftList',
|
||||
component: () => import('@/views/marketing/videoChannel/draftList/index'),
|
||||
name: 'draftList',
|
||||
meta: { title: '草稿列表', icon: '', noCache: true },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'atmosphere',
|
||||
name: 'atmosphere',
|
||||
meta: {
|
||||
title: '活动氛围',
|
||||
noCache: true,
|
||||
},
|
||||
component: () => import('@/views/marketing/atmosphere/index'),
|
||||
children: [
|
||||
{
|
||||
path: 'list',
|
||||
name: `atmosphereList`,
|
||||
meta: {
|
||||
title: '氛围列表',
|
||||
noCache: true,
|
||||
},
|
||||
component: () => import('@/views/marketing/atmosphere/atmosphereList/list'),
|
||||
},
|
||||
{
|
||||
path: 'add/:id?',
|
||||
name: `addAtmosphere`,
|
||||
meta: {
|
||||
title: '添加活动氛围',
|
||||
noCache: true,
|
||||
activeMenu: `/marketing/atmosphere/list`,
|
||||
},
|
||||
component: () => import('@/views/marketing/atmosphere/atmosphereList/addAtmosphere'),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'border',
|
||||
name: 'border',
|
||||
meta: { title: '活动边框', icon: '' },
|
||||
component: () => import('@/views/marketing/border/index'),
|
||||
children: [
|
||||
{
|
||||
path: 'list',
|
||||
name: `borderList`,
|
||||
meta: {
|
||||
title: '活动边框列表',
|
||||
noCache: true,
|
||||
},
|
||||
component: () => import('@/views/marketing/atmosphere/atmosphereList/list'),
|
||||
},
|
||||
{
|
||||
path: 'add/:id?',
|
||||
name: `addBorder`,
|
||||
meta: {
|
||||
title: '添加活动边框',
|
||||
noCache: true,
|
||||
activeMenu: `/marketing/border/list`,
|
||||
},
|
||||
component: () => import('@/views/marketing/atmosphere/atmosphereList/addAtmosphere'),
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default marketingRouter;
|
||||
63
backend-adminend/src/router/modules/mobile.js
Normal file
63
backend-adminend/src/router/modules/mobile.js
Normal file
@@ -0,0 +1,63 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
import Layout from '@/layout';
|
||||
|
||||
const mobileRouter = {
|
||||
path: '/javaMobile',
|
||||
component: Layout,
|
||||
redirect: '/javaMobile/index',
|
||||
name: 'Mobile',
|
||||
alwaysShow: true,
|
||||
meta: {
|
||||
title: '移动端',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'orderCancellation',
|
||||
component: () => import('@/views/mobile/orderCancellation/index.vue'),
|
||||
name: 'OrderCancellation',
|
||||
meta: { title: '订单核销', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'orderStatistics',
|
||||
component: () => import('@/views/mobile/orderStatistics/index.vue'),
|
||||
name: 'OrderStatistics',
|
||||
meta: { title: '订单统计' },
|
||||
},
|
||||
{
|
||||
path: 'orderList/:types?',
|
||||
component: () => import('@/views/mobile/orderStatistics/orderList.vue'),
|
||||
name: 'OrderList',
|
||||
meta: { title: '订单列表' },
|
||||
},
|
||||
{
|
||||
path: 'orderDelivery/:oid/:id?',
|
||||
component: () => import('@/views/mobile/orderStatistics/orderDelivery.vue'),
|
||||
name: 'OrderDelivery',
|
||||
meta: { title: '订单发货' },
|
||||
},
|
||||
{
|
||||
path: 'orderDetail/:id?/:goname?',
|
||||
component: () => import('@/views/mobile/orderStatistics/orderDetail.vue'),
|
||||
name: 'OrderDetail',
|
||||
meta: { title: '订单详情' },
|
||||
},
|
||||
{
|
||||
path: 'orderStatisticsDetail/:type/:time?',
|
||||
component: () => import('@/views/mobile/orderStatistics/Statistics.vue'),
|
||||
name: 'OrderStatisticsDetail',
|
||||
meta: { title: '订单数据统计' },
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default mobileRouter;
|
||||
190
backend-adminend/src/router/modules/operation.js
Normal file
190
backend-adminend/src/router/modules/operation.js
Normal file
@@ -0,0 +1,190 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
import Layout from '@/layout';
|
||||
|
||||
const operationRouter = {
|
||||
path: '/operation',
|
||||
component: Layout,
|
||||
redirect: '/operation/setting',
|
||||
name: 'Operation',
|
||||
meta: {
|
||||
title: '设置',
|
||||
icon: 'clipboard',
|
||||
roles: ['admin'],
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'setting',
|
||||
name: 'setting',
|
||||
component: () => import('@/views/systemSetting/setting'),
|
||||
meta: {
|
||||
title: '系统设置',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'guide',
|
||||
name: 'guide',
|
||||
component: () => import('@/views/systemSetting/guide'),
|
||||
meta: {
|
||||
title: '配置引导',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'notification',
|
||||
name: 'notification',
|
||||
component: () => import('@/views/systemSetting/notification'),
|
||||
meta: {
|
||||
title: '消息通知',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'onePass',
|
||||
name: 'onePass',
|
||||
component: () => import('@/views/sms/smsConfig/index'),
|
||||
meta: {
|
||||
title: '一号通',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'onePassConfig',
|
||||
name: 'onePassConfig',
|
||||
component: () => import('@/views/sms/smsConfig/config'),
|
||||
meta: {
|
||||
title: '一号通配置',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'roleManager',
|
||||
name: 'RoleManager',
|
||||
component: () => import('@/views/systemSetting/administratorAuthority'),
|
||||
meta: {
|
||||
title: '管理权限',
|
||||
icon: 'clipboard',
|
||||
roles: ['admin'],
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'identityManager',
|
||||
component: () => import('@/views/systemSetting/administratorAuthority/identityManager'),
|
||||
name: 'identityManager',
|
||||
meta: { title: '角色管理', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'adminList',
|
||||
component: () => import('@/views/systemSetting/administratorAuthority/adminList'),
|
||||
name: 'adminList',
|
||||
meta: { title: '管理员列表', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'promiseRules',
|
||||
component: () => import('@/views/systemSetting/administratorAuthority/permissionRules'),
|
||||
name: 'promiseRules',
|
||||
meta: { title: '权限规则', icon: '' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'systemSms',
|
||||
component: () => import('@/views/sms'),
|
||||
name: 'systemSms',
|
||||
meta: {
|
||||
title: '短信设置',
|
||||
icon: 'clipboard',
|
||||
roles: ['admin'],
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'config',
|
||||
component: () => import('@/views/sms/smsConfig'),
|
||||
name: 'SmsConfig',
|
||||
meta: { title: '短信账户', noCache: true },
|
||||
},
|
||||
{
|
||||
path: 'template',
|
||||
component: () => import('@/views/sms/smsTemplate'),
|
||||
name: 'SmsTemplate',
|
||||
meta: { title: '短信模板', noCache: true, activeMenu: `/operation/onePass` },
|
||||
},
|
||||
{
|
||||
path: 'pay',
|
||||
component: () => import('@/views/sms/smsPay'),
|
||||
name: 'SmsPay',
|
||||
meta: { title: '短信购买', noCache: true, activeMenu: `/operation/onePass` },
|
||||
},
|
||||
{
|
||||
path: 'message',
|
||||
component: () => import('@/views/sms/smsMessage'),
|
||||
name: 'SmsMessage',
|
||||
meta: { title: '短信开关', noCache: true },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'deliverGoods',
|
||||
name: 'deliverGoods',
|
||||
alwaysShow: true,
|
||||
component: () => import('@/views/systemSetting/deliverGoods'),
|
||||
meta: {
|
||||
title: '发货设置',
|
||||
roles: ['admin'],
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'takeGoods',
|
||||
component: () => import('@/views/systemSetting/deliverGoods/takeGoods'),
|
||||
name: 'takeGoods',
|
||||
meta: { title: '提货设置', noCache: true, roles: ['admin'] },
|
||||
children: [
|
||||
{
|
||||
path: 'deliveryAddress',
|
||||
component: () => import('@/views/systemSetting/deliverGoods/takeGoods/deliveryAddress'),
|
||||
name: 'deliveryAddress',
|
||||
meta: { title: '提货点', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'collateOrder',
|
||||
component: () => import('@/views/systemSetting/deliverGoods/takeGoods/collateOrder'),
|
||||
name: 'collateOrder',
|
||||
meta: { title: '核销订单', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'collateUser',
|
||||
component: () => import('@/views/systemSetting/deliverGoods/takeGoods/collateUser'),
|
||||
name: 'collateUser',
|
||||
meta: { title: '核销员', icon: '' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'freightSet',
|
||||
component: () => import('@/views/systemSetting/deliverGoods/freightSet'),
|
||||
name: 'freightSet',
|
||||
meta: { title: '运费模板', noCache: true },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: 'agreement',
|
||||
name: 'agreement',
|
||||
component: () => import('@/views/systemSetting/agreement'),
|
||||
meta: {
|
||||
title: '协议管理',
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default operationRouter; //collate
|
||||
33
backend-adminend/src/router/modules/order.js
Normal file
33
backend-adminend/src/router/modules/order.js
Normal file
@@ -0,0 +1,33 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
import Layout from '@/layout';
|
||||
|
||||
const orderRouter = {
|
||||
path: '/order',
|
||||
component: Layout,
|
||||
redirect: '/order/index',
|
||||
name: 'Order',
|
||||
alwaysShow: true,
|
||||
meta: {
|
||||
title: '订单',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'index',
|
||||
component: () => import('@/views/order/index'),
|
||||
name: 'OrderIndex',
|
||||
meta: { title: '订单' },
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default orderRouter;
|
||||
59
backend-adminend/src/router/modules/statistic.js
Normal file
59
backend-adminend/src/router/modules/statistic.js
Normal file
@@ -0,0 +1,59 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
import Layout from '@/layout';
|
||||
|
||||
const orderRouter = {
|
||||
path: '/statistic',
|
||||
component: Layout,
|
||||
redirect: '/statistic/product',
|
||||
name: 'statistic',
|
||||
alwaysShow: true,
|
||||
meta: {
|
||||
title: '统计管理',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'product',
|
||||
name: `product`,
|
||||
meta: { title: '商品统计' },
|
||||
component: () => import('@/views/statistic/product/index'),
|
||||
// children: [
|
||||
// {
|
||||
// path: 'visualization',
|
||||
// component: () => import('@/views/statistic/product/visualization'),
|
||||
// name: 'visualization',
|
||||
// meta: { title: '统计', icon: '' }
|
||||
// },
|
||||
// {
|
||||
// path: 'tableData',
|
||||
// component: () => import('@/views/statistic/product/tableData'),
|
||||
// name: 'tableData',
|
||||
// meta: { title: '商品排行', icon: '' }
|
||||
// },
|
||||
// ]
|
||||
},
|
||||
{
|
||||
path: 'statuser',
|
||||
name: `statuser`,
|
||||
meta: { title: '用户统计' },
|
||||
component: () => import('@/views/statistic/user/index'),
|
||||
},
|
||||
{
|
||||
path: 'transaction',
|
||||
name: `transaction`,
|
||||
meta: { title: '交易统计' },
|
||||
component: () => import('@/views/statistic/transaction/index'),
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default orderRouter;
|
||||
57
backend-adminend/src/router/modules/store.js
Normal file
57
backend-adminend/src/router/modules/store.js
Normal file
@@ -0,0 +1,57 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
import Layout from '@/layout';
|
||||
|
||||
const storeRouter = {
|
||||
path: '/store',
|
||||
component: Layout,
|
||||
redirect: '/store/index',
|
||||
name: 'Store',
|
||||
meta: {
|
||||
title: '商品',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'index',
|
||||
component: () => import('@/views/store/index'),
|
||||
name: 'StoreIndex',
|
||||
meta: { title: '商品管理', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'sort',
|
||||
component: () => import('@/views/store/sort/index'),
|
||||
name: 'Sort',
|
||||
meta: { title: '商品分类', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'attr',
|
||||
component: () => import('@/views/store/storeAttr/index'),
|
||||
name: 'SortAttr',
|
||||
meta: { title: '商品规格', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'comment',
|
||||
component: () => import('@/views/store/storeComment/index'),
|
||||
name: 'StoreComment',
|
||||
meta: { title: '商品评论', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'list/creatProduct/:id?/:isDisabled?',
|
||||
component: () => import('@/views/store/creatStore/index'),
|
||||
name: 'SortCreat',
|
||||
meta: { title: '商品添加', noCache: true, activeMenu: `/store/index` },
|
||||
hidden: true,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default storeRouter;
|
||||
50
backend-adminend/src/router/modules/user.js
Normal file
50
backend-adminend/src/router/modules/user.js
Normal file
@@ -0,0 +1,50 @@
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2025 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
import Layout from '@/layout';
|
||||
|
||||
const userRouter = {
|
||||
path: '/user',
|
||||
component: Layout,
|
||||
redirect: '/user/index',
|
||||
name: 'User',
|
||||
meta: {
|
||||
title: '用户',
|
||||
icon: 'clipboard',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'index',
|
||||
component: () => import('@/views/user/list/index'),
|
||||
name: 'UserIndex',
|
||||
meta: { title: '用户管理', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'grade',
|
||||
component: () => import('@/views/user/grade/index'),
|
||||
name: 'Grade',
|
||||
meta: { title: '用户等级', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'label',
|
||||
component: () => import('@/views/user/group/index'),
|
||||
name: 'Label',
|
||||
meta: { title: '用户标签', icon: '' },
|
||||
},
|
||||
{
|
||||
path: 'group',
|
||||
component: () => import('@/views/user/group/index'),
|
||||
name: 'Group',
|
||||
meta: { title: '用户分组', icon: '' },
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default userRouter;
|
||||
Reference in New Issue
Block a user