微信小程序笔记

1.页面代码

首页

<view class="index-container">

  <!-- 首页背景图 -->

  <view class="window-bgc"></view>

  <!-- 页面主体部分 -->

  <view class="container">

    <!-- 轮播图区域 -->

    <banner />

    <!-- 导航区域 -->

    <entrance />

    <!-- 广告区域 -->

    <view class="adver">

      <view class="adver-left">

      <navigator url="">

        <image src="../../assets/images/love.jpg" mode="widthFix" />

      </navigator>

    </view>

    <view class="adver-right">

    <view>

    <navigator url="">

      <image src="../../assets/images/elder.jpg" mode="widthFix" />

    </navigator>

  </view>

  <view>

    <navigator url="">

      <image src="../../assets/images/friend.jpg" mode="widthFix" />

    </navigator>

  </view>

</view>

</view>

<!-- 商品列表 -->

<goods-list title="人气推荐"/>

<goods-list title="猜我喜欢"/>

<goods-card/>

</view>

</view>

  //首页背景图

.window-bgc{

  height: 200rpx;

  position:absolute;

  width:100%;

  background-color: #f3514f;

  border-radius:0rpx 0rpx 40% 40%;

}

.adver {

  display: flex;

  margin:0 auto;

  width: 96%;

  padding: 18rpx;

  box-sizing: border-box;

  background-color:rgb(177, 54, 54);

  border-radius: 18rpx;

  .adver-left{

    width: 50%;

    padding: 8rpx 8rpx 0rpx 8rpx;

  }

  .adver-right{

    width: 50%;

    padding: 8rpx 8rpx 0rpx 6rpx;

    view:laat-child{

      padding-top: 10rpx;

    }

  }

  image{

    width: 100%;

  }

}

边边框框

 position: relative;

  .swiper{

    height: 320rpx;

    //设置圆角弧度

    border-radius: 18rpx;

    //设置溢出隐藏

    overflow: hidden;

    width: 95%;

    //margin设置外边距

    margin: 0 auto;

  }

  .swiper-item{

    .img{

      width: 100%;

      height: 100%;

      border-radius: 18rpx;

    }

  }

  .indicator{

    display: flex;

    justify-content: center;

    position: absolute;

    bottom: 16rpx;

    left: 0rpx;

    right: 0rpx;

    .rectangle{

      width: 30rpx;

      height: 6rpx;

      background-color: #f3514f;

      margin: 0 8rpx;

      border-radius: 6rpx;

    }

  }

<!--components/goods-card/goods-card.wxml-->
<view class="goods_card_container">
<!-- 图片 -->
  <navigator class="navigator_nav" url="/pages/goods/detail/detail?goodsId={{goodItem.id}}">
    <image src="{{ goodItem.imageUrl }}" mode="widthFix" class="goods_img"/>
  <!-- 详细信息 -->
  <view class="goods_item_info">
    <!-- 商品名称 -->
    <text class="goods_item_info_name">{{ goodItem.name }}</text>
    <!-- 商品描述 -->
    <text class="goods_item_info_promo">{{ goodItem.floralLanguage }}</text>
    <!-- 商品价格 -->
    <view class="goods_item_info_bottom">
      <view class="goods_item_info_price">
        <text class="text">¥</text>{{ goodItem.price }}
      </view>
      <view class="goods_item_info_origin_price">
        <text class="text">¥</text>{{goodItem.marketPrice}}
      </view>
      <!-- 加入购物车图片 -->
      <view class="goods_item_info_btn">
        <image class="goods_image" src="/static/images/buybtn.png" mode=""/>
      </view>
    </view>
  </view>
  </navigator>
</view>

2.分类页面

<!--pages/category/category.wxml-->
<view>
  <view class="category-container">
    <!-- 左侧的滚动视图区域 -->
    <scroll-view class="category-left-view" scroll-y>
      <!-- active:被选中的内容 -->
      <view class="left-view-item {{ activeIndex === index ? 'active' : '' }}" wx:for="{{categoryList}}" wx:key="id" bindtap="updateAcitve" data-index="{{index}}">
        {{ item.name}}
      </view>
    </scroll-view>
    <!-- 右侧的滚动视图区域  -->
    <scroll-view class="category-right-view" scroll-y>
      <!-- 二级分类 -->
      <view class="test">
        <view wx:for="{{ 10 }}" wx:key="index" class="right-view-item">
          <navigator class="navigator" url="">
            <image class="" src="../../assets/images/cate-1.png" mode="" />
            <text class="goods_item_name">真情告白</text>
          </navigator>
        </view>
      </view>
    </scroll-view>
  </view>
</view>

3.购物车代码效果图

<!-- 购物车列表区域 -->

  <view class="carList-container">

    <view class="carList-container-cell">

      <van-swipe-cell right-width="{{ 65 }}" left-width="{{ 65 }}">

        <view slot="left" class="van-swipe-cell__left">选择</view>

        <van-cell-group>

          <view class="goods-info">

            <view class="left">

              <van-checkbox value="{{ false }}" checked-color="#e60017" bind:change="onChange">

              </van-checkbox>

            </view>

            <view class="mid">

              <image src="../../assets/images/floor-img.jpg" mode="" />

            </view>

            <view class="right">

              <view class="title">【11枝红玫瑰】买玫瑰送老婆</view>

              <view class="buy">

                <view class="price">¥99.00</view>

                <view class="buy-btn">

                  <van-stepper value="{{ 1 }}" bind:change="onChange" />

                </view>

              </view>

            </view>

          </view>

        </van-cell-group>

        <view slot="right" class="van-swipe-cell__right">删除</view>

      </van-swipe-cell>

    </view>

  </view>

  <!-- 提交订单栏区域 -->

  <van-submit-bar price="{{ 3050 }}" button-text="提交订单" bind:submit="onClickButton" tip="{{ true }}">

    <van-checkbox value="{{ true }}" checked-color="#e60017" bind:change="onChange">

      全选

    </van-checkbox>

  </van-submit-bar>

</view>

<!--pages/goods/goods.wxml-->
<view class="container">
  <!-- 商品大图 -->
  <view class="banner-img">
    <image src="../../assets/images/floor.jpg" mode="" />
  </view>
  <!-- 商品的基本信息 -->
  <view class="content">
    <!-- 商品标题 -->
    <view class="title">亲爱的/情人节网红款/19枝</view>
    <!-- 详细信息 -->
    <view class=" info">情⼈节新品情⼈节新品情⼈节新品情⼈节新品</view>
    <!-- 商品价格 -->
    <view class="price">
      <view class="price-num">¥299</view>
      <view class="price-origin-num">¥399</view>
    </view>
  </view>
  <!-- 商品的详细信息 -->
  <view class="detail">
    <image src="../../assets/images/floor-img.jpg" mode="" />
    <image src="../../assets/images/floor-img.jpg" mode="" />
    <image src="../../assets/images/floor-img.jpg" mode="" />
  </view>
  <!-- 商品的底部导航栏 -->
  <van-goods-action>
    <!-- 如果navigator标签跳转到tabber栏 则需要加open-type -->
    <navigator url="/pages/index/index" open-type="'switchTab">
      <van-goods-action-icon icon="wap-home-o" text="首页" />
    </navigator>
 
    <van-goods-action-icon icon="chat-o" text="客服" dot />
    <van-goods-action-icon icon="cart-o" text="购物车" info="5" />
    <van-goods-action-button text="加入购物车" type="warning" bind:tap="handelSheet" />
    <!-- handelSheel为点击按钮事件 -->
    <van-goods-action-button text="立即购买" bind:tap="handelSheet" />
  </van-goods-action>
  <!-- 自定义面板 -->
  <!-- bind:close为面板关闭事件 -->
  <van-action-sheet show="{{ show }}" bind:close="onClose"  position="bottom">
    <view class="sheet-container">
      <view class="img">
        <image src="../../assets/images/floor-img.jpg" mode="" />
      </view>
      <!-- 商品基本信息区域 -->
      <view class="baseInfo">
        <!-- 商品名称 -->
        <view class="title">亲爱的/情人节网红款/19支玫瑰</view>
        <!-- 商品价值区域 -->
        <view class="buy">
          <view class="price">
            <view class="symbol">¥</view>
            <view class="num">100</view>
          </view>
          <view class="buyBtn">
            <van-stepper value="{{1}}" bind:change="onChange" />
          </view>
        </view>
      </view>
    </view>
      <!-- 商品祝福语区域 -->
      <view class="textArea">
        <view class="title">祝福语</view>
        <textarea value="" placeholder="请输入你的祝福" class="box" />
      </view>
      <view class="btn">
        <van-button type="primary" round size="large">确定</van-button>
      </view>
  </van-action-sheet>
</view>

4.我的页面

代码

Page({

  /**

   * 页面的初始数据

   */

  data: {

    orderItem: [

      {

        url: '/pages/order/list/list',

        title: '商品订单',

        iconfont: 'icon-dingdan'

      },

      {

        url:'/pages/order/list/list',

        title:'礼品卡订单',

        iconfont:'icon-lipinka'

      },

      {

        url:'/pages/order/list/list',

        title:'退款/售后',

        iconfont:'icon-tuikuan'

      }

    ]

  },

  /**

   * 生命周期函数--监听页面加载

   */

  onLoad(options) {

  },

  /**

   * 生命周期函数--监听页面初次渲染完成

   */

  onReady() {

  },

  /**

   * 生命周期函数--监听页面显示

   */

  onShow() {

  },

  /**

   * 生命周期函数--监听页面隐藏

   */

  onHide() {

  },

  /**

   * 生命周期函数--监听页面卸载

   */

  onUnload() {

  },

  /**

   * 页面相关事件处理函数--监听用户下拉动作

   */

  onPullDownRefresh() {

  },

  /**

   * 页面上拉触底事件的处理函数

   */

  onReachBottom() {

  },

  /**

   * 用户点击右上角分享

   */

  onShareAppMessage() {

  }

})

.container {

  background-color: rgba(245, 242, 242, 0.692);

  height: 100vh;

  .top-show {

    width: 100%;

    height: 360rpx;

    .top-show-img {

      width: 100%;

      height: 100%;

    }

  }

  .bottom-show {

    position: relative;

    top: -80rpx;

    border-radius: 20rpx;

    margin: 0 auto;

    background-color: white;

    width: 96%;

    .user-container {

      display: flex;

      align-items: center;

      .avatar-container {

        margin: 20rpx;

        .avatar {

          height: 120rpx;

          width: 120rpx;

        }

      }

      .no-login {

        display: flex;

        flex-direction: column;

        font-size: 24rpx;

        color: gray;

        text:first-child {

          font-size: 35rpx;

        }

      }

    }

  }

  .order {

    border-radius: 20rpx;

    margin: 0 auto;

    background-color: white;

    width: 96%;

    margin-top: -70rpx;

    .order-title {

      display: flex;

      // justify-content: 设置主轴上的排列方式

      justify-content: space-between;

      padding: 40rpx;

      .more {

        font-size: 30rpx;

        color: #ccc;

      }

    }

    .order-content {

      display: flex;

      justify-content: space-evenly;

      text-align: center;

      padding-bottom: 24rpx;

      .iconfont {

        font-size: 60rpx

      }

      text {

        font-size: 26rpx;

      }

    }

  }

  .after-scale {

    border-radius: 20rpx;

    margin: 0 auto;

    margin: 20rpx;

    background-color: white;

    height: 30%;

    width: 96%;

    margin-bottom: 25rpx;

    .order-title-wrap {

      padding: 20rpx 0 0 20rpx;

    }

    .after-scale-item {

      display: flex;

      margin: 30rpx 20rpx;

      text {

        font-size: 25rpx;

        color: #999;

        margin-left: 20rpx;

      }

      .iconfont {

        color: #a2b364;

      }

    }

  }

  .info-footer {

    text-align: center;

    font-size: 30rpx;

    color: #999;

  }

}

<view class="container">

  <!-- 顶部展示图 -->

  <view class="top-show">

    <image src="../../assets/images/banner.jpg" mode="widthFix" class="top-show-img" />

  </view>

  <view class="bottom-show">

    <!-- 未登录面板 -->

    <view class="user-container">

      <view class="avatar-container">

        <image src="../../assets/images/avatar.png" mode="" class="avatar" />

      </view>

      <view class="no-login">

        <text>未登录</text>

        <text>点击授权登录</text>

      </view>

    </view>

    <!-- 已登录面板 -->

  </view>

  <!-- 订单面板 -->

  <view class="order">

    <view class="order-title">

      <text class="title">我的订单</text>

      <text class="more">查看更多></text>

    </view>

    <!-- 订单面板内容部分 -->

    <view class="order-content">

      <view class="order-content-item" wx:for="{{orderItem}}" wx:key="index">

        <!-- item指数组内的项 -->

        <navigator url="{{item.url}}">

          <view class="iconfont {{item.iconfont}}"></view>

          <text>{{item.title}}</text>

        </navigator>

      </view>

    </view>

  </view>

  <!-- 关于售前售后服务面板 -->

  <view class="after-scale section">

    <view class="order-title-wrap">

      <text class="title">关于售前售后服务</text>

    </view>

    <view class="after-scale-item">

      <view class="iconfont icon-kefufenxiermaikefu"></view>

      <text>可与小程序客服实时聊天或电话咨询</text>

    </view>

    <view class="after-scale-item">

      <view class="iconfont icon-shijian"></view>

      <text>小程序客服工作时间为: 8:30 ~ 20:30</text>

    </view>

    <view class="after-scale-item">

      <view class="iconfont icon-dizhiguanli"></view>

      <text>鲜花制作完毕情况下暂不支持退款</text>

    </view>

    <view class="after-scale-item">

      <view class="iconfont icon-zhangben"></view>

      <text>鲜花可以提前7-15天预订重大节假日不支持定时配送</text>

    </view>

  </view>

  <!-- 底部面板 -->

  <view class="info-footer">强哥股份有限公司</view>

</view>

5.总结

项目结构

慕尚花坊小程序采用了清晰的项目结构,主要包括以下几个部分:

  1. 页面:包含首页、分类页面、购物车页面、商品详情页面等。每个页面都对应了相应的.页面结构、页面样式和页面逻辑文件。
  2. 组件:为了提高代码的复用性,小程序中使用了大量的自定义组件,如导航栏、轮播图、商品列表等。

二、技术栈与特性

  1. 小程序原生开发:慕尚花坊小程序采用了微信小程序原生开发,充分利用了小程序框架提供的API和组件。
  2. 组件化开发:通过自定义组件,提高了代码的复用性和可维护性。
  3. 网络请求封装:对微信小程序的wx.request进行了封装,简化了网络请求的代码,提高了代码的健壮性。

三、代码实现细节

  1. 页面跳转与导航
    • 使用了<navigator>组件进行声明式导航,通过urlopen-type属性实现页面间的跳转。
  2. 分类页面实现
    • 使用了<scroll-view>组件实现滚动视图,通过scroll-y属性设置垂直滚动。
  3. 购物车页面实现
    • 使用了<view>组件结合wx:ifwx:for等指令实现购物车列表的展示。
  4. 商品详情页面实现
    • 使用了<image><text>等组件展示商品的图片、名称、价格等信息。
    • 提供了加入购物车和立即购买的功能。

  • 25
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值