当前位置: 首页 > news >正文

微信小程序中,将搜索组件获取的值传递给父页面(如 index 页面)可以通过 自定义事件 或 页面引用 实现

将搜索组件获取的值传递给父页面(如 index 页面)可以通过 自定义事件 或 页面引用 实现

方法 1:自定义事件(推荐)
步骤 1:搜索组件内触发事件
在搜索组件的 JS 中,当获取到搜索值时,触发自定义事件(如 search),并将值通过 detail 传递:

// components/search-component/search-component.js
Component({methods: {onSearchInput(e) {const value = e.detail.value; // 获取输入框的值this.triggerEvent('search', { value }); // 触发事件}}
});

步骤 2:父页面监听事件
在父页面(如 index)的 WXML 中绑定事件:

<!-- index.wxml -->
<search-component bind:search="onSearch"></search-component>

运行 HTML
在父页面 JS 中定义事件处理函数:

// index.js
Page({onSearch(e) {const searchValue = e.detail.value; // 获取子组件传递的值console.log('搜索值:', searchValue);// 这里可以调用接口或更新页面数据this.setData({ searchKeyword: searchValue });}
});

Vant Card 卡片的price-top自定义价格上方区域

<van-card num="1"  price="{{item.roomFee}}"  title="{{item.roomName}}" thumb="{{ item.coverUrl }}" thumb-mode="aspectFill"
><!-- 使用 slot 而不是 # --><view slot="price-top"><text style="text-decoration: line-through; color: #999; font-size: 12px;">原价: {{item.originalPrice}}</text><van-tag type="danger" style="margin-left: 5px;">优惠</van-tag></view>
</van-card>

返回指定民宿在给定日期范围内每天的预定状态(可订或不可订)。

使用说明
参数说明:

#{roomId}: 要查询的民宿ID

#{startDate}: 开始日期(格式:‘YYYY-MM-DD’)

#{endDate}: 结束日期(格式:‘YYYY-MM-DD’)

返回结果:

每行包含一个日期和状态

status = 1: 该日期可订

status = 0: 该日期已被预定

业务规则:

退房当天14:00前算占用(不可订)

退房当天14:00后不算占用(可订)

只考虑paid、checked_in、checked_out状态的订单

WITH date_series AS (-- 生成从startDate到endDate的日期序列SELECT DATE_ADD(#{startDate}, INTERVAL seq DAY) AS dateFROM (SELECT 0 AS seq UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNIONSELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNIONSELECT 8 UNION SELECT 9 UNION SELECT 10 UNION SELECT 11 UNIONSELECT 12 UNION SELECT 13 UNION SELECT 14 UNION SELECT 15 UNIONSELECT 16 UNION SELECT 17 UNION SELECT 18 UNION SELECT 19 UNIONSELECT 20 UNION SELECT 21 UNION SELECT 22 UNION SELECT 23 UNIONSELECT 24 UNION SELECT 25 UNION SELECT 26 UNION SELECT 27 UNIONSELECT 28 UNION SELECT 29 UNION SELECT 30 UNION SELECT 31 UNIONSELECT 32 UNION SELECT 33 UNION SELECT 34 UNION SELECT 35 UNIONSELECT 36 UNION SELECT 37 UNION SELECT 38 UNION SELECT 39 UNIONSELECT 40 UNION SELECT 41 UNION SELECT 42 UNION SELECT 43 UNIONSELECT 44 UNION SELECT 45 UNION SELECT 46 UNION SELECT 47 UNIONSELECT 48 UNION SELECT 49 UNION SELECT 50 UNION SELECT 51 UNIONSELECT 52 UNION SELECT 53 UNION SELECT 54 UNION SELECT 55 UNIONSELECT 56 UNION SELECT 57 UNION SELECT 58 UNION SELECT 59) AS seqWHERE DATE_ADD(#{startDate}, INTERVAL seq DAY) <= #{endDate}
),
occupied_dates AS (-- 查询已被占用的日期SELECT DATE(check_in_date) AS start_date,DATE(check_out_date) AS end_date,TIME(check_out_time) AS checkout_timeFROM zyf_room_orderWHERE room_id = #{roomId}AND order_status IN ('paid', 'checked_in', 'checked_out')AND (-- 订单影响查询时间段的任何部分(DATE(check_out_date) >= #{startDate} AND DATE(check_in_date) <= #{endDate})OR-- 已入住未退房的长期订单(check_out_time IS NULL AND DATE(check_in_date) <= #{endDate}))
)
SELECT ds.date,CASE -- 检查该日期是否被占用WHEN EXISTS (SELECT 1 FROM occupied_dates od WHERE ds.date >= od.start_date AND ds.date <= od.end_dateAND (-- 如果是退房日,且退房时间>14:00,则不算占用NOT (ds.date = od.end_date AND TIME(od.checkout_time) > '14:00:00'))) THEN 0  -- 已预定ELSE 1     -- 可订END AS status
FROM date_series ds
ORDER BY ds.date;

相关文章:

  • 电路安全智控系统与主机安全防护系统主要功能是什么
  • 社交媒体时代的隐私忧虑:聚焦Facebook
  • 使用Trae CN分析项目架构
  • Jenkins 多分支流水线: 如何创建用于 Jenkins 状态检查的 GitHub 应用
  • STL详解 - priority_queue
  • 探索元生代:ComfyUI 工作流与计算机视觉的奇妙邂逅
  • 【数据结构】第四弹——LinkedList与链表
  • chili3d调试笔记3 加入c++ 大模型对话方法 cmakelists精读
  • 学习海康VisionMaster之中线查找
  • 力扣每日打卡 2176. 统计数组中相等且可以被整除的数对(简单)
  • Docker使用、容器迁移
  • Vue实现版本检测与升级
  • 软件开发中的入静与禅定:探寻深度专注与灵感的源泉
  • 【人力资源管理系统】C#实现
  • Linux之基础命令
  • 笔记整理四
  • Java基础 4.18
  • ctfshow-大赛原题-web702
  • 基于WOA鲸鱼优化的NARMAX模型参数辨识算法MATLAB仿真,对比PSO优化算法
  • 云计算(Cloud Computing)概述——从AWS开始
  • 谁将主导“视觉大脑”?中国AI的下一个超级赛道
  • 伤者升至80人,伊朗港口爆炸源头或为“危险品和化学品仓库”
  • 政治局会议深度|提出“设立新型政策性金融工具”有何深意?
  • 对外投资增长、消费市场持续升温,中国经济砥砺前行
  • 万能险新规落地:保险期限不得低于五年,明确万能险销售“负面清单”
  • 铜钴巨头洛阳钼业一季度净利润同比大增九成,最新宣布超30亿元收购黄金资产