Compare commits

...

1 Commits

Author SHA1 Message Date
zq 9c834bbcc6 不同端区分路由、启动、打包 4 weeks ago
  1. 1
      .env.admin
  2. 1
      .env.client
  3. 9
      package.json
  4. 175
      src/router/admin-routes.json
  5. 81
      src/router/client-routes.json
  6. 379
      src/router/index.js
  7. 14
      src/utils/loadRoutes.js

1
.env.admin

@ -0,0 +1 @@
VUE_APP_TYPE=admin

1
.env.client

@ -0,0 +1 @@
VUE_APP_TYPE=client

9
package.json

@ -2,10 +2,11 @@
"name": "newkuaile-vue-project2",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
"scripts": {
"serve:client": "vue-cli-service serve --mode client",
"serve:admin": "vue-cli-service serve --mode admin",
"build:client": "vue-cli-service build --mode client",
"build:admin": "vue-cli-service build --mode admin"
},
"dependencies": {
"axios": "^1.8.3",

175
src/router/admin-routes.json

@ -0,0 +1,175 @@
[
{
"path": "/super/ranking",
"component": "views/super/Ranking/Ranking.vue",
"webpackChunkName": "Ranking",
"children": [
{
"path": "",
"redirect": "views/super/Ranking/RankDetail.vue",
"webpackChunkName": "Ranking",
"props": {
"pageTitle": "总利润 - 年排行",
"rank_type": 1,
"type": "year",
"showDateSelect": false
}
},
{
"path": "yearProfit",
"name": "年排行",
"component": "views/super/Ranking/RankDetail.vue",
"webpackChunkName": "Ranking",
"props": {
"pageTitle": "总利润 - 年排行",
"rank_type": 1,
"type": "year",
"showDateSelect": false
}
},
{
"path": "monthProfit",
"name": "月排行",
"component": "views/super/Ranking/RankDetail.vue",
"webpackChunkName": "Ranking",
"props": {
"pageTitle": "总利润 - 月排行",
"rank_type": 1,
"type": "month",
"showDateSelect": true
}
},
{
"path": "checkProfit",
"name": "产品毛利润排行",
"component": "views/super/Ranking/RankBatchList.vue",
"webpackChunkName": "Ranking",
"props": {
"pageTitle": "产品 - 毛利润排行",
"rank_type": 1,
"type": "check_type"
}
},
{
"path": "checkOrdernum",
"name": "产品订单数排行",
"component": "views/super/Ranking/RankBatchList.vue",
"webpackChunkName": "Ranking",
"props": {
"pageTitle": "产品 - 订单数排行",
"rank_type": 2,
"type": "check_type"
}
},
{
"path": "checkRefund",
"name": "产品退单数排行",
"component": "views/super/Ranking/RankList.vue",
"webpackChunkName": "Ranking",
"props": {
"pageTitle": "产品 - 退单数排行",
"rank_type": 3,
"type": "check_type"
}
},
{
"path": "loss",
"name": "产品负毛利排行",
"component": "views/super/Ranking/RankList.vue",
"webpackChunkName": "Ranking",
"props": {
"pageTitle": "产品 - 负毛利排行",
"rank_type": 5,
"type": "loss"
}
},
{
"path": "agentProfit",
"name": "代理商毛利润排行",
"component": "views/super/Ranking/RankBatchList.vue",
"webpackChunkName": "Ranking",
"props": {
"pageTitle": "代理商 - 毛利润排行",
"rank_type": 1,
"type": "agent"
}
},
{
"path": "agentRecharge",
"name": "代理商充值排行",
"component": "views/super/Ranking/RankBatchList.vue",
"webpackChunkName": "Ranking",
"props": {
"pageTitle": "代理商 - 充值排行",
"rank_type": 4,
"type": "agent"
}
},
{
"path": "agentNew",
"name": "代理商新加盟",
"component": "views/super/Ranking/RankDetail.vue",
"webpackChunkName": "Ranking",
"props": {
"pageTitle": "代理商 - 新加盟",
"type": "agentnew",
"showDateSelect": false
}
},
{
"path": "purchase",
"name": "采购价",
"component": "views/super/Ranking/Purchase.vue",
"webpackChunkName": "Ranking",
"props": {
"pageTitle": "设置 - 采购价",
"type": "purchase"
}
},
{
"path": "stagePurchase",
"name": "阶段采购价",
"component": "views/super/Ranking/Purchase.vue",
"webpackChunkName": "Ranking",
"props": {
"pageTitle": "设置 - 阶段采购",
"type": "stagePurchase"
}
},
{
"path": "detail",
"name": "详情",
"component": "views/super/Ranking/RankDetail.vue",
"webpackChunkName": "Ranking",
"props": {
"pageTitle": "详情",
"type": "day",
"showDateSelect": false,
"lookMore": false
}
},
{
"path": "list",
"name": "列表",
"component": "views/super/Ranking/RankList.vue",
"webpackChunkName": "Ranking",
"props": {
"pageTitle": "详情",
"showDateSelect": false,
"lookMore": false
}
},
{
"path": "order",
"name": "订单统计",
"component": "views/super/Ranking/RankDetail.vue",
"webpackChunkName": "Ranking",
"props": {
"pageTitle": "订单统计",
"type": "order",
"showDateSelect": false
}
}
]
}
]

81
src/router/client-routes.json

@ -0,0 +1,81 @@
[
{
"path": "/",
"name": "首页",
"component": "views/HomeView.vue"
},
{
"path": "/register",
"name": "register",
"component": "views/Register.vue",
"webpackChunkName": "register",
"children": []
},
{
"path": "/ui",
"name": "ui组件",
"component": "views/elementGroups.vue",
"webpackChunkName": "ui"
},
{
"path": "/franchise",
"name": "加盟",
"component": "views/Franchise.vue",
"webpackChunkName": "franchise"
},
{
"path": "/configureServicePrices",
"name": "配置服务价格",
"component": "views/ConfigureServicePrices.vue",
"webpackChunkName": "configureServicePrices"
},
{
"path": "/siteList",
"name": "站点列表",
"component": "views/SiteList.vue",
"webpackChunkName": "siteList"
},
{
"path": "/siteSetting",
"name": "站点设置",
"component": "views/SiteSetting.vue",
"webpackChunkName": "SiteSetting",
"children": [
{
"path": "",
"redirect": "views/SiteBaseSetting.vue",
"webpackChunkName": "siteBaseSetting"
},
{
"path": "siteBaseSetting",
"name": "站点基础设置",
"component": "views/SiteBaseSetting.vue",
"webpackChunkName": "siteBaseSetting"
},
{
"path": "sitePersonalization",
"name": "个性化设置",
"component": "views/SitePersonalization.vue",
"webpackChunkName": "sitePersonalization"
},
{
"path": "siteH5",
"name": "移动端设置",
"component": "views/SiteH5.vue",
"webpackChunkName": "siteH5"
},
{
"path": "siteSem",
"name": "营销推广",
"component": "views/SiteSem.vue",
"webpackChunkName": "siteSem"
}
]
},
{
"path": "/pageTemplete",
"name": "网页模板",
"component": "views/PageTemplete.vue",
"webpackChunkName": "pageTemplete"
}
]

379
src/router/index.js

@ -1,7 +1,9 @@
import Vue from 'vue';
import VueRouter from 'vue-router';
import store from '../store';
import HomeView from '../views/HomeView.vue';
import clientRoutes from './client-routes.json';
import adminRoutes from './admin-routes.json';
import { loadRoutesFromJSON } from '../utils/loadRoutes'
// import UserPosts from '../views/UserPosts.vue';
// import Franchise from '../views/Franchise.vue'
@ -18,211 +20,194 @@ const whiteFooterList = ['/', '/ui', '/configureServicePrices',
'/super/ranking/checkRefund', '/super/ranking/agentProfit', '/super/ranking/agentRecharge', '/super/ranking/agentNew',
'/super/ranking/purchase','/super/ranking/stagePurchase','/super/ranking/loss'
]; //底部白名单
const routes = [{
path: '/',
name: '首页',
component: HomeView,
// component: Franchise
},
{
path: '/register',
name: 'register',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import( /* webpackChunkName: "register" */ '../views/Register.vue'),
children: [ // 这是子路由的定义开始
// {
// path: '', // 当访问 /user 时,默认加载 UserProfile 组件
// name: 'register',
// component: Register
// },
// {
// path: 'posts', // 当访问 /user/posts 时,加载 UserPosts 组件
// name: 'UserPosts',
// component: UserPosts,
// }
]
},
{
path: '/ui',
name: 'ui组件',
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import( /* webpackChunkName: "ui" */ '../views/elementGroups.vue')
},
{
path: '/franchise',
name: '加盟',
component: () => import( /* webpackChunkName: "franchise" */ '../views/Franchise.vue')
},
{
path: '/configureServicePrices',
name: '配置服务价格',
component: () => import( /* webpackChunkName: "configureServicePrices" */ '../views/ConfigureServicePrices.vue')
},
{
path: '/siteList',
name: '站点列表',
component: () => import( /* webpackChunkName: "siteList" */ '../views/SiteList.vue')
},
{
path: '/siteSetting',
name: '站点设置',
component: () => import( /* webpackChunkName: "SiteSetting" */ '../views/SiteSetting.vue'),
children: [
{
path: '', // 默认子路由
redirect: () => import( /* webpackChunkName: "siteBaseSetting" */ '../views/SiteBaseSetting.vue') // 重定向到第一个页面
},
{
path: 'siteBaseSetting',
name: '站点基础设置',
component: () => import( /* webpackChunkName: "siteBaseSetting" */ '../views/SiteBaseSetting.vue'),
},
{
path: 'sitePersonalization',
name: '个性化设置',
component: () => import( /* webpackChunkName: "sitePersonalization" */ '../views/SitePersonalization.vue')
},
{
path: 'siteH5',
name: '移动端设置',
component: () => import( /* webpackChunkName: "siteH5" */ '../views/SiteH5.vue')
},
{
path: 'siteSem',
name: '营销推广',
component: () => import( /* webpackChunkName: "siteSem" */ '../views/SiteSem.vue')
},
// {
// path: 'demoTable', // 默认子路由
// name: '测试页面',
// redirect: () => import( /* webpackChunkName: "demoTable" */ '../views/DemoTable.vue') // 重定向到第一个页面
// },
]
},
{
path: '/pageTemplete',
name: '网页模板',
component: () => import( /* webpackChunkName: "pageTemplete" */ '../views/PageTemplete.vue')
},
// ...loadRoutesFromJSON(rankingRoutes),
const APP_TYPE = process.env.VUE_APP_TYPE || 'client';
const routes = APP_TYPE === 'admin'
? [...loadRoutesFromJSON(adminRoutes)]
: [...loadRoutesFromJSON(clientRoutes)];
console.log(routes,'routes---000');
const router = new VueRouter({
mode: 'history',
routes
});
// const routes = [
// {
// path: '/demo',
// name: 'demo页面',
// component: () => import( /* webpackChunkName: "Demo" */ '../views/Demo.vue'),
// path: '/',
// name: '首页',
// component: HomeView,
// // component: Franchise
// },
// {
// path: '/register',
// name: 'register',
// component: () => import( /* webpackChunkName: "register" */ '../views/Register.vue'),
// children: [ // 这是子路由的定义开始
// ]
// },
// {
// path: '/ui',
// name: 'ui组件',
// component: () => import( /* webpackChunkName: "ui" */ '../views/elementGroups.vue')
// },
// {
// path: '/franchise',
// name: '加盟',
// component: () => import( /* webpackChunkName: "franchise" */ '../views/Franchise.vue')
// },
// {
// path: '/configureServicePrices',
// name: '配置服务价格',
// component: () => import( /* webpackChunkName: "configureServicePrices" */ '../views/ConfigureServicePrices.vue')
// },
// {
// path: '/siteList',
// name: '站点列表',
// component: () => import( /* webpackChunkName: "siteList" */ '../views/SiteList.vue')
// },
// {
// path: '/siteSetting',
// name: '站点设置',
// component: () => import( /* webpackChunkName: "SiteSetting" */ '../views/SiteSetting.vue'),
// children: [
// {
// path: '', // 默认子路由
// redirect: () => import( /* webpackChunkName: "DemoTable" */ '../views/DemoTable.vue') // 重定向到第一个页面
// redirect: () => import( /* webpackChunkName: "siteBaseSetting" */ '../views/SiteBaseSetting.vue') // 重定向到第一个页面
// },
// {
// path: 'siteBaseSetting',
// name: '站点基础设置',
// component: () => import( /* webpackChunkName: "siteBaseSetting" */ '../views/SiteBaseSetting.vue'),
// },
// {
// path: 'sitePersonalization',
// name: '个性化设置',
// component: () => import( /* webpackChunkName: "sitePersonalization" */ '../views/SitePersonalization.vue')
// },
// {
// path: 'siteH5',
// name: '移动端设置',
// component: () => import( /* webpackChunkName: "siteH5" */ '../views/SiteH5.vue')
// },
// {
// path: 'siteSem',
// name: '营销推广',
// component: () => import( /* webpackChunkName: "siteSem" */ '../views/SiteSem.vue')
// },
// ]
// }
// },
// {
// path: '/pageTemplete',
// name: '网页模板',
// component: () => import( /* webpackChunkName: "pageTemplete" */ '../views/PageTemplete.vue')
// },
{
path: '/super/ranking',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/Ranking.vue'),
children: [
{
path: '', // 默认子路由
redirect: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
props: {pageTitle:'总利润 - 年排行', rank_type: 1, type: 'year', showDateSelect: false}
},
{
path: 'yearProfit',
name: '年排行',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
props: {pageTitle:'总利润 - 年排行', rank_type: 1, type: 'year', showDateSelect: false}
},
{
path: 'monthProfit',
name: '月排行',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
props: {pageTitle:'总利润 - 月排行', rank_type: 1, type: 'month', showDateSelect: true}
},
{
path: 'checkProfit',
name: '产品毛利润排行',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankBatchList.vue'),
props: {pageTitle:'产品 - 毛利润排行', rank_type: 1, type: 'check_type'}
},
{
path: 'checkOrdernum',
name: '产品订单数排行',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankBatchList.vue'),
props: {pageTitle:'产品 - 订单数排行', rank_type: 2, type: 'check_type'}
},
{
path: 'checkRefund',
name: '产品退单数排行',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankList.vue'),
props: {pageTitle:'产品 - 退单数排行', rank_type: 3, type: 'check_type'}
},
{
path: 'loss',
name: '产品负毛利排行',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankList.vue'),
props: {pageTitle:'产品 - 负毛利排行', rank_type: 5, type: 'loss'}
},
{
path: 'agentProfit',
name: '代理商毛利润排行',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankBatchList.vue'),
props: {pageTitle:'代理商 - 毛利润排行', rank_type: 1, type: 'agent'}
},
{
path: 'agentRecharge',
name: '代理商充值排行',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankBatchList.vue'),
props: {pageTitle:'代理商 - 充值排行', rank_type: 4, type: 'agent'}
},
{
path: 'agentNew',
name: '代理商新加盟',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
props: {pageTitle:'代理商 - 新加盟', type: 'agentnew', showDateSelect: false}
},
{
path: 'purchase',
name: '采购价',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/Purchase.vue'),
props: {pageTitle:'设置 - 采购价', type: 'purchase'}
},
{
path: 'stagePurchase',
name: '阶段采购价',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/Purchase.vue'),
props: {pageTitle:'设置 - 阶段采购', type: 'stagePurchase'}
},
{
path: 'detail',
name: '详情',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
props: {pageTitle:'详情', type: 'day', showDateSelect: false, lookMore:false}
},
{
path: 'list',
name: '列表',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankList.vue'),
props: {pageTitle:'详情', showDateSelect: false, lookMore:false}
},
{
path: 'order',
name: '订单统计',
component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
props: {pageTitle:'订单统计', type: 'order', showDateSelect: false}
},
]
},
]
// {
// path: '/super/ranking',
// component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/Ranking.vue'),
// children: [
// {
// path: '', // 默认子路由
// redirect: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
// props: {pageTitle:'总利润 - 年排行', rank_type: 1, type: 'year', showDateSelect: false}
// },
// {
// path: 'yearProfit',
// name: '年排行',
// component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
// props: {pageTitle:'总利润 - 年排行', rank_type: 1, type: 'year', showDateSelect: false}
// },
// {
// path: 'monthProfit',
// name: '月排行',
// component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
// props: {pageTitle:'总利润 - 月排行', rank_type: 1, type: 'month', showDateSelect: true}
// },
// {
// path: 'checkProfit',
// name: '产品毛利润排行',
// component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankBatchList.vue'),
// props: {pageTitle:'产品 - 毛利润排行', rank_type: 1, type: 'check_type'}
// },
// {
// path: 'checkOrdernum',
// name: '产品订单数排行',
// component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankBatchList.vue'),
// props: {pageTitle:'产品 - 订单数排行', rank_type: 2, type: 'check_type'}
// },
// {
// path: 'checkRefund',
// name: '产品退单数排行',
// component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankList.vue'),
// props: {pageTitle:'产品 - 退单数排行', rank_type: 3, type: 'check_type'}
// },
// {
// path: 'loss',
// name: '产品负毛利排行',
// component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankList.vue'),
// props: {pageTitle:'产品 - 负毛利排行', rank_type: 5, type: 'loss'}
// },
// {
// path: 'agentProfit',
// name: '代理商毛利润排行',
// component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankBatchList.vue'),
// props: {pageTitle:'代理商 - 毛利润排行', rank_type: 1, type: 'agent'}
// },
// {
// path: 'agentRecharge',
// name: '代理商充值排行',
// component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankBatchList.vue'),
// props: {pageTitle:'代理商 - 充值排行', rank_type: 4, type: 'agent'}
// },
// {
// path: 'agentNew',
// name: '代理商新加盟',
// component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
// props: {pageTitle:'代理商 - 新加盟', type: 'agentnew', showDateSelect: false}
// },
// {
// path: 'purchase',
// name: '采购价',
// component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/Purchase.vue'),
// props: {pageTitle:'设置 - 采购价', type: 'purchase'}
// },
// {
// path: 'stagePurchase',
// name: '阶段采购价',
// component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/Purchase.vue'),
// props: {pageTitle:'设置 - 阶段采购', type: 'stagePurchase'}
// },
// {
// path: 'detail',
// name: '详情',
// component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
// props: {pageTitle:'详情', type: 'day', showDateSelect: false, lookMore:false}
// },
// {
// path: 'list',
// name: '列表',
// component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankList.vue'),
// props: {pageTitle:'详情', showDateSelect: false, lookMore:false}
// },
// {
// path: 'order',
// name: '订单统计',
// component: () => import( /* webpackChunkName: "Ranking" */ '../views/super/Ranking/RankDetail.vue'),
// props: {pageTitle:'订单统计', type: 'order', showDateSelect: false}
// },
// ]
// },
// ]
const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes
})
// const router = new VueRouter({
// mode: 'history',
// base: process.env.BASE_URL,
// routes
// })
console.log(router,'router----');
router.beforeEach((to, from, next) => {
console.log(to.path, 'to.path-----');
if (whiteSlideList.includes(to.path)) {

14
src/utils/loadRoutes.js

@ -0,0 +1,14 @@
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
export const loadRoutesFromJSON = (routesConfig) => {
return routesConfig.map(route => ({
...route,
component: () => import(/* webpackChunkName: route.webpackChunkName */ `@/${route.component}`),
...(route.redirect ? {
redirect: () => import(/* webpackChunkName: route.webpackChunkName */ `@/${route.redirect}`)
} : {}),
children: route.children ? loadRoutesFromJSON(route.children) : []
}))
}
Loading…
Cancel
Save