项目进度-04 (2)

项目进度-05(2020.12.7~12.14)

项目整体进度:

上周我们创建了主要以商品发布、商品修改以及商品删除、商品购买等功能,并且增加了几个云函数。这周我们实现了商品的搜索,用户信息的修改,以及一些细节部分,如回到置顶处,及浏览量排序,改变商品展示模块,搜索历史记录以及小程序页面初始化。

一、商品的搜索

我们通过代码实现了商品的搜索。若有需要搜索的商品,直接点击搜索栏输入商品关键字即可。如图:

在这里插入图片描述
值得注意的是,以上操作并不需要把所有的商品名称输入上去,输入部分关键字即可,如输入‘‘东’’。
在这里插入图片描述
也可以出现和输入‘‘东区’’一样的结果。
但如果我们只输入其中的词组呢,比如‘‘二维码’’,如图:
在这里插入图片描述
也会出现相同的结果。
如果有同关键字的商品,输入公共关键字即可将商品全部展示,如图:
在这里插入图片描述
这样做可以满足用户需求,如果用户对于商品名称比较模糊,可以通过这种方式具体的提供商品,以便用户选择。

以上效果由下面这些代码实现:



search(){

    let that=this;

    if(this.data.text.length==0){

      wx.showToast({

        title: '请输入关键词',

        icon:'none'

      })

    }

    else{

      wx.showLoading({

        title: '搜索中',

      })

      if(that.data.hislist.indexOf(that.data.text)==-1){

        that.history(that.data.text);

      }

      this.setData({

        is_searched:true

      })

      wx.cloud.callFunction({

        name:'search',

        data:{

          key:this.data.text

        }

      }).then(res=>{

        this.setData({

          list:res.result.data

        })

        wx.hideLoading();

      })

    }

  },

二、用户信息的修改

我们增加了用户信息的修改,如图:
在这里插入图片描述
本次修改完善了以前的修改功能,以前只能修改头像,而如今可以修改所在校区,电话号码,邮箱,QQ号等功能。用户可以根据自身需要选择修改信息,其中邮箱与电话号码是选填,号码与校区必填。若不填号码,则会出现提示信息,如图:
在这里插入图片描述
点击校区以更换,如图:
在这里插入图片描述
点击确认修改后,弹出提示,点击确认,修改成功。修改成功后便会自动返回主页面。
其中电话号码的格式,邮箱格式,QQ号的格式没有明确的规定,在今后我们会更正。
代码实现如下图:



choose(e){

    this.setData({

      ids:e.detail.value

    })

  },

 

  emInput(e){

    this.setData({

      email:e.detail.value

    })

  },

 

  qqInput(e){

    this.setData({

     qqnum:e.detail.value

    })

  },

 

  phoneInput(e){

    this.setData({

      phonenum:e.detail.value

    })

  },

 

  onLoad: function (options) {

    this.setData({

      ids:app.userInfo[0].campus

    })

    if(app.userInfo[0].contact){

      this.setData({

        phonenum:app.userInfo[0].contact[0],

        email:app.userInfo[0].contact[1],

        qqnum:app.userInfo[0].contact[2]

      })

    }

  },

 

  update(){

    let that=this;

    if(this.data.ids==-1){

      wx.showToast({

        title: '请填写您的校区',

        icon:'none'

      })

    }

    else if(this.data.phonenum.length==0){

      wx.showToast({

        title: '请填写您的电话号码',

        icon:'none'

      })

    }

    else{

      wx.showModal({

        title:'提示',

        content:'您确定填写的信息正确吗',

        success(res){

          if(res.confirm){

            wx.showLoading({

              title: '发布中',

            })

            wx.cloud.callFunction({

              name:'user_update',

              data:{

                id:app.userInfo[0]._id,

                campus:that.data.ids,

                phonenum:that.data.phonenum,

                email:that.data.email,

                qqnum:that.data.qqnum

              },

              success(re){

                app.userInfo[0].campus=that.data.ids

                app.userInfo[0].contact=[that.data.phonenum,that.data.email,that.data.qqnum]

              }

            });

            wx.hideLoading();

            wx.showToast({

              title: '修改成功',

            })

            setTimeout(function(){

              wx.switchTab({

                url:  '../index/index',

              })

            },500)

          }

        }

      })

    }

  },

三、浏览时回到置顶处

当浏览者浏览商品致底层时,如果想回到浏览顶层,需要不断地向上划动手机,这是一件是否麻烦的事情。考虑到用户需求以及使用方便程度,我们增加了向上置顶的功能。如图:
在这里插入图片描述点击该黄色按钮即可置顶,效果如下:
在这里插入图片描述
其中这个黄色置顶图标不会一直出现,它只会在当浏览距离大于400码的时候出现。具体实现如下代码中:

html代码:



<block wx:if="{{scrollTop>400}}" >

      <view bindtap="gotop">

      <image class="icon" src="../../image/top.png"></image>

      </view>

</block>

Js代码:



gotop(){

    wx.pageScrollTo({

      scrollTop: 0

})

四、显示浏览量及其排序

为了满足用户需求,我们加入了浏览量,以此数据来体现商品的热门程度,以便给用户做一个参考。并且可以以浏览量排序,从高浏览量向低浏览量排序。如图:
在这里插入图片描述
如图右下角的数字71,代表累计访问次数,虽然这种数据并不能实际意义体现商品热门程度,我们会在后期加以修改。
代码如下:
Html代码:



 <view class="suffer">

  <image class="suffer_image" src="/image/suffer.png"></image>

 <view class="suffer_text">{{item.tapcount}}</view>

</view>   

Js代码:
在getList函数中增加



orderBy('tapcount','desc')

五、改变商品的展示

为了满足用户的选择与需要,有些用户可能不适应小程序商品的布局,所以加入了改变的页面。如图所示:

在这里插入图片描述
在搜索栏的右边的图标。
未点图标之前布局如下:
在这里插入图片描述
更改之后:
在这里插入图片描述
代码如下:

 <image bindtap="changeCard" class="top_list" src="{{iscard?'/image/list.png':'/image/card.png'}}"></image>


changeCard(){

    if(this.data.iscard){

      this.setData({

        iscard:false

      })

    }

    else{

      this.setData({

        iscard:true

      })

    }

  },



<view hidden="{{iscard}}">

      <view class="card_grid" wx:if="{{list.length>0}}">

            <block wx:for="{{list}}" wx:key="_id">

                  <view class="card_one" bindtap="detail" data-id="{{item._id}}">

                        <image lazy-load class="card_poster" src="{{item.image[0]}}"></image>

                        <view class="card_title text-cut">{{item.name}}

                        </view>

                        <view class="card_between">

                              <view class="card_price">¥{{item.price}}元</view>  

                              <image lazy-load class="card_buy" src="/image/buy.png"></image>

                        </view>

                  </view>

            </block>

      </view>

</view>

<view hidden="{{!iscard}}">

      <block wx:if="{{list.length>0}}">

            <block wx:for="{{list}}" wx:key="_id">

                  <view class="list_box" bindtap="detail" data-id="{{item._id}}">

                  <image lazy-load class="list_poster" src="{{item.image[0]}}"></image>

                        <view class="list_content">

                              <view class="list_word">

                                    <view class="list_title text-cut">{{item.name}}

                                    </view>   

                              </view>

                              <view class="list_between">

                                    <view class="list_price">¥{{item.price}}元</view>

                                    <view class="suffer">

                                          <image class="suffer_image" src="/image/suffer.png"></image>

                                          <view class="suffer_text">{{item.tapcount}}</view>

                                    </view>   

                              </view>

                        </view>

                  </view>

            </block>

      </block>

</view>

六、搜索记录以及搜索记录的删除

之前我们增加了搜索的功能,现在我们完善了细节。
搜索之后会留下搜索记录,如图:
在这里插入图片描述
其中,长按某一关键词即可删除该记录,如图:
在这里插入图片描述

在这里插入图片描述记录消失了。
同样,点击右边垃圾桶即可删除所有记录。如图:
在这里插入图片描述
代码如下:



history(key){

    let that=this;

    wx.getStorage({

      key: 'history',

      success(res){

        if(that.data.hislist.length==5){

          that.data.hislist.splice(0,1);

          that.data.hislist[that.data.hislist.length]=key;

        }

        else{

          that.data.hislist[that.data.hislist.length]=key;

        }

        wx.setStorage({

          data: that.data.hislist,

          key: 'history',

        })

      },

      fail(res){

        that.data.hislist[that.data.hislist.length]=key;

        wx.setStorage({

          key:'history',

          data:that.data.hislist,

        })

      }

    })

  },

 

  choosekey(e){

    this.setData({

      text:e.currentTarget.dataset.key

    })

    this.search();

  },

 

  detail(e) {

    let that = this;

    wx.navigateTo({

      url: '/pages/detail/detail?scene=' + e.currentTarget.dataset.id,

    })

  },

 

  gethis(){

    let that=this;

    wx.getStorage({

      key:'history',

      success(res){

        that.setData({

          hislist:res.data

        })

      }

    })

  },

 

  delete(){

    wx.removeStorage({

      key: 'history',

      success (res) {

        console.log(res)

      }

    })

    wx.redirectTo({

      url: '../search/search',

    })

  },

 

  delete_key(e){

    let that=this;

    wx.showModal({

      title:'提示',

      content:'您确定要删除这条记录吗',

      success(res){

        if(res.confirm){

          that.data.hislist.splice(e.currentTarget.dataset.id,1);

          wx.setStorage({

            data: that.data.hislist,

            key: 'history',

          })

          wx.redirectTo({

            url: '../search/search',

          })

        }

      }

    })

  },



<block wx:if="{{!is_searched}}">

      <view class="a">

            <image src="../../image/his.png"></image>

            <view>搜索历史</view>

            <image src='/image/del.png' class='cancle_btn' wx:if="{{hislist.length>0}}" bindtap='delete'></image>

      </view>

      <block wx:if="{{hislist.length==0}}">

            <view class="nosearch">您还没搜索过哟,赶快试试吧</view>

      </block>

      <view class="blank"></view>

      <view class='list'>

            <view class="key" wx:for="{{hislist}}" wx:key="index" bindlongpress="delete_key" bindtap='choosekey' data-id='{{index}}' data-key='{{item}}'>{{item}}</view>

      </view>

</block>

七、小程序页面初始化

为了使程序更加美观,我们加入了初始化页面。如图:

在这里插入图片描述
有3秒显示时间,可以选择跳过。3秒过后页面自动消失。

项目成员的分工

王湛:商品的购买,买家对订单的一系列操作。
晏梓昂:卖家对订单的一系列操作。
徐鹏:商品的搜索以及历史搜索记录的删除。
王祺:用户信息的修改以及小程序初始页面。
许振宁:返回置顶页面以及改变商品展示。

项目燃尽图

在这里插入图片描述

下阶段安排

1.商品的收藏功能
2.排序方式多样性
3.小程序的使用说明
4.小程序的关于程序
5.用户使用手册

附上会议图

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值