首页 > 小程序教程 > 微信小程序带城市目的地时间搜索拼车样式制作设计教程

微信小程序带城市目的地时间搜索拼车样式制作设计教程

上一篇 下一篇
本文给大家带来的是微信小程序带城市目的地时间搜索拼车样式制作设计教程,制作好以后效果图如下:
一、wxml页面代码如下:
<view class="page">
 <!--页头-->
 <view class="page__hd">
  <view class="head">
    <input bindblur="getstart" value="{{start}}" placeholder="始发地" type="text" />
    <image src="/img/to.png" class="to"></image>
    <input bindblur="getover" value="{{over}}" placeholder="目的地" auto-focus/>
    <image src="/img/date.png" class="dateImg"></image>
    <picker mode="date" value="{{date}}" class="date" start="{{minday}}" end="{{maxday}}" bindchange="bindDateChange">
    <view class="picker">
      {{date}}
    </view>
  </picker>
  </view>
 </view>
 <!--主体-->
 <view class="page__bd"> 
  <view class="weui-tab">
            <view class="weui-navbar">
                <block wx:for="{{tabs}}" wx:key="*this">
                    <view id="{{index}}" class="weui-navbar__item {{activeIndex == index ? 'weui-bar__item_on' : ''}}" bindtap="tabClick">
                        <view class="weui-navbar__title">{{item}}</view>
                    </view>
                </block>
                <view class="weui-navbar__slider" style="left: {{sliderLeft}}px; transform: translateX({{sliderOffset}}px); -webkit-transform: translateX({{sliderOffset}}px);"></view>
            </view>
            <view class="weui-tab__panel">
                <view class="weui-tab__content" hidden="{{activeIndex != 0}}">
                    
                    <view class="weui-panel__bd">
                        <navigator wx:for="{{list}}" wx:for-index="idx" wx:key="k" wx:for-item="item" url="{{item.url}}" class="weui-media-box weui-media-box_appmsg" hover-class="weui-cell_active">
                            <view class="weui-media-box__hd weui-media-box__hd_in-appmsg">
                                <image class="weui-media-box__thumb" src="{{item.avatarUrl}}" ></image>
                            </view>
                            <view class="weui-media-box__bd weui-media-box__bd_in-appmsg">
                                <view class="weui-media-box__title list_title"><text class="list_start">{{item.start}}</text> <image src="/img/to.png" class="to1"></image> <text class="list_over">{{item.over}}</text><text class="list_tm">{{item.tm}}</text></view>
                                <view class="weui-media-box__desc list_desc">出发:{{item.date}} {{item.time}}</view>
                                <view class="weui-media-box__info">
                                    <view class="weui-media-box__info__meta list_type_{{item.tp}}">{{item.type}}</view>
                                    <view class="weui-media-box__info__meta"><image src="/img/people.png" class="list_icon"></image><text>{{item.surplus}}</text></view>
                                </view>
                            </view>
                        </navigator>
                    </view>

                </view>
                <view class="weui-tab__content" hidden="{{activeIndex != 1}}">
                    <view class="weui-panel__bd">
                        <navigator wx:for="{{list1}}" wx:for-index="idx" wx:key="k" wx:for-item="item" url="{{item.url}}" class="weui-media-box weui-media-box_appmsg" hover-class="weui-cell_active">
                            <view class="weui-media-box__hd weui-media-box__hd_in-appmsg">
                                <image class="weui-media-box__thumb" src="{{item.avatarUrl}}" />
                            </view>
                            <view class="weui-media-box__bd weui-media-box__bd_in-appmsg">
                                <view class="weui-media-box__title list_title"><text class="list_start">{{item.start}}</text> <image src="/img/to.png" class="to1"></image> <text class="list_over">{{item.over}}</text><text class="list_tm">{{item.tm}}</text></view>
                                <view class="weui-media-box__desc list_desc">出发:{{item.date}} {{item.time}}</view>
                                <view class="weui-media-box__info">
                                    <view class="weui-media-box__info__meta list_type_{{item.tp}}">{{item.type}}</view>
                                    <view class="weui-media-box__info__meta"><image src="/img/people.png" class="list_icon"></image><text>{{item.surplus}}</text></view>
                                </view>
                            </view>
                        </navigator>
                    </view>
                </view>
                <view class="weui-tab__content" hidden="{{activeIndex != 2}}">
                    <view class="weui-panel__bd">
                        <navigator wx:for="{{list2}}" wx:for-index="idx" wx:key="k" wx:for-item="item" url="{{item.url}}" class="weui-media-box weui-media-box_appmsg" hover-class="weui-cell_active">
                            <view class="weui-media-box__hd weui-media-box__hd_in-appmsg">
                                <image class="weui-media-box__thumb" src="{{item.avatarUrl}}" />
                            </view>
                            <view class="weui-media-box__bd weui-media-box__bd_in-appmsg">
                                <view class="weui-media-box__title list_title"><text class="list_start">{{item.start}}</text> <image src="/img/to.png" class="to1"></image> <text class="list_over">{{item.over}}</text><text class="list_tm">{{item.tm}}</text></view>
                                <view class="weui-media-box__desc list_desc">出发:{{item.date}} {{item.time}}</view>
                                <view class="weui-media-box__info">
                                    <view class="weui-media-box__info__meta list_type_{{item.tp}}">{{item.type}}</view>
                                    <view class="weui-media-box__info__meta"><image src="/img/people.png" class="list_icon"></image><text>{{item.surplus}}</text></view>
                                </view>
                            </view>
                        </navigator>
                    </view>
                </view>
            </view>
        </view>
 </view>
<view class="page__bd">
    <view class="weui-loadmore" bindtap="onReachBottom" wx:if="{{!nomore}}">
        <view class="weui-loading"></view>
        <view class="weui-loadmore__tips">正在加载</view>
    </view>
    <view class="weui-loadmore weui-loadmore_line" wx:if="{{nomore}}">
        <view class="weui-loadmore__tips weui-loadmore__tips_in-line">没有更多了~</view>
    </view>
</view>
</view>

<navigator url="/pages/info/add">
    <view class="add" bindtap="add">
    <image src="/img/adddy.png"></image>
    </view>
</navigator>
 
二、wxss样式文件代码如下:
/**index.wxss**/
.head{display:flex;flex-direction: row;background: #f5f5f5;width:100%;padding: 10rpx 0rpx 3rpx 0rpx; align-items: center;  justify-content: space-between;}
.head input,.head picker{background: #fff;width: 180rpx;margin:5rpx;height: 70rpx;border-radius: 10rpx;font-size: .8rem;text-align: center;line-height:70rpx;color:#444;}
.dateImg{width: 40rpx;height:40rpx;margin:25rpx 10rpx;}
.to{width: 60rpx;height:60rpx;margin:20rpx 0rpx;}

.date{font-size: .8rem!important;width: 200rpx!important;}

.page__bd{
    height: 100%;
}
.page__bd{
    padding-bottom: 0;
}
.weui-tab__content{
    padding-top: 60px;
    text-align: center;
}
.weui-navbar{background: #fff;}
.weui-media-box{position: relative}
.weui-navbar__slider{background: rgb(254,230,50)}
.weui-tab__content{padding-top: 0!important;}
.list_title,.list_desc{text-align: left!important;}
.list_title{color:black;font-size: .85rem;}
.list_desc{margin: 5rpx 0rpx;color: #444}
.list_type_1{background: rgb(254,230,50);padding: 0rpx 5rpx;margin-right:1rem;color:lightseagreen;}
.list_type_2{background: lightseagreen;padding: 0rpx 5rpx;margin-right:1rem;color:rgb(254,230,50);}
.to1{width: 60rpx;height:60rpx;position:absolute;top:12px;}
.list_over{margin-left:60rpx;}
.list_icon{width:30rpx;height:30rpx;position:absolute}
.weui-media-box__info__meta text{margin:0rpx 33rpx;}
.list_tm{float: right;color: indianred;font-size: .8rem;}
.weui-media-box__info__meta{padding-right: .2rem!important;}
.icon-gender{width:30rpx;height: 30rpx;bottom: 16rpx;position:absolute;left:120rpx;}

.add{position: fixed;bottom: 30px;right:30px;}
.add image{width: 80rpx;height: 80rpx;}
三、js页面代码如下:
//index.js
//获取应用实例
var util = require('../../utils/util.js');
var app = getApp();
var today = util.formatTime(new Date((new Date()).getTime()+(1000*60*60*24*7))).split(' ')[0];
var minday = util.formatTime(new Date()).split(' ')[0];
var maxday =  util.formatTime(new Date((new Date()).getTime()+(1000*60*60*24*62))).split(' ')[0];
var sliderWidth = 96; // 需要设置slider的宽度,用于计算中间位置
var page = 1;
var list = new Array();
var list1 = new Array();
var list2 = new Array();

Page({
  data: {
    all:'act',
    date:today,
    minday:today,
    maxday:maxday,
    tabs: ["全部", "车找人", "人找车"],
    activeIndex: 0,
    sliderOffset: 0,
    sliderLeft: 0,
    start:'',
    over:''
  },
  tabClick: function (e) {
        this.setData({
            sliderOffset: e.currentTarget.offsetLeft,
            activeIndex: e.currentTarget.id
        });
    },
  bindDateChange:function(e){
    this.setData({
      date:e.detail.value
    })
    this.getList(e.detail.value,this.data.start,this.data.over);
  },
  onShareAppMessage: function () {
    return {
      title: '同城拼车',
      path: 'pages/index/index'
    }
  },
  getList:function(date='',start='',over=''){

    var that = this;
    util.req('info/lists',
      {start:start,over:over,date:date,page:page},
      function(data){
        if(!data.list){
          that.setData({nomore:true});
          return false;
        } 
        if(page == 1){          
          list = new Array();
          list1 = new Array();
          list2 = new Array();
        }
        var surp = new Array('','空位','人');
        data.list.forEach(function(item){
          try{
            var start = ((item.departure).split('市')[1]).replace(/([u4e00-u9fa5]+[县区]).+/, '$1');
          }catch(e){
            var start = (item.departure).split(/[县区]/)[0];
          }

          try {
            var over = ((item.destination).split('市')[1]).replace(/([u4e00-u9fa5]+[县区]).+/, '$1');
          } catch (e) {
            var over = (item.destination).split(/[县区]/)[0];
          }

          var obj = {
            start:start,
            over:over,
            type:that.data.tabs[item.type],
            tp:item.type,
            time:util.formatTime(new Date(item.time*1000)),
            surplus:item.surplus+surp[item.type],
            see:item.see,
            gender:item.gender,
            avatarUrl:item.avatarUrl,
            url:'/pages/info/index?id='+item.id,
            tm:util.getDateDiff(item.time*1000)
            };
            list.push(obj);
            if(item.type == 1){
              list1.push(obj);
            }else{
              list2.push(obj);
            }
        })

        that.setData({list:list,list1:list1,list2:list2});
    })

  },
  onPullDownRefresh: function(){
    page = 1;
    this.getList(this.data.date,this.data.start,this.data.over);
    wx.stopPullDownRefresh();
  },
  getstart:function(e){
    this.setData({
      start:e.detail.value
    })
    page = 1;
    this.getList(this.data.date,e.detail.value,this.data.over);
  },
  getover:function(e){
    this.setData({
      over:e.detail.value
    })
    page = 1;
    this.getList(this.data.date,this.data.start,e.detail.value);
  },
  onLoad: function () {
    var that = this;
    wx.getSystemInfo({
        success: function(res) {
            that.setData({
                sliderLeft: (res.windowWidth / that.data.tabs.length - sliderWidth) / 2,
                sliderOffset: res.windowWidth / that.data.tabs.length * that.data.activeIndex,
                windowHeight: res.windowHeight,
                windowWidth: res.windowWidth
            });
        }
    });

    wx.getLocation({
      success: function (res) { 
        var latitude = res.latitude
        var longitude = res.longitude       
        wx.request({
          url: 'https://api.map.baidu.com/geocoder/v2/?ak=zIOkoO8wWrWA22ObIHPNkCgtLZpkP5lE&location=' + latitude + ',' + longitude + '&output=json&pois=0',
          data: {},
          method: 'GET', 
          header: { 'Content-Type': 'application/json' },
          success: function(res){
            that.setData({
              start:res.data.result.addressComponent.city
            })
            that.getList(that.data.date,res.data.result.addressComponent.city);
          }
        })
      }
    })
  },
  onReachBottom:function(){
    if(!this.data.nomore){
      page++;
      this.getList(this.data.date,this.data.start,this.data.over);
    }
  }
})

模板简介:该模板名称为【微信小程序带城市目的地时间搜索拼车样式制作设计教程】,大小是,文档格式为.,推荐使用打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【小程序教程】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 21,931次
  • 使用软件
  • 文件格式
  • 文件大小
  • 上传时间 06-22
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
html5 微信图片 响应式 单页式简历模板 微信素材 自适应 微信公众平台 微信文章 微信模板 企业网站
您可能会喜欢的其他模板