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

做猎头要用的网站知乎宣传推广方案模板

做猎头要用的网站知乎,宣传推广方案模板,网站地图页面模板,河南信合建设投资集团有限公司网站思路:要实现点击左侧菜单栏,页面跳转且显示面包屑(本文用的是TSVue3) 功能点: 最多显示5个标签超过5个时,自动移除最早的标签至少保留1个标签支持标签关闭功能 首先在store.ts 处理路由(点击过的路由,当前…

思路:要实现点击左侧菜单栏,页面跳转且显示面包屑(本文用的是TS+Vue3)
功能点:

  • 最多显示5个标签
  • 超过5个时,自动移除最早的标签
  • 至少保留1个标签
  • 支持标签关闭功能

首先在store.ts 处理路由(点击过的路由,当前的路由信息),只需要用到增加和删除tag逻辑
addVisitedView:去和现在项目配置的路由数组做匹配(path),获取点击过的路由信息,存入tag内,然后判断 如果访问过的路由中已经存在该路由,则更新当前路由,不重复添加标签,return掉,如果没有存在该路由,则添加新路由再更新当前路由,加超过5个时,自动移除最早的标签。
deleteVisitedView:查找要删除的路由在数组中的索引,如果找到了该路由(index > -1)则删除它

import { defineStore } from 'pinia'
// 定义访问过的路由
interface TagView {title: stringpath: string
}
export const useMenuStore = defineStore('menu', {state:()=>({visitedViews: [] as TagView[], // 访问过的路由currentView: null as TagView | null // 当前路由}),actions: {// 添加访问过的路由addVisitedView(route: any) {const menuItem = this.menuList.find(item => item.path === route.path)if (!menuItem) return// 定义访问过的路由const tag: TagView = {title: menuItem.title,path: route.path}// 如果访问过的路由中已经存在该路由,则更新当前视图,不重复添加标签if (this.visitedViews.some(v => v.path === tag.path)) {this.currentView = tagreturn}// 添加到访问过的路由this.visitedViews.push(tag)// 更新当前路由this.currentView = tag// 如果访问过的路由超过5个,则删除第一个if (this.visitedViews.length > 5) {this.visitedViews.shift()}},// 删除访问过的路由deleteVisitedView(path: string) {const index = this.visitedViews.findIndex(v => v.path === path)// 如果访问过的路由中存在该路由,则删除if (index > -1) {this.visitedViews.splice(index, 1)}},}
})

标签组件页面显示:
使用watch去监听路由的改变,来动态添加路由,调用store里面的addVisitedView和deleteVisitedView来进行增加删除,然后这里的业务逻辑只处理页面的路由跳转
关闭标签的逻辑:如果删除的不是当前选中的标签,则直接删除
如果删除的选中的标签

  • 如果是首,则到当前列表的第一个
  • 如果是尾,则到当前列表的最后一个
  • 如果是中间的,则是当前列表的后一个标签
<template><div class="bread-container"><el-tag v-for="tag in visitedViews" :key="tag.path" :closable="visitedViews.length > 1":effect="route.path === tag.path ? 'dark' : 'plain'" @click="handleTagClick(tag)"@close="handleCloseTag(tag)" class="tag-item" size="large">{{ tag.title }}</el-tag></div>
</template>
<script setup lang="ts">
import { watch } from 'vue'
import { storeToRefs } from 'pinia'
import { useMenuStore } from '@/store'
import { useRoute, useRouter } from 'vue-router'
const route = useRoute()
const router = useRouter()
const menuStore = useMenuStore()
const { visitedViews } = storeToRefs(menuStore)
// 定义 TagView 类型
interface TagView {title: stringpath: string
}// 监听路由变化时添加到访问记录
watch(() => route.path,() => { menuStore.addVisitedView(route) },{ immediate: true })// 点击标签
const handleTagClick = (tag: TagView) => {router.push(tag.path)
}
// 关闭标签
const handleCloseTag = (tag: TagView) => {menuStore.deleteVisitedView(tag.path)if (route.path === tag.path) {// 先找到要关闭标签的索引const index = menuStore.visitedViews.findIndex(v => v.path === tag.path)//默认关闭的不是首尾标签let nextTag = menuStore.visitedViews[index + 1]if (index === 0) {// 如果关闭的是第一个标签,跳转到新的第一个标签nextTag = menuStore.visitedViews[1]} else if (index === menuStore.visitedViews.length - 1) {// 如果关闭的是最后一个标签,跳转到前一个标签nextTag = menuStore.visitedViews[menuStore.visitedViews.length - 2]}router.push(nextTag.path) }
}
</script>
<style scoped lang="scss">
.bread-container {margin-top: 20px;.tag-item {margin-left: 12px;font-size: 16px;}
}
</style>
http://www.hkea.cn/news/902850/

相关文章:

  • 开发公司 工程管理中存在问题seo人工智能
  • 网站卖给别人后做违法信息seo和点击付费的区别
  • 网站配色 绿色网络推广主要做什么
  • 个人网站制作多少钱公关公司的主要业务
  • 网站底备案号链接代码西安网络推广营销公司
  • 哪个网站开发是按月付费的百度指数是免费的吗
  • asp网站后台管理教程放单平台
  • 做网站毕设任务书网络营销网站建设案例
  • .net 企业网站 模版关键词seo深圳
  • 网站建设优化价格网站seo诊断
  • 网站设计详细设计有没有好用的网站推荐
  • 没有货源可以开网店吗网站更新seo
  • 淄博有做网站的吗百度搜索排名怎么收费
  • wordpress页面添加自定义字段木卢seo教程
  • 长寿网站制作保定seo排名外包
  • 域名和网站一样吗电商运营推广怎么做
  • css个人简介网站怎么做b2b网站免费推广平台
  • 网站建设中企动力上海百度广告投诉电话客服24小时
  • 深圳靠谱的电商公司正版搜索引擎优化
  • 自己如何做团购网站腾讯云建站
  • 怀化招标网站磁力狗bt
  • 佛山网站建设服务公司培训机构查询网
  • 海尔集团电商网站建设考证培训机构
  • 动漫制作专业的高职实训室福州整站优化
  • 织梦商城网站模板免费下载怎么在网上做推广
  • asp做网站用什么写脚本温岭网络推广
  • 怎么建设外贸网站免费发seo外链平台
  • 郴州是几线城市武汉网站seo推广公司
  • 网站开发工程师求职信焊工培训内容
  • 铜陵公司做网站中国网站排名100