You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

1316 lines
32 KiB

<template>
<!-- 商品分类第三种布局样式 -->
<view class="goodCate acea-row row-column">
<view class="mp-header">
<view class="sys-head" :style="{ height: sysHeight }"></view>
<view class="serch-box" style="height: 43px;">
<view class="serch-wrapper acea-row row-middle">
<navigator url="/pages/goods/goods_search/index" class="input acea-row row-middle" hover-class="none">
<text class="iconfont icon-ic_search"></text>
搜索商品信息
</navigator>
</view>
</view>
</view>
<view class="mendianbox">
<view class="mendianbox1">
<view class="title">{{info.name}}</view>
<view class="title1">{{info.qrcode_id}}号桌</view>
</view>
<view class="mendianbox2">
<view class="title">营业时间{{info.day_end}}-{{info.day_start}}</view>
<view class="title1">
<text class="iconfont icon-ic_location1" style="padding-right: 61rpx;"></text>
<text class="iconfont icon-ic_Phone"></text>
</view>
</view>
<view class="mendianbox3">
<view class="title">距您{{address.distance}}km | {{address.address}}</view>
<view class="title1">
<text style="padding-right: 36rpx;">地图</text>
<text >客服</text>
</view>
</view>
</view>
<view class="conter acea-row">
<scroll-view scroll-y="true" class="aside">
<view class='item acea-row row-center-wrapper' :class='index==navActive?"on":""' v-for="(item,index) in categoryList" :key="index" @click="tapNav(index,item)">
<text>{{item.cate_name}}</text>
</view>
<view class="safe-area-inset-bottom"></view>
</scroll-view>
<view class="wrapper acea-row row-column">
<!-- <view class="bgcolor acea-row">
<view class="longTab acea-row row-middle">
<scroll-view scroll-x="true" style="white-space: nowrap;" scroll-with-animation :scroll-left="tabLeft" show-scrollbar="true">
<view class="longItem" :style='"width:"+isWidth+"px"' :class="index===tabClick?'click':''" v-for="(item,index) in categoryErList" :key="index" @click="longClick(index)">
<view class="inner">{{item.cate_name}}</view>
</view>
</scroll-view>
</view>
<view class="openList">
<view class="btn" @click="openTap">
<text class="iconfont icon-ic_downarrow"></text>
</view>
</view>
</view> -->
<scroll-view scroll-y="true" class="goodsListWrap" @scroll="goodsListScroll" @scrolltolower="getProducts">
<!--商品列表 -->
<goodClass :tempArr="tempArr" :isLogin="isLogin" @gocartduo="goCartDuo" @gocartdan="goCartDan" @ChangeCartNumDan="ChangeCartNumDan"></goodClass>
<view class='loadingicon acea-row row-center-wrapper'>
<text class='loading iconfont icon-jiazai' :hidden='loading==false'></text>{{loadTitle}}
</view>
<view class="safe-area-inset-bottom"></view>
</scroll-view>
</view>
</view>
<view class="footer">
<view class="inner-box" :class="{ open: footerOpen }">
<view class="inner acea-row row-between row-middle">
<BaseMoney :money="totalPrice" symbolSize="32" integerSize="48" decimalSize="32" color="#D64D22"></BaseMoney>
<view class="btn" @click="subOrder">去下单({{cartNum}})</view>
</view>
</view>
<view class="cartIcon" @click="getCartLists">
<uni-badge :text="cartNum" absolute="rightTop" :offset="[6, 4]" :custom-style="{background: '#D64D22'}">
<view class="image-wrap">
<image src="@/static/img/flgwc.png" class="image"></image>
</view>
</uni-badge>
</view>
</view>
<!-- 分类购物车下拉列表 -->
<cartList :cartNums="cartNum" :cartData="cartData" @closeList="closeList" @ChangeCartNumDan="ChangeCartList" @ChangeSubDel="ChangeSubDel" @ChangeOneDel="ChangeOneDel"></cartList>
<!-- 产品属性组件 -->
<productWindow :attr="attr" :isShow='1' :iSplus='1' :iScart='1' :type="2" @myevent="onMyEvent" @ChangeAttr="ChangeAttr" @ChangeCartNum="ChangeCartNumDuo" @attrVal="attrVal"
@iptCartNum="iptCartNum" @goCat="goCatNum" :is_vip="is_vip" id='product-window'></productWindow>
<!-- 筛选 -->
<view v-if="!iSlong">
<view class="downTab acea-row row-column">
<view :style="{height:getHeight.barTop+'px'}"></view>
<view :style="{height:getHeight.barHeight+'px'}"></view>
<view class="title">{{categoryTitle}}</view>
<scroll-view scroll-y="true" class="scroll-view">
<view class="children">
<view class="item line1" :class="index===tabClick?'click':''" v-for="(item,index) in categoryErList" :key="index" @click="longClick(index)">
<view class="inner">{{item.cate_name}}</view>
</view>
</view>
</scroll-view>
<view class="closeList" @click="closeTap">
点击收起<text class="iconfont icon-ic_uparrow"></text>
</view>
</view>
<view class="mask" @click="closeTap"></view>
</view>
</view>
</template>
<script>
let sysHeight = uni.getSystemInfoSync().statusBarHeight + 'px';
import {
cartDel
} from '@/api/order.js';
import {
getCategoryList,
getAttr,
postCartNum,
getCartCount,
getCateList,
addTableCate,
placeOrder,
emptyTableData,
} from '@/api/store.js';
import {
getProducts,
getCustomerList,
getStoreCategory,
getStoreBrand,
getnearbyStore,
storegetProducts
} from '@/api/new_store.js';
import productWindow from '@/components/productWindow/index';
import goodClass from '@/components/goodClass';
import cartList from '@/components/cartList';
import {
mapState,
mapGetters
} from 'vuex';
import {
goShopDetail
} from '@/libs/order.js';
import {
toLogin
} from '@/libs/login.js';
export default {
computed: {
...mapGetters(['isLogin', 'uid'])
},
components: {
productWindow,
goodClass,
cartList
},
props: {
info: {
type: Object,
default: {}
},
pageVisible: {
type: Boolean,
default: true
}
},
data() {
return {
getHeight: this.$util.getWXStatusHeight(),
switchNum: 1,
sysHeight: sysHeight,
categoryList: [],
navActive: 0,
categoryTitle: '',
categoryErList: [],
tabLeft: 0,
isWidth: 0, //每个导航栏占位
tabClick: 0, //导航栏被点击
iSlong: true,
tempArr: [],
loading: false,
loadend: false,
loadTitle: '加载更多',
page: 1,
limit: 10,
cid: 0, //一级分类
sid: 0, //二级分类
delivery_type: 3, // 配送方式
isAuto: false, //没有授权的不会自动授权
isShowAuth: false, //是否隐藏授权
attr: {
cartAttr: false,
productAttr: [],
productSelect: {}
},
productValue: [],
attrValue: '', //已选属性
storeName: '', //多属性产品名称
id: 0,
cartData: {
cartList: [],
iScart: false
},
totalPrice: 0.00,
lengthCart: 0,
is_vip: 0, //是否是会员
cart_num: 0,
storeInfo: {},
cartNum: 0,
footerOpen: false,
address:{}
}
},
watch: {
pageVisible(value) {
if (value) {
return;
}
if (!this.timer || this.timer.constructor.name != 'Object') {
return;
}
Object.values(this.timer).forEach(this.clearTimer);
},
info: {
handler(value) {
if (!value.store_id || !value.tableId) {
return;
}
console.log(998,this.info);
this.getCartNum();
this.getCartList(1);
this.mendiangetStoreData(value.store_id)
},
deep: true
}
},
mounted() {
let that = this;
// 获取设备宽度
uni.getSystemInfo({
success(e) {
that.isWidth = e.windowWidth / 5
}
});
},
methods: {
// 获取经纬度门店
mendiangetStoreData(store_id){
var that=this
uni.getLocation({
type: 'wgs84',
success: function (res) {
var data={
longitude:res.longitude,
latitude:res.latitude,
store_id
}
getnearbyStore(data).then(res => {
console.log(9878,res);
that.address=res.data.info
})
}
})
},
// 取消定时器
clearTimer(timerID) {
if (timerID) {
clearTimeout(timerID);
}
},
// 设置定时器
setTimer(timerID, callback) {
if (typeof callback != 'function') {
return;
}
if (!this.timer || this.timer.constructor.name != 'Object') {
this.timer = {};
}
this.clearTimer(this.timer[timerID]);
this.timer[timerID] = setTimeout(callback, 5000);
},
// 重载商品数据
reloadProducts() {
storegetProducts({
page: 1,
limit: this.tempArr.length,
type: 1,
cid: this.cid,
sid: this.sid,
store_id: this.info.id,
delivery_type: '',
collate_code_id: this.info.tableId,
}).then(res => {
this.$set(this, 'tempArr', res.data);
this.setTimer('reloadProducts', this.reloadProducts);
});
},
// 授权回调
onLoadFun() {
setTimeout(function() {
this.isShowAuth = false;
}, 10)
},
// 授权关闭
authColse: function(e) {
this.isShowAuth = e
},
updateFun(e) {
if (e.cartNum) {
this.tempArr.forEach((item) => {
if (item.id == e.id) {
item.cart_num = e.cartNum
}
})
}
},
// 商品列表
getProducts() {
let that = this;
if (that.loadend) return;
if (that.loading) return;
that.loading = true;
storegetProducts({
page: that.page,
limit: that.limit,
type: 1,
cid: that.cid,
sid: that.sid,
store_id: that.info.id,
delivery_type: '',
collate_code_id: that.info.tableId,
}).then(res => {
console.log(res, 'res')
let list = res.data,
loadend = list.length < that.limit;
that.tempArr = that.$util.SplitArray(list, that.tempArr);
that.$set(that, 'tempArr', that.tempArr);
that.loading = false;
that.loadend = loadend;
that.loadTitle = loadend ? "没有更多内容啦~" : "加载更多";
that.page = that.page + 1;
this.setTimer('reloadProducts', this.reloadProducts);
}).catch(err => {
that.loading = false;
that.loadTitle = '加载更多'
});
},
// 切换自提方式
swithFn(num) {
switch (num) {
case 1:
this.switchNum = 1
this.delivery_type = '3'
break;
case 2:
this.switchNum = 2
this.delivery_type = '2'
break;
}
this.page = 1;
this.loadend = false;
this.tempArr = []
this.getProducts()
},
// 跳转到门店列表
goMap() {
uni.navigateTo({
url: "/pages/store/store_list/index?storeFrom=1&type=1&storeId=" + this.info.id,
success(res) {
console.log('成功啦', res);
},
fail(err) {
console.log('失败啦', err);
}
})
},
// 生成订单;
subOrder: function() {
placeOrder({
tableId: this.info.tableId,
storeId: this.info.store_id,
}).then(() => {
uni.navigateTo({
url: `/pages/store/table_confirm/index?tableId=${this.info.tableId}&store_number_diners_window=${this.info.store_number_diners_window}`
});
}).catch(err => {
this.$util.Tips({
title: err
});
});
},
// 计算总价;
getTotalPrice: function() {
let that = this,
list = that.cartData.cartList,
totalPrice = 0.00;
list.forEach(item => {
if (item.attrStatus && item.status) {
totalPrice = that.$util.$h.Add(totalPrice, that.$util.$h.Mul(item.cart_num, item
.truePrice));
}
})
that.$set(that, 'totalPrice', totalPrice);
},
ChangeSubDel: function(event) {
let result = true
for (let i = 0; i < this.cartData.cartList.length; i++) {
if (this.cartData.cartList[i].is_settle) {
result = false;
break;
}
}
if(!result) {
return
}
uni.showModal({
title: '确定要清空吗?',
content: '清空后,已点的商品会被删除',
success: (res) => {
if (res.confirm) {
emptyTableData({
tableId: this.info.tableId
}).then(res => {
this.$util.Tips({
title: '清空成功'
});
this.getCartNum();
this.getCartList(1);
});
}
}
});
},
ChangeOneDel: function(id, index) {
let that = this,
list = that.cartData.cartList,
storeId = uni.getStorageSync('user_store_id');
cartDel(id.toString(), storeId).then(res => {
list.splice(index, 1);
if (!list.length) {
that.cartData.iScart = false;
that.page = 1;
that.loadend = false;
that.tempArr = [];
that.getProducts();
};
that.getCartNum();
if (!cart) {
that.getCartList(1);
}
})
},
getCartLists() {
if (this.footerOpen) {
this.getCartList();
} else {
this.footerOpen = true;
}
},
getCartList(iSshow) {
let that = this;
let {
store_id,
tableId
} = this.info;
getCateList({
store_id,
tableId
}).then(res => {
that.$set(that.cartData, 'cartList', res.data);
if (res.data.length) {
that.$set(that.cartData, 'iScart', iSshow ? false : !that.cartData.iScart);
} else {
that.$set(that.cartData, 'iScart', false);
}
that.getTotalPrice();
});
},
closeList(e) {
this.$set(this.cartData, 'iScart', e);
},
// 获取购物车商品数量
getCartNum: function() {
let {
store_id,
tableId
} = this.info;
getCartCount({
store_id,
tableId
}).then(res => {
this.cartNum = res.data.count;
this.setTimer('getCartNum', this.getCartNum);
});
},
onMyEvent: function() {
this.$set(this.attr, 'cartAttr', false);
},
/**
* 默认选中属性
*
*/
DefaultSelect: function() {
let productAttr = this.attr.productAttr;
let value = [];
for (let key in this.productValue) {
if (this.productValue[key].stock > 0) {
value = this.attr.productAttr.length ? key.split(",") : [];
break;
}
}
for (let i = 0; i < productAttr.length; i++) {
this.$set(productAttr[i], "index", value[i]);
}
//sort();排序函数:数字-英文-汉字;
let productSelect = this.productValue[value.join(",")];
if (productSelect && productAttr.length) {
this.$set(
this.attr.productSelect,
"store_name",
this.storeName
);
this.$set(this.attr.productSelect, "image", productSelect.image);
this.$set(this.attr.productSelect, "price", productSelect.price);
this.$set(this.attr.productSelect, "stock", productSelect.stock);
this.$set(this.attr.productSelect, "unique", productSelect.unique);
this.$set(this.attr.productSelect, "cart_num", 1);
this.$set(this.attr.productSelect, 'vip_price', productSelect.vip_price);
this.$set(this, "attrValue", value.join(","));
} else if (!productSelect && productAttr.length) {
this.$set(
this.attr.productSelect,
"store_name",
this.storeName
);
this.$set(this.attr.productSelect, "image", this.storeInfo.image);
this.$set(this.attr.productSelect, "price", this.storeInfo.price);
this.$set(this.attr.productSelect, "stock", 0);
this.$set(this.attr.productSelect, "unique", "");
this.$set(this.attr.productSelect, "cart_num", 0);
this.$set(this, "attrValue", "");
this.$set(this.attr.productSelect, 'vip_price', this.storeInfo.vip_price);
} else if (!productSelect && !productAttr.length) {
this.$set(
this.attr.productSelect,
"store_name",
this.storeName
);
this.$set(this.attr.productSelect, "image", this.storeInfo.image);
this.$set(this.attr.productSelect, "price", this.storeInfo.price);
this.$set(this.attr.productSelect, "stock", this.storeInfo.stock);
this.$set(
this.attr.productSelect,
"unique",
this.storeInfo.unique || ""
);
this.$set(this.attr.productSelect, "cart_num", 1);
this.$set(this, "attrValue", "");
this.$set(this.attr.productSelect, 'vip_price', this.storeInfo.vip_price);
}
},
/**
* 属性变动赋值
*
*/
ChangeAttr: function(res) {
let productSelect = this.productValue[res];
if (productSelect && productSelect.stock > 0) {
this.$set(this.attr.productSelect, "image", productSelect.image);
this.$set(this.attr.productSelect, "price", productSelect.price);
this.$set(this.attr.productSelect, "stock", productSelect.stock);
this.$set(this.attr.productSelect, "unique", productSelect.unique);
this.$set(this.attr.productSelect, 'vip_price', productSelect.vip_price);
this.$set(this.attr.productSelect, "cart_num", 1);
this.$set(this, "attrValue", res);
} else if (productSelect && productSelect.stock == 0) {
this.$set(this.attr.productSelect, "image", productSelect.image);
this.$set(this.attr.productSelect, "price", productSelect.price);
this.$set(this.attr.productSelect, "stock", 0);
this.$set(this.attr.productSelect, "unique", "");
this.$set(this.attr.productSelect, 'vip_price', productSelect.vip_price);
this.$set(this.attr.productSelect, "cart_num", 0);
this.$set(this, "attrValue", "");
} else {
this.$set(this.attr.productSelect, "image", this.storeInfo.image);
this.$set(this.attr.productSelect, "price", this.storeInfo.price);
this.$set(this.attr.productSelect, "stock", 0);
this.$set(this.attr.productSelect, "unique", "");
this.$set(this.attr.productSelect, 'vip_price', this.storeInfo.vip_price);
this.$set(this.attr.productSelect, "cart_num", 0);
this.$set(this, "attrValue", "");
}
},
attrVal(val) {
this.$set(this.attr.productAttr[val.indexw], 'index', this.attr.productAttr[val.indexw].attr_values[val
.indexn]);
},
/**
* 购物车手动填写
*
*/
iptCartNum: function(e) {
this.$set(this.attr.productSelect, 'cart_num', e);
},
// 点击默认单属性购物车
goCartDan(item, index) {
if (!this.isLogin) {
this.getIsLogin();
} else {
this.tempArr[index].cart_num = 1;
this.$set(this, 'tempArr', this.tempArr);
this.goCat(0, item.id, 1);
}
},
// 改变单属性购物车
ChangeCartNumDan(changeValue, index, item) {
let num = this.tempArr[index];
let stock = this.tempArr[index].stock;
if (!changeValue && num.is_settle) {
return
}
this.ChangeCartNum(changeValue, num, stock, 0, item.id);
},
// 改变多属性购物车
ChangeCartNumDuo(changeValue) {
//获取当前变动属性
let productSelect = this.productValue[this.attrValue];
//如果没有属性,赋值给商品默认库存
if (productSelect === undefined && !this.attr.productAttr.length)
productSelect = this.attr.productSelect;
//无属性值即库存为0;不存在加减;
if (productSelect === undefined) return;
let stock = productSelect.stock || 0;
let num = this.attr.productSelect;
this.ChangeCartNum(changeValue, num, stock, 1, this.id);
},
// 已经加入购物车时的购物加减;
ChangeCartList(changeValue, index) {
let list = this.cartData.cartList;
let num = list[index];
let stock = list[index].trueStock;
if (!changeValue && num.is_settle) {
return
}
this.ChangeCartNum(changeValue, num, stock, 0, num.product_id, index, 1);
if (!list.length) {
this.cartData.iScart = false;
this.page = 1;
this.loadend = false;
this.tempArr = [];
this.getProducts();
}
},
// 购物车加减计算函数
ChangeCartNum(changeValue, num, stock, isDuo, id, index, cart) {
if (changeValue) {
num.cart_num++;
if (num.cart_num > stock) {
if (isDuo) {
this.$set(this.attr.productSelect, "cart_num", stock ? stock : 1);
this.$set(this, "cart_num", stock ? stock : 1);
} else {
num.cart_num = stock ? stock : 0;
this.$set(this, 'tempArr', this.tempArr);
this.$set(this.cartData, 'cartList', this.cartData.cartList);
}
return this.$util.Tips({
title: "该产品没有更多库存了"
});
} else {
if (!isDuo) {
if (cart) {
this.goCat(0, id, 1, 1, num.product_attr_unique);
this.getTotalPrice();
this.tempArr.forEach((item) => {
if (item.id == id) {
item.cart_num++;
}
})
} else {
this.goCat(0, id, 1);
}
} else {
this.tempArr.forEach((item) => {
if (item.id == id) {
item.cart_num++;
}
})
}
}
} else {
num.cart_num--;
if (num.cart_num == 0) {
this.cartData.cartList.splice(index, 1);
if (isDuo) {
this.$set(this.attr.productSelect, "cart_num", 1);
this.$set(this, "cart_num", 1);
}
}
if (num.cart_num < 0) {
if (isDuo) {
this.$set(this.attr.productSelect, "cart_num", 1);
this.$set(this, "cart_num", 1);
} else {
num.cart_num = 0;
this.$set(this, 'tempArr', this.tempArr);
this.$set(this.cartData, 'cartList', this.cartData.cartList);
}
} else {
if (!isDuo) {
if (cart) {
this.goCat(0, id, 0, 1, num.product_attr_unique);
this.getTotalPrice();
this.tempArr.forEach((item) => {
if (item.id == id) {
item.cart_num--;
}
})
} else {
this.goCat(0, id, 0);
}
} else {
this.tempArr.forEach((item) => {
if (item.id == id) {
item.cart_num--;
}
})
}
}
}
},
// 多规格加入购物车;
goCatNum() {
this.goCat(1, this.id, 1);
},
/*
* 加入购物车
*/
goCat: function(duo, id, type, cart, unique) {
let that = this;
if (duo) {
let productSelect = that.productValue[this.attrValue];
//如果有属性,没有选择,提示用户选择
if (
that.attr.productAttr.length &&
productSelect === undefined
)
return that.$util.Tips({
title: "产品库存不足,请选择其它属性"
});
}
let q = {
productId: id,
cartNum: duo ? that.attr.productSelect.cart_num : 1,
isAdd: type,
uniqueId: duo ? that.attr.productSelect.unique : cart ? unique : "",
tableId: this.info.tableId,
storeId: this.info.id,
};
addTableCate(q).then(res => {
if (duo) {
that.attr.cartAttr = false;
that.$util.Tips({
title: "添加购物车成功"
});
// that.page = 1;
// that.loadend = false;
that.tempArr.forEach((item, index) => {
if (item.id == that.id) {
let arrtStock = that.attr.productSelect.stock
let objNum = parseInt(item.cart_num) + parseInt(that.attr.productSelect.cart_num);
item.cart_num = objNum > arrtStock ? arrtStock : objNum
}
})
// that.productslist();
}
that.getCartNum();
if (!cart) {
that.getCartList(1);
}
}).catch(err => {
that.$util.Tips({
title: err
});
});
},
goCartDuo(item) {
if (!this.isLogin) {
this.getIsLogin();
} else {
this.storeName = item.store_name;
this.getAttrs(item.id);
this.$set(this, 'id', item.id);
this.$set(this.attr, 'cartAttr', true);
}
},
getIsLogin() {
toLogin();
},
// 商品详情接口;
getAttrs(id) {
let that = this;
getAttr(id, 0).then(res => {
that.$set(that.attr, 'productAttr', res.data.productAttr);
that.$set(that, 'productValue', res.data.productValue);
that.$set(that, 'is_vip', res.data.storeInfo.is_vip);
that.$set(that, 'storeInfo', res.data.storeInfo);
that.DefaultSelect();
})
},
openTap() {
this.iSlong = false
},
closeTap() {
this.iSlong = true
},
// 分类数据
getAllCategory: function() {
let that = this;
getStoreCategory().then(res => {
let data = res.data;
data.forEach(item => {
item.children.unshift({
'id': 0,
'cate_name': '全部商品'
})
})
that.categoryTitle = data[0].cate_name;
that.cid = data[0].id;
that.sid = 0;
that.navActive = 0;
that.tabClick = 0;
that.categoryList = data;
that.categoryErList = res.data[0].children ? res.data[0].children : [];
that.page = 1;
that.loadend = false;
that.tempArr = [];
that.getProducts();
})
},
tapNav(index, item) {
uni.pageScrollTo({
duration: 0,
scrollTop: 0
})
let list = this.categoryList[index];
this.navActive = index;
this.categoryTitle = list.cate_name;
this.categoryErList = item.children ? item.children : [];
this.tabClick = 0;
this.tabLeft = 0;
this.cid = list.id;
this.sid = 0;
this.page = 1;
this.loadend = false;
this.tempArr = [];
this.getProducts();
},
// 导航栏点击
longClick(index) {
if (this.categoryErList.length > 3) {
this.tabLeft = (index - 1) * (this.isWidth + 6) //设置下划线位置
};
this.tabClick = index; //设置导航点击了哪一个
this.iSlong = true;
this.sid = this.categoryErList[index].id;
this.page = 1;
this.loadend = false;
this.tempArr = [];
this.getProducts();
},
goodsListScroll() {
this.footerOpen = false;
},
},
}
</script>
<style lang="scss">
.mendianbox{
width: 702rpx;
background: #1B1A1D;
border-radius: 20rpx;
padding: 39rpx 31rpx 39rpx 39rpx;
margin: 20rpx auto;
.mendianbox1{
display: flex;
justify-content: space-between;
.title{
font-family: Alibaba PuHuiTi;
font-weight: 400;
font-size: 36rpx;
color: #FFFFFF;
}
.title1{
font-family: Alibaba PuHuiTi;
font-weight: 400;
font-size: 36rpx;
color: #F8A617;
}
}
.mendianbox2{
margin-top: 37rpx;
display: flex;
justify-content: space-between;
.title{
font-family: Alibaba PuHuiTi;
font-weight: 400;
font-size: 30rpx;
color: #FFFFFF;
width: 400rpx;
}
.title1{
margin-top: -39rpx;
font-family: Alibaba PuHuiTi;
font-weight: 400;
font-size: 60rpx;
color: #7B7A7F;
}
}
.mendianbox3{
margin-top: 25rpx;
display: flex;
justify-content: space-between;
.title{
font-family: Alibaba PuHuiTi;
font-weight: 400;
font-size: 24rpx;
color: #7B7A7F;
width: 400rpx;
}
.title1{
font-family: Alibaba PuHuiTi;
font-weight: 400;
font-size: 24rpx;
color: #7B7A7F;
}
}
}
.safe-area-inset-bottom {
height: constant(safe-area-inset-bottom);
height: env(safe-area-inset-bottom);
}
.mp-header {
.serch-wrapper {
height: 100%;
/* #ifdef MP */
padding: 0 210rpx 0 32rpx;
/* #endif */
.input {
flex: 1;
min-width: 0;
height: 58rpx;
padding: 0 0 0 32rpx;
border-radius: 29rpx;
background: #1B1A1D;
color: #7B7A7F;
font-size: 24rpx;
.iconfont {
margin-right: 18rpx;
font-size: 28rpx;
color: #7B7A7F;
}
}
}
}
/deep/.product-window.joinCart {
z-index: 999;
}
::-webkit-scrollbar {
width: 0;
height: 0;
color: transparent;
display: none;
}
.goodCate {
flex-wrap: nowrap;
height: 100vh;
// background: #FFFFFF;
/deep/.mask {
z-index: 99;
}
/deep/.attrProduct {
.mask {
z-index: 100;
}
}
.conter {
flex: 1;
flex-wrap: nowrap;
min-height: 0;
.aside {
width: 168rpx;
// background: #F5F5F5;
.item {
height: 100rpx;
width: 100%;
font-size: 26rpx;
color: #7B7A7F;
&.on {
background-color:#1B1A1D;
width: 100%;
text-align: center;
color: #F8BF1F;
font-weight: 500;
position: relative;
border-radius: 20rpx;
&::after {
content: "";
position: absolute;
width: 6rpx;
height: 46rpx;
background: var(--view-theme);
border-radius: 0 4rpx 4rpx 0;
left: 0
}
}
}
}
.wrapper {
flex: 1;
flex-wrap: nowrap;
min-width: 0;
.bgcolor {
flex-wrap: nowrap;
}
.mask {
z-index: 9;
}
.longTab {
flex: 1;
min-width: 0;
height: 104rpx;
.longItem {
display: inline-block;
height: 56rpx;
border-radius: 28rpx;
margin-left: 16rpx;
background: #F5F5F5;
vertical-align: middle;
text-align: center;
font-size: 24rpx;
line-height: 54rpx;
color: #333333;
.inner {
height: 56rpx;
border: 1rpx solid transparent;
border-radius: 28rpx;
transform: rotateZ(360deg);
}
&.click {
background: var(--view-theme);
color: var(--view-theme);
.inner {
background: rgba(255, 255, 255, 0.9);
background-clip: content-box;
}
}
}
.underlineBox {
height: 3px;
width: 20%;
display: flex;
align-content: center;
justify-content: center;
transition: .5s;
.underline {
width: 33rpx;
height: 4rpx;
background-color: #FFFFFF;
}
}
}
.openList {
width: 92rpx;
height: 104rpx;
text-align: center;
line-height: 104rpx;
.btn {
display: inline-block;
width: 56rpx;
height: 56rpx;
border-radius: 28rpx;
background: #F5F5F5;
line-height: 56rpx;
}
.iconfont {
font-size: 32rpx;
color: #333333;
}
}
.goodsListWrap {
flex: 1;
min-height: 0;
}
.goodsList {
margin-top: 0rpx;
padding: 0 30rpx 0 20rpx;
/deep/.item {
margin-bottom: 33rpx !important;
.text {
font-size: 26rpx;
}
.bottom {
.sales {
.money {
font-size: 34rpx;
text {
font-size: 26rpx;
}
}
}
.cart {
.pictrue {
width: 50rpx;
height: 50rpx;
}
}
}
}
}
}
}
.footer {
position: fixed;
right: 20rpx;
left: 20rpx;
bottom: 40rpx;
bottom: calc(40rpx + constant(safe-area-inset-bottom));
bottom: calc(40rpx + env(safe-area-inset-bottom));
z-index: 151;
.cartIcon {
position: absolute;
bottom: 0;
left: 0;
width: 96rpx;
height: 96rpx;
border-radius: 48rpx;
box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(0, 0, 0, 0.1);
.image-wrap {
width: 96rpx;
height: 96rpx;
border-radius: 48rpx;
text-align: center;
line-height: 96rpx;
}
.image {
width: 54rpx;
height: 54rpx;
vertical-align: middle;
}
}
.inner-box {
position: absolute;
bottom: 0;
left: 0;
width: 96rpx;
height: 96rpx;
border-radius: 48rpx;
overflow: hidden;
transition: 0.3s;
&.open {
width: 100%;
}
}
.inner {
flex-wrap: nowrap;
height: 96rpx;
padding: 0 12rpx 0 128rpx;
border-radius: 48rpx;
background: #1B1A1D;
}
.btn {
width: 186rpx;
height: 72rpx;
padding: 0 32rpx;
background: #F8BF1F;
border-radius: 36rpx;
text-align: center;
font-weight: 500;
font-size: 26rpx;
line-height: 72rpx;
color: #080313;
}
}
}
.downTab {
position: fixed;
top: 0;
left: 0;
z-index: 102;
flex-wrap: nowrap;
width: 100%;
max-height: 500rpx;
border-radius: 0rpx 0rpx 32rpx 32rpx;
background: #FFFFFF;
overflow: hidden;
.title {
padding: 32rpx 0 24rpx 30rpx;
font-size: 32rpx;
line-height: 44rpx;
color: #333333;
.closeList {
width: 90rpx;
height: 100%;
line-height: 100rpx;
padding-left: 30rpx;
transform: rotate(180deg);
.iconfont {
font-size: 22rpx;
color: #666666;
}
}
}
.scroll-view {
flex: 1;
min-height: 0;
overflow: auto;
}
.children {
padding: 0 0 0 30rpx;
.item {
display: inline-block;
width: 154rpx;
height: 56rpx;
border-radius: 28rpx;
margin: 0 24rpx 24rpx 0;
background: #F5F5F5;
vertical-align: middle;
text-align: center;
font-size: 24rpx;
line-height: 54rpx;
color: #333333;
.inner {
height: 56rpx;
border: 1rpx solid transparent;
border-radius: 28rpx;
transform: rotateZ(360deg);
}
&.click {
background: var(--view-theme);
color: var(--view-theme);
.inner {
background: rgba(255, 255, 255, 0.9);
background-clip: content-box;
}
}
}
}
.closeList {
height: 80rpx;
border-top: 1rpx solid #EEEEEE;
transform: rotateZ(360deg);
text-align: center;
font-size: 24rpx;
line-height: 80rpx;
color: #999999;
.iconfont {
margin-left: 4rpx;
font-size: 24rpx;
}
}
}
</style>