From d92ab3161161f1f038680c6b52e5baf5a259f574 Mon Sep 17 00:00:00 2001 From: Liuyi <candymxq888@outlook.com> Date: 星期六, 21 十二月 2024 16:55:28 +0800 Subject: [PATCH] 添加设备维护及巡检新增功能 --- pages/index/index.vue | 830 +++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 578 insertions(+), 252 deletions(-) diff --git a/pages/index/index.vue b/pages/index/index.vue index 5610509..9ab5d85 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -1,6 +1,7 @@ <script setup> import { onMounted, ref } from "vue"; - import { getVipInfoApi,getUserInfo,reportLossApi,removeCardApi } from '../../api/index.js' + import { BASE_URL } from '../../config/baseUrl'; + import { getVipInfoApi,getUserInfo,reportLossApi,removeBindingApi,buyWaterApi } from '../../api/index.js' import { onShow,getCurrentPages } from '@dcloudio/uni-app' //状态栏高度 const topHeight = ref(0) @@ -13,52 +14,63 @@ /** * 会员卡相关 */ - const isLoss = ref(false) const cardInfo = ref({ + //用户档案信息 id:'', userName:'微信用户', headImg:'', userPhone:'', + integral:'', waterCardNumber:'', balance:'', count:'', - state:'', + state:'',//state:true:挂失,false:正常 + cardType:'',//卡类型01卡消费 02计次消费 03游客消费 04电子卡 + userCardType:'',//userCardType:true:共享卡,false:正常卡 }) + // const showHeadImg = ref(BASE_URL + '/upload' + cardInfo.value.headImg) + const isLoss = ref(false) const isVip = ref(false) + const isShareCard = ref(false) //获取会员卡信息 - function getVipInfo(){ - return new Promise((resolve,reject) =>{ - getVipInfoApi().then((res) =>{ - if(res.code == 200){ - cardInfo.value.waterCardNumber = res.data.cardNumber - cardInfo.value.state = res.data.state - isLoss.value = cardInfo.value.state == 2 ? true : false - if(res.data.cardType == 1){ - cardInfo.value.balance = res.data.balance - }else if(res.data.cardType == 2){ - cardInfo.value.count = res.data.count - } - isVip.value = true + async function getVipInfo(){ + await getVipInfoApi().then((res) =>{ + console.log('会员卡信息响应',res) + if(res.code == 200 && res.data.id){ + //用户信息处理存储 + cardInfo.value.waterCardNumber = res.data.cardNumber + cardInfo.value.cardType = res.data.cardType + cardInfo.value.state = res.data.state == 2 ? true : false//state:2:挂失,1:正常 + cardInfo.value.userCardType = res.data.userCardType == 2 ? true : false //userCardType:2:共享卡,1:正常卡 + + //数据使用 + isLoss.value = cardInfo.value.state + isShareCard.value = cardInfo.value.userCardType + + //判断费用卡还是计次卡 + if(res.data.cardType == 1){ + cardInfo.value.balance = res.data.balance + }else if(res.data.cardType == 2){ + cardInfo.value.count = res.data.count } - }) + isVip.value = true + console.log('会员卡及用户信息',cardInfo.value) + } }) } //获取用户信息 - function getInfo(){ - getUserInfo().then((res) =>{ + async function getInfo(){ + await getUserInfo().then(async(res) =>{ + console.log('用户信息响应',res) if(res.code == 200){ cardInfo.value.userName = res.data.userInfo.userName ? res.data.userInfo.userName : cardInfo.value.userName cardInfo.value.headImg = res.data.userInfo.headImg + cardInfo.value.integral = res.data.userInfo.integral cardInfo.value.userPhone = res.data.userInfo.userPhone cardInfo.value.id = res.data.userInfo.id - - if(res.data.userInfo.waterCardNumber){ - getVipInfo() - console.log('00000') - }else{ - isVip.value = false - } + await getVipInfo() + console.log('用户信息',cardInfo.value) uni.setStorageSync('userInfo',JSON.stringify(cardInfo.value)) } }) @@ -70,11 +82,12 @@ //调用二维码扫描接口 uni.scanCode({ scanType: ['qrCode'], - success: function (res) { - console.log('条码内容:' + res.result); + success: async function (res) { + let code = res.result.split('=')[1] + console.log('条码内容:' + res.result,'code',code); uni.navigateTo({ - url:'/pages/scanWater/index' - }) + url:`/pages/scanWater/index?facilityCode=${code}` + }) } }); } @@ -82,14 +95,15 @@ * 功能列表相关 */ const functionList = ref([ - {text:'余额记录',icon:'../../static/images/index/icon31.png',bgColor:'#16b387',bgColor:'',url:'/pages/functionList/balanceRecord/index',isUrl:1}, - {text:'消费记录',icon:'../../static/images/index/icon32.png',bgColor:'#329ae8',url:'/pages/functionList/paymentRecord/index',isUrl:1}, - {text:'充值记录',icon:'../../static/images/index/icon33.png',bgColor:'#faaf0f',url:'/pages/functionList/rechargeRecord/index',isUrl:1}, - {text:'账户共享',icon:'../../static/images/index/icon34.png',bgColor:'#faaf0f',url:'',isUrl:4}, - {text:'故障上报',icon:'../../static/images/index/icon35.png',bgColor:'#a88ff1',url:'/pages/infoBreakdown/index',isUrl:1}, - {text:'优惠卷',icon:'../../static/images/index/icon36.png',bgColor:'#18bfc4',url:'',isUrl:4}, - {text:'会员卡挂失',icon:'../../static/images/index/icon37.png',bgColor:'#4875f0',url:'',isUrl:2}, - {text:'会员卡注销',icon:'../../static/images/index/icon38.png',bgColor:'#f45088',url:'',isUrl:3}, + //isUrl:1:页面跳转,2:弹窗功能,3:弹窗功能,4:未开发 + {text:'余额记录',icon:'../../static/images/index/icon31.png',url:'/pages/functionList/balanceRecord/index',isUrl:1}, + {text:'消费记录',icon:'../../static/images/index/icon32.png',url:'/pages/functionList/paymentRecord/index',isUrl:1}, + {text:'充值记录',icon:'../../static/images/index/icon33.png',url:'/pages/functionList/rechargeRecord/index',isUrl:1}, + {text:'水卡共享',icon:'../../static/images/index/icon34.png',url:'/pages/functionList/share/cardShare/index',isUrl:1}, + {text:'故障上报',icon:'../../static/images/index/icon35.png',url:'/pages/infoBreakdown/index',isUrl:1}, + {text:'优惠卷',icon:'../../static/images/index/icon36.png',url:'',isUrl:4}, + {text:'卡挂失',icon:'../../static/images/index/icon37.png',url:'',isUrl:2}, + {text:'卡解绑',icon:'../../static/images/index/icon38.png',url:'',isUrl:3}, ]) function navTo(itemUrl){ if(itemUrl){ @@ -103,95 +117,193 @@ if(isUrl == 1){ navTo(url) }else if(isUrl == 2){ - uni.showModal({ - title: '会员卡挂失', - content: '确认挂失会员卡?', - success: async function(res) { - if (res.confirm) { - await reportLossApi(cardInfo.value.waterCardNumber).then(async(res) =>{ - if(res.code == 200){ - uni.showToast({ - title: '已挂失', - duration: 2000, - }); - await getVipInfoApi().then((res) =>{ + if(cardInfo.value.waterCardNumber){ + //不是共享卡且未挂失 + if(!isShareCard.value && !cardInfo.value.state){ + uni.showModal({ + title: '会员卡挂失', + content: '确认挂失会员卡?', + success: async function(res) { + if (res.confirm) { + await reportLossApi(cardInfo.value.waterCardNumber).then(async(res) =>{ if(res.code == 200){ - if(res.data.state == 2){ - isLoss.value = true - } + uni.showToast({ + title: '已挂失', + duration: 2000, + }); + await getVipInfoApi().then((res) =>{ + if(res.code == 200){ + if(res.data.state == 2){ + isLoss.value = true + } + } + }) } }) } - }) - }else{ - console.log('点击了取消7') - } + } + }) + }else if(isShareCard.value){ + uni.showToast({ + title:'共享卡无权限', + icon:'none' + }) + }else if(cardInfo.value.state){ + uni.showToast({ + title:'已挂失', + icon:'none' + }) } - }) + }else{ + uni.showToast({ + title:'未绑定会员卡!', + icon:'none' + }) + } }else if(isUrl == 3){ - uni.showModal({ - title: '会员卡注销', - content: '确认注销会员卡?', - success: async function(res) { - if (res.confirm) { - await removeCardApi(cardInfo.value.waterCardNumber).then(async(res) =>{ - if(res.code == 200){ - uni.showToast({ - title: '已注销', - duration: 2000, - icon:'none', - }); - await getVipInfoApi().then((res) =>{ + if(cardInfo.value.waterCardNumber){ + //判断是否是分享卡:分享卡不许注销 + if(!isShareCard.value){ + uni.showModal({ + title: '会员卡注销', + content: '确认注销会员卡?', + success: async function(res){ + if (res.confirm) { + await removeBindingApi(cardInfo.value.waterCardNumber).then(async(res) =>{ if(res.code == 200){ - if(!res.data.id){ - isVip.value = false - cardInfo.value.balance = '' - cardInfo.value.count = '' - cardInfo.value.waterCardNumber = '' - uni.setStorageSync('userInfo',JSON.stringify(cardInfo.value)) - } + uni.showToast({ + title: '已注销', + duration: 2000, + icon:'none', + }); + await getVipInfoApi().then((res) =>{ + if(res.code == 200){ + if(!res.data.id){ + isVip.value = false + cardInfo.value.balance = '' + cardInfo.value.count = '' + cardInfo.value.waterCardNumber = '' + uni.setStorageSync('userInfo',JSON.stringify(cardInfo.value)) + } + } + }) } }) } - }) - }else{ - console.log('点击了取消8') - } + } + }) + }else{ + uni.showToast({ + title:'共享卡无权限', + icon:'none' + }) } - }) + }else{ + uni.showToast({ + title:'未绑定会员卡!', + icon:'none' + }) + } }else{ - uni.showToast({ - title: '该功能正在升级中!', - duration: 2000, - icon:'none', - }); + upGrade() } } function upGrade(){ uni.showToast({ title: '该功能正在升级中!', - duration: 2000, + duration: 1000, icon:'none', }); } + //申请获取用户位置权限---------------------------------------------------- + let userLocation = { + lat:'', + lon:'', + } + function getUserLocation(){ + // 请求用户授权,第一次进入首页会有位置授权的提示 + uni.authorize({ + scope: 'scope.userLocation', + success() { + console.log("成功授权位置信息1") + storageLocation() + }, + fail() { + console.log("用户拒绝授权位置信息,再次提示用户授权") + showToast() + } + }) + //获取用户位置并存储 + function storageLocation(){ + uni.getLocation({ + type:'gcj02', + isHighAccuracy:true, + success:(res) =>{ + userLocation.lat = res.latitude + userLocation.lon = res.longitude + uni.setStorageSync('userLocation',JSON.stringify(userLocation)) + }, + fail:() =>{ + showToast() + } + }) + } + //用户拒绝授权 + function showToast(){ + uni.showModal({ + title: "请求授权当前位置", + content: "请求获取您的位置,加载附近饮水设备信息!", + confirmText: "前往设置", + success: (res) => { + if (res.confirm) { + uni.openSetting({ + success:(res1) =>{ //打开设置成功 + if (res1.authSetting['scope.userLocation']){ + console.log('用户二次授权成功') + setTimeout(() =>{ + storageLocation() + },1000) + }else{ + showToast() + console.log('用户拒绝授权') + } + }, + }) + }else{ + uni.showToast({ + title: '请先授权!', + duration: 2000, + icon:'none' + }); + showToast() + } + }, + }); + } + } onMounted( async() =>{ + console.log('空用户信息',cardInfo.value) + uni.setStorageSync('userInfo',JSON.stringify(cardInfo.value)) getTopHeight() + await getInfo() + await getUserLocation() + console.log('onMounted','用户存储本地数据',JSON.parse(uni.getStorageSync('userInfo'))) }) onShow(async() =>{ + getTopHeight() await getInfo() + console.log('onShow','用户存储本地数据',JSON.parse(uni.getStorageSync('userInfo'))) }) uni.showShareMenu({ withShareTicket: true, menus: ['shareAppMessage', 'shareTimeline'], success: function () { - console.log('分享菜单显示成功'); + // console.log('分享菜单显示成功'); }, fail: function (err) { - console.error('分享菜单显示失败', err); + // console.error('分享菜单显示失败', err); } }); - - </script> <template> @@ -199,62 +311,59 @@ <view class="content"> <view class="card-box" :style="{paddingTop:topHeight + 'rpx'}"> <view class="user-info" > - <image class="user-img" src='../../static/images/index/head.png' alt=''></image> + <image v-if="cardInfo.headImg" class="user-img" :src= "BASE_URL + '/upload' + cardInfo.headImg" alt=''></image> + <image v-else class="user-img" src='../../static/images/index/head.png' alt=''></image> <text @click="navTo('/pages/userInfo/index')">{{cardInfo.userName}}</text> <image @click="navTo('/pages/userInfo/index')" class="user-more"src="../../static/images/index/back.png"></image> - <view class="user-add-card" @click="navTo('/pages/addCard/index')"> - <image src='../../static/images/index/vip-add.png' alt=''></image> - <text>添加会员卡</text> - </view> </view> <view class="card"> <image class="card-bg" src="../../static/images/index/card11.png" alt=""></image> - <view class="card-content"> - <view class="card-left"> - <view class="left-top"> - <view> - <image v-if="isVip" src="../../static/images/index/code1.png" alt=""></image> - <text>会员卡 </text> - <text class="lossed" v-if="isLoss && isVip"> [已挂失]</text> + <view v-if="isVip" class="card-detail"> + <view class="card-top"> + <view class="vip">VIP</view> + <view class="top-right"> + <view v-if="isShareCard" class="card-name"> + <text>共享卡</text> + <text v-if="isLoss">[已挂失]</text> </view> - <view v-if="isVip">ID:{{cardInfo.waterCardNumber}}</view> + <view v-if="!isShareCard" class="card-name"> + <text>会员卡</text> + <text v-if="isLoss" class="card-loss">[已挂失]</text> + </view> + <view class="card-num"> + 卡号:{{cardInfo.waterCardNumber}} + </view> </view> - <!-- <view v-if="cardInfo.userPhone" class="left-bottom">电话:{{cardInfo.userPhone}}</view> --> </view> - <view class="card-right"> - <view class="card-right-top"> - <!-- <view @click="navTo('/pages/addCard/index')"> - <image src='../../static/images/index/vip-add.png' alt=''></image> - <text>添加会员卡</text> - </view> --> - <text v-if="isVip">金额卡</text> - <text v-if="!isVip">未绑定会员卡</text> - <text v-if="isVip">{{cardInfo.balance}}元</text> + <view class="card-bottom"> + <view class="bottom-left"> + <text class="bottom-left-text">余额:</text> + <text class="bottom-left-money">{{cardInfo.balance}}</text> </view> - <view v-if="isVip" class="card-right-bottom" @click="navTo('/pages/recharge/index')">充值</view> + <view v-if="!isShareCard" @click="navTo('/pages/recharge/index')" class="card-btn">充值</view> </view> + </view> + <view v-if="!isVip" class="card-none"> + <view class="card-none-top"><text>未绑定会员卡</text></view> + <view class="card-none-bottom"><view @click="navTo('/pages/addCard/index')" class="card-btn">去绑定</view></view> </view> </view> </view> + <!-- 功能区 --> <view class="function-box1"> - <view class="box1-bg box1-one" @click="upGrade()"> - <image src="../../static/images/index/home21.png" alt=""></image> + <view class="box1-bg box1-one" @click="upGrade"> + <image class="box-one-image1" src="../../static/images/index/home21.svg" alt=""></image> <view>送水到家</view> </view> <view @click="navTo('/pages/facilityList/index')" class="box1-bg box1-two"> - <image src="../../static/images/index/icon22.png" alt=""></image> + <image class="box-one-image2" src="../../static/images/index/icon22.svg" alt=""></image> <view>附近设备</view> - <!-- <view>账户余额(元)</view> - <view class="recharge"> - <text>¥</text> - <text>120.00</text> - </view> - <view @click="navTo('/pages/recharge/index')"> - 充值 - </view> --> </view> - <view class="box1-bg box1-three" @click="toScan()"> - <image src="../../static/images/index/icon23.png" alt=""></image> + </view> + <!-- 扫码取水 --> + <view class="scan-box"> + <view class="scan" @click="toScan()"> + <image class="scan-img" src="../../static/images/index/scan.png"></image> <view>扫码取水</view> </view> </view> @@ -263,19 +372,22 @@ <view class="box2-content"> <block v-for="(item,index) in functionList" :key="index"> <view class="box2-item" @click="setEvent(item.isUrl,item.url)"> - <view class="box2-item-img" :style="{background:item.bgColor}"><image :src= "item.icon" alt=""></image></view> + <view class="box2-item-img"><image class="box2-image" :src= "item.icon" alt=""></image></view> <view class="box2-item-text">{{item.text}}</view> </view> </block> </view> </view> - <view class="advertisement-box" @click="upGrade"><image src="../../static/images/index/bg4.png" alt=""></image></view> + <!-- 积分商城 --> + <view class="advertisement-box" @click="navTo('/pagesPoints/pointsMall/index')"> + <image class="banner-img" src="../../static/images/index/point-banner.png"></image> + </view> <view class="service-box"> <view class="service-title"><text>服务指南</text></view> <view class="service-content"> <view class="service-bg" @click="navTo('/pages/station/index')"> <view> - <image src="../../static/images/index/icon51.png" alt=""></image> + <image src="../../static/images/index/icon51.svg" alt=""></image> <text>附近站点</text> </view> <view class="service-info">服务中心正在营业中……</view> @@ -285,8 +397,9 @@ </view> </view> <view class="service-bg" @click="upGrade"> + <!-- <view class="service-bg" @click="navTo('/pages/counterRecharge/index')"> --> <view> - <image src="../../static/images/index/notice5.png" alt=""></image> + <image src="../../static/images/index/notice5.svg" alt=""></image> <text>公示公告</text> </view> <view class="service-info">停水公告的部分摘要的内容展示……</view> @@ -303,12 +416,13 @@ <style lang="scss" scoped> .container{ width:100%; - height:100vh; - overflow:scroll; + // height:100vh; + // overflow-y:scroll; .content{ width:100%; - height:100vh; + // height:100vh; background:#F6F6F6; + overflow:scroll; .card-box{ width: 100%; height: auto; @@ -318,17 +432,15 @@ .user-info{ width:100%; height:100rpx; - // background: #06BF5E; - display: flex; align-items: center; padding-left:15rpx; box-sizing: border-box; margin-bottom: 14rpx; display:flex; - position:relative; .user-img{ width:90rpx; height:90rpx; + border-radius:50%; margin-right:20rpx; } text{ @@ -339,150 +451,261 @@ width: 12rpx; height: 28rpx; } - .user-add-card{ - display:flex; - align-items:center; - height:40rpx; - font-size:22rpx; - background:linear-gradient(to right,#B1D9FD,#65A7FD); - border-radius:50rpx; - padding: 0 8rpx; - position: absolute; - bottom:0; - right:0; - image{ - width:28rpx; - height:28rpx; - margin-right:10rpx; - } - } } .card{ width: 100%; - height: 290rpx; + height: 256rpx; position:relative; .card-bg{ - height:290rpx; + height:256rpx; width:100%; top:0; position: absolute; z-index:1; } - .card-content{ + .card-none{ width: 100%; - height: 100%; + height:100%; + padding:38rpx; box-sizing: border-box; - padding:20rpx 15rpx; display: flex; - justify-content:space-between; - font-weight: 300; - font-size: 30rpx; - color: #FFFFFF; - z-index:100; - .card-left{ - height:100%; - display: flex; - justify-content:space-between; - flex-direction:column; - align-items:flex-start; - z-index:100; - .left-top{ - display: flex; - flex-direction: column; - view:first-child{ - display: flex; - align-items: center; - image{ - width:48rpx; - height:48rpx; - } - text{ - font-weight:400; - font-size: 36rpx; - color: #FFFFFF; - } - .lossed{ - color:#fff; - } - } - view:last-child{ - margin-left:10rpx; - font-size: 26rpx; - font-weight:500; - } - } + flex-direction: column; + justify-content:space-around; + color:#fff; + z-index:2; + .card-none-top{ + font-size:40rpx; + font-weight:600; + z-index:2; + letter-spacing:2rpx; } - .card-right{ + .card-none-bottom{ display: flex; - justify-content: space-between; - align-items:flex-end; - flex-direction: column; - height:100%; - z-index:100; - .card-right-top{ - align-items:flex-end; - display: flex; - justify-content: space-between; - flex-direction: column; - font-size:34rpx; - text:last-child{ - font-weight:500; - } - } - .card-right-bottom{ - width:137rpx; - height:56rpx; - background:linear-gradient(to right,#65A7FD ,#B1D9FD); - border-radius:50rpx; + justify-content: flex-end; + z-index:2; + .card-btn{ + width: 196rpx; + height: 80rpx; + background: linear-gradient( to right,#338AFD 0%, #65A7FD 100%); + border-radius: 40rpx; text-align: center; - line-height: 56rpx; - color:#212DDE; - font-weight: 400; + line-height: 80rpx; + font-size:44rpx; + letter-spacing:3rpx; + font-weight:500; } } } + .card-detail{ + width: 100%; + height:100%; + padding:38rpx; + box-sizing: border-box; + display: flex; + flex-direction: column; + justify-content: center; + color:#fff; + z-index:2; + .card-top{ + width:100%; + display: flex; + align-items: center; + z-index:2; + .vip{ + font-size:114rpx; + font-weight: 600; + } + .top-right{ + display: flex; + flex-direction: column; + justify-content: center; + margin-left:20rpx; + .card-name{ + font-size:40rpx; + font-weight:400; + .card-loss{ + font-size:34rpx; + font-weight:600; + margin-left:10rpx; + letter-spacing:2rpx; + color: #333434; + } + } + .card-num{ + font-size:34rpx; + font-weight:400; + } + } + } + .card-bottom{ + width:100%; + display: flex; + align-items: center; + justify-content: space-between; + z-index: 2; + .bottom-left{ + display: flex; + align-items:center; + .bottom-left-text{ + font-size:40rpx; + font-weight:400; + letter-spacing:2rpx; + } + .bottom-left-money{ + font-size:60rpx; + font-weight:600; + } + } + .card-btn{ + width: 196rpx; + height: 80rpx; + background: linear-gradient( 270deg, #65B5FD 0%, #338AFD 100%, #65A7FD 100%); + border-radius: 40rpx; + text-align: center; + line-height: 80rpx; + font-size:48rpx; + letter-spacing:6rpx; + } + } + } + // .share-card{ + // position:absolute; + // top:16rpx; + // left:28rpx; + // z-index:100; + // font-weight:400; + // font-size: 36rpx; + // color: #FFFFFF; + // } + // .card-content{ + // width: 100%; + // height: 100%; + // box-sizing: border-box; + // padding:20rpx 15rpx; + // display: flex; + // justify-content:space-between; + // font-weight: 300; + // font-size: 30rpx; + // color: #FFFFFF; + // z-index:100; + // .card-left{ + // height:100%; + // display: flex; + // justify-content:space-between; + // flex-direction:column; + // align-items:flex-start; + // z-index:100; + // .left-top{ + // display: flex; + // flex-direction: column; + // view:first-child{ + // display: flex; + // align-items: center; + // image{ + // width:48rpx; + // height:48rpx; + // } + // text{ + // font-weight:400; + // font-size: 36rpx; + // color: #FFFFFF; + // } + // .lossed{ + // color:#fff; + // } + // } + // view:last-child{ + // margin-left:10rpx; + // font-size: 26rpx; + // font-weight:500; + // } + // } + // } + // .card-right{ + // display: flex; + // justify-content: space-between; + // align-items:flex-end; + // flex-direction: column; + // height:100%; + // z-index:100; + // .card-right-top{ + // align-items:flex-end; + // display: flex; + // justify-content: space-between; + // flex-direction: column; + // font-size:34rpx; + // .user-add-card{ + // display:flex; + // align-items:center; + // height:52rpx; + // font-size:28rpx; + // background:linear-gradient(to right,#B1D9FD 0%,#65A7FD 70%,#65A7FD 100%); + // border-radius:50rpx; + // padding: 0 20rpx; + // image{ + // width:36rpx; + // height:36rpx; + // margin-right:6rpx; + // opacity:0.8; + // } + // text{ + // color:#FFF; + // } + // } + // text:last-child{ + // font-weight:500; + // } + // } + // .card-right-bottom{ + // width:137rpx; + // height:56rpx; + // background:linear-gradient(to right,#65A7FD ,#B1D9FD); + // border-radius:50rpx; + // text-align: center; + // line-height: 56rpx; + // color:#212DDE; + // font-weight: 400; + // } + // } + // } } } .function-box1{ width:100%; box-sizing:border-box; - height: 215rpx; - padding: 20rpx 32rpx 15rpx; + height: 172rpx; + padding: 20rpx 32rpx 22rpx; // background: rgba(85, 170, 0, 0.1); display:flex; justify-content: space-between; align-items:center; + font-size:36rpx; + font-weight:500; + color: #4d4d4d; + letter-spacing:2rpx; .box1-bg{ - width:212rpx; - height:180rpx; + width:326rpx; + height:130rpx; border-radius:24rpx; background: #fff; - box-shadow:0 0 12rpx 2rpx rgba(13,118,255,0.16); + box-shadow:0 0 12rpx 3rpx rgba(13,118,255,0.16); } .box1-one{ - font-weight: 300; - font-size: 32rpx; - color: #000000; text-align: center; display: flex; - flex-direction:column; align-items: center; justify-content: center; - image{ + justify-content:space-evenly; + .box-one-image1{ width: 86rpx; - height: 78rpx; - margin-bottom:20rpx; + height: 86rpx; } } .box1-two{ - font-weight: 300; - font-size: 32rpx; - color: #000000; display: flex; - flex-direction:column; align-items:center; justify-content:space-evenly; - image{ + .box-one-image2{ width:96rpx; height: 96rpx; // margin-bottom:20rpx; @@ -537,11 +760,35 @@ } } } + .scan-box{ + width:100%; + height:116rpx; + padding:0 42rpx 16rpx; + box-sizing: border-box; + .scan{ + width:100%; + height:100rpx; + background: #1678FF; + border-radius:178rpx; + display: flex; + justify-content: center; + align-items: center; + color: #fff; + font-size:44rpx; + font-weight:500; + letter-spacing:1rpx; + .scan-img{ + width:44rpx; + height:44rpx; + margin-right:20rpx; + } + } + } .function-box2{ width:100%; box-sizing:border-box; - height: 429rpx;//374 + 44 + 距离 + 底部padding32 - padding:0 32rpx 15rpx; + height: 420rpx;//374 + 44 + 距离 + 底部padding32 + padding:0 32rpx 0; // background: rgba(46, 121, 170, 0.5); .box2-title{ width: 100%; @@ -572,14 +819,15 @@ justify-content:space-between; align-items: center; .box2-item-img{ - width: 90rpx; - height:90rpx; + width: 100rpx; + height:100rpx; display: flex; justify-content: center; align-items: center; - background: #65A7FD; + // background:linear-gradient(to right,#18acff,#639fff); + background: #5EA1FA; border-radius:50%; - image{ + .box2-image{ width: 48rpx; height:48rpx; } @@ -588,22 +836,100 @@ width:100%; height: 40rpx; font-weight: 300; - font-size: 28rpx; - color: #000000; + font-size:30rpx; + color: #3e3e3e; text-align: center; + font-weight:600; } } } } .advertisement-box{ width:100%; - height: 188rpx; + height:188rpx; padding:0 32rpx 10rpx; box-sizing: border-box; - image{ - width:100%; - height: 178rpx; + display: flex; + justify-content:center; + .banner-img{ + width:686rpx; + height:178rpx; } + // .point-advert{ + // width:640rpx; + // height:136rpx; + // border-radius:10rpx; + // background:linear-gradient(140deg,#5c9dff 0%,#b5dcff 30%,#52aafc 70%,#b5dcff 90%,#5daffc 100%); + // display: flex; + // justify-content: space-around; + // align-items: center; + // box-shadow: 0 0 4rpx 2rpx #4978de; + // .advert-title{ + // display: flex; + // flex-direction: column; + // align-items: center; + // color: #fff; + // font-size:46rpx; + // font-weight:800; + // text-shadow:4rpx 2rpx #5EA1FA; + // .advert-title2{ + // margin-top:10rpx; + // font-size:28rpx; + // font-weight:500; + // width:180rpx; + // height:40rpx; + // background: #5c9dff; + // display: flex; + // align-items: center; + // justify-content: center; + // border-radius:30rpx; + // letter-spacing:2rpx; + // } + // } + // .advert-image{ + // width:200rpx; + // height:100%; + // // background: #76bfa1; + // position: relative; + // .image-icon1{ + // position:absolute; + // left: calc(50% - 65rpx); + // top: calc(50% - 65rpx); + // width:130rpx; + // height:130rpx; + // transform: rotate(20deg); + // } + // .image-icon2{ + // position:absolute; + // left:60%; + // top: calc(50% - 30rpx); + // width:90rpx; + // height:90rpx; + // transform: rotate(-10deg); + // } + // .image-icon3{ + // position:absolute; + // left: calc(50% - 100rpx); + // top: 30%; + // width:80rpx; + // height:80rpx; + // transform: rotate(-10deg); + // } + // .image-icon4{ + // position:absolute; + // left:140%; + // top: 60%; + // width:50rpx; + // height:50rpx; + // transform: rotate(5deg); + // } + // } + // } + // image{ + // width:320rpx; + // height:136rpx; + // border-radius:10rpx; + // } } .service-box{ width: 100%; -- Gitblit v1.9.3