captain-ui
Version:
有赞vue wap业务组件库
116 lines (110 loc) • 3.26 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import "vant/es/action-sheet/style";
import _ActionSheet from "vant/es/action-sheet";
import "vant/es/cell-group/style";
import _CellGroup from "vant/es/cell-group";
import "vant/es/icon/style";
import _Icon from "vant/es/icon";
var _components;
import fullfillImage from '@youzan/utils/fullfillImage';
import Card from './Card';
export default {
render: function render() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c('div', [_c('div', {
staticClass: "cap-invalid-goods",
on: {
"click": function click($event) {
_vm.showDetail = true;
}
}
}, [_c('h3', {
staticClass: "cap-invalid-goods__title"
}, [_vm._v(_vm._s(_vm.title))]), _c('van-cell-group', {
staticClass: "cap-invalid-goods__container"
}, [_c('div', {
staticClass: "cap-invalid-goods__gallery"
}, _vm._l(_vm.formattedGoods, function (item) {
return _c('div', {
key: item.sku_id,
staticClass: "cap-invalid-goods__thumb"
}, [_c('img', {
attrs: {
"src": item.url
}
}), item.is_present || item.present ? _c('span', {
staticClass: "cap-invalid-goods-card__present"
}) : _vm._e()]);
}), 0), _c('div', {
staticClass: "cap-invalid-goods__count"
}, [_c('span', [_vm._v("共" + _vm._s(_vm.formattedGoods.length) + "件")]), _c('van-icon', {
attrs: {
"name": "arrow"
}
})], 1)])], 1), _c('van-action-sheet', {
attrs: {
"title": _vm.actionsheetTitle
},
model: {
value: _vm.showDetail,
callback: function callback($$v) {
_vm.showDetail = $$v;
},
expression: "showDetail"
}
}, [_c('div', {
staticClass: "cap-invalid-goods__list"
}, _vm._l(_vm.formattedGoods, function (item) {
return _c('cap-invalid-goods-card', {
key: item.sku_id,
attrs: {
"item": item
}
});
}), 1)])], 1);
},
name: 'cap-invalid-goods',
components: (_components = {}, _components[Card.name] = Card, _components[_Icon.name] = _Icon, _components[_CellGroup.name] = _CellGroup, _components[_ActionSheet.name] = _ActionSheet, _components),
props: {
data: {
type: Array,
required: true
},
title: {
type: String,
default: '以下商品无法一起购买,点击查看原因'
},
actionsheetTitle: {
type: String,
default: '以下商品无法一起下单'
}
},
data: function data() {
return {
showDetail: false
};
},
computed: {
formattedGoods: function formattedGoods() {
var _this = this;
return this.data.map(function (item) {
return _extends({}, item, {
url: fullfillImage(item.img_url, '!180x180.jpg'),
price: parseFloat(item.price / 100, 10).toFixed(2),
sku: _this.getSkuStr(item.sku)
});
});
}
},
methods: {
getSkuStr: function getSkuStr(arr) {
return Array.isArray(arr) ? arr.filter(function (item) {
return item.v;
}).map(function (item) {
return item.v;
}).join(', ') : '';
}
}
};