不好意思打錯了,是小工具
其實我是故意打錯的
在此集成了各種小工具
廢話不多說,直接上代碼
1、分頁查詢
數據過多怎么辦?一個分頁就解決,麻麻再也不用擔心我的工作啦分頁思路:
把數據放入可滾動視圖區域內,數據過多則視圖可以滾動,當滾到底部的時候觸發hotActivityLoadMore方法帶上頁數請求下一頁數據
-
//bindscrolltolower的意思是拉到底部
-
-
<scroll-view scroll-y="truze" style="height: 1080rpx;" bindscrolltolower="hotActivityLoadMore">
-
-
<view wx:for="{{list}}" wx:for-item="item" >
-
-
循環展示的內容體
-
-
</view>
-
-
</scroll-view>
js代碼
-
// pages/distribution/my_agent.js
-
-
var util = require('../../../utils/util.js')
-
-
var app = getApp()
-
-
Page({
-
-
data: {
-
-
myAgentList: {
-
-
hasMore: true,
-
-
list: [],
-
-
listSize: 0
-
-
},
-
-
startNum: 1,//頁數
-
-
},
-
-
onLoad: function (options) {
-
-
//加載頁面
-
-
var _that = this
-
-
var _url = '請求的地址';
-
-
wx.request({
-
-
url: _url,
-
-
data: [{
-
-
id: agentCode,
-
-
agentTel: '',
-
-
pageNum: 1,//請求第一頁
-
-
}],
-
-
method: 'post',
-
-
success: function (res) {
-
-
console.log(res.data)
-
-
-
-
if (res.data.code == '00') {
-
-
var listSize = 后臺返回的數據.length;
-
-
var newData = _that.data.myAgentList.list;
-
-
newData = 后臺返回的數據;
-
-
var newList = {};
-
-
//當長度小于10表示沒有下頁數據了
-
-
if (listSize < 10) {
-
-
newList.hasMore = falseo?;
-
-
} elseo? {
-
-
newList.hasMore = true;
-
-
}
-
-
newList.list = newData;
-
-
newList.listSize = listSize;
-
-
_that.seo?tData({ myAgentList: newList });
-
-
-
-
_that.seo?tData({
-
-
startNum: 2
-
-
})
-
-
} else {
-
-
util.msg("錯誤", res.data.msg)
-
-
console.log("網絡通,數據不成功")
-
-
}
-
-
},
-
-
fail: function (res) {
-
-
console.log(res.data)
-
-
util.msg("錯誤", "通訊失敗")
-
-
}
-
-
})
-
-
},
-
-
hotActivityLoadMore: function (e) {
-
-
var _that = this;
-
-
//判斷是否還有下一頁
-
-
if (_that.data.myAgentList.hasMore == true) {
-
-
var pageNum = _that.data.startNum
-
-
var _url = '請求的地址';
-
-
wx.request({
-
-
url: _url,
-
-
data: [{
-
-
id: agentCode,
-
-
linkTel: seek,
-
-
pageNum: pageNum //第N頁
-
-
}],
-
-
method: 'post',
-
-
success: function (res) {
-
-
console.log(res.data)
-
-
if (res.data.code == "00") {
-
-
console.log("網絡通,數據成功")
-
-
var listSize = 后臺返回的數據.length;
-
-
var newData = _that.data.myAgentList.list;
-
-
//concat是在原有基礎上進行增加
-
-
newData = newData.concat(后臺返回的數據);
-
-
var newList = {};
-
-
//當長度等于于0表示當前沒有數據,停止
-
-
if (listSize == 0) {
-
-
newList.hasMore = false;
-
-
return;
-
-
//當長度小于10表示沒有下頁數據了
-
-
} else if (listSize <= 10) {
-
-
newList.hasMore = false;
-
-
} else {
-
-
newList.hasMore = true;
-
-
}
-
-
newList.list = newData;
-
-
newList.listSize = listSize;
-
-
_that.setData({ myAgentList: newList });
-
-
-
-
_that.setData({
-
-
startNum: pageNum + 1 //頁數加1
-
-
})
-
-
} else {
-
-
util.msg("錯誤", res.data.msg)
-
-
console.log("網絡通,數據不成功")
-
-
}
-
-
-
-
},
-
-
fail: function (res) {
-
-
console.log(res.data)
-
-
util.msg("錯誤", "通訊失敗")
-
-
console.log("失敗")
-
-
}
-
-
})
-
-
}
-
-
}
-
-
})
2、防止用戶多次提交,使用的遮罩層
實現很簡單,按鈕加上disabled屬性,用true和false控制。js
-
data: {
-
-
hidden: true, //等待的展示與隱藏的控制
-
-
buthidden: false //按鈕的可用和不可用的控制
-
-
}
-
-
primary: function (e) {
-
-
//顯示等待、禁用按鈕,后臺返回錯誤則將true和false對調一下就是隱藏等待、啟用按鈕
-
-
this.setData({
-
-
hidden: false,
-
-
buthidden: true
-
-
})
-
-
}
wxml
-
-
-
<loading hidden="{{hidden}}">
-
-
注冊中...
-
-
</loading>
-
-
<button class="next_step" type="primary" disabled="{{buthidden}}" bindtap="primary">下一步</button>
3、切割字符串(很少會用)
代碼和js一樣
-
var dateList = 需要切割的字符串.split("分隔符");
-
-
var arr = []
-
-
for (var i in dateList) {
-
-
arr = arr.concat(dateList);
-
-
console.log(arr)
-
-
}
4、保留2位小數
數據.toFixed(2)
tip:數據必須是數字類型,不能是Str類型
5、跳轉傳值
在跳轉的時候用kv的形式進行傳值
-
<navigator url="../../agent_index?k=v&k=v">
-
</navigator>
第二個頁面在onLoad里面打印options就可以看到上個頁面傳過來的值
6、獲取當前定位信息
-
//自動獲取當前位置
-
-
//獲取當前位置經緯度
-
-
wx.getLocation({
-
-
type: 'wgs84',
-
-
success: function (res) {
-
-
// 成功返回函數
-
-
var longitude = res.longitude
-
-
var latitude = res.latitude
-
-
//發送請求通過百度經緯度反查地址信息
-
-
wx.request({
-
-
//百度地圖經緯度反查路徑
-
-
url: 'http://api.map.baidu.com/geocoder/v2/?ak=btsVVWf0TM1zUBEbzFz6QqWF&location=' + latitude + ',' + longitude + '&output=json&pois=0',
-
-
data: {}, method: "get",
-
-
header: { 'Content-Type': 'application/json' },
-
-
success: function (ops) {
-
-
//成功返回一個result集合
-
-
console.log(ops)
-
-
//把地址放入需要展示的地方
-
-
_that.setData({
-
-
merchAddr: ops.data.result.formatted_address
-
-
})
-
-
}, fail: function () {
-
-
util.msg("提示", "定位失敗,請手動輸入店鋪地址")
-
-
}
-
-
})
-
-
}
-
-
})
-