| @@ -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} | |||