index.vue 8.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <template>
  2. <uni-shadow-root class="vant-search-index"><view :class="(utils.bem('search', { withaction: showAction || useActionSlot }))+' custom-class'" :style="'background: '+(background)">
  3. <view :class="utils.bem('search__content', [shape])">
  4. <view class="van-search__label" v-if="label">{{ label }}</view>
  5. <slot v-else name="label"></slot>
  6. <van-field clearable type="search" left-icon="search" :focus="focus" :error="error" :border="false" confirm-type="search" class="van-search__field field-class" :value="value" :disabled="disabled" :readonly="readonly" :maxlength="maxlength" :input-align="inputAlign" input-class="input-class" :placeholder="placeholder" :placeholder-style="placeholderStyle" custom-style="padding: 5px 10px 5px 0; background-color: transparent;" @blur="onBlur" @focus="onFocus" @change="onChange" @confirm="onSearch" @clear="onClear"></van-field>
  7. </view>
  8. <view v-if="showAction || useActionSlot" class="van-search__action" hover-class="van-search__action--hover" hover-stay-time="70">
  9. <slot v-if="useActionSlot" name="action"></slot>
  10. <view v-else @click="onCancel" class="cancel-class">取消</view>
  11. </view>
  12. </view></uni-shadow-root>
  13. </template>
  14. <wxs src="../wxs/utils.wxs" module="utils"></wxs>
  15. <script>
  16. import VanField from '../field/index.vue'
  17. global['__wxVueOptions'] = {components:{'van-field': VanField}}
  18. global['__wxRoute'] = 'vant/search/index'
  19. "use strict";
  20. Object.defineProperty(exports, "__esModule", { value: true });
  21. var component_1 = require('./../common/component.js');
  22. component_1.VantComponent({
  23. field: true,
  24. classes: ['field-class', 'input-class', 'cancel-class'],
  25. props: {
  26. focus: Boolean,
  27. error: Boolean,
  28. disabled: Boolean,
  29. readonly: Boolean,
  30. inputAlign: String,
  31. showAction: Boolean,
  32. useActionSlot: Boolean,
  33. placeholder: String,
  34. placeholderStyle: String,
  35. background: {
  36. type: String,
  37. value: '#ffffff'
  38. },
  39. maxlength: {
  40. type: Number,
  41. value: -1
  42. },
  43. shape: {
  44. type: String,
  45. value: 'square'
  46. },
  47. label: String
  48. },
  49. methods: {
  50. onChange: function onChange(event) {
  51. this.set({ value: event.detail });
  52. this.$emit('change', event.detail);
  53. },
  54. onCancel: function onCancel() {
  55. var _this = this;
  56. /**
  57. * 修复修改输入框值时,输入框失焦和赋值同时触发,赋值失效
  58. * // https://github.com/youzan/vant-weapp/issues/1768
  59. */
  60. setTimeout(function () {
  61. _this.set({ value: '' });
  62. _this.$emit('cancel');
  63. _this.$emit('change', '');
  64. }, 200);
  65. },
  66. onSearch: function onSearch() {
  67. this.$emit('search', this.data.value);
  68. },
  69. onFocus: function onFocus() {
  70. this.$emit('focus');
  71. },
  72. onBlur: function onBlur() {
  73. this.$emit('blur');
  74. },
  75. onClear: function onClear() {
  76. this.$emit('clear');
  77. }
  78. }
  79. });
  80. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIk9iamVjdCIsInZhbHVlIiwiY29tcG9uZW50XzEiLCJyZXF1aXJlIiwiZmllbGQiLCJjbGFzc2VzIiwicHJvcHMiLCJmb2N1cyIsImVycm9yIiwiZGlzYWJsZWQiLCJyZWFkb25seSIsImlucHV0QWxpZ24iLCJzaG93QWN0aW9uIiwidXNlQWN0aW9uU2xvdCIsInBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXJTdHlsZSIsImJhY2tncm91bmQiLCJ0eXBlIiwibWF4bGVuZ3RoIiwic2hhcGUiLCJsYWJlbCIsIlN0cmluZyIsIm1ldGhvZHMiLCJvbkNoYW5nZSIsImV2ZW50Iiwib25DYW5jZWwiLCJfdGhpcyIsInNldFRpbWVvdXQiLCJvblNlYXJjaCIsIm9uRm9jdXMiLCJvbkJsdXIiLCJvbkNsZWFyIl0sIm1hcHBpbmdzIjoiOztBQUNBQSxPQUFBQSxjQUFBQSxDQUFBQSxPQUFBQSxFQUFBQSxZQUFBQSxFQUE2QyxFQUFFQyxPQUEvQ0QsSUFBNkMsRUFBN0NBO0FBQ0EsSUFBSUUsY0FBY0MsUUFBbEIsMEJBQWtCQSxDQUFsQjtBQUNBRCxZQUFBQSxhQUFBQSxDQUEwQjtBQUN0QkUsV0FEc0IsSUFBQTtBQUV0QkMsYUFBUyxDQUFBLGFBQUEsRUFBQSxhQUFBLEVBRmEsY0FFYixDQUZhO0FBR3RCQyxXQUFPO0FBQ0hDLGVBREcsT0FBQTtBQUVIQyxlQUZHLE9BQUE7QUFHSEMsa0JBSEcsT0FBQTtBQUlIQyxrQkFKRyxPQUFBO0FBS0hDLG9CQUxHLE1BQUE7QUFNSEMsb0JBTkcsT0FBQTtBQU9IQyx1QkFQRyxPQUFBO0FBUUhDLHFCQVJHLE1BQUE7QUFTSEMsMEJBVEcsTUFBQTtBQVVIQyxvQkFBWTtBQUNSQyxrQkFEUSxNQUFBO0FBRVJoQixtQkFBTztBQUZDLFNBVlQ7QUFjSGlCLG1CQUFXO0FBQ1BELGtCQURPLE1BQUE7QUFFUGhCLG1CQUFPLENBQUM7QUFGRCxTQWRSO0FBa0JIa0IsZUFBTztBQUNIRixrQkFERyxNQUFBO0FBRUhoQixtQkFBTztBQUZKLFNBbEJKO0FBc0JIbUIsZUFBT0M7QUF0QkosS0FIZTtBQTJCdEJDLGFBQVM7QUFDTEMsa0JBQVUsU0FBQSxRQUFBLENBQUEsS0FBQSxFQUFpQjtBQUN2QixpQkFBQSxHQUFBLENBQVMsRUFBRXRCLE9BQU91QixNQUFsQixNQUFTLEVBQVQ7QUFDQSxpQkFBQSxLQUFBLENBQUEsUUFBQSxFQUFxQkEsTUFBckIsTUFBQTtBQUhDLFNBQUE7QUFLTEMsa0JBQVUsU0FBQSxRQUFBLEdBQVk7QUFDbEIsZ0JBQUlDLFFBQUosSUFBQTtBQUNBOzs7O0FBSUFDLHVCQUFXLFlBQVk7QUFDbkJELHNCQUFBQSxHQUFBQSxDQUFVLEVBQUV6QixPQUFaeUIsRUFBVSxFQUFWQTtBQUNBQSxzQkFBQUEsS0FBQUEsQ0FBQUEsUUFBQUE7QUFDQUEsc0JBQUFBLEtBQUFBLENBQUFBLFFBQUFBLEVBQUFBLEVBQUFBO0FBSEpDLGFBQUFBLEVBQUFBLEdBQUFBO0FBWEMsU0FBQTtBQWlCTEMsa0JBQVUsU0FBQSxRQUFBLEdBQVk7QUFDbEIsaUJBQUEsS0FBQSxDQUFBLFFBQUEsRUFBcUIsS0FBQSxJQUFBLENBQXJCLEtBQUE7QUFsQkMsU0FBQTtBQW9CTEMsaUJBQVMsU0FBQSxPQUFBLEdBQVk7QUFDakIsaUJBQUEsS0FBQSxDQUFBLE9BQUE7QUFyQkMsU0FBQTtBQXVCTEMsZ0JBQVEsU0FBQSxNQUFBLEdBQVk7QUFDaEIsaUJBQUEsS0FBQSxDQUFBLE1BQUE7QUF4QkMsU0FBQTtBQTBCTEMsaUJBQVMsU0FBQSxPQUFBLEdBQVk7QUFDakIsaUJBQUEsS0FBQSxDQUFBLE9BQUE7QUFDSDtBQTVCSTtBQTNCYSxDQUExQjdCIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgY29tcG9uZW50XzEgPSByZXF1aXJlKFwiLi4vY29tbW9uL2NvbXBvbmVudFwiKTtcbmNvbXBvbmVudF8xLlZhbnRDb21wb25lbnQoe1xuICAgIGZpZWxkOiB0cnVlLFxuICAgIGNsYXNzZXM6IFsnZmllbGQtY2xhc3MnLCAnaW5wdXQtY2xhc3MnLCAnY2FuY2VsLWNsYXNzJ10sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgZm9jdXM6IEJvb2xlYW4sXG4gICAgICAgIGVycm9yOiBCb29sZWFuLFxuICAgICAgICBkaXNhYmxlZDogQm9vbGVhbixcbiAgICAgICAgcmVhZG9ubHk6IEJvb2xlYW4sXG4gICAgICAgIGlucHV0QWxpZ246IFN0cmluZyxcbiAgICAgICAgc2hvd0FjdGlvbjogQm9vbGVhbixcbiAgICAgICAgdXNlQWN0aW9uU2xvdDogQm9vbGVhbixcbiAgICAgICAgcGxhY2Vob2xkZXI6IFN0cmluZyxcbiAgICAgICAgcGxhY2Vob2xkZXJTdHlsZTogU3RyaW5nLFxuICAgICAgICBiYWNrZ3JvdW5kOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICB2YWx1ZTogJyNmZmZmZmYnXG4gICAgICAgIH0sXG4gICAgICAgIG1heGxlbmd0aDoge1xuICAgICAgICAgICAgdHlwZTogTnVtYmVyLFxuICAgICAgICAgICAgdmFsdWU6IC0xXG4gICAgICAgIH0sXG4gICAgICAgIHNoYXBlOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICB2YWx1ZTogJ3NxdWFyZSdcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWw6IFN0cmluZ1xuICAgIH0sXG4gICAgbWV0aG9kczoge1xuICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLnNldCh7IHZhbHVlOiBldmVudC5kZXRhaWwgfSk7XG4gICAgICAgICAgICB0aGlzLiRlbWl0KCdjaGFuZ2UnLCBldmVudC5kZXRhaWwpO1xuICAgICAgICB9LFxuICAgICAgICBvbkNhbmNlbDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICog5L+u5aSN5L+u5pS56L6T5YWl5qGG5YC85pe277yM6L6T5YWl5qGG5aSx54Sm5ZKM6LWL5YC85ZCM5pe26Kem5Y+R77yM6LWL5YC85aSx5pWIXG4gICAgICAgICAgICAgKiAvLyBodHRwczovL2dpdGh1Yi5jb20veW91emFuL3ZhbnQtd2VhcHAvaXNzdWVzLzE3NjhcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgX3RoaXMuc2V0KHsgdmFsdWU6ICcnIH0pO1xuICAgICAgICAgICAgICAgIF90aGlzLiRlbWl0KCdjYW5jZWwnKTtcbiAgICAgICAgICAgICAgICBfdGhpcy4kZW1pdCgnY2hhbmdlJywgJycpO1xuICAgICAgICAgICAgfSwgMjAwKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25TZWFyY2g6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuJGVtaXQoJ3NlYXJjaCcsIHRoaXMuZGF0YS52YWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uRm9jdXM6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuJGVtaXQoJ2ZvY3VzJyk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uQmx1cjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy4kZW1pdCgnYmx1cicpO1xuICAgICAgICB9LFxuICAgICAgICBvbkNsZWFyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aGlzLiRlbWl0KCdjbGVhcicpO1xuICAgICAgICB9LFxuICAgIH1cbn0pO1xuIl0sImZpbGUiOiJpbmRleC5qcyJ9
  81. export default global['__wxComponents']['vant/search/index']
  82. </script>
  83. <style platform="mp-weixin">
  84. @import '../common/index.css';.van-search{padding:10px 16px;-webkit-align-items:center;align-items:center;box-sizing:border-box}.van-search,.van-search__content{display:-webkit-flex;display:flex}.van-search__content{padding-left:10px;background-color:#f7f8fa;border-radius:2px;-webkit-flex:1;flex:1}.van-search__content--round{border-radius:17px}.van-search__label{padding:0 5px;font-size:14px;line-height:34px;color:#333}.van-search__field{-webkit-flex:1;flex:1}.van-search__field__left-icon{color:#999}.van-search--withaction{padding-right:0}.van-search__action{padding:0 10px;font-size:14px;line-height:34px;color:#333}.van-search__action--hover{background-color:#f2f3f5}
  85. </style>