MtaNavbar.vue 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. <template>
  2. <!-- left-icon="left" left-text="返回" @clickLeft="handleBack" shadow status-bar -->
  3. <uni-nav-bar dark :fixed="true" shadow background-color="transparent" title="自定义导航栏" class="dljt-navBar-box">
  4. <view class="dljt-logo-box"></view>
  5. <icon class="dljt-menu-box" v-if="hasRight" @click="handleChangeMenu"></icon>
  6. </uni-nav-bar>
  7. <!-- 菜单面板 -->
  8. <uni-collapse class="head-collapse-box" ref="collapse" accordion v-model="data.activeMenu" v-show="data.showMenu">
  9. <uni-collapse-item class="head-collapse-item" :title="item.title" v-for="item in data.list" :key="item.title"
  10. :name="item.url">
  11. <view class="head-item-text" v-for="cIt in item.children" :key="item.title"
  12. :class="{active: cIt.url.includes(data.activePath)}" @click="handleClick(cIt)">
  13. {{cIt.title}}
  14. </view>
  15. </uni-collapse-item>
  16. </uni-collapse>
  17. </template>
  18. <script setup>
  19. import {
  20. ref,
  21. reactive
  22. } from "vue"
  23. const showLeft = ref(null)
  24. import {
  25. onLoad
  26. } from "@dcloudio/uni-app"
  27. const props = defineProps({
  28. hasRight: {
  29. type: Boolean,
  30. default: true
  31. }
  32. })
  33. const ani = ref(null)
  34. const data = reactive({
  35. list: [{
  36. title: '学校主页',
  37. url: '/pages/index/index',
  38. children: [{
  39. title: '首页',
  40. url: '/pages/index/index',
  41. }]
  42. },
  43. {
  44. title: '学院概况',
  45. url: '/pages/xygkXueyuanjianjie/xygkXueyuanjianjie',
  46. children: [{
  47. title: '学院简介',
  48. url: '/pages/xygkXueyuanjianjie/xygkXueyuanjianjie'
  49. }, {
  50. title: '机构设置',
  51. url: '/pages/xygkJigoushezhi/xygkJigoushezhi',
  52. }, {
  53. title: '学院荣誉',
  54. url: '/pages/xygkXueyuanrongyu/xygkXueyuanrongyu'
  55. }, {
  56. title: '学院文化',
  57. url: '/pages/xygkXueyuanwenhua/xygkXueyuanwenhua'
  58. }, {
  59. title: '校园风光',
  60. url: '/pages/xygkXiaoyuanfengguang/xygkXiaoyuanfengguang'
  61. }, {
  62. title: '联系方式',
  63. url: '/pages/xygkLianxifangshi/xygkLianxifangshi'
  64. },
  65. ]
  66. },
  67. {
  68. title: '党群工作',
  69. url: '/pages/dqgzDangzuzhijiagou/dqgzDangzuzhijiagou',
  70. children: [{
  71. title: '党组织架构',
  72. url: '/pages/dqgzDangzuzhijiagou/dqgzDangzuzhijiagou'
  73. }, {
  74. title: '工会组织架构',
  75. url: '/pages/dqgzGonghuizuzhijiagou/dqgzGonghuizuzhijiagou'
  76. }, {
  77. title: '党建工作',
  78. url: '/pages/dqgzDangjiangongzuo/dqgzDangjiangongzuo'
  79. }, {
  80. title: '党员风采',
  81. url: '/pages/dqgzDangyuanfengcai/dqgzDangyuanfengcai'
  82. }, {
  83. title: '工会之家',
  84. url: '/pages/dqgzGonghuizhijia/dqgzGonghuizhijia'
  85. }]
  86. },
  87. {
  88. title: '校园动态',
  89. url: '3',
  90. children: [{
  91. title: '学院新闻',
  92. url: '/pages/xydtXueyuanxingwen/xydtXueyuanxingwen'
  93. }, {
  94. title: '通知公告',
  95. url: '/pages/xydtTongzhigonggao/xydtTongzhigonggao'
  96. }, {
  97. title: '校务公开',
  98. url: '/pages/xydtXiaowugongkai/xydtXiaowugongkai'
  99. }, {
  100. title: '学院风采',
  101. url: '/pages/xydtXueyuanfengcai/xydtXueyuanfengcai'
  102. }]
  103. },
  104. {
  105. title: '教育教学',
  106. url: '/pages/jyjxZhuanyejianshe/jyjxZhuanyejianshe',
  107. children: [{
  108. title: '专业建设',
  109. url: '/pages/jyjxZhuanyejianshe/jyjxZhuanyejianshe'
  110. }, {
  111. title: '师资队伍',
  112. url: '/pages/jyjxShiziduiwu/jyjxShiziduiwu'
  113. }, {
  114. title: '教研活动',
  115. url: '/pages/jyjxKeyanhuodong/jyjxKeyanhuodong'
  116. }, {
  117. title: '科研动态',
  118. url: '/pages/jyjxKeyandongtai/jyjxKeyandongtai'
  119. }, {
  120. title: '技能鉴定',
  121. url: '/pages/jyjxJinengjianding/jyjxJinengjianding'
  122. }, {
  123. title: '第二课堂',
  124. url: '/pages/jyjxDierketang/jyjxDierketang'
  125. }, {
  126. title: '大赛风采',
  127. url: '/pages/jyjxDasaifengcai/jyjxDasaifengcai'
  128. }, {
  129. title: '重点项目',
  130. url: '/pages/jyjxZhongdianxiangmu/jyjxZhongdianxiangmu'
  131. },
  132. {
  133. title: '校企合作',
  134. url: '/pages/jyjxXiaoqihezuo/jyjxXiaoqihezuo'
  135. },
  136. {
  137. title: '规章制度',
  138. url: '/pages/jyjxGuizhangzhidu/jyjxGuizhangzhidu'
  139. },
  140. ]
  141. }, {
  142. title: '学生园地',
  143. url: '/pages/xsydDeyuduiwu/xsydDeyuduiwu',
  144. children: [{
  145. title: '德育队伍',
  146. url: '/pages/xsydDeyuduiwu/xsydDeyuduiwu'
  147. }, {
  148. title: '学生活动',
  149. url: '/pages/xsydXueshenghuodong/xsydXueshenghuodong'
  150. }, {
  151. title: '共青团',
  152. url: '/pages/xsydGongqingtuan/xsydGongqingtuan'
  153. }, {
  154. title: '资助管理',
  155. url: '/pages/xsydZizhuguanli/xsydZizhuguanli'
  156. }]
  157. },
  158. {
  159. title: '招生就业',
  160. url: "pages/zsjyZhaoshengjianzhang/zsjyZhaoshengjianzhang",
  161. children: [{
  162. title: '招生简章',
  163. url: "/pages/zsjyZhaoshengjianzhang/zsjyZhaoshengjianzhang",
  164. }, {
  165. title: '专业介绍',
  166. url: '/pages/zsjyZhuanyejieshao/zsjyZhuanyejieshao'
  167. }, {
  168. title: '升学',
  169. url: '/pages/zsjyShengxue/zsjyShengxue'
  170. }, {
  171. title: '报考指南',
  172. url: '/pages/zsjyBaokaozhinan/zsjyBaokaozhinan'
  173. }, {
  174. title: '往年录取分数',
  175. url: '/pages/zsjyWangnianluqufenshu/zsjyWangnianluqufenshu'
  176. }, {
  177. title: '校企合作',
  178. url: '/pages/zsjyXiaoqihezuo/zsjyXiaoqihezuo'
  179. }, {
  180. title: '招聘信息',
  181. url: '/pages/zsjyZhaopinxinxi/zsjyZhaopinxinxi'
  182. }, {
  183. title: '政策文件',
  184. url: '/pages/zsjyZhengcewenjian/zsjyZhengcewenjian'
  185. }, {
  186. title: '优秀毕业生',
  187. url: '/pages/zsjyYouxiubiyesheng/zsjyYouxiubiyesheng'
  188. }, {
  189. title: '预报名',
  190. url: '/pages/zsjyYubaoming/zsjyYubaoming'
  191. }]
  192. }, {
  193. title: '职业培训',
  194. url: '/pages/zypxTongzhigonggao/zypxTongzhigonggao',
  195. children: [{
  196. title: '线上教育',
  197. type: 'link',
  198. url: '/pages/index/index'
  199. }, {
  200. title: '课程查询',
  201. type: 'link',
  202. url: '/pages/index/index'
  203. }, {
  204. title: '通知公告',
  205. url: '/pages/zypxTongzhigonggao/zypxTongzhigonggao'
  206. }]
  207. }, {
  208. title: '下载中心',
  209. url: '/pages/xzzxXiazaizhongxin/xzzxXiazaizhongxin',
  210. children: [{
  211. title: '下载',
  212. url: '/pages/xzzxXiazaizhongxin/xzzxXiazaizhongxin',
  213. }]
  214. },
  215. ],
  216. activeMenu: null,
  217. activePath: '',
  218. showMenu: false,
  219. })
  220. onLoad(() => {
  221. const pages = getCurrentPages();
  222. data.activePath = pages[pages.length - 1].route;
  223. const parentMenu = data.list.find(item => item.children.some(cit => cit.url.includes(data.activePath)));
  224. console.log('parentMenu && parentMenu.url', parentMenu && parentMenu.url)
  225. data.activeMenu = parentMenu && parentMenu.url;
  226. })
  227. function handleClick(data) {
  228. console.log(`菜单:${data.title};路径:${data.url}`);
  229. if (data.type == 'link') {
  230. window.location.href = data.url;
  231. return;
  232. }
  233. if (data.url) {
  234. uni.navigateTo({
  235. url: data.url
  236. })
  237. }
  238. }
  239. function handleChangeMenu() {
  240. data.showMenu = !data.showMenu;
  241. }
  242. function handleBack() {
  243. uni.navigateBack()
  244. }
  245. </script>
  246. <style>
  247. </style>