chore:加购商品时购物车出现在页面下面
This commit is contained in:
@@ -559,12 +559,13 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
// 后台新增开关:加购按钮;未下发时兼容旧字段 quickBuy
|
// 后台新增开关:加购按钮
|
||||||
|
// 后台开启就显示, 关闭就不显示; 未下发新字段时兼容旧字段 quickBuy
|
||||||
showAddCart() {
|
showAddCart() {
|
||||||
const v = this.value;
|
const t = this.getDiyToggle(['showAddCart', 'show_add_cart']);
|
||||||
if (v.showAddCart !== undefined) return v.showAddCart;
|
if (t !== undefined) return t;
|
||||||
if (v.show_add_cart !== undefined) return v.show_add_cart;
|
const legacy = this.getDiyToggle(['quickBuy', 'quick_buy']);
|
||||||
return v.quickBuy;
|
return legacy !== undefined ? legacy : false;
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* 当前分类层级 (参考 template 2 的 goodsLevel 模式)
|
* 当前分类层级 (参考 template 2 的 goodsLevel 模式)
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<view data-component-name="diy-category" :class="['category-page-wrap', 'category-template-' + value.template]"
|
<view data-component-name="diy-category" :class="['category-page-wrap', 'category-template-' + value.template]"
|
||||||
:style="{ height: 'calc(100vh - ' + tabBarHeight + ')' }">
|
:style="{ height: 'calc(100vh - var(--window-top, 0px) - ' + tabBarHeight + ')' }">
|
||||||
|
<!-- 高度说明: 100vh - H5顶部导航栏(--window-top, 小程序为0) - 底部导航高度(tabBarHeight),
|
||||||
|
保证底部购物车结算栏始终落在可视区内, 点击加购后无需向下翻即可看到 -->
|
||||||
<!-- 模板4: 顶部搜索框(图片样式) -->
|
<!-- 模板4: 顶部搜索框(图片样式) -->
|
||||||
<view class="search-box search-box-template-4" v-if="value.template == 4 && value.search"
|
<view class="search-box search-box-template-4" v-if="value.template == 4 && value.search"
|
||||||
@tap.stop="onClickSearch()">
|
@tap.stop="onClickSearch()">
|
||||||
@@ -324,18 +326,19 @@ export default {
|
|||||||
let money = parseFloat(this.cartMoney).toFixed(2);
|
let money = parseFloat(this.cartMoney).toFixed(2);
|
||||||
return money.split('.');
|
return money.split('.');
|
||||||
},
|
},
|
||||||
// 后台新增开关:显示购物车及结算按钮 / 加购按钮;未下发时兼容旧字段 quickBuy
|
// 后台新增开关:快捷购买(显示购物车及结算按钮) / 加购按钮
|
||||||
|
// 后台开启哪个就显示哪个, 关闭哪个就不显示哪个; 未下发新字段时兼容旧字段 quickBuy
|
||||||
showCartSettlement() {
|
showCartSettlement() {
|
||||||
const v = this.value;
|
const t = this.getDiyToggle(['showCartSettlement', 'show_cart_settlement']);
|
||||||
if (v.showCartSettlement !== undefined) return v.showCartSettlement;
|
if (t !== undefined) return t;
|
||||||
if (v.show_cart_settlement !== undefined) return v.show_cart_settlement;
|
const legacy = this.getDiyToggle(['quickBuy', 'quick_buy']);
|
||||||
return v.quickBuy;
|
return legacy !== undefined ? legacy : false;
|
||||||
},
|
},
|
||||||
showAddCart() {
|
showAddCart() {
|
||||||
const v = this.value;
|
const t = this.getDiyToggle(['showAddCart', 'show_add_cart']);
|
||||||
if (v.showAddCart !== undefined) return v.showAddCart;
|
if (t !== undefined) return t;
|
||||||
if (v.show_add_cart !== undefined) return v.show_add_cart;
|
const legacy = this.getDiyToggle(['quickBuy', 'quick_buy']);
|
||||||
return v.quickBuy;
|
return legacy !== undefined ? legacy : false;
|
||||||
},
|
},
|
||||||
// 转换字符数值为真正的数值
|
// 转换字符数值为真正的数值
|
||||||
navbarHeight() {
|
navbarHeight() {
|
||||||
|
|||||||
@@ -1,5 +1,22 @@
|
|||||||
export default {
|
export default {
|
||||||
methods: {
|
methods: {
|
||||||
|
/**
|
||||||
|
* 读取后台装修下发的布尔开关
|
||||||
|
* 依次取 names 中的字段, 兼容 1/0、"1"/"0"、true/false、"true"/"false" 等值类型
|
||||||
|
* 命中返回 true/false; 所有字段都未下发时返回 undefined (由调用方决定兜底)
|
||||||
|
*/
|
||||||
|
getDiyToggle(names) {
|
||||||
|
const v = this.value || {};
|
||||||
|
for (let i = 0; i < names.length; i++) {
|
||||||
|
const val = v[names[i]];
|
||||||
|
if (val === undefined || val === null || val === '') continue;
|
||||||
|
if (val === true || val === 1 || val === '1' || val === 'true') return true;
|
||||||
|
if (val === false || val === 0 || val === '0' || val === 'false') return false;
|
||||||
|
return !!val;
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
},
|
||||||
|
|
||||||
// 异步触发事件
|
// 异步触发事件
|
||||||
async __$emitEvent(payload = {eventName: '__unnamedEvent', data: {}, promiseCallback: null}) {
|
async __$emitEvent(payload = {eventName: '__unnamedEvent', data: {}, promiseCallback: null}) {
|
||||||
await this.$eventBus.emit(payload.eventName, payload.data, payload.promiseCallback)
|
await this.$eventBus.emit(payload.eventName, payload.data, payload.promiseCallback)
|
||||||
|
|||||||
Reference in New Issue
Block a user