12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- import _mergeJSXProps from "@vue/babel-helper-vue-jsx-merge-props";
- // Utils
- import { createNamespace, isDef } from '../utils';
- import { inherit } from '../utils/functional'; // Components
- import Cell from '../cell'; // Types
- var _createNamespace = createNamespace('coupon-cell'),
- createComponent = _createNamespace[0],
- bem = _createNamespace[1],
- t = _createNamespace[2];
- function formatValue(props) {
- var coupons = props.coupons,
- chosenCoupon = props.chosenCoupon,
- currency = props.currency;
- var coupon = coupons[+chosenCoupon];
- if (coupon) {
- var value = 0;
- if (isDef(coupon.value)) {
- value = coupon.value;
- } else if (isDef(coupon.denominations)) {
- value = coupon.denominations;
- }
- return "-" + currency + " " + (value / 100).toFixed(2);
- }
- return coupons.length === 0 ? t('tips') : t('count', coupons.length);
- }
- function CouponCell(h, props, slots, ctx) {
- var selected = props.coupons[+props.chosenCoupon];
- var value = formatValue(props);
- return h(Cell, _mergeJSXProps([{
- "class": bem(),
- "attrs": {
- "value": value,
- "title": props.title || t('title'),
- "border": props.border,
- "isLink": props.editable,
- "valueClass": bem('value', {
- selected: selected
- })
- }
- }, inherit(ctx, true)]));
- }
- CouponCell.model = {
- prop: 'chosenCoupon'
- };
- CouponCell.props = {
- title: String,
- coupons: {
- type: Array,
- default: function _default() {
- return [];
- }
- },
- currency: {
- type: String,
- default: '¥'
- },
- border: {
- type: Boolean,
- default: true
- },
- editable: {
- type: Boolean,
- default: true
- },
- chosenCoupon: {
- type: [Number, String],
- default: -1
- }
- };
- export default createComponent(CouponCell);
|