chuangte_bike_newxcx/pages/index/index.vue
2025-06-07 17:46:48 +08:00

1410 lines
34 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="page">
<u-navbar :is-back="false" title="小鹿骑行" :border-bottom="false" back-icon-color="000" :background="bgc" title-color='#000' title-size='36'
height='44' id="navbar">
</u-navbar>
<view class="gonggao" @click="btntopgg">
<u-icon name="volume-fill" color="#fff" style="position: absolute;left: 20rpx;" size="32"></u-icon>
<view class="container">
<view class="scroll-text">
<view class="scroll-item">
{{announcements.noticeTitle == null ? '暂无最新公告!!!' : announcements.noticeTitle}}
</view>
</view>
</view>
<u-icon name="arrow-right" color="#fff" style="position: absolute;right: 10rpx;" size="32"></u-icon>
</view>
<!-- 公告弹窗 -->
<view class="noticetc" v-if="gonggaoflag">
<view class="name">
公告
</view>
<view class="biaoti">
{{gonggaoxq.noticeTitle}}
</view>
<!-- <view class="cont" v-html="gonggaoxq.noticeContent"></view> -->
<u-parse :html="gonggaoxq.noticeContent" style="width: 100%;height: 620rpx;background-color: #efefef;padding: 10rpx;box-sizing: border-box;margin-top: 20rpx;"></u-parse>
<view class="btn" @click="btnggtc">
我知道了
</view>
</view>
<view class="mask" v-if="gonggaoflag"></view>
<!-- 地图 -->
<view class="ditu">
<map class='map' id="map" :latitude="latitude" :longitude="longitude" :show-location="true" @click="btnzk"/>
<image @click="btnzk" src="https://api.ccttiot.com/smartmeter/img/static/up0OxngKxP5JZ3hRLvCv" class="zk" mode=""></image>
<!-- <view class="caozuo">
<image @click="btnpage(1)" src="https://api.ccttiot.com/smartmeter/img/static/uAGgpuC9wi9lFXZFO35G" mode=""></image>
<image @click="btnpage(2)" src="https://api.ccttiot.com/smartmeter/img/static/u4DUUUKIRR5HcB8uIkl4" mode=""></image>
<image @click="btnpage(3)" src="https://api.ccttiot.com/smartmeter/img/static/unPEUv14mgsytgeis4Fx" mode=""></image>
<image @click="btnpage(4)" style="width: 150rpx;" src="https://api.ccttiot.com/smartmeter/img/static/uJPhQOQ3y97HIdcQVdGG" mode=""></image>
</view> -->
<view class="kuaijie">
<image @click="btnpage(2)" style="height: 100rpx;margin-top: 16rpx;" src="https://api.ccttiot.com/smartmeter/img/static/udUQI8zA1tYUEndx9guO" mode=""></image> <!-- 订单 -->
<image @click="btntiao(2)" src="https://api.ccttiot.com/smartmeter/img/static/uECTLFe6fzWgzNzVdsPs" mode=""></image> <!-- 使用帮助 -->
<image @click="btnpage(4)" src="https://api.ccttiot.com/smartmeter/img/static/uPyDAy2sWgh4UkDr3yX4" mode=""></image> <!-- 编号开锁 -->
<image @click="btntiao(3)" src="https://api.ccttiot.com/smartmeter/img/static/uxLGGshcH6nr557ffO5E" mode=""></image> <!-- 意见反馈 -->
<image @click="btnkf" src="https://api.ccttiot.com/smartmeter/img/static/up53i8F9cn9wajU8dXuS" mode=""></image> <!-- 客服 -->
</view>
</view>
<view class="guanggao">
<!-- <image src="https://api.ccttiot.com/smartmeter/img/static/uTZBBRuyRexKd6c4VE9d" mode="aspectFill"></image> -->
<u-swiper :list="lists" @click="btnshangjia"></u-swiper>
<!-- <image src="https://api.ccttiot.com/smartmeter/img/static/uEMuO2M40WcExJVSprIy" class="kefu" mode=""></image> -->
</view>
<view class="fujin">
<view class="names">
附近门店
</view>
<view class="list">
<view class="list_item" v-if="false" v-for="(item,index) in 2" :key="index" @click="btnxq">
<view class="top">
<view class="name">
云行租车(汇丰公寓)
</view>
<image src="https://api.ccttiot.com/smartmeter/img/static/uebBGQwgvIO4BgJB5nd0" @click.stop="btntel" mode=""></image>
</view>
<view class="dizhi">
<image src="https://api.ccttiot.com/smartmeter/img/static/uxTxqrn1kIVJEHCS57YU" mode=""></image> 2.3km | 天目山路134号
</view>
<view class="bot">
<view class="lt">
<view class="yytime">
<text>营业时间 | </text>06:00-23:00
</view>
<view class="songqu">
免费送取车
</view>
</view>
<view class="rt">
<view class="rizu">
<view class="price">
日均¥<text>69</text>起
</view>
<view class="qizu">
3辆车可租
</view>
</view>
<image src="https://api.ccttiot.com/smartmeter/img/static/uXOW5yZvS1fBGH7xz77A" mode=""></image>
</view>
</view>
<view class="cheliang">
<view class="quanxin" v-for="(item,index) in 2" :key="index">
<view class="qxlt">
<image src="https://api.ccttiot.com/smartmeter/img/static/uK5bAmrXLEHVxbH6FcFD" mode=""></image>
</view>
<view class="qxrt">
<view class="name">
全新车网红...
</view>
<view class="junjia">
日均¥69
</view>
</view>
</view>
</view>
</view>
<view class="dibutishi">
<!-- <text>当前附近没有更多门店咯...</text> -->
<image src="https://api.ccttiot.com/smartmeter/img/static/usBtiESbpV8GIY3k4ukv" mode=""></image>
</view>
</view>
</view>
<!-- 平台客服弹窗 -->
<view class="kefutc" v-if="kefuflag">
<image class="bj" src="https://api.ccttiot.com/smartmeter/img/static/uTSMnIgvw7eS13LxZjvt" mode="" @click="kefuflag = false"></image>
<view class="box">
<view class="" style="max-height: 640rpx;overflow: scroll;">
<view class="" style="font-weight: 600;color: #3D3D3D;">
订单要售后:
</view>
<view class="top" v-for="(item,index) in kefulist" :key="index">
<view class="dianhua">
{{item.name == null ? '--' : item.name}}{{item.contact == null ? '--' : item.contact}}
<view class="wz">
工作时间:{{item.startTime}}~{{item.endTime}}
</view>
</view>
<view class="boda" @click.stop="btnptkf(item.contact)">
<image src="https://api.ccttiot.com/smartmeter/img/static/uwTYS0nZBsoaiY8EFlQA" mode=""></image>
<text>拨打</text>
</view>
</view>
<view class="" style="margin-top: 20rpx;font-weight: 600;color: #3D3D3D;" v-if="kefuarr.length > 0">
骑行前咨询:
</view>
<view class="top" v-for="(item,index) in kefuarr" :key="index">
<view class="dianhua">
{{item.name == null ? '--' : item.name}}{{item.contact == null ? '--' : item.contact}}
<view class="wz">
工作时间{{item.startTime}}~{{item.endTime}}
</view>
</view>
<view class="boda" @click.stop="btnptkf(item.contact)">
<image src="https://api.ccttiot.com/smartmeter/img/static/uwTYS0nZBsoaiY8EFlQA" mode=""></image>
<text>拨打</text>
</view>
</view>
</view>
<view class="bot">
<!-- <view class="wz">
客服工作时间
</view> -->
<view class="wzs">
客服电话高峰期可能遇忙请耐心等待
</view>
</view>
</view>
</view>
<!-- 有订单弹窗 -->
<view class="conts_box" v-if="orderflag" @click="btntz">
<view class="orderzt">
<view class="" style="font-size: 32rpx;font-weight: 600;">
订单状态
</view>
<view class="">
<view style="color: #333;">订单进行中<u-icon name="arrow-right" color="#333" size="28"></u-icon></view>
</view>
</view>
<view class="cont_li">
<view class="right">
<image :src="iconobj.mapimg" mode="aspectFill">
</image>
<view class="NO">
SN{{orderobj.deviceSn == null ? '--' : orderobj.deviceSn}}
</view>
</view>
<view class="left">
<view class="km">
可继续行驶{{orderobj.deviceRemainEndurance == null ? '--' : orderobj.deviceRemainEndurance}}公里
</view>
<view class="speed">
<view class="speeds" :style="{ width: orderobj.deviceRemainingPower + '%' }"></view>
</view>
<view class="NO">
电量{{orderobj.deviceRemainingPower == null ? '--' : orderobj.deviceRemainingPower}}%
</view>
</view>
</view>
<view class=""
style="display: flex;width: 100%;padding: 0 20rpx;box-sizing: border-box;justify-content: space-between;">
<view class="dh" @click.stop="danghang">
导航 <u-icon name="arrow-right" color="#333" size="28"></u-icon>
</view>
<view class="suocheanniu">
<view class="lssc" @click.stop="btnjsdd">
结束订单
</view>
<view class="lssc" @click.stop="btnqd">
{{orderobj.deviceLockStatus == 1 ? '临时锁车' : '开锁'}}
</view>
</view>
</view>
</view>
<!-- 扫码用车未在停车点内还车弹窗 -->
<view class="tingchetc" v-if="fjflag">
<view class="topname">
<image src="https://api.ccttiot.com/smartmeter/img/static/uDfEXjApmdS6ByM88pv3" mode=""></image>
{{fajinobj.manageFee > 0 ? '不在运营区' : fajinobj.dispatchFee > 0 ? '不在停车点' : ''}}
</view>
<view class="shuom">
需支付<text>{{fajinobj.manageFee > 0 ? fajinobj.manageFee : fajinobj.dispatchFee > 0 ? fajinobj.dispatchFee : ''}}元</text>,你可查看<text
@click="btntcd">最近停车点</text>
</view>
<image :src="iconobj.tingcheimg" class="tcimg" mode="aspectFill">
</image>
<view class="btnan">
<view class="fj" @click="btnfajin">
缴纳罚金还车
</view>
<view class="qx" @click="btnjjqx">
继续骑行
</view>
</view>
</view>
<view class="mask" v-if="fjflag"></view>
<view class="mask" v-if="kefuflag"></view>
<tab-bar :indexs='0'></tab-bar>
</view>
</template>
<script>
var xBlufi = require("@/components/blufi/xBlufi.js")
export default {
data() {
return {
bgc: {
backgroundColor: "#F4FCFF",
},
latitude:'',
longitude:'',
covers:[],
kefuflag:false,
gonggaoxq:{},
gonggaoflag:false,
announcements: {},
kefulist:[],
lists: [],
info:{},
tiaozhuanlist:[],
jinweidu:'',
kefuarr:[],
fjflag: false,
orderflag: false,
iconobj:this.$store.state.iconobj,
orderobj: {},
orderAreaReturnVerify:'',
latsc:'',
lngsc:'',
fajinobj:{}
}
},
onLoad() {
uni.getLocation({
type: 'gcj02', // 国内地图更兼容
isHighAccuracy: true,
success: (res) => {
console.log('精确坐标:', res)
},
fail: (err) => {
console.error('获取位置失败:', err)
}
})
},
// 分享到好友(会话)
onShareAppMessage: function() {
return {
title: '小鹿骑行',
path: '/pages/index/index'
}
},
// 分享到朋友圈
onShareTimeline: function() {
return {
title: '小鹿骑行',
query: '',
path: '/pages/index/index'
}
},
onShow() {
this.getinfo()
this.getlunbo()
this.getorderdevice()
},
methods: {
// 点击跳转到车辆
btntz() {
uni.switchTab({
url: '/pages/myorder/returned/index'
})
},
// 点击继续骑行
btnjjqx(){
this.orderflag = true
this.fjflag = false
},
// 点击跳转导航
danghang() {
if (this.orderobj.deviceLatitude && this.orderobj.deviceLongitude) {
uni.openLocation({
latitude: this.orderobj.deviceLatitude, //纬度-目的地/坐标点
longitude: this.orderobj.deviceLongitude, //经度-目的地/坐标点
name: '', //地点名称
address: '' //详细地点名称
})
} else {
uni.showToast({
title: '车辆暂无法导航',
icon: 'none',
duration: 2000
})
}
},
// 点击启动and关闭
btnqd() {
if (this.orderobj.deviceLockStatus == 0) {
let that = this
uni.showModal({
title: '提示',
content: '您是否要解锁车辆?',
showCancel: true,
success: function(res) {
if (res.confirm) {
that.$u.put(`/app/order/openDevice?orderId=${that.orderobj.orderId}`).then((
res) => {
if (res.code == 200) {
uni.showToast({
title: '解锁成功',
icon: 'success',
duration: 2000
})
that.getorderdevice()
} else {
uni.showModal({
title: '提示',
content: '设备离线,请前往车辆详情连接车辆操作',
showCancel: false,
success: function(res) {
if (res.confirm) {
uni.switchTab({
url:'/pages/myorder/returned/index'
})
} else if (res.cancel) {
}
}
})
}
})
} else if (res.cancel) {
console.log('取消')
}
}
})
} else if (this.orderobj.deviceLockStatus == 1) {
uni.getLocation({
type: 'wgs84',
success: (res) => {
this.latsc = res.latitude
this.lngsc = res.longitude
},
fail: (err) => {
console.error('获取位置失败:', err)
this.latsc = null
this.lngsc = null
}
})
let that = this
uni.showModal({
title: '提示',
content: '您是否要临时锁车?',
showCancel: true,
success: function(res) {
if (res.confirm) {
let query = {
orderId: that.orderobj.orderId,
lat: that.latsc,
lon: that.lngsc,
}
let url = '/app/order/closeDevice?' + that.$tansParams(query)
that.$u.put(url).then((res) => {
if (res.code == 200) {
uni.showToast({
title: '临时锁车成功',
icon: 'success',
duration: 2000
})
that.getorderdevice()
} else {
uni.showModal({
title: '提示',
content: '设备离线,请前往车辆详情连接车辆操作',
showCancel: false,
success: function(res) {
if (res.confirm) {
uni.switchTab({
url:'/pages/myorder/returned/index'
})
} else if (res.cancel) {
}
}
})
}
})
} else if (res.cancel) {
console.log('取消')
}
}
})
}
},
// 点击结束订单
btnjsdd() {
if (this.orderAreaReturnVerify == true) {
uni.navigateTo({
url: '/page_user/hcshenhe?sn=' + this.orderobj.deviceSn + '&orderid=' + this.orderobj.orderId + '&orderAreaId=' + this.orderobj.orderAreaId
})
} else {
uni.getLocation({
type: 'gcj02', // 国内地图更兼容
isHighAccuracy: true,
success: (res) => {
this.latsc = res.latitude
this.lonsc = res.longitude
this.getfeiyong()
},
fail: (err) => {
console.error('获取位置失败:', err)
this.getfeiyong()
}
})
}
},
// 点击还车判断是否需要另外缴费
getfeiyong() {
let data = {
orderId: this.orderobj.orderId,
lon: this.lonsc,
lat: this.latsc,
checkLocation:true
}
this.$u.post(`/app/order/calcFee`, data).then(res => {
if (res.code == 200) {
this.fajinobj = res.data
if (res.data.manageFee > 0 || res.data.dispatchFee > 0) {
this.fjflag = true
this.orderflag = false
} else {
this.gethuan()
}
}else if(res.code == 30001){
uni.showToast({
title: '必须在停车点内还车',
icon: 'none',
duration: 5000
})
}else if(res.code == 30002){
uni.showToast({
title: '不允许在禁停区内还车',
icon: 'none',
duration: 5000
})
}else if(res.code == 30003){
uni.showToast({
title: '必须在运营区内还车',
icon: 'none',
duration: 5000
})
}
})
},
// 点击缴纳罚金继续还车
btnfajin() {
this.gethuan()
},
// 还车统一调用
gethuan() {
let that = this
uni.showModal({
title: '提示',
content: '您确定要还车吗?',
showCancel: true,
success: function(res) {
if (res.confirm) {
let data = {
orderId: that.orderobj.orderId,
picture: that.imgs,
lon: that.lonsc,
lat: that.latsc
}
that.$u.put(`/app/order/end`, data).then(res => {
if (res.code == 200) {
uni.showToast({
title: '还车成功',
icon: 'success',
duration: 2000
})
setTimeout(()=>{
that.fjflag = false
that.orderflag = false
setTimeout(()=>{
uni.navigateTo({
url:'/page_user/yongche/orderxq?id=' + that.orderobj.orderId
})
},1000)
},1000)
} else {
uni.showModal({
title: '提示',
content: '设备离线,请前往车辆详情连接车辆操作',
showCancel: false,
success: function(res) {
if (res.confirm) {
uni.switchTab({
url:'/pages/myorder/returned/index'
})
} else if (res.cancel) {
}
}
})
}
})
} else if (res.cancel) {
}
}
})
},
// 点击跳转到最近停车点
btntcd() {
uni.navigateTo({
url: '/pages/myorder/returned/tingche?areaId=' + this.orderobj.orderAreaId
})
},
// 获取本人正在使用的订单设备
getorderdevice() {
this.$u.get("/app/orderDevice/mineUsing").then((res) => {
if (res.code == 200) {
if (res.data) {
this.orderobj = res.data
this.orderAreaReturnVerify = res.data.orderAreaReturnVerify
this.orderflag = true
} else {
this.orderflag = false
}
}
})
},
// 点击跳转轮播图跳转
btnshangjia(e){
console.log(e,'1212121',this.tiaozhuanlist[e].urlType);
if(this.tiaozhuanlist[e].urlType == 1){
uni.navigateTo({
url: '/page_fenbao/webview?url=' + this.tiaozhuanlist[e].url
})
}else{
uni.navigateTo({
url: '/' + this.tiaozhuanlist[e].url
})
}
},
// 点击显示客服
btnkf(){
if(this.kefulist.length > 0){
this.kefuflag = true
}else{
uni.showToast({
title: '当前暂无客服',
icon: 'none',
duration: 2000
})
}
},
// 获取客服
getkefu(){
this.$u.get(`/app/customerService/indexList?radius=1000&center=${this.jinweidu}`).then(res => {
if(res.code == 200){
this.kefulist = res.after
this.kefuarr = res.before
}
})
},
// 获取广告轮播图
getlunbo(){
this.$u.get("/app/ad").then(res => {
if(res.code == 200){
this.lists = []
this.tiaozhuanlist = res.data
if(res.data.length > 0 && res.data[0] != null){
res.data.forEach(item =>{
this.lists.push({
image:item.picture,
title: item.adId
})
})
}else{
this.lists.push({
image:"https://api.ccttiot.com/smartmeter/img/static/uTZBBRuyRexKd6c4VE9d",
title: ""
})
}
}else{
this.lists.push({
image:"https://api.ccttiot.com/smartmeter/img/static/uTZBBRuyRexKd6c4VE9d",
title: ""
})
}
})
},
// 获取个人用户信息
getinfo(){
this.$u.get("/getInfo").then(res => {
if(res.code == 200){
this.info = res.user
this.getMyLocation()
this.getgonggao()
}else if(res.code == 401){
this.getlogo()
}
})
},
// 静默登录
getlogo(){
let taht = this
wx.login({
success(res) {
if (res.code) {
let data = {
loginCode: res.code,
appId:taht.$store.state.appid
}
taht.$u.post('/wxLogin', data).then(res => {
if (res.code == 200) {
uni.setStorageSync('token', res.token)
taht.getinfo()
taht.getlunbo()
}else{
taht.getinfo()
}
})
}
},
})
},
// 点击头部滚动通知
btntopgg(){
this.$u.get(`/app/notice/${this.announcements.noticeId}`).then(resp =>{
if(resp.code == 200){
this.gonggaoxq = resp.data
this.gonggaoflag = true
}
})
},
// 点击公告我知道了
btnggtc(){
this.gonggaoflag = false
uni.setStorageSync('noticeId', this.announcements.noticeId)
},
// 获取最新公告
getgonggao(){
this.$u.get("/app/notice/new?noticeType=1").then(res =>{
if(res.code == 200){
this.announcements = res.data
if(res.data){
this.$u.get(`/app/notice/${res.data.noticeId}`).then(resp =>{
if(resp.code == 200){
this.gonggaoxq = resp.data
if(resp.data.noticeId != uni.getStorageSync('noticeId')){
this.gonggaoflag = true
}
}
})
}
}
})
},
// 点击拨打平台客服电话
btnptkf(tel){
uni.makePhoneCall({
phoneNumber: tel,
success: function(res) {
console.log('拨打电话成功', res)
},
fail: function(err) {
console.error('拨打电话失败', err)
}
})
},
// 点击进行跳转页面
btntiao(num){
if(num == 1){ //跳转到地图页
uni.switchTab({
url:'/pages/nearbystores/index'
})
}else if(num == 2){ //跳转到使用帮助页
uni.navigateTo({
url:'/page_user/bangzhu'
})
}else if(num == 3){ //跳转到车辆故障上报
uni.navigateTo({
url:'/page_user/guzhang/index'
})
}else{ //跳转到意见反馈页
uni.navigateTo({
url:'/page_user/yijian'
})
}
},
// 点击附近门店跳转到门店详情页
btnxq(){
uni.navigateTo({
url:'/page_fenbao/storedlist/index'
})
},
// 点击门店拨打电话
btntel() {
uni.makePhoneCall({
phoneNumber: '18888888888',
success: function(res) {
console.log('拨打电话成功', res)
},
fail: function(err) {
console.error('拨打电话失败', err)
}
})
},
// 点击跳转
btnpage(num){
if(num == 1){ //跳转到附近门店页面
uni.navigateTo({
url:'/page_fenbao/storedlist/fujinshop'
})
}else if(num == 2){ //跳转到我的订单页面
uni.navigateTo({
url:'/pages/myorder/index'
})
}else if(num == 3){ //跳转到租借车辆页面
uni.switchTab({
url:'/pages/myorder/returned/index'
})
}else{
uni.navigateTo({
url:'/page_fenbao/index'
})
}
},
// 点击跳转到地图页
btnzk(){
uni.switchTab({
url:'/pages/nearbystores/index'
})
},
// 获取自身位置
getMyLocation() {
uni.getLocation({
type: 'wgs84',
success: (res) => {
this.jinweidu =res.longitude + ',' + res.latitude
this.getkefu()
this.latitude = Number(res.latitude.toFixed(5)) - 0.005
this.longitude = Number(res.longitude.toFixed(5)) + 0.005
this.setMapScale()
},
fail: (err) => {
console.error('获取位置失败:', err)
}
})
},
// 回到地图中心点
async setMapScale(e, val) {
let mapContext = uni.createMapContext('map', this)
let setScale = () => {
return new Promise((resolve, reject) => {
mapContext.getScale({
success: r => {
resolve()
}
})
})
}
await setScale()
mapContext.moveToLocation({
success: (res) => {
const timer = setTimeout(() => {
clearTimeout(timer)
}, 500)
}
})
},
}
}
</script>
<style lang="scss">
/deep/ wx-swiper{
height: 180rpx !important;
}
.tingchetc {
width: 624rpx;
height: 610rpx;
background: #FFFFFF;
border-radius: 20rpx 20rpx 20rpx 20rpx;
position: fixed;
left: 50%;
transform: translateX(-50%);
top: 572rpx;
z-index: 99;
padding: 28rpx 36rpx;
box-sizing: border-box;
.btnan {
display: flex;
justify-content: space-between;
margin-top: 40rpx;
.fj {
width: 252rpx;
height: 72rpx;
border-radius: 45rpx 45rpx 45rpx 45rpx;
border: 2rpx solid #808080;
font-weight: 600;
font-size: 32rpx;
color: #808080;
text-align: center;
line-height: 72rpx;
}
.qx {
width: 252rpx;
height: 72rpx;
background: #4C97E7;
border-radius: 45rpx 45rpx 45rpx 45rpx;
text-align: center;
line-height: 72rpx;
box-sizing: border-box;
font-weight: 600;
font-size: 32rpx;
color: #FFFFFF;
}
}
.tcimg {
width: 552rpx;
height: 300rpx;
margin-top: 28rpx;
}
.shuom {
font-size: 26rpx;
color: #3D3D3D;
margin-top: 18rpx;
text {
color: #4C97E7;
}
}
.topname {
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
display: flex;
align-items: center;
image {
width: 48rpx;
height: 48rpx;
margin-right: 14rpx;
}
}
}
.conts_box {
width: 680rpx;
height: 360rpx;
margin: 0 auto;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
margin-top: 38rpx;
background: #FFFFFF;
box-shadow: 0rpx 10rpx 64rpx 0rpx rgba(0, 0, 0, 0.08);
border-radius: 20rpx 20rpx 20rpx 20rpx;
padding-bottom: 20rpx;
position: fixed;
left: 50%;
transform: translateX(-50%);
bottom: 220rpx;
.orderzt {
display: flex;
justify-content: space-between;
padding: 0 20rpx;
margin-top: 20rpx;
box-sizing: border-box;
width: 100%;
}
.txtss {
margin-top: 18rpx;
padding-left: 20rpx;
width: 100%;
font-weight: 500;
font-size: 28rpx;
color: #808080;
}
.dh {
width: 160rpx;
height: 60rpx;
border-radius: 30rpx;
text-align: center;
border: 1px solid #333;
font-size: 28rpx;
padding-top: 10rpx;
box-sizing: border-box;
}
.suocheanniu {
display: flex;
align-items: center;
.lssc {
width: 160rpx;
height: 60rpx;
border-radius: 30rpx;
text-align: center;
background-color: #0D75E5;
color: #fff;
font-size: 28rpx;
box-sizing: border-box;
margin-left: 30rpx;
display: flex;
align-items: center;
justify-content: center;
}
}
.cont_li {
width: 100%;
display: flex;
flex-wrap: nowrap;
align-items: center;
justify-content: space-between;
padding: 0 20rpx;
box-sizing: border-box;
.left {
display: flex;
flex-wrap: wrap;
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
.km {
font-weight: 400;
font-size: 28rpx;
color: #3D3D3D;
}
.speed {
margin-top: 18rpx;
width: 226rpx;
height: 22rpx;
background: #ccc;
border-radius: 16rpx 16rpx 16rpx 16rpx;
.speeds {
height: 100%;
background: #4297F3;
border-radius: 16rpx 16rpx 16rpx 16rpx;
}
}
.NO {
width: 100%;
font-weight: 400;
font-size: 24rpx;
color: #3D3D3D;
margin-top: 18rpx;
}
}
.right {
width: 70%;
padding-right: 20rpx;
font-size: 24rpx;
color: #333;
image {
width: 160rpx;
height: 110rpx;
}
}
}
}
.gonggao{
width: 680rpx;
height: 60rpx;
position: fixed;
left: 50%;
transform: translateX(-50%);
z-index: 99;
display: flex;
align-items: center;
margin-bottom: 10rpx;
background-color: rgba(0, 0, 0, 0.2);
margin: auto;
margin-top: 30rpx;
}
.container {
width: 560rpx;
height: 60rpx; /* 根据需要调整高度 */
display: flex;
align-items: center;
margin: auto;
overflow: hidden;
position: relative;
color: #fff;
box-sizing: border-box;
}
.scroll-text {
width: 100%;
overflow: hidden;
box-sizing: border-box;
display: inline-block;
white-space: nowrap;
animation: scroll 8s linear infinite;
}
.scroll-item {
display: inline-block;
padding: 0 10px;
font-size: 16px;
}
@keyframes scroll {
0% {
transform: translateX(100%);
}
100% {
transform: translateX(-100%);
}
}
.noticetc{
width: 680rpx;
height: 950rpx;
background-color: #fff;
border-radius: 20rpx;
padding: 0 20rpx;
box-sizing: border-box;
position: fixed;
top: 340rpx;
left: 50%;
transform: translateX(-50%);
z-index: 10;
.btn{
width: 600rpx;
height: 100rpx;
line-height: 100rpx;
text-align: center;
border-radius: 50rpx;
background-color: #4297F3;
color: #fff;
font-size: 32rpx;
font-weight: 600;
margin: auto;
margin-top: 30rpx;
}
.name{
width: 100%;
text-align: center;
font-size: 36rpx;
font-weight: 600;
margin-top: 30rpx;
}
.biaoti{
font-size: 32rpx;
margin-top: 20rpx;
}
.cont{
width: 100%;
height: 620rpx;
overflow: scroll;
background-color: #ececec;
margin-top: 20rpx;
padding: 20rpx;
box-sizing: border-box;
}
}
/deep/ .u-title{
padding-bottom: 12rpx !important;
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.kefutc{
animation: fadeIn 0.5s ease-in-out forwards;
position: fixed;
top: 580rpx;
left: 50%;
transform: translateX(-50%);
z-index: 10;
.bot{
margin-top: 30rpx;
.wz{
margin-top: 10rpx;
font-weight: 600;
font-size: 28rpx;
color: #3D3D3D;
}
.wzs{
margin-top: 10rpx;
font-size: 24rpx;
color: #7C7C7C;
}
}
.top{
width: 538rpx;
height: 122rpx;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(0,0,0,0.1);
border-radius: 14rpx 14rpx 14rpx 14rpx;
display: flex;
justify-content: space-between;
align-items: center;
padding-right: 14rpx;
box-sizing: border-box;
margin-top: 20rpx;
.dianhua{
font-size: 24rpx;
color: #666;
padding-left: 26rpx;
box-sizing: border-box;
}
.boda{
width: 94rpx;
height: 94rpx;
background: #DCEDFF;
border-radius: 8rpx 8rpx 8rpx 8rpx;
text-align: center;
padding-top: 8rpx;
box-sizing: border-box;
image{
width: 42rpx;
height: 40rpx;
}
text{
display: block;
}
}
}
.bj{
position: absolute;
top: -280rpx;
z-index: -1;
left: 50%;
transform: translateX(-50%);
width: 614rpx;
height: 1140rpx;
}
}
.mask{
width: 100%;
height: 100vh;
position: fixed;
top: 0;
left: 0;
background-color: rgba(0,0,0,0.3);
z-index: 9;
}
.fujin{
margin-top: 28rpx;
padding: 0 26rpx;
box-sizing: border-box;
.list{
padding-bottom: 230rpx;
box-sizing: border-box;
.dibutishi{
width: 100%;
text-align: center;
margin-top: 24rpx;
color: #ccc;
image{
width: 480rpx;
height: 400rpx;
}
}
.list_item{
width: 670rpx;
height: 340rpx;
background: #FFFFFF;
box-shadow: 0rpx 2rpx 18rpx 0rpx rgba(0,0,0,0.1);
border-radius: 22rpx 22rpx 22rpx 22rpx;
padding: 24rpx;
box-sizing: border-box;
margin: auto;
margin-top: 24rpx;
.cheliang{
border-top: 1rpx solid #D8D8D8;
margin-top: 22rpx;
display: flex;
.quanxin:nth-child(1){
border-right: 1px solid #D8D8D8;
margin-right: 24rpx;
}
.quanxin{
display: flex;
width: 50%;
margin-top: 16rpx;
.qxrt{
.junjia{
font-size: 24rpx;
color: #3D3D3D;
}
.name{
font-weight: 600;
font-size: 28rpx;
color: #3D3D3D;
}
}
.qxlt{
margin-right: 24rpx;
image{
width: 100rpx;
height: 76rpx;
}
}
}
}
.bot{
display: flex;
justify-content: space-between;
.rt{
display: flex;
align-items: center;
image{
width: 48rpx;
height: 48rpx;
margin-left: 16rpx;
}
.rizu{
.qizu{
font-size: 28rpx;
color: #3D3D3D;
}
.price{
font-size: 24rpx;
color: #FF1C1C;
text{
font-size: 36rpx;
font-weight: 600;
}
}
}
}
.lt{
.songqu{
margin-top: 12rpx;
max-width: 140rpx;
text-align: center;
font-size: 24rpx;
color: #4297F3;
height: 38rpx;
line-height: 38rpx;
background: #DCEDFF;
border-radius: 6rpx 6rpx 6rpx 6rpx;
}
.yytime{
font-size: 24rpx;
color: #3D3D3D;
margin-top: 8rpx;
display: flex;
align-items: center;
text{
font-weight: 600;
margin-right: 4rpx;
}
}
}
}
.dizhi{
display: flex;
align-items: center;
font-size: 24rpx;
color: #3D3D3D;
margin-top: 12rpx;
image{
width: 22rpx;
height: 22rpx;
margin-right: 4rpx;
}
}
.top{
display: flex;
justify-content: space-between;
.name{
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
}
image{
width: 48rpx;
height: 48rpx;
}
}
}
}
.names{
width: 142rpx;
height: 52rpx;
background: #4297F3;
border-radius: 0 30rpx 0 30rpx;
font-weight: 600;
font-size: 26rpx;
color: #fff;
text-align: center;
line-height: 52rpx;
}
}
.guanggao{
width: 700rpx;
height: 180rpx;
margin: auto;
margin-top: 34rpx;
position: relative;
.kefu{
width: 108rpx;
height: 146rpx;
position: absolute;
bottom: -80rpx;
right: 10rpx;
}
/deep/ .u-swiper-image{
width: 700rpx !important;
height: 180rpx !important;
border-radius: 10rpx;
}
}
.kuaijie{
display: flex;
justify-content: space-between;
padding: 0 26rpx;
box-sizing: border-box;
margin-top: 32rpx;
image{
width: 96rpx;
height: 116rpx;
}
}
.ditu{
width: 700rpx;
height: 580rpx;
background: #FFFFFF;
border-radius: 20rpx;
overflow: hidden;
margin: auto;
margin-top: 22rpx;
position: relative;
.caozuo{
display: flex;
justify-content: space-between;
padding-top: 38rpx;
padding-left: 40rpx;
padding-right: 40rpx;
box-sizing: border-box;
image{
width: 96rpx;
height: 40rpx;
}
}
.zk{
width: 80rpx;
height: 80rpx;
position: absolute;
right: 8rpx;
bottom: 180rpx;
}
map{
width: 700rpx;
height: 412rpx;
}
}
</style>