替换图片并删掉本地图片,代码分包

This commit is contained in:
zhouyanli
2026-04-21 15:48:52 +08:00
parent b0d90c27db
commit 65e6e5bf30
70 changed files with 316 additions and 212 deletions

View File

@@ -7,7 +7,7 @@
</view>
<!-- 顶部图片 -->
<view class="topImg">
<image src="/static/首页/banner.png" style="width: 100%;height:100%;"></image>
<image src="http://47.104.199.163:9090/images/home/banner.png" style="width: 100%;height:100%;"></image>
</view>
<!-- 选项卡 -->
<view class="tabs-container">
@@ -66,7 +66,7 @@
<up-row justify="space-between" customStyle="margin-bottom: 10px">
<up-col span="4">
<view class="info-image-left">
<image src="/static/首页/activity-img.png" style="width: 100%;height: 100%;"></image>
<image src="http://47.104.199.163:9090/images/home/activity-img.png" style="width: 100%;height: 100%;"></image>
</view>
</up-col>
<up-col span="8">
@@ -75,18 +75,15 @@
{{ activity.title }}
</view>
<view class="activity-detail">
<!-- <uni-icons type="calendar" size="16" color="#999"></uni-icons> -->
<text class="detail-text">时间{{ formatDate(activity.startTime) }}
{{ formatDate(activity.endTime) }}</text>
</view>
<view class="activity-detail">
<!-- <uni-icons type="location-filled" size="16" color="#999"></uni-icons> -->
<text class="detail-text">地点{{ activity.location }}</text>
</view>
<view class="activity-detail">
<!-- <uni-icons type="person" size="16" color="#999"></uni-icons> -->
<text class="detail-text-num">活动名额{{ activity.totalQuota }}已报名{{ activity.signedCount }}</text>
</view>

View File

@@ -106,7 +106,7 @@
<view v-else class="status-content">
<view class="status-header">
<view class="status-title">
<image src="/static/活动/现场实况.png" style="width: 40rpx;height: 30rpx;"></image>
<image src="http://47.104.199.163:9090/images/activity/liveScene.png" style="width: 40rpx;height: 30rpx;"></image>
现场实况
</view>
<view class="status-count">{{ liveRecords.length }}</view>
@@ -245,7 +245,7 @@ const liveRecords = ref([
user: '微信用户',
time: '2023-08-20 16:20:02',
content: '目前现场的互动氛围很好',
images: ['/static/logo.png', '/static/引导1.png']
images: ['http://47.104.199.163:9090/images/logo.png', 'http://47.104.199.163:9090/images/repair/house1.png']
}
])
//
@@ -306,7 +306,7 @@ const confirmCancel = () => {
//
const liveClick = () =>{
uni.navigateTo({
url:'/pages/activity-list/live-add'
url:'/pageSubPack/activity-list/live-add'
})
}

View File

@@ -91,10 +91,18 @@ const handleConfirm = () => {
if(res.code === 200){
//uni.setStorageSync('token', res.token); // token
uni.showToast({ title: '修改成功', icon: 'success' });
uni.navigateTo({ url: '/pages/login/pwd-login' });
setTimeout(() =>{
uni.navigateTo({ url: '/pageSubPack/loginSub/pwd-login' });
},1500)
}else{
uni.showToast({ title: "修改失败", icon: 'error' });
}
}).catch(err =>{
uni.showToast({
title: '网络异常',
icon: 'error'
});
})
//

View File

@@ -8,7 +8,7 @@
<!-- 手机号输入框 -->
<view class="input-item">
<view class="input-icon">
<image src="/static/登录/手机号.png" mode="" style="height: 100%;width: 100%;"></image>
<image src="http://47.104.199.163:9090/images/login/phone.png" mode="" style="height: 100%;width: 100%;"></image>
</view>
<uni-easyinput class="input-content" type="number" v-model="phoneNumber" trim="all"
placeholder="请输入手机号" :inputBorder="false" maxlength="11" :placeholderStyle="placeholderStyle">
@@ -17,7 +17,7 @@
<!-- 验证码输入 + 获取验证码按钮 -->
<view class="input-item verify-item">
<view class="input-icon">
<image src="/static/登录/验证码.png" mode="" style="height: 100%;width: 100%;"></image>
<image src="http://47.104.199.163:9090/images/login/code.png" mode="" style="height: 100%;width: 100%;"></image>
<!-- <uni-icons type="locked" size="24" color="#999"></uni-icons> -->
</view>
<uni-easyinput class="input-content verify-input" type="number" v-model="verifyCode" trim="all"
@@ -74,6 +74,15 @@ const getVerifyCode = () => {
title: '验证码已发送',
icon: 'success'
});
// 60
countDown.value = 60;
timer = setInterval(() => {
countDown.value--;
if (countDown.value <= 0) {
clearInterval(timer);
timer = null;
}
}, 1000);
}else{
uni.showToast({
@@ -82,15 +91,7 @@ const getVerifyCode = () => {
});
}
})
// 60
countDown.value = 60;
timer = setInterval(() => {
countDown.value--;
if (countDown.value <= 0) {
clearInterval(timer);
timer = null;
}
}, 1000);
};
//
@@ -101,14 +102,19 @@ const canRegister = computed(() => {
return phoneReg.test(phoneNumber.value)
&& verifyReg.test(verifyCode.value)
});
//
const handleNext = () =>{
//
uni.setStorageSync('tempChangePwdParams', {
phoneNumber:phoneNumber.value,
verifyCode: verifyCode.value
});
if(!canRegister.value){
uni.showToast({ title: '请输入',icon: 'error'});
return
}
uni.navigateTo({
url: '/pages/loginSub/change-pwd'
url: '/pageSubPack/loginSub/change-pwd'
});
}
//

View File

@@ -8,7 +8,7 @@
<view class="input-item">
<view class="input-icon">
<!-- <uni-icons type="phone" size="24" color="#999"></uni-icons> -->
<image src="/static/登录/手机号.png" mode="" style="height: 100%;width: 100%;"></image>
<image src="http://47.104.199.163:9090/images/login/phone.png" mode="" style="height: 100%;width: 100%;"></image>
</view>
<uni-easyinput class="input-content" type="number" v-model="phoneNumber"
placeholder="请输入手机号" :inputBorder="false" maxlength="11" :placeholderStyle="placeholderStyle">
@@ -26,8 +26,7 @@
<!-- 验证码输入框 + 获取验证码按钮 -->
<view class="input-item verify-item">
<view class="input-icon">
<!-- <uni-icons type="locked" size="24" color="#999"></uni-icons> -->
<image src="/static/登录/验证码.png" mode="" style="height: 100%;width: 100%;"></image>
<image src="http://47.104.199.163:9090/images/login/code.png" mode="" style="height: 100%;width: 100%;"></image>
</view>
<uni-easyinput class="input-content verify-input" type="number" v-model="verifyCode"
placeholder="请输入验证码" :inputBorder="false" maxlength="6" :placeholderStyle="placeholderStyle">
@@ -77,8 +76,8 @@
<!-- 底部链接 -->
<view class="bottom-link">
<navigator class="link-item" url="/pages/loginSub/pwd-login">账号密码登录</navigator>
<navigator class="link-item" url="/pages/loginSub/register-new-user">注册新用户</navigator>
<navigator class="link-item" url="/pageSubPack/loginSub/pwd-login">账号密码登录</navigator>
<navigator class="link-item" url="/pageSubPack/loginSub/register-new-user">注册新用户</navigator>
</view>
</view>
</template>
@@ -133,50 +132,69 @@ const getVerifyCode = () => {
phone:phoneNumber.value,
scene:'login'
}
uni.showLoading({ title: '发送中...', mask: true });
getSendCode(params).then(res =>{
console.log('44444',res)
if(res.code === 200){
uni.hideLoading();
uni.showToast({
title: '验证码已发送',
icon: 'success'
});
// 60
countDown.value = 60;
timer = setInterval(() => {
countDown.value--;
if (countDown.value <= 0) {
clearInterval(timer);
timer = null;
}
}, 1000);
}else{
uni.showToast({
title: '验证码发送失败',
icon: 'error'
});
}
}).catch(err => {
uni.showToast({
title: '网络异常',
icon: 'error'
});
})
// 60
countDown.value = 60;
timer = setInterval(() => {
countDown.value--;
if (countDown.value <= 0) {
clearInterval(timer);
timer = null;
}
}, 1000);
};
//
const handleLogin = () => {
if (!canLogin.value) return;
uni.showLoading({ title: '登录中...', mask: true });
let params = {
phone:phoneNumber.value,
smsCode:'123456',
scene:'login',
}
// getLoginBySms(params).then(res =>{
// if(res.code === 200){
// //uni.setStorageSync('token', res.token); // token
// uni.showToast({ title: '', icon: 'success' });
getLoginBySms(params).then(res =>{
if(res.code === 200){
//uni.setStorageSync('token', res.token); // token
uni.hideLoading();
uni.showToast({ title: '登录成功', icon: 'success' });
setTimeout(() =>{
uni.switchTab({ url: '/pages/index/index' });
},1500)
}else{
uni.showToast({ title:'登录失败', icon: 'error' });
}
}).catch(err => {
uni.showToast({
title: '网络异常,请重试',
icon: 'error'
});
})
// }else{
// uni.showToast({ title:'', icon: 'error' });
// }
// })
uni.switchTab({ url: '/pages/index/index' });
//
// uni.showLoading({
// title: '...'

View File

@@ -8,7 +8,7 @@
<view class="input-item">
<view class="input-icon">
<!-- <uni-icons type="phone" size="24" color="#999"></uni-icons> -->
<image src="/static/登录/手机号.png" mode="" style="height: 100%;width: 100%;"></image>
<image src="http://47.104.199.163:9090/images/login/phone.png" mode="" style="height: 100%;width: 100%;"></image>
</view>
<uni-easyinput class="input-content" type="text" v-model="phoneNumber"
placeholder="请输入帐号" :inputBorder="false" :placeholderStyle="placeholderStyle">
@@ -19,7 +19,7 @@
<view class="input-item">
<view class="input-icon">
<!-- <uni-icons type="locked" size="24" color="#999"></uni-icons> -->
<image src="/static/登录/密码.png" mode="" style="height: 100%;width: 100%;"></image>
<image src="http://47.104.199.163:9090/images/login/password.png" mode="" style="height: 100%;width: 100%;"></image>
</view>
<uni-easyinput class="input-content" type="password" v-model="password"
placeholder="请输入密码" :inputBorder="false" :placeholderStyle="placeholderStyle">
@@ -44,7 +44,7 @@
></uni-icons>
<text class="agreement-text">我已阅读并同意用户隐私政策</text>
</view>
<navigator class="forget-pwd" url="/pages/loginSub/forget-pwd">忘记密码</navigator>
<navigator class="forget-pwd" url="/pageSubPack/loginSub/forget-pwd">忘记密码</navigator>
</view>
<!-- 登录按钮 -->
@@ -58,8 +58,8 @@
<!-- 底部链接 -->
<view class="bottom-link">
<navigator class="link-item" url="/pages/loginSub/login">验证码登录</navigator>
<navigator class="link-item" url="/pages/loginSub/register-new-user">注册新用户</navigator>
<navigator class="link-item" url="/pageSubPack/loginSub/login">验证码登录</navigator>
<navigator class="link-item" url="/pageSubPack/loginSub/register-new-user">注册新用户</navigator>
</view>
</view>
</template>
@@ -96,40 +96,55 @@ onLoad(() =>{
//
const handleLogin = () => {
if (!canLogin.value) return
// if (!canLogin.value) {
// uni.showToast({ title: '', icon: 'none' });
// return
// }
if (!phoneNumber.value) {
uni.showToast({ title: '请输入账号', icon: 'none' });
return;
}
if (!password.value) {
uni.showToast({ title: '请输入密码', icon: 'none' });
return;
}
if(!agreeAgreement.value){
uni.showToast({ title: '请勾选协议', icon: 'none' });
return;
}
uni.showLoading({ title: '登录中...', mask: true });
let params = {
username:phoneNumber.value,
password:password.value
}
// if (!phoneNumber.value) {
// uni.showToast({ title: '', icon: 'none' });
// // canLogin.value = true;
// return;
// }
// if (!password.value) {
// uni.showToast({ title: '', icon: 'none' });
// // canLogin.value = true;
// return;
// }
// getLoginPassword(params).then(res =>{
// // console.log('33333',res)
// if(res.code === 200){
// // console.log('33333',res)
// //uni.setStorageSync('token', res.token); // token
// uni.showToast({ title: '', icon: 'success' });
// uni.switchTab({ url: '/pages/index/index' });
// // uni.reLaunch({ url: '/pages/index/index' });
// }else{
// uni.showToast({ title: `${res.msg},`, icon: 'error' });
// }
getLoginPassword(params).then(res =>{
// console.log('33333',res)
if(res.code === 200){
uni.setStorageSync('token', res.token);
uni.hideLoading();
uni.showToast({ title: '登录成功', icon: 'success' });
setTimeout(() => {
uni.switchTab({ url: '/pages/index/index' });
}, 1500);
}else{
uni.showToast({ title: `${res.msg},请先注册账号`, icon: 'error' });
}
// })
uni.showLoading({
title: '登录中...'
});
setTimeout(() => {
uni.switchTab({ url: '/pages/index/index' });
}, 1500);
}).catch(err => {
// console.error('', err);
uni.showToast({
title: '网络异常',
icon: 'error'
});
})
//
// uni.showLoading({
// title: '...'
// });
// setTimeout(() => {
// uni.switchTab({ url: '/pages/index/index' });
// }, 1500);
};
</script>

View File

@@ -13,7 +13,7 @@
<!-- 手机号输入框 -->
<view class="input-item">
<view class="input-icon">
<image src="/static/登录/手机号.png" mode="" style="height: 100%;width: 100%;"></image>
<image src="http://47.104.199.163:9090/images/login/phone.png" mode="" style="height: 100%;width: 100%;"></image>
</view>
<uni-easyinput class="input-content" type="number" v-model="phoneNumber"
placeholder="请输入手机号" :inputBorder="false" maxlength="11" :placeholderStyle="placeholderStyle">
@@ -23,7 +23,7 @@
<!-- 验证码输入 + 获取验证码按钮 -->
<view class="input-item verify-item">
<view class="input-icon">
<image src="/static/登录/验证码.png" mode="" style="height: 100%;width: 100%;"></image>
<image src="http://47.104.199.163:9090/images/login/code.png" mode="" style="height: 100%;width: 100%;"></image>
<!-- <uni-icons type="locked" size="24" color="#999"></uni-icons> -->
</view>
<uni-easyinput class="input-content verify-input" type="number" v-model="verifyCode"
@@ -42,7 +42,7 @@
<!-- 账号输入框 -->
<view class="input-item">
<view class="input-icon">
<image src="/static/登录/账号.png" mode="" style="height: 100%;width: 100%;"></image>
<image src="http://47.104.199.163:9090/images/login/account.png" mode="" style="height: 100%;width: 100%;"></image>
<!-- <uni-icons type="person" size="24" color="#999"></uni-icons> -->
</view>
<uni-easyinput class="input-content" type="text" v-model="account"
@@ -54,7 +54,7 @@
<!-- 密码输入框 -->
<view class="input-item">
<view class="input-icon">
<image src="/static/登录/密码.png" mode="" style="height: 100%;width: 100%;"></image>
<image src="http://47.104.199.163:9090/images/login/password.png" mode="" style="height: 100%;width: 100%;"></image>
<!-- <uni-icons type="locked" size="24" color="#999"></uni-icons> -->
</view>
<uni-easyinput class="input-content" type="password" v-model="password"
@@ -91,7 +91,7 @@
<!-- 跳转登录链接 -->
<view class="login-link">
<navigator class="link-item" url="/pages/loginSub/login">已有账号去登录</navigator>
<navigator class="link-item" url="/pageSubPack/loginSub/login">已有账号去登录</navigator>
</view>
</view>
</template>
@@ -162,6 +162,15 @@ const getVerifyCode = () => {
title: '验证码已发送',
icon: 'success'
});
// 60
countDown.value = 60;
timer = setInterval(() => {
countDown.value--;
if (countDown.value <= 0) {
clearInterval(timer);
timer = null;
}
}, 1000);
}else{
uni.showToast({
@@ -169,22 +178,20 @@ const getVerifyCode = () => {
icon: 'error'
});
}
}).catch(err =>{
uni.showToast({
title: '网路异常',
icon: 'error'
});
})
// 60
countDown.value = 60;
timer = setInterval(() => {
countDown.value--;
if (countDown.value <= 0) {
clearInterval(timer);
timer = null;
}
}, 1000);
};
//
const handleRegister = () => {
if (!canRegister.value) return;
uni.showLoading({ title: '注册中...', mask: true });
let params = {
phone:phoneNumber.value,
smsCode:verifyCode.value,
@@ -198,17 +205,26 @@ const handleRegister = () => {
title: '注册成功',
icon: 'success'
});
setTimeout(() => {
uni.redirectTo({ url: '/pageSubPack/loginSub/pwd-login' });
}, 1500);
}else{
uni.showToast({
title: '注册失败,请重新注册',
title: '注册失败',
icon: 'error'
});
}
}).catch((err) =>{
uni.showToast({
title: '网络异常',
icon: 'error'
});
})
//
uni.redirectTo({
url: '/pages/login/pwd-login'
});
// uni.redirectTo({
// url: '/pages/login/pwd-login'
// });
// setTimeout(() => {

View File

@@ -117,7 +117,7 @@
// ------
const goToDetail = () =>{
uni.navigateTo({
url:'/pages/notice-list/noticeListDetails'
url:'/pageSubPack/notice-list/noticeListDetails'
})
}
//

View File

@@ -26,8 +26,8 @@
推动工作的强大力量以实干担当不断开创中国特色大国外交新局面
</view>
<view class="articleimg">
<image src="/static/首页/notice-1.png" mode="" style="width: 100%;height: 100%;border-radius: 20rpx;"></image>
<image src="/static/首页/notice-2.png" mode="" style="width: 100%;height: 100%;border-radius: 20rpx;"></image>
<image src="http://47.104.199.163:9090/images/home/notice-1.png" mode="" style="width: 100%;height: 100%;border-radius: 20rpx;"></image>
<image src="http://47.104.199.163:9090/images/home/notice-2.png" mode="" style="width: 100%;height: 100%;border-radius: 20rpx;"></image>
</view>
</view>

View File

@@ -7,7 +7,7 @@
<uni-nav-bar left-icon="left" title="远程开门" backgroundColor ="none" :border="false" @clickLeft="narBack" />
</view>
<view class="top-img">
<image src="/static/一键开门/远程开门.png" mode="" style="width: 100%;height: 100%;"></image>
<image src="http://47.104.199.163:9090/images/openDoor/remoteOpen.png" mode="" style="width: 100%;height: 100%;"></image>
</view>
<!-- 提示文案 -->
@@ -53,12 +53,12 @@ import { ref } from 'vue'
const selectedDoor = ref(-1) // -1
const showSuccess = ref(false)
//
//
const doorList = ref([
{ iconText: '/static/一键开门/西入门.png',iconActive:"/static/一键开门/西入门-白.png", name: '西入门闸机' },
{ iconText: '/static/一键开门/东入门.png',iconActive:"/static/一键开门/东入门-白.png", name: '东入门闸机' },
{ iconText: '/static/一键开门/单元门.png',iconActive:"/static/一键开门/单元门-白.png", name: '1号楼1单元门' },
{ iconText: '/static/一键开门/单元门.png',iconActive:"/static/一键开门/单元门-白.png", name: '1号楼2单元门' }
{ iconText: 'http://47.104.199.163:9090/images/openDoor/westDoor.png',iconActive:"http://47.104.199.163:9090/images/openDoor/westDoorWhite.png", name: '西入门闸机' },
{ iconText: 'http://47.104.199.163:9090/images/openDoor/eastDoor.png',iconActive:"http://47.104.199.163:9090/images/openDoor/eastDoorWhite.png", name: '东入门闸机' },
{ iconText: 'http://47.104.199.163:9090/images/openDoor/unitDoor.png',iconActive:"http://47.104.199.163:9090/images/openDoor/unitDoorWhite.png", name: '1号楼1单元门' },
{ iconText: 'http://47.104.199.163:9090/images/openDoor/unitDoor.png',iconActive:"http://47.104.199.163:9090/images/openDoor/unitDoorWhite.png", name: '1号楼2单元门' }
])
//

View File

@@ -28,21 +28,21 @@
>
<view
v-for="item in displayedCommunities"
:key="item.id"
:key="item.villageId"
class="community-item"
:id="'item-' + item.id"
:id="'item-' + item.villageId"
@tap="selectCommunity(item)"
>
<view class="community-item-left">
<image src="/static/首页/小区.png" style="width: 60rpx;height: 60rpx;"></image>
<image src="http://47.104.199.163:9090/images/home/community.png" style="width: 60rpx;height: 60rpx;"></image>
<!-- <uni-icons class="house-icon" type="home" size="24" color="#666"></uni-icons> -->
<view class="community-info">
<text class="community-name">{{ item.name }}</text>
<text class="community-name">{{ item.villageName }}</text>
<!-- <text class="community-address">{{ item.address }}</text> -->
<!-- <text class="community-id">ID: {{ item.id }}</text> -->
</view>
</view>
<view v-if="selectedItem && selectedItem.id === item.id" class="selected-icon">
<view v-if="selectedItem && selectedItem.villageId === item.villageId" class="selected-icon">
<uni-icons type="checkbox-filled" size="24" color="#007AFF"></uni-icons>
</view>
</view>
@@ -99,7 +99,7 @@
<script setup>
import { ref, computed, onMounted, watch } from 'vue'
import {onLoad} from '@dcloudio/uni-app'
import {getVillageList} from "/pages/api/api.js"
// import {getVillageList} from "/pages/api/api.js"
//
const searchText = ref('')
@@ -120,17 +120,17 @@ let searchTimeout = null
//
const allCommunities = ref([
{ id: 1, name: '北境碧桂园小区', address: '北境市光明区碧桂路1号' },
{ id: 2, name: '南湖花园小区', address: '南湖市滨湖区湖滨路28号' },
{ id: 3, name: '东城国际社区', address: '东城市新城区人民路156号' },
{ id: 4, name: '西湖雅苑', address: '西湖市风景区梅灵路88号' },
{ id: 5, name: '北境锦绣家园', address: '北境市朝阳区朝阳路56号' },
{ id: 6, name: '阳光100小区', address: '阳光市高新区创业路100号' },
{ id: 7, name: '绿城玫瑰园', address: '绿城市西湖区学院路188号' },
{ id: 8, name: '金地自在城', address: '金城市江干区金沙大道200号' },
{ id: 9, name: '万科城市花园', address: '万城市余杭区文一西路299号' },
{ id: 10, name: '保利中央公园', address: '保利市拱墅区莫干山路500号' },
{ id: 11, name: '龙湖天街小区', address: '龙湖市滨江区江南大道100号' },
// { id: 1, name: '', address: '1' },
// { id: 2, name: '', address: '28' },
// { id: 3, name: '', address: '156' },
// { id: 4, name: '西', address: '西88' },
// { id: 5, name: '', address: '56' },
// { id: 6, name: '100', address: '100' },
// { id: 7, name: '绿', address: '绿西188' },
// { id: 8, name: '', address: '200' },
// { id: 9, name: '', address: '西299' },
// { id: 10, name: '', address: '500' },
// { id: 11, name: '', address: '100' },
])
//
@@ -138,7 +138,7 @@ const totalPages = computed(() => {
return Math.ceil(totalCommunities.value.length / pageSize)
})
//
// ===========
//
const getCommunityList = () =>{
let params = {
@@ -272,7 +272,7 @@ const handleConfirm = () => {
duration: 1500
})
//
//
// uni.navigateBack() emit('confirm', selectedItem.value)
uni.$emit('confirm', selectedItem.value)
// 2

View File

@@ -4,7 +4,7 @@
<!-- 顶部导航栏 -->
<view class="nav-bar">
<view class="nav-left" @tap="goBack">
<image src="/static/首页/arr-left.png" style="width: 48rpx; height: 48rpx;"></image>
<image src="http://47.104.199.163:9090/images/home/arr-left.png" style="width: 48rpx; height: 48rpx;"></image>
</view>
<view class="nav-title">在线报修</view>
<view class="nav-right"></view>
@@ -18,7 +18,7 @@
@click="publicClick"
style="margin-right: 20rpx;"
>
<image src="/static/在线报修/公共报修.png" style="width: 100%;height: 100%;"></image>
<image src="http://47.104.199.163:9090/images/repair/publicRepair.png" style="width: 100%;height: 100%;"></image>
<!-- <uni-icons type="staff" size="24" color="#fff"></uni-icons> -->
<!-- <text class="type-text">公共报修</text> -->
</view>
@@ -27,7 +27,7 @@
:class="{ active: activeType === 'personal' }"
@click="personalClick"
>
<image src="/static/在线报修/个人报修.png" style="width: 100%;height: 100%;"></image>
<image src="http://47.104.199.163:9090/images/repair/personalRepair.png" style="width: 100%;height: 100%;"></image>
<!-- <uni-icons type="person" size="24" color="#fff"></uni-icons> -->
<!-- <text class="type-text">个人报修</text> -->
</view>
@@ -83,9 +83,9 @@
<!-- 图片占位 -->
<view class="item-imgs">
<view class="img-placeholder" v-for="i in 3" :key="i">
<view class="img-placeholder" v-for="(i,index) in item.imageList" :key="index">
<!-- <uni-icons type="image" size="20" color="#ccc"></uni-icons> -->
<image src="/static/logo.png" style="width: 100%;height: 100%;"></image>
<image :src="i.img" style="width: 100%;height: 100%;"></image>
</view>
</view>
@@ -121,22 +121,30 @@ const repairList = computed(() => {
statusText = '已完成',
statusClass = 'completed'
}
// const imgList = ref([
// {img:'/static/shouye'},
// ])
//
const mockData = [
{
status: statusText,
statusClass: statusClass,
content: '1栋楼下道路路灯不亮并且有的亮度不够请物业公司及时更换防止发生意外事故。',
time: '2023-08-01 10:05:46'
time: '2023-08-01 10:05:46',
imageList:[
{img:'http://47.104.199.163:9090/images/repair/house1.png'},
{img:'http://47.104.199.163:9090/images/repair/house2.png'},
{img:'http://47.104.199.163:9090/images/repair/house3.png'},
]
},
{
status: statusText,
statusClass: statusClass,
content: '西门的门禁不好用了,草坪有好多的草,话题也应高擦了',
time: '2025-08-01 10:05:46'
time: '2025-08-01 10:05:46',
imageList:[
{img:'http://47.104.199.163:9090/images/repair/house1.png'},
{img:'http://47.104.199.163:9090/images/repair/house2.png'},
{img:'http://47.104.199.163:9090/images/repair/house3.png'},
]
}
];
return mockData;
@@ -145,13 +153,13 @@ const repairList = computed(() => {
function publicClick(){
activeType.value = 'public'
uni.navigateTo({
url:"/pages/online-repair/publicRepair"
url:"/pageSubPack/online-repair/publicRepair"
})
};
function personalClick(){
activeType.value = 'personal'
uni.navigateTo({
url:"/pages/online-repair/personalRepair"
url:"/pageSubPack/online-repair/personalRepair"
})
}
//
@@ -172,7 +180,7 @@ const goBack = () => {
const goDetail = (item) => {
// const itemStr = encodeURIComponent(JSON.stringify(item))
uni.navigateTo({
url: `/pages/online-repair/repairDetail?item = ${encodeURIComponent(JSON.stringify(item))}`
url: `/pageSubPack/online-repair/repairDetail?item = ${encodeURIComponent(JSON.stringify(item))}`
});
};
</script>

View File

@@ -348,14 +348,14 @@ onUnload(() => {
//
const goToSelectHouse = () => {
uni.navigateTo({
url: '/pages/online-repair/selectHouse'
url: '/pageSubPack/online-repair/selectHouse'
})
}
//
const goToSelectProject = () => {
uni.navigateTo({
url: '/pages/online-repair/personalSelectPoject'
url: '/pageSubPack/online-repair/personalSelectPoject'
})
}

View File

@@ -80,7 +80,7 @@ onLoad((options) => {
//
const goBackSelect = () => {
uni.navigateTo({
url:"/pages/online-repair/repairSelect"
url:"/pageSubPack/online-repair/repairSelect"
})
// uni.navigateBack({
// delta: 1

View File

@@ -3,7 +3,8 @@
<!-- 维修流程模块 -->
<view class="info-section">
<uni-section title="维修流程" type="line" style="margin-bottom: 20rpx;">
<!-- <uni-section title="维修流程" type="line" style="margin-bottom: 20rpx;"> -->
<view class="section-title">维修流程</view>
<uni-row class="demo-uni-row" :width="nvueWidth">
<uni-col :span="12">
<up-steps :current="currentStep" direction="column" space="30" active-color="#007aff">
@@ -19,13 +20,13 @@
</uni-col>
</uni-row>
</uni-section>
<!-- </uni-section> -->
</view>
<!-- 报修信息模块 -->
<view class="info-section">
<uni-section title="报修信息" type="line" style="margin-bottom: 20rpx;">
<!-- <view class="section-title">报修信息</view> -->
<!-- <uni-section title="报修信息" type="line" style="margin-bottom: 20rpx;"> -->
<view class="section-title">报修信息</view>
<view class="info-item">
<view class="info-label">报修房屋</view>
<view class="info-value">{{repairInfo.house}}</view>
@@ -38,7 +39,7 @@
<view class="info-label">标题</view>
<view class="info-value">{{repairInfo.title}}</view>
</view>
<view class="info-item">
<view class="info-item-desc">
<view class="info-label">问题描述</view>
<view class="info-value multi-line">{{repairInfo.description}}</view>
</view>
@@ -50,7 +51,7 @@
<view class="info-label">报修时间</view>
<view class="info-value">{{repairInfo.time}}</view>
</view>
<view class="info-item">
<view class="info-item-desc">
<view class="info-label">问题照片</view>
<view class="photo-container">
<view class="photo-item" v-for="(item, index) in 2" :key="index">
@@ -58,7 +59,7 @@
</view>
</view>
</view>
</uni-section>
<!-- </uni-section> -->
</view>
<!-- 联系物业按钮 -->
@@ -168,7 +169,7 @@
/* -------- */
.section-title {
font-size: 16px;
font-size: 32rpx;
font-weight: bold;
margin-bottom: 12px;
color: #333;
@@ -198,7 +199,12 @@
.info-item {
display: flex;
padding: 12px 0;
border-bottom: 1px solid #f0f0f0;
/* border-bottom: 1px solid #f0f0f0; */
}
.info-item-desc {
/* display: flex; */
padding: 12px 0;
/* border-bottom: 1px solid #f0f0f0; */
}
.info-section.active {
@@ -212,19 +218,23 @@
.info-label {
width: 80px;
color: #666;
color: #222;
font-size: 14px;
}
.info-value {
flex: 1;
color: #333;
color: #666;
font-size: 14px;
}
.multi-line {
white-space: pre-wrap;
line-height: 1.5;
border: 1px solid #f0f0f0;
border-radius: 8rpx;
padding: 30rpx;
margin: 30rpx 0;
}
.photo-container {

View File

@@ -79,7 +79,7 @@ const selectProject = (item) => {
const categoryName = categoryList.value.find(c => c.id === item.categoryId)?.name
//
uni.navigateTo({
url: `/pages/online-repair/publicRepair?category=${categoryName}&project=${item.name}`
url: `/pageSubPack/online-repair/publicRepair?category=${categoryName}&project=${item.name}`
})
}
</script>

View File

@@ -9,7 +9,7 @@
v-for="item in houseList"
:key="item.id"
>
<image src="/static/在线报修/房屋.png" style="width: 60rpx;height: 60rpx;"></image>
<image src="http://47.104.199.163:9090/images/repair/house.png" style="width: 60rpx;height: 60rpx;"></image>
<view class="house-name">
{{ item.community }}
<view class="house-detail">{{ item.address }}</view>

View File

@@ -7,7 +7,7 @@
<uqrcode
:value="qrcodeValue"
:size="400"
:logo="'/static/logo.png'"
:logo="'http://47.104.199.163:9090/images/logo.png'"
:logoSize="0.2"
canvasId="visitor-qrcode"
@success="onQrcodeSuccess"

View File

@@ -225,9 +225,9 @@ const switchTab = (tab) => {
activeTab.value = tab;
// Tab
resetForm();
nextTick(() =>{
// nextTick(() =>{
})
// })
};
@@ -363,15 +363,16 @@ const submitForm = () => {
border-bottom: 1rpx solid #eee;
}
.tab-item {
flex: 1;
/* flex: 1; */
display: flex;
padding: 30rpx;
text-align: center;
padding: 20rpx 0;
font-size: 32rpx;
color: #333;
}
.tab-item.active {
color: #007aff;
border-bottom: 4rpx solid #007aff;
/* border-bottom: 4rpx solid #007aff; */
}
/* 表单区域 */

View File

@@ -85,7 +85,7 @@ onLoad((option) =>{
//
const goToQrcode = () => {
uni.navigateTo({
url: '/pages/visitor/qrcode-page'
url: '/pageSubPack/visitor/qrcode-page'
});
};
</script>

View File

@@ -4,7 +4,7 @@
<!-- 顶部导航栏 -->
<view class="nav-bar">
<view class="nav-left" @tap="goBack">
<image src="/static/首页/arr-left.png" style="width: 48rpx; height: 48rpx;"></image>
<image src="http://47.104.199.163:9090/images/home/arr-left.png" style="width: 48rpx; height: 48rpx;"></image>
</view>
<view class="nav-title">访客邀请</view>
<view class="nav-right"></view>
@@ -141,14 +141,14 @@ const viewDetail = (item) => {
const itemStr = encodeURIComponent(JSON.stringify(item))
console.log('eeeee',itemStr)
uni.navigateTo({
url: `/pages/visitor/visitor-detail?item=${itemStr}` //
url: `/pageSubPack/visitor/visitor-detail?item=${itemStr}` //
})
}
//
const addInvitation = () => {
uni.navigateTo({
url: '/pages/visitor/visitor-add'
url: '/pageSubPack/visitor/visitor-add'
})
}
</script>
@@ -205,9 +205,10 @@ const addInvitation = () => {
display: flex;
}
.tab-item {
flex: 1;
/* flex: 1; */
display: flex;
text-align: left;
padding: 12px 0;
padding: 20px 40px 0px 0px;
font-size: 16px;
color: #666;
position: relative;
@@ -220,8 +221,8 @@ const addInvitation = () => {
.tab-item.active::after {
content: '';
position: absolute;
bottom: -2px;
left: 18%;
bottom: -7px;
left: 33%;
transform: translateX(-50%);
width: 64px;
height: 4px;
@@ -238,7 +239,7 @@ const addInvitation = () => {
/* 访客列表项 */
.visitor-item {
background-color: #fff;
margin: 10px 0px;
margin: 25px 0px;
padding: 15px;
border-radius: 8px;
}

View File

@@ -35,7 +35,7 @@
],
"subPackages": [{
"root": "pages/loginSub",
"root": "pageSubPack/loginSub",
"pages": [{
"path": "register-new-user",
"style": {
@@ -74,7 +74,7 @@
]
},
{
"root": "pages/online-repair",
"root": "pageSubPack/online-repair",
"pages": [{
"path": "onlineRepair",
"style": {
@@ -121,7 +121,7 @@
]
},
{
"root": "pages/visitor",
"root": "pageSubPack/visitor",
"pages": [{
"path": "visitor-list",
"style": {
@@ -150,7 +150,7 @@
]
},
{
"root": "pages/activity-list",
"root": "pageSubPack/activity-list",
"pages": [{
"path": "activityList",
"style": {
@@ -175,7 +175,7 @@
]
},
{
"root": "pages/notice-list",
"root": "pageSubPack/notice-list",
"pages": [{
"path": "noticeList",
"style": {
@@ -457,20 +457,20 @@
"selectedColor": "#666666",
"list": [{
"pagePath": "pages/index/index",
"iconPath": "/static/tabbar/首页.png",
"selectedIconPath": "/static/tabbar/首页蓝.png",
"iconPath": "/static/tabbar/home.png",
"selectedIconPath": "/static/tabbar/homeBlue.png",
"text": "首页"
},
{
"pagePath": "pages/serviceIndex/serviceIndex",
"iconPath": "/static/tabbar/服务.png",
"selectedIconPath": "/static/tabbar/服务蓝.png",
"iconPath": "/static/tabbar/service.png",
"selectedIconPath": "/static/tabbar/serviceBlue.png",
"text": "服务"
},
{
"pagePath": "pages/myIndex/myIndex",
"iconPath": "/static/tabbar/我的.png",
"selectedIconPath": "/static/tabbar/我的蓝.png",
"iconPath": "/static/tabbar/mine.png",
"selectedIconPath": "/static/tabbar/mineBlue.png",
"text": "我的"
}
]

View File

@@ -22,7 +22,7 @@ export const getResetPassword = (data) =>{
return post('/api/resident/auth/resetPassword',data)
}
// =========首页=======
// 查询小区列表
export const getVillageList = () =>{
return get('/api/resident/village/list')
// 首页最新公告
export const getNoticeList = () =>{
return get('/api/resident/notice/latest')
}

View File

@@ -16,9 +16,14 @@ export default function request(url, data = {}, method = "GET") {
data: data,
method: method,
header: {
"token": uni.getStorageSync("token") || '',
'content-type': 'application/json'
},
"Authorization": "Bearer " + (uni.getStorageSync("token") || ''),
"clientid": "resident",
'content-type': 'application/json'
},
// header: {
// "token": uni.getStorageSync("token") || '',
// 'content-type': 'application/json'
// },
success: (res) => {
uni.hideLoading(); // 关闭加载提示
@@ -44,16 +49,16 @@ export default function request(url, data = {}, method = "GET") {
return;
}
// 业务成功code=1
// 业务成功code=200
if (resData.code === 200) {
resolve(resData.data); // 只返回核心数据,简化页面调用
}
// 业务失败code=2
// 业务失败code=500
else if (resData.code === 500) {
const errMsg = resData.msg || '请求失败';
uni.showToast({ title: errMsg, icon: "none", duration: 2000 });
resolve(null)
// reject(errMsg);
// resolve(null)
reject(errMsg);
}
else {
const errMsg = resData.msg || '业务异常';

View File

@@ -14,7 +14,7 @@
<!-- 定位图标 -->
<view class="location-icon">
<!-- <uni-icons type="location-filled" size="14" color="#333333"></uni-icons> -->
<image src="/static/首页/adress.png" style="height: 100%;width: 100%;"></image>
<image src="http://47.104.199.163:9090/images/home/adress.png" style="height: 100%;width: 100%;"></image>
</view>
<!-- 小区名称和下拉箭头 -->
<view class="community-selector">
@@ -37,7 +37,7 @@
<up-swiper :list="bannerList" indicator indicatorMode="dot" ></up-swiper>
</view>
<view class="noticeClass" @click="getNoticeMore">
<image src="/static/首页/公告.png" style="width: 38px;height: 38px;position: absolute;top: 21px;left: 17px;"></image>
<image src="http://47.104.199.163:9090/images/home/notice.png" style="width: 38px;height: 38px;position: absolute;top: 21px;left: 17px;"></image>
<view class="col-line"></view>
<uni-notice-bar show-icon :text="noticeText" type="line"
:showIcon="false" show-get-more scrollable color="#000" background-color="#fff" moreColor="#000">
@@ -50,7 +50,7 @@
<up-col span="3">
<view class="demo-layout bg-purple openClass" @click="openDoorClick">
<view class="iconClass">
<image src="/static/首页/一键开门.png" mode="" style="width: 70px;height: 70px;border-radius: 8px;"></image>
<image src="http://47.104.199.163:9090/images/home/openDoor.png" mode="" style="width: 70px;height: 70px;border-radius: 8px;"></image>
</view>
<view class="title-dome-calss">一键开门</view>
</view>
@@ -58,7 +58,7 @@
<up-col span="3">
<view class="demo-layout bg-purple-light openClass" @click="payMentClick">
<view class="iconClass">
<image src="/static/首页/生活缴费.png" mode="" style="width: 70px;height: 70px;border-radius: 8px;"></image>
<image src="http://47.104.199.163:9090/images/home/lifePay.png" mode="" style="width: 70px;height: 70px;border-radius: 8px;"></image>
</view>
<view class="title-dome-calss">生活缴费</view>
</view>
@@ -66,7 +66,7 @@
<up-col span="3">
<view class="demo-layout bg-purple openClass" @click="onlineRepairClick">
<view class="iconClass">
<image src="/static/首页/在线报修.png" mode="" style="width: 70px;height: 70px;border-radius: 8px;"></image>
<image src="http://47.104.199.163:9090/images/home/repair.png" mode="" style="width: 70px;height: 70px;border-radius: 8px;"></image>
</view>
<view class="title-dome-calss">在线报修</view>
</view>
@@ -74,7 +74,7 @@
<up-col span="3">
<view class="demo-layout bg-purple-light openClass" @click="visitorClick">
<view class="iconClass">
<image src="/static/首页/访客邀请.png" mode="" style="width: 70px;height: 70px;border-radius: 8px;"></image>
<image src="http://47.104.199.163:9090/images/home/visitorInvite.png" mode="" style="width: 70px;height: 70px;border-radius: 8px;"></image>
</view>
<view class="title-dome-calss">访客邀请</view>
</view>
@@ -88,7 +88,7 @@
<up-row justify="space-between" customStyle="margin-bottom: 10px">
<up-col span="3">
<view class="demo-layout bg-purple iconRightClass">
<image src="/static/首页/广告1.png" mode="" style="width: 100%;height: 100%;"></image>
<image src="http://47.104.199.163:9090/images/home/ad1.png" mode="" style="width: 100%;height: 100%;"></image>
</view>
</up-col>
<up-col span="8">
@@ -126,7 +126,7 @@
<up-row justify="space-between" customStyle="margin-bottom: 10px">
<up-col span="4">
<view class="demo-layout bg-purple-light activity-img">
<image src="/static/首页/activity-img.png" style="width: 100%;height: 100%;"></image>
<image src="http://47.104.199.163:9090/images/home/activity-img.png" style="width: 100%;height: 100%;"></image>
</view>
</up-col>
<up-col span="10">
@@ -158,6 +158,7 @@
<script setup>
import { ref } from 'vue'
import {onLoad,onUnload} from '@dcloudio/uni-app'
import {getNoticeList} from "/pages/api/api.js"
@@ -188,7 +189,7 @@ const activityList = ref([
])
const currentCommunity = ref('碧桂园小区')
const bannerList = ref([
'/static/首页/banner.png',
'http://47.104.199.163:9090/images/home/banner.png',
])
const noticeText = ref('公告公告本小区今天安装了摄像头')
@@ -205,10 +206,27 @@ const slelctHomeData = (data) =>{
// console.log('收到B页面返回的数据', data)
currentCommunity.value = data.name
}
// 获取小区公告
// const getNoticeData = () =>{
// getNoticeList().then(res =>{
// if(res.code === 200){
// noticeText.value = res.data.noticeTitle
// }else{
// noticeText.value = ''
// }
// }).catch(err =>{
// uni.showToast({
// title: '网络异常',
// icon: 'error'
// });
// })
// }
onLoad(() => {
// 绑定全局事件监听
uni.$on('confirm', slelctHomeData)
// getNoticeData()
})
@@ -221,7 +239,7 @@ onUnload(() => {
const openDoorClick = () =>{
uni.setStorageSync('sourcePage',"index")
uni.navigateTo({
url:"/pages/notice-list/oneClickOpen"
url:"/pageSubPack/notice-list/oneClickOpen"
})
}
// 生活缴费
@@ -234,27 +252,27 @@ const payMentClick =() =>{
const navigateToPage = () => {
uni.navigateTo({
url: '/pages/notice-list/selectHome'
url: '/pageSubPack/notice-list/selectHome'
})
}
const onlineRepairClick = () =>{
uni.setStorageSync('sourcePage',"index")
uni.navigateTo({
url:'/pages/online-repair/onlineRepair'
url:'/pageSubPack/online-repair/onlineRepair'
})
}
// 访客邀请
const visitorClick = () =>{
uni.setStorageSync('sourcePage',"index")
uni.navigateTo({
url:"/pages/visitor/visitor-list"
url:"/pageSubPack/visitor/visitor-list"
})
}
// 活动列表的查看更多
const moreClick = () =>{
uni.setStorageSync('sourcePage',"index")
uni.navigateTo({
url:"/pages/activity-list/activityList"
url:"/pageSubPack/activity-list/activityList"
})
}

View File

@@ -14,7 +14,7 @@
<swiper-item>
<view class="guide-item">
<view class="guide-img">
<image class="" src="/static/引导1.png" style="width: 100%;height: 100%;"></image>
<image src="http://47.104.199.163:9090/images/guide1.png" style="width: 100%;height: 100%;"></image>
</view>
<view style="height: 200rpx;width: 100%;"></view>
<view class="guide-title">便捷服务</view>
@@ -26,7 +26,7 @@
<swiper-item>
<view class="guide-item">
<view class="guide-img">
<image src="/static/引导2.png" style="width: 100%;height: 100%;"></image>
<image src="http://47.104.199.163:9090/images/guide2.png" style="width: 100%;height: 100%;"></image>
</view>
<view style="height: 200rpx;width: 100%;"></view>
<view class="guide-title">高效管理</view>
@@ -38,7 +38,7 @@
<swiper-item>
<view class="guide-item">
<view class="guide-img">
<image src="/static/引导3.png" style="width: 100%;height: 100%;"></image>
<image src="http://47.104.199.163:9090/images/guide3.png" style="width: 100%;height: 100%;"></image>
</view>
<view style="height: 200rpx;width: 100%;"></view>
<view class="guide-title">安全保障</view>
@@ -92,7 +92,7 @@ const handleBtnClick = () => {
uni.setStorageSync('hasShowGuide', true);
// 2. 跳转首页
uni.navigateTo({
url:"/pages/loginSub/pwd-login"
url:"/pageSubPack/loginSub/pwd-login"
})
// uni.switchTab({
// url: '/pages/index/index'

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Submodule property-uniapp-project/static/js/chinaRegions added at 456201d979

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 B

View File

Before

Width:  |  Height:  |  Size: 475 B

After

Width:  |  Height:  |  Size: 475 B

View File

Before

Width:  |  Height:  |  Size: 323 B

After

Width:  |  Height:  |  Size: 323 B

View File

Before

Width:  |  Height:  |  Size: 624 B

After

Width:  |  Height:  |  Size: 624 B

View File

Before

Width:  |  Height:  |  Size: 433 B

After

Width:  |  Height:  |  Size: 433 B

View File

Before

Width:  |  Height:  |  Size: 577 B

After

Width:  |  Height:  |  Size: 577 B

View File

Before

Width:  |  Height:  |  Size: 562 B

After

Width:  |  Height:  |  Size: 562 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 471 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 624 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB