@ -1,256 +0,0 @@ | |||||
<template> | |||||
<view class="page"> | |||||
<navbar/> | |||||
<view class="user"> | |||||
<uv-checkbox-group | |||||
shape="circle" | |||||
v-model="checkboxValue"> | |||||
<uv-swipe-action> | |||||
<view | |||||
v-for="(item, index) in list" | |||||
:key="index"> | |||||
<view style="margin-top: 20rpx;"></view> | |||||
<uv-swipe-action-item | |||||
:options="options"> | |||||
<view class="item"> | |||||
<view class="checkbox"> | |||||
<uv-checkbox | |||||
:name="item.id" | |||||
activeColor="#FA5A0A" | |||||
size="40rpx" | |||||
icon-size="35rpx" | |||||
></uv-checkbox> | |||||
</view> | |||||
<image | |||||
class="image" | |||||
src="https://img95.699pic.com/photo/50058/1378.jpg_wh860.jpg" | |||||
mode=""></image> | |||||
<view class="info"> | |||||
<view class="title"> | |||||
<view class=""> | |||||
{{ item.title }} | |||||
</view> | |||||
<view class=""> | |||||
<uv-number-box v-model="item.num" | |||||
@change="valChange"></uv-number-box> | |||||
</view> | |||||
</view> | |||||
<view class="unit"> | |||||
规格:{{ item.unit }} | |||||
<uv-icon name="arrow-down"></uv-icon> | |||||
</view> | |||||
<view class="price"> | |||||
¥<text>{{ item.price }}</text>元 | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</uv-swipe-action-item> | |||||
</view> | |||||
</uv-swipe-action> | |||||
</uv-checkbox-group> | |||||
<view class="action"> | |||||
<view class="icon"> | |||||
<image src="/static/image/cart/1.png" mode=""></image> | |||||
<view class="num"> | |||||
{{ checkboxValue.length }} | |||||
</view> | |||||
</view> | |||||
<view class="price"> | |||||
<view class="count"> | |||||
合计 | |||||
<view class=""> | |||||
¥<text>{{ totalPrice }}</text> | |||||
</view> | |||||
</view> | |||||
<view class="text"> | |||||
共{{ checkboxValue.length }}件,已享受更低优惠 | |||||
</view> | |||||
</view> | |||||
<view class="btn"> | |||||
去结算 | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<tabber select="3" /> | |||||
</view> | |||||
</template> | |||||
<script> | |||||
import tabber from '@/components/base/tabbar.vue' | |||||
export default { | |||||
components: { | |||||
tabber, | |||||
}, | |||||
data() { | |||||
return { | |||||
value : 0, | |||||
checkboxValue : [], | |||||
options: [ | |||||
{ | |||||
text: '删除', | |||||
style: { | |||||
backgroundColor: '#FA5A0A' | |||||
} | |||||
}, | |||||
], | |||||
list : [ | |||||
{ | |||||
id : 1, | |||||
title : '桌布租赁', | |||||
num : 1, | |||||
price : 299, | |||||
unit : '120*40*75【桌子尺寸】', | |||||
}, | |||||
{ | |||||
id : 2, | |||||
title : '桌布租赁', | |||||
num : 1, | |||||
price : 299, | |||||
unit : '120*40*75【桌子尺寸】', | |||||
}, | |||||
], | |||||
} | |||||
}, | |||||
computed: { | |||||
totalPrice(){ | |||||
if (!this.checkboxValue.length) { | |||||
return 0 | |||||
} | |||||
let price = 0 | |||||
this.list.forEach(n => { | |||||
if(this.checkboxValue.includes(n.id)){ | |||||
price += n.price * n.num | |||||
} | |||||
}) | |||||
return price | |||||
}, | |||||
}, | |||||
methods: { | |||||
valChange(){ | |||||
}, | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.page { | |||||
padding-bottom: 200rpx; | |||||
} | |||||
.user { | |||||
.item{ | |||||
background-color: #fff; | |||||
display: flex; | |||||
padding: 30rpx; | |||||
.checkbox{ | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
} | |||||
.image{ | |||||
width: 200rpx; | |||||
height: 200rpx; | |||||
border-radius: 20rpx; | |||||
} | |||||
.info{ | |||||
flex: 1; | |||||
.title{ | |||||
display: flex; | |||||
padding: 10rpx 20rpx; | |||||
justify-content: space-between; | |||||
} | |||||
.unit{ | |||||
font-size: 24rpx; | |||||
padding: 10rpx 20rpx; | |||||
color: #717171; | |||||
display: flex; | |||||
align-items: center; | |||||
} | |||||
.price{ | |||||
color: $uni-color; | |||||
font-size: 28rpx; | |||||
padding: 10rpx 20rpx; | |||||
text{ | |||||
font-size: 36rpx; | |||||
font-weight: 900; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.action{ | |||||
width: 700rpx; | |||||
position: fixed; | |||||
bottom: 220rpx; | |||||
left: 25rpx; | |||||
background-color: #fff; | |||||
height: 100rpx; | |||||
border-radius: 50rpx; | |||||
box-shadow: 0 0 6rpx 6rpx #00000010; | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
overflow: hidden; | |||||
.icon{ | |||||
position: relative; | |||||
width: 80rpx; | |||||
height: 80rpx; | |||||
margin: 0 20rpx; | |||||
image{ | |||||
width: 80rpx; | |||||
height: 80rpx; | |||||
} | |||||
.num{ | |||||
position: absolute; | |||||
right: 10rpx; | |||||
top: 0rpx; | |||||
background-color: $uni-color; | |||||
color: #fff; | |||||
font-size: 18rpx; | |||||
border-radius: 50%; | |||||
height: 30rpx; | |||||
width: 30rpx; | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
} | |||||
} | |||||
.price{ | |||||
.count{ | |||||
display: flex; | |||||
font-size: 26rpx; | |||||
align-items: center; | |||||
view{ | |||||
color: $uni-color; | |||||
margin-left: 10rpx; | |||||
text{ | |||||
font-size: 32rpx; | |||||
font-weight: 900; | |||||
} | |||||
} | |||||
} | |||||
.text{ | |||||
font-size: 20rpx; | |||||
color: #717171; | |||||
} | |||||
} | |||||
.btn{ | |||||
margin-left: auto; | |||||
background-color: $uni-color; | |||||
height: 100%; | |||||
padding: 0 50rpx; | |||||
color: #fff; | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
} | |||||
} | |||||
} | |||||
</style> |
@ -1,181 +0,0 @@ | |||||
<template> | |||||
<view class="page"> | |||||
<navbar/> | |||||
<view class="category"> | |||||
<uv-vtabs | |||||
:chain="chain" | |||||
:list="category" | |||||
height="1000px" | |||||
:barItemBadgeStyle="{right:'20px',top:'12px'}" | |||||
@change="change"> | |||||
<uv-vtabs-item> | |||||
<view class="category-title"> | |||||
租赁 | |||||
</view> | |||||
<view class="list"> | |||||
<view class="item" v-for="(item,index) in list" :key="index" | |||||
@click="$utils.navigateTo('/pages_order/product/productDetail?id=123')"> | |||||
<view class="item-image"> | |||||
<image | |||||
:src="item.image" | |||||
mode="aspectFill"></image> | |||||
</view> | |||||
<view class="item-unit"> | |||||
<text class="text">{{item.unit}}</text> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</uv-vtabs-item> | |||||
</uv-vtabs> | |||||
</view> | |||||
<tabber select="1" /> | |||||
</view> | |||||
</template> | |||||
<script> | |||||
import tabber from '@/components/base/tabbar.vue' | |||||
export default { | |||||
components: { | |||||
tabber, | |||||
}, | |||||
data() { | |||||
return { | |||||
category: [ | |||||
{ | |||||
name : '桌布' | |||||
}, | |||||
{ | |||||
name : '桌布' | |||||
}, | |||||
{ | |||||
name : '桌布' | |||||
}, | |||||
], | |||||
list : [ | |||||
{ | |||||
unit : '100*50*60', | |||||
image : 'https://img95.699pic.com/photo/50058/1378.jpg_wh860.jpg', | |||||
}, | |||||
{ | |||||
unit : '100*50*60', | |||||
image : 'https://img95.699pic.com/photo/50058/1378.jpg_wh860.jpg', | |||||
}, | |||||
{ | |||||
unit : '100*50*60', | |||||
image : 'https://img95.699pic.com/photo/50058/1378.jpg_wh860.jpg', | |||||
}, | |||||
{ | |||||
unit : '100*50*60', | |||||
image : 'https://img95.699pic.com/photo/50058/1378.jpg_wh860.jpg', | |||||
}, | |||||
{ | |||||
unit : '100*50*60', | |||||
image : 'https://img95.699pic.com/photo/50058/1378.jpg_wh860.jpg', | |||||
}, | |||||
{ | |||||
unit : '100*50*60', | |||||
image : 'https://img95.699pic.com/photo/50058/1378.jpg_wh860.jpg', | |||||
}, | |||||
{ | |||||
unit : '100*50*60', | |||||
image : 'https://img95.699pic.com/photo/50058/1378.jpg_wh860.jpg', | |||||
}, | |||||
{ | |||||
unit : '100*50*60', | |||||
image : 'https://img95.699pic.com/photo/50058/1378.jpg_wh860.jpg', | |||||
}, | |||||
{ | |||||
unit : '100*50*60', | |||||
image : 'https://img95.699pic.com/photo/50058/1378.jpg_wh860.jpg', | |||||
}, | |||||
], | |||||
chain: false, | |||||
value: 0 | |||||
} | |||||
}, | |||||
computed: { | |||||
list2() { | |||||
const _list = this.list[this.value]?.childrens; | |||||
return _list ? _list : []; | |||||
} | |||||
}, | |||||
onReady() { | |||||
}, | |||||
methods: { | |||||
change(index) { | |||||
console.log('选项改变:', index) | |||||
this.value = index; | |||||
} | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.category { | |||||
font-size: 30rpx; | |||||
color: #333; | |||||
min-height: 100vh; | |||||
.category-title{ | |||||
position: relative; | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
height: 120rpx; | |||||
&::before, | |||||
&::after { | |||||
position: absolute; | |||||
top: 50%; | |||||
content: ''; | |||||
width: 10%; | |||||
border-top: 2rpx solid black; | |||||
} | |||||
&::before { | |||||
left: 25%; | |||||
} | |||||
&::after { | |||||
right: 25%; | |||||
} | |||||
} | |||||
.list{ | |||||
display: flex; | |||||
flex-wrap: wrap; | |||||
margin: 0 auto; | |||||
width: 490rpx; | |||||
.item { | |||||
padding: 10rpx 20rpx; | |||||
display: flex; | |||||
flex-direction: column; | |||||
justify-content: center; | |||||
align-items: center; | |||||
margin-bottom: 20rpx; | |||||
.item-image { | |||||
width: 120rpx; | |||||
height: 120rpx; | |||||
image{ | |||||
height: 100%; | |||||
width: 100%; | |||||
border-radius: 50%; | |||||
} | |||||
} | |||||
.item-unit { | |||||
font-size: 24rpx; | |||||
margin-top: 15rpx; | |||||
color: #555; | |||||
} | |||||
} | |||||
.gap { | |||||
padding: 0 30rpx; | |||||
} | |||||
} | |||||
} | |||||
</style> |