| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 | import _mergeJSXProps from "@vue/babel-helper-vue-jsx-merge-props";// Utilsimport { createNamespace } from '../utils';import { emit, inherit } from '../utils/functional'; // Componentsimport Icon from '../icon';import Button from '../button'; // Typesvar _createNamespace = createNamespace('submit-bar'),    createComponent = _createNamespace[0],    bem = _createNamespace[1],    t = _createNamespace[2];function SubmitBar(h, props, slots, ctx) {  var tip = props.tip,      price = props.price,      tipIcon = props.tipIcon;  function Text() {    if (typeof price === 'number') {      var priceArr = (price / 100).toFixed(props.decimalLength).split('.');      var decimalStr = props.decimalLength ? "." + priceArr[1] : '';      return h("div", {        "style": {          textAlign: props.textAlign ? props.textAlign : ''        },        "class": bem('text')      }, [h("span", [props.label || t('label')]), h("span", {        "class": bem('price')      }, [props.currency, h("span", {        "class": bem('price', 'integer')      }, [priceArr[0]]), decimalStr]), props.suffixLabel && h("span", {        "class": bem('suffix-label')      }, [props.suffixLabel])]);    }  }  function Tip() {    if (slots.tip || tip) {      return h("div", {        "class": bem('tip')      }, [tipIcon && h(Icon, {        "class": bem('tip-icon'),        "attrs": {          "name": tipIcon        }      }), tip && h("span", {        "class": bem('tip-text')      }, [tip]), slots.tip && slots.tip()]);    }  }  return h("div", _mergeJSXProps([{    "class": bem({      unfit: !props.safeAreaInsetBottom    })  }, inherit(ctx)]), [slots.top && slots.top(), Tip(), h("div", {    "class": bem('bar')  }, [slots.default && slots.default(), Text(), slots.button ? slots.button() : h(Button, {    "attrs": {      "round": true,      "type": props.buttonType,      "text": props.loading ? '' : props.buttonText,      "color": props.buttonColor,      "loading": props.loading,      "disabled": props.disabled    },    "class": bem('button', props.buttonType),    "on": {      "click": function click() {        emit(ctx, 'submit');      }    }  })])]);}SubmitBar.props = {  tip: String,  label: String,  price: Number,  tipIcon: String,  loading: Boolean,  disabled: Boolean,  textAlign: String,  buttonText: String,  buttonColor: String,  suffixLabel: String,  safeAreaInsetBottom: {    type: Boolean,    default: true  },  decimalLength: {    type: [Number, String],    default: 2  },  currency: {    type: String,    default: '¥'  },  buttonType: {    type: String,    default: 'danger'  }};export default createComponent(SubmitBar);
 |