【微信小程序开发实战项目】——如何制作一个属于自己的花店微信小程序(3)

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 这是一篇关于微信小程序开发的文章摘要,作者介绍了如何创建一个网上花店小程序,旨在提供便捷的购花体验。小程序包含鲜花分类功能,允许用户按品种、颜色和用途筛选,确保快速找到合适的鲜花。它还提供了配送服务,保证鲜花的新鲜度。文章展示了`cash.wxml`、`cash.wxss`和`cash.js`的部分代码,用于实现分类和商品展示,以及`qin.wxml`、`qin.wxss`和`qin.js`,涉及商品详情和购买付款流程。代码示例展示了商品列表渲染和交互逻辑,包括页面跳转、数据传递和点击事件处理。文章最后提到了购买付款界面,强调了安全和便捷的支付体验。

在这里插入图片描述


👨‍💻个人主页@开发者-曼亿点

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 曼亿点 原创

👨‍💻 收录于专栏微信小程序开发

🅰

-

[video(video-SIAFbOCb-1719905431985)(type-csdn)(url-https://live.csdn.net/v/embed/405645)(image-https://ucc.alicdn.com/images/user-upload-01/img_convert/4d308d4899bf76af224a89b818236925.jpeg)(title-花店小程序)]


@[TOC]


前言
-

  在这个数字化的时代,鲜花不仅仅是情感的传递者,更是美好生活的点缀。为了让您能更便捷地选购心仪的花束,我们精心打造了这款网上花店微信小程序。
  鲜花,承载着爱与祝福,是浪漫与温馨的象征。然而,传统的花店购买方式往往受到时间和空间的限制,让您无法在第一时间将这份美好传递给重要的人。我们深知您对鲜花的热爱和对便捷服务的需求,因此致力于通过技术的力量,为您创造一个全新的购花体验。
  这个网上花店微信小程序,将汇聚来自世界各地的优质鲜花品种,以精美的图片和详细的介绍呈现在您眼前。无论您是为了庆祝生日、表达爱意,还是为了装饰家居,只需轻点屏幕,就能轻松挑选到最适合您的那束花。
  同时,我们还提供贴心的配送服务,确保每一朵鲜花都能以最鲜活的姿态送达您指定的地点。在这里,您不仅能享受到便捷的购物流程,还能感受到我们对品质和服务的执着追求。
  让我们一同开启这充满花香的数字之旅,让鲜花的美丽与温暖,随时伴您左右。

在这里插入图片描述


🎶 一、鲜花的分类


  在缤纷绚烂的鲜花世界里,每一种花都拥有独特的魅力与寓意。为了让您能够更加便捷、精准地找到心仪的那束花,我们精心打造了鲜花分类功能。
鲜花的种类繁多,从热情似火的红玫瑰到纯洁无瑕的白百合,从温馨浪漫的康乃馨到高贵典雅的郁金香,每一种花都在诉说着不同的情感与故事。
  通过我们细致的分类体系,您可以轻松按照花的品种、颜色、用途等维度进行筛选。无论是为庆祝生日挑选的多彩花束,还是为表达爱意准备的专属鲜花,亦或是为装点家居寻觅的清新盆栽,都能在瞬间找到对应的类别。
  分类功能不仅是一种便捷的工具,更是一次引导您探索鲜花世界的奇妙之旅。让您在众多的选择中,快速定位心中所想,发现更多未曾留意的美丽。

(1)cash.wxml

<!--pages/cash/cash.wxml-->
<!--分割线-->
<view class="hr"></view>
<!--输入框-->
<input placeholder="请输入鲜花名称" style="text-emphasis-color: #FF0000; width: 400rpx; height: 50rpx; display: content; position: relative; left: 204rpx; top: 0rpx"></input>
<view class="hr"></view>


<view class="shopping"><!----><!--大框架-->
  <view class="nav_left"><!--侧边栏盒子-->
    <block wx:for="{
   
   {leftitem}}" wx:key="id">
      <!--这里定义了一个变量index,并把这个变量赋值为index,这个是wx:for循环产生的下标,传到js,通过这个下标完成商品的显示-->
      <view class="nav_left_items {
   
   {count==index?'active-tag':''}}" bindtap="switchRightTab" data-index="{
   
   {index}}"><!--文字盒子-->
        {
   
   {
   
   item.name}}
      </view>
    </block>
  </view>
  <view class="nav_right"><!--右边主体部分-->
    <!--通过侧边栏的选择传到js中的index的值与js中data数据中的tag进行比较,完成商品的分类显示-->
    <view class="nav_right_goods" wx:for="{
   
   {rightitem}}" wx:key="id" wx:if="{
   
   {count==item.tag}}" bindtap="changeImage" ><!--商品详情的盒子-->
      <view bindtap="click_nav_right" data-index_two="{
   
   {index}}" class="nav">
        <image src="{
   
   {item.url}}" mode="widthFix" style="width: 180rpx;height: 180rpx;border-radius: 20rpx;"></image><!--商品图片-->
        <view class="nav_right_textandprice"><!--文字和价格的盒子-->
          <text class="nav_right_text" style="color: black;">{
   
   {
   
   item.name}}</text><!--商品文字-->
          <view class="nav_right_price"><!--商品价格-->
            ¥{
   
   {
   
   item.price}}.00
          </view>
        </view>
      </view>
    </view>
  </view>
</view>
AI 代码解读

(2)cash.wxss

/* pages/cash/cash.wxss */
.hr {
   
   

  border: 1px solid #ddbcbc;

  width: 100%;

  opacity: 0.6;

}

/*输入框样式*/

input {
   
   

  margin: 15rpx 32rpx;

  border: 1px solid #FF0000;

  border-radius: 50rpx;

  text-align: center;

  font-size: 32rpx;

}

/*布局样式*/

.content {
   
   

  display: flex;

  flex-direction: row;

}

/*大框架*/
.shopping {
   
   
  position: relative;
  width: 100%;
  height: 100%;
  background-color: #fff;
  color:     #808080;
}
/*左侧栏主盒子*/
.nav_left{
   
   
  position: fixed;
  top: 0;
  left: 0;
  display: inline-block;
  width: 25%;
  height: 100%;
  /*主盒子设置背景色为灰色*/
  background: #f5f5f5;
  text-align: center;
}
.nav_left .nav_left_items{
   
   
  height: 30px;
  line-height: 30px;
  padding: 6px 0;
  border-bottom: 1px solid #dedede;
  font-size: 14px;
}
.nav_right{
   
   
  /*右侧盒子使用了绝对定位*/
  position: absolute;
  top: 0;
  right: 0;
  flex: 1;
  width: 75%;
  height: 100%;
  padding: 10px;
  box-sizing: border-box;
  background: #fff;
}
.nav{
   
   
  display: flex;
  padding: 40rpx;
}
.nav_right_textandprice{
   
   
  display: flex;
  flex-direction: column;
  padding-left: 20rpx;
  position: relative;
}
.nav_right_price{
   
   
  color: #c00000;
  position: absolute;
  bottom: 20rpx;
}
.active-tag{
   
   
  background-color:    white;
  color: red;
  border-left: 5px solid #FF0000;
  border-radius: 5px;
}
AI 代码解读

(3)cash.js

// pages/cash/cash.js
Page({
   
   
  changeImage:function(){
   
   
wx.navigateTo({
   
   
  url: '/pages/qin/qin',
})

  },

  data: {
   
   
    //leftitem是定义左边侧边栏的选项,rightitem是定义右边商品的展示,tag主要是把商品进行一个类别的划分
    leftitem:[
      {
   
   id:1,name:"生日花束"},
      {
   
   id:2,name:"稀有鲜花"},
      {
   
   id:3,name:"绿植盆栽"},
      {
   
   id:4,name:"开业商务"},
      {
   
   id:5,name:"春夏高定"},
      {
   
   id:6,name:"时令花礼"},
      {
   
   id:7,name:"玫瑰礼盒"}
    ],
    rightitem:[
      {
   
   id:1,name:"香槟玫瑰",price:78,url:"../../images/hua/12.jpg",tag:0,},
      {
   
   id:1,name:"昆明桃红金芍",price:112,url:"../../images/hua/hau6.jpg",tag:0},
      {
   
   id:1,name:"昆明金丝竹桃",price:129,url:"../../images/hua/hua7.jpg",tag:0},
      {
   
   id:2,name:"暮光之城",price:233,url:"../../images/hua/hua10.jpg",tag:1},
      {
   
   id:2,name:"橙色亚百合",price:123,url:"../../images/hua/hau11.jpg",tag:1},
      {
   
   id:3,name:"use",price:91,url:"/images/hua/hau11.jpg",tag:2},

    ],
    count:0,//我们把前端的index值传到js中,并把它赋值给count,储存在js中,方便右边商品通过count完成与侧边栏的相同的那一类的商品展示,同时完成侧边栏的样式,保证选中的选项有与其他未选择的选项的区别
  },
  click_nav_right(event){
   
   //这个主要是完成商品分类页的数据传递到商品详情页
    var data_one=event.currentTarget.dataset.index_two//前端的右边商品定义了一个index_two这个变量,我们在js中把这个值赋值给data变量,并传递到商品详情页
    //console.log(data_one)
    wx.navigateTo({
   
   //通过这个函数,完成两个页面中数据的传递,具体的用法可以到微信的小程序文档中搜索,当然除了用这个函数,也可以通过引用全局变量的方式完成数据的传递
      url: '/pages/detail/detail?data='+data_one,
    })
  },
  switchRightTab(event){
   
   
    this.setData({
   
   
      count:event.target.dataset.index
    });//改变count原本的值,完成右侧商品的根据侧边栏的不同展示商品
  },

})
AI 代码解读

结果展示:
在这里插入图片描述


🎶 二、鲜花的购买付款界面


  在这个充满花香的数字世界里,为了让您能够轻松、安全、便捷地拥有心仪的鲜花,我们精心构建了高效可靠的付款功能。
  付款,这一关键环节,不仅是交易的完成,更是信任的传递。我们深知您对每一笔消费的重视,因此致力于提供多种灵活且安全的付款方式,满足您的个性化需求。
  无论是传统的在线支付,还是便捷的移动支付,亦或是贴心的货到付款,我们都力求为您打造流畅、无忧的付款体验。每一次点击,每一次输入,都承载着您对美好生活的期待,而我们的付款功能将确保这一期待得以顺利实现。
  严密的安全防护机制,如同坚实的堡垒,守护着您的财务信息,让您在选购鲜花时毫无后顾之忧。简洁明了的操作界面,让付款过程如同鲜花绽放般自然流畅。
  让付款不再是繁琐的步骤,而是您与美丽鲜花之间的最后一道温馨桥梁,让您更快地将这份美好带回家。

(1)qin.wxml

<!--pages/qin/qin.wxml-->
<view class="detail"><!--商品详情的大框架--><!---->
  <block wx:for="{
   
   {rightitem}}" wx:key="id" wx:if="{
   
   {number==index}}"><!--这个是拿商品分类页传递过来的数据(number)与这边商品的下标(index)进行比较,展现商品分类页面选择的商品的详情-->
    <image class="shop_image" mode="widthFix" src="{
   
   {item.url}}" style="width: 750rpx;height: 400rpx;"></image><!--图片展示-->
    <view class="detail_box" style="width: 750rpx; height: 150rpx; display: flex; box-sizing: border-box">
      <view class="detail_price"><!--这个是价格和商品名字的显示-->
        <text style="color: #c00000;font-size: 34rpx;">¥{
   
   {
   
   item.price}}.00</text><!--价格展示-->
        <text style="font-size: 34rpx;padding-top: 20rpx;">{
   
   {
   
   item.name}}</text><!--商品名称-->
      </view>
      <view class="detail_text"><!--这个是右边的那个分享,我这里是放了一张图片进行代替,没有开发这个功能-->
        <image src="/images/nav/fen.jpg" mode="widthFix" style="width: 130rpx;width: 60rpx;padding-right: 20rpx;"></image>
      </view>
    </view>
    <view class="detail_goods"><!--这个是商品详情的分隔-->
      <text>商品详情</text>
    </view>
    <view class="detail_image"><!--这个主要做的是底部的导航,主要是通过css属性完成的简易版导航-->
      <image mode="widthFix" src="{
   
   {item.good}}" style="width: 750rpx;width: 750rpx;margin-top: 20rpx;"></image><!--商品详情-->
    </view>
  </block>
  <view class="detail_button"><!--底部的商品导航-->
    <navigator class="button_message" url=""><!--消息图标部分-->
      <image src="/images/bar/community-0.png" class="button_image"></image>
      <text class="button_text">消息</text>
    </navigator>
    <navigator class="button_message" url=""><!--购物车图标部分-->
      <image src="/images/bar/ui.png" class="button_image" bindtap="changeImage"></image>
      <text class="button_text"bindtap="gwc" >购物车</text>
    </navigator>
    <view class="button button_one" bindtap="gwc1" >加入购物车</view>
    <view class="button button_two" bindtap="zf">立即购买</view>
  </view>

</view>
AI 代码解读

(2)qin.wxss

/* pages/qin/qin.wxss */
.detail{
   
   
  background-color:#e9e9e9;
}
.detail_button{
   
   
  display: flex;
  align-items: center;
  position: fixed;
  bottom: 0;
  background-color: white;
  height: 100rpx;
  width: 100%;
}
.button_image{
   
   
  width: 50rpx;
  height: 50rpx;
}
.button_text{
   
   
  font-size: smaller;
}
.button_message{
   
   
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100rpx;
}
.button{
   
   
  flex: 1;
  text-align: center;
  padding: 20rpx;
  border-radius: 50rpx;
  margin: 0 20rpx;
}
.button_one{
   
   
  background-color: #ffa630;
}
.button_two{
   
   
  background-color: #ff2c3c;
}
.detail_box{
   
   
  display: flex;
  background-color: #fff;
  padding: 10rpx 0;
  padding-left: 20rpx;
  align-items: center;
  justify-content: space-between;
}
.detail_price{
   
   
  display: flex;
  flex-direction: column;
}
.detail_goods{
   
   
  background-color: #fff;
  line-height: 100rpx;
  text-align: center;
  font-weight: bold;
  margin-top: 20rpx;
}
AI 代码解读

(3)qin.js

// pages/qin/qin.js
Page({
   
   
  gwc:function(e){
   
   
    wx.switchTab({
   
   
      url: '/pages/gou/gou',
    })
  },
  /**
   * 页面的初始数据
   */
  data: {
   
   //数据的定义
    rightitem:[
      {
   
   id:1,name:"香槟玫瑰",price:78,url:"../../images/hua/12.jpg",tag:0},
      {
   
   id:1,name:"昆明桃红金芍",price:112,url:"../../images/hua/hau6.jpg",tag:0},
      {
   
   id:1,name:"昆明金丝竹桃",price:129,url:"../../images/hua/hua7.jpg",tag:0},
      {
   
   id:2,name:"暮光之城",price:233,url:"../../images/hua/hua10.jpg",tag:1},
      {
   
   id:2,name:"橙色亚百合",price:123,url:"../../images/hua/hau11.jpg",tag:1},
      {
   
   id:3,name:"use",price:91,url:"/images/hua/hau11.jpg",tag:2},

    ],
    number:0
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad:function(options) {
   
   //接收商品分类页面传递的data值(传递的是index_two这个值,我们把这个值赋值给了data这个变量,所以这个吧接收到的是data)
    var data_two=options.data
    this.setData({
   
   
      number:data_two//把商品分类页面传递的值复制给number,方便wxml页面的调用
    });

  },
  gwc1(){
   
   
      wx.showToast({
   
   
        title: '添加购物车成功',
      })},
      zf(){
   
   
        wx.showToast({
   
   
          title: '支付成功',
        }) 
}
})
AI 代码解读

运行结果:
在这里插入图片描述

结束语🥇

以上就是微信小程序之列表渲染
持续更新微信小程序教程,欢迎大家订阅系列专栏🔥微信小程序
你们的支持就是曼亿点创作的动力💖💖💖
请添加图片描述

目录
打赏
0
0
0
0
3
分享
相关文章
陪练,代练,护航,代打小程序源码/前端UNIAPP-VUE2.0开发 后端Thinkphp6管理/具备家政服务的综合型平台
这款APP通过技术创新,将代练、家政、娱乐社交等场景融合,打造“全能型生活服务生态圈”。以代练为切入点,提供模块化代码支持快速搭建平台,结合智能匹配与技能审核机制,拓展家政服务和商业管理功能。技术架构具备高安全性和扩展性,支持多业务复用,如押金冻结、录屏监控等功能跨领域应用。商业模式多元,包括交易抽成、增值服务及广告联名,同时设计跨领域积分体系提升用户粘性,实现生态共生与B端赋能。
67 10
weixin163基于微信小程序的校园二手交易平台系统设计与开发ssm(文档+源码)_kaic
本文介绍了一款基于微信小程序的校园二手物品交易平台的开发与实现。该平台采用Java语言开发服务端,使用MySQL数据库进行数据存储,前端以微信小程序为载体,支持管理员和学生两种角色操作。管理员可管理用户、商品分类及信息、交易记录等,而学生则能注册登录、发布购买商品、参与交流论坛等。系统设计注重交互性和安全性,通过SSM框架优化开发流程,确保高效稳定运行,满足用户便捷交易的需求,推动校园资源共享与循环利用。
工会成立100周年纪念,开发职工健身AI运动小程序、APP方案推荐
为庆祝中华全国总工会成立100周年,特推出基于AI技术的智能健身系统,以小程序和APP形式呈现,助力职工健康生活。方案包括:1) 小程序插件,支持多种运动识别,开箱即用;2) APP插件,提供更高精度的运动检测;3) 成熟的「AI乐运动」系统,支持赛事活动管理。这些方案满足不同需求,推动全民健身体验升级,彰显工会对职工健康的关怀。
【一步步开发AI运动小程序】二十一、如何将AI运动项目配置持久化到后端?
本文介绍基于云智「Ai运动识别引擎」的运动配置持久化方案,旨在优化小程序或Uni APP中AI运动识别能力。通过将运动检测参数(如`Key`、`Name`、`TickMode`、`rules`或`samples`)持久化到后端,可避免因频繁调整运动参数而重新发布应用,提升用户体验。持久化数据结构支持规则和姿态样本存储,适用于关系数据库、文件或文档数据库(如MongoDB)。此外,云智还提供运动自动适配工具及「AI乐运动」产品,助力快速实现AI体育、全民健身等场景。
weixin168“返家乡”高校暑期社会实践微信小程序设计与开发ssm(文档+源码)_kaic
本文探讨高校暑期社会实践微信小程序的开发与应用,旨在通过信息化手段提升活动管理效率。借助微信小程序技术、SSM框架及MySQL数据库,实现信息共享、流程规范和操作便捷。系统涵盖需求分析、可行性研究、设计实现等环节,确保技术可行、操作简便且经济合理。最终,该小程序可优化活动发布、学生信息管理和心得交流等功能,降低管理成本并提高工作效率。
【一步步开发AI运动小程序】十八、如何识别用户上传图片中的人体、运动、动作、姿态?
【云智AI运动识别小程序插件】为小程序提供人体、运动及姿态检测的AI能力,本地引擎支持10余种运动,无需后台服务,具备快速、低成本等优势。本文介绍如何通过Canvas方案读取用户上传图片的像素数据,实现人体检测与姿态分析功能,代码简单高效,适合快速集成。更多内容欢迎交流!
校园圈子系统小程序(圈子论坛、私信聊天、资料共享、二手交易、兼职,跑腿)开源码开发/微信公众号、小程序、H5多端账号同步/搭建多城市的综合社交生活平台
基于开源技术栈构建的校园圈子系统小程序,整合社交与生活服务功能,涵盖兴趣圈子、私信聊天、资料共享、二手交易、兼职跑腿等六大核心模块。通过多端账号同步(微信公众号/小程序/H5),实现数据实时交互,满足学生群体的多元化需求。项目精准锚定校园市场,以“社交+服务”双轮驱动,提供一站式解决方案,支持快速部署与多校区运营,同时具备广告、佣金、会员等多元变现能力,是打造校园生态的理想工具。
88 0
校园圈子系统小程序(圈子论坛、私信聊天、资料共享、二手交易、兼职,跑腿)开源码开发/微信公众号、小程序、H5多端账号同步/搭建多城市的综合社交生活平台
【一步步开发AI运动小程序】十九、运动识别中如何解析RGBA帧图片?
本文介绍了如何将相机抽取的RGBA帧图像解析为`.jpg`或`.png`格式,适用于体测、赛事等场景。首先讲解了RGBA图像结构,其为一维数组,每四个元素表示一个像素的颜色与透明度值。接着通过`uni.createOffscreenCanvas()`创建离屏画布以减少绘制干扰,并提供代码实现,将RGBA数据逐像素绘制到画布上生成图片。最后说明了为何不直接使用拍照API及图像转换的调用频率建议,强调应先暂存帧数据,运动结束后再进行转换和上传,以优化性能。
【一步步开发AI运动小程序】二十、AI运动小程序如何适配相机全屏模式?
本文探讨了小程序`camera`组件在全屏模式下的适配问题及其解决方案。由于`camera`组件存在预览图像裁切特性,可能导致入镜检测与预览不一致、骨骼图与人体不重合等问题。通过分析其裁剪逻辑(长边按比缩放,短边居中裁切),我们提供了计算裁剪比例和留白的适配方法,并优化了插件特性以支持全屏应用。同时,文章还讨论了全屏模式可能带来的副作用,如人体可视区域变小、检测范围变化及抽帧帧率下降等,并给出了改进建议。该方案适用于云上赛事、健身锻炼、AI体测、AR互动等场景,助力提升用户体验和UI布局合理性。
技术小白如何利用DeepSeek半小时开发微信小程序?
通过通义灵码的“AI程序员”功能,即使没有编程基础也能轻松创建小程序或网页。借助DeepSeek V3和R1满血版模型,用户只需用自然语言描述需求,就能自动生成代码并优化程序。例如,一个文科生仅通过描述需求就成功开发了一款记录日常活动的微信小程序。此外,通义灵码还提供智能问答模式,帮助用户解决开发中的各种问题,极大简化了开发流程,让普通人的开发体验更加顺畅。
882 11
技术小白如何利用DeepSeek半小时开发微信小程序?

数据库

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等