TOKEN
用于小程序联合登录用
var token=;//首页检测登录是否失效,并尝试自动登录token; //获取sessionTokentoken; //获取openIdtoken; //登录(失败将重试3次)token; //退出登录token;
PAGE
目前由于微信小程序的一些缺陷,比如无法返回传值等,请参考
var __dirname = "components/calendar/page";var __overwrite = ;{ var api = __dirname; }__overwrite __overwritePage;
API
参考微信小程序API,如api.request等同于wx.request
打点方法调用样例
var __dadian = ;var app = ;
组件
日历 城市 位置 其它
Service
参考service目录下
提现页面(payment) Service数据接口
参考目录如下
moduleexports = //银行提现页面 payment: //提现短信验证页 smsverify: //提现成功页面 paysuccess: ;
滚动刷新
实现数据列表滚动刷新,很简单,使用微信提供的 scroll-view组件 ,这里需要注意
scroll-view
组件必须设置固定高度,才能触发事件,如果确定容器高度可通过wxss内设置,若不确定,可以通过wx.getSystemInfo 获取窗口高度减去除容器外的高度,然后动态渲染 style="heigth:{{height}}"。- 当
bindscrolltolower
事件触发时,处理业务模块自身加载数据的逻辑(追加数据)
scroll-view
组件
wxml 引入 <scroll-view scroll-y="true" bindscrolltolower="loadMore" lower-threshold="50" class="scroll-view">
<!-- 数据项 -->
<view wx:for="{{dataList}}">
<view class="item-calss">
{{item.name}}
</view>
</view>
</scroll-view>
bindscrolltolower
事件所对应的处理函数 loadMore
js 文件中 注册 Page({
data: {
dataList: [],//数据列表
totalCount: 0//总数
},
pageIndex: 0,
onLoad: function(data) {
this.loadData();
},
reLoad: function() {
this.pageIndex = 0;
this.data.dataList = [];
this.loadData();
},
onPullDownRefresh: function() {//下拉刷新
this.reLoad();
},
loadMore: function(e) {
if (this.data.dataList.length < this.data.totalCount) {
this.pageIndex += 1;
this.loadData();
}
},
loadData: function() {
return service.GetlData(this.pageIndex).then(function(data) {
this.data.dataList = this.data.dataList.concat(data.orderList);
this.render();
}.bind(this));
},
render: function(data) {
this.setData(data || this.data);
}
});
下拉刷新:
- 1、在
*.json
配置文件中声明"enablePullDownRefresh":true
{
"navigationBarTitleText": "国内酒店订单",
"enablePullDownRefresh":true
}
- 2、在
*.js
注册onPullDownRefresh
事件 。(建议数据加载完毕后,执行stopPullDownRefresh
方法)
Page({
data: {
dataList: []
},
pageIndex: 0,
onPullDownRefresh: function() {
this.reLoad('byPull');
},
reLoad: function(type) {
this.pageIndex = 0;
this.data.dataList = [];
if (type === 'byPull') { //数据更新后,停止下拉刷新
this.loadData().then(this.stopPullDownRefresh);
} else {
this.loadData();
}
},
stopPullDownRefresh: function() {
api.stopPullDownRefresh();
},
loadData: function() {
return service.GetlData(this.pageIndex).then(function(data) {
//success
}, function(data) {
//error
});
}
});
loading 组件
项目统一封装了 loading 效果,在所有request请求时显示,请求结束后隐藏,所以请各个模块去掉各自的loading处理逻辑。
- 1、需要使用 loading 效果的页面,需要在 wxml 中引入
base.wxml
<!--业务-->
<view wx-if="{{dataList}}"
{{item}}
</view>
<!--业务-->
<include src="../../../components/base.wxml" />
- 2、如果页面中某些接口不需要laoding效果,可以在请求参数中配置 noLoading 为 true
{
url: 'https://m.elong.com/hotelwxxcx/wxxcxorderdetail/',
params: ['orderno'],
method: 'GET',
noLoading: true
}
- 3、js 中可以调用 this.setLoading 方法,控制 loading 组件显示隐藏。
Page({
data: {
},
onLoad: function(data) {
//this.setLoading(true);
//this.setLoading(false);
}
});
拨打电话
api.makePhoneCall
-
调用方式 0 : 通过组件的dataset配置需拨打的电话号码, 此时绑定事件的目标组件必须包含"data-phone-number"属性, 且内容为待拨打的电话号码, 否则将会抛出一个错误提示。
<view bindtap="makeCall" data-phone-number="4006570678">拨打电话</view> Page({ makeCall: function (e) { api.makePhoneCall(e) } })
-
调用方式 1 : 直接将待拨打的电话号码作为参数。
Page({ makeCall: function () { api.makePhoneCall('010-66666666') }, onReady: function () { this.makeCall() } })
CHANGELOG
2016-01-17
v1.3.2
- 国内酒店列表及详情页高级分享功能;
- 修复一些样式上的bug;
- 修改客服电话;
- 修复Cookie中outerFrom字段的清理逻辑;
2016-01-12
v1.2.6_service_header
- 改进打点,将innerFrom和outerFrom放到Cookie中,分享的of今后无须单独处理打点数据;
2016-01-09
v1.2.5
- 修改了一些页面内直接给 data 赋值的代码,改为 setData 的方式,排除隐患;
- 首页、列表页、详情页 增加分享功能,目前只分享当前页面 path + 统计用的of值;
- 修正了首页频繁定位导致报错的问题;
- 修正了客服标签的文案错误;