不好意思打错了,是小工具其实我是故意打错的在此集成了各种小工具废话不多说,直接上代码1、分页查询数据过多怎么办?一个分页就解决,麻麻再也不用担心我的工作啦分页思路:把数据放入可滚动视图区域内,数据过多 ...
不好意思打错了,是小工具
其实我是故意打错的
在此集成了各种小工具
废话不多说,直接上代码
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: 'https://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("提示", "定位失败,请手动输入店铺地址")
- }
- })
- }
- })