<template>
<view class="page">
<!-- <u-navbar :border-bottom="false" :background="bgc" title-color='#fff' back-icon-color="#fff"
title-size='36' height='50'></u-navbar> -->
<view class="title">
<image src="https://api.ccttiot.com/smartmeter/img/static/uyr6T0Vfkefty2blkDmU" mode="" style="width: 52rpx;height: 52rpx;margin-right: 10rpx;vertical-align: bottom;vertical-align: bottom;" @click="btnshouye"></image>
<text style="width: 80%;text-align: center;display: inline-block;">{{deviceobj.deviceName == undefined ? '--' : deviceobj.deviceName}}</text>
<view class="wz">
<!-- 该设备还剩余时长:{{expireTimeStr}}分钟 -->
</view>
<view class="wz" @click="call" style="text-align: right;padding-right: 20rpx;" v-if="deviceobj.storeContactMobile == null">
联系客服
<!-- :<text >{{deviceobj.userMobile == undefined ? '--' : deviceobj.userMobile}}</text> -->
</view>
<view class="wz" @click="call" style="text-align: right;padding-right: 20rpx;" v-else>
联系客服
<!-- :<text >{{deviceobj.storeContactMobile == undefined ? '--' : deviceobj.storeContactMobile}}</text> -->
</view>
</view>
<!-- 检测蓝牙未开启 -->
<view class="shibai" v-if="lanyaflag">
<view class="top">
设备离线
</view>
<view class="tishi">
检测到该设备离线,请打开蓝牙进行蓝牙模式
</view>
<view class="li">
<view class="wz">
第一:检查手机蓝牙是否打开
</view>
<image style="width: 386rpx;height: 263rpx;"
src="https://api.ccttiot.com/smartmeter/img/static/uM4DY4Ee9AgFHLv4bIDR" mode=""></image>
</view>
<view class="li">
<view class="wz">
第二:设置小程序蓝牙授权
</view>
<image style="width: 368rpx;height: 151rpx;"
src="https://api.ccttiot.com/smartmeter/img/static/uAj06uo9qysixLrcFHBn" mode=""></image>
<image style="width: 386rpx;height: 301rpx;"
src="https://api.ccttiot.com/smartmeter/img/static/ugFSKFZn4mzJJHQx3K2Z" mode=""></image>
<image style="width: 386rpx;height: 330rpx;"
src="https://api.ccttiot.com/smartmeter/img/static/uZ4XoCI2KNQzcPKbwGLN" mode=""></image>
</view>
<view class="jxcz" @click="btnjxcz">
我已知晓
</view>
</view>
<view class="box" v-else>
<view class="tit">
选择服务
</view>
<view>
<view :class="indexactive == item.suitId ? 'active':''"
style="width:100%;height:100%;background: #fff;box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(42,130,228,0.1);border-radius: 30rpx;padding: 20rpx 34rpx;box-sizing: border-box;margin-top: 20rpx;border: 4rpx solid #fff;"
v-for="(item,index) in deviceobj.suitList" :key="index" @click="btnactive(item)">
<view class="lt">
<view class="tc" style="font-weight: 600;font-size: 34rpx;">
{{item.name}}
</view>
<!-- <view class="date">
{{item.value}} <text v-if="item.timeUnit == 1">日</text> <text v-if="item.timeUnit == 2">时</text> <text v-if="item.timeUnit == 3">分钟</text> <text v-if="item.timeUnit == 4">秒</text>
</view> -->
</view>
<view class="rt" style="margin-top: 10rpx;font-size: 28rpx;">
<text v-if="item.feeType == 1">计时收费</text>
<text v-if="item.feeType == 2">按量收费</text>
<text v-if="item.feeType == 3">分时段按量收费</text>
<text v-if="item.feeType == 4">分时段按时收费</text>
({{item.feeMode == 1 ? '单次收费' : '智能收费'}}):
<text v-if="item.feeType == 1">{{item.value}}<text v-if="item.timeUnit == 2">时</text> <text v-if="item.timeUnit == 3">分钟</text> <text v-if="item.timeUnit == 4">秒</text> {{item.price}}元</text>
<text v-if="item.feeType == 2">{{item.value}}度{{item.price}}元</text>
<!-- <text v-if="item.feeType == 3 || item.feeType == 4">押金{{item.deposit}}元</text> -->
<text v-if="item.feeMode == 2">押金{{item.deposit}}元</text>
</view>
<view class="" style="margin-top: 10rpx;color: #8883F0;font-size: 28rpx;" v-if="item.feeMode == 2">
完成订单后押金将自动退还
</view>
<view class="" style="width: 100%" v-if="item.feeType == 3 || item.feeType == 4">
<u-collapse>
<u-collapse-item title="收费详情">
<view class="" style="margin-bottom: 6rpx;font-size: 24rpx;">
收费时间段(滑动查看各时段费用)
</view>
<view class="ulbox">
<view class="ulli">
<view class="li" v-for="(val,gearAmountindex) in item.arr" :key="gearAmountindex">
{{val}}元
</view>
</view>
<view class="olli">
<view class="li" v-for="(vals,timeindex) in 24" :key="timeindex">
{{timeindex + ':00'}}
</view>
</view>
</view>
</u-collapse-item>
</u-collapse>
</view>
<view class="" style="margin-top: 10rpx;">
套餐说明:{{item.description == null ? '无' : item.description}}
</view>
</view>
<view v-if="deviceobj.suitList == null || deviceobj.suitList.length == 0" class="" style="color: #ccc;font-size: 36rpx;">
该设备暂无套餐...
</view>
</view>
<view class="tongyi" v-if="deviceobj.suitList != null">
<u-checkbox-group>
<u-checkbox v-model="checked" @change="checkboxChange" active-color="#8883F0 ">我已同意
</u-checkbox><text @click="btnyonghu">《用户服务协议》</text> <text @click="btnyinsi">《隐私政策》</text>
</u-checkbox-group>
<!-- <view class="zf" v-else>
立即支付
</view> -->
<!-- 获取手机号 -->
<button class="zf" v-if="telslag" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">
立即支付
</button>
<view class="zf" @click="btnzhifu" v-else>
立即支付
</view>
</view>
<view class="mask" v-if="zhifuflag"></view>
<view class="mask" v-if="czflag"></view>
<view class="czdh" v-if="jzflag">
<view class="bj">
<view class="tittop">
正在充值中,请稍后
</view>
<view class="bfb">
{{progress}} %
</view>
</view>
</view>
</view>
<!-- 防诈骗提示 -->
<view class="fangswindle" v-if="swindleflag">
<image src="https://api.ccttiot.com/smartmeter/img/static/uvJcZhPixU1trBud6xTa" mode=""></image>
<view class="zhixiao" @click="btnswindleflag">
我已知晓
</view>
</view>
<view v-if="swindleflag" class="" style="width: 100%;height: 100vh;position: fixed;top: 0;left: 0;background-color: #000;opacity: .5;z-index: 98;"></view>
</view>
</template>
<script>
var xBlufi = require("@/page_components/blufi/xBlufi.js");
export default {
data() {
return {
flags:false,
jzflag:false,
progress: 0,
isLoading: false,
zhifuflag:false,
indexactive: -1,
checked: false,
lanyaflag: false,
deviceobj: {},
timer: null,
expireTimeStr: '',
zfobj: {},
orderno: '',
id: '',
czflag: false,
sytime: 0,
datetime: 0,
mac: '',
deviceId: '',
name: '',
ver_data: '',
devicesList: [],
onlineStatus: '',
jine: '',
dingobj: {},
suitTimeUnit:'',
zfflag:true,
prices:'',
sceneValue:'',
suitFeeMode:'',
suitFeeType:'',
suitGearAmount:[],
suitGearTime:[],
suitPrice:'',
payNo:'',
q:'',
channelId:'',
swindleflag:true,
phonenumber:'',
mchShowBillMobile:'',
telslag:false,
userId:'',
hasCalledGetczly:false,
hasCalledGetczlys:false,
hasCalledGetczlyss:false
}
},
onLoad(option) {
if (option.q) {
function getQueryParam(url, paramName) {
let regex = new RegExp(`[?&]${paramName}=([^&]*)`);
let results = regex.exec(url);
return results ? decodeURIComponent(results[1].replace(/\+/g, ' ')) : null
}
this.sceneValue = option.q
let decodedValue = decodeURIComponent(this.sceneValue);
this.id = getQueryParam(decodedValue, 's')
} else {
this.id = option.id
}
},
computed: {
},
// 分享到好友(会话)
onShareAppMessage: function () {
return {
title: '创想物联',
path: '/pages/shouye/index'
}
},
// 分享到朋友圈
onShareTimeline: function () {
return {
title: '创想物联',
query: '',
path: '/pages/shouye/index'
}
},
onShow() {
// this.getuserinfo()
this.getzfqd()
setTimeout(()=>{
if (this.id != '') {
this.$u.get("/app/user/userInfo").then((res) => {
if (res.code == 200) {
this.phonenumber = res.data.phonenumber
this.userId = res.data.userId
this.getone()
} else {
uni.navigateTo({
url: '/pages/login/login?id=' + 1
})
}
})
}
},1)
},
onUnload: function() {
if (this.timer) {
clearInterval(this.timer)
this.timer = null;
}
// xBlufi.listenDeviceMsgEvent(false, this.funListenDeviceMsgEvent);
// wx.closeBLEConnection({
// deviceId: this.deviceId,
// })
},
onHide() {
xBlufi.listenDeviceMsgEvent(false, this.funListenDeviceMsgEvent);
xBlufi.notifyStartDiscoverBle({
'isStart': false
});
},
onBeforeUnmount() {
xBlufi.listenDeviceMsgEvent(false, this.funListenDeviceMsgEvent);
xBlufi.notifyStartDiscoverBle({
'isStart': false
})
},
methods: {
// 点击我已知晓
btnswindleflag(){
this.swindleflag = false
if(this.userId == this.deviceobj.userId && this.deviceobj.suitList.length == 0){
uni.showModal({
title: '提示',
content: '该设备暂无套餐,是否前去配置?',
success: function(res) {
if (res.confirm) {
uni.navigateTo({
url: '/page_components/newtaocan'
})
} else if (res.cancel) {
}
}
})
}
},
getzfqd(){
this.$u.get(`/app/channel/recharge/enabledList`).then(res =>{
if(res.code == 200){
this.channelId = res.data[0].channelId
uni.hideLoading()
}else{
uni.hideLoading()
uni.showToast({
title:res.msg,
icon: 'none',
duration:2000
})
}
})
},
getone(){
let that = this
let data = {
deviceNo: that.id
}
that.$u.get(`/app/device/isBind?deviceNo=${that.id}`).then(res => {
if (res.data == 2) {
that.$u.get(`/app/device/${that.id}/withSuitList`).then((res) => {
if (res.code == 200) {
that.$u.get(`/app/device/${that.id}/bySn`).then((res) => {
if (res.code == 200) {
that.mac = 'CTKG-' + res.data.mac
that.onlineStatus = res.data.onlineStatus
}
})
}
})
} else if (res.data == 1) {
uni.navigateTo({
url:'/pages/shouye/index?id=' + this.id
})
} else if (res.data == 0) {
uni.navigateTo({
url:'/pages/shouye/index?id=' + this.id
})
}
})
this.gettaoc()
},
btnshouye(){
uni.reLaunch({
url:'/pages/shouye/index'
})
},
btnjxcz() {
this.czflag = false
xBlufi.initXBlufi(1)
xBlufi.listenDeviceMsgEvent(true, this.funListenDeviceMsgEvent);
xBlufi.notifyStartDiscoverBle({
'isStart': true
})
setTimeout(() => {
xBlufi.notifyStartDiscoverBle({
'isStart': false
})
if (this.devicesList.length > 0) {
xBlufi.notifyConnectBle({
isStart: true,
deviceId: this.deviceId,
name: this.name
})
}
}, 2000)
},
call() {
let phoneNumber = ''
if (this.deviceobj.storeContactMobile == null) {
phoneNumber = this.deviceobj.userMobile
} else {
phoneNumber = this.deviceobj.storeContactMobile
}
uni.makePhoneCall({
phoneNumber: phoneNumber,
success: function(res) {
console.log('拨打电话成功', res)
},
fail: function(err) {
console.error('拨打电话失败', err)
uni.showToast({
title: '拨打电话失败',
icon: 'none'
})
}
})
},
//
btnyinsi(){
uni.navigateTo({
url: '/page_fenbao/statulist/about/index?tit=' + '隐私政策'
})
},
btnyonghu(){
uni.navigateTo({
url: '/page_fenbao/statulist/about/index?tit=' + '用户服务协议'
})
},
gettrue() {
this.$u.get("/app/device/isBind?deviceNo=" + this.id).then((res) => {
if (res.data == 0 || res.data == 1) {
uni.navigateTo({
url: '/pages/shouye/index?flag=' + true + '&id=' + this.id
})
}
})
},
getuserinfo() {
this.$u.get("/app/user/userInfo").then((res) => {
if (res.code == 200) {
// this.gettrue()
} else {
uni.navigateTo({
url: '/pages/login/login?id=' + 1
})
}
})
},
getmac() {
this.$u.get(`/app/device/${this.id}/bySn`).then((res) => {
if (res.code == 200) {
// this.mac = 'CTKG-' + res.data.mac
this.mac = res.data.mac
this.onlineStatus = res.data.onlineStatus
}
})
},
gettaoc() {
this.$u.get(`/app/device/${this.id}/withSuitList`).then((res) => {
if (res.code == 200) {
this.deviceobj = res.data
this.zfobj = res.data.suitList[0]
let targetDateStr = this.deviceobj.expireTime
this.mchShowBillMobile = res.data.mchShowBillMobile
if(this.mchShowBillMobile == true && this.phonenumber == ''){
this.telslag = true
}else{
this.telslag = false
}
if(targetDateStr != null){
let targetParts = targetDateStr.split(/[- :]/)
let targetDate = new Date(targetParts[0], targetParts[1] - 1, targetParts[2], targetParts[3], targetParts[4], targetParts[5])
let now = new Date()
let differenceInMs = targetDate - now
if (differenceInMs <= 0) {
this.expireTimeStr = '0'
} else {
this.expireTimeStr = '1'
}
}
if(res.data.suitList){
this.mapGearTimeToGearAmount(res.data.suitList)
}
// console.log(res.data.suitList,'1212');
}
})
},
mapGearTimeToGearAmount(suitList) {
// 遍历 suitList 数组
suitList.forEach(suit => {
const gearTime = suit.gearTime
const gearAmount = suit.gearAmount
const arr = new Array(gearTime.length).fill(null)
gearTime.forEach((time, index) => {
if (time >= 0 && time < gearAmount.length) {
arr[index] = gearAmount[time]
}
})
suit.arr = arr
})
},
btnzhifu() {
if (this.checked == false) {
uni.showToast({
title: '请勾选用户服务协议 !',
icon: 'none',
duration: 1000
})
} else if (this.indexactive == -1) {
uni.showToast({
title: '请选择套餐 !',
icon: 'none',
duration: 1000
})
}else if(this.mchShowBillMobile == true && this.phonenumber == ''){
this.getPhoneNumber()
}else {
this.zhifuflag = true
this.getzhifu()
}
},
// 获取手机号
getPhoneNumber(e){
this.$u.put(`/app/user/bindWxMobile?mobileCode=${e.detail.code}`).then(res =>{
if(res.code == 200){
this.zhifuflag = true
this.getzhifu()
}else{
uni.showToast({
title: res.msg,
icon: 'none',
duration: 1000
})
}
})
},
// 支付
getzhifu(){
if (this.onlineStatus == 1) {
uni.showLoading({
title: '准备支付中...'
})
this.getzfqd()
let that = this
let data = {
deviceNo: that.id,
suitId: that.zfobj.suitId,
money: that.zfobj.price,
suitDeposit:that.zfobj.deposit,
suitTime: that.zfobj.value,
suitTimeUnit:that.suitTimeUnit,
suitFeeMode:that.suitFeeMode,
suitFeeType:that.suitFeeType,
suitGearAmount:that.suitGearAmount,
suitGearTime:that.suitGearTime,
suitPrice:that.suitPrice
}
that.$u.post('/app/bill/recharge', data).then((res) => {
if (res.code == 200) {
that.orderno = res.data
// console.log(this.prices);
// if(this.prices == 0){
// 0元购
// that.$u.put(`/app/bill/${that.orderno}/refreshPayResult`).then(res => {})
// // 支付成功逻辑
// uni.reLaunch({
// url: '/pages/shouye/index'
// })
// uni.setStorageSync('time', that.expireTimeStr)
// }
if(this.suitFeeType == 3 || this.suitFeeType == 4){
let data = {
billNo:that.orderno,
channelId:that.channelId
}
that.$u.put(`/app/bill/payDeposit`,data).then(res => {
if(res.code == 200){
that.payNo = res.data.payBill.payNo
uni.requestPayment({
provider: 'wxpay',
timeStamp: res.data.payParams.timeStamp,
nonceStr: res.data.payParams.nonceStr,
package: res.data.payParams.packageVal,
signType: res.data.payParams.signType,
paySign: res.data.payParams.paySign,
success: (res) => {
this.zhifuflag = false
// console.log(res, '支付成功')
if (that.timer) {
clearInterval(this.timer)
that.timer = null;
}
that.$u.put(`/app/bill/${that.payNo}/refreshPayResult`).then(res => {})
// 支付成功逻辑
uni.reLaunch({
// url: '/pages/shouye/index'
url:'/page_components/eletj?id=' + that.orderno
})
uni.setStorageSync('time', that.expireTimeStr)
},
fail(err) {
that.zhifuflag = false
// 支付失败逻辑
uni.showToast({
title: '支付失败',
icon: 'none',
duration: 2000
})
}
})
}else{
that.zhifuflag = false
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
}
})
}else{
let data = {
billNo:that.orderno,
channelId:that.channelId
}
that.$u.put(`/app/bill/pay`,data).then((res) => {
if (res.code == 200) {
uni.requestPayment({
provider: 'wxpay',
timeStamp: res.data.payParams.timeStamp,
nonceStr: res.data.payParams.nonceStr,
package: res.data.payParams.packageVal,
signType: res.data.payParams.signType,
paySign: res.data.payParams.paySign,
success: (res) => {
this.zhifuflag = false
// console.log(res, '支付成功')
if (that.timer) {
clearInterval(this.timer)
that.timer = null;
}
that.$u.put(`/app/bill/${that.orderno}/refreshPayResult`).then(res => {})
// 支付成功逻辑
uni.reLaunch({
url:'/page_components/eletj?id=' + that.orderno
})
uni.setStorageSync('time', that.expireTimeStr)
},
fail(err) {
that.zhifuflag = false
// 支付失败逻辑
uni.showToast({
title: '支付失败',
icon: 'none',
duration: 2000
})
}
})
}else{
that.zhifuflag = false
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
}
})
}
} else if (res.code == 401) {
uni.reLaunch({
url: '/pages/login/login'
})
that.zhifuflag = false
}else if(res.code == 500){
uni.showToast({
title:res.msg,
icon: 'none',
duration: 2000
})
}
})
} else {
if (this.ver_data == '') {
this.czflag = true
let that = this
xBlufi.initXBlufi(1);
xBlufi.listenDeviceMsgEvent(true, that.funListenDeviceMsgEvent);
xBlufi.notifyStartDiscoverBle({
'isStart': true
})
setTimeout(() => {
xBlufi.notifyStartDiscoverBle({
'isStart': false
})
if (that.devicesList.length > 0) {
xBlufi.notifyConnectBle({
isStart: true,
deviceId: that.deviceId,
name: that.name
})
}
}, 2000)
uni.showModal({
title: '温馨提示',
content: '检测到该设备未联网,为您切换为蓝牙模式,支付的时候靠近该设备,并打开蓝牙',
showCancel: false,
//是否显示取消按钮
success: function(res) {
uni.showLoading({
title: '蓝牙连接中'
})
}
})
setTimeout(()=>{
if(this.ver_data == ''){
uni.showToast({
title: '未连接成功,如多次失败请点击右上角联系客服咨询',
icon: 'none',
duration: 5000
})
this.czflag = false
this.zhifuflag = false
setTimeout(()=>{
uni.hideLoading()
},5000)
}
},10000)
} else {
uni.showLoading({
title: '准备支付中...'
})
this.getzfqd()
this.zhifuflag = true
let that = this
let data = {
deviceNo: that.id,
suitId: that.zfobj.suitId,
money: that.zfobj.price,
suitDeposit:that.zfobj.deposit,
suitTime: that.zfobj.value,
suitTimeUnit:that.suitTimeUnit,
suitFeeMode:that.suitFeeMode,
suitFeeType:that.suitFeeType,
suitGearAmount:that.suitGearAmount,
suitGearTime:that.suitGearTime,
suitPrice:that.suitPrice
}
that.$u.post('/app/bill/recharge', data).then((res) => {
if (res.code == 200) {
that.orderno = res.data
if(this.suitFeeType == 3 || this.suitFeeType == 4){
let data = {
billNo:that.orderno,
channelId:that.channelId
}
that.$u.put(`/app/bill/payDeposit`,data).then((res) => {
if (res.code == 200) {
that.payNo = res.data.payBill.payNo
uni.requestPayment({
provider: 'wxpay',
timeStamp: res.data.payParams.timeStamp,
nonceStr: res.data.payParams.nonceStr,
package: res.data.payParams.packageVal,
signType: res.data.payParams.signType,
paySign: res.data.payParams.paySign,
success: (res) => {
// console.log(res, '支付成功');
if (that.timer) {
clearInterval(this.timer);
that.timer = null;
}
// 111111111111111111111111
that.$u.put(`/app/payBill/${that.payNo}/refreshPayResult`).then(res =>{
// if(res.code == 200){
that.$u.get(`/app/bill/byNo/${that.orderno}`).then(res => {
if (res.code == 200) {
if(res.data.status == 9){
uni.getNetworkType({
success(res) {
if (res.networkType !== 'none') {
uni.getConnectedBluetoothDevices({
success(res) {
that.jzflag = true
that.startLoading()
setTimeout(()=> {
xBlufi.notifySendCustomData({
customData: 'open'
})
xBlufi.notifySendCustomData({
customData: '11open'
})
setTimeout(() => {
that.zhifuflag = false
uni.reLaunch({
// url: '/pages/shouye/index'
url:'/page_components/eletj?id=' + that.orderno
})
},1000)
},1500)
},
fail(err) {
console.error('获取已连接蓝牙设备信息失败:',err)
that.ver_data = ''
uni.showModal({
title: '温馨提示',
content: '设备开启失败,检测到设备蓝牙已断开',
showCancel: false,
success: function(res) {
// uni.showLoading({
// title: '蓝牙连接中'
// })
}
})
// this.czflag = true
// let that = this
// xBlufi.initXBlufi(1);
// xBlufi.listenDeviceMsgEvent(true, that.funListenDeviceMsgEvents);
// xBlufi.notifyStartDiscoverBle({
// 'isStart': true
// })
// setTimeout(() => {
// xBlufi.notifyStartDiscoverBle({
// 'isStart': false
// })
// if (that.devicesList.length > 0) {
// xBlufi.notifyConnectBle({
// isStart: true,
// deviceId: that.deviceId,
// name: that.name
// })
// }
// }, 2000)
// setTimeout(()=>{
// if(this.ver_data == ''){
// uni.showToast({
// title: '未连接成功,如多次失败请点击右上角联系客服咨询',
// icon: 'none',
// duration: 5000
// })
// this.czflag = false
// this.zhifuflag = false
// setTimeout(()=>{
// uni.hideLoading()
// },5000)
// }
// },10000)
}
})
} else {
console.log('手机未连接网络')
// this.baiflag = false
}
}
})
}else{
uni.showToast({
title: '支付失败',
icon: 'none',
duration: 2000
});
}
}else{
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
}
})
// }
})
// 支付成功逻辑
uni.setStorageSync('time', that.expireTimeStr)
},
fail(err) {
this.zhifuflag = false
setTimeout(() => {
this.czflag = false
uni.hideLoading()
}, 500)
// 支付失败逻辑
uni.showToast({
title: '支付失败',
icon: 'none',
duration: 2000
});
}
})
}else{
this.zhifuflag = false
}
})
}else{
let data = {
billNo:that.orderno,
channelId:that.channelId
}
that.$u.put(`/app/bill/pay`,data).then((res) => {
if (res.code == 200) {
uni.requestPayment({
provider: 'wxpay',
timeStamp: res.data.payParams.timeStamp,
nonceStr: res.data.payParams.nonceStr,
package: res.data.payParams.packageVal,
signType: res.data.payParams.signType,
paySign: res.data.payParams.paySign,
success: (res) => {
// console.log(res, '支付成功');
if (that.timer) {
clearInterval(this.timer);
that.timer = null;
}
// 111111111111111111111111
that.$u.put(`/app/bill/${that.orderno}/refreshPayResult`).then(res =>{
// if(res.code == 200 || res.code == 500){
that.$u.put(`/app/bill/rechargeBillDevice?billNo=${that.orderno}`).then(res=>{
that.$u.get('/app/bill/recharge/device/fail/list').then(res => { //充值失败调用
if (res.code == 200) {
console.log('获取订单状态',res);
if(res.data.length > 0 && res.data != null){
let dingobj = res.data[0].billNo
console.log(dingobj,'订单号');
uni.getNetworkType({
success(res) {
if (res.networkType !== 'none') {
uni.getConnectedBluetoothDevices({
success(res) {
that.jzflag = true
that.startLoading()
setTimeout(()=> {
xBlufi.notifySendCustomData({
customData: "time@" + that.jine
})
},1500)
},
fail(err) {
console.error('获取已连接蓝牙设备信息失败:',err)
let that = this
that.ver_data = ''
uni.showModal({
title: '温馨提示',
content: '设备开启失败,检测到设备蓝牙已断开',
showCancel: false,
success: function(res) {
// uni.showLoading({
// title: '蓝牙连接中'
// })
}
})
// that.czflag = true
// xBlufi.initXBlufi(1);
// xBlufi.listenDeviceMsgEvent(true, that.funListenDeviceMsgEventss);
// xBlufi.notifyStartDiscoverBle({
// 'isStart': true
// })
// setTimeout(() => {
// xBlufi.notifyStartDiscoverBle({
// 'isStart': false
// })
// if (that.devicesList.length > 0) {
// xBlufi.notifyConnectBle({
// isStart: true,
// deviceId: that.deviceId,
// name: that.name
// })
// }
// }, 2000)
// setTimeout(()=>{
// if(that.ver_data == ''){
// uni.showToast({
// title: '未连接成功,如多次失败请点击右上角联系客服咨询',
// icon: 'none',
// duration: 5000
// })
// that.czflag = false
// that.zhifuflag = false
// setTimeout(()=>{
// uni.hideLoading()
// },5000)
// }
// },10000)
}
})
if(that.ver_data != ''){
that.$u.get(`/app/bill/recharge/${dingobj}/bluetoothSuccess`).then(res => {
if (res.code == 200) {
that.zhifuflag = false
console.log('蓝牙离线充值成功11')
setTimeout(() => {
uni.reLaunch({
url:'/page_components/eletj?id=' + that.orderno
})
},1000)
}else{
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
}
})
}
} else {
console.log('手机未连接网络')
// this.baiflag = false
}
}
})
}else{
setTimeout(() => {
uni.reLaunch({
url:'/pages/shouye/index'
})
},1000)
}
}
})
})
// }
})
// 支付成功逻辑
uni.setStorageSync('time', that.expireTimeStr)
},
fail(err) {
this.zhifuflag = false
setTimeout(() => {
this.czflag = false
uni.hideLoading()
}, 500)
// 支付失败逻辑
uni.showToast({
title: '支付失败',
icon: 'none',
duration: 2000
});
}
})
}else{
this.zhifuflag = false
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
}
})
}
} else if (res.code == 500) {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
} else {
this.czflag = false
}
})
}
}
},
// 蓝牙连接成功后执行
getczly(){
uni.showLoading({
title: '准备支付中...'
})
this.getzfqd()
this.zhifuflag = true
let that = this
let data = {
deviceNo: that.id,
suitId: that.zfobj.suitId,
money: that.zfobj.price,
suitDeposit:that.zfobj.deposit,
suitTime: that.zfobj.value,
suitTimeUnit:that.suitTimeUnit,
suitFeeMode:that.suitFeeMode,
suitFeeType:that.suitFeeType,
suitGearAmount:that.suitGearAmount,
suitGearTime:that.suitGearTime,
suitPrice:that.suitPrice
}
that.$u.post('/app/bill/recharge', data).then((res) => {
if (res.code == 200) {
that.orderno = res.data
if(this.suitFeeType == 3 || this.suitFeeType == 4){
let data = {
billNo:that.orderno,
channelId:that.channelId
}
that.$u.put(`/app/bill/payDeposit`,data).then((res) => {
if (res.code == 200) {
that.payNo = res.data.payBill.payNo
uni.requestPayment({
provider: 'wxpay',
timeStamp: res.data.payParams.timeStamp,
nonceStr: res.data.payParams.nonceStr,
package: res.data.payParams.packageVal,
signType: res.data.payParams.signType,
paySign: res.data.payParams.paySign,
success: (res) => {
// console.log(res, '支付成功');
if (that.timer) {
clearInterval(this.timer);
that.timer = null;
}
// 111111111111111111111111
that.$u.put(`/app/payBill/${that.payNo}/refreshPayResult`).then(res =>{
// if(res.code == 200){
that.$u.get(`/app/bill/byNo/${that.orderno}`).then(res => {
if (res.code == 200) {
if(res.data.status == 9){
uni.getNetworkType({
success(res) {
if (res.networkType !== 'none') {
uni.getConnectedBluetoothDevices({
success(res) {
that.jzflag = true
that.startLoading()
setTimeout(()=> {
xBlufi.notifySendCustomData({
customData: 'open'
})
xBlufi.notifySendCustomData({
customData: '11open'
})
setTimeout(() => {
if(that.ver_data == ''){
uni.showToast({
title: '蓝牙已断开,蓝牙充值失败',
icon: 'none',
duration: 2000
})
}else{
that.zhifuflag = false
uni.reLaunch({
url:'/page_components/eletj?id=' + that.orderno
})
}
},1000)
},500)
},
fail(err) {
console.error('获取已连接蓝牙设备信息失败:',err)
let that = this
that.ver_data = ''
uni.showModal({
title: '温馨提示',
content: '设备开启失败,检测到设备蓝牙已断开',
showCancel: false,
success: function(res) {
// uni.showLoading({
// title: '蓝牙连接中'
// })
}
})
// that.czflag = true
// xBlufi.initXBlufi(1);
// xBlufi.listenDeviceMsgEvent(true, that.funListenDeviceMsgEvents);
// xBlufi.notifyStartDiscoverBle({
// 'isStart': true
// })
// setTimeout(() => {
// xBlufi.notifyStartDiscoverBle({
// 'isStart': false
// })
// if (that.devicesList.length > 0) {
// xBlufi.notifyConnectBle({
// isStart: true,
// deviceId: that.deviceId,
// name: that.name
// })
// }
// }, 2000)
// setTimeout(()=>{
// if(that.ver_data == ''){
// uni.showToast({
// title: '未连接成功,如多次失败请点击右上角联系客服咨询',
// icon: 'none',
// duration: 5000
// })
// that.czflag = false
// that.zhifuflag = false
// setTimeout(()=>{
// uni.hideLoading()
// },5000)
// }
// },10000)
}
})
} else {
console.log('手机未连接网络')
// this.baiflag = false
}
}
})
}else{
uni.showToast({
title: '支付失败',
icon: 'none',
duration: 2000
});
}
}else{
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
}
})
// }
})
// 支付成功逻辑
uni.setStorageSync('time', that.expireTimeStr)
},
fail(err) {
this.zhifuflag = false
setTimeout(() => {
this.czflag = false
uni.hideLoading()
}, 500)
// 支付失败逻辑
uni.showToast({
title: '支付失败',
icon: 'none',
duration: 2000
});
}
})
}else{
this.zhifuflag = false
}
})
}else{
let data = {
billNo:that.orderno,
channelId:that.channelId
}
that.$u.put(`/app/bill/pay`,data).then((res) => {
if (res.code == 200) {
uni.requestPayment({
provider: 'wxpay',
timeStamp: res.data.payParams.timeStamp,
nonceStr: res.data.payParams.nonceStr,
package: res.data.payParams.packageVal,
signType: res.data.payParams.signType,
paySign: res.data.payParams.paySign,
success: (res) => {
// console.log(res, '支付成功');
if (that.timer) {
clearInterval(this.timer);
that.timer = null;
}
// 111111111111111111111111
that.$u.put(`/app/bill/${that.orderno}/refreshPayResult`).then(res =>{
// if(res.code == 200 || res.code == 500){
that.$u.put(`/app/bill/rechargeBillDevice?billNo=${that.orderno}`).then(res=>{
that.$u.get('/app/bill/recharge/device/fail/list').then(res => { //充值失败调用
if (res.code == 200) {
console.log('获取订单状态',res);
if(res.data.length > 0 && res.data != null){
let dingobj = res.data[0].billNo
console.log(dingobj,'订单号');
uni.getNetworkType({
success(res) {
if (res.networkType !== 'none') {
uni.getConnectedBluetoothDevices({
success(res) {
that.jzflag = true
that.startLoading()
setTimeout(()=> {
xBlufi.notifySendCustomData({
customData: "time@" + that.jine
})
if(that.ver_data != ''){
that.$u.get(`/app/bill/recharge/${dingobj}/bluetoothSuccess`).then(res => {
if (res.code == 200) {
that.zhifuflag = false
console.log('蓝牙离线充值成功11')
setTimeout(() => {
if(that.ver_data == ''){
uni.showToast({
title: '蓝牙已断开,蓝牙充值失败',
icon: 'none',
duration: 2000
})
}else{
that.zhifuflag = false
uni.reLaunch({
url:'/page_components/eletj?id=' + that.orderno
})
}
},1000)
}else{
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
}
})
}
},1000)
},
fail(err) {
console.error('获取已连接蓝牙设备信息失败:',err)
let that = this
that.ver_data = ''
uni.showModal({
title: '温馨提示',
content: '设备开启失败,检测到设备蓝牙已断开',
showCancel: false,
success: function(res) {
// uni.showLoading({
// title: '蓝牙连接中'
// })
}
})
// that.czflag = true
// xBlufi.initXBlufi(1);
// xBlufi.listenDeviceMsgEvent(true, that.funListenDeviceMsgEventss);
// xBlufi.notifyStartDiscoverBle({
// 'isStart': true
// })
// setTimeout(() => {
// xBlufi.notifyStartDiscoverBle({
// 'isStart': false
// })
// if (that.devicesList.length > 0) {
// xBlufi.notifyConnectBle({
// isStart: true,
// deviceId: that.deviceId,
// name: that.name
// })
// }
// }, 2000)
// setTimeout(()=>{
// if(that.ver_data == ''){
// uni.showToast({
// title: '未连接成功,如多次失败请点击右上角联系客服咨询',
// icon: 'none',
// duration: 5000
// })
// that.czflag = false
// that.zhifuflag = false
// setTimeout(()=>{
// uni.hideLoading()
// },5000)
// }else{
// uni.showToast({
// title: '未连接成功,如多次失败请点击右上角联系客服咨询',
// icon: 'none',
// duration: 5000
// })
// that.czflag = false
// that.zhifuflag = false
// setTimeout(()=>{
// uni.hideLoading()
// },5000)
// }
// },10000)
}
})
} else {
console.log('手机未连接网络')
// this.baiflag = false
}
}
})
}else{
setTimeout(() => {
uni.reLaunch({
url:'/pages/shouye/index'
})
},1000)
}
}
})
})
// }
})
// 支付成功逻辑
uni.setStorageSync('time', that.expireTimeStr)
},
fail(err) {
this.zhifuflag = false
setTimeout(() => {
this.czflag = false
uni.hideLoading()
}, 500)
// 支付失败逻辑
uni.showToast({
title: '支付失败',
icon: 'none',
duration: 2000
});
}
})
}else{
this.zhifuflag = false
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
}
})
}
} else if (res.code == 500) {
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
});
} else {
this.czflag = false
}
})
},
startLoading() {
this.isLoading = true;
const intervalId = setInterval(() => {
this.progress += 100 / 100; // 每次增加 1
if (this.progress >= 99) {
clearInterval(intervalId);
this.isLoading = false;
this.progress = 98; // 确保进度条最终达到98
}
}, 15);
},
//选择套餐
btnactive(item) {
// this.zhifuflag = true
this.prices = item.price
this.sytime = item.value
this.zfobj = item
this.indexactive = item.suitId
this.suitTimeUnit = item.timeUnit
this.suitPrice = item.price
this.suitGearAmount = item.gearAmount
this.suitGearTime = item.gearTime
this.suitFeeMode = item.feeMode
this.suitFeeType = item.feeType
if(item.timeUnit == 1){
this.jine = item.value * 24 * 60 * 60
}else if(item.timeUnit == 2){
this.jine = item.value * 60 * 60
}else if(item.timeUnit == 3){
this.jine = item.value * 60
}else if(item.timeUnit == 4){
this.jine = item.value
}
console.log(this.jine);
},
checkboxChange(e) {
this.checked = e.value
},
// 获取附近蓝牙设备列表
funListenDeviceMsgEvent: function(options) {
switch (options.type) {
case xBlufi.XBLUFI_TYPE.TYPE_STATUS_CONNECTED:
if (!options.result) {
uni.showModal({
title: '很抱歉提醒你!',
content: '小程序与设备异常断开',
showCancel: false,
//是否显示取消按钮
success: function(res) {
this.ver_data = ''
}
})
}
break;
case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS:
if (options.result) {
let devicesarr = options.data
console.log(devicesarr,this.mac,'111');
devicesarr.forEach(device => {
const mac = device.name.substring(4);
if (device.name.slice(5, 17) == this.mac.slice(5, 17)) {
this.deviceId = device.deviceId
this.name = device.name
// console.log(device.name,this.mac,'222');
this.devicesList.push(device);
let uniqueDevicesList = Array.from(new Set(this.devicesList));
// 将去重后的数组重新赋值给 this.devicesList
this.devicesList = uniqueDevicesList;
} else {
// uni.showToast({
// title: '未找到该设备,请确认该设备在附近',
// icon: 'none',
// duration: 3000
// })
}
})
}
break;
case xBlufi.XBLUFI_TYPE.TYPE_CONNECTED:
console.log("连接回调:" + JSON.stringify(options));
if (options.result) {
// console.log('125451245')
{
xBlufi.notifyInitBleEsp32({
deviceId: this.deviceId
});
this.deviceIds = options.data.deviceId
this.name = this.name
}
}else{
}
break;
case xBlufi.XBLUFI_TYPE.TYPE_RECIEVE_CUSTON_DATA:
this.ver_data = this.parseCustomData(options.data)
console.log("1收到设备发来的自定义数据结果:", this.ver_data);
setTimeout(()=>{
this.czflag = false
this.zhifuflag = false
uni.hideLoading()
if (!this.hasCalledGetczly) {
this.getczly()
this.hasCalledGetczly = true
}
},1000)
break;
case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_STOP:
if (options.result) {
let uniqueDevicesList = Array.from(new Set(this.devicesList));
let filteredDevices = uniqueDevicesList.filter(device => device.name.substring(0, 4) === "CTKG");
// 将过滤后的数组重新赋值给 this.devicesList
this.devicesList = filteredDevices;
}
break;
case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_START:
if (!options.result) {
this.lanyaflag = true
uni.showToast({
title: '蓝牙未开启',
icon: 'none',
duration: 3000
});
return
} else {
this.lanyaflag = false
}
break;
}
},
funListenDeviceMsgEvents: function(options) {
switch (options.type) {
case xBlufi.XBLUFI_TYPE.TYPE_STATUS_CONNECTED:
if (!options.result) {
uni.showModal({
title: '很抱歉提醒你!',
content: '小程序与设备异常断开',
showCancel: false,
//是否显示取消按钮
success: function(res) {
this.ver_data = ''
}
})
}
break;
case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS:
if (options.result) {
let devicesarr = options.data
console.log(devicesarr,this.mac,'111');
devicesarr.forEach(device => {
const mac = device.name.substring(4);
if (device.name.slice(5, 17) == this.mac.slice(5, 17)) {
this.deviceId = device.deviceId
this.name = device.name
// console.log(device.name,this.mac,'222');
this.devicesList.push(device);
let uniqueDevicesList = Array.from(new Set(this.devicesList));
// 将去重后的数组重新赋值给 this.devicesList
this.devicesList = uniqueDevicesList;
} else {
// uni.showToast({
// title: '未找到该设备,请确认该设备在附近',
// icon: 'none',
// duration: 3000
// })
}
})
}
break;
case xBlufi.XBLUFI_TYPE.TYPE_CONNECTED:
console.log("连接回调:" + JSON.stringify(options));
if (options.result) {
// console.log('125451245')
{
xBlufi.notifyInitBleEsp32({
deviceId: this.deviceId
});
this.deviceIds = options.data.deviceId
this.name = this.name
}
}else{
}
break;
case xBlufi.XBLUFI_TYPE.TYPE_RECIEVE_CUSTON_DATA:
this.ver_data = this.parseCustomData(options.data)
console.log("1收到设备发来的自定义数据结果:", this.ver_data);
setTimeout(()=>{
this.czflag = false
this.zhifuflag = false
uni.hideLoading()
if (!this.hasCalledGetczlys) {
this.hasCalledGetczlys = true
let that = this
uni.getNetworkType({
success(res) {
if (res.networkType !== 'none') {
uni.getConnectedBluetoothDevices({
success(res) {
that.jzflag = true
that.startLoading()
setTimeout(()=> {
xBlufi.notifySendCustomData({
customData: 'open'
})
xBlufi.notifySendCustomData({
customData: '11open'
})
setTimeout(() => {
that.zhifuflag = false
uni.reLaunch({
url:'/page_components/eletj?id=' + that.orderno
})
},1000)
},1500)
},
fail(err) {
console.error('获取已连接蓝牙设备信息失败:',err)
}
})
} else {
console.log('手机未连接网络')
}
}
})
}
},1000)
break;
case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_STOP:
if (options.result) {
let uniqueDevicesList = Array.from(new Set(this.devicesList));
let filteredDevices = uniqueDevicesList.filter(device => device.name.substring(0, 4) === "CTKG");
// 将过滤后的数组重新赋值给 this.devicesList
this.devicesList = filteredDevices;
}
break;
case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_START:
if (!options.result) {
this.lanyaflag = true
uni.showToast({
title: '蓝牙未开启',
icon: 'none',
duration: 3000
});
return
} else {
this.lanyaflag = false
}
break;
}
},
funListenDeviceMsgEventss: function(options) {
switch (options.type) {
case xBlufi.XBLUFI_TYPE.TYPE_STATUS_CONNECTED:
if (!options.result) {
uni.showModal({
title: '很抱歉提醒你!',
content: '小程序与设备异常断开',
showCancel: false,
//是否显示取消按钮
success: function(res) {
this.ver_data = ''
}
})
}
break;
case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS:
if (options.result) {
let devicesarr = options.data
console.log(devicesarr,this.mac,'111');
devicesarr.forEach(device => {
const mac = device.name.substring(4);
if (device.name.slice(5, 17) == this.mac.slice(5, 17)) {
this.deviceId = device.deviceId
this.name = device.name
// console.log(device.name,this.mac,'222');
this.devicesList.push(device);
let uniqueDevicesList = Array.from(new Set(this.devicesList));
// 将去重后的数组重新赋值给 this.devicesList
this.devicesList = uniqueDevicesList;
} else {
// uni.showToast({
// title: '未找到该设备,请确认该设备在附近',
// icon: 'none',
// duration: 3000
// })
}
})
}
break;
case xBlufi.XBLUFI_TYPE.TYPE_CONNECTED:
console.log("连接回调:" + JSON.stringify(options));
if (options.result) {
// console.log('125451245')
{
xBlufi.notifyInitBleEsp32({
deviceId: this.deviceId
});
this.deviceIds = options.data.deviceId
this.name = this.name
}
}else{
}
break;
case xBlufi.XBLUFI_TYPE.TYPE_RECIEVE_CUSTON_DATA:
this.ver_data = this.parseCustomData(options.data)
console.log("1收到设备发来的自定义数据结果:", this.ver_data);
setTimeout(()=>{
this.czflag = false
this.zhifuflag = false
uni.hideLoading()
if (!this.hasCalledGetczlyss) {
this.hasCalledGetczlyss = true
let that = this
that.$u.put(`/app/bill/${that.orderno}/refreshPayResult`).then(res =>{
// if(res.code == 200 || res.code == 500){
that.$u.put(`/app/bill/rechargeBillDevice?billNo=${that.orderno}`).then(res=>{
that.$u.get('/app/bill/recharge/device/fail/list').then(res => { //充值失败调用
if (res.code == 200) {
console.log('获取订单状态',res);
if(res.data.length > 0 && res.data != null){
let dingobj = res.data[0].billNo
console.log(dingobj,'订单号');
uni.getNetworkType({
success(res) {
if (res.networkType !== 'none') {
uni.getConnectedBluetoothDevices({
success(res) {
that.jzflag = true
that.startLoading()
setTimeout(()=> {
xBlufi.notifySendCustomData({
customData: "time@" + that.jine
})
},1500)
},
fail(err) {
console.error('获取已连接蓝牙设备信息失败:',err)
}
})
if(that.ver_data != ''){
that.$u.get(`/app/bill/recharge/${dingobj}/bluetoothSuccess`).then(res => {
if (res.code == 200) {
that.zhifuflag = false
console.log('蓝牙离线充值成功11')
setTimeout(() => {
if(that.ver_data == ''){
uni.showToast({
title: '蓝牙已断开,蓝牙充值失败',
icon: 'none',
duration: 2000
})
}else{
that.zhifuflag = false
uni.reLaunch({
url:'/page_components/eletj?id=' + that.orderno
})
}
},1000)
}else{
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
}
})
}
} else {
console.log('手机未连接网络')
// this.baiflag = false
}
}
})
}else{
setTimeout(() => {
uni.reLaunch({
url:'/pages/shouye/index'
})
},1000)
}
}
})
})
// }
})
}
},1000)
break;
case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_STOP:
if (options.result) {
let uniqueDevicesList = Array.from(new Set(this.devicesList));
let filteredDevices = uniqueDevicesList.filter(device => device.name.substring(0, 4) === "CTKG");
// 将过滤后的数组重新赋值给 this.devicesList
this.devicesList = filteredDevices;
}
break;
case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_START:
if (!options.result) {
this.lanyaflag = true
uni.showToast({
title: '蓝牙未开启',
icon: 'none',
duration: 3000
});
return
} else {
this.lanyaflag = false
}
break;
}
},
// 从蓝牙拿到数据进行解析
parseCustomData(data) {
// 将字符串按照 "@" 分割成数组
const dataArray = data.split('@');
const voltage = parseFloat(dataArray[0].substring(1)); // 去除前缀 "V",并将字符串转换为浮点数
const switchState = dataArray[1].substring(1); // 去除前缀 "S"
const current = parseFloat(dataArray[2].substring(1)); // 去除前缀 "A",并将字符串转换为浮点数
const power = parseFloat(dataArray[4].substring(1)); // 去除前缀 "P",并将字符串转换为浮点数
const remainingPower = parseFloat(dataArray[5].substring(1)); // 去除前缀 "M",并将字符串转换为浮点数
const setMode = dataArray[6].substring(1); // 去除前缀 "T"
// 返回解析后的数据对象
return {
voltage,
switchState,
current,
power,
remainingPower,
setMode
};
},
}
}
</script>
<style lang="scss">
.fangswindle{
position: fixed;
top: 500rpx;
left: 50%;
transform: translateX(-50%);
z-index: 99;
image{
width: 584rpx;
height: 456rpx;
}
.zhixiao{
width: 530rpx;
height: 76rpx;
background: #8883F0;
border-radius: 47rpx 47rpx 47rpx 47rpx;
text-align: center;
line-height: 76rpx;
font-size: 32rpx;
color: #FFFFFF;
position: fixed;
top: 340rpx;
left: 50%;
transform: translateX(-50%);
z-index: 99;
}
}
.czdh{
width: 100%;
height: 100vh;
position: fixed;
top: 0;
left: 0;
background-color: rgba(0, 0, 0, .5);
padding-top: 700rpx;
.bj{
width: 500rpx;
height: 300rpx;
background-color: #fff;
margin: auto;
border-radius: 20rpx;
.tittop{
width: 100%;
text-align: center;
padding-top: 50rpx;
box-sizing: border-box;
}
.bfb{
width: 100%;
text-align: center;
padding-top: 50rpx;
box-sizing: border-box;
font-size: 50rpx;
}
}
}
.u-icon__icon{
// margin-right: 20rpx;
}
.mask {
width: 100%;
height: 100vh;
position: fixed;
top: 0;
left: 50%;
transform: translateX(-50%);
background-color: #000;
opacity: .5;
}
.ulbox{
width: 100%;
overflow: scroll;
.ulli{
display: flex;
width: 170vh;
.li{
flex: 1;
border: 1rpx solid #ccc;
text-align: center;
font-size: 32rpx;
color: #8883F0;
height: 88rpx;
line-height: 88rpx;
}
}
.olli{
display: flex;
width: 170vh;
.li{
flex: 1;
border: 1rpx solid #ccc;
text-align: center;
font-size: 22rpx;
color: #262B37;
height: 88rpx;
line-height: 88rpx;
}
}
}
.shibai {
margin-top: 50rpx;
text-align: center;
padding-bottom: 600rpx;
height: 100vh;
overflow: scroll;
.jxcz {
width: 563rpx;
height: 100rpx;
background: #8883F0;
border-radius: 60rpx 60rpx 60rpx 60rpx;
text-align: center;
line-height: 100rpx;
font-size: 45rpx;
color: #FFFFFF;
position: fixed;
bottom: 62rpx;
left: 50%;
transform: translateX(-50%);
}
.top {
font-size: 40rpx;
color: #3D3D3D;
}
.tishi {
font-size: 31rpx;
color: #3D3D3D;
margin-top: 50rpx;
}
.li {
margin-top: 50rpx;
font-size: 31rpx;
color: #3D3D3D;
image {
margin-top: 30rpx;
}
}
}
/deep/ .u-title {
padding-bottom: 22rpx;
}
/deep/ .u-checkbox__label {
margin-right: 0 !important;
}
// /deep/ .u-icon__icon{
// padding-bottom: 41rpx;
// }
page {
background: linear-gradient(180deg, #8883F0 0%, rgba(255, 255, 255, 0) 100%);
}
.active {
// background-color: #8883F0 !important;
// color: #fff !important;
border: 4rpx solid #8883F0 !important;
box-sizing: border-box;
}
.page {
width: 750rpx;
// position: fixed;
// top: 0;
// left: 0;
overflow: hidden;
height: 100vh;
.tip_box {
position: fixed;
left: 72rpx;
top: 700rpx;
width: 610rpx;
// height: 282rpx;
background: #F7FAFE;
border-radius: 30rpx 30rpx 30rpx 30rpx;
z-index: 10000000;
.top {
padding: 52rpx 38rpx 42rpx 36rpx;
.txt {
width: 100%;
text-align: center;
font-weight: 500;
font-size: 32rpx;
color: #3D3D3D;
}
}
.bot {
border-top: 2rpx solid #D8D8D8;
display: flex;
flex-wrap: nowrap;
height: 100%;
.bot_left {
width: 50%;
height: 98rpx;
display: flex;
align-items: center;
justify-content: center;
font-weight: 500;
font-size: 36rpx;
color: #3D3D3D;
}
.bot_right {
width: 50%;
height: 98rpx;
display: flex;
align-items: center;
justify-content: center;
border-left: 2rpx solid #D8D8D8;
font-weight: 500;
font-size: 36rpx;
color: #8883F0;
}
}
}
.title {
margin-top: 40rpx;
padding-left: 32rpx;
font-weight: 600;
font-size: 40rpx;
color: #fff;
margin-bottom: 30rpx;
margin-top: 110rpx;
height: 126rpx;
.wz {
font-weight: 400;
font-size: 32rpx;
margin-top: 30rpx;
}
}
.box {
width: 750rpx;
height: 71vh;
overflow: scroll;
background: #F4F5F7;
border-radius: 0rpx 0rpx 0rpx 0rpx;
padding: 36rpx 54rpx;
box-sizing: border-box;
border-radius: 30rpx 30rpx 0 0;
.tongyi {
width: 590rpx;
position: fixed;
bottom: 50rpx;
left: 50%;
transform: translateX(-50%);
text {
color: #638DFF;
height: 50rpx;
line-height: 50rpx;
}
.zf {
width: 590rpx;
height: 84rpx;
background: #8883F0;
filter: blur(0px);
border-radius: 50rpx;
text-align: center;
line-height: 84rpx;
font-size: 36rpx;
color: #FFFFFF;
margin-top: 10rpx;
}
}
.shuom {
width: 648rpx;
max-height: 100%;
background: #FFFFFF;
box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(42, 130, 228, 0.1);
filter: blur(0px);
border-radius: 30rpx;
margin: auto;
margin-top: 36rpx;
padding: 20rpx 36rpx;
box-sizing: border-box;
.tits {
font-size: 32rpx;
font-weight: 600;
margin-top: 30rpx;
}
}
.wz {
font-size: 28rpx;
color: #ccc;
margin-top: 30rpx;
font-weight: 400;
}
.list_val {
.tc {
font-weight: 600;
font-size: 34rpx;
color: #525252;
}
.date {
font-size: 26rpx;
color: #525252;
margin-top: 10rpx;
}
.rt {
font-size: 40rpx;
color: #525252;
padding-top: 20rpx;
}
}
.tit {
font-size: 40rpx;
color: #383838;
font-weight: 600;
margin-bottom: 32rpx;
}
}
}
</style>