当前位置: 首页 > news >正文

潮州南桥市场中国建设银行网站国内外网站开发技术

潮州南桥市场中国建设银行网站,国内外网站开发技术,深圳有哪些网站公司,江苏机械加工网门户网站用户端需要分板块展示,板块内容由管理端配置,包括板块名称,访问路径,路由组件,展示顺序,是否展示。如下图所示: 用户访问门户网站时,展示菜单跳转通过板块配置,动…

   门户网站用户端需要分板块展示,板块内容由管理端配置,包括板块名称,访问路径,路由组件,展示顺序,是否展示。如下图所示:

用户访问门户网站时,展示菜单跳转通过板块配置,动态生成路由。

1.后端接口获取路由

 @GetMapping(value = "/router")public Result<?> getRouterList() {LambdaQueryWrapper<Block> query = new LambdaQueryWrapper<>();query.eq(Block::getIsShow, true).orderByAsc(Block::getSort);List<Block> blockList = blockService.list(query);List<Map<String, Object>> routeMapList = new ArrayList<>();blockList.forEach(block -> {Map<String, Object> map = new HashMap<>();map.put("path", block.getPath());map.put("component", block.getComponent());map.put("name", block.getComponent());routeMapList.add(map);});return Result.OK(routeMapList);}

2.路由配置文件  router/index.ts

import {createRouter, createWebHashHistory} from 'vue-router'const router = createRouter({history: createWebHashHistory(), // hash模式:createWebHashHistory,history模式:createWebHistoryroutes: [{path: '/404',component: () => import('@/views/404.vue'),hidden: true},]
})export default router

3.路由守卫  router/guard/index.ts

import {Router} from 'vue-router'
import {getRouterList} from "@/api/block";
import mainStore from "../../store";let dynamicRouters = []export async function dynamicRouter(router: Router) {const {data: res} = await getRouterList()dynamicRouters = res.resultconst routeList = transformObjToRoute(dynamicRouters)routeList.forEach((route: any) => {//添加路由router.addRoute(route);});
}/*** views目录下找页面,设置component* @param routeList*/
function transformObjToRoute(routeList: any) {let dynamicViewsModules: any = import.meta.glob('../../views/**/*.{vue,tsx}');routeList.forEach((route: any) => {const component = route.component as string;if (component) {route.component = dynamicImport(dynamicViewsModules, component)}});return routeList;
}function dynamicImport(dynamicViewsModules: any, component: string) {const keys = Object.keys(dynamicViewsModules);const matchKeys = keys.filter((key) => {const k = key.replace('../../views', '');const startFlag = component.startsWith('/');const endFlag = component.endsWith('.vue') || component.endsWith('.tsx');const startIndex = startFlag ? 0 : 1;const lastIndex = endFlag ? k.length : k.lastIndexOf('.');return k.substring(startIndex, lastIndex) === component;});if (matchKeys?.length === 1) {const matchKey = matchKeys[0];return dynamicViewsModules[matchKey];} else if (matchKeys?.length > 1) {return;}
}/*** 页面未找到*/
export const PAGE_NOT_FOUND_ROUTE: any = {path: '/:path(.*)*',name: "NotFound",component: () => import('@/views/404.vue')
};/*** 动态路由权限控制* @param router*/
export function setupPermissionGuard(router: Router) {router.beforeEach(async (to, from, next) => {//判断是否已经添加过动态路由,添加过,直接放行if (mainStore.getters.getIsDynamicAddedRoute) {next();return;}//没有添加过,添加,添加后跳转页面await dynamicRouter(router)router.addRoute(PAGE_NOT_FOUND_ROUTE);mainStore.commit('setDynamicAddedRoute', {isDynamicAddedRoute: true})next({...to, replace: true})});
}

4.main.ts配置路由守卫

import App from './App.vue'
import router from '@/router'
import {setupPermissionGuard} from '@/router/guard'async function bootstrap() {// 创建应用实例const app = createApp(App);app.use(router) // 引用路由实例setupPermissionGuard(router);await router.isReady();// 挂载应用app.mount('#app', true);
}bootstrap()

http://www.yayakq.cn/news/157173/

相关文章:

  • 网站的主机选择网页制作与设计专业
  • 海东网站建设公司wordpress侧边栏字体修改
  • 微信淘宝购物券网站是怎么做的佛山制作手机网站
  • 网站设计心得体会手机代理ip海外免费
  • 网站自动站建大学生网络营销策划书模板
  • 阿里云投数亿资源扶持中小网站迁移服务器Wordpress调用搜索
  • 企业网站规划方案软件定制开发服务流程
  • 图片素材网站模板做网站办什么类型营业执照
  • 传统网站设计的缺点建设一个视频网站的成本
  • 河南省建设行业证书查询网站吉林网站建设代理渠道
  • 汕头网站制作网站做教育网站的er图
  • 医疗网站不备案设计企业网站布局考虑的因素
  • 做一网站需要多少钱东莞网站空间
  • 天津红桥网站建设如何创建自己的网址
  • 郑州做网站的专业公司有哪些昨晚广州天河发生事件
  • 栖霞企业网站建设丰台专业网站建设公司
  • 大连企业免费建站网站怎么做切换图片
  • 成都市建设厅官方网站做招聘网站需要什么资质
  • 中小微企业查询网站品牌vi设计公司啊
  • 推荐个做淘宝主图视频的网站专门做旅游攻略的网站有哪些
  • 免费快速网站北京seo公司
  • 外贸网站域名服务商设计师网名叫什么好听
  • 免费企业网站管理系统网站地图 格式
  • 汽车网站名称湛江专业雷剧全集
  • wordpress成品站源码有没有专做游戏脚本的网站
  • 青岛新网站设计公司ppt做视频的模板下载网站有哪些
  • 为什么 要建设网站英迈思网站建设
  • 网站定制要求淘宝客怎么做网站推广
  • 汕头响应式网站教程厦门网站建设xm37
  • 淘宝客网站开发定制主流网站类型