12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import { defineComponent, createVNode as _createVNode } from "vue";
- import { isDef, truthProp, makeArrayProp, makeStringProp, createNamespace } from "../utils/index.mjs";
- import { Cell } from "../cell/index.mjs";
- const [name, bem, t] = createNamespace("coupon-cell");
- const couponCellProps = {
- title: String,
- border: truthProp,
- editable: truthProp,
- coupons: makeArrayProp(),
- currency: makeStringProp("\xA5"),
- chosenCoupon: {
- type: [Number, Array],
- default: -1
- }
- };
- const getValue = (coupon) => {
- const {
- value,
- denominations
- } = coupon;
- if (isDef(value)) {
- return value;
- }
- if (isDef(denominations)) {
- return denominations;
- }
- return 0;
- };
- function formatValue({
- coupons,
- chosenCoupon,
- currency
- }) {
- let value = 0;
- let isExist = false;
- (Array.isArray(chosenCoupon) ? chosenCoupon : [chosenCoupon]).forEach((i) => {
- const coupon = coupons[+i];
- if (coupon) {
- isExist = true;
- value += getValue(coupon);
- }
- });
- if (isExist) {
- return `-${currency} ${(value / 100).toFixed(2)}`;
- }
- return coupons.length === 0 ? t("noCoupon") : t("count", coupons.length);
- }
- var stdin_default = defineComponent({
- name,
- props: couponCellProps,
- setup(props) {
- return () => {
- const selected = Array.isArray(props.chosenCoupon) ? props.chosenCoupon.length : props.coupons[+props.chosenCoupon];
- return _createVNode(Cell, {
- "class": bem(),
- "value": formatValue(props),
- "title": props.title || t("title"),
- "border": props.border,
- "isLink": props.editable,
- "valueClass": bem("value", {
- selected
- })
- }, null);
- };
- }
- });
- export {
- couponCellProps,
- stdin_default as default
- };
|