|
@@ -1,40 +1,27 @@
|
|
-// nova-tourism/components/home/index.js
|
|
|
|
Component({
|
|
Component({
|
|
/**
|
|
/**
|
|
* 组件的属性列表
|
|
* 组件的属性列表
|
|
*/
|
|
*/
|
|
- properties: {
|
|
|
|
-
|
|
|
|
- },
|
|
|
|
|
|
+ properties: {},
|
|
|
|
|
|
/**
|
|
/**
|
|
* 组件的初始数据
|
|
* 组件的初始数据
|
|
*/
|
|
*/
|
|
data: {
|
|
data: {
|
|
- //屏幕高度
|
|
|
|
- statusBarHeight: 0, // 状态栏高度
|
|
|
|
- screenHeight: 0, // 屏幕高度
|
|
|
|
- customHeight: 0, // 自定义导航栏高度(如小程序右上角胶囊按钮)
|
|
|
|
- bottomNavHeight: 0, // 底部导航栏高度
|
|
|
|
- contentHeight: 0, // 可用内容高度
|
|
|
|
- // 轮播图数组
|
|
|
|
- //卡片数组
|
|
|
|
- cardarr: [1, 2, 3, 4, 5, 6, 7],
|
|
|
|
- //日历
|
|
|
|
|
|
+ statusBarHeight: 0,
|
|
|
|
+ screenHeight: 0,
|
|
|
|
+ customHeight: 0,
|
|
|
|
+ bottomNavHeight: 0,
|
|
|
|
+ contentHeight: 0,
|
|
|
|
+
|
|
date_start: '',
|
|
date_start: '',
|
|
- date_end:'',
|
|
|
|
- week_start:'',
|
|
|
|
- week_end:'',
|
|
|
|
|
|
+ date_end: '',
|
|
|
|
+ daysBetween:1,
|
|
show: false,
|
|
show: false,
|
|
},
|
|
},
|
|
lifetimes: {
|
|
lifetimes: {
|
|
-
|
|
|
|
- detached: function () {
|
|
|
|
- // 在组件实例被从页面节点树移除时执行
|
|
|
|
- },
|
|
|
|
|
|
+ detached: function () {},
|
|
attached: async function () {
|
|
attached: async function () {
|
|
- // 在组件实例进入页面节点树时执行
|
|
|
|
- // 计算
|
|
|
|
const systemInfo = wx.getSystemInfoSync();
|
|
const systemInfo = wx.getSystemInfoSync();
|
|
const statusBarHeight = systemInfo.statusBarHeight || 0;
|
|
const statusBarHeight = systemInfo.statusBarHeight || 0;
|
|
const screenHeight = systemInfo.screenHeight || 0;
|
|
const screenHeight = systemInfo.screenHeight || 0;
|
|
@@ -42,46 +29,69 @@ Component({
|
|
const customHeight = custom.height + 10 + 2 || 0;
|
|
const customHeight = custom.height + 10 + 2 || 0;
|
|
const bottomNavHeight = systemInfo.screenHeight - systemInfo.safeArea.bottom || 0;
|
|
const bottomNavHeight = systemInfo.screenHeight - systemInfo.safeArea.bottom || 0;
|
|
|
|
|
|
- const contentpadding = (statusBarHeight + customHeight) * 750 / systemInfo.windowWidth;
|
|
|
|
const contentHeight = (screenHeight - bottomNavHeight - 50 - statusBarHeight - customHeight) * 750 / systemInfo.windowWidth;
|
|
const contentHeight = (screenHeight - bottomNavHeight - 50 - statusBarHeight - customHeight) * 750 / systemInfo.windowWidth;
|
|
this.setData({
|
|
this.setData({
|
|
statusBarHeight,
|
|
statusBarHeight,
|
|
screenHeight,
|
|
screenHeight,
|
|
customHeight,
|
|
customHeight,
|
|
bottomNavHeight,
|
|
bottomNavHeight,
|
|
- contentHeight,
|
|
|
|
- contentpadding
|
|
|
|
|
|
+ contentHeight
|
|
});
|
|
});
|
|
- console.log(this.data.contentHeight);
|
|
|
|
|
|
+ this.getcurrentdate();
|
|
},
|
|
},
|
|
},
|
|
},
|
|
/**
|
|
/**
|
|
* 组件的方法列表
|
|
* 组件的方法列表
|
|
*/
|
|
*/
|
|
methods: {
|
|
methods: {
|
|
-
|
|
|
|
- //选择日期
|
|
|
|
- //打开日历
|
|
|
|
|
|
+ //获取今日明日日期
|
|
|
|
+ getcurrentdate() {
|
|
|
|
+ const today = new Date();
|
|
|
|
+ const tomorrow = new Date();
|
|
|
|
+ tomorrow.setDate(today.getDate() + 1);
|
|
|
|
+
|
|
|
|
+ this.setData({
|
|
|
|
+ date_start: this.formatDate(today),
|
|
|
|
+ date_end: this.formatDate(tomorrow),
|
|
|
|
+ });
|
|
|
|
+ console.log(this.data.date_start, this.data.date_end);
|
|
|
|
+ },
|
|
|
|
+ // 计算两个日期之间的天数
|
|
|
|
+ calculateDaysBetween(startDate, endDate) {
|
|
|
|
+ const start = new Date(startDate);
|
|
|
|
+ const end = new Date(endDate);
|
|
|
|
+ const timeDifference = end - start; // 计算时间差(毫秒)
|
|
|
|
+ const daysDifference = timeDifference / (1000 * 3600 * 24); // 转换为天数
|
|
|
|
+ return daysDifference; // 返回天数差
|
|
|
|
+ },
|
|
|
|
+ //开日历
|
|
onDisplay() {
|
|
onDisplay() {
|
|
- this.setData({ show: true });
|
|
|
|
- },
|
|
|
|
- //关闭日历
|
|
|
|
- onClose() {
|
|
|
|
- this.setData({ show: false });
|
|
|
|
- },
|
|
|
|
- formatDate(date) {
|
|
|
|
|
|
+ this.setData({
|
|
|
|
+ show: true
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ //关日历
|
|
|
|
+ onClose() {
|
|
|
|
+ this.setData({
|
|
|
|
+ show: false
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ //转换日期
|
|
|
|
+ formatDate(date) {
|
|
date = new Date(date);
|
|
date = new Date(date);
|
|
- console.log(date);
|
|
|
|
return `${date.getMonth() + 1}月${date.getDate()}日`;
|
|
return `${date.getMonth() + 1}月${date.getDate()}日`;
|
|
- },
|
|
|
|
- onConfirm(event) {
|
|
|
|
|
|
+ },
|
|
|
|
+ //选好日期点击完成后
|
|
|
|
+ onConfirm(event) {
|
|
const [start, end] = event.detail;
|
|
const [start, end] = event.detail;
|
|
|
|
+ const daysBetween = this.calculateDaysBetween(start, end); // 计算天数差
|
|
this.setData({
|
|
this.setData({
|
|
- show: false,
|
|
|
|
- date_start: `${this.formatDate(start)} `,
|
|
|
|
- date_end:`${this.formatDate(end)}`
|
|
|
|
|
|
+ show: false,
|
|
|
|
+ date_start: `${this.formatDate(start)} `,
|
|
|
|
+ date_end: `${this.formatDate(end)}`,
|
|
|
|
+ daysBetween
|
|
});
|
|
});
|
|
- console.log(this.data.date_start,this.data.date_end);
|
|
|
|
- },
|
|
|
|
|
|
+ console.log(`入住日期: ${this.data.date_start}, 离店日期: ${this.data.date_end}, 天数差: ${daysBetween}天`);
|
|
|
|
+ },
|
|
}
|
|
}
|
|
-})
|
|
|
|
|
|
+});
|