| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import _mergeJSXProps from "@vue/babel-helper-vue-jsx-merge-props";
- import { use } from '../../utils';
- import { inherit } from '../../utils/functional';
- import Icon from '../../icon'; // Types
- var _use = use('sku-header'),
- sfc = _use[0],
- bem = _use[1];
- function getSkuImg(sku, selectedSku) {
- var id = selectedSku.s1;
- if (id) {
- // skuImg 挂载在 skuTree 中 s1 上
- var treeItem = sku.tree.filter(function (item) {
- return item.k_s === 's1';
- })[0] || {};
- if (treeItem.v) {
- var matchedSku = treeItem.v.filter(function (skuValue) {
- return skuValue.id === id;
- })[0];
- if (matchedSku) {
- return matchedSku.imgUrl || matchedSku.img_url;
- }
- }
- }
- }
- function SkuHeader(h, props, slots, ctx) {
- var sku = props.sku,
- goods = props.goods,
- skuEventBus = props.skuEventBus,
- selectedSku = props.selectedSku;
- var goodsImg = getSkuImg(sku, selectedSku) || goods.picture;
- var previewImage = function previewImage() {
- skuEventBus.$emit('sku:previewImage', goodsImg);
- };
- return h("div", _mergeJSXProps([{
- "class": [bem(), 'van-hairline--bottom']
- }, inherit(ctx)]), [h("div", {
- "class": bem('img-wrap'),
- "on": {
- "click": previewImage
- }
- }, [h("img", {
- "attrs": {
- "src": goodsImg
- }
- })]), h("div", {
- "class": bem('goods-info')
- }, [h("div", {
- "class": "van-sku__goods-name van-ellipsis"
- }, [goods.title]), slots["default"] && slots["default"](), h(Icon, {
- "attrs": {
- "name": "close"
- },
- "class": "van-sku__close-icon",
- "on": {
- "click": function click() {
- skuEventBus.$emit('sku:close');
- }
- }
- })])]);
- }
- SkuHeader.props = {
- sku: Object,
- goods: Object,
- skuEventBus: Object,
- selectedSku: Object
- };
- export default sfc(SkuHeader);
|