From 4057d97fbd1c830c8c15abcca00f51720b53e2ce Mon Sep 17 00:00:00 2001 From: chensiAb <chenchenco03@163.com> Date: Fri, 23 Aug 2024 09:57:32 +0800 Subject: [PATCH] fix:父组件不传递方法默认函数写法 --- layout/h5Page/CNavBar.vue | 39 +++++++++++++++++++++++++++++++-------- 1 files changed, 31 insertions(+), 8 deletions(-) diff --git a/layout/h5Page/CNavBar.vue b/layout/h5Page/CNavBar.vue index f694359..4bd2986 100644 --- a/layout/h5Page/CNavBar.vue +++ b/layout/h5Page/CNavBar.vue @@ -2,11 +2,17 @@ <view class="c-nav-bar"> <AtNavBar :title="title" - leftIconType="chevron-left" - :onClickLeftIcon="evt=>goBack()" + :leftIconType="iconType" + :onClickLeftIcon="evt => onGoBack()" :rightFirstIconType="dropNav ? 'bullet-list' : ''" - :onClickRgIconSt="evt=>dropMenu()" + :onClickRgIconSt="evt => onDropMenu()" /> + <view + class="c-nav-bar-right" + v-if="!dropNav" + > + <slot /> + </view> <view class="c-nav-bar-drop" v-show="dropShow" @@ -18,7 +24,7 @@ class="c-nav-bar-drop-item item" v-for="(nav,index) in dropNav" :key="index" - @tap="evt=>goNav(nav)" + @tap="evt=>onGoNav(nav)" >{{nav.title}}</view> </view> </view> @@ -37,7 +43,16 @@ AtNavBar, }, props: { + // H5页面导航标题 title: String, + // H5页面导航左侧图标 + iconType: { + type: String, + default: 'chevron-left', + }, + // H5页面导航左侧图点击事件 + onClickIcon: Function, + // H5页面导航右侧下拉菜单配置 dropNav: Array, }, data() { @@ -48,10 +63,18 @@ }; }, methods: { - goBack() { - window.history.go(-1); + onGoBack() { + if (this.onClickIcon) { + const needBack = this.onClickIcon(); + // 返回 true 时继续跳回上一页 + if (needBack) { + Taro.navigateBack(); + } + } else { + Taro.navigateBack(); + } }, - goNav(nav) { + onGoNav(nav) { if (!nav.url) { return; } @@ -60,7 +83,7 @@ Taro.navigateTo({ url: nav.url }); }, 0); }, - dropMenu() { + onDropMenu() { this.dropShow = !this.dropShow; this.dropActive = true; clearTimeout(this.dropTimer); -- Gitblit v1.9.1