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

大丰网站制作财务公司业务范围

大丰网站制作,财务公司业务范围,wordpress建站专家,网站建设中模板 模板无忧和iView Admin结缘于某次在“顾问群”里问,“有什么开源前端框架推荐吗?”。群里一位老开发答,“试试iView Admin”。于是我就试了试,发现很好用,对新手也很友好,试过撸一个管理后台的前端用了4天&#xff…

和iView Admin结缘于某次在“顾问群”里问,“有什么开源前端框架推荐吗?”。群里一位老开发答,“试试iView Admin”。于是我就试了试,发现很好用,对新手也很友好,试过撸一个管理后台的前端用了4天,感觉效率还可以。
最近需要定制“无侧滑菜单,改用顶部下拉菜单”的效果,所以开始分析下源码。
看/src/router/router.js里原始定义的路由,可以看到首页路由使用的component是Main。


image.png

然后我们打开component/main.vue来查看,如下图。可以看到main.vue相当于一个大框架底层页面,页面结构可以简单分为Sider(左侧展开的菜单)、Header(顶部)以及Content(主要内容区)。把Sider注释或者删除,就相当于实现了“无侧滑菜单”的效果。然后看下Header里的组件,分别有HeaderBar、user、language、error-store、fullscreen,看来这个headerbar就是我们可以添加“下拉菜单”的地方了。


image.png

原来的header-bar.vue如下。
<template><div class="header-bar"><sider-trigger :collapsed="collapsed" icon="md-menu" @on-change="handleCollpasedChange"></sider-trigger><custom-bread-crumb show-icon style="margin-left: 30px;" :list="breadCrumbList"></custom-bread-crumb><div class="custom-content-con"><slot></slot></div></div>
</template>

可以看到这个HeaderBar里有两个组件,一个是点击一下就触发左侧菜单弹出、并且自身Icon发生旋转的sider-trigger,另一个就是自定义的面包屑导航custom-bread-crumb。于是想到,把这里的sider-trigger替换成我们即将写好的下拉菜单组件,传入菜单数据以及对下拉菜单的点击事件进行捕捉后,调用原来的gotoPage的方法,应该就能满足需求了。
我们先去写下拉菜单组件collapse-menu.vue。根据iView Admin原来的route元组的构成方式,使用DropdownMenu组件来展示不同层级的菜单。showTitle是根据当前route元组中的name以及当前locale显示出对应的文字,最后完成的collase-menu的template部分如下:
collapse-menu.vue

<template><Dropdown ref="dropdown" @on-click="handleClick"><a href="javascript:void(0)"><Icon type="md-menu" size="26"></Icon></a><DropdownMenu slot="list"><template v-for="item in menuList"><DropdownItem v-if="!showChildren(item) && (!item.meta || (item.meta && !item.meta.hideInMenu))":name="getNameOrHref(item,true)">{{showTitle(item)}}</DropdownItem><Dropdown v-if="showChildren(item) && (!item.meta || (item.meta && !item.meta.hideInMenu))" :placement="placement"><DropdownItem>{{showTitle(item)}}<Icon type="ios-arrow-forward"></Icon></DropdownItem><DropdownMenu slot="list"><DropdownItem v-for ="subItem in item.children"v-if=" !subItem.meta || (subItem.meta && !subItem.meta.hideInMenu)" :name="getNameOrHref(subItem)">{{showTitle(subItem)}}</DropdownItem></DropdownMenu></Dropdown></template></DropdownMenu></Dropdown>
</template>

此外该组件里还需要增加一个用于判断该route元组是使用vue页面还是外部页面,如果是外部页面,则往上回传的应该是带有标记的外部url, 这样在main.vue里的turnToPage的方法,就可以直接使用组件事件回传的参数进行跳转。关键代码如下:

getNameOrHref (item,children0) {return item.href ? `isTurnByHref_${item.href}` : (children0 ? item.children[0].name : item.name)},

然后,就可以在Header-bar.vue里直接引用新做好的下拉菜单组件了。header-bar.vue中的template部分如下:

<template><div class="header-bar"><CollapsedMenu :menuList="menuList" @on-click="handleSelect"/><custom-bread-crumb show-icon  :list="breadCrumbList"></custom-bread-crumb><div class="custom-content-con"><slot></slot></div></div>
</template>

然后在main.vue里,将所需的菜单数据传给header-bar,再由header-bar依次传递。
main.vue

<Header class="header-con"><header-bar :collapsed="collapsed" @on-coll-change="handleCollapsedChange" :menu-list="menuList" @on-select="turnToPage"><user :user-avator="userAvator" :userName="userName"/><language v-if="$config.useI18n" @on-lang-change="setLocal" style="margin-right: 10px;" :lang="local"/><error-store v-if="$config.plugin['error-store'] && $config.plugin['error-store'].showInHeader" :has-read="hasReadErrorPage" :count="errorCount"></error-store><fullscreen v-model="isFullscreen" style="margin-right: 10px;"/></header-bar></Header>

最后总结下本次实现过程中父子组件间涉及到的通信:
1.父组件往子组件传数据,用的是props这个单向数据流的方式,将menuList传到最终的子组件。
2.子组件往父组件传值,用的是$emit,将子组件里click/change事件触发时的值,会传到父组件。

最后编辑于:2025-04-21 10:54:09


喜欢的朋友记得点赞、收藏、关注哦!!!


文章转载自:

http://Gc3PswZF.drggr.cn
http://jj66RjFb.drggr.cn
http://stEsC9J8.drggr.cn
http://EGG2Cqvh.drggr.cn
http://jUHzLSDj.drggr.cn
http://2X7o3e6B.drggr.cn
http://6xEqfnbv.drggr.cn
http://CTfZYpTF.drggr.cn
http://vbDuXtnO.drggr.cn
http://hZgMRxpR.drggr.cn
http://e0TsrPiS.drggr.cn
http://OoGi7zW8.drggr.cn
http://XB1KiIfR.drggr.cn
http://4wLHqQmo.drggr.cn
http://xUzCG37G.drggr.cn
http://judoCVcH.drggr.cn
http://WENAnJZA.drggr.cn
http://qlVPqNZb.drggr.cn
http://gAXOHorZ.drggr.cn
http://0hfkODAI.drggr.cn
http://KYVigHBC.drggr.cn
http://JICpOUUc.drggr.cn
http://ovw8PA9t.drggr.cn
http://s1vXdIy0.drggr.cn
http://CGimpFBJ.drggr.cn
http://dWmoAfUg.drggr.cn
http://6hQCOIgn.drggr.cn
http://iVxLD1Ig.drggr.cn
http://IRyHuQ8V.drggr.cn
http://u2xF39xF.drggr.cn
http://www.dtcms.com/wzjs/631761.html

相关文章:

  • 做网址导航网站上海企业查询官网
  • 个人网站可以做淘客大尺度做爰网站在线
  • 广西城乡建设厅网站湖北省公共资源交易中心
  • 设计网站费用多少乐辰网站建设
  • 网站建设技术风险中国国际园林博览会
  • 做网站赌钱犯法吗穆棱建设局网站
  • 自助网站制作成都网站建设 外包
  • 网站管理员容易做吗如何做网站对话框
  • 权威发布e站科技有限公司简介
  • vue快速建站做cad室内平面图的家具素材网站
  • 免费网站看v片在线第一次做舞阳专业做网站
  • 北京住房城乡建设部网站八大员云南建设厅网站房地产开发资质
  • 如何看一个网站用什么程序做的龙岗区建设工程交易中心
  • 如何删除网站的信息吗做网站的准备什么软件
  • 南山商城网站建设哪家便宜微商城运营方案
  • 网站建设,h5,小程序怎样建立网站视频教程
  • 网站制作流程 优帮云seo快速提升排名
  • 新郑网站开发app开发公司宣传片
  • 做产品推广哪个网站好宽屏网站设计
  • 番禺建设网站哪个好重庆市建设工程施工安全管理总站
  • 网站做图分辨率是多少合适石家庄市城乡建设学校网站
  • 建设网站需要多少钱济南兴田德润o厉害吗网页制作与网站建设
  • 如何用服务器搭建网站手机网站优化指南
  • 郑州网站建设公司最火的网站开发语言
  • 湖南住房和城乡建设网门户网站工作组赴河南协助
  • 番禺市桥做网站公司动易网站后台密码破解
  • 有网站怎么建设手机站做circrna的网站
  • 做标志的网站如何同步打开两个wordpress
  • 企业网站设计特点爱生活辽宁移动app
  • 酷我音乐网站架构智能小程序WordPress