邹能昇 3 semanas atrás
pai
commit
e77f8c7c2a

+ 67 - 2
nova-tourism/components/home/index.js

@@ -11,11 +11,26 @@ Component({
      * 组件的初始数据
      */
     data: {
+        //屏幕高度
+        statusBarHeight: 0, // 状态栏高度
+        screenHeight: 0, // 屏幕高度
+        customHeight: 0, // 自定义导航栏高度(如小程序右上角胶囊按钮)
+        bottomNavHeight: 0, // 底部导航栏高度
+        contentHeight: 0, // 可用内容高度
+        //
+        showNav: false, // 控制导航栏的显示与隐藏
+        scrollTop: 0, // 当前滚动位置
         //  轮播图数组
         imageUrls: ['https://tse4-mm.cn.bing.net/th/id/OIP-C.3r1vguZyWFUJ80A2Nf2k3AHaEK?rs=1&pid=ImgDetMain', 'https://ts1.cn.mm.bing.net/th/id/R-C.9881613a29f26488b40938427aa585e4?rik=fim4XvDejjHE%2fQ&riu=http%3a%2f%2fn.sinaimg.cn%2fsinakd20220516ac%2f797%2fw2048h1149%2f20220516%2fb0aa-5aca29fe2dfa69c385118bbc74d039de.jpg&ehk=tzq%2bJP6uMipI0aIHY3bMSVO7lS7ZQM6TKMlwZ5CFP4s%3d&risl=&pid=ImgRaw&r=0', 'https://pic3.zhimg.com/v2-5fb13110e1de13d4c11e6e7f5b8026da_r.jpg', 'https://desk-fd.zol-img.com.cn/t_s960x600c5/g5/M00/02/04/ChMkJ1bKyEyIMaKUAAhskHwWGqUAALIAAM2KsIACGyo249.jpg'],
         index: 1,
         //卡片数组
-        cardarr:[1,2,3,4,5,6,7]
+        cardarr: [1, 2, 3, 4, 5, 6, 7],
+        //日历
+        date_start: '',
+        date_end:'',
+        week_start:'',
+        week_end:'',
+        show: false,
     },
     lifetimes: {
 
@@ -24,18 +39,68 @@ Component({
         },
         attached: async function () {
             // 在组件实例进入页面节点树时执行
+            // 计算
+            const systemInfo = wx.getSystemInfoSync();
+            const statusBarHeight = systemInfo.statusBarHeight || 0;
+            const screenHeight = systemInfo.screenHeight || 0;
+            const custom = wx.getMenuButtonBoundingClientRect();
+            const customHeight = custom.height + 10 + 2 || 0;
+            const bottomNavHeight = systemInfo.screenHeight - systemInfo.safeArea.bottom || 0;
+
+            const contentHeight = (statusBarHeight +customHeight) * 750 / systemInfo.windowWidth;
+
+            this.setData({
+                statusBarHeight,
+                screenHeight,
+                customHeight,
+                bottomNavHeight,
+                contentHeight
+            });
+            console.log(this.data.bottomNavHeight);
         },
     },
     /**
      * 组件的方法列表
      */
     methods: {
+        //滑动显示导航栏
+        onScroll: function (event) {
+            const scrollTop = event.detail.scrollTop; // 获取当前滚动位置
+            this.setData({
+                scrollTop: scrollTop,
+                showNav: scrollTop > 295 // 当滚动超过  时显示导航栏
+            });
+        },
         //随轮播图变化而变化
         onSwiperChange: function (event) {
             const currentIndex = event.detail.current; // 获取当前索引
             this.setData({
                 index: currentIndex + 1
             })
-        }
+        },
+
+        //选择日期
+        //打开日历
+        onDisplay() {
+            this.setData({ show: true });
+          },
+          //关闭日历
+          onClose() {
+            this.setData({ show: false });
+          },
+          formatDate(date) {
+            date = new Date(date);
+            console.log(date);
+            return `${date.getMonth() + 1}月${date.getDate()}日`;
+          },
+          onConfirm(event) {
+            const [start, end] = event.detail;
+            this.setData({
+              show: false,
+              date_start: `${this.formatDate(start)} `,
+              date_end:`${this.formatDate(end)}`
+            });
+            console.log(this.data.date_start,this.data.date_end);
+          },
     }
 })

+ 2 - 1
nova-tourism/components/home/index.json

@@ -1,6 +1,7 @@
 {
     "component": true,
     "usingComponents": {
-        "van-icon": "@vant/weapp/icon/index"
+        "van-icon": "@vant/weapp/icon/index",
+        "van-calendar": "@vant/weapp/calendar/index"
     }
 }

+ 27 - 2
nova-tourism/components/home/index.less

@@ -4,7 +4,6 @@
     width: 100vw;
     height: 100vh;
     background-color: #f7f7f7;
-    overflow-y: scroll;
     position: relative;
     .picturebox{
         width: 100%;
@@ -37,7 +36,6 @@
     }
     .Legendary-Information{
         width: 100%;
-        height: 70%;
         background-color: white;
         border-top-left-radius: 20px; /* 左上角圆角 */
         border-top-right-radius: 20px; /* 右上角圆角 */
@@ -47,6 +45,8 @@
         padding-left: 25rpx;
         padding-right: 20rpx;
         z-index: 10;
+        overflow-y: hidden;
+        padding-bottom: 20rpx;
         .text{
             width: 100%;
             height: 100rpx;
@@ -80,6 +80,31 @@
             width: 100%;
             height: 90rpx;
             background-color: #f7f7f7;
+            display: flex;
+            padding-left: 20rpx;
+            padding-right: 20rpx;
+            align-items: center;
+            color: orange;
+            font-size: 32rpx;
+            .start{
+                display: flex;
+                justify-content: flex-end;
+            }
+            .day{
+                display: flex;
+                justify-content: center;
+                align-items: center;
+                margin-left: auto;
+                width: 90rpx;
+                height: 42rpx;
+                border-radius: 40rpx;
+                border: gray solid 1px;
+                font-size: 25rpx;
+                color: black;
+            }
+            .end{
+                margin-left: auto;
+            }
         }
         .cardbox{
             .card{

+ 10 - 8
nova-tourism/components/home/index.wxml

@@ -1,5 +1,5 @@
-<!--nova-caipu/pages/new-app/index.wxml-->
-<view class="all">
+<nav type="title" background-color="#ffffff" frontColor="#000000" title="望仙谷" wx:if="{{showNav}}" />
+<scroll-view class="all" scroll-y="true" bindscroll="onScroll" style="padding-bottom: {{50+bottomNavHeight}}px;">
     <!-- 轮播图 -->
     <view class="picturebox">
         <swiper autoplay="{{true}}" interval="{{3000}}" duration="{{500}}" class="img" bindchange="onSwiperChange">
@@ -11,8 +11,9 @@
         </swiper>
         <view class="numberbox">{{index}}/{{imageUrls.length}}</view>
     </view>
+    <!-- 滑动条bug -->
     <!-- 民宿信息 -->
-    <view class="Legendary-Information" style="height: {{cardarr.length == 1 ? '1000rpx' : (450 + cardarr.length * 635) + 'rpx'}}">
+    <view class="Legendary-Information">
         <view class="text">
             <view class="namebox">
                 <view class="name">望·三清艺术部落 ></view>
@@ -27,9 +28,12 @@
             </view>
         </view>
         <!-- 日期 -->
-        <view class="datebox">
-
+        <view class="datebox" bindtap="onDisplay">
+            <view class="start">{{date_start}}</view>
+            <view class="day">共4晚</view>
+            <view class="end">{{date_end}}</view>
         </view>
+        <van-calendar show="{{ show }}"  show-confirm="{{ true }}" confirm-text="完成" confirm-disabled-text='完成' type="range" bind:close="onClose" bind:confirm="onConfirm" color='#ff0000' position='top' />
         <!-- 卡片 -->
         <view class="cardbox" wx:for="{{cardarr}}">
             <view class="card">
@@ -44,8 +48,6 @@
                     <view class="buttom">预定</view>
                 </view>
             </view>
-
         </view>
     </view>
-
-</view>
+</scroll-view>

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
nova-tourism/components/home/index.wxss


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff