master
jevononlie 5 months ago
parent 6b093ec412
commit c13c9c495b

@ -85,6 +85,12 @@
"style": {
"navigationBarTitleText": "到站回收订单"
}
},
{
"path": "pages/recyclingCabinet/recyclingCabinet",
"style": {
"navigationBarTitleText": "选择身份"
}
}
],
"globalStyle": {

@ -1,161 +0,0 @@
<script setup lang="ts">
import { onMounted, ref, defineEmits } from 'vue'
import type { OrderListParams } from '@/types/order'
//
const isFinish = ref(false)
//
const isTriggered = ref(false)
// porps
const props = defineProps<{
orderState: number
}>()
//
const isLoading = ref(false)
//
const queryParams: Required<OrderListParams> = {
page: 1,
pageSize: 5,
orderState: props.orderState,
}
const dataList = ref([
{
id: 1,
name: 'dd',
},
{
id: 2,
name: 'dd',
},
{
id: 3,
name: 'dd',
},
{
id: 4,
name: 'dd',
},
{
id: 5,
name: 'dd',
},
])
const getMemberOrderData = async () => {
// 退
if (isLoading.value) return
// 退
if (isFinish.value === true) {
return uni.showToast({ icon: 'none', title: '没有更多数据~' })
}
//
isLoading.value = true
//
const res = await getMemberOrderAPI(queryParams)
// debugger
//
isLoading.value = false
//
orderList.value.push(...res.result.items)
//
if (queryParams.page < res.result.pages) {
//
queryParams.page++
} else {
//
isFinish.value = true
}
}
onMounted(() => {
// getMemberOrderData()
// const arr: object[] = [
// {
// id: 1,
// name: '233'
// }
// ]
// orderList.value.push(...arr)
})
//
const onRefresherrefresh = async () => {
//
isTriggered.value = true
//
queryParams.page = 1
orderList.value = []
isFinish.value = false
//
await getMemberOrderData()
//
isTriggered.value = false
}
</script>
<template>
<scroll-view
enable-back-to-top
scroll-y
class="orders"
refresher-enabled
:refresher-triggered="isTriggered"
@refresherrefresh="onRefresherrefresh"
@scrolltolower="getMemberOrderData"
>
<view class="dataList">
<view class="item" v-for="item in dataList" :key="item.id">
<image src="/static/images/news_icon.png" mode="aspectFit" class="img"></image>
<view class="right">
<view class="hd">
<view class="title">13277590688</view>
<view class="time">4分钟前</view>
</view>
<view class="info">什么时间到</view>
</view>
</view>
</view>
</scroll-view>
</template>
<style lang="scss">
.dataList {
padding: 20rpx 20rpx;
.item {
display: flex;
justify-content: flex-start;
align-items: center;
margin: 20rpx 0;
padding: 20rpx 10rpx;
border-radius: 16rpx;
box-shadow: 0px 0px 8px 0px rgba(164, 182, 203, 0.33);
.img {
width: 72rpx;
height: 72rpx;
margin-right: 20rpx;
}
.right {
flex: 1;
margin-right: 10rpx;
.hd {
display: flex;
flex-direction: row;
justify-content: space-between;
.title {
color: #3d3d3d;
font-size: 32rpx;
}
.time {
color: #afb0b6;
font-size: 28rpx;
}
}
.info {
color: #868891;
margin: 20rpx 0;
font-size: 30rpx;
}
}
}
}
</style>

@ -1,161 +0,0 @@
<script setup lang="ts">
import { onMounted, ref, defineEmits } from 'vue'
import type { OrderListParams } from '@/types/order'
//
const isFinish = ref(false)
//
const isTriggered = ref(false)
// porps
const props = defineProps<{
orderState: number
}>()
//
const isLoading = ref(false)
//
const queryParams: Required<OrderListParams> = {
page: 1,
pageSize: 5,
orderState: props.orderState,
}
const dataList = ref([
{
id: 1,
name: 'dd',
},
{
id: 2,
name: 'dd',
},
{
id: 3,
name: 'dd',
},
{
id: 4,
name: 'dd',
},
{
id: 5,
name: 'dd',
},
])
const getMemberOrderData = async () => {
// 退
if (isLoading.value) return
// 退
if (isFinish.value === true) {
return uni.showToast({ icon: 'none', title: '没有更多数据~' })
}
//
isLoading.value = true
//
const res = await getMemberOrderAPI(queryParams)
// debugger
//
isLoading.value = false
//
orderList.value.push(...res.result.items)
//
if (queryParams.page < res.result.pages) {
//
queryParams.page++
} else {
//
isFinish.value = true
}
}
onMounted(() => {
// getMemberOrderData()
// const arr: object[] = [
// {
// id: 1,
// name: '233'
// }
// ]
// orderList.value.push(...arr)
})
//
const onRefresherrefresh = async () => {
//
isTriggered.value = true
//
queryParams.page = 1
orderList.value = []
isFinish.value = false
//
await getMemberOrderData()
//
isTriggered.value = false
}
</script>
<template>
<scroll-view
enable-back-to-top
scroll-y
class="orders"
refresher-enabled
:refresher-triggered="isTriggered"
@refresherrefresh="onRefresherrefresh"
@scrolltolower="getMemberOrderData"
>
<view class="dataList">
<view class="item" v-for="item in dataList" :key="item.id">
<image src="/static/images/news_icon.png" mode="aspectFit" class="img"></image>
<view class="right">
<view class="hd">
<view class="title">平台运营中心</view>
<view class="time">4分钟前</view>
</view>
<view class="info">派送给您编号HS21545455244...</view>
</view>
</view>
</view>
</scroll-view>
</template>
<style lang="scss">
.dataList {
padding: 20rpx 20rpx;
.item {
display: flex;
justify-content: flex-start;
align-items: center;
margin: 20rpx 0;
padding: 20rpx 10rpx;
border-radius: 16rpx;
box-shadow: 0px 0px 8px 0px rgba(164, 182, 203, 0.33);
.img {
width: 72rpx;
height: 72rpx;
margin-right: 20rpx;
}
.right {
flex: 1;
margin-right: 10rpx;
.hd {
display: flex;
flex-direction: row;
justify-content: space-between;
.title {
color: #3d3d3d;
font-size: 32rpx;
}
.time {
color: #afb0b6;
font-size: 28rpx;
}
}
.info {
color: #868891;
margin: 20rpx 0;
font-size: 30rpx;
}
}
}
}
</style>

@ -1,141 +0,0 @@
<script setup lang="ts">
import { ref } from 'vue'
import newsItem from './components/newsItem.vue'
import noticeItem from './components/noticeItem.vue'
//
const { safeAreaInsets } = uni.getSystemInfoSync()
// tabs
const orderTabs = ref([
{ orderState: 0, title: '通知', isRender: false },
{ orderState: 1, title: '私信', isRender: false },
])
//
const activeIndex = ref(orderTabs.value.findIndex((v) => v.orderState === Number(0)))
//
orderTabs.value[activeIndex.value].isRender = true
</script>
<template>
<!-- <CartMain /> -->
<view class="viewport">
<!-- 自定义导航栏: 默认透明不可见, scroll-view 滚动到 50 时展示 -->
<view class="navbar" :style="{ paddingTop: safeAreaInsets?.top + 'px' }">
<view class="wrap">
<navigator open-type="navigateBack" class="back icon-left"></navigator>
<view class="title"></view>
</view>
</view>
<view class="tabs">
<text
class="item"
:class="{ active: activeIndex == index }"
v-for="(item, index) in orderTabs"
:key="item.title"
@tap="
() => {
activeIndex = index
item.isRender = true
}
"
>
{{ item.title }}
</text>
<!-- 游标 -->
<view class="cursor" :style="{ left: activeIndex ? '65%' : '14%' }"></view>
</view>
<!-- 滑动容器 -->
<swiper class="swiper" :current="activeIndex" @change="activeIndex = $event.detail.current">
<!-- 滑动项 -->
<swiper-item v-for="item in orderTabs" :key="item.title">
<newsItem v-if="activeIndex" />
<noticeItem v-else />
</swiper-item>
</swiper>
</view>
</template>
<style lang="scss">
page {
height: 100%;
}
.viewport {
height: 100%;
display: flex;
flex-direction: column;
// background-color: #3775F6;
.navbar {
width: 750rpx;
color: #000;
position: fixed;
top: 0;
left: 0;
z-index: 9;
/* background-color: #f8f8f8; */
background-color: #3775f6;
.wrap {
position: relative;
background-color: #3775f6;
.title {
height: 44px;
display: flex;
justify-content: center;
align-items: center;
font-size: 32rpx;
/* color: #000; */
color: #fff;
}
.back {
position: absolute;
left: 0;
height: 44px;
width: 44px;
font-size: 44rpx;
display: flex;
align-items: center;
justify-content: center;
/* color: #000; */
color: #fff;
}
}
}
.tabs {
display: flex;
justify-content: space-around;
line-height: 60rpx;
background-color: #3775f6;
position: relative;
z-index: 9;
margin-top: 128rpx;
width: 100%;
.item {
flex: 1;
text-align: center;
padding: 20rpx;
font-size: 28rpx;
color: #fff;
// &.active {
// border-bottom: 2rpx solid #5386e4;
// }
}
.cursor {
position: absolute;
left: 13%;
bottom: 0;
width: 20%;
height: 6rpx;
padding: 0 50rpx;
background-color: #fff;
/* 过渡效果 */
transition: all 0.4s;
}
}
// swiper
.swiper {
background-color: #f7f7f8;
}
}
</style>

@ -1,493 +0,0 @@
<script setup lang="ts">
import type { InputNumberBoxEvent } from '@/components/vk-data-input-number-box/vk-data-input-number-box'
import { useGuessList } from '@/composables'
import {
deleteMemberCartAPI,
getMemberCartAPI,
putMemberCartBySkuIdAPI,
putMemberCartSelectedAPI,
} from '@/services/cart'
import { useMemberStore } from '@/stores'
import type { CartItem } from '@/types/cart'
import { onShow } from '@dcloudio/uni-app'
import { computed, ref } from 'vue'
//
defineProps<{
safeAreaInsetBottom?: boolean
}>()
//
const { safeAreaInsets } = uni.getSystemInfoSync()
// Store
const memberStore = useMemberStore()
//
const cartList = ref<CartItem[]>([])
//
const showCartList = ref(true)
const getMemberCartData = async () => {
const res = await getMemberCartAPI()
cartList.value = res.result
showCartList.value = res.result.length > 0
}
// :
onShow(() => {
if (memberStore.profile) {
getMemberCartData()
}
})
//
const onDeleteCart = (skuId: string) => {
//
uni.showModal({
content: '是否删除',
confirmColor: '#3775F6',
success: async (res) => {
if (res.confirm) {
//
await deleteMemberCartAPI({ ids: [skuId] })
//
getMemberCartData()
}
},
})
}
//
const onChangeCount = (ev: InputNumberBoxEvent) => {
putMemberCartBySkuIdAPI(ev.index, { count: ev.value })
}
// -
const onChangeSelected = (item: CartItem) => {
// -
item.selected = !item.selected
//
putMemberCartBySkuIdAPI(item.skuId, { selected: item.selected })
}
//
const isSelectedAll = computed(() => {
return cartList.value.length && cartList.value.every((v) => v.selected)
})
// -
const onChangeSelectedAll = () => {
//
const _isSelectedAll = !isSelectedAll.value
//
cartList.value.forEach((item) => {
item.selected = _isSelectedAll
})
//
putMemberCartSelectedAPI({ selected: _isSelectedAll })
}
//
const selectedCartList = computed(() => {
return cartList.value.filter((v) => v.selected)
})
//
const selectedCartListCount = computed(() => {
return selectedCartList.value.reduce((sum, item) => sum + item.count, 0)
})
//
const selectedCartListMoney = computed(() => {
return selectedCartList.value
.reduce((sum, item) => sum + item.count * item.nowPrice, 0)
.toFixed(2)
})
//
const gotoPayment = () => {
if (selectedCartListCount.value === 0) {
return uni.showToast({
icon: 'none',
title: '请选择商品',
})
}
//
uni.navigateTo({ url: '/pagesOrder/create/create' })
}
//
const { guessRef, onScrolltolower } = useGuessList()
</script>
<template>
<scroll-view enable-back-to-top scroll-y class="scroll-view" @scrolltolower="onScrolltolower">
<!-- 已登录: 显示购物车 -->
<template v-if="memberStore.profile">
<!-- 购物车列表 -->
<view class="cart-list" v-if="showCartList">
<!-- 优惠提示 -->
<view class="tips">
<text class="label">满减</text>
<text class="desc">满1件, 即可享受9折优惠</text>
</view>
<!-- 滑动操作分区 -->
<uni-swipe-action>
<!-- 滑动操作项 -->
<uni-swipe-action-item v-for="item in cartList" :key="item.skuId" class="cart-swipe">
<!-- 商品信息 -->
<view class="goods">
<!-- 选中状态 -->
<text @tap="onChangeSelected(item)" class="checkbox" :class="{ checked: item.selected }"></text>
<navigator :url="`/pages/goods/goods?id=${item.id}`" hover-class="none" class="navigator">
<image mode="aspectFill" class="picture" :src="item.picture"></image>
<view class="meta">
<view class="name ellipsis">{{ item.name }}</view>
<view class="attrsText ellipsis">{{ item.attrsText }}</view>
<view class="price">{{ item.nowPrice }}</view>
</view>
</navigator>
<!-- 商品数量 -->
<view class="count">
<vk-data-input-number-box v-model="item.count" :min="1" :max="item.stock" :index="item.skuId"
@change="onChangeCount" />
</view>
</view>
<!-- 右侧删除按钮 -->
<template #right>
<view class="cart-swipe-right">
<button @tap="onDeleteCart(item.skuId)" class="button delete-button">删除</button>
</view>
</template>
</uni-swipe-action-item>
</uni-swipe-action>
</view>
<!-- 购物车空状态 -->
<view class="cart-blank" v-else>
<image src="/static/images/blank_cart.png" class="image" />
<text class="text">购物车还是空的快来挑选好货吧</text>
<navigator url="/pages/index/index" hover-class="none">
<button class="button">去首页看看</button>
</navigator>
</view>
<!-- 吸底工具栏 -->
<view v-if="showCartList" class="toolbar"
:style="{ paddingBottom: safeAreaInsetBottom ? safeAreaInsets?.bottom + 'px' : 0 }">
<text @tap="onChangeSelectedAll" class="all" :class="{ checked: isSelectedAll }">全选</text>
<text class="text">合计:</text>
<text class="amount">{{ selectedCartListMoney }}</text>
<view class="button-grounp">
<view @tap="gotoPayment" class="button payment-button" :class="{ disabled: selectedCartListCount === 0 }">
去结算({{ selectedCartListCount }})
</view>
</view>
</view>
</template>
<!-- 未登录: 提示登录 -->
<view class="login-blank" v-else>
<text class="text">登录后可查看购物车中的商品</text>
<navigator url="/pages/login/login" hover-class="none">
<button class="button">去登录</button>
</navigator>
</view>
<!-- 猜你喜欢 -->
<XtxGuess ref="guessRef" />
<!-- 底部占位空盒子 -->
<view class="toolbar-height"></view>
</scroll-view>
</template>
<style lang="scss">
//
:host {
height: 100vh;
display: flex;
flex-direction: column;
overflow: hidden;
background-color: #f7f7f8;
}
//
.scroll-view {
flex: 1;
background-color: #f7f7f8;
}
//
.cart-list {
padding: 0 20rpx;
//
.tips {
display: flex;
align-items: center;
line-height: 1;
margin: 30rpx 10rpx;
font-size: 26rpx;
color: #666;
.label {
color: #fff;
padding: 7rpx 15rpx 5rpx;
border-radius: 4rpx;
font-size: 24rpx;
background-color: #3775F6;
margin-right: 10rpx;
}
}
//
.goods {
display: flex;
padding: 20rpx 20rpx 20rpx 80rpx;
border-radius: 10rpx;
background-color: #fff;
position: relative;
.navigator {
display: flex;
}
.checkbox {
position: absolute;
top: 0;
left: 0;
display: flex;
align-items: center;
justify-content: center;
width: 80rpx;
height: 100%;
&::before {
content: '\e6cd';
font-family: 'erabbit' !important;
font-size: 40rpx;
color: #444;
}
&.checked::before {
content: '\e6cc';
color: #3775F6;
}
}
.picture {
width: 170rpx;
height: 170rpx;
}
.meta {
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
margin-left: 20rpx;
}
.name {
height: 72rpx;
font-size: 26rpx;
color: #444;
}
.attrsText {
line-height: 1.8;
padding: 0 15rpx;
font-size: 24rpx;
align-self: flex-start;
border-radius: 4rpx;
color: #888;
background-color: #f7f7f8;
}
.price {
line-height: 1;
font-size: 26rpx;
color: #444;
margin-bottom: 2rpx;
color: #cf4444;
&::before {
content: '¥';
font-size: 80%;
}
}
//
.count {
position: absolute;
bottom: 20rpx;
right: 5rpx;
display: flex;
justify-content: space-between;
align-items: center;
width: 220rpx;
height: 48rpx;
.text {
height: 100%;
padding: 0 20rpx;
font-size: 32rpx;
color: #444;
}
.input {
height: 100%;
text-align: center;
border-radius: 4rpx;
font-size: 24rpx;
color: #444;
background-color: #f6f6f6;
}
}
}
.cart-swipe {
display: block;
margin: 20rpx 0;
}
.cart-swipe-right {
display: flex;
height: 100%;
.button {
display: flex;
justify-content: center;
align-items: center;
width: 50px;
padding: 6px;
line-height: 1.5;
color: #fff;
font-size: 26rpx;
border-radius: 0;
}
.delete-button {
background-color: #cf4444;
}
}
}
//
.cart-blank,
.login-blank {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
height: 60vh;
.image {
width: 400rpx;
height: 281rpx;
}
.text {
color: #444;
font-size: 26rpx;
margin: 20rpx 0;
}
.button {
width: 240rpx !important;
height: 60rpx;
line-height: 60rpx;
margin-top: 20rpx;
font-size: 26rpx;
border-radius: 60rpx;
color: #fff;
background-color: #3775F6;
}
}
//
.toolbar {
position: fixed;
left: 0;
right: 0;
bottom: calc(var(--window-bottom));
z-index: 1;
height: 100rpx;
padding: 0 20rpx;
display: flex;
align-items: center;
border-top: 1rpx solid #ededed;
border-bottom: 1rpx solid #ededed;
background-color: #fff;
box-sizing: content-box;
.all {
margin-left: 25rpx;
font-size: 14px;
color: #444;
display: flex;
align-items: center;
}
.all::before {
font-family: 'erabbit' !important;
content: '\e6cd';
font-size: 40rpx;
margin-right: 8rpx;
}
.checked::before {
content: '\e6cc';
color: #3775F6;
}
.text {
margin-right: 8rpx;
margin-left: 32rpx;
color: #444;
font-size: 14px;
}
.amount {
font-size: 20px;
color: #cf4444;
.decimal {
font-size: 12px;
}
&::before {
content: '¥';
font-size: 12px;
}
}
.button-grounp {
margin-left: auto;
display: flex;
justify-content: space-between;
text-align: center;
line-height: 72rpx;
font-size: 13px;
color: #fff;
.button {
width: 240rpx;
margin: 0 10rpx;
border-radius: 72rpx;
}
.payment-button {
background-color: #3775F6;
&.disabled {
opacity: 0.6;
}
}
}
}
//
.toolbar-height {
height: 100rpx;
}
</style>

@ -1,121 +0,0 @@
<script setup lang="ts">
import { ref } from 'vue'
const handleSubmit = async () => {}
</script>
<template>
<view class="viewport">
<view class="section-auto">
<view class="left">
<view class="title">自动接单</view>
<view class="desc">开启后将根据配置情况自动接单</view>
</view>
<view class="switch">
<switch checked color="#3775F6" style="transform: scale(0.7)" />
</view>
</view>
<view class="section-time">
<view class="start-time item">
<view class="left">
<view class="title">开始接单时间</view>
<view class="val">2024-01-16 13:25:22</view>
</view>
<view class="edit">修改</view>
</view>
<view class="end-time item">
<view class="left">
<view class="title">结束接单时间</view>
<view class="val">2024-01-16 13:25:22</view>
</view>
<view class="edit">修改</view>
</view>
<view class="auto-num item">
<view class="left">
<view class="title">自动接单范围</view>
<view class="val">4km</view>
</view>
<view class="edit">修改</view>
</view>
</view>
<view class="action" @click="handleSubmit"> </view>
</view>
</template>
<style lang="scss">
page {
height: 100%;
background-color: #fafafd;
}
.viewport {
padding: 10rpx;
.section-auto {
display: flex;
justify-content: space-between;
padding: 30rpx 0rpx;
margin: 20rpx 0;
border-radius: 16rpx;
background: #ffffff;
box-shadow: 0px 0px 8px 0px rgba(164, 182, 203, 0.33);
.left {
margin-left: 30rpx;
.title {
color: #3d3d3d;
font-size: 34rpx;
margin-bottom: 20rpx;
}
.desc {
color: #999a9f;
font-size: 32rpx;
}
}
}
.section-time {
padding: 30rpx 30rpx;
margin: 20rpx 0;
background: #ffffff;
border-radius: 16rpx;
box-shadow: 0px 0px 8px 0px rgba(164, 182, 203, 0.33);
.item {
display: flex;
justify-content: space-between;
align-items: center;
margin: 20rpx 0;
padding-bottom: 10rpx;
border-bottom: 2rpx solid #f2f2f2;
.left {
.title {
font-size: 34rpx;
color: #3d3d3d;
margin-bottom: 20rpx;
}
.val {
color: #999a9f;
font-size: 32rpx;
}
}
.edit {
color: #3775f6;
font-size: 40rpx;
text-decoration: underline;
}
&:last-child {
border: none;
}
}
}
.action {
width: 344rpx;
margin: 100rpx auto 0;
border-radius: 100rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 30rpx 30rpx;
color: #fff;
font-size: 36rpx;
background: linear-gradient(152deg, #51b6ff 16%, #3775f6 86%);
}
}
</style>

@ -0,0 +1,82 @@
<!--
* @Author: jevononlie 728254585@qq.com
* @Date: 2024-05-16 16:30:17
* @LastEditors: jevononlie 728254585@qq.com
* @LastEditTime: 2024-05-27 11:19:35
* @FilePath: /app-nx-personal/src/pages/recyclingCabinet/recyclingCabinet.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<script setup lang="ts">
import { ref, reactive, computed } from 'vue'
import { onShow, onLoad } from '@dcloudio/uni-app'
//
const { safeAreaInsets } = uni.getSystemInfoSync()
onShow(() => {
//
})
onLoad(() => {
//
})
const handleIndex = () => {
wx.switchTab({
url: 'pages/index/index',
})
}
const handleStaff = () => {
uni.navigateToMiniProgram({
appId: 'wxf82bcc798891a29d',
path: 'pages/index/index?id=123',
extraData: {
'data1': 'test'
},
success(res) {
//
}
})
}
</script>
<template>
<view class="viewport">
<image src="@/static/images/select-people.png" mode="aspectFit" class="select-people"></image>
<view class="cont">
<image class="select-item" src="@/static/images/select-custom.png" mode="aspectFit" @click="handleIndex">
</image>
<image class="select-item" src="@/static/images/select-staff.png" mode="aspectFit" @click="handleStaff">
</image>
</view>
</view>
</template>
<style lang="scss">
page {
height: 100%;
overflow: hidden;
background-color: #f7f7f8;
}
.viewport {
position: relative;
height: 100%;
padding: 32rpx;
.select-people {
text-align: center;
margin: 60rpx auto 20rpx;
width: 392rpx;
height: 116rpx;
margin-left: 20rpx;
}
.cont {
text-align: center;
.select-item {
height: 260rpx;
margin: 40rpx 0;
border-radius: 8rpx;
}
}
}
</style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

Loading…
Cancel
Save