Procházet zdrojové kódy

[门店][增加]:[增加门店列表下拉加载分页]

tags/C.10.02
meo před 5 roky
rodič
revize
eae9976feb
2 změnil soubory, kde provedl 183 přidání a 402 odebrání
  1. +182
    -401
      pages/searchbar/searchbar.js
  2. +1
    -1
      pages/searchbar/searchbar.wxml

+ 182
- 401
pages/searchbar/searchbar.js Zobrazit soubor

@@ -2,412 +2,193 @@ const navigationBarHeight = (getApp().statusBarHeight + 44) * 2;
const config = require("../../config/config");
const Http = require("../../utils/HttpBasics");
const imgurl = require("../../utils/imgurl");
module.exports =
/******/
(function(modules) { // webpackBootstrap
/******/ // The module cache
/******/
var installedModules = {};
/******/
/******/ // The require function
/******/
function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/
if (installedModules[moduleId]) {
/******/
return installedModules[moduleId].exports;
/******/
}
/******/ // Create a new module (and put it into the cache)
/******/
var module = installedModules[moduleId] = {
/******/
i: moduleId,
/******/
l: false,
/******/
exports: {}
/******/
};
/******/
/******/ // Execute the module function
/******/
modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/
module.l = true;
/******/
/******/ // Return the exports of the module
/******/
return module.exports;
/******/
}
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/
__webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/
__webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/
__webpack_require__.d = function(exports, name, getter) {
/******/
if (!__webpack_require__.o(exports, name)) {
/******/
Object.defineProperty(exports, name, {
enumerable: true,
get: getter
});
/******/
}
/******/
};
/******/
/******/ // define __esModule on exports
/******/
__webpack_require__.r = function(exports) {
/******/
if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/
Object.defineProperty(exports, Symbol.toStringTag, {
value: 'Module'
});
/******/
}
/******/
Object.defineProperty(exports, '__esModule', {
value: true
});
/******/
};
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/
__webpack_require__.t = function(value, mode) {
/******/
if (mode & 1) value = __webpack_require__(value);
/******/
if (mode & 8) return value;
/******/
if ((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/
var ns = Object.create(null);
/******/
__webpack_require__.r(ns);
/******/
Object.defineProperty(ns, 'default', {
enumerable: true,
value: value
Page({
data: {
result: [],
page: 1,
navigationBarHeight,
multiArray: [
[], []
],
searchText: "请输入",
multiIndex: 0,
buildingFloor: [],
building: null,
floor: null,
teljpgUrl: imgurl.teljpg.url
},
lastSearch: Date.now(),
onShow: function attached() {
this.getbuildingfloorlist();
if (this.data.focus) {
this.setData({
searchState: true
});
/******/
if (mode & 2 && typeof value != 'string')
for (var key in value) __webpack_require__.d(ns, key, function(key) {
return value[key];
}.bind(null, key));
/******/
return ns;
/******/
};
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/
__webpack_require__.n = function(module) {
/******/
var getter = module && module.__esModule ?
/******/
function getDefault() {
return module['default'];
} :
/******/
function getModuleExports() {
return module;
};
/******/
__webpack_require__.d(getter, 'a', getter);
/******/
return getter;
/******/
};
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/
__webpack_require__.o = function(object, property) {
return Object.prototype.hasOwnProperty.call(object, property);
}
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
let that = this;
that.data.page++;
that.setData({
page: that.data.page
});
// 如果是最后一页
//就不发送请求
if (!that.data.isLastPage || that.data.isFirstPage && that.data.isLastPage) {
this.getList(this.data.building.id, this.data.floor.id, that.data.page)
}
},
phone: function (e) {
let that = this;
if (e.currentTarget.dataset.merchantlinkphone) {
wx.makePhoneCall({
phoneNumber: e.currentTarget.dataset.merchantlinkphone
})
}
},
gotoDetail(e) {
wx.navigateTo({
url: `/pages/index/searchbar/detail/index?id=${e.currentTarget.dataset.id}`
})
},
bindMultiPickerColumnChange: function (e) {
var data = {
multiArray: this.data.multiArray,
multiIndex: this.data.multiIndex
};
/******/
/******/ // __webpack_public_path__
/******/
__webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/
return __webpack_require__(__webpack_require__.s = 19);
/******/
})
/************************************************************************/
/******/
({

/***/
19:
/***/
(function(module, exports, __webpack_require__) {

"use strict";


Component({
options: {
addGlobalClass: true
},
properties: {
extClass: {
type: String,
value: ''
},
focus: {
type: Boolean,
value: false
},
placeholder: {
type: String,
value: '请输入'
},
value: {
type: String,
value: ''
},
search: {
type: Function,
value: null
},
throttle: {
type: Number,
value: 500
},
cancelText: {
type: String,
value: '取消'
},
cancel: {
type: Boolean,
value: true
}
},
data: {
result: [],
navigationBarHeight,
multiArray: [
[],[]
],
searchText:"请输入",
multiIndex:0,
buildingFloor: [],
building: null,
floor:null,
teljpgUrl: imgurl.teljpg.url
},
lastSearch: Date.now(),
lifetimes: {
attached: function attached() {
this.getbuildingfloorlist();
if (this.data.focus) {
this.setData({
searchState: true
});
}
}
},
methods: {
phone: function (e) {
let that = this;
if (e.currentTarget.dataset.merchantlinkphone) {
wx.makePhoneCall({
phoneNumber: e.currentTarget.dataset.merchantlinkphone
})
}
},
gotoDetail(e) {
wx.navigateTo({
url: `/pages/index/searchbar/detail/index?id=${e.currentTarget.dataset.id}`
})
},
bindMultiPickerColumnChange: function (e) {
var data = {
multiArray: this.data.multiArray,
multiIndex: this.data.multiIndex
};
console.log(e)
data.multiIndex[e.detail.column] = e.detail.value;
switch (e.detail.column) {
case 0:
data.multiArray[1] = this.data.buildingFloor[e.detail.value].floors;
break;
}
this.setData({
multiArray: this.data.multiArray,
multiIndex: this.data.multiIndex
})
},
bindMultiPickerChange: function (e) {
// 楼座 building
// 楼层 floor
this.setData({
multiIndex: e.detail.value,
building: this.data.multiArray[0][e.detail.value[0]],
floor: this.data.multiArray[1][e.detail.value[1]],
})
this.getList(this.data.building.id, this.data.floor.id,1);
console.log(e)
data.multiIndex[e.detail.column] = e.detail.value;
switch (e.detail.column) {
case 0:
data.multiArray[1] = this.data.buildingFloor[e.detail.value].floors;
break;
}
this.setData({
multiArray: this.data.multiArray,
multiIndex: this.data.multiIndex
})
},
bindMultiPickerChange: function (e) {
// 楼座 building
// 楼层 floor
this.setData({
multiIndex: e.detail.value,
building: this.data.multiArray[0][e.detail.value[0]],
floor: this.data.multiArray[1][e.detail.value[1]],
})
this.getList(this.data.building.id, this.data.floor.id, 1);

this.setData({
searchText: this.data.building.name + this.data.floor.floorName
})
},
//获取楼层楼座
getbuildingfloorlist() {
Http.get({
url: config.api.getbuildingfloorlist,
data: {
}
}).then(res => {
if(res.data.length>0){
res.data.map(file=>{
if (file.floors.length>0){
file.floors.map(ever=>{
ever.name = ever.floorName
})
}
})
}
this.setData({
buildingFloor:res.data
})
this.setData({
multiArray: [[...this.data.buildingFloor], [...this.data.buildingFloor[0].floors]]
})
})
.catch(err => {
wx.showToast({
title: err.errMsg,
icon: 'none',
duration: 2000,
mask: false
});
})
},
getList: function (building, floor,page) {
let that = this;
let data = {
pageNum: 1,
pageSize: 10,
building: building ? building:null,
floor: floor ? floor:null,
};
Http.get({
url: config.api.merchantList,
data: data
}).then(res => {
if (page == 1) {
that.setData({
merchantVoList: [],
})
}
var tmpArr = that.data.merchantVoList;
tmpArr.push.apply(tmpArr, res.data.list);
that.setData({
merchantVoList: tmpArr
})
})
.catch(err => {
wx.showToast({
title: err.errMsg,
icon: 'none',
duration: 2000,
mask: false
});
})
},
clearInput: function clearInput() {
this.setData({
value: ''
});
this.triggerEvent('clear');
},
inputFocus: function inputFocus(e) {
this.triggerEvent('focus', e.detail);
},
inputBlur: function inputBlur(e) {
this.setData({
focus: false
});
this.triggerEvent('blur', e.detail);
},
showInput: function showInput() {
this.setData({
focus: true,
searchState: true
});
},
hideInput: function hideInput() {
this.setData({
searchState: false
});
this.setData({
searchText:"请输入",
merchantVoList:[]
this.setData({
searchText: this.data.building.name + this.data.floor.floorName
})
},
//获取楼层楼座
getbuildingfloorlist() {
Http.get({
url: config.api.getbuildingfloorlist,
data: {
}
}).then(res => {
if (res.data.length > 0) {
res.data.map(file => {
if (file.floors.length > 0) {
file.floors.map(ever => {
ever.name = ever.floorName
})
},
inputChange: function inputChange(e) {
var _this = this;

this.setData({
value: e.detail.value
});
this.triggerEvent('input', e.detail);
if (Date.now() - this.lastSearch < this.data.throttle) {
return;
}
if (typeof this.data.search !== 'function') {
return;
}
this.lastSearch = Date.now();
this.timerId = setTimeout(function() {
_this.data.search(e.detail.value).then(function(json) {
_this.setData({
result: json
});
}).catch(function(err) {
console.log('search error', err);
});
}, this.data.throttle);
},
selectResult: function selectResult(e) {
var index = e.currentTarget.dataset.index;

var item = this.data.result[index];
this.triggerEvent('selectresult', {
index: index,
item: item
});
}
}
});
})
}
this.setData({
buildingFloor: res.data
})
this.setData({
multiArray: [[...this.data.buildingFloor], [...this.data.buildingFloor[0].floors]]
})

/***/
})
.catch(err => {
wx.showToast({
title: err.errMsg,
icon: 'none',
duration: 2000,
mask: false
});
})
},
getList: function (building, floor, page) {
let that = this;
let data = {
pageNum: page,
pageSize: 10,
building: building ? building : null,
floor: floor ? floor : null,
};
Http.get({
url: config.api.merchantList,
data: data
}).then(res => {
if (page == 1) {
that.setData({
merchantVoList: [],
})
}
var tmpArr = that.data.merchantVoList;
tmpArr.push.apply(tmpArr, res.data.list);
that.setData({
merchantVoList: tmpArr,
isFirstPage: res.data.isFirstPage,
isLastPage: res.data.isLastPage
})
})
.catch(err => {
wx.showToast({
title: err.errMsg,
icon: 'none',
duration: 2000,
mask: false
});
})
},
clearInput: function clearInput() {
this.setData({
value: ''
});
this.triggerEvent('clear');
},
inputFocus: function inputFocus(e) {
this.triggerEvent('focus', e.detail);
},
inputBlur: function inputBlur(e) {
this.setData({
focus: false
});
this.triggerEvent('blur', e.detail);
},
showInput: function showInput() {
this.setData({
focus: true,
searchState: true
});
},
hideInput: function hideInput() {
this.setData({
searchState: false
});
this.setData({
searchText: "请输入",
merchantVoList: []
})
},
selectResult: function selectResult(e) {
var index = e.currentTarget.dataset.index;

/******/
});
var item = this.data.result[index];
this.triggerEvent('selectresult', {
index: index,
item: item
});
}
})

+ 1
- 1
pages/searchbar/searchbar.wxml Zobrazit soubor

@@ -3,7 +3,7 @@
<view class="weui-search-bar__form">
<view class="weui-search-bar__box" style="position:relative;">
<icon class="weui-icon-search_in-box" type="search" size="12"></icon>
<input type="text" class="weui-search-bar__input" placeholder="{{searchText}}" value="{{value}}" bindfocus="inputFocus" bindinput="inputChange" disabled />
<input type="text" class="weui-search-bar__input" placeholder="{{searchText}}" value="{{value}}" bindfocus="inputFocus" disabled />
<picker class="pickers" mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}" range-key="name">
<view class="picker">
搜索搜索搜索搜索搜索搜索搜索搜索搜索搜索


Načítá se…
Zrušit
Uložit