Compare commits

...

15 Commits

Author SHA1 Message Date
ihzero 03082a9cdb 修改主页打包 2025-05-28 11:28:43 +08:00
ihzero 6497852f80 修改主页样式 2025-05-28 11:20:33 +08:00
ihzero fcc4e21c36 修改 2024-12-02 22:23:49 +08:00
unknown b55bb1e863 关闭提示 2024-06-04 10:58:11 +08:00
unknown 831808415d 修改提示 2024-06-04 10:55:39 +08:00
unknown e5fea5c439 提示 2024-06-04 10:10:22 +08:00
unknown 614c9fbb6a 提示 2024-06-04 10:06:05 +08:00
unknown 72ac138a46 打包 2024-06-04 09:47:07 +08:00
unknown 34e4f61485 虫情 2024-06-04 09:40:36 +08:00
ihzero 52a1dbdc83 修改bug 2024-06-04 00:27:16 +08:00
ihzero 06d9d03dea 水质,土壤 2024-06-04 00:07:10 +08:00
ihzero c88411f9c2 修改水质设备 2024-05-28 23:11:27 +08:00
ihzero abdb92ee74 基数数据统计 2024-01-31 12:08:12 +08:00
ihzero 156643ea77 打包 2024-01-30 15:25:59 +08:00
ihzero 176abb9c7d 设备管理条件 2024-01-30 15:24:48 +08:00
116 changed files with 4421 additions and 39156 deletions

View File

@ -1,3 +1,3 @@
ENV = 'development'
VUE_APP_BASE_API = 'https://lcny.sk797.cn'
VUE_APP_BASE_API = 'https://lcny-api.peidikeji.cn'

View File

@ -1,2 +1,2 @@
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title></title><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel="stylesheet" href="/static/index.97465e7b.css"></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id="app"></div><script src="/static/js/chunk-vendors.959091ef.js"></script><script src="/static/js/index.d07e9c1f.js"></script></body></html>
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel="stylesheet" href="/static/index.97465e7b.css"></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id="app"></div><script src="/static/js/chunk-vendors.959091ef.js"></script><script src="/static/js/index.10961fd4.js"></script></body></html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 992 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 919 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1005 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 699 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 683 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 953 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 B

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

36439
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -66,10 +66,10 @@ export default {
},
},
isEdit() {
return !!this.$listeners.onEdit && checkPermission(this.editAuth)
return (!!this.$listeners.onEdit && checkPermission(this.editAuth)) || (!!this.$listeners.onEdit && this.editAuth.length==0)
},
isDel() {
return !!this.$listeners.onDel && checkPermission(this.delAuth)
return (!!this.$listeners.onDel && checkPermission(this.delAuth)) || (!!this.$listeners.onDel && this.delAuth.length==0)
},
columsList() {
const arr = []

View File

@ -3,9 +3,17 @@
<view class="bg-white p-30rpx">
<view class="flex justify-between items-center">
<view class="text-32rpx">全市数据统计</view>
<u-button size="mini" v-auth="['endpoint.town_street.base_statistics_edit']" @click="cityEditShow = true"></u-button>
<u-button
size="mini"
v-auth="['endpoint.town_street.base_statistics_edit']"
@click="cityEditShow = true"
>编辑</u-button
>
</view>
<view class="grid grid-cols-2 mt-20rpx" v-auth="['endpoint.town_street.base_statistics']">
<view
class="grid grid-cols-2 mt-20rpx"
v-auth="['endpoint.town_street.base_statistics']"
>
<CountItem
v-for="(item, i) in showCityList"
:key="i"
@ -88,7 +96,29 @@
@onEdit="handleEdit"
:colums="baseTableColums"
:data="currentData"
:editAuth="['endpoint.town_street.edit']"
>
<template v-slot:extends="{ data }">
<view class="w-full">
<view v-for="(item, i) in formtExtends(data)" :key="i">
<view class="flex items-center">
<view class="flex-1 flex-center">
{{ item.name }}
</view>
<view class="flex-1">
<u-cell-item
v-for="(va, ii) in item.value"
:key="ii"
:title="va.year"
:value="va.value"
:arrow="false"
></u-cell-item>
</view>
</view>
<u-line></u-line>
</view>
</view>
</template>
</BaseTablePopup>
</view>
</template>
@ -98,6 +128,8 @@ import cuPopup from '@/components/cu-popup/index.vue'
import CountEdit from './components/town-count-edit.vue'
import BaseTablePopup from '@/components/base-table/popup.vue'
import CityEdit from './components/town-city-edit'
import checkPermission from '@/utils/permission.js'
import { concat } from 'lodash-es'
const filterCityCount = [
'city_data_chart_nongye',
'city_data_chart_yuye',
@ -105,6 +137,28 @@ const filterCityCount = [
'city_data_chart_lingye',
'city_data_chart_activity',
]
const defaultData = {
chart_nongye: {
label: '统计数据-农业',
unit: '万元',
},
chart_yuye: {
label: '统计数据-渔业',
unit: '万元',
},
chart_xumuye: {
label: '统计数据-畜牧业',
unit: '万元',
},
chart_lingye: {
label: '统计数据-林业',
unit: '万元',
},
chart_activity: {
label: '统计数据-其他',
unit: '万元',
},
}
const baseTableColums = [
{
title: '街镇名称',
@ -130,6 +184,10 @@ const baseTableColums = [
title: '街镇描述',
dataIndex: 'description',
},
{
title: '统计数据',
dataIndex: 'extends',
},
]
import MescrollMixin from '@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js'
export default {
@ -147,20 +205,23 @@ export default {
(item) => !filterCityCount.includes(item.slug)
)
},
options() {
return [
{
text: '编辑',
style: {
backgroundColor: '#007aff',
},
permission: ['endpoint.town_street.edit'],
},
].filter((e) => checkPermission(e.permission))
},
},
data() {
return {
baseTablePopupShow: false,
baseTableColums,
cityItemShow: false,
options: [
{
text: '编辑',
style: {
backgroundColor: '#007aff',
},
},
],
cityList: [],
cityEditShow: false,
dataList: [],
@ -184,6 +245,48 @@ export default {
this.getCityData()
},
methods: {
isObject(val) {
return Object.prototype.toString.call(val) === '[object Object]'
},
isArray(val) {
return Object.prototype.toString.call(val) === '[object Array]'
},
formtExtends({ value }) {
const defaultObj = value
const tempData = Object.keys(defaultObj).reduce((pre, cur) => {
const currentData = defaultData[cur]
const obj = {
name: currentData.label,
unit: currentData.unit,
slug: cur,
}
const extend = defaultObj[cur]
if (this.isObject(extend) || this.isArray(extend)) {
const temp = []
if (Object.keys(extend).length === 0) {
temp.push({
value: '',
year: null,
})
}
for (const key in extend) {
temp.push({
value: extend[key],
year: key,
})
}
return concat(pre, {
...obj,
isMore: true,
value: temp,
})
}
}, [])
return tempData ?? []
},
handleEdit(e) {
this.currentData = e
this.baseTablePopupShow = false

View File

@ -443,11 +443,38 @@
},
},
onLoad() {
this.getSupplier();
this.getProject();
this.queryDataList();
this.getDeviceTypes();
this.getAgriculturalBasic();
},
methods: {
getSupplier(){
this.$http.get('/api/keywords',{params:{
type_key:'device-supplier'
}}).then(({data})=>{
this.supplierlist=data.data.map(e=>{
return {
label:e.name,
value:e.key
}
})
console.log(this.supplierlist);
})
},
getProject(){
this.$http.get('/api/keywords',{params:{
type_key:'device-project'
}}).then(({data})=>{
this.projectlist=data.data.map(e=>{
return {
label:e.name,
value:e.key
}
})
})
},
queryBtn(){
this.list = [];
this.queryDataList(true);

View File

@ -219,7 +219,7 @@ export default {
},
async getData() {
if (!this.filterParmas.device_id) {
this.$u.toast('没有关联基地')
// this.$u.toast('')
this.loadingType = 0
return (this.chartData = { series: [] })
}
@ -239,15 +239,19 @@ export default {
xAxis.push(key)
seriesData.push(resData[key])
})
const max = Math.max(...seriesData)
// const max = Math.max(seriesData)
// console.log(seriesData);
// if (max > 5) {
// let maxN = Math.ceil(max / 5) * 5
// maxN = maxN === 0 ? 5 : maxN
// console.log(maxN);
// this.opts.yAxis.data[0].max = 100
// this.opts.yAxis.data[0].min = 0
// } else {
// console.log(max);
// this.opts.yAxis.splitNumber = max
// }
if (max > 5) {
let maxN = Math.ceil(max / 5) * 5
maxN = maxN === 0 ? 5 : maxN
this.opts.yAxis.data[0].max = maxN
} else {
this.opts.yAxis.splitNumber = max
}
let res = {
categories: xAxis,

View File

@ -150,8 +150,8 @@ export default {
async getData(e) {
if (!e.device_id) {
this.mescroll.endByPage(0, 0)
return this.$u.toast('没有关联基地')
// this.$u.toast('')
return
}
try {
const { data } = await http.get(

View File

@ -8,19 +8,24 @@
></image>
</view>
<view class="content-box">
<view
class="menus-section"
v-for="(menu, index) in menus"
:key="index"
>
<view class="title-t" v-if="menu.parent && menu.children.length>0"
<view class="menus-section" v-for="(menu, index) in menus" :key="index">
<view class="title-t" v-if="menu.parent && menu.children.length > 0"
>{{ menu.parent }}-{{ menu.label }}</view
>
<view class="title-t" v-if="!menu.parent && menu.children.length>0">{{ menu.label }}</view>
<view class="title-t" v-if="!menu.parent && menu.children.length > 0">{{
menu.label
}}</view>
<view class="menu-ul">
<view class="menu-li" v-for="(cdm, i) in menu.children" :key="i">
<view class="menu_item" @click="linknavFn(cdm)">
<view class="icon"></view>
<view class="menu_item_content">
<view class="icon">
<image
class="icon_img"
v-if="cdm.icon"
:src="require(`@/static/img/${cdm.icon}`)"
></image>
</view>
<view class="name">{{ cdm.label }}</view>
</view>
</view>
@ -28,6 +33,7 @@
</view>
</view>
</view>
</view>
</template>
<script>
@ -44,36 +50,43 @@ export default {
label: '气象监测',
url: '/pages/index/meteorological',
permission: 'endpoint.weather.index',
icon: 'moon-cloudy-line.png',
},
{
label: '智能监控',
url: '/pages/index/monitor',
permission: 'endpoint.camera.index',
icon: 'live-line.png',
},
{
label: '土壤监控',
url: '/pages/index/soil-monitoring',
permission: 'endpoint.soil.index',
icon: 'map-pin-range-line.png',
},
{
label: '水质监控',
url: '/pages/index/water-quality',
permission: 'endpoint.water.index',
icon: 'contrast-drop-line.png',
},
{
label: '昆虫性诱监测',
url: '/pages/index/insect-monitors',
permission: 'endpoint.insect.index',
icon: 'bug-line.png',
},
{
label: '虫情监测',
url: '/pages/index/pests',
permission: 'endpoint.worm_statics.index',
icon: 'bug-2-line.png',
},
{
label: '杀虫灯检测',
url: '/pages/index/insecticidal-lamp',
permission: 'endpoint.insecticidal_lamp.index',
icon: 'alarm-warning-line.png',
},
],
},
@ -85,16 +98,19 @@ export default {
label: '城镇数据',
url: '/pages/basics/town-base',
permission: 'endpoint.town_street.index',
icon: 'building-4-line.png',
},
{
label: '基地数据',
url: '/pages/basics/basics-base',
permission: 'endpoint.agricultural_basic.index',
icon: 'home-4-line.png',
},
{
label: '基地概况',
url: '/pages/basics/profile',
permission: 'endpoint.agricultural_base_overview.index',
icon: 'home-3-line.png',
},
],
},
@ -106,11 +122,13 @@ export default {
label: '城镇农作物',
url: '/pages/crop/town-crop',
permission: 'endpoint.town_crops.index',
icon: 'plant-line.png',
},
{
label: '基地农作物',
url: '/pages/crop/basics-crop',
permission: 'endpoint.crops.index',
icon: 'leaf-line.png',
},
],
},
@ -122,11 +140,13 @@ export default {
label: '城镇产量',
url: '/pages/yield/town-yield',
permission: 'endpoint.town_crops_output.index',
icon: 'box-1-line.png',
},
{
label: '基地产量',
url: '/pages/yield/basics-yield',
permission: 'endpoint.crops_output.index',
icon: 'instance-line.png',
},
],
},
@ -138,26 +158,31 @@ export default {
label: '稻虾价格',
url: '/pages/estate/estate-price',
permission: 'endpoint.rice_shrimp_prices.index',
icon: 'price-tag-3-line.png',
},
{
label: '稻虾每周价格',
url: '/pages/estate/estate-week-price',
permission: 'endpoint.rice_shrimp_weekly_prices.index',
icon: 'price-tag-2-line.png',
},
{
label: '稻虾产业',
url: '/pages/estate/estate-industry',
permission: 'endpoint.rice_shrimp_industries.index',
icon: 'collage-line.png',
},
{
label: '稻虾流向',
url: '/pages/estate/estate-flows',
permission: 'endpoint.rice_shrimp_flows.index',
icon: 'flow-chart.png',
},
{
label: '大宗物资',
url: '/pages/estate/estate-materiels',
permission: 'endpoint.materiels.index',
icon: 'shopping-basket-2-line.png',
},
],
},
@ -168,11 +193,13 @@ export default {
label: '设备管理',
url: '/pages/device/index',
permission: 'endpoint.device.index',
icon: 'robot-2-line.png',
},
{
label: '警报明细',
url: '/pages/device/warning',
permission: 'endpoint.warnings.index',
icon: 'feedback-line.png',
},
],
},
@ -181,10 +208,12 @@ export default {
},
computed: {
...mapGetters(['userInfo']),
menus(){
return this.filterAsyncRoutes(this.menuList, this.userInfo?.permissions_slug ?? [])
}
menus() {
return this.filterAsyncRoutes(
this.menuList,
this.userInfo?.permissions_slug ?? []
)
},
},
onLoad() {},
methods: {
@ -222,11 +251,11 @@ export default {
.banner-section {
.banner_img {
width: 100%;
height: 280rpx;
height: 427rpx;
}
}
.index-page {
background-color: #f8f8f8;
background-color: #EEEBFE;
.content-box {
padding-top: 30rpx;
padding-bottom: 150rpx;
@ -239,7 +268,7 @@ export default {
.title-t {
margin-bottom: 24rpx;
padding: 0 10rpx;
font-size: 28rpx;
font-size: 34rpx;
font-weight: bold;
}
}
@ -251,16 +280,40 @@ export default {
text-align: center;
padding: 0 10rpx;
margin-bottom: 18rpx;
.menu_item {
background-color: #fff;
box-shadow: 0 0 20rpx rgba(0, 0, 0, 0.15);
min-height: 90rpx;
border-radius: 8rpx;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 10rpx 15rpx;
height: 100%;
padding-top: 100%;
position: relative;
.menu_item_content {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
flex-direction: column;
align-items: center;
padding-top: 24%;
.icon {
width: 40rpx;
height: 40rpx;
.icon_img {
width: 100%;
height: 100%;
}
}
.name{
font-size: 24rpx;
margin-top: 14rpx;
}
}
}
}
}

View File

@ -149,7 +149,8 @@ export default {
},
async getData(e) {
if (!e.device_id) {
return this.$u.toast('没有关联基地')
// this.$u.toast('')
return
}
try {
const { data } = await http.get(

View File

@ -193,7 +193,8 @@ export default {
this.chatList = []
if (!this.filterParmas.device_id){
this.loadingType = 0
return this.$u.toast('没有关联基地')
// this.$u.toast('')
return
}
const { data } = await http.get('/api/monitoring-data', {
params: this.filterParmas,

View File

@ -415,7 +415,8 @@
let _data = data.data;
if(_data.length==0){
this.loadingType = 0
return this.$u.toast('没有关联基地');
// this.$u.toast('');
return
}
for(let item of _data){
item['label'] = item.name;

View File

@ -544,7 +544,8 @@ export default {
let _data = data.data
if(_data.length==0){
this.loading = 'nomore'
return this.$u.toast('没有关联基地')
// this.$u.toast('')
return
}
for (let item of _data) {
item['label'] = item.name

View File

@ -186,6 +186,25 @@
/>
</view>
</view>
<!-- PH -->
<view class="chart_section" v-if="chart_ph.isShow">
<view class="top_box">
<view class="tit">PH<text class="unit"></text></view>
<view class="name">{{addressName}}</view>
</view>
<view class="mb-20rpx">
<u-line></u-line>
</view>
<view class="cart_box">
<qiun-data-charts
v-if="loadingType!=0"
:loadingType="loadingType"
type="area"
:opts="opts"
:chartData="chart_ph"
/>
</view>
</view>
</template>
</view>
<!-- 设置预警值 -->
@ -270,6 +289,7 @@
chart_k:{},//
chart_n:{},//
chart_p:{},//
chart_ph:{},//ph
//
q_start_time:'',
q_end_time:'',
@ -303,6 +323,7 @@
n:'磷',
p:'钾',
k:'氮',
ph:'PH'
},
keyToUnit:{
temperature:'℃',
@ -311,6 +332,7 @@
n:'mg/kg',
p:'mg/kg',
k:'mg/kg',
ph:''
},
numberToString:{
1:'',
@ -444,7 +466,8 @@
let _data = data.data;
if(_data.length==0){
this.loadingType = 0
return this.$u.toast('没有关联基地');
// this.$u.toast('');
return
}
for(let item of _data){
@ -622,6 +645,7 @@
//end n
//start p
let res6 = {
isShow:!!chartInfo.p,
categories: chartInfo.p.categories,
series: [
{
@ -634,6 +658,23 @@
this.chart_p = JSON.parse(JSON.stringify(res6));
//end p
//start ph
let res7 = {
isShow:!!chartInfo.ph,
categories: chartInfo.ph?.categories,
series: [
{
name:'PH',
legendShape:'circle',
data: chartInfo.ph?.data,
}
]
};
this.chart_ph = JSON.parse(JSON.stringify(res7));
//end ph
}
}).catch(()=>{

View File

@ -164,6 +164,24 @@
/>
</view>
</view>
<!-- 氨氮 -->
<view class="chart_section" v-if="chart_nh3n">
<view class="top_box">
<view class="tit">氨氮<text class="unit">mg/L</text></view>
<view class="name">{{ addressName }}</view>
</view>
<view class="mb-20rpx">
<u-line></u-line>
</view>
<view class="cart_box">
<qiun-data-charts
:loadingType="loadingType"
type="area"
:opts="opts"
:chartData="chart_nh3n"
/>
</view>
</view>
<!-- PH -->
<view class="chart_section" v-if="chart_ph">
<view class="top_box">
@ -237,6 +255,7 @@
</view>
<scroll-view class="scroll-y" scroll-y="true">
<view class="form_cont">
<u-form v-for="(info, k) in formInfo" :key="k">
<view class="title2 u-border-bottom">{{ keyToName[k] }}</view>
<u-form-item
@ -334,6 +353,7 @@ export default {
chart_conductivity: {}, //
chart_chlorine: {}, //
chart_oxygen: {}, //
chart_nh3n: {}, //
chart_ph: {}, //PH
chart_temperature: {}, //
chart_turbidity: {}, //
@ -368,6 +388,7 @@ export default {
conductivity: '电导率',
chlorine: '氯',
oxygen: '氧气',
nh3n: '氨氮',
ph: 'PH',
turbidity: '浊度',
},
@ -376,6 +397,7 @@ export default {
conductivity: 'us/cm',
chlorine: 'mg/L',
oxygen: 'mg/L',
nh3n: 'mg/L',
ph: '',
turbidity: 'NTU',
},
@ -514,7 +536,8 @@ export default {
let _data = data.data
if (_data.length == 0) {
this.loadingType = 0
return this.$u.toast('没有关联基地')
// this.$u.toast('')
return
}
for (let item of _data) {
item['label'] = item.name
@ -677,6 +700,23 @@ export default {
}else{
this.chart_oxygen = null
}
//start nh3n
if (chartInfo.nh3n) {
let res7 = {
categories: chartInfo.nh3n.categories,
series: [
{
name: '氨氮',
legendShape: 'circle',
data: chartInfo.nh3n.data,
},
],
}
this.chart_nh3n = JSON.parse(JSON.stringify(res7))
}else{
this.chart_nh3n = null
}
//end
//start PH
if (chartInfo.ph) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 992 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 919 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1005 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 699 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 683 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 953 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 B