5 changed files with 1337 additions and 366 deletions
@ -0,0 +1,772 @@ |
|||||
|
<template> |
||||
|
<view class="page1"> |
||||
|
<view class="title-box"> |
||||
|
<uni-search-bar class="uni-mt-10" radius="5" placeholder="请输入商品名称/编号" cancelButton="none" |
||||
|
@confirm="search" /> |
||||
|
</view> |
||||
|
<view class="content-box"> |
||||
|
<view class="content-left"> |
||||
|
<view class="left-box" v-for="(item, index) in indexList" :key="item" |
||||
|
:class="item.parentId ? 'left-box-hover':''" @tap="clickLeftBtn(index)"> |
||||
|
<text style="padding: 0 40rpx;" :class="item.parentId ? 'red' :''">{{item.categoryName}}</text> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="content-right"> |
||||
|
<view class="right-box" v-for="item in shopList" :key="item" @tap="toggle('bottom',item)"> |
||||
|
<view class="box-left"> |
||||
|
<img :src="item.productPicture" alt=""> |
||||
|
</view> |
||||
|
<view class="box-right"> |
||||
|
<view class="box-right-name">{{item.productName}}</view> |
||||
|
<view class="box-right-num">{{item.productSn}}</view> |
||||
|
<view class="box-right-price"> |
||||
|
<view class="price-box"> |
||||
|
<text>{{item.purchasePrice}}</text> |
||||
|
<text>采购价</text> |
||||
|
</view> |
||||
|
<view class="price-box"> |
||||
|
<text>{{item.wholesalePrice}}</text> |
||||
|
<text>批发价</text> |
||||
|
</view> |
||||
|
<view class="price-box"> |
||||
|
<text>{{item.price}}</text> |
||||
|
<text>零售价</text> |
||||
|
</view> |
||||
|
<view class="price-box"> |
||||
|
<text>{{item.stockCount}}</text> |
||||
|
<text>库存</text> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="bottom-box"> |
||||
|
<view class="bottom-left" @tap="toggle('carPopup')"> |
||||
|
<view class="bottom-left-box"> |
||||
|
<uni-icons type="cart" size="20" color="#646566"></uni-icons> |
||||
|
<text class="uni-tab__text">已选择</text> |
||||
|
</view> |
||||
|
<text style="background-color:#ff0000;color:#fff;position: absolute;top: 0;right: 10rpx;" |
||||
|
class="uni-tab__dot">{{carList.length}}</text> |
||||
|
</view> |
||||
|
<view class="bottom-right"> |
||||
|
<view class="bottom-btn" @tap="backPrevPage">选好了</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
<!-- 弹出层 --> |
||||
|
<view> |
||||
|
<uni-popup ref="popup" background-color="#fff" @change="change"> |
||||
|
<view class="popup-content"> |
||||
|
<view class="popup-title"> |
||||
|
<view class="popup-title-left"> |
||||
|
<img src="/static/images/logo.png" alt=""> |
||||
|
</view> |
||||
|
<view class="popup-title-right"> |
||||
|
<view class="popup-title-right-box" style="color: #088FEB;">{{goodsDetail.productName}} |
||||
|
</view> |
||||
|
<view class="popup-title-right-box">{{goodsDetail.productSn}}</view> |
||||
|
<view class="popup-title-right-box" style="color: darkorange;" @tap="inputDialogToggle"> |
||||
|
<!-- <text style="margin-right:20rpx;">¥{{goodsDetail.price}}</text> --> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="popup-container"> |
||||
|
<view class="purchase-price" v-if="storageType == 0"> |
||||
|
<view style="margin-right: 20rpx;">采购价</view> |
||||
|
<uni-easyinput type="text" v-model="purchasePrice" placeholder="请输入采购价" /> |
||||
|
</view> |
||||
|
<ul style="border-top:20rpx;"> |
||||
|
<li v-for="(items,index) in goodsDetail.attributeList" :key="index"> |
||||
|
<view class="title-fur"> |
||||
|
<view class="name">{{items.name}}</view> |
||||
|
</view> |
||||
|
<view class="attrs"> |
||||
|
<uni-data-checkbox v-model="value" :localdata="range" |
||||
|
@change="change"></uni-data-checkbox> |
||||
|
<text v-for="(itemTag, index1) in items.value" :key="index1" |
||||
|
@tap.stop="attrNameChange(index,index1) " |
||||
|
:class="itemTag.isChecked ? 'checkedText' : '' "> {{itemTag.value}}</text> |
||||
|
</view> |
||||
|
</li> |
||||
|
</ul> |
||||
|
<view class="checkList" v-for="item in temporaryList"> |
||||
|
<view class="checkList-box"> |
||||
|
{{item.name}} |
||||
|
</view> |
||||
|
<uni-number-box v-model="item.productCount" @change="temporaryChange" /> |
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="popup-bottom" v-for="item in temporaryList"> |
||||
|
<view class="popup-bottom-left"> |
||||
|
<text>{{zNum}} 件</text> |
||||
|
<text>¥{{zPrice}}</text> |
||||
|
</view> |
||||
|
<view class="popup-bottom-right"> |
||||
|
<view class="bottom-btn" @tap="temporaryCheck">选好了</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</uni-popup> |
||||
|
</view> |
||||
|
<!-- 弹出输入框 --> |
||||
|
<uni-popup ref="inputDialog" type="dialog"> |
||||
|
<uni-popup-dialog ref="inputClose" mode="input" title="采购价" placeholder="请输入采购价" |
||||
|
@confirm="changePrice"></uni-popup-dialog> |
||||
|
</uni-popup> |
||||
|
<!-- 购物车弹出层 --> |
||||
|
<uni-popup ref="carPopup" background-color="#fff" @change="change"> |
||||
|
<view class="popup-content"> |
||||
|
<view v-for="item in carList" style="position: relative;"> |
||||
|
<view class="popup-title"> |
||||
|
<view class="popup-title-left"> |
||||
|
<img src="/static/images/logo.png" alt=""> |
||||
|
</view> |
||||
|
<view class="popup-title-right"> |
||||
|
<view class="popup-title-right-box" style="color: #088FEB;">{{item.productName}}</view> |
||||
|
<view class="popup-title-right-box">{{item.productSn}}</view> |
||||
|
<view class="popup-title-right-box" style="color: darkorange;" @tap="inputDialogToggle"> |
||||
|
<text style="margin-right:20rpx;">¥{{item.price}}</text> |
||||
|
<!-- <uni-icons color="#088FEB" type="compose" size="16"></uni-icons> --> |
||||
|
<view style="position: absolute;top: 30rpx;right: 30rpx;" @tap.stop="delShop(item.id)"> |
||||
|
<uni-icons color="red" type="trash" size="26"></uni-icons> |
||||
|
</view> |
||||
|
</view> |
||||
|
|
||||
|
</view> |
||||
|
</view> |
||||
|
<view class="popup-container" v-for="items in item.saleDetailQueryDTO"> |
||||
|
<view class="checkList"> |
||||
|
<view style="margin-right:5%;" @tap="delShopSpec(items.name)"> |
||||
|
<uni-icons color="red" type="minus" size="26"></uni-icons> |
||||
|
</view> |
||||
|
<view class="checkList-box"> |
||||
|
{{items.name}} |
||||
|
</view> |
||||
|
<uni-number-box v-model="items.productCount" @change="change" /> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
|
||||
|
<view class="popup-bottom"> |
||||
|
<view class="popup-bottom-left"> |
||||
|
<text>2 款 9 件</text> |
||||
|
</view> |
||||
|
<view class="popup-bottom-right"> |
||||
|
<view class="bottom-btn" @tap="">选好了</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</view> |
||||
|
</uni-popup> |
||||
|
</view> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
components: {}, |
||||
|
data() { |
||||
|
return { |
||||
|
indexList: [], |
||||
|
pageNum: 1, //分页的页码 |
||||
|
shopList: [], |
||||
|
info: 0, |
||||
|
categoryId: '', //分类id |
||||
|
searchName: '', //搜索框输入值 |
||||
|
shopId: '', //店铺id, |
||||
|
checkbox: [], //需要分享的商品id |
||||
|
temporaryNum: 0, |
||||
|
goodsDetail: [], |
||||
|
attrNameList: [], |
||||
|
temporaryList: [], |
||||
|
carList: [], |
||||
|
columns: [], |
||||
|
keyList: [], |
||||
|
specsList: [], |
||||
|
evalue: [], |
||||
|
attributeList: [], |
||||
|
purchasePrice: 0, |
||||
|
zPrice:0, |
||||
|
zNum:0, |
||||
|
storageType:0 |
||||
|
} |
||||
|
}, |
||||
|
onLoad() { |
||||
|
this.getGategoryList() |
||||
|
this.storageType = uni.getStorageSync('type') |
||||
|
}, |
||||
|
methods: { |
||||
|
//初始化获取分类列表 |
||||
|
getGategoryList() { |
||||
|
this.tui.request("/app/productCategory/list", "get", { |
||||
|
// shopId: 1, |
||||
|
}, false, true).then((res) => { |
||||
|
if (res.code == 200) { |
||||
|
this.indexList = res.result; |
||||
|
for (var i = 0; i < this.indexList.length; i++) { |
||||
|
if (i == 0) { |
||||
|
this.indexList[i].parentId = true |
||||
|
} else { |
||||
|
this.indexList[i].parentId = false |
||||
|
} |
||||
|
} |
||||
|
this.getShareList(this.indexList[0].id); |
||||
|
} else { |
||||
|
this.tui.toast(res.message) |
||||
|
} |
||||
|
}).catch((res) => {}) |
||||
|
}, |
||||
|
attrNameChange(index, index1) { |
||||
|
this.goodsDetail.attributeList[index].value.forEach(item => { |
||||
|
item.isChecked = false; |
||||
|
}) |
||||
|
this.goodsDetail.attributeList[index].isChecked = true; |
||||
|
this.goodsDetail.attributeList[index].value[index1].isChecked = true; |
||||
|
var name = '', |
||||
|
evalue = [], |
||||
|
obj = {}, |
||||
|
specsList = [] |
||||
|
for (var i = 0; i < this.goodsDetail.attributeList.length; i++) { |
||||
|
for (var m = 0, Ien = this.goodsDetail.attributeList[i].value; m < Ien.length; m++) { |
||||
|
if (Ien[m].isChecked == true) { |
||||
|
evalue.push(Ien[m].value) |
||||
|
name += Ien[m].value |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
this.keyList.map((item, index) => { |
||||
|
obj[item] = evalue[index] |
||||
|
}) |
||||
|
let jishuqi = 0; |
||||
|
for (var i = 0; i < this.goodsDetail.attributeList.length; i++) { |
||||
|
if (this.goodsDetail.attributeList[i].isChecked == true) { |
||||
|
jishuqi++ |
||||
|
} |
||||
|
} |
||||
|
if (this.goodsDetail.attributeList.length == jishuqi) { |
||||
|
let data = {} |
||||
|
this.attributeList = { |
||||
|
attributeList: JSON.stringify(obj), |
||||
|
productCount: this.temporaryNum, |
||||
|
name:name, |
||||
|
price:this.purchasePrice |
||||
|
} |
||||
|
if (this.temporaryList.length == 0) { |
||||
|
this.temporaryList.push(this.attributeList); |
||||
|
} else { |
||||
|
for (var i = 0; i < this.temporaryList.length; i++) { |
||||
|
if (this.temporaryList[i].name.indexOf(this.attributeList.name) != -1) { |
||||
|
this.temporaryList[i] = this.attributeList |
||||
|
return |
||||
|
} else { |
||||
|
if (this.temporaryList.length == (i+1)) { |
||||
|
this.temporaryList.push(this.attributeList); |
||||
|
return |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
}, |
||||
|
temporaryChange(val) { |
||||
|
console.log(val) |
||||
|
this.zNum = 0 |
||||
|
console.log(this.temporaryList) |
||||
|
for (var i=0;i<this.temporaryList.length;i++) { |
||||
|
this.zNum += this.temporaryList[i].productCount |
||||
|
} |
||||
|
this.zPrice = this.zNum * this.purchasePrice |
||||
|
}, |
||||
|
//点击底部选好了,返回上一页 |
||||
|
backPrevPage() { |
||||
|
let pages = getCurrentPages(); // 获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。 |
||||
|
let prevPage = pages[pages.length - 2]; //上一页页面实例 |
||||
|
prevPage.$vm.carList = this.carList |
||||
|
uni.navigateBack({ |
||||
|
delta: 1 |
||||
|
}) |
||||
|
}, |
||||
|
//点击分类获取商品列表 |
||||
|
getShareList(id) { |
||||
|
this.tui.request("/app/product/getShareList", "POST", { |
||||
|
categoryId: id, |
||||
|
supplierName: this.searchName, |
||||
|
pageNum: this.pageNum, |
||||
|
pageSize: '10' |
||||
|
}, false, false).then((res) => { |
||||
|
if (res.code == 200) { |
||||
|
console.log(res.result.records) |
||||
|
this.shopList = res.result.records |
||||
|
} else { |
||||
|
this.tui.toast(res.message) |
||||
|
} |
||||
|
}).catch((res) => {}) |
||||
|
}, |
||||
|
//获取弹出层状态 |
||||
|
change(e) { |
||||
|
console.log('当前模式:' + e.type + ',状态:' + e.show); |
||||
|
}, |
||||
|
//弹出购物车或者商品规格选择弹窗 |
||||
|
toggle(type, item) { |
||||
|
|
||||
|
this.type = type |
||||
|
// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性 |
||||
|
if (type == 'carPopup') { |
||||
|
this.$refs.carPopup.open('bottom') |
||||
|
|
||||
|
} else { |
||||
|
this.checkGoods(item); |
||||
|
this.$refs.popup.open('bottom') |
||||
|
} |
||||
|
|
||||
|
}, |
||||
|
//选择商品查询商品规格 |
||||
|
checkGoods(item) { |
||||
|
this.goodsDetail = item |
||||
|
if (typeof(this.goodsDetail.attributeList) == 'string') { |
||||
|
let newObj = JSON.parse(this.goodsDetail.attributeList) |
||||
|
let newArr = [] |
||||
|
for (let val in newObj) { |
||||
|
let valueObj = []; |
||||
|
for (var i = 0; i < newObj[val].length; i++) { |
||||
|
valueObj.push({ |
||||
|
value: newObj[val][i], |
||||
|
isChecked: false |
||||
|
}) |
||||
|
this.attrNameList.push({ |
||||
|
value: newObj[val][i], |
||||
|
name: val, |
||||
|
isChecked: false |
||||
|
}) |
||||
|
} |
||||
|
newArr.push({ |
||||
|
name: val, |
||||
|
value: valueObj |
||||
|
}) |
||||
|
} |
||||
|
this.goodsDetail.attributeList = newArr; |
||||
|
this.goodsDetail.attributeList.forEach((item, index) => { |
||||
|
this.columns[index] = item.value; |
||||
|
this.keyList[index] = item.name; |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
}, |
||||
|
//顶部搜索框 |
||||
|
search(res) { |
||||
|
this.searchName = res.value |
||||
|
uni.showToast({ |
||||
|
title: '搜索:' + res.value, |
||||
|
icon: 'none' |
||||
|
}) |
||||
|
}, |
||||
|
//点击左侧菜单切换 |
||||
|
clickLeftBtn(index) { |
||||
|
for (var i = 0; i < this.indexList.length; i++) { |
||||
|
if (i == index) { |
||||
|
this.indexList[i].parentId = true |
||||
|
} else { |
||||
|
this.indexList[i].parentId = false |
||||
|
} |
||||
|
} |
||||
|
this.getShareList(this.indexList[index].id) |
||||
|
}, |
||||
|
inputDialogToggle() { |
||||
|
this.$refs.inputDialog.open() |
||||
|
}, |
||||
|
//临时改价 |
||||
|
changePrice(val) { |
||||
|
this.goodsDetail.price = this.temporaryList[0].price = val |
||||
|
}, |
||||
|
//弹窗选择规格后,点击弹窗中选好了按钮 |
||||
|
temporaryCheck() { |
||||
|
if(this.storageType == 0 && this.purchasePrice == 0){ |
||||
|
uni.showToast({ |
||||
|
title: "请输入采购价!", |
||||
|
icon: 'none' |
||||
|
}) |
||||
|
}else{ |
||||
|
let data = { |
||||
|
id: this.goodsDetail.id, |
||||
|
price: this.zPrice, |
||||
|
num: this.zNum, |
||||
|
productName: this.goodsDetail.productName, |
||||
|
productSn: this.goodsDetail.productSn, |
||||
|
productPicture: this.goodsDetail.productPicture, |
||||
|
supplierName: this.goodsDetail.supplierName, |
||||
|
saleDetailQueryDTO:this.temporaryList |
||||
|
} |
||||
|
this.carList.push(data) |
||||
|
this.temporaryList = [] |
||||
|
this.purchasePrice = '' |
||||
|
this.zPrice = '' |
||||
|
this.zNum = '' |
||||
|
for(let i=0;i<this.goodsDetail.attributeList.length;i++){ |
||||
|
this.goodsDetail.attributeList[i].isChecked = false; |
||||
|
for (let m=0;m<this.goodsDetail.attributeList[i].value.length;m++) { |
||||
|
this.goodsDetail.attributeList[i].value[m].isChecked = false |
||||
|
} |
||||
|
} |
||||
|
this.$refs.popup.close() |
||||
|
} |
||||
|
|
||||
|
}, |
||||
|
//删除整条商品 |
||||
|
delShop(id){ |
||||
|
var that = this; |
||||
|
console.log(this.carList) |
||||
|
for (let i=0;i<this.carList.length;i++) { |
||||
|
if(this.carList[i].id == id){ |
||||
|
uni.showModal({ |
||||
|
title: "提示", |
||||
|
content: "确定删除此条商品吗?", |
||||
|
success: function(res) { |
||||
|
that.carList.splice(i,1) |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
//删除商品下的某一个规格 |
||||
|
delShopSpec(name){ |
||||
|
var that = this; |
||||
|
console.log(this.carList) |
||||
|
for (let i=0;i<this.carList.length;i++) { |
||||
|
for (let m=0;m<this.carList[i].saleDetailQueryDTO.length;m++) { |
||||
|
if(this.carList[i].saleDetailQueryDTO[m].name == name){ |
||||
|
uni.showModal({ |
||||
|
title: "提示", |
||||
|
content: "确定删除此条商品吗?", |
||||
|
success: function(res) { |
||||
|
that.carList[i].saleDetailQueryDTO.splice(m,1) |
||||
|
if(that.carList[i].saleDetailQueryDTO.length == 0){ |
||||
|
that.carList.splice(i,1) |
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss"> |
||||
|
page { |
||||
|
height: 100%; |
||||
|
} |
||||
|
|
||||
|
.page1 { |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
height: 92%; |
||||
|
} |
||||
|
|
||||
|
.uni-tab__dot { |
||||
|
padding: 0 4px; |
||||
|
line-height: 15px; |
||||
|
color: #ffffff; |
||||
|
text-align: center; |
||||
|
font-size: 12px; |
||||
|
background-color: #ff0000; |
||||
|
border-radius: 15px; |
||||
|
} |
||||
|
|
||||
|
.popup-content { |
||||
|
align-items: center; |
||||
|
justify-content: center; |
||||
|
padding: 15px; |
||||
|
height: 1200rpx; |
||||
|
background-color: #fff; |
||||
|
} |
||||
|
|
||||
|
.popup-title-right-box { |
||||
|
height: 50rpx; |
||||
|
line-height: 50rpx; |
||||
|
} |
||||
|
|
||||
|
.popup-title-right { |
||||
|
width: 400rpx; |
||||
|
margin-left: 30rpx; |
||||
|
} |
||||
|
|
||||
|
.popup-title-left { |
||||
|
width: 150rpx; |
||||
|
height: 150rpx; |
||||
|
} |
||||
|
|
||||
|
.popup-title-left image { |
||||
|
width: 150rpx; |
||||
|
height: 150rpx; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
.popup-title { |
||||
|
display: flex; |
||||
|
height: 180rpx; |
||||
|
border-bottom: 1px solid #eee; |
||||
|
margin-top: 20rpx; |
||||
|
} |
||||
|
|
||||
|
.popup-container { |
||||
|
width: 100%; |
||||
|
background: #fff; |
||||
|
height: 50rpx; |
||||
|
} |
||||
|
|
||||
|
.uni-tab__text { |
||||
|
font-size: 12px; |
||||
|
color: #646566; |
||||
|
} |
||||
|
|
||||
|
.title-box { |
||||
|
background: #fff; |
||||
|
} |
||||
|
|
||||
|
.bottom-box { |
||||
|
width: 100%; |
||||
|
position: fixed; |
||||
|
bottom: 0; |
||||
|
display: flex; |
||||
|
} |
||||
|
|
||||
|
.bottom-left { |
||||
|
width: 15%; |
||||
|
position: relative; |
||||
|
} |
||||
|
|
||||
|
.bottom-right { |
||||
|
width: 85%; |
||||
|
|
||||
|
.bottom-btn { |
||||
|
width: 85%; |
||||
|
line-height: 35px; |
||||
|
height: 70rpx; |
||||
|
text-align: center; |
||||
|
margin-top: 10rpx; |
||||
|
color: #fff; |
||||
|
font-size: 28rpx; |
||||
|
margin: 0 auto; |
||||
|
background: linear-gradient(90deg, #60F3FF, #088FEB); |
||||
|
border-radius: 70rpx; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.bottom-left-box { |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
text-align: center; |
||||
|
} |
||||
|
|
||||
|
.content-box { |
||||
|
background: #fff; |
||||
|
flex: 1; |
||||
|
display: flex; |
||||
|
} |
||||
|
|
||||
|
.content-left { |
||||
|
width: 170rpx; |
||||
|
background: #eee; |
||||
|
height: 100%; |
||||
|
} |
||||
|
|
||||
|
.left-box { |
||||
|
width: 100%; |
||||
|
height: 90rpx; |
||||
|
font-size: 30rpx; |
||||
|
text-align: center; |
||||
|
line-height: 90rpx; |
||||
|
border-bottom: 1px solid #fff; |
||||
|
} |
||||
|
|
||||
|
.purchase-price { |
||||
|
display: flex; |
||||
|
line-height: 40px; |
||||
|
height: 80rpx; |
||||
|
width: 95%; |
||||
|
margin: 20rpx auto; |
||||
|
} |
||||
|
|
||||
|
.left-box-hover { |
||||
|
width: 100%; |
||||
|
height: 90rpx; |
||||
|
font-size: 30rpx; |
||||
|
text-align: center; |
||||
|
line-height: 90rpx; |
||||
|
border-bottom: 1px solid #fff; |
||||
|
background-color: #fff; |
||||
|
} |
||||
|
|
||||
|
.red { |
||||
|
border-right: 3px solid red; |
||||
|
} |
||||
|
|
||||
|
.content-right { |
||||
|
width: 550rpx; |
||||
|
overflow-y: scroll; |
||||
|
} |
||||
|
|
||||
|
.right-box { |
||||
|
width: 100%; |
||||
|
height: 190rpx; |
||||
|
display: flex; |
||||
|
border-bottom: 1px solid #eee; |
||||
|
position: relative; |
||||
|
} |
||||
|
|
||||
|
.box-left { |
||||
|
width: 130rpx; |
||||
|
height: 131rpx; |
||||
|
background-size: 100%; |
||||
|
margin: 25rpx 30rpx 35rpx 10rpx; |
||||
|
border-radius: 20rpx; |
||||
|
} |
||||
|
|
||||
|
.box-left img { |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
.box-right { |
||||
|
margin-top: 17rpx; |
||||
|
} |
||||
|
|
||||
|
.box-right-name { |
||||
|
font-size: 30rpx; |
||||
|
font-weight: bold; |
||||
|
} |
||||
|
|
||||
|
.box-right-num { |
||||
|
padding: 5rpx 0; |
||||
|
color: #777; |
||||
|
} |
||||
|
|
||||
|
.box-right-price { |
||||
|
display: flex; |
||||
|
font-size: 25rpx; |
||||
|
} |
||||
|
|
||||
|
.checkbox { |
||||
|
width: 40rpx; |
||||
|
height: 40rpx; |
||||
|
position: absolute; |
||||
|
top: 20rpx; |
||||
|
right: 30rpx; |
||||
|
} |
||||
|
|
||||
|
.price-box { |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
margin-right: 20rpx; |
||||
|
} |
||||
|
|
||||
|
.price-box text:first-child { |
||||
|
color: #ffa200 |
||||
|
} |
||||
|
|
||||
|
.uni-tab__cart-button-right, |
||||
|
.uni-tab__cart-sub-right { |
||||
|
display: none; |
||||
|
flex: none; |
||||
|
} |
||||
|
|
||||
|
.title-fur { |
||||
|
width: 95%; |
||||
|
height: 70rpx; |
||||
|
margin: 0 auto; |
||||
|
} |
||||
|
|
||||
|
.name { |
||||
|
font-size: 30rpx; |
||||
|
width: 50%; |
||||
|
float: left; |
||||
|
height: 70rpx; |
||||
|
line-height: 70rpx; |
||||
|
} |
||||
|
|
||||
|
.content-fur { |
||||
|
padding-bottom: 25rpx; |
||||
|
} |
||||
|
|
||||
|
.content-low { |
||||
|
width: auto; |
||||
|
border: 1px solid #eee; |
||||
|
display: inline-block; |
||||
|
min-width: 90rpx; |
||||
|
padding: 5rpx; |
||||
|
font-size: 35rpx; |
||||
|
text-align: center; |
||||
|
color: #777; |
||||
|
margin: 20rpx 0 0 20rpx; |
||||
|
} |
||||
|
|
||||
|
.content-low:hover { |
||||
|
background: #eee; |
||||
|
} |
||||
|
|
||||
|
.checkList { |
||||
|
display: flex; |
||||
|
height: 50rpx; |
||||
|
font-size: 28rpx; |
||||
|
line-height: 50rpx; |
||||
|
margin: 20rpx 0; |
||||
|
} |
||||
|
|
||||
|
.checkList-box { |
||||
|
height: 50rpx; |
||||
|
width: 60%; |
||||
|
} |
||||
|
|
||||
|
.popup-bottom { |
||||
|
width: 100%; |
||||
|
height: 100rpx; |
||||
|
position: fixed; |
||||
|
bottom: 0; |
||||
|
display: flex; |
||||
|
} |
||||
|
|
||||
|
.popup-bottom-left { |
||||
|
width: 50%; |
||||
|
line-height: 80rpx; |
||||
|
} |
||||
|
|
||||
|
.popup-bottom-right { |
||||
|
width: 50%; |
||||
|
line-height: 100rpx; |
||||
|
|
||||
|
.bottom-btn { |
||||
|
width: 70%; |
||||
|
line-height: 35px; |
||||
|
height: 70rpx; |
||||
|
text-align: center; |
||||
|
/* margin-top: 10rpx; */ |
||||
|
color: #fff; |
||||
|
font-size: 28rpx; |
||||
|
margin: 0 auto; |
||||
|
background: linear-gradient(90deg, #60F3FF, #088FEB); |
||||
|
border-radius: 70rpx; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.attrs { |
||||
|
text { |
||||
|
display: inline-block; |
||||
|
border: 1px solid #5fd9ee; |
||||
|
margin: 20rpx; |
||||
|
background-color: #fff; |
||||
|
color: #5fd9ee; |
||||
|
width: 100rpx; |
||||
|
line-height: 70rpx; |
||||
|
height: 70rpx; |
||||
|
text-align: center; |
||||
|
} |
||||
|
|
||||
|
.checkedText { |
||||
|
background-color: $u-primary; |
||||
|
color: #fff; |
||||
|
} |
||||
|
} |
||||
|
</style> |
||||
Loading…
Reference in new issue