Merge pull request '购物车页面制作' (#34) from Brunch_DBK into main

pull/39/head
pikvyz67s 2 months ago
commit c1b42bfad4

File diff suppressed because it is too large Load Diff

@ -63,7 +63,7 @@
"@dcloudio/vite-plugin-uni": "3.0.0-4070520250711001",
"@vue/runtime-core": "^3.4.21",
"sass": "^1.90.0",
"sass-loader": "^10.1.1",
"sass-loader": "^16.0.5",
"vite": "5.2.8"
}
}

@ -1,14 +1,14 @@
import {
createSSRApp
} from "vue";
//引入 uView UI
import uView from './uni_modules/vk-uview-ui'
// 引入 uView UI
import uView from './uni_modules/vk-uview-ui';
import App from "./App.vue";
export function createApp() {
const app = createSSRApp(App);
//使用 uView UI
app.use(uView)
// 使用 uView UI
app.use(uView);
return {
app,
};
}
}

@ -5,27 +5,27 @@
"style": {
"navigationBarTitleText": "首页"
}
},
{
"path" : "pages/category/category",
"style" :
{
"navigationBarTitleText" : "分类"
}, {
"path": "pages/category/category",
"style": {
"navigationBarTitleText": "分类",
"enablePullDownRefresh": false
}
},
{
"path" : "pages/car/car",
"style" :
{
"navigationBarTitleText" : "购物车"
}, {
"path": "pages/car/car",
"style": {
"navigationBarTitleText": "购物车",
"enablePullDownRefresh": false
}
},
{
"path" : "pages/mine/mine",
"style" :
{
"navigationBarTitleText" : "我的"
}, {
"path": "pages/mine/mine",
"style": {
"navigationBarTitleText": "我的",
"enablePullDownRefresh": false
}
},
{
"path" : "pages/detail/detail",
@ -36,9 +36,9 @@
}
],
"globalStyle": {
//
// black/white
"navigationBarTextStyle": "white",
//
//
"navigationBarTitleText": "微信点餐小程序",
//
"navigationBarBackgroundColor": "#F3AF28",
@ -46,8 +46,8 @@
"backgroundColor": "#F8F8F8"
},
"tabBar": {
"color": "#7A7E83",
"selectedColor": "#3cc51f",
"color": "#333333",
"selectedColor": "#F3AF28",
"borderStyle": "black",
"backgroundColor": "#ffffff",
"list": [{
@ -72,5 +72,4 @@
"text": "我的"
}]
}
}

@ -1,22 +1,252 @@
<template>
<view>
<view style='padding-bottom: 60px;' v-if="goods.length > 0">
<view class="goods-detail" v-for="(item,index) in goods" :key="index">
<view class="detail-left">
<view class="goods-left">
<checkbox-group @change="selected($event,item)">
<label>
<checkbox class="selected" :data-goodsId="item.goodsId" :data-price="item.price"
:data-num="item.num" color="#555555" :checked="item.flag" />
</label>
</checkbox-group>
<image :src="item.goodsImage" style="width: 150rpx;height: 140rpx;margin-left: 10px;"></image>
</view>
<view class="size">
<text style="font-size: 25rpx;">名称{{item.goodsName}}</text>
<text style="font-size: 25rpx;">规格{{item.specsName}}</text>
<text class="goods-price">{{item.price}}{{item.goodsUnit}}</text>
</view>
</view>
<view class="detail-right">
<text class="subtract" @click="reduce(item)">-</text>
<text class="num">{{item.num}}</text>
<text @click="add(item)" class="add">+</text>
</view>
</view>
</view>
<view class="end">
<view class="end-left">
<checkbox-group @change="selectAlls()">
<label>
<checkbox :checked="allchecked" />全选
</label>
</checkbox-group>
<view>
总计<text style="color: #f00;font-weight: bold;"> {{totalPrice}}</text>
</view>
</view>
<view class="end-right">
结算({{totalNum}})
</view>
</view>
</template>
<script>
export default {
data() {
return {
}
<script setup>
import {
ref,
reactive,
computed
} from 'vue'
const show = ref(true);
const allchecked = ref(true);
const checked = ref(true);
const goods = reactive([{
flag: true,
goodsName: "女款-M",
goodsUnit: '/份',
goodsId: 1,
num: 1,
specsName: '中',
price: 149,
goodsImage: "http://192.168.1.3:8089/images/a35e4257-9e9a-43f8-b077-a7664064ce12.png",
},
{
flag: true,
goodsName: "女款-M",
goodsUnit: '/份',
goodsId: 1,
specsName: '中',
num: 1,
price: 149,
goodsImage: "http://192.168.1.3:8089/images/a35e4257-9e9a-43f8-b077-a7664064ce12.png",
},
{
flag: true,
goodsName: "女款-M",
goodsUnit: '/份',
goodsId: 1,
num: 1,
specsName: '中',
price: 149,
goodsImage: "http://192.168.1.3:8089/images/a35e4257-9e9a-43f8-b077-a7664064ce12.png",
},
{
flag: true,
goodsName: "女款-M",
goodsId: 1,
num: 1,
goodsUnit: '/份',
specsName: '中',
price: 149,
goodsImage: "http://192.168.1.3:8089/images/a35e4257-9e9a-43f8-b077-a7664064ce12.png",
},
methods: {
{
flag: true,
goodsName: "女款-M",
goodsId: 1,
num: 1,
goodsUnit: '/份',
specsName: '中',
price: 149,
goodsImage: "http://192.168.1.3:8089/images/a35e4257-9e9a-43f8-b077-a7664064ce12.png",
}
])
const selected = (e, item) => {
console.log(e)
console.log(item)
if (item.flag == true) {
item.flag = false;
} else {
item.flag = true;
}
// checkedtrueList
let newArr = goods.filter(item => (item.flag == true))
if (newArr.length === goods.length) {
allchecked.value = true;
} else {
allchecked.value = false;
}
// console.log(goods)
}
const selectAlls = () => {
if (allchecked.value == true) {
allchecked.value = false;
// RecordList
goods.forEach(item => {
// this.$set(item, 'flag', false)
item.flag = false
})
} else {
allchecked.value = true;
// RecordList
goods.forEach(item => {
// this.$set(item, 'flag', true)
item.flag = true
})
}
}
const reduce = (item) => {
let num = item.num
if (num > 1) {
num -= 1
} else if (num = 1) {
uni.showToast({
title: "该宝贝不能减少了哟~"
})
}
item.num = num
}
const add = (item) => {
let num = item.num
item.num = num + 1
}
const totalNum = computed(() => {
let totalNum = 0;
goods.map(item => {
item.flag ? totalNum += item.num : totalNum += 0
})
return totalNum
})
const totalPrice = computed(() => {
let totalPrice = 0;
goods.map(item => {
item.flag ? totalPrice += item.num * item.price : totalPrice += 0
})
return totalPrice
})
</script>
<style>
<style lang="scss">
.goods-detail {
display: flex;
padding: 30rpx 15rpx 30rpx 30rpx;
background-color: #fff;
justify-content: space-between;
border-bottom: 5rpx solid #F1F1F1;
align-items: center;
.detail-left {
display: flex;
</style>
.goods-left {
display: flex;
align-items: center;
}
}
.size {
display: flex;
justify-content: space-around;
flex-direction: column;
margin-left: 30rpx;
.goods-price {
font-size: 25rpx;
color: #F44545;
}
}
.detail-right {
text {
width: 50rpx;
line-height: 50rpx;
text-align: center;
display: inline-block;
background-color: #F7F7F7;
margin-right: 10rpx;
}
.add {
color: #FA4305;
border-radius: 10rpx 30rpx 30rpx 10rpx;
margin-right: 20rpx;
}
.subtract {
border-radius: 30rpx 10rpx 10rpx 30rpx;
}
}
}
.end {
width: 100%;
height: 90rpx;
background-color: #fff;
position: fixed;
bottom: 0;
left: 0;
display: flex;
align-items: center;
.end-left {
width: 70%;
display: flex;
justify-content: space-between;
padding: 0 30rpx;
}
.end-right {
width: 30%;
line-height: 90rpx;
background-color: #F44545;
text-align: center;
color: #fff;
}
}
</style>

@ -1,11 +1,5 @@
<template>
<view class="u-wrap">
<!-- <view class="u-search-box">
<view class="u-search-inner">
<u-icon name="search" color="#909399" :size="28"></u-icon>
<text class="u-search-text">搜索uView</text>
</view>
</view> -->
<view class="u-menu-wrap">
<scroll-view scroll-y scroll-with-animation class="u-tab-view menu-scroll-view" :scroll-top="scrollTop">
<view v-for="(item,index) in tabbar" :key="index" class="u-tab-item"
@ -39,77 +33,76 @@
import {
ref,
getCurrentInstance
} from 'vue';
} from "vue"
//
const instance = getCurrentInstance();
const tabbar = ref([{
"name": "早点",
"foods": [{
"name": "豆浆",
"key": "豆浆",
"icon": "/static/swiper_1.png",
"cat": 6
},
{
"name": "油条",
"key": "糕点饼干",
"icon": "/static/swiper_1.png",
"cat": 6
},
{
"name": "油条",
"key": "糕点饼干",
"icon": "/static/swiper_1.png",
"cat": 6
}
]
},
{
"name": "米线",
"foods": [{
"name": "小锅米线",
"key": "豆浆",
"icon": "/static/swiper_1.png",
"cat": 6
},
{
"name": "豆花米线",
"key": "糕点饼干",
"icon": "/static/swiper_1.png",
"cat": 6
}
]
}
"name": "早点",
"foods": [{
"name": "豆浆",
"key": "豆浆",
"icon": "/static/test-5.png",
"cat": 6
},
{
"name": "油条",
"key": "糕点饼干",
"icon": "/static/test-8.png",
"cat": 6
},
{
"name": "油条",
"key": "糕点饼干",
"icon": "/static/test-8.png",
"cat": 6
}
]
},
{
"name": "米线",
"foods": [{
"name": "小锅米线",
"key": "豆浆",
"icon": "/static/test-5.png",
"cat": 6
},
{
"name": "豆花米线",
"key": "糕点饼干",
"icon": "/static/test-5.png",
"cat": 6
}
]
}
])
const scrollTop = ref(0)
const current = ref(0)
const menuHeight = ref(0)
const menuItemHeight = ref(0)
const getImg = () => {
const getImg = ()=>{
return Math.floor(Math.random() * 35)
}
const swichMenu = async (index) => {
if (index == current.value) return;
const swichMenu = async(index)=>{
if(index == current.value) return ;
current.value = index;
// 0
if (menuHeight.value == 0 || menuItemHeight.value == 0) {
if(menuHeight.value == 0 || menuItemHeight.value == 0) {
await getElRect('menu-scroll-view', 'menuHeight');
await getElRect('u-tab-item', 'menuItemHeight');
}
// item
scrollTop.value = index * menuItemHeight.value + menuItemHeight.value / 2 - menuHeight.value / 2;
}
const getElRect = (elClass, dataVal) => {
const getElRect = (elClass, dataVal)=>{
new Promise((resolve, reject) => {
const query = uni.createSelectorQuery().in(instance);
query.select('.' + elClass).fields({
size: true
}, res => {
query.select('.' + elClass).fields({size: true},res => {
// resnull
if (!res) {
if(!res) {
setTimeout(() => {
getElRect(elClass);
}, 10);
return;
return ;
}
instance[dataVal] = res.height;
}).exec();
@ -117,6 +110,7 @@
}
</script>
<style lang="scss" scoped>
.u-wrap {
height: calc(100vh);
@ -168,7 +162,7 @@
font-weight: 400;
line-height: 1;
}
.u-tab-item-active {
position: relative;
color: #000;
@ -176,11 +170,11 @@
font-weight: 600;
background: #fff;
}
.u-tab-item-active::before {
content: "";
position: absolute;
border-left: 4px solid $u-type-primary;
border-left: 4px solid #F3AF28;
height: 32rpx;
left: 0;
top: 39rpx;
@ -189,39 +183,39 @@
.u-tab-view {
height: 100%;
}
.right-box {
background-color: rgb(250, 250, 250);
}
.page-view {
padding: 16rpx;
}
.class-item {
margin-bottom: 30rpx;
background-color: #fff;
padding: 16rpx;
border-radius: 8rpx;
}
.item-title {
font-size: 26rpx;
color: $u-main-color;
font-weight: bold;
}
.item-menu-name {
font-weight: normal;
font-size: 24rpx;
color: $u-main-color;
}
.item-container {
display: flex;
flex-wrap: wrap;
}
.thumb-box {
width: 33.333333%;
display: flex;
@ -230,9 +224,10 @@
flex-direction: column;
margin-top: 20rpx;
}
.item-menu-image {
width: 120rpx;
height: 120rpx;
}
</style>

@ -1,7 +1,7 @@
<template>
<u-swiper name='images' border-radius='1' :duration='duration' :interval='interval' :height="height"
:list="swipperList">
</u-swiper>
<view>
<u-swiper name='images' border-radius='1' :duration='duration' :interval='interval' :height="height"
:list="swipperList"></u-swiper>
</view>
<view class="info">
<view class="title">
@ -10,97 +10,99 @@
<view class="price">
{{price}}<span class='goodsUnit'>{{goodsUnit}}</span>
</view>
<view class="spec-driver">
规格
</view>
<view class="spec-driver">
规格
</view>
<view class="spces">
<view @click="change(index,item)" :class="{ active: current === index }" v-for="(item,index) in specs"
class="item">
{{item.specsName}}
</view>
<view class="spces">
<view @click="change(index,item)" :class="{ active: current === index }" v-for="(item,index) in specs"
class="item">
{{item.specsName}}
</view>
</view>
<view class="detalis">
<view @click="tabClick(0)" class="left" :class="[tabIndex == 0 ? 'item-active':'item']">
详情
</view>
<view class="detalis">
<view @click="tabClick(0)" class="left" :class="{'tabIndex === 0 ? 'item-active':'item'}]">
详情
</view>
<view @click="tabClick(1)" class="right" :class="{'tabIndex === 1 ? 'item-active':'item'}]">
评论
</view>
<view @click="tabClick(1)" class="right" :class="[tabIndex == 1 ? 'item-active':'item']">
评论
</view>
<swiper class="swiper-box" :current="swiperCurrent" @animationfinish="animationfinish">
<swiper-item class="swiper-item">
<scroll-view scroll-y style="height: 100%;width: 100%;">
<view class="page-box">
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
</view>
</scroll-view>
</swiper-item>
<swiper-item class="swiper-item">
<scroll-view scroll-y style="height: 100%;width: 100%">
<view class="page-box">
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
</view>
</scroll-view>
</swiper-item>
</swiper>
<view class="navigation">
<view class="left">
<view class="item">
<u-icon name="home" :size="40" :color="$u.color['contentColor']"></u-icon>
<view class="text u-line-1">店铺</view>
</view>
<swiper class="swiper-box" :current="swiperCurrent" @animationfinish="animationfinish">
<swiper-item class="swiper-item">
<scroll-view scroll-y style="height: 100%;width: 100%;">
<view class="page-box">
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
我是内容一
</view>
<view class="item car">
<u-badge class="car-num" :count="9" type="error" :offset="[-3, -6]"></u-badge>
<u-icon name="shopping-cart" :size="40" :color="$u.color['contentColor']"></u-icon>
<view class="text u-line-1">购物车</view>
</scroll-view>
</swiper-item>
<swiper-item class="swiper-item">
<scroll-view scroll-y style="height: 100%;width: 100%;">
<view class="page-box">
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
我是内容二
</view>
</scroll-view>
</swiper-item>
</swiper>
<view class="navigation">
<view class="left">
<view class="item">
<u-icon name="home" :size="40" :color="$u.color['contentColor']"></u-icon>
<view class="text u-line-1">首页</view>
</view>
<view class="right">
<view class="cart btn u-line-1">加入购物车</view>
<view class="buy btn u-line-1">立即购买</view>
<view class="item car">
<u-badge class="car-num" :count="9" type="error" :offset="[-3, -6]"></u-badge>
<u-icon name="shopping-cart" :size="40" :color="$u.color['contentColor']"></u-icon>
<view class="text u-line-1">购物车</view>
</view>
</view>
<view class="right">
<view class="cart btn u-line-1">加入购物车</view>
<view class="buy btn u-line-1">立即购买</view>
</view>
</view>
</template>
<script setup>
import {
ref
} from 'vue';
import {
onLoad
} from '@dcloudio/uni-app';
import {
ref
} from 'vue';
const current = ref(0)
//
const height = ref('400')
@ -112,7 +114,7 @@
const interval = ref(2000)
//
const duration = ref(500)
//
//
const swiperList = ref([])
//
const swipperList = ref([])
@ -148,10 +150,9 @@
swiperCurrent.value = current;
tabIndex.value = current;
}
onLoad((options) => {
const goods = JSON.parse(options.goods)
swiperList.value = goods.goodsImage.split(',')
swipperList.value = goods.goodsImage.split(',')
console.log(goods)
goodsUnit.value = goods.goodsUnit
title.value = goods.goodsName
@ -160,7 +161,7 @@
})
</script>
<style lang="scss" scoped>
<style lang="scss">
page {
display: flex;
flex-direction: column;

@ -1,12 +1,13 @@
<template>
<u-swiper name='images' border-radius='1' :duration='duration' :interval='interval' :height="height"
:list="swiperList"></u-swiper>
<u-divider margin-top='20' margin-bottom='20' color="#F3AF28">热门推荐</u-divider>
<u-swiper border-radius='1' :duration='duration' :interval='interval' :height="height" :list="swiperList">
</u-swiper>
<u-divider margin-top='20' margin-bottom='20' color="#F3AF28">店长推荐</u-divider>
<view class="wrap">
<u-waterfall v-model="flowList" ref="uWaterfall1">
<u-waterfall v-model="flowList" ref="uWaterfall">
<template v-slot:left="{leftList}">
<view class="demo-warter" v-for="(item, index) in leftList" :key="index">
<u-lazy-load @click="toDetails(item)" threshold="-450" border-radius="10" :image="item.image" :index="index"></u-lazy-load>
<!-- 警告微信小程序中需要hx2.8.11版本才支持在template中结合其他组件比如下方的lazy-load组件 -->
<u-lazy-load threshold="-450" border-radius="10" :image="item.image" :index="index"></u-lazy-load>
<view class="demo-title">
{{item.title}}
</view>
@ -17,13 +18,13 @@
<view class="demo-title">
/
</view>
<image @click="toDetails(item)" class="carimg" :src="carimg"></image>
<image class="carimg" :src="carimg"></image>
</view>
</view>
</template>
<template v-slot:right="{rightList}">
<view class="demo-warter" v-for="(item, index) in rightList" :key="index">
<u-lazy-load @click="toDetails(item)" threshold="-450" border-radius="10" :image="item.image" :index="index"></u-lazy-load>
<u-lazy-load threshold="-450" border-radius="10" :image="item.image" :index="index"></u-lazy-load>
<view class="demo-title">
{{item.title}}
</view>
@ -34,7 +35,7 @@
<view class="demo-title">
/
</view>
<image @click="toDetails(item)" class="carimg" :src="carimg"></image>
<image class="carimg" :src="carimg"></image>
</view>
</view>
</template>
@ -46,7 +47,6 @@
import {
ref
} from 'vue';
//
const carimg = ref('/static/goodscar.png')
//
const height = ref('400')
@ -58,56 +58,66 @@
const interval = ref(2000)
//
const duration = ref(500)
//
//
const swiperList = ref([{
image: '/static/swiper_1.png'
image: '/static/swipper1.png'
}, {
image: '/static/swiper_1.png'
image: '/static/swipper2.png'
}, {
image: '/static/swiper_1.png'
image: '/static/swipper3.png'
}])
//
//
const flowList = ref([{
price: 75,
price: 20,
title: '小炒肉盖饭',
image: '/static/swiper_1.png'
image: '/static/test-5.png',
},
{
price: 385,
price: 12,
title: '手拉面',
image: '/static/swiper_1.png'
image: '/static/test-8.png',
},
{
price: 784,
price: 10,
title: '小笼包',
image: '/static/swiper_1.png'
image: '/static/test-5.png',
},
{
price: 7891,
price: 15,
title: '馄饨',
image: '/static/swiper_1.png'
image: '/static/test-8.png',
},
{
price: 2341,
price: 18,
title: '香菇肉片盖饭',
image: '/static/swiper_1.png'
image: '/static/test-8.png',
},
{
price: 2342,
price: 15,
title: '番茄鸡蛋盖饭',
image: '/static/swiper_1.png'
image: '/static/test-8.png',
},
{
price: 18,
title: '香菇肉片盖饭',
image: '/static/test-8.png',
},
{
price: 15,
title: '番茄鸡蛋盖饭',
image: '/static/test-8.png',
}
])
//
const toDetails = (item)=>{
//
const toDetails = (item) => {
//details.vue
uni.navigateTo({
url:'../detail/detail?goods='+JSON.stringify(item)
url: '../detail/detail?goods=' + JSON.stringify(item)
});
}
</script>
<style>
<style lang="scss">
.content {
display: flex;
flex-direction: column;
@ -140,7 +150,7 @@
.demo-warter {
border-radius: 8px;
margin: 5px;
/* margin: 5px; */
background-color: #ffffff;
padding: 5px;
position: relative;
@ -194,7 +204,7 @@
.demo-price {
font-size: 30rpx;
color: #FF7670;
color: $u-type-error;
margin-top: 5px;
}
@ -212,7 +222,7 @@
.carimg {
height: 50rpx;
width: 50rpx;
margin-top: 5rpx;
margin-top: 5px;
margin-left: 8px;
}
</style>

@ -1,6 +1,6 @@
<template>
<view>
我的
</view>
</template>

Binary file not shown.

After

Width:  |  Height:  |  Size: 649 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 879 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 751 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 912 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 859 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 473 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 938 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Loading…
Cancel
Save