@@ -5,6 +5,7 @@ | |||
"index/searchbar", | |||
"index/passCar", | |||
"index/user", | |||
"pages/searchbar/searchbar", | |||
"pages/integralmall/integraHistory/index", | |||
"pages/integralmall/payIntegcouponStatus/index", | |||
"pages/integralmall/payIntegcoupondetail/index", | |||
@@ -276,10 +276,6 @@ var config = { | |||
* 专题详情 | |||
*/ | |||
topicFindById:"/topic/findById", | |||
/** | |||
* 积分兑换 | |||
*/ | |||
addIntegral: "/credit/add", | |||
/** | |||
* 积分券详情 | |||
*/ | |||
@@ -0,0 +1,21 @@ | |||
@font-face {font-family: "iconfont"; | |||
src: url('iconfont.eot?t=1568701793152'); /* IE9 */ | |||
src: url('iconfont.eot?t=1568701793152#iefix') format('embedded-opentype'), /* IE6-IE8 */ | |||
url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAL4AAsAAAAABrwAAAKqAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCCcAqBSIFaATYCJAMICwYABCAFhG0HMBsABsgekkQC4ByegcrDAoAQCLRWZuAQ1ROBA7RA4BAKaNmybtVXtY7IAcnq3VqzIggboUqyiugVQ3aPc4szdQ+sCRogwMz8/1xO764CCmR+oFzmmnTUCzDeGuBe2CYrkAC8ZXjVpa2DPg8B2ImSQTRM1jYTBTQwTQBiyuVniULOi0bLCSsCc81ajbhIFqs8lC+BC+H3xR/ysoLEpICSto0vE703YYraMK4c+gi8+cyAvAkUkAE0iK7aaIs0QiYr7NEMcdhXoYDvTYbh6xF7/fMQZiDfCUAE5d4Tz+Xfao0EQHPv/VVgcNQDwORyOm3e9deXcM/79Y3jUPfb1cDbt9vv3u28ebP1+vUxF29G7Kzn7dvDo1b3tY2rXSInFmNx8vuXPoyor9T//xe4DlwNf38Nrm8r19Ln5+lryPJZnvWqepGyWMnrz758+lTuI4uyvZB88lTtMxaLVtXnD9y0otW6mLp5Uy7mMy1i+PFhWCaT6UkAxjd1S8X82t+wmf+so7de8d/q0AB8uP/fH04wvmlUDGC9AZuAH8nrWactAeikNni1SUkV0w2K7RgAA3D6fR2rDN11UmAldO92C5EpKKwkoJqUASYcFIAZK9VgJ13zZgcBC9IIbQPS7BIQeD0AiZvnoPB6hWrSFzAR9g/MeFNgp6fAng6SGi/VSzzTeAnnK3AvKGLcoEtR4TpyE5zJrCCkbKNUbgDaWTnFxBQjlHMsUJZ3tGbAJIUwIZdhEBDEkjy80A1H67jbzB6pe1PjgsJEiXoSOqOhS2DAChh3gUSY31wrlT6/DnFG4IxswTWZtyFJcQcHubLk9ECn0qgX7l6uWWRxHUs0BoyQSAg0ETMKMErAXP0oD7qgNYyNCMe6slmjkb7Sxvry8Ou2AHZAJQUOU5gXyShDiQQAAA==') format('woff2'), | |||
url('iconfont.woff?t=1568701793152') format('woff'), | |||
url('iconfont.ttf?t=1568701793152') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ | |||
url('iconfont.svg?t=1568701793152#iconfont') format('svg'); /* iOS 4.1- */ | |||
} | |||
.iconfont { | |||
font-family: "iconfont" !important; | |||
font-size: 16px; | |||
font-style: normal; | |||
-webkit-font-smoothing: antialiased; | |||
-moz-osx-font-smoothing: grayscale; | |||
} | |||
.icon-sousuo:before { | |||
content: "\e646"; | |||
} | |||
@@ -1,4 +1,4 @@ | |||
const navigationBarHeight = (getApp().statusBarHeight + 44) + 'px' | |||
const navigationBarHeight = (getApp().statusBarHeight + 44) | |||
const Http = require("../utils/HttpBasics"); | |||
const imgurl = require("../utils/imgurl"); | |||
const config = require("../config/config"); | |||
@@ -33,6 +33,11 @@ Page({ | |||
}) | |||
that.getList(1, that.data.businessId); | |||
}, | |||
goSearchBar(){ | |||
wx.navigateTo({ | |||
url: '/pages/searchbar/searchbar', | |||
}) | |||
}, | |||
/** | |||
* 跳转到门店列表的详情页面 | |||
*/ | |||
@@ -63,7 +68,7 @@ Page({ | |||
wx.getSystemInfo({ | |||
success: function (res) { | |||
that.setData({ | |||
windowHeight: res.windowHeight + parseInt(navigationBarHeight) | |||
windowHeight: res.windowHeight + navigationBarHeight | |||
}) | |||
}, | |||
}) | |||
@@ -1,9 +1,10 @@ | |||
<navbar text="门店"></navbar> | |||
<!-- 左侧滚动栏 --> | |||
<view style="padding-top:{{navigationBarHeight}}"> | |||
<view class="search" style="position:fixed;top:{{navigationBarHeight+5}}px;" bindtap="goSearchBar"><span class="iconfont icon-sousuo searchicon"></span>搜索门店</view> | |||
<view style="margin-top:{{navigationBarHeight+42}}px;"> | |||
<view class='under_line'></view> | |||
<view style='float: left' class='left'> | |||
<scroll-view scroll-y scroll-with-animation scroll-left="{{scrollLength}}" class='scrollY' style='height: {{windowHeight}}px;top:{{navigationBarHeight}}'> | |||
<scroll-view scroll-y scroll-with-animation scroll-left="{{scrollLength}}" class='scrollY' style='height: {{windowHeight-navigationBarHeight-160}}px;top:{{navigationBarHeight+46}}px;'> | |||
<view class='all clear'> | |||
<block wx:for="{{lists}}" wx:key="{{index}}"> | |||
<view bindtap='jumpIndex' data-menuindex='{{item.id}}'> | |||
@@ -18,7 +19,7 @@ | |||
</view> | |||
<view class='lists'> | |||
<view class='posi' wx:if="{{merchantVoList.length>0}}"> | |||
<view class='posi' wx:if="{{merchantVoList.length>0}}" style="padding-bottom:100rpx;"> | |||
<view class='posi_logo' wx:for="{{merchantVoList}}" wx:key="index"> | |||
<view class='merchants' bindtap='gotoDetail' data-id='{{item.id}}'> | |||
<view style=' margin-left: 24rpx;margin-top: 24rpx;'> | |||
@@ -1,3 +1,22 @@ | |||
@import "../iconfont.wxss"; | |||
.searchicon{ | |||
margin-right: 5rpx; | |||
} | |||
.search{ | |||
z-index:5000; | |||
left:0; | |||
right: 0; | |||
margin: auto; | |||
width: 700rpx; | |||
height: 68rpx; | |||
line-height: 68rpx; | |||
border:1px solid #ccc; | |||
background: #F4F5F9; | |||
border-radius:10rpx; | |||
text-align: center; | |||
color: #999; | |||
font-size:30rpx; | |||
} | |||
.under_line{ | |||
width: 100%; | |||
} | |||
@@ -0,0 +1,211 @@ | |||
const navigationBarHeight = (getApp().statusBarHeight + 44)*2; | |||
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 }); | |||
/******/ 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); }; | |||
/******/ | |||
/******/ // __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 | |||
}, | |||
lastSearch: Date.now(), | |||
lifetimes: { | |||
attached: function attached() { | |||
if (this.data.focus) { | |||
this.setData({ | |||
searchState: true | |||
}); | |||
} | |||
} | |||
}, | |||
methods: { | |||
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 | |||
}); | |||
}, | |||
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 }); | |||
} | |||
} | |||
}); | |||
/***/ }) | |||
/******/ }); |
@@ -0,0 +1,8 @@ | |||
{ | |||
"navigationBarTitleText": "门店搜索", | |||
"navigationBarBackgroundColor": "#F4F5F9", | |||
"navigationBarTextStyle": "black", | |||
"usingComponents": { | |||
"navbar": "../../../components/navbar/navbar" | |||
} | |||
} |
@@ -0,0 +1,22 @@ | |||
<navbar home back text="门店搜素"></navbar> | |||
<view class="weui-search-bar {{extClass}}" style="margin-top:{{navigationBarHeight}}rpx"> | |||
<view class="weui-search-bar__form"> | |||
<view class="weui-search-bar__box"> | |||
<icon class="weui-icon-search_in-box" type="search" size="12"></icon> | |||
<input type="text" class="weui-search-bar__input" placeholder="{{placeholder}}" value="{{value}}" focus="{{focus}}" bindblur="inputBlur" bindfocus="inputFocus" bindinput="inputChange" /> | |||
<view class="weui-icon-clear" wx:if="{{value.length > 0}}" bindtap="clearInput"> | |||
<icon type="clear" size="12"></icon> | |||
</view> | |||
</view> | |||
<label class="weui-search-bar__label" hidden="{{searchState}}" bindtap="showInput"> | |||
<icon class="weui-icon-search" type="search" size="12"></icon> | |||
<view class="weui-search-bar__text">搜索</view> | |||
</label> | |||
</view> | |||
<view wx:if="{{cancel && searchState}}" class="weui-search-bar__cancel-btn" bindtap="hideInput">{{cancelText}}</view> | |||
</view> | |||
<mp-cells class="searchbar-result {{extClass}}" wx:if="{{searchState && result.length > 0}}"> | |||
<mp-cell bindtap="selectResult" data-index="{{index}}" wx:for="{{result}}" hover> | |||
<view>{{item.text}}</view> | |||
</mp-cell> | |||
</mp-cells> |
@@ -0,0 +1,2 @@ | |||
@import "../../weui.wxss"; | |||
.weui-search-bar{position:relative;padding:8px;display:flex;box-sizing:border-box;background-color:#EDEDED;-webkit-text-size-adjust:100%;align-items:center}.weui-icon-search{margin-right:8px;font-size:14px;vertical-align:top;margin-top:.64em;height:1em;line-height:1em}.weui-icon-search_in-box{position:absolute;left:12px;top:50%;margin-top:-8px}.weui-search-bar__text{display:inline-block;font-size:14px;vertical-align:top}.weui-search-bar__form{position:relative;flex:auto;border-radius:4px;background:#FFFFFF}.weui-search-bar__box{position:relative;padding-left:32px;padding-right:32px;width:100%;box-sizing:border-box;z-index:1}.weui-search-bar__input{height:32px;line-height:32px;font-size:14px;caret-color:#07C160}.weui-icon-clear{position:absolute;top:0;right:0;bottom:0;padding:0 12px;font-size:0}.weui-icon-clear:after{content:"";height:100%;vertical-align:middle;display:inline-block;width:0;overflow:hidden}.weui-search-bar__label{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;border-radius:4px;text-align:center;color:rgba(0,0,0,0.5);background:#FFFFFF;line-height:32px}.weui-search-bar__cancel-btn{margin-left:8px;line-height:32px;color:#576B95;white-space:nowrap} |