| @@ -5,6 +5,7 @@ | |||||
| "index/searchbar", | "index/searchbar", | ||||
| "index/passCar", | "index/passCar", | ||||
| "index/user", | "index/user", | ||||
| "pages/searchbar/searchbar", | |||||
| "pages/integralmall/integraHistory/index", | "pages/integralmall/integraHistory/index", | ||||
| "pages/integralmall/payIntegcouponStatus/index", | "pages/integralmall/payIntegcouponStatus/index", | ||||
| "pages/integralmall/payIntegcoupondetail/index", | "pages/integralmall/payIntegcoupondetail/index", | ||||
| @@ -276,10 +276,6 @@ var config = { | |||||
| * 专题详情 | * 专题详情 | ||||
| */ | */ | ||||
| topicFindById:"/topic/findById", | 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 Http = require("../utils/HttpBasics"); | ||||
| const imgurl = require("../utils/imgurl"); | const imgurl = require("../utils/imgurl"); | ||||
| const config = require("../config/config"); | const config = require("../config/config"); | ||||
| @@ -33,6 +33,11 @@ Page({ | |||||
| }) | }) | ||||
| that.getList(1, that.data.businessId); | that.getList(1, that.data.businessId); | ||||
| }, | }, | ||||
| goSearchBar(){ | |||||
| wx.navigateTo({ | |||||
| url: '/pages/searchbar/searchbar', | |||||
| }) | |||||
| }, | |||||
| /** | /** | ||||
| * 跳转到门店列表的详情页面 | * 跳转到门店列表的详情页面 | ||||
| */ | */ | ||||
| @@ -63,7 +68,7 @@ Page({ | |||||
| wx.getSystemInfo({ | wx.getSystemInfo({ | ||||
| success: function (res) { | success: function (res) { | ||||
| that.setData({ | that.setData({ | ||||
| windowHeight: res.windowHeight + parseInt(navigationBarHeight) | |||||
| windowHeight: res.windowHeight + navigationBarHeight | |||||
| }) | }) | ||||
| }, | }, | ||||
| }) | }) | ||||
| @@ -1,9 +1,10 @@ | |||||
| <navbar text="门店"></navbar> | <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 class='under_line'></view> | ||||
| <view style='float: left' class='left'> | <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'> | <view class='all clear'> | ||||
| <block wx:for="{{lists}}" wx:key="{{index}}"> | <block wx:for="{{lists}}" wx:key="{{index}}"> | ||||
| <view bindtap='jumpIndex' data-menuindex='{{item.id}}'> | <view bindtap='jumpIndex' data-menuindex='{{item.id}}'> | ||||
| @@ -18,7 +19,7 @@ | |||||
| </view> | </view> | ||||
| <view class='lists'> | <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='posi_logo' wx:for="{{merchantVoList}}" wx:key="index"> | ||||
| <view class='merchants' bindtap='gotoDetail' data-id='{{item.id}}'> | <view class='merchants' bindtap='gotoDetail' data-id='{{item.id}}'> | ||||
| <view style=' margin-left: 24rpx;margin-top: 24rpx;'> | <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{ | .under_line{ | ||||
| width: 100%; | 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} | |||||