captain-ui
Version:
有赞vue wap业务组件库
100 lines (92 loc) • 3.35 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _helper = _interopRequireDefault(require("@youzan/utils/url/helper"));
var _constants = require("./constants");
var _default = {
render: function render() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c('a', {
staticClass: "paid-column__item",
attrs: {
"href": _vm.columnUrl
}
}, [_c('div', {
staticClass: "paid-column__img-wrap"
}, [_c('img', {
staticClass: "paid-column__item-img",
attrs: {
"src": _vm.imgUrl
}
})]), _c('div', {
staticClass: "paid-column__item-detail"
}, [_c('h4', {
staticClass: "paid-column__item-title"
}, [_vm._v(_vm._s(_vm.title))]), _c('p', {
staticClass: "paid-column__item-summary"
}, [_vm._v(_vm._s(_vm.summary))]), _c('p', {
staticClass: "paid-column__subscription"
}, [_c('span', [_vm._v("已更新" + _vm._s(_vm.contentsCount) + "期")]), _vm.subscriptionsCount ? _c('span', {
staticClass: "paid-column__subscription-divider"
}, [_vm._v("\n |\n ")]) : _vm._e(), _vm.subscriptionsCount ? _c('span', [_vm._v(_vm._s(_vm.subscriptionsCount) + "人已购")]) : _vm._e()]), _vm.hasBuy ? _c('span', {
staticClass: "paid-column__price",
class: {
'paid-column__price--purchased': _vm.hasBuy
}
}, [_vm._v("\n 已购买\n ")]) : _vm.isColumnFree ? _c('span', {
staticClass: "paid-column__price"
}, [_vm._v("\n " + _vm._s(_vm.freeText) + "\n ")]) : [_c('span', {
staticClass: "paid-column__price"
}, [_vm._v("¥ " + _vm._s(_vm.formatedPrice))]), _vm.tagName ? _c('span', {
staticClass: "paid-column__vip-price-tag"
}, [_vm._v("\n " + _vm._s(_vm.tagName) + "\n "), _c('i', {
staticClass: "paid-column__vip-price-tag-triangle"
})]) : _vm._e()]], 2)]);
},
name: 'cap-paid-column-item',
props: {
title: String,
summary: String,
baseUrl: {
type: String,
default: _constants.BASE_URL
},
alias: String,
kdtId: [Number, String],
cover: String,
contentsCount: Number,
subscriptionsCount: Number,
price: [Number, String],
isFree: Boolean,
isVip: Boolean,
isGroupon: Boolean,
grouponNum: [Number, String],
discount: [Number, String],
hasBuy: Boolean
},
computed: {
columnUrl: function columnUrl() {
if (!this.kdtId || !this.alias) return 'javascript:;';
return this.baseUrl + "/ump/paidcontent?page=columnshow&alias=" + this.alias + "&kdt_id=" + this.kdtId;
},
imgUrl: function imgUrl() {
return _helper.default.getCdnImageUrl(this.cover, '!180x180.jpg');
},
isColumnFree: function isColumnFree() {
return +this.isFree === _constants.IS_FREE.FREE || parseInt(this.price) === 0;
},
formatedPrice: function formatedPrice() {
return (this.price / 100).toFixed(2);
},
freeText: function freeText() {
return this.isVip ? '会员免费' : '免费';
},
tagName: function tagName() {
return this.isVip ? '会员价' : this.isGroupon ? this.grouponNum + "\u4EBA\u62FC\u56E2\u4EF7" : '';
}
}
};
exports.default = _default;