diff --git a/app.json b/app.json index 8faae3a..1f53ff1 100644 --- a/app.json +++ b/app.json @@ -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", diff --git a/index/searchbar.js b/index/searchbar.js index 34a8720..a0fb6f9 100644 --- a/index/searchbar.js +++ b/index/searchbar.js @@ -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', + }) + }, /** * 跳转到门店列表的详情页面 */ diff --git a/index/searchbar.wxml b/index/searchbar.wxml index b7956c2..3304717 100644 --- a/index/searchbar.wxml +++ b/index/searchbar.wxml @@ -1,9 +1,10 @@ - + + - + diff --git a/pages/searchbar/searchbar.js b/pages/searchbar/searchbar.js new file mode 100644 index 0000000..4d6ec3b --- /dev/null +++ b/pages/searchbar/searchbar.js @@ -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 }); + } + } +}); + +/***/ }) + +/******/ }); \ No newline at end of file diff --git a/pages/searchbar/searchbar.json b/pages/searchbar/searchbar.json new file mode 100644 index 0000000..35fae4e --- /dev/null +++ b/pages/searchbar/searchbar.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "门店搜索", + "navigationBarBackgroundColor": "#F4F5F9", + "navigationBarTextStyle": "black", + "usingComponents": { + "navbar": "../../../components/navbar/navbar" + } +} \ No newline at end of file diff --git a/pages/searchbar/searchbar.wxml b/pages/searchbar/searchbar.wxml new file mode 100644 index 0000000..918e095 --- /dev/null +++ b/pages/searchbar/searchbar.wxml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + {{cancelText}} + + + + {{item.text}} + + \ No newline at end of file diff --git a/pages/searchbar/searchbar.wxss b/pages/searchbar/searchbar.wxss new file mode 100644 index 0000000..944f17e --- /dev/null +++ b/pages/searchbar/searchbar.wxss @@ -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} \ No newline at end of file diff --git a/project.config.json b/project.config.json index b6bb9ba..cb99eff 100644 --- a/project.config.json +++ b/project.config.json @@ -14,7 +14,7 @@ }, "compileType": "miniprogram", "libVersion": "2.5.0", - "appid": "wxfa336cad86ed598d", + "appid": "wxb11603577a84a86d", "projectname": "C%E7%AB%AF%E5%B0%8F%E7%A8%8B%E5%BA%8F", "isGameTourist": false, "simulatorType": "wechat",