232 lines
8.7 KiB
JavaScript
232 lines
8.7 KiB
JavaScript
|
"use strict";
|
||
|
var __async = (__this, __arguments, generator) => {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
var fulfilled = (value) => {
|
||
|
try {
|
||
|
step(generator.next(value));
|
||
|
} catch (e) {
|
||
|
reject(e);
|
||
|
}
|
||
|
};
|
||
|
var rejected = (value) => {
|
||
|
try {
|
||
|
step(generator.throw(value));
|
||
|
} catch (e) {
|
||
|
reject(e);
|
||
|
}
|
||
|
};
|
||
|
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
||
|
step((generator = generator.apply(__this, __arguments)).next());
|
||
|
});
|
||
|
};
|
||
|
const common_vendor = require("../../../common/vendor.js");
|
||
|
const sheep_index = require("../../index.js");
|
||
|
const sheep_api_product_spu = require("../../api/product/spu.js");
|
||
|
if (!Array) {
|
||
|
const _easycom_s_goods_column2 = common_vendor.resolveComponent("s-goods-column");
|
||
|
_easycom_s_goods_column2();
|
||
|
}
|
||
|
const _easycom_s_goods_column = () => "../s-goods-column/s-goods-column.js";
|
||
|
if (!Math) {
|
||
|
_easycom_s_goods_column();
|
||
|
}
|
||
|
const _sfc_main = {
|
||
|
__name: "s-goods-card",
|
||
|
props: {
|
||
|
data: {
|
||
|
type: Object,
|
||
|
default() {
|
||
|
}
|
||
|
},
|
||
|
styles: {
|
||
|
type: Object,
|
||
|
default() {
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
setup(__props) {
|
||
|
var _a, _b;
|
||
|
const LayoutTypeEnum = {
|
||
|
// 单列大图
|
||
|
ONE_COL_BIG_IMG: "oneColBigImg",
|
||
|
// 双列
|
||
|
TWO_COL: "twoCol",
|
||
|
// 单列小图
|
||
|
ONE_COL_SMALL_IMG: "oneColSmallImg"
|
||
|
};
|
||
|
const state = common_vendor.reactive({
|
||
|
goodsList: [],
|
||
|
leftGoodsList: [],
|
||
|
rightGoodsList: []
|
||
|
});
|
||
|
const props = __props;
|
||
|
const { layoutType, btnBuy, spuIds } = (_a = props.data) != null ? _a : {};
|
||
|
const { marginLeft, marginRight } = (_b = props.styles) != null ? _b : {};
|
||
|
const buyStyle = common_vendor.computed(() => {
|
||
|
if (btnBuy.type === "text") {
|
||
|
return {
|
||
|
background: `linear-gradient(to right, ${btnBuy.bgBeginColor}, ${btnBuy.bgEndColor})`
|
||
|
};
|
||
|
}
|
||
|
if (btnBuy.type === "img") {
|
||
|
return {
|
||
|
width: "54rpx",
|
||
|
height: "54rpx",
|
||
|
background: `url(${sheep_index.sheep.$url.cdn(btnBuy.imgUrl)}) no-repeat`,
|
||
|
backgroundSize: "100% 100%"
|
||
|
};
|
||
|
}
|
||
|
});
|
||
|
let count = 0;
|
||
|
let leftHeight = 0;
|
||
|
let rightHeight = 0;
|
||
|
function calculateGoodsColumn(height = 0, where = "left") {
|
||
|
if (!state.goodsList[count])
|
||
|
return;
|
||
|
if (where === "left")
|
||
|
leftHeight += height;
|
||
|
if (where === "right")
|
||
|
rightHeight += height;
|
||
|
if (leftHeight <= rightHeight) {
|
||
|
state.leftGoodsList.push(state.goodsList[count]);
|
||
|
} else {
|
||
|
state.rightGoodsList.push(state.goodsList[count]);
|
||
|
}
|
||
|
count++;
|
||
|
}
|
||
|
function getGoodsListByIds(ids) {
|
||
|
return __async(this, null, function* () {
|
||
|
const { data } = yield sheep_api_product_spu.SpuApi.getSpuListByIds(ids);
|
||
|
return data;
|
||
|
});
|
||
|
}
|
||
|
common_vendor.onMounted(() => __async(this, null, function* () {
|
||
|
state.goodsList = yield getGoodsListByIds(spuIds.join(","));
|
||
|
if (layoutType === LayoutTypeEnum.TWO_COL) {
|
||
|
calculateGoodsColumn();
|
||
|
}
|
||
|
}));
|
||
|
return (_ctx, _cache) => {
|
||
|
return common_vendor.e({
|
||
|
a: common_vendor.unref(layoutType) === LayoutTypeEnum.ONE_COL_BIG_IMG && state.goodsList.length
|
||
|
}, common_vendor.unref(layoutType) === LayoutTypeEnum.ONE_COL_BIG_IMG && state.goodsList.length ? {
|
||
|
b: common_vendor.f(state.goodsList, (item, k0, i0) => {
|
||
|
var _a2;
|
||
|
return {
|
||
|
a: common_vendor.o(($event) => common_vendor.unref(sheep_index.sheep).$router.go("/modules/mall/goods/index", {
|
||
|
id: item.id
|
||
|
}), item.id),
|
||
|
b: "d21c0114-0-" + i0,
|
||
|
c: common_vendor.p({
|
||
|
size: "sl",
|
||
|
goodsFields: __props.data.fields,
|
||
|
tagStyle: __props.data.badge,
|
||
|
data: item,
|
||
|
titleColor: (_a2 = __props.data.fields.name) == null ? void 0 : _a2.color,
|
||
|
subTitleColor: __props.data.fields.introduction.color,
|
||
|
topRadius: __props.data.borderRadiusTop,
|
||
|
bottomRadius: __props.data.borderRadiusBottom
|
||
|
}),
|
||
|
d: item.id
|
||
|
};
|
||
|
}),
|
||
|
c: common_vendor.t(common_vendor.unref(btnBuy).type === "text" ? common_vendor.unref(btnBuy).text : ""),
|
||
|
d: common_vendor.s(buyStyle.value),
|
||
|
e: common_vendor.s({
|
||
|
marginBottom: __props.data.space * 2 + "rpx"
|
||
|
})
|
||
|
} : {}, {
|
||
|
f: common_vendor.unref(layoutType) === LayoutTypeEnum.TWO_COL && state.goodsList.length
|
||
|
}, common_vendor.unref(layoutType) === LayoutTypeEnum.TWO_COL && state.goodsList.length ? {
|
||
|
g: common_vendor.f(state.leftGoodsList, (item, k0, i0) => {
|
||
|
var _a2;
|
||
|
return {
|
||
|
a: common_vendor.o(($event) => common_vendor.unref(sheep_index.sheep).$router.go("/modules/mall/goods/index", {
|
||
|
id: item.id
|
||
|
}), item.id),
|
||
|
b: common_vendor.o(($event) => calculateGoodsColumn($event, "left"), item.id),
|
||
|
c: "d21c0114-1-" + i0,
|
||
|
d: common_vendor.p({
|
||
|
size: "md",
|
||
|
goodsFields: __props.data.fields,
|
||
|
tagStyle: __props.data.badge,
|
||
|
data: item,
|
||
|
titleColor: (_a2 = __props.data.fields.name) == null ? void 0 : _a2.color,
|
||
|
subTitleColor: __props.data.fields.introduction.color,
|
||
|
topRadius: __props.data.borderRadiusTop,
|
||
|
bottomRadius: __props.data.borderRadiusBottom,
|
||
|
titleWidth: 330 - common_vendor.unref(marginLeft) - common_vendor.unref(marginRight)
|
||
|
}),
|
||
|
e: item.id
|
||
|
};
|
||
|
}),
|
||
|
h: common_vendor.t(common_vendor.unref(btnBuy).type === "text" ? common_vendor.unref(btnBuy).text : ""),
|
||
|
i: common_vendor.s(buyStyle.value),
|
||
|
j: common_vendor.s({
|
||
|
paddingRight: __props.data.space + "rpx",
|
||
|
marginBottom: __props.data.space + "px"
|
||
|
}),
|
||
|
k: common_vendor.f(state.rightGoodsList, (item, k0, i0) => {
|
||
|
var _a2;
|
||
|
return {
|
||
|
a: common_vendor.o(($event) => common_vendor.unref(sheep_index.sheep).$router.go("/modules/mall/goods/index", {
|
||
|
id: item.id
|
||
|
}), item.id),
|
||
|
b: common_vendor.o(($event) => calculateGoodsColumn($event, "right"), item.id),
|
||
|
c: "d21c0114-2-" + i0,
|
||
|
d: common_vendor.p({
|
||
|
size: "md",
|
||
|
goodsFields: __props.data.fields,
|
||
|
tagStyle: __props.data.badge,
|
||
|
data: item,
|
||
|
titleColor: (_a2 = __props.data.fields.name) == null ? void 0 : _a2.color,
|
||
|
subTitleColor: __props.data.fields.introduction.color,
|
||
|
topRadius: __props.data.borderRadiusTop,
|
||
|
bottomRadius: __props.data.borderRadiusBottom,
|
||
|
titleWidth: 330 - common_vendor.unref(marginLeft) - common_vendor.unref(marginRight)
|
||
|
}),
|
||
|
e: item.id
|
||
|
};
|
||
|
}),
|
||
|
l: common_vendor.t(common_vendor.unref(btnBuy).type === "text" ? common_vendor.unref(btnBuy).text : ""),
|
||
|
m: common_vendor.s(buyStyle.value),
|
||
|
n: common_vendor.s({
|
||
|
paddingLeft: __props.data.space + "rpx",
|
||
|
marginBottom: __props.data.space + "px"
|
||
|
})
|
||
|
} : {}, {
|
||
|
o: common_vendor.unref(layoutType) === LayoutTypeEnum.ONE_COL_SMALL_IMG && state.goodsList.length
|
||
|
}, common_vendor.unref(layoutType) === LayoutTypeEnum.ONE_COL_SMALL_IMG && state.goodsList.length ? {
|
||
|
p: common_vendor.f(state.goodsList, (item, k0, i0) => {
|
||
|
var _a2;
|
||
|
return {
|
||
|
a: common_vendor.o(($event) => common_vendor.unref(sheep_index.sheep).$router.go("/modules/mall/goods/index", {
|
||
|
id: item.id
|
||
|
}), item.id),
|
||
|
b: "d21c0114-3-" + i0,
|
||
|
c: common_vendor.p({
|
||
|
size: "lg",
|
||
|
goodsFields: __props.data.fields,
|
||
|
data: item,
|
||
|
tagStyle: __props.data.badge,
|
||
|
titleColor: (_a2 = __props.data.fields.name) == null ? void 0 : _a2.color,
|
||
|
subTitleColor: __props.data.fields.introduction.color,
|
||
|
topRadius: __props.data.borderRadiusTop,
|
||
|
bottomRadius: __props.data.borderRadiusBottom
|
||
|
}),
|
||
|
d: item.id
|
||
|
};
|
||
|
}),
|
||
|
q: common_vendor.t(common_vendor.unref(btnBuy).type === "text" ? common_vendor.unref(btnBuy).text : ""),
|
||
|
r: common_vendor.s(buyStyle.value),
|
||
|
s: common_vendor.s({
|
||
|
marginBottom: __props.data.space + "px"
|
||
|
})
|
||
|
} : {});
|
||
|
};
|
||
|
}
|
||
|
};
|
||
|
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-d21c0114"]]);
|
||
|
wx.createComponent(Component);
|
||
|
//# sourceMappingURL=s-goods-card.js.map
|