index.vue 8.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <template>
  2. <uni-shadow-root class="vant-submit-bar-index"><view class="van-submit-bar custom-class">
  3. <slot name="top"></slot>
  4. <view class="van-submit-bar__tip">
  5. <van-icon v-if="tipIcon" size="12px" :name="tipIcon" custom-class="van-submit-bar__tip-icon"></van-icon>
  6. <view v-if="hasTip" class="van-submit-bar__tip-text">
  7. {{ tip }}
  8. </view>
  9. <slot name="tip"></slot>
  10. </view>
  11. <view :class="'bar-class '+(utils.bem('submit-bar__bar', { safe: safeAreaInsetBottom && isIPhoneX }))">
  12. <slot></slot>
  13. <view v-if="hasPrice" class="van-submit-bar__text">
  14. <text>{{ label || '合计:' }}</text>
  15. <text class="van-submit-bar__price price-class">
  16. <text class="van-submit-bar__currency">{{ currency }} </text>
  17. <text>{{ priceStr }}</text>
  18. </text>
  19. <text class="van-submit-bar__suffix-label">{{ suffixLabel }}</text>
  20. </view>
  21. <van-button square size="large" :type="buttonType" :loading="loading" :disabled="disabled" class="van-submit-bar__button" custom-class="button-class" @click="onSubmit">
  22. {{ loading ? '' : buttonText }}
  23. </van-button>
  24. </view>
  25. </view></uni-shadow-root>
  26. </template>
  27. <wxs src="../wxs/utils.wxs" module="utils"></wxs>
  28. <script>
  29. import VanButton from '../button/index.vue'
  30. import VanIcon from '../icon/index.vue'
  31. global['__wxVueOptions'] = {components:{'van-button': VanButton,'van-icon': VanIcon}}
  32. global['__wxRoute'] = 'vant/submit-bar/index'
  33. "use strict";
  34. Object.defineProperty(exports, "__esModule", { value: true });
  35. var component_1 = require('./../common/component.js');
  36. var safe_area_1 = require('./../mixins/safe-area.js');
  37. component_1.VantComponent({
  38. mixins: [safe_area_1.safeArea()],
  39. classes: ['bar-class', 'price-class', 'button-class'],
  40. props: {
  41. tip: {
  42. type: null,
  43. observer: 'updateTip'
  44. },
  45. tipIcon: String,
  46. type: Number,
  47. price: {
  48. type: null,
  49. observer: 'updatePrice'
  50. },
  51. label: String,
  52. loading: Boolean,
  53. disabled: Boolean,
  54. buttonText: String,
  55. currency: {
  56. type: String,
  57. value: '¥'
  58. },
  59. buttonType: {
  60. type: String,
  61. value: 'danger'
  62. },
  63. decimalLength: {
  64. type: Number,
  65. value: 2,
  66. observer: 'updatePrice'
  67. },
  68. suffixLabel: String
  69. },
  70. methods: {
  71. updatePrice: function updatePrice() {
  72. var _a = this.data,
  73. price = _a.price,
  74. decimalLength = _a.decimalLength;
  75. this.set({
  76. hasPrice: typeof price === 'number',
  77. priceStr: (price / 100).toFixed(decimalLength)
  78. });
  79. },
  80. updateTip: function updateTip() {
  81. this.set({ hasTip: typeof this.data.tip === 'string' });
  82. },
  83. onSubmit: function onSubmit(event) {
  84. this.$emit('submit', event.detail);
  85. }
  86. }
  87. });
  88. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIk9iamVjdCIsInZhbHVlIiwiY29tcG9uZW50XzEiLCJyZXF1aXJlIiwic2FmZV9hcmVhXzEiLCJtaXhpbnMiLCJjbGFzc2VzIiwicHJvcHMiLCJ0aXAiLCJ0eXBlIiwib2JzZXJ2ZXIiLCJ0aXBJY29uIiwicHJpY2UiLCJsYWJlbCIsImxvYWRpbmciLCJkaXNhYmxlZCIsImJ1dHRvblRleHQiLCJjdXJyZW5jeSIsImJ1dHRvblR5cGUiLCJkZWNpbWFsTGVuZ3RoIiwic3VmZml4TGFiZWwiLCJTdHJpbmciLCJtZXRob2RzIiwidXBkYXRlUHJpY2UiLCJfYSIsImhhc1ByaWNlIiwicHJpY2VTdHIiLCJ1cGRhdGVUaXAiLCJoYXNUaXAiLCJvblN1Ym1pdCIsImV2ZW50Il0sIm1hcHBpbmdzIjoiOztBQUNBQSxPQUFBQSxjQUFBQSxDQUFBQSxPQUFBQSxFQUFBQSxZQUFBQSxFQUE2QyxFQUFFQyxPQUEvQ0QsSUFBNkMsRUFBN0NBO0FBQ0EsSUFBSUUsY0FBY0MsUUFBbEIsMEJBQWtCQSxDQUFsQjtBQUNBLElBQUlDLGNBQWNELFFBQWxCLDBCQUFrQkEsQ0FBbEI7QUFDQUQsWUFBQUEsYUFBQUEsQ0FBMEI7QUFDdEJHLFlBQVEsQ0FBQ0QsWUFEYSxRQUNiQSxFQUFELENBRGM7QUFFdEJFLGFBQVMsQ0FBQSxXQUFBLEVBQUEsYUFBQSxFQUZhLGNBRWIsQ0FGYTtBQU90QkMsV0FBTztBQUNIQyxhQUFLO0FBQ0RDLGtCQURDLElBQUE7QUFFREMsc0JBQVU7QUFGVCxTQURGO0FBS0hDLGlCQUxHLE1BQUE7QUFNSEYsY0FORyxNQUFBO0FBT0hHLGVBQU87QUFDSEgsa0JBREcsSUFBQTtBQUVIQyxzQkFBVTtBQUZQLFNBUEo7QUFXSEcsZUFYRyxNQUFBO0FBWUhDLGlCQVpHLE9BQUE7QUFhSEMsa0JBYkcsT0FBQTtBQWNIQyxvQkFkRyxNQUFBO0FBZUhDLGtCQUFVO0FBQ05SLGtCQURNLE1BQUE7QUFFTlIsbUJBQU87QUFGRCxTQWZQO0FBbUJIaUIsb0JBQVk7QUFDUlQsa0JBRFEsTUFBQTtBQUVSUixtQkFBTztBQUZDLFNBbkJUO0FBdUJIa0IsdUJBQWU7QUFDWFYsa0JBRFcsTUFBQTtBQUVYUixtQkFGVyxDQUFBO0FBR1hTLHNCQUFVO0FBSEMsU0F2Qlo7QUE0QkhVLHFCQUFhQztBQTVCVixLQVBlO0FBcUN0QkMsYUFBUztBQUNMQyxxQkFBYSxTQUFBLFdBQUEsR0FBWTtBQUNyQixnQkFBSUMsS0FBSyxLQUFULElBQUE7QUFBQSxnQkFBb0JaLFFBQVFZLEdBQTVCLEtBQUE7QUFBQSxnQkFBc0NMLGdCQUFnQkssR0FBdEQsYUFBQTtBQUNBLGlCQUFBLEdBQUEsQ0FBUztBQUNMQywwQkFBVSxPQUFBLEtBQUEsS0FETCxRQUFBO0FBRUxDLDBCQUFVLENBQUNkLFFBQUQsR0FBQSxFQUFBLE9BQUEsQ0FBQSxhQUFBO0FBRkwsYUFBVDtBQUhDLFNBQUE7QUFRTGUsbUJBQVcsU0FBQSxTQUFBLEdBQVk7QUFDbkIsaUJBQUEsR0FBQSxDQUFTLEVBQUVDLFFBQVEsT0FBTyxLQUFBLElBQUEsQ0FBUCxHQUFBLEtBQW5CLFFBQVMsRUFBVDtBQVRDLFNBQUE7QUFXTEMsa0JBQVUsU0FBQSxRQUFBLENBQUEsS0FBQSxFQUFpQjtBQUN2QixpQkFBQSxLQUFBLENBQUEsUUFBQSxFQUFxQkMsTUFBckIsTUFBQTtBQUNIO0FBYkk7QUFyQ2EsQ0FBMUI1QiIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGNvbXBvbmVudF8xID0gcmVxdWlyZShcIi4uL2NvbW1vbi9jb21wb25lbnRcIik7XG52YXIgc2FmZV9hcmVhXzEgPSByZXF1aXJlKFwiLi4vbWl4aW5zL3NhZmUtYXJlYVwiKTtcbmNvbXBvbmVudF8xLlZhbnRDb21wb25lbnQoe1xuICAgIG1peGluczogW3NhZmVfYXJlYV8xLnNhZmVBcmVhKCldLFxuICAgIGNsYXNzZXM6IFtcbiAgICAgICAgJ2Jhci1jbGFzcycsXG4gICAgICAgICdwcmljZS1jbGFzcycsXG4gICAgICAgICdidXR0b24tY2xhc3MnXG4gICAgXSxcbiAgICBwcm9wczoge1xuICAgICAgICB0aXA6IHtcbiAgICAgICAgICAgIHR5cGU6IG51bGwsXG4gICAgICAgICAgICBvYnNlcnZlcjogJ3VwZGF0ZVRpcCdcbiAgICAgICAgfSxcbiAgICAgICAgdGlwSWNvbjogU3RyaW5nLFxuICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgIHByaWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBudWxsLFxuICAgICAgICAgICAgb2JzZXJ2ZXI6ICd1cGRhdGVQcmljZSdcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWw6IFN0cmluZyxcbiAgICAgICAgbG9hZGluZzogQm9vbGVhbixcbiAgICAgICAgZGlzYWJsZWQ6IEJvb2xlYW4sXG4gICAgICAgIGJ1dHRvblRleHQ6IFN0cmluZyxcbiAgICAgICAgY3VycmVuY3k6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHZhbHVlOiAnwqUnXG4gICAgICAgIH0sXG4gICAgICAgIGJ1dHRvblR5cGU6IHtcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHZhbHVlOiAnZGFuZ2VyJ1xuICAgICAgICB9LFxuICAgICAgICBkZWNpbWFsTGVuZ3RoOiB7XG4gICAgICAgICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICAgICAgICB2YWx1ZTogMixcbiAgICAgICAgICAgIG9ic2VydmVyOiAndXBkYXRlUHJpY2UnXG4gICAgICAgIH0sXG4gICAgICAgIHN1ZmZpeExhYmVsOiBTdHJpbmdcbiAgICB9LFxuICAgIG1ldGhvZHM6IHtcbiAgICAgICAgdXBkYXRlUHJpY2U6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBfYSA9IHRoaXMuZGF0YSwgcHJpY2UgPSBfYS5wcmljZSwgZGVjaW1hbExlbmd0aCA9IF9hLmRlY2ltYWxMZW5ndGg7XG4gICAgICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICAgICAgaGFzUHJpY2U6IHR5cGVvZiBwcmljZSA9PT0gJ251bWJlcicsXG4gICAgICAgICAgICAgICAgcHJpY2VTdHI6IChwcmljZSAvIDEwMCkudG9GaXhlZChkZWNpbWFsTGVuZ3RoKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZVRpcDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy5zZXQoeyBoYXNUaXA6IHR5cGVvZiB0aGlzLmRhdGEudGlwID09PSAnc3RyaW5nJyB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgb25TdWJtaXQ6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgdGhpcy4kZW1pdCgnc3VibWl0JywgZXZlbnQuZGV0YWlsKTtcbiAgICAgICAgfVxuICAgIH1cbn0pO1xuIl0sImZpbGUiOiJpbmRleC5qcyJ9
  89. export default global['__wxComponents']['vant/submit-bar/index']
  90. </script>
  91. <style platform="mp-weixin">
  92. @import '../common/index.css';.van-submit-bar{position:fixed;bottom:0;left:0;z-index:100;width:100%;-webkit-user-select:none;user-select:none}.van-submit-bar__tip{padding:10px;font-size:12px;line-height:1.5;color:#f56723;background-color:#fff7cc}.van-submit-bar__tip:empty{display:none}.van-submit-bar__tip-icon{width:12px;height:12px;margin-right:4px;vertical-align:middle}.van-submit-bar__tip-text{display:inline;vertical-align:middle}.van-submit-bar__bar{display:-webkit-flex;display:flex;height:50px;font-size:14px;background-color:#fff;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-end;justify-content:flex-end}.van-submit-bar__bar--safe{padding-bottom:34px}.van-submit-bar__text{padding-right:12px;font-weight:500;color:#333;-webkit-flex:1;flex:1;text-align:right}.van-submit-bar__price{font-size:18px;color:#f44}.van-submit-bar__currency{font-size:14px}.van-submit-bar__suffix-label{margin-left:5px}.van-submit-bar__button{width:110px}
  93. </style>