我们发布啦

This commit is contained in:
张乐
2020-08-13 16:12:57 +08:00
parent a3e1c38d27
commit c0cec49f41
1885 changed files with 376936 additions and 2 deletions

255
admin/src/router/index.js Normal file
View File

@@ -0,0 +1,255 @@
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 contentRouter from './modules/content'
import operationRouter from './modules/operation'
import appSettingRouter from './modules/appSetting'
import maintainRouter from './modules/maintain'
/**
* 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,
// 内容
contentRouter,
// 设置
operationRouter,
// 应用
appSettingRouter,
// 维护
maintainRouter,
// 数据
{
path: '/datas',
component: Layout,
redirect: '/datas',
name: 'Datas',
meta: {
title: '数据',
icon: 'clipboard'
},
children: [
{
path: 'transaction',
component: () => import('@/views/datas/transaction/index'),
name: 'Transaction',
meta: { title: '交易数据', icon: '' },
children: [
{
path: 'transactionorder',
component: () => import('@/views/datas/transaction/order/index'),
name: 'transactionOrder',
meta: { title: '订单统计', icon: '' }
},
{
path: 'transactiongoods',
component: () => import('@/views/datas/transaction/goods/index'),
name: 'transactionGoods',
meta: { title: '商品统计', icon: '' }
}
]
},
{
path: 'bargain',
component: () => import('@/views/marketing/bargain/index'),
name: 'datasBargain',
meta: { title: '砍价管理', icon: '' },
alwaysShow: true,
children: [
{
path: 'bargainGoods',
component: () => import('@/views/marketing/bargain/index'),
name: 'datasBargainGoods',
meta: { title: '砍价商品', icon: '' }
}
]
},
{
path: 'groupBuy',
component: () => import('@/views/marketing/groupBuy/index'),
name: 'datasGroupBuy',
meta: { title: '拼团管理', icon: '' },
children: [
{
path: 'groupGoods',
component: () => import('@/views/marketing/groupBuy/goods/index'),
name: 'DatasGroupGoods',
meta: { title: '拼团商品', icon: '' }
},
{
path: 'groupList',
component: () => import('@/views/marketing/groupBuy/list/list'),
name: 'DatasGroupList',
meta: { title: '拼团列表', icon: '' }
}
]
},
{
path: 'spike',
component: () => import('@/views/marketing/spike/index'),
name: 'DatasSpike',
meta: { title: '秒杀管理', icon: '' },
children: [
{
path: 'spikeconfig',
component: () => import('@/views/marketing/spike/config/index'),
name: 'DatasSpikeConfig',
meta: { title: '秒杀配置', icon: '' }
},
{
path: 'bargainList',
component: () => import('@/views/marketing/spike/googs/index'),
name: 'DatasBargainList',
meta: { title: '秒杀商品', icon: '' }
}
]
},
{
path: 'integral',
component: () => import('@/views/marketing/integral/index'),
name: 'DatasIntegral',
meta: { title: '积分', icon: '' },
children: [
{
path: 'integralconfig',
component: () => import('@/views/marketing/integral/config/index'),
name: 'DatasIntegralConfig',
meta: { title: '积分配置', icon: '' }
},
{
path: 'integrallog',
component: () => import('@/views/marketing/integral/log/index'),
name: 'DatasIntegralLog',
meta: { title: '积分日志', icon: '' }
}
]
}
]
},
{
path: '/404',
component: () => import('@/views/error-page/404'),
hidden: true
},
{
path: '/redirect',
component: Layout,
hidden: true,
children: [
{
path: '/redirect/:path(.*)',
component: () => import('@/views/redirect/index')
}
]
},
{
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: '/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

View File

@@ -0,0 +1,96 @@
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: 'template',
component: () => import('@/views/appSetting/wxAccount/wxTemplate'),
name: 'wxTemplate',
meta: { title: '微信模板消息', icon: '' }
}
]
},
{
path: 'publicRoutine',
name: 'PublicRoutine',
component: () => import('@/views/appSetting/routine'),
meta: {
title: '小程序',
icon: 'clipboard',
roles: ['admin'],
hidden: true
},
children: [
{
path: 'routineTemplate',
component: () => import('@/views/appSetting/wxAccount/wxTemplate'),
name: 'RoutineTemplate',
meta: { title: '小程序订阅消息', icon: '' }
}
]
}
]
}
export default appSettingRouter

View File

@@ -0,0 +1,36 @@
/** When your routing table is too long, you can split it into small modules**/
import Layout from '@/layout'
const chartsRouter = {
path: '/charts',
component: Layout,
redirect: 'noRedirect',
name: 'Charts',
meta: {
title: 'Charts',
icon: 'chart'
},
children: [
{
path: 'keyboard',
component: () => import('@/views/charts/keyboard'),
name: 'KeyboardChart',
meta: { title: 'Keyboard Chart', noCache: true }
},
{
path: 'line',
component: () => import('@/views/charts/line'),
name: 'LineChart',
meta: { title: 'Line Chart', noCache: true }
},
{
path: 'mix-chart',
component: () => import('@/views/charts/mix-chart'),
name: 'MixChart',
meta: { title: 'Mix Chart', noCache: true }
}
]
}
export default chartsRouter

View File

@@ -0,0 +1,34 @@
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: 'classifManager',
name: 'classifManager',
component: () => import('@/views/content/articleclass/list'),
meta: {
title: '文章分类',
icon: 'clipboard'
}
}
]
}
export default contentRouter

View File

@@ -0,0 +1,28 @@
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

View File

@@ -0,0 +1,58 @@
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

View File

@@ -0,0 +1,66 @@
/** 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
}
]
}
export default maintainRouter

View File

@@ -0,0 +1,134 @@
/** 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: '/marketing/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/index'),
name: 'bargainGoods',
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/goods/index'),
name: 'groupGoods',
meta: { title: '拼团商品', icon: '' }
},
{
path: 'groupList',
component: () => import('@/views/marketing/groupBuy/list/list'),
name: 'groupList',
meta: { title: '拼团列表', icon: '' }
}
]
},
{
path: 'spike',
component: () => import('@/views/marketing/spike/index'),
name: 'Spike',
meta: { title: '秒杀管理', icon: '' },
hidden: true,
children: [
{
path: 'spikeconfig',
component: () => import('@/views/marketing/spike/config/index'),
name: 'spikeConfig',
meta: { title: '秒杀配置', icon: '' }
},
{
path: 'bargainList',
component: () => import('@/views/marketing/spike/googs/index'),
name: 'bargainList',
meta: { title: '秒杀商品', icon: '' }
}
]
},
{
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/log/index'),
name: 'integralLog',
meta: { title: '积分日志', icon: '' }
}
]
}
]
}
export default marketingRouter

View File

@@ -0,0 +1,162 @@
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: '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: 'logistics',
name: 'Logistics',
alwaysShow: true,
redirect: '/logistics/cityList',
component: () => import('@/views/systemSetting/administratorAuthority'),
meta: {
title: '物流设置',
icon: 'clipboard',
roles: ['admin']
},
children: [
{
path: 'cityList',
component: () => import('@/views/systemSetting/logistics/cityList'),
name: 'cityList',
meta: { title: '城市数据', icon: '' }
},
{
path: 'companyList',
component: () => import('@/views/systemSetting/logistics/companyList'),
name: 'companyList',
meta: { title: '物流公司', icon: '' }
},
{
path: 'shippingTemplates',
component: () => import('@/views/systemSetting/logistics/shippingTemplates'),
name: 'shippingTemplates',
meta: { title: '运费模板', icon: '' }
},
{
path: 'logisticsConfig',
component: () => import('@/views/systemSetting/logistics/config'),
name: 'logisticsConfig',
meta: { title: '物流配置', icon: '' }
}
]
},
{
path: 'systemStore',
name: 'SystemStore',
alwaysShow: true,
redirect: '/systemStore/point',
component: () => import('@/views/systemSetting/systemStore'),
meta: {
title: '提货点设置',
icon: 'clipboard',
roles: ['admin']
},
children: [
{
path: 'point',
component: () => import('@/views/systemSetting/systemStore/point'),
name: 'point',
meta: { title: '提货点', icon: '' }
},
{
path: 'clerkList',
component: () => import('@/views/systemSetting/systemStore/clerkList'),
name: 'clerkList',
meta: { title: '核销员', icon: '' }
},
{
path: 'order',
component: () => import('@/views/systemSetting/systemStore/order'),
name: 'order',
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 }
},
{
path: 'pay',
component: () => import('@/views/sms/smsPay'),
name: 'SmsPay',
meta: { title: '短信购买', noCache: true }
},
{
path: 'message',
component: () => import('@/views/sms/smsMessage'),
name: 'SmsMessage',
meta: { title: '短信开关', noCache: true }
}
]
},
]
}
export default operationRouter

View File

@@ -0,0 +1,23 @@
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

View File

@@ -0,0 +1,47 @@
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?',
component: () => import('@/views/store/creatStore/index'),
name: 'SortCreat',
meta: { title: '商品添加', noCache: true, activeMenu: `/store/index` },
hidden: true
}
]
}
export default storeRouter

View File

@@ -0,0 +1,40 @@
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