From 910572f2c2bbd678c3983db0ca4a293fa5c0dd33 Mon Sep 17 00:00:00 2001
From: Tevin <tingquanren@163.com>
Date: Thu, 17 Aug 2023 16:01:04 +0800
Subject: [PATCH] 页面筛选组件,增加单项开关子组件

---
 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