index.vue 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <uni-shadow-root class="vant-button-index"><button :id="id" :class="'custom-class '+(utils.bem('button', [type, size, { block, round, plain, square, loading, disabled, hairline, unclickable: disabled || loading }]))+' '+(hairline ? 'van-hairline--surround' : '')" :open-type="openType" hover-class="van-button--active hover-class" :lang="lang" :business-id="businessId" :session-from="sessionFrom" :send-message-title="sendMessageTitle" :send-message-path="sendMessagePath" :send-message-img="sendMessageImg" :show-message-card="showMessageCard" :app-parameter="appParameter" :aria-label="ariaLabel" @click="onClick" @getuserinfo="bindGetUserInfo" @contact="bindContact" @getphonenumber="bindGetPhoneNumber" @error="bindError" @launchapp="bindLaunchApp" @opensetting="bindOpenSetting">
  3. <block v-if="loading">
  4. <van-loading custom-class="loading-class" :size="loadingSize" :color="type === 'default' ? '#c9c9c9' : ''"></van-loading>
  5. <view v-if="loadingText" class="van-button__loading-text">
  6. {{ loadingText }}
  7. </view>
  8. </block>
  9. <block v-else>
  10. <van-icon v-if="icon" size="1.2em" :name="icon" class="van-button__icon" custom-style="line-height: inherit;"></van-icon>
  11. <view class="van-button__text">
  12. <slot></slot>
  13. </view>
  14. </block>
  15. </button></uni-shadow-root>
  16. </template>
  17. <wxs src="../wxs/utils.wxs" module="utils"></wxs>
  18. <script>
  19. import VanIcon from '../icon/index.vue'
  20. import VanLoading from '../loading/index.vue'
  21. global['__wxVueOptions'] = {components:{'van-icon': VanIcon,'van-loading': VanLoading}}
  22. global['__wxRoute'] = 'vant/button/index'
  23. "use strict";
  24. Object.defineProperty(exports, "__esModule", { value: true });
  25. var component_1 = require('./../common/component.js');
  26. var button_1 = require('./../mixins/button.js');
  27. var open_type_1 = require('./../mixins/open-type.js');
  28. component_1.VantComponent({
  29. mixins: [button_1.button, open_type_1.openType],
  30. classes: ['hover-class', 'loading-class'],
  31. props: {
  32. icon: String,
  33. plain: Boolean,
  34. block: Boolean,
  35. round: Boolean,
  36. square: Boolean,
  37. loading: Boolean,
  38. hairline: Boolean,
  39. disabled: Boolean,
  40. loadingText: String,
  41. type: {
  42. type: String,
  43. value: 'default'
  44. },
  45. size: {
  46. type: String,
  47. value: 'normal'
  48. },
  49. loadingSize: {
  50. type: String,
  51. value: '20px'
  52. }
  53. },
  54. methods: {
  55. onClick: function onClick() {
  56. if (!this.data.disabled && !this.data.loading) {
  57. this.$emit('click');
  58. }
  59. }
  60. }
  61. });
  62. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIk9iamVjdCIsInZhbHVlIiwiY29tcG9uZW50XzEiLCJyZXF1aXJlIiwiYnV0dG9uXzEiLCJvcGVuX3R5cGVfMSIsIm1peGlucyIsImNsYXNzZXMiLCJwcm9wcyIsImljb24iLCJwbGFpbiIsImJsb2NrIiwicm91bmQiLCJzcXVhcmUiLCJsb2FkaW5nIiwiaGFpcmxpbmUiLCJkaXNhYmxlZCIsImxvYWRpbmdUZXh0IiwidHlwZSIsInNpemUiLCJsb2FkaW5nU2l6ZSIsIm1ldGhvZHMiLCJvbkNsaWNrIl0sIm1hcHBpbmdzIjoiOztBQUNBQSxPQUFBQSxjQUFBQSxDQUFBQSxPQUFBQSxFQUFBQSxZQUFBQSxFQUE2QyxFQUFFQyxPQUEvQ0QsSUFBNkMsRUFBN0NBO0FBQ0EsSUFBSUUsY0FBY0MsUUFBbEIsMEJBQWtCQSxDQUFsQjtBQUNBLElBQUlDLFdBQVdELFFBQWYsdUJBQWVBLENBQWY7QUFDQSxJQUFJRSxjQUFjRixRQUFsQiwwQkFBa0JBLENBQWxCO0FBQ0FELFlBQUFBLGFBQUFBLENBQTBCO0FBQ3RCSSxZQUFRLENBQUNGLFNBQUQsTUFBQSxFQUFrQkMsWUFESixRQUNkLENBRGM7QUFFdEJFLGFBQVMsQ0FBQSxhQUFBLEVBRmEsZUFFYixDQUZhO0FBR3RCQyxXQUFPO0FBQ0hDLGNBREcsTUFBQTtBQUVIQyxlQUZHLE9BQUE7QUFHSEMsZUFIRyxPQUFBO0FBSUhDLGVBSkcsT0FBQTtBQUtIQyxnQkFMRyxPQUFBO0FBTUhDLGlCQU5HLE9BQUE7QUFPSEMsa0JBUEcsT0FBQTtBQVFIQyxrQkFSRyxPQUFBO0FBU0hDLHFCQVRHLE1BQUE7QUFVSEMsY0FBTTtBQUNGQSxrQkFERSxNQUFBO0FBRUZqQixtQkFBTztBQUZMLFNBVkg7QUFjSGtCLGNBQU07QUFDRkQsa0JBREUsTUFBQTtBQUVGakIsbUJBQU87QUFGTCxTQWRIO0FBa0JIbUIscUJBQWE7QUFDVEYsa0JBRFMsTUFBQTtBQUVUakIsbUJBQU87QUFGRTtBQWxCVixLQUhlO0FBMEJ0Qm9CLGFBQVM7QUFDTEMsaUJBQVMsU0FBQSxPQUFBLEdBQVk7QUFDakIsZ0JBQUksQ0FBQyxLQUFBLElBQUEsQ0FBRCxRQUFBLElBQXVCLENBQUMsS0FBQSxJQUFBLENBQTVCLE9BQUEsRUFBK0M7QUFDM0MscUJBQUEsS0FBQSxDQUFBLE9BQUE7QUFDSDtBQUNKO0FBTEk7QUExQmEsQ0FBMUJwQiIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGNvbXBvbmVudF8xID0gcmVxdWlyZShcIi4uL2NvbW1vbi9jb21wb25lbnRcIik7XG52YXIgYnV0dG9uXzEgPSByZXF1aXJlKFwiLi4vbWl4aW5zL2J1dHRvblwiKTtcbnZhciBvcGVuX3R5cGVfMSA9IHJlcXVpcmUoXCIuLi9taXhpbnMvb3Blbi10eXBlXCIpO1xuY29tcG9uZW50XzEuVmFudENvbXBvbmVudCh7XG4gICAgbWl4aW5zOiBbYnV0dG9uXzEuYnV0dG9uLCBvcGVuX3R5cGVfMS5vcGVuVHlwZV0sXG4gICAgY2xhc3NlczogWydob3Zlci1jbGFzcycsICdsb2FkaW5nLWNsYXNzJ10sXG4gICAgcHJvcHM6IHtcbiAgICAgICAgaWNvbjogU3RyaW5nLFxuICAgICAgICBwbGFpbjogQm9vbGVhbixcbiAgICAgICAgYmxvY2s6IEJvb2xlYW4sXG4gICAgICAgIHJvdW5kOiBCb29sZWFuLFxuICAgICAgICBzcXVhcmU6IEJvb2xlYW4sXG4gICAgICAgIGxvYWRpbmc6IEJvb2xlYW4sXG4gICAgICAgIGhhaXJsaW5lOiBCb29sZWFuLFxuICAgICAgICBkaXNhYmxlZDogQm9vbGVhbixcbiAgICAgICAgbG9hZGluZ1RleHQ6IFN0cmluZyxcbiAgICAgICAgdHlwZToge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgICAgICAgdmFsdWU6ICdkZWZhdWx0J1xuICAgICAgICB9LFxuICAgICAgICBzaXplOiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICB2YWx1ZTogJ25vcm1hbCdcbiAgICAgICAgfSxcbiAgICAgICAgbG9hZGluZ1NpemU6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHZhbHVlOiAnMjBweCdcbiAgICAgICAgfVxuICAgIH0sXG4gICAgbWV0aG9kczoge1xuICAgICAgICBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZGF0YS5kaXNhYmxlZCAmJiAhdGhpcy5kYXRhLmxvYWRpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCdjbGljaycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSk7XG4iXSwiZmlsZSI6ImluZGV4LmpzIn0=
  63. export default global['__wxComponents']['vant/button/index']
  64. </script>
  65. <style platform="mp-weixin">
  66. @import '../common/index.css';.van-button{position:relative;display:inline-block;height:44px;padding:0;font-size:16px;line-height:42px;text-align:center;vertical-align:middle;box-sizing:border-box;border-radius:2px;-webkit-appearance:none;-webkit-text-size-adjust:100%}.van-button:before{position:absolute;top:50%;left:50%;width:100%;height:100%;background-color:#000;border:inherit;border-color:#000;border-radius:inherit;content:" ";opacity:0;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.van-button:after{border-width:0}.van-button--active:before{opacity:.15}.van-button--unclickable:after{display:none}.van-button--default{color:#333;background-color:#fff;border:1px solid #eee}.van-button--primary{color:#fff;background-color:#07c160;border:1px solid #07c160}.van-button--info{color:#fff;background-color:#1989fa;border:1px solid #1989fa}.van-button--danger{color:#fff;background-color:#f44;border:1px solid #f44}.van-button--warning{color:#fff;background-color:#ff976a;border:1px solid #ff976a}.van-button--plain{background-color:#fff}.van-button--plain.van-button--primary{color:#07c160}.van-button--plain.van-button--info{color:#1989fa}.van-button--plain.van-button--danger{color:#f44}.van-button--plain.van-button--warning{color:#ff976a}.van-button--large{width:100%;height:50px;line-height:48px}.van-button--normal{padding:0 15px;font-size:14px}.van-button--small{height:30px;min-width:60px;padding:0 8px;font-size:12px;line-height:28px}.van-button--mini{display:inline-block;width:50px;height:22px;font-size:10px;line-height:20px}.van-button--mini+.van-button--mini{margin-left:5px}.van-button--block{display:block;width:100%}.van-button--round{border-radius:10em}.van-button--square{border-radius:0}.van-button--disabled{opacity:.5}.van-button__text{display:inline}.van-button__loading-text{margin-left:5px;display:inline-block;vertical-align:middle}.van-button__icon{min-width:1em;line-height:inherit!important;vertical-align:top}.van-button__icon+.van-button__text:not(:empty){display:inline-block;margin-left:5px;vertical-align:top}.van-button--hairline{border-width:0;padding-top:1px}.van-button--hairline:after{border-width:1px;border-color:inherit;border-radius:4px}.van-button--hairline.van-button--round:after{border-radius:10em}.van-button--hairline.van-button--square:after{border-radius:0}
  67. </style>