Преглед изворни кода

自定义导航组件适配

liuyao пре 1 година
родитељ
комит
35bb4787c0

+ 20 - 1
components/dkbase/dk-navbar/dk-navbar.js

@@ -45,11 +45,30 @@ Component({
     data: {
       paddingTopNum: wx.getSystemInfoSync().statusBarHeight+7
     },
-
+    lifetimes: {
+      attached: function() {
+        // 在组件实例进入页面节点树时执行
+        this.getHeight()
+      },
+      detached: function() {
+        // 在组件实例被从页面节点树移除时执行
+      },
+    },
     /**
      * 组件的方法列表
      */
     methods: {
+      /**
+       * 获取自定义组件高度并向上抛出
+       * @author 刘尧
+       */
+      getHeight(){
+        let that = this
+        let query = wx.createSelectorQuery().in(this);
+        query.select('.van-nav-bar').boundingClientRect(function (rect) {
+          that.triggerEvent('getNavbarHeight', rect);
+        }).exec()
+      },
       clickLeft(e){
         this.triggerEvent('clickBack', {
           value: e

+ 1 - 0
components/dkbase/dk-navbar/dk-navbar.wxml

@@ -6,6 +6,7 @@
   fixed="{{fixed}}"
   custom-style="{{customStyle}}"
   border="{{false}}"
+  class="van-nav-bar"
 >
   <view slot="title">
     <view class="title">

+ 1 - 1
components/dkbase/dk-side-pull-menu/dk-side-pull-menu.wxml

@@ -1,5 +1,5 @@
 <!-- 抽屉 侧拉菜单-->
-<van-popup show="{{show_p}}" position="right" bind:close="onClose" class="popup" custom-style="height:100%;width:75%;padding-top:88px">
+<van-popup show="{{show_p}}" position="right" bind:close="onClose" class="popup" custom-style="height:100%;width:75%;padding-top:{{navBarHeight}}px">
   <view style="height:45rpx;"></view>
   <scroll-view scroll-y class="popup-scroll-view">
     <slot>

+ 6 - 3
components/dkbusiness/dk-dropdown-menu/dk-dropdown-menu.js

@@ -44,6 +44,11 @@ Component({
     searchTextPlaceholder: {
       type: String,
     },
+    // 自定义导航栏高度
+    navBarHeight: {
+      type: Number,
+      value: 0
+    },
     // 结果集
     value: {
       type: String,
@@ -84,9 +89,7 @@ Component({
     searchText: '',
     // 是否是大查询进行的查询
     searchTextFlag: false,
-    form: {},
-    // 自定义导航栏的高度
-    navBarHeight: 0
+    form: {}
   },
   lifetimes: {
     attached: function () {

+ 2 - 2
components/dkbusiness/dk-dropdown-menu/dk-dropdown-menu.wxml

@@ -13,9 +13,9 @@
     </van-dropdown-item>
   </van-dropdown-menu>
   <!-- 多选 -->
-  <dk-muti-dropdown-item show="{{dropDownFlag}}" typeName="{{dropType}}" bind:commit='mutiSearchAll' bind:muticlose='mutiCloseAll'></dk-muti-dropdown-item>
+  <dk-muti-dropdown-item show="{{dropDownFlag}}" typeName="{{dropType}}" bind:commit='mutiSearchAll' navBarHeight="{{navBarHeight}}" bind:muticlose='mutiCloseAll'></dk-muti-dropdown-item>
   <!--单选-->
-  <dk-single-dropdown-item show="{{dropSingleDownFlag}}" typeName='{{dropType}}' bind:commit='chooseData' bind:muticlose='muticlose'></dk-single-dropdown-item>
+  <dk-single-dropdown-item show="{{dropSingleDownFlag}}" typeName='{{dropType}}' bind:commit='chooseData' navBarHeight="{{navBarHeight}}" bind:muticlose='muticlose'></dk-single-dropdown-item>
   <!-- 筛选 -->
   <dk-side-pull-menu show_p="{{pickFlag}}" searchForm="{{form}}" bind:clearSearchForm="clearform" bind:doSearchData="mutiSearchAll" 
   navBarHeight="{{navBarHeight}}" bind:onClose="mutiCloseAll">

+ 5 - 0
components/dkbusiness/dk-muti-dropdown-item/dk-muti-dropdown-item.js

@@ -204,6 +204,11 @@ Component({
           })
         }
       }
+    },
+    // 自定义导航栏高度
+    navBarHeight: {
+      type: Number,
+      value: 0
     }
   },
 

+ 2 - 2
components/dkbusiness/dk-muti-dropdown-item/dk-muti-dropdown-item.wxml

@@ -2,7 +2,7 @@
 <!-- 弹窗 -->
 <van-popup show="{{show}}" position="right" z-index="9999999" custom-style="overflow-x:hidden;width: 75%;z-index:9999999;height:100%;" bind:close="onClose">
  
- <van-sticky scroll-top="0">
+ <van-sticky scroll-top="0" offset-top="{{ navBarHeight }}">
    <view wx:if="{{Top_Height_Flag}}" style="height: 21vw;background: #fff;"></view>
    <van-search custom-class="search-class" shape="round" model:value="{{ conditions[typeName] }}" input-class="background:#c8c8c8;" placeholder="搜索" bind:change="onChange_input" bind:blur="blur_input" />
    <view class="choose_label" >
@@ -10,7 +10,7 @@
    </view>
  </van-sticky>
 
- <view class="root" style="height:calc(100% - 120rpx)">
+ <view class="root" style="height:calc(100% - 120rpx - 88px);margin-top: {{navBarHeight}}px;">
    <view class="scroll_search" style="overflow-x:hidden;">
      <scroll-view class="scroll_position"  scroll-x="{{false}}" scroll-y enable-back-to-top>
        <view wx:if="{{Top_Height_Flag}}" style="height: 21vw;background: #fff;"></view>

+ 10 - 14
mixins/index.js

@@ -1131,20 +1131,6 @@ module.exports = {
    * @date : 2024/1/22
    */
   onLoad() {
-    /**
-     * 获取自定义组件高度
-     * @author 刘尧
-     */
-    let that = this
-    let query = wx.createSelectorQuery();
-    query.select('#nav-bar').boundingClientRect(function (rect) {
-      // todo
-      console.log('res[res.length - 1]', rect);
-      that.setData({
-        navBarHeight: rect[rect.length - 1].scrollHeight
-      })
-    }).exec()
-
     let routeObjName = this.data.routeObjName;
     if (routeObjName) {
       // 根据routeObjName获取当前服务
@@ -1324,4 +1310,14 @@ module.exports = {
       wx.stopPullDownRefresh()
     }, 300)
   },
+  /**
+   * 获取自定义导航栏高度
+   * @author: 刘尧
+   */
+  getNavbarHeight(e){
+    const detail = e.detail
+    this.setData({
+      navBarHeight: detail.height
+    })
+  }
 };

+ 2 - 2
package-basic-data/pages/customer-list/customer-list.wxml

@@ -1,10 +1,10 @@
 <!-- 前台导入wxmlUtil.wxs -->
 <wxs src='/utils/wxmlUtil.wxs' module="wxmlUtil"></wxs>
 <loading wx:if="{{loading}}"></loading>
-<dk-navbar titleFontColor="#000000" navbarTitle="客户列表" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}"/>
+<dk-navbar titleFontColor="#000000" navbarTitle="客户列表" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}" bind:getNavbarHeight="getNavbarHeight"/>
 <van-sticky scroll-top="0">
   <!-- 查询条件 -->
-  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['cusName','cusPhone','adddressFull','remarks'])}}">
+  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" navBarHeight="{{navBarHeight}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['cusName','cusPhone','adddressFull','remarks'])}}">
   </dk-dropdown-menu>
   <dk-tabs wx:if="{{gradeCode !== 'STD'}}" active="{{active}}" list="{{tagList}}" bind:onChange="onChangeTabs"> </dk-tabs>
 </van-sticky>

+ 4 - 3
package-business-analysis/pages/cus-rec-pay-report/cus-rec-pay-report.wxml

@@ -1,7 +1,8 @@
 <view>
-  <dk-navbar titleFontColor="#000000" navbarTitle="客户收支表" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}"/>
-  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}"
-    bind:search="searchData" searchTextPlaceholder="{{placeholder}}"></dk-dropdown-menu>
+  <dk-navbar titleFontColor="#000000" navbarTitle="客户收支表" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}" bind:getNavbarHeight="getNavbarHeight"/>
+  <van-sticky scroll-top="0">
+    <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" navBarHeight="{{navBarHeight}}" bind:search="searchData" searchTextPlaceholder="{{placeholder}}"></dk-dropdown-menu>
+  </van-sticky>
   <view class="content">
     <view class="item-card" wx:for="{{cardDate}}" wx:for-index="index" wx:for-item="item">
       <view class="card-title">

+ 2 - 2
package-business-analysis/pages/detail-report/detail-report.wxml

@@ -1,9 +1,9 @@
 <!-- 前台导入wxmlUtil.wxs -->
 <loading wx:if="{{loading}}"></loading>
-<dk-navbar titleFontColor="#000000" navbarTitle="{{titleText}}" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}"/>
+<dk-navbar titleFontColor="#000000" navbarTitle="{{titleText}}" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}" bind:getNavbarHeight="getNavbarHeight"/>
 <van-sticky scroll-top="0" wx:if="{{loadFlag}}">
 	<!-- 查询条件 -->
-	<dk-dropdown-menu  model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" bind:search="searchData" searchTextPlaceholder="{{placeholder}}">
+	<dk-dropdown-menu  model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" navBarHeight="{{navBarHeight}}" bind:search="searchData" searchTextPlaceholder="{{placeholder}}">
 	</dk-dropdown-menu>
 </van-sticky> 
 

+ 1 - 1
package-inventory/pages/ivt-detail-report/ivt-detail-report.wxml

@@ -2,7 +2,7 @@
 <wxs src='/utils/wxmlUtil.wxs' module="wxmlUtil"></wxs>
 <loading wx:if="{{loading}}"></loading>
 <van-dialog id="van-dialog" />
-<dk-navbar titleFontColor="#000000" navbarTitle="库存查询" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}"/>
+<dk-navbar titleFontColor="#000000" navbarTitle="库存查询" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}"  bind:getNavbarHeight="getNavbarHeight"/>
 <van-sticky offset-top="{{ 0 }}">
   <view style="display: flex;">
     <view style="width: 85%;">

+ 2 - 2
package-inventory/pages/ivt-sum-report/ivt-sum-report.wxml

@@ -1,10 +1,10 @@
 <!-- 前台导入wxmlUtil.wxs -->
 <wxs src='/utils/wxmlUtil.wxs' module="wxmlUtil"></wxs>
 <loading wx:if="{{loading}}"></loading>
-<dk-navbar titleFontColor="#000000" navbarTitle="收发存汇总表" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}"/>
+<dk-navbar titleFontColor="#000000" navbarTitle="收发存汇总表" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}"  bind:getNavbarHeight="getNavbarHeight"/>
 <van-sticky scroll-top="0">
   <!-- 查询条件 -->
-  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['skuName','skuModel'])}}">
+  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" bind:search="searchData" navBarHeight="{{navBarHeight}}" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['skuName','skuModel'])}}">
   </dk-dropdown-menu>
 </van-sticky>
 

+ 2 - 2
package-inventory/pages/warehousing-processing/warehousing-processing.wxml

@@ -2,10 +2,10 @@
 <wxs src='/utils/wxmlUtil.wxs' module="wxmlUtil"></wxs>
 <van-dialog id="van-dialog" />
 <loading wx:if="{{loading}}"></loading>
-<dk-navbar titleFontColor="#000000" navbarTitle="入库办理" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}"/>
+<dk-navbar titleFontColor="#000000" navbarTitle="入库办理" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}" bind:getNavbarHeight="getNavbarHeight"/>
 <van-sticky scroll-top="0">
   <!-- 查询条件 -->
-  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['orderNo','telephone','adddress'])}}">
+  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" navBarHeight="{{navBarHeight}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['orderNo','telephone','adddress'])}}">
   </dk-dropdown-menu>
 
   <dk-tabs  active="{{active}}" list="{{tagList}}" bind:onChange="onChangeTabs"> </dk-tabs>

+ 2 - 2
package-sales/pages/customer-collection/customer-collection.wxml

@@ -2,10 +2,10 @@
 <wxs src='/utils/wxmlUtil.wxs' module="wxmlUtil"></wxs>
 <loading wx:if="{{loading}}" loadingName="{{$t['loading']}}" backgroundColor="#f2f2f2;" opacity="0.8"></loading>
 <!-- 自定义导航 -->
-<dk-navbar titleFontColor="#000000" navbarTitle="客户收款" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}"/>
+<dk-navbar titleFontColor="#000000" navbarTitle="客户收款" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}" bind:getNavbarHeight="getNavbarHeight"/>
 <van-sticky scroll-top="0">
   <!-- 查询条件 -->
-  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['customerName','orderNo','telephone','adddress','contractNumber'])}}">
+  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" navBarHeight="{{navBarHeight}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['customerName','orderNo','telephone','adddress','contractNumber'])}}">
   </dk-dropdown-menu>
 </van-sticky>
 

+ 2 - 2
package-sales/pages/order-billing/order-billing.wxml

@@ -2,10 +2,10 @@
 <wxs src='/utils/wxmlUtil.wxs' module="wxmlUtil"></wxs>
 <van-dialog id="van-dialog" />
 <loading wx:if="{{loading}}" loadingName="{{$t['loading']}}" backgroundColor="#f2f2f2;" opacity="0.8"></loading>
-<dk-navbar id="nav-bar" titleFontColor="#000000" navbarTitle="订单开单" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}"/>
+<dk-navbar titleFontColor="#000000" navbarTitle="订单开单" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}" bind:getNavbarHeight="getNavbarHeight"/>
 <van-sticky scroll-top="0">
   <!-- 查询条件 -->
-  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['customerName','orderNo','telephone','adddress'])}}">
+  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" navBarHeight="{{navBarHeight}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['customerName','orderNo','telephone','adddress'])}}">
   </dk-dropdown-menu>
   <dk-tabs active="{{active}}"  list="{{tagList}}" bind:onChange="onChangeTabs"></dk-tabs>
 </van-sticky>

+ 2 - 2
package-sales/pages/order-return/order-return.wxml

@@ -1,10 +1,10 @@
 <!-- 前台导入wxmlUtil.wxs -->
 <wxs src='/utils/wxmlUtil.wxs' module="wxmlUtil"></wxs>
-<dk-navbar titleFontColor="#000000" navbarTitle="销售退货" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}"/>
+<dk-navbar titleFontColor="#000000" navbarTitle="销售退货" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}" bind:getNavbarHeight="getNavbarHeight"/>
 <loading wx:if="{{loading}}" ></loading>
 <van-sticky scroll-top="0">
   <!-- 查询条件 -->
-  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['customerName','orderNo','telephone','adddress'])}}">
+  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" navBarHeight="{{navBarHeight}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['customerName','orderNo','telephone','adddress'])}}">
   </dk-dropdown-menu>
  
   <dk-tabs wx:if="{{!flgHandleSetting}}" active="{{active}}" list="{{tagList}}" bind:onChange="onChangeTabs">    </dk-tabs>

+ 2 - 2
package-sales/pages/sales-outbound/sales-outbound.wxml

@@ -1,10 +1,10 @@
 <!-- 前台导入wxmlUtil.wxs -->
 <wxs src='/utils/wxmlUtil.wxs' module="wxmlUtil"></wxs>
 <loading wx:if="{{loading}}" loadingName="{{$t['loading']}}" backgroundColor="#f2f2f2;" opacity="0.8"></loading>
-<dk-navbar titleFontColor="#000000" navbarTitle="销售出库" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}"/>
+<dk-navbar titleFontColor="#000000" navbarTitle="销售出库" bind:clickBack="handleNavBack" operateShow="{{ guideUrl ? true: false}}" operateUrl="{{guideUrl}}" bind:getNavbarHeight="getNavbarHeight"/>
 <van-sticky scroll-top="0">  
   <!-- 查询条件 -->
-  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['customerName','orderNo','telephone','adddress'])}}">
+  <dk-dropdown-menu model:value="{{searchForm}}" menuList="{{searchContent}}" pullMenuList="{{pullMenuList}}" navBarHeight="{{navBarHeight}}" bind:search="searchData" searchTextPlaceholder="{{wxmlUtil.setSearchPlaceholder($t,['customerName','orderNo','telephone','adddress'])}}">
   </dk-dropdown-menu>
  
   <dk-tabs wx:if="{{!flgHandleSetting}}" active="{{active}}" list="{{tagList}}" bind:onChange="onChangeTabs">    </dk-tabs>