@antmjs/vantui
Version:
一套适用于Taro3及React的vantui组件库
140 lines • 6.39 kB
JavaScript
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
var _excluded = ["tag", "num", "desc", "thumb", "title", "price", "centered", "lazyLoad", "thumbLink", "originPrice", "thumbMode", "currency", "renderFooter", "renderBottom", "renderNum", "renderOriginPrice", "renderPriceTop", "renderThumb", "renderPrice", "renderDesc", "renderTag", "renderTitle", "renderTags", "style", "className"];
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
import { View, Text, Image } from '@tarojs/components';
import { useEffect, useState } from 'react';
import * as utils from '../wxs/utils';
import { jumpLink } from '../common/jumpLink';
import { Tag } from '../tag';
import { get } from '../default-props';
import { jsx as _jsx } from "react/jsx-runtime";
import { jsxs as _jsxs } from "react/jsx-runtime";
var d = get().Card || {};
export function Card(props) {
var _d$props = _objectSpread(_objectSpread({}, d), props),
tag = _d$props.tag,
num = _d$props.num,
desc = _d$props.desc,
thumb = _d$props.thumb,
title = _d$props.title,
price = _d$props.price,
centered = _d$props.centered,
lazyLoad = _d$props.lazyLoad,
thumbLink = _d$props.thumbLink,
originPrice = _d$props.originPrice,
_d$props$thumbMode = _d$props.thumbMode,
thumbMode = _d$props$thumbMode === void 0 ? 'aspectFit' : _d$props$thumbMode,
_d$props$currency = _d$props.currency,
currency = _d$props$currency === void 0 ? '¥' : _d$props$currency,
renderFooter = _d$props.renderFooter,
renderBottom = _d$props.renderBottom,
renderNum = _d$props.renderNum,
renderOriginPrice = _d$props.renderOriginPrice,
renderPriceTop = _d$props.renderPriceTop,
renderThumb = _d$props.renderThumb,
renderPrice = _d$props.renderPrice,
renderDesc = _d$props.renderDesc,
renderTag = _d$props.renderTag,
renderTitle = _d$props.renderTitle,
renderTags = _d$props.renderTags,
style = _d$props.style,
className = _d$props.className,
others = _objectWithoutProperties(_d$props, _excluded);
var _useState = useState({
integerStr: '',
decimalStr: ''
}),
_useState2 = _slicedToArray(_useState, 2),
state = _useState2[0],
setState = _useState2[1];
var integerStr = state.integerStr,
decimalStr = state.decimalStr;
useEffect(function () {
var priceArr = price.toString().split('.');
setState(function (pre) {
return _objectSpread(_objectSpread({}, pre), {}, {
integerStr: priceArr[0],
decimalStr: priceArr[1] ? ".".concat(priceArr[1]) : ''
});
});
}, [price]);
return /*#__PURE__*/_jsxs(View, _objectSpread(_objectSpread({
className: "van-card ".concat(className || ''),
style: style
}, others), {}, {
children: [/*#__PURE__*/_jsxs(View, {
className: utils.bem('card__header', {
center: centered
}),
children: [/*#__PURE__*/_jsxs(View, {
className: "van-card__thumb",
onClick: function onClick() {
thumbLink && jumpLink(thumbLink);
},
children: [thumb ? /*#__PURE__*/_jsx(Image, {
src: thumb,
mode: thumbMode,
lazyLoad: lazyLoad,
className: "van-card__img thumb-class"
}) : renderThumb, /*#__PURE__*/_jsx(View, {
children: tag ? /*#__PURE__*/_jsx(Tag, {
mark: true,
type: "danger",
className: "van-card__tag",
children: tag
}) : renderTag
})]
}), /*#__PURE__*/_jsxs(View, {
className: 'van-card__content ' + utils.bem('card__content', {
center: centered
}),
children: [/*#__PURE__*/_jsxs(View, {
children: [/*#__PURE__*/_jsx(View, {
children: title ? /*#__PURE__*/_jsx(View, {
className: "van-card__title title-class",
children: title
}) : renderTitle
}), /*#__PURE__*/_jsx(View, {
children: desc ? /*#__PURE__*/_jsx(View, {
className: "van-card__desc desc-class",
children: desc
}) : renderDesc
}), renderTags]
}), /*#__PURE__*/_jsxs(View, {
className: "van-card__bottom",
children: [renderPriceTop, /*#__PURE__*/_jsx(View, {
children: price ? /*#__PURE__*/_jsxs(View, {
className: "van-card__price price-class",
children: [/*#__PURE__*/_jsx(Text, {
children: currency
}), /*#__PURE__*/_jsx(Text, {
className: "van-card__price-integer",
children: integerStr
}), /*#__PURE__*/_jsx(Text, {
className: "van-card__price-decimal",
children: decimalStr
})]
}) : renderPrice
}), /*#__PURE__*/_jsx(View, {
children: originPrice ? /*#__PURE__*/_jsx(View, {
className: "van-card__origin-price origin-price-class",
children: currency + ' ' + originPrice
}) : renderOriginPrice
}), /*#__PURE__*/_jsx(View, {
children: num ? /*#__PURE__*/_jsx(View, {
className: "van-card__num num-class",
children: 'x ' + num
}) : renderNum
}), renderBottom]
})]
})]
}), /*#__PURE__*/_jsx(View, {
className: "van-card__footer",
children: renderFooter
})]
}));
}
export default Card;