kaiguan-zfb/pages/index/index.vue

2330 lines
56 KiB
Vue
Raw Normal View History

2023-11-27 09:57:03 +08:00
<template>
2024-01-27 16:37:52 +08:00
<view class="page">
<!-- <u-navbar :is-back="true" :title="tittxt" :border-bottom="false" :background="bgc" title-color='#fff' @custom-back="btncustom" back-icon-color="#fff"
2024-06-03 16:47:25 +08:00
title-size='44' height='50' id="navbar">
</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>
2024-08-02 18:00:50 +08:00
<text>设备列表</text>
</view>
2024-05-21 10:49:02 +08:00
<u-mask :show="showtip" @click="show = false" :z-index='1000' />
2024-05-10 17:37:36 +08:00
<view class="tip_box" v-if="showtip">
<view class="top">
<view class="txt">
系统检测到您的设备未联网或者为蓝牙版本,金额充值失败,请靠近设备进行蓝牙充值
2024-01-27 16:37:52 +08:00
</view>
2024-05-21 10:49:02 +08:00
2024-05-10 17:37:36 +08:00
</view>
<view class="bot">
<view class="bot_left" @click="showtip=false">
取消
2024-01-27 16:37:52 +08:00
</view>
2024-05-10 17:37:36 +08:00
<view class="bot_right" @click="tocz()">
蓝牙充值
</view>
</view>
</view>
2024-06-04 14:50:30 +08:00
<view class="fd">
2024-07-27 18:43:42 +08:00
<!-- 刷新动画 -->
<view class="shuaxin" v-if="shuaxin">
2024-07-29 18:03:40 +08:00
<image src="https://api.ccttiot.com/smartmeter/img/static/uO9UFjzbzS9YlabzL4HV" mode=""></image>
2024-07-27 18:43:42 +08:00
</view>
2024-07-29 18:03:40 +08:00
2024-09-18 18:00:38 +08:00
<view class="fd_top u-skeleton-fillet">
2024-06-04 17:50:05 +08:00
<view class="fd_da">
<view class="fd_lt"
:style="{ transform: `translateX(${-curtitidx * 100 > -300 ? 0 : -curtitidx * 120}rpx)`}">
2024-05-24 16:48:42 +08:00
<view class="fd_tit" v-for="(item,index) in groupLists" :key="index"
:class="index==curtitidx?'act1':''" @click="changeidx(index)">
2024-06-04 17:50:05 +08:00
{{item.name.length > 5 ? item.name.slice(0, 5) + '...' : item.name}}
2024-05-24 16:48:42 +08:00
</view>
2024-06-04 14:50:30 +08:00
</view>
2024-05-10 17:37:36 +08:00
</view>
<view class="right">
2024-05-20 18:02:24 +08:00
<!-- <view class="fd_set" @click="show = true">
2024-05-10 17:37:36 +08:00
+
2024-05-20 18:02:24 +08:00
</view> -->
<view class="fd_set iconfont icon-liebiao" @click="showfz = true"></view>
2024-10-06 18:03:09 +08:00
<image style="width: 32rpx;height: 34rpx;margin-top: 10rpx;margin-left: 20rpx;" src="https://api.ccttiot.com/smartmeter/img/static/uiZneL59hHNJ2EsOE557" mode="" @click="pxshow = true"></image>
2024-01-27 16:37:52 +08:00
</view>
2024-10-06 18:03:09 +08:00
<u-select v-model="pxshow" :list="pxlist" @confirm="pxconfirm"></u-select>
2024-05-10 17:37:36 +08:00
2024-01-27 16:37:52 +08:00
</view>
<u-mask :show="showfz" @click="showfz=false"></u-mask>
2024-07-27 18:43:42 +08:00
2024-05-10 17:37:36 +08:00
<view class="fz" v-show="showfz">
<view class="fz_top">
<view class="iconfont icon-shanchu" @click="showfz=false">
2024-01-27 16:37:52 +08:00
</view>
2024-05-10 17:37:36 +08:00
<view class="tit">
<!-- 店铺管理 -->
2024-01-27 16:37:52 +08:00
</view>
2024-05-10 17:37:36 +08:00
<view class="txt" @click="tosetpage()">
管理
2024-01-27 16:37:52 +08:00
</view>
</view>
2024-05-10 17:37:36 +08:00
<view class="card_cont">
2024-06-04 14:50:30 +08:00
<view class="cards" v-for="(item,index) in groupLists" :key="index">
2024-07-27 18:43:42 +08:00
<!-- //@click="changeGp(item)" groupLists -->
2024-05-10 17:37:36 +08:00
<view class="txt">
{{item.name}}
2024-01-27 16:37:52 +08:00
</view>
2024-05-10 17:37:36 +08:00
<view class="num">
{{item.deviceCount}}
2024-01-27 16:37:52 +08:00
</view>
</view>
2024-05-10 17:37:36 +08:00
<view class="zhanwei" style="width: 100%;height: 100rpx;">
2024-03-13 10:54:22 +08:00
2024-05-10 17:37:36 +08:00
</view>
2024-03-13 10:54:22 +08:00
</view>
</view>
2024-05-24 16:48:42 +08:00
2024-07-27 18:43:42 +08:00
<swiper class="swiper" style="height: 100%;" :current='curtitidx' @change="swiperchange"
@touchstart="touchStart" @touchend="touchEnd">
2024-09-18 18:00:38 +08:00
<swiper-item v-for="(items,index) in groupLists" :key="index" class="">
<view class="" v-if="items && items.wateringList && items.wateringList.length == 0"
2024-06-04 14:50:30 +08:00
style="width: 100%;height: 200rpx;margin: auto;margin-top: 230rpx;text-align: center;">
<image style="width: 200rpx;height: 200rpx;"
src="https://api.ccttiot.com/smartmeter/img/static/uZFUpcz0YZZ4f4RjvGg2" mode=""></image>
<view class="" style="font-size: 28rpx;color: #808080;margin-top: 30rpx;">该店铺暂无设备...</view>
2024-05-24 16:48:42 +08:00
</view>
2024-07-27 18:43:42 +08:00
<view class="swiper_item">
2024-07-29 18:03:40 +08:00
<view class="card_box" v-for="(item,indexs) in items.wateringList" :key="indexs">
2024-06-04 14:50:30 +08:00
<view class="card">
2024-05-24 16:48:42 +08:00
<view class="card_left">
2024-07-12 18:13:59 +08:00
<view class="card_left_tit" @click="todetail(item.deviceId)">
2024-05-24 16:48:42 +08:00
{{item.deviceName}}
</view>
<view class="card_left_sta" @click="todetail(item.deviceId)">
2024-08-12 21:49:12 +08:00
网络:<view class="" style="width: 10rpx;"></view>
2024-09-05 18:00:53 +08:00
<text v-if="item.wifi == null && !item.modelTags.some(tag => tag == 3) || item.wifi == '创特物联TP'" style="color: red;" @click.stop="btnwifi(item.mac)">未配网</text>
<text v-else>
<text v-if="item.onlineStatus == 0" style="color: red;">离线</text>
2024-09-29 19:32:37 +08:00
<text v-else style="color: #00BA88;">在线</text>
2024-09-05 18:00:53 +08:00
</text>
2024-08-12 21:49:12 +08:00
<view class="" style="width: 20rpx;"></view>
状态:<view class="" style="width: 10rpx;"></view>
2024-05-24 16:48:42 +08:00
<view class="sta_txt" v-if="item.status==3">
维修中
2024-03-13 10:54:22 +08:00
</view>
2024-09-29 19:32:37 +08:00
<view class="sta_txt" v-if="item.status==2" style="color:red;">
2024-05-24 16:48:42 +08:00
使用中
2024-03-13 10:54:22 +08:00
</view>
2024-09-29 19:32:37 +08:00
<view class="sta_txt" v-if="item.status==1" style="color:#00BA88;">
2024-06-14 18:51:43 +08:00
空闲
2024-03-13 10:54:22 +08:00
</view>
</view>
<view class="card_left_no" :class="item.onlineStatus == 0 ? 'activewzgl' : ''"
@click="todetail(item.deviceId)">
2024-05-24 16:48:42 +08:00
S/N码{{item.deviceNo}}
2024-03-13 10:54:22 +08:00
</view>
<view @click="sremakes(item)" v-if="item.storeId == null" class="dianpu"
2024-08-12 21:49:12 +08:00
style="border: 1px solid #ccc;padding: 5rpx;font-size:26rpx: border-box;width: 180rpx;border-radius: 20rpx;color: #ccc;text-align: center;margin-top: 10rpx;">
未分配店铺
</view>
<view v-else :class="item.onlineStatus == 0 ? 'activewzgl' : ''"
style="color: #95989D;padding-top: 20rpx;font-size: 26rpx;"
@click="todetail(item.deviceId)">
2024-08-12 21:49:12 +08:00
店铺{{item.storeName == null ? '--' : item.storeName}}
2024-07-12 18:13:59 +08:00
</view>
2024-03-13 10:54:22 +08:00
</view>
2024-07-12 18:13:59 +08:00
<view class="card_right" @click="todetail(item.deviceId)">
2024-07-22 18:03:27 +08:00
<image v-if="item.customPicture" :src="item.customPicture" mode="aspectFit"
2024-06-04 14:50:30 +08:00
style="border-radius: 20rpx;"></image>
<image v-else :src="item.picture" mode="aspectFit"></image>
2024-05-24 16:48:42 +08:00
</view>
2024-03-13 10:54:22 +08:00
</view>
</view>
2024-05-10 17:37:36 +08:00
</view>
2024-05-24 16:48:42 +08:00
</swiper-item>
</swiper>
2024-01-27 16:37:52 +08:00
</view>
<!-- 选择店铺 -->
<u-select v-model="showshop" :list="shoplist" @confirm="confirms"></u-select>
<image v-if="curtitidx == 0" class="saoyisao" @click="saoyisao"
src="https://api.ccttiot.com/smartmeter/img/static/uiDR6MnGHguBRNSYFTVw" mode=""></image>
2024-03-25 19:46:07 +08:00
2024-01-23 19:15:52 +08:00
<tab-bar :indexs='0'></tab-bar>
2024-03-25 19:46:07 +08:00
2024-05-10 17:37:36 +08:00
<view class="dd">
<u-select v-model="show" :list="list" title='添加方式' @confirm="confirm"></u-select>
</view>
2024-09-05 18:00:53 +08:00
<view class="bluetoothbox" v-if="bluetoothflag">
<view class="stop">
正在连接该设备蓝牙
</view>
<view class="xtop">
请将手机与设备尽量靠近
</view>
<image src="https://api.ccttiot.com/smartmeter/img/static/ucDphMKsozqwwllJTAKL" mode=""></image>
</view>
<!-- 蓝牙连接失败 -->
<view class="bluetoothbox" v-if="shibaiflag">
<image class="img" src="https://api.ccttiot.com/smartmeter/img/static/uTb3vSlbcHdPMFQMBjyL" mode=""></image>
<view class="one">
蓝牙连接失败
</view>
<view class="two">
请确保手机足够靠近设备
</view>
<view class="thr">
并且设备处于上电状态
</view>
<view class="anfour">
<view class="qx" @click="btnlyqx">
取消
</view>
<view class="cx" @click="btnwifis">
重新连接
</view>
</view>
</view>
<view v-if="btnmsk"
style="width: 100%;height: 100vh;position: fixed;top: 0;left: 0;background-color: #000;opacity: .1;z-index: 999;">
</view>
2023-11-27 09:57:03 +08:00
</view>
</template>
<script>
2024-09-05 18:00:53 +08:00
var xBlufi = require("@/page_components/blufi/xBlufi.js")
2024-05-10 21:35:42 +08:00
import uniEcCanvas from '@/components/uni-ec-canvas/uni-ec-canvas.vue'
import * as echarts from '@/components/uni-ec-canvas/echarts'
let chart = null
2023-11-27 09:57:03 +08:00
export default {
data() {
return {
2024-10-06 18:03:09 +08:00
pxshow: false,
pxlist: [
{
value: 'deviceName',
label: '按设备名称排序'
},
{
value: 'activationTime',
label: '按绑定时间排序'
},
{
value: 'onlineStatus',
label: '按在线状态排序'
}
],
shuaxin: false,
2024-07-12 18:13:59 +08:00
showshop: false,
shoplist: [],
2024-06-04 14:50:30 +08:00
bgc: {
2024-05-21 18:02:34 +08:00
backgroundColor: "#8883f0",
2024-01-27 16:37:52 +08:00
},
2024-05-10 21:35:42 +08:00
ec: {
lazyLoad: true
},
2024-03-25 19:46:07 +08:00
deviceInfo: {},
loadings: false,
info: '',
2024-05-10 17:37:36 +08:00
tittxt: "商户中心",
titlist: '暂无店铺',
2024-03-25 19:46:07 +08:00
curtitidx: 0,
background: ['color1', 'color2', 'color3'],
indicatorDots: true,
autoplay: true,
interval: 2000,
duration: 500,
deviceList: [],
userType: '',
addflag: false,
sbflag: true,
2024-05-10 17:37:36 +08:00
show: false,
qingqiuflag:true,
2024-05-10 17:37:36 +08:00
list: [{
value: '1',
label: '扫码添加'
},
{
value: '2',
label: '搜索附近设备添加'
}
],
qrResult: '',
showfz: false,
groupList: [],
groupLists: [],
total: '',
gps: {},
mac: '',
2024-05-21 10:49:02 +08:00
deviceId: '',
showtip: false,
orderinfo: [],
storeId: '',
2024-05-10 17:37:36 +08:00
pagenum: 1,
wateringList: [],
pagesize: 10,
2024-05-21 10:49:02 +08:00
isLoading: false,
noMoreData: false,
total: 0,
2024-06-04 14:50:30 +08:00
shujuflag: false,
id: '',
2024-07-27 18:43:42 +08:00
touchStartX: 0, // 触屏起始点x
touchStartY: 0, // 触屏起始点y
2024-07-29 18:03:40 +08:00
2024-08-02 18:00:50 +08:00
xiaflag:true,
2024-09-05 18:00:53 +08:00
isMch:false,
bluetoothflag: false,
shibaiflag: false,
deviceInfo: {},
info: '',
checked: false,
focus: false,
timeday: '',
imglist: '',
userImgs: '',
imgflag: true,
devicesList: [],
setMode: null,
vipflag: false,
cztime: '',
opflag: true,
timer: null,
url: "",
deviceNo: '',
2024-10-06 18:03:09 +08:00
btnmsk:false,
pxzt:'onlineStatus'
2024-03-13 10:54:22 +08:00
}
2024-05-10 21:35:42 +08:00
},
onLoad() {
2024-09-18 18:00:38 +08:00
2024-03-13 10:54:22 +08:00
},
2024-05-10 17:37:36 +08:00
onShow() {
2024-07-12 18:13:59 +08:00
this.gettanc()
2024-05-13 15:32:48 +08:00
this.pagenum = 1
// this.curtitidx = 0
2024-07-12 18:13:59 +08:00
// this.wateringList = []
2024-06-04 17:50:05 +08:00
this.logins()
2024-10-06 18:03:09 +08:00
this.getgroup()
2024-06-04 17:50:05 +08:00
this.deviceId = uni.getStorageSync('deviceIds')
this.name = uni.getStorageSync('name')
let that = this
2024-05-10 17:37:36 +08:00
setTimeout(() => {
if (this.userType === '01') { // 注意 '01' 是一个字符串
if (uni.getStorageSync('mac')) {
2024-06-11 18:03:16 +08:00
this.mac = uni.getStorageSync('mac')
2024-05-10 17:37:36 +08:00
uni.getLocation({
type: 'wgs84',
success: function(lb) {
2024-06-11 18:03:16 +08:00
that.gps.lat = lb.latitude
that.gps.lon = lb.longitude
2024-05-10 17:37:36 +08:00
that.tobind()
},
fail: function(error) {
2024-06-11 18:03:16 +08:00
console.error('获取位置信息失败:', error)
that.gps.lat = 0
that.gps.lon = 0
2024-05-10 17:37:36 +08:00
that.tobind()
}
2024-06-11 18:03:16 +08:00
})
2024-05-10 17:37:36 +08:00
}
2024-05-21 10:49:02 +08:00
} else {
2024-05-10 17:37:36 +08:00
if (uni.getStorageSync('billNo')) {
2024-05-21 10:49:02 +08:00
let billNo = uni.getStorageSync('billNo')
2024-05-10 17:37:36 +08:00
this.$u.get(`/app/bill/recharge/${billNo}/bluetoothSuccess`).then((res) => {
2024-05-21 10:49:02 +08:00
if (res.code == 200) {
2024-06-11 18:03:16 +08:00
uni.removeStorageSync('billNo')
2024-05-21 10:49:02 +08:00
this.showtip = false
2024-05-10 17:37:36 +08:00
this.order()
}
2024-06-04 17:50:05 +08:00
})
2024-05-10 17:37:36 +08:00
}
}
}, 2000);
2023-11-27 09:57:03 +08:00
},
2024-07-17 17:59:51 +08:00
// 分享到好友(会话)
onShareAppMessage: function() {
return {
title: '创想物联',
path: '/pages/shouye/index'
}
},
// 分享到朋友圈
onShareTimeline: function() {
return {
title: '创想物联',
query: '',
path: '/pages/shouye/index'
}
},
2023-11-27 09:57:03 +08:00
methods: {
2024-10-06 18:03:09 +08:00
// 选择排序
pxconfirm(e){
this.pxzt = e[0].value
this.gettanc()
this.pagenum = 1
this.logins()
this.getgroup()
},
2024-09-05 18:00:53 +08:00
funListenDeviceMsgEvent: function(options) {
switch (options.type) {
case xBlufi.XBLUFI_TYPE.TYPE_RECIEVE_MY_DATA:
let loadPercent = options.data;
let loadText = '文件读取中'
// console.log("文件读取中", options.data)
break;
case xBlufi.XBLUFI_TYPE.TYPE_RECIEVE_CUSTON_DATA:
let ver_data = this.parseCustomData(options.data)
this.setMode = Math.floor(ver_data.setMode / 60)
console.log("1收到设备发来的自定义数据结果", ver_data, this.setMode)
break;
case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS:
if (options.result) {
let devicesarr = options.data
// console.log(devicesarr,'devicesarrdevicesarr')
devicesarr.forEach(device => {
const mac = device.name.substring(5)
if (device.name.slice(5, 17) == this.qrResult) {
this.deviceId = device.deviceId
this.name = device.name
this.mac = device.name.slice(5, 17)
// console.log(this.mac, 'macmacmac')
// this.devicesList = uniqueDevicesList
}
})
}
break;
case xBlufi.XBLUFI_TYPE.TYPE_CONNECTED:
// console.log("连接回调:" + JSON.stringify(options))
if (options.result) {
this.bluetoothflag = false
uni.hideLoading();
// uni.showToast({
// title: '连接成功',
// icon: 'none'
// });
{
console.log("连接回调options.data.deviceId" + options.data.deviceId,
"连接回调options.data.name" + options.data.name)
}
} else {
this.shibaiflag = true
this.bluetoothflag = false
uni.hideLoading()
// uni.showToast({
// title: '设备离线或不在范围内',
// icon: 'none',
// duration: 2000
// })
}
break;
case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_START:
if (!options.result) {
setTimeout(() => {
uni.hideLoading()
this.bluetoothflag = false
}, 3000)
console.log("蓝牙未开启", options)
this.shibaiflag = true
// uni.showToast({
// title: '蓝牙未开启',
// icon: 'none',
// duration: 3000
// });
return
} else {
// this.searching = true
//蓝牙搜索开始
// _this.setData({
// searching: true
// });
}
break;
case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_STOP:
if (options.result) {
let uniqueDevicesList = Array.from(new Set(this.devicesList))
// 将去重后的数组重新赋值给 this.devicesList
this.devicesList = uniqueDevicesList
let list = []
2024-09-10 18:34:35 +08:00
// filteredDevices.forEach(device => {
// // 从设备名称中提取 MAC 地址(假设 MAC 地址是设备名称的后6个字符
// let macFromName = device.name.substring(device.name.length - 12)
// this.$u.get(`/app/device/${macFromName}/isBind`).then((res) => {
// if (res.data == false) {
// list.push(device)
// } else {
2024-09-05 18:00:53 +08:00
2024-09-10 18:34:35 +08:00
// }
// })
2024-09-05 18:00:53 +08:00
2024-09-10 18:34:35 +08:00
// });
2024-09-05 18:00:53 +08:00
setTimeout(() => {
this.devicesList = list
}, 200)
console.log('蓝牙停止搜索ok')
} else {
//蓝牙停止搜索失败
console.log('蓝牙停止搜索失败')
}
this.searching = false
break
}
},
parseCustomData(data) {
// 将字符串按照 "@" 分割成数组
const dataArray = data.split('@');
// 初始化一个空对象来存储解析后的数据
const parsedData = {};
// 前缀到属性名的映射
const prefixMap = {
'V': 'voltage',
'S': 'switchState',
'A': 'current',
'P': 'power',
'M': 'remainingPower',
'T': 'setMode',
'W': 'temperature'
};
// 遍历数组并解析每个字段
for (let i = 0; i < dataArray.length; i++) {
const field = dataArray[i];
for (const prefix in prefixMap) {
if (field.startsWith(prefix)) {
// 去除前缀并将剩余部分转换为适当的类型(这里默认为浮点数或字符串)
const value = field.substring(1);
const propertyName = prefixMap[prefix];
// 根据需要,这里可以添加更复杂的类型转换逻辑
// 但为了简单起见,我们总是尝试将其转换为浮点数,如果失败则保留为字符串
parsedData[propertyName] = isNaN(parseFloat(value)) ? value : parseFloat(value);
// 找到了匹配的前缀,跳出内层循环
break;
}
}
}
// 返回解析后的数据对象
return parsedData;
},
btnlyqx() {
this.shibaiflag = false
this.bluetoothflag = false
},
// 未配网 进行配网
btnwifis(){
this.btnmsk = false
this.shibaiflag = false
this.bluetoothflag = true
// console.log(this.deviceId,'idididididdidii');
if (this.setMode == null) {
xBlufi.initXBlufi(1)
xBlufi.listenDeviceMsgEvent(true, this.funListenDeviceMsgEvent)
xBlufi.notifyStartDiscoverBle({
'isStart': true
})
// 停止蓝牙搜索
setTimeout(() => {
xBlufi.notifyStartDiscoverBle({
'isStart': false
})
xBlufi.notifyConnectBle({
isStart: true,
deviceId: this.deviceId,
name: this.name
})
xBlufi.notifyInitBleEsp32({
deviceId: this.deviceId
})
let name = ''
let index = this.name.indexOf('-')
if (index !== -1) {
name = this.name.slice(index + 1)
}
let data = {
storeId: this.storeId,
mac: this.mac
}
this.$u.put('/app/device/bind', data).then((res) => {
if (res.code == 200) {
uni.hideLoading();
this.shibaiflag = false
this.bluetoothflag = false
uni.removeStorageSync('mac');
let systemInfo = uni.getSystemInfoSync()
if (systemInfo.platform == 'android') {
// 当前设备是 Android
uni.navigateTo({
url: '/page_components/wifilist/index?deviceId=' + this
.deviceId + '&name=' + this.name
})
} else if (systemInfo.platform == 'ios') {
// 当前设备是 iOS
uni.navigateTo({
url: '/page_fenbao/device/wifivideo?deviceId=' + this
.deviceId + '&name=' + this.name
})
}
} else if (res.msg == '设备编号和mac不能同时为空') {
this.shibaiflag = true
this.bluetoothflag = false
}
})
}, 1000)
} else {
let name = ''
let index = this.name.indexOf('-')
if (index !== -1) {
name = this.name.slice(index + 1)
}
let data = {
storeId: this.storeId,
mac: this.mac
}
this.$u.put('/app/device/bind', data).then((res) => {
if (res.code == 200) {
// uni.showToast({
// title: '绑定成功',
// icon: 'none',
// duration: 2000
// })
this.shibaiflag = false
this.bluetoothflag = false
uni.hideLoading()
2024-09-05 18:00:53 +08:00
uni.removeStorageSync('mac');
let systemInfo = uni.getSystemInfoSync()
if (systemInfo.platform == 'android') {
// 当前设备是 Android
uni.navigateTo({
url: '/page_components/wifilist/index?deviceId=' + this.deviceId +
'&name=' + this.name
})
} else if (systemInfo.platform == 'ios') {
// 当前设备是 iOS
uni.navigateTo({
url: '/page_fenbao/device/wifivideo?deviceId=' + this.deviceId +
'&name=' + this.name
})
}
} else {
if (res.msg == '设备编号和mac不能同时为空') {
this.shibaiflag = true
this.bluetoothflag = false
uni.hideLoading()
// uni.showToast({
// title: '连接失败',
// icon: 'none',
// duration: 2000
// })
} else {
this.shibaiflag = true
this.bluetoothflag = false
uni.hideLoading()
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
// uni.navigateBack()
}
}
})
}
},
2024-09-05 18:00:53 +08:00
btnwifi(mac){
this.qrResult = mac
this.btnmsk = false
this.shibaiflag = false
this.bluetoothflag = true
// console.log(this.deviceId,'idididididdidii');
if (this.setMode == null) {
xBlufi.initXBlufi(1)
xBlufi.listenDeviceMsgEvent(true, this.funListenDeviceMsgEvent)
xBlufi.notifyStartDiscoverBle({
'isStart': true
})
// 停止蓝牙搜索
setTimeout(() => {
xBlufi.notifyStartDiscoverBle({
'isStart': false
})
xBlufi.notifyConnectBle({
isStart: true,
deviceId: this.deviceId,
name: this.name
})
xBlufi.notifyInitBleEsp32({
deviceId: this.deviceId
})
let name = ''
let index = this.name.indexOf('-')
if (index !== -1) {
name = this.name.slice(index + 1)
}
let data = {
storeId: this.storeId,
mac: this.mac
}
this.$u.put('/app/device/bind', data).then((res) => {
if (res.code == 200) {
uni.hideLoading();
this.shibaiflag = false
this.bluetoothflag = false
uni.removeStorageSync('mac');
let systemInfo = uni.getSystemInfoSync()
if (systemInfo.platform == 'android') {
// 当前设备是 Android
uni.navigateTo({
url: '/page_components/wifilist/index?deviceId=' + this
.deviceId + '&name=' + this.name
})
} else if (systemInfo.platform == 'ios') {
// 当前设备是 iOS
uni.navigateTo({
url: '/page_fenbao/device/wifivideo?deviceId=' + this
.deviceId + '&name=' + this.name
})
}
} else if (res.msg == '设备编号和mac不能同时为空') {
this.shibaiflag = true
this.bluetoothflag = false
}
})
}, 1000)
} else {
let name = ''
let index = this.name.indexOf('-')
if (index !== -1) {
name = this.name.slice(index + 1)
}
let data = {
storeId: this.storeId,
mac: this.mac
}
this.$u.put('/app/device/bind', data).then((res) => {
if (res.code == 200) {
// uni.showToast({
// title: '绑定成功',
// icon: 'none',
// duration: 2000
// })
this.shibaiflag = false
this.bluetoothflag = false
uni.hideLoading();
uni.removeStorageSync('mac');
let systemInfo = uni.getSystemInfoSync()
if (systemInfo.platform == 'android') {
// 当前设备是 Android
uni.navigateTo({
url: '/page_components/wifilist/index?deviceId=' + this.deviceId +'&name=' + this.name
2024-09-05 18:00:53 +08:00
})
} else if (systemInfo.platform == 'ios') {
// 当前设备是 iOS
uni.navigateTo({
url: '/page_fenbao/device/wifivideo?deviceId=' + this.deviceId +'&name=' + this.name
2024-09-05 18:00:53 +08:00
})
}
} else {
if (res.msg == '设备编号和mac不能同时为空') {
this.shibaiflag = true
this.bluetoothflag = false
uni.hideLoading()
// uni.showToast({
// title: '连接失败',
// icon: 'none',
// duration: 2000
// })
} else {
this.shibaiflag = true
this.bluetoothflag = false
uni.hideLoading()
uni.showToast({
title: res.msg,
icon: 'none',
duration: 2000
})
// uni.navigateBack()
}
}
})
}
},
// 按下
touchStart(e) {
2024-07-27 18:43:42 +08:00
this.touchStartX = e.touches[0].clientX;
this.touchStartY = e.touches[0].clientY;
},
// 松开
2024-07-27 18:43:42 +08:00
touchEnd(e) {
let deltaX = e.changedTouches[0].clientX - this.touchStartX;
let deltaY = e.changedTouches[0].clientY - this.touchStartY;
if (Math.abs(deltaX) > 50 && Math.abs(deltaX) > Math.abs(deltaY)) {
if (deltaX >= 0) {
// console.log("左滑")
} else {
// console.log("右滑")
}
} else if (Math.abs(deltaY) > 50 && Math.abs(deltaX) < Math.abs(deltaY)) {
if (deltaY < 100) {
2024-10-17 17:14:57 +08:00
console.log("上滑")
// let sum = this.total / this.pagesize
// console.log(this.wateringList.length,this.total);
// if (this.wateringList.length < this.total) {
// this.getlist()
// }
if(this.qingqiuflag == true){
let sum = this.total / this.pagesize
console.log(this.groupLists[0].wateringList.length,this.total);
if (this.groupLists[0].wateringList.length < this.total) {
this.qingqiuflag = false
this.getlist()
}
}
2024-07-27 18:43:42 +08:00
} else {
console.log(deltaY)
if (deltaY > 250) {
2024-07-29 18:03:40 +08:00
if(this.xiaflag){
this.xiaflag = false
this.shuaxin = true
this.pagenum = 1
setTimeout(() => {
this.getlist()
}, 1000)
}
2024-07-27 18:43:42 +08:00
}
}
}
},
// 扫一扫绑定设备
saoyisao() {
uni.scanCode({
onlyFromCamera: true,
scanType: ['qrCode'],
success: res => {
function getQueryParam(url, paramName) {
let regex = new RegExp(`[?&]${paramName}=([^&]*)`)
let results = regex.exec(url);
return results ? decodeURIComponent(results[1].replace(/\+/g, ' ')) : null
}
let sceneValue = res.result
let decodedValue = decodeURIComponent(sceneValue)
let id = getQueryParam(decodedValue, 's')
// console.log(res, id)
let that = this
let data = {
deviceNo: id
}
that.$u.get(`/app/device/isBind?deviceNo=${id}`).then(res => {
if (res.data == 2) {
that.$u.get(`/app/device/${id}/withSuitList`).then((res) => {
if (res.code == 200) {
uni.navigateTo({
url: '/page_components/fuwu/index?id=' + id
})
}
})
} else if (res.data == 1) {
uni.showModal({
title: '提示',
content: '该设备未绑定,你需进行绑定吗?',
success: function(res) {
if (res.confirm) {
that.$u.put("/app/device/bind", data).then(
res => {
if (res.code == 200) {
2024-07-29 18:03:40 +08:00
that.$u.get(`/app/device/${id}/bySn`).then((res) => {
if (res.code == 200) {
uni.navigateTo({
2024-07-29 18:03:40 +08:00
url: '/page_components/bindsz?id=' + res.data.deviceId
})
}
})
}
})
} else if (res.cancel) {
}
}
})
} else if (res.data == 0) {
uni.showModal({
title: '提示',
content: '该设备未录入,你需进行录入吗?',
success: function(res) {
if (res.confirm) {
uni.navigateTo({
url: '/page_fenbao/zhuce?sn=' + id
})
} else if (res.cancel) {
}
}
})
}
})
},
fail: err => {
console.error('扫描失败:', err)
uni.showToast({
title: '扫描失败',
icon: 'none'
})
}
})
},
2024-07-12 18:13:59 +08:00
// 获取店铺
sremakes(item) {
2024-08-03 18:03:02 +08:00
if(this.shoplist.length == 0){
2024-08-02 18:00:50 +08:00
uni.showModal({
title: '提示',
content: '未创建店铺,是否去创建店铺?',
success: function(res) {
if (res.confirm) {
uni.navigateTo({
url:'/page_fenbao/statulist/myshop/shopxx/index'
})
} else if (res.cancel) {
}
}
})
}else{
this.id = item.deviceId
this.showshop = true
}
2024-07-12 18:13:59 +08:00
},
gettanc() {
2024-07-12 18:13:59 +08:00
this.$u.get('/app/store/listCount').then((res) => {
if (res.code == 200) {
this.total = res.total
if (res.data.length > 0) {
// 有数据,追加到列表
let arr = res.data.map(row => ({
value: row.storeId, // 将storeId赋值给value
label: row.name // 将name赋值给label
}))
this.shoplist = arr
this.shoplist = this.shoplist.slice(1)
}
2024-07-12 18:13:59 +08:00
}
})
},
confirms(e) {
2024-07-12 18:13:59 +08:00
this.pagenum = 1
let data = {
deviceId: this.id,
storeId: e[0].value
2024-07-12 18:13:59 +08:00
}
this.putdevice(data)
},
putdevice(data) {
this.$u.put('/app/device', data).then((res) => {
if (res.code == 200) {
this.getlist()
2024-07-12 18:13:59 +08:00
uni.showToast({
title: '修改成功',
icon: 'success',
2024-07-12 18:13:59 +08:00
duration: 2000
});
2024-07-12 18:13:59 +08:00
}
})
},
2024-05-21 10:49:02 +08:00
tocz() {
this.showtip = false
uni.navigateTo({
url: '/page_fenbao/device/czDevice?orderinfo=' + JSON.stringify(this.orderinfo)
2024-06-04 17:50:05 +08:00
})
2024-05-10 17:37:36 +08:00
},
checkModelTags(modelTags) {
2024-05-21 10:49:02 +08:00
return modelTags && modelTags.some(tag => tag === 2);
2024-05-10 17:37:36 +08:00
},
2024-05-21 10:49:02 +08:00
order() {
2024-05-10 17:37:36 +08:00
this.$u.get("/app/bill/recharge/device/fail/list").then((res) => {
2024-05-21 10:49:02 +08:00
if (res.data.length != 0) {
this.showtip = true
this.orderinfo = res.data[0]
} else {
this.orderinfo = null
2024-05-10 17:37:36 +08:00
}
2024-06-04 17:50:05 +08:00
})
2024-05-10 17:37:36 +08:00
},
2024-05-21 10:49:02 +08:00
towifi(mac) {
2024-05-10 17:37:36 +08:00
uni.navigateTo({
2024-05-10 19:51:14 +08:00
url: '/page_fenbao/device/wifiDevice?mac=' + mac
2024-05-10 17:37:36 +08:00
})
},
2024-05-21 10:49:02 +08:00
tobind() {
2024-05-10 17:37:36 +08:00
this.$u.put(`/app/device/bind/${this.mac}`, this.gps).then((res) => {
if (res.code === 200) {
2024-05-21 10:49:02 +08:00
2024-05-10 17:37:36 +08:00
let systemInfo = uni.getSystemInfoSync();
if (systemInfo.platform === 'android') {
// 当前设备是 Android
} else if (systemInfo.platform === 'ios') {
2024-05-11 17:51:30 +08:00
// console.log('aaaaaaaaaaaa');
2024-05-10 17:37:36 +08:00
uni.navigateTo({
2024-07-27 18:43:42 +08:00
url: '/page_components/wifilist/index?deviceId=' + this.deviceId +
'&name=' + this.name
2024-05-10 17:37:36 +08:00
})
}
uni.showToast({
title: '绑定成功',
icon: 'none',
duration: 2000
});
2024-08-12 21:49:12 +08:00
uni.removeStorageSync('mac')
uni.removeStorageSync('deviceIds')
uni.removeStorageSync('name')
this.getDeviceList()
2024-05-10 17:37:36 +08:00
} else {
// 处理失败情况
}
});
},
opendevice() {
let stause = 0
if (this.deviceInfo.powerStatus == 1) {
stause = 0
} else {
stause = 1
}
2024-08-02 18:00:50 +08:00
// console.log(stause, 'stausestause');
2024-05-10 17:37:36 +08:00
this.$u.put(`/app/device/${this.deviceInfo.deviceId}/changePower?status=` + stause).then((res) => {
// this.$forceUpdate()
if (res.code == 200) {
setTimeout(() => {
this.getdevice()
}, 2000)
// this.initChart()
} else {
uni.showToast({
title: res.msg,
icon: 'none'
2024-06-04 17:50:05 +08:00
})
2024-05-10 17:37:36 +08:00
}
2024-08-12 21:49:12 +08:00
})
2024-05-10 17:37:36 +08:00
},
getgroup() {
this.$u.get("/app/store/listCount").then((res) => {
if (res.data != 0) {
this.groupList = []
this.groupLists = res.data
2024-05-21 10:49:02 +08:00
this.groupList = res.data.filter(item => {
2024-06-04 17:50:05 +08:00
return item.name === '全部'
2024-05-10 17:37:36 +08:00
})
2024-08-12 21:49:12 +08:00
// console.log(this.groupLists,'第一')
2024-05-10 17:37:36 +08:00
this.storeId = this.groupList[0].storeId
this.getlist()
}
2024-06-04 17:50:05 +08:00
})
2024-05-10 17:37:36 +08:00
},
2024-05-21 10:49:02 +08:00
getlist() {
2024-05-27 16:06:08 +08:00
this.shujuflag = false
// if (this.storeId == null) {
2024-10-17 17:14:57 +08:00
this.$u.get(`/app/device/list?pageNum=${this.pagenum}&pageSize=${this.pagesize}&orderByColumn=${this.pxzt}&isAsc=desc`).then((res) => {
2024-05-13 15:32:48 +08:00
if (res.code == 200) {
2024-07-29 18:03:40 +08:00
this.xiaflag = true
this.shuaxin = false
2024-05-13 15:32:48 +08:00
this.total = res.total
if (res.rows.length > 0) {
// 有数据,追加到列表
2024-05-24 16:48:42 +08:00
this.shujuflag = false
2024-05-13 15:32:48 +08:00
} else {
// 没有更多数据
2024-06-04 14:50:30 +08:00
this.shujuflag = true
2024-05-13 15:32:48 +08:00
}
if (this.pagenum > 1) {
this.pagenum++
2024-10-17 17:14:57 +08:00
// this.wateringList = []
// this.wateringList = this.wateringList.concat(res.rows)
this.wateringList = res.rows
2024-07-12 18:13:59 +08:00
this.shujuflag = false
this.qingqiuflag = true
2024-10-06 18:03:09 +08:00
// console.log(this.wateringList);
this.groupLists.forEach(groupItem => {
2024-10-06 18:03:09 +08:00
groupItem.wateringList
})
this.wateringList.forEach(wateringItem => {
2024-08-12 21:49:12 +08:00
this.groupLists[0].wateringList.push(wateringItem)
})
this.wateringList.forEach(wateringItem => {
this.groupLists.forEach(groupItem => {
2024-07-29 18:03:40 +08:00
if (groupItem.storeId !== null && wateringItem.storeId !== null && groupItem.storeId == wateringItem.storeId) {
if (!groupItem.wateringList.some(item => item.storeId === wateringItem.storeId)) {
2024-08-12 21:49:12 +08:00
groupItem.wateringList.push(wateringItem)
}
}
})
})
// this.groupLists[0] = this.groupLists[0].map(group => {
// // 使用一个对象来跟踪已经遇到的 deviceId
// const seenDeviceIds = {};
// // 使用 reduce 来创建一个新的 wateringList只包含唯一的 deviceId
// const uniqueWateringList = group.wateringList.reduce((acc, item) => {
// if (!seenDeviceIds[item.deviceId]) {
// seenDeviceIds[item.deviceId] = true;
// acc.push(item);
// }
// return acc;
// }, []);
// // 返回更新后的组对象
// return {
// ...group,
// wateringList: uniqueWateringList
// };
// })
2024-10-17 17:14:57 +08:00
uni.hideLoading()
} else {
this.pagenum++
this.wateringList = res.rows
this.qingqiuflag = true
2024-08-12 21:49:12 +08:00
// console.log(this.wateringList,'000')
this.groupLists.forEach(groupItem => {
groupItem.wateringList = []
})
this.wateringList.forEach(wateringItem => {
this.groupLists[0].wateringList.push(wateringItem);
})
this.wateringList.forEach(wateringItem => {
this.groupLists.forEach(groupItem => {
2024-07-29 18:03:40 +08:00
if (groupItem.storeId !== null && wateringItem.storeId !== null && groupItem.storeId == wateringItem.storeId) {
groupItem.wateringList.push(wateringItem)
}
})
2024-08-12 21:49:12 +08:00
})
2024-08-02 18:00:50 +08:00
// console.log(this.groupLists)
// this.groupLists[0] = this.groupLists[0].map(group => {
// // 使用一个对象来跟踪已经遇到的 deviceId
// const seenDeviceIds = {};
// // 使用 reduce 来创建一个新的 wateringList只包含唯一的 deviceId
// const uniqueWateringList = group.wateringList.reduce((acc, item) => {
// if (!seenDeviceIds[item.deviceId]) {
// seenDeviceIds[item.deviceId] = true;
// acc.push(item);
// }
// return acc;
// }, []);
// // 返回更新后的组对象
// return {
// ...group,
// wateringList: uniqueWateringList
// };
// })
2024-10-17 17:14:57 +08:00
uni.hideLoading()
}
2024-08-12 21:49:12 +08:00
this.isLoading = false
} else {
this.shuaxin = false
2024-07-29 18:03:40 +08:00
this.xiaflag = true
2024-10-17 17:14:57 +08:00
uni.hideLoading()
2024-05-10 17:37:36 +08:00
}
2024-05-13 15:32:48 +08:00
})
2024-05-10 17:37:36 +08:00
},
changeGp(item, index) {
2024-10-06 18:03:09 +08:00
// console.log(item);
2024-07-12 18:13:59 +08:00
this.pagenum = 1
2024-05-10 17:37:36 +08:00
this.showfz = false
if (item == 1) {
this.getDeviceList()
} else {
2024-05-21 10:49:02 +08:00
if (item.storeId == null) {
2024-05-13 15:32:48 +08:00
this.pagenum = 1
2024-07-12 18:13:59 +08:00
// this.wateringList = []
2024-05-13 15:32:48 +08:00
this.$u.get(`/app/device/list?pageNum=${this.pagenum}&pageSize=${this.pagesize}`).then((res) => {
if (res.code == 200) {
this.total = res.total
if (res.rows.length > 0) {
// 有数据,追加到列表
2024-07-12 18:13:59 +08:00
// this.wateringList = this.wateringList.concat(res.rows)
// this.pagenum++
this.shujuflag = false
uni.hideLoading()
2024-05-13 15:32:48 +08:00
} else {
// 没有更多数据
2024-07-12 18:13:59 +08:00
this.shujuflag = true
uni.hideLoading()
}
if (this.pagenum > 1) {
this.wateringList = this.wateringList.concat(res.rows)
2024-07-12 18:13:59 +08:00
this.shujuflag = false
} else {
this.wateringList = res.rows
2024-05-13 15:32:48 +08:00
}
2024-07-12 18:13:59 +08:00
this.pagenum++
2024-06-04 17:50:05 +08:00
this.isLoading = false
2024-05-10 17:37:36 +08:00
}
2024-06-04 17:50:05 +08:00
})
2024-05-21 10:49:02 +08:00
} else {
2024-05-13 15:32:48 +08:00
this.pagenum = 1
2024-07-12 18:13:59 +08:00
// this.wateringList = []
2024-08-02 18:00:50 +08:00
this.$u.get(`/app/device/list?storeId=${item.storeId}&pageNum=${this.pagenum}&pageSize=${this.pagesize}`).then((res) => {
2024-05-13 15:32:48 +08:00
if (res.code == 200) {
this.total = res.total
2024-07-11 18:02:47 +08:00
// if(this.pagenum > 1){
// this.wateringList = this.wateringList.concat(res.rows)
// }else{
// this.wateringList = res.rows
// }
2024-05-13 15:32:48 +08:00
if (res.rows.length > 0) {
// 有数据,追加到列表
2024-07-12 18:13:59 +08:00
// this.wateringList = this.wateringList.concat(res.rows)
// this.pagenum++
this.shujuflag = false
uni.hideLoading()
2024-05-13 15:32:48 +08:00
} else {
// 没有更多数据
2024-07-12 18:13:59 +08:00
this.shujuflag = true
uni.hideLoading()
2024-05-13 15:32:48 +08:00
}
if (this.pagenum > 1) {
this.wateringList = this.wateringList.concat(res.rows)
2024-07-12 18:13:59 +08:00
this.shujuflag = false
} else {
this.wateringList = res.rows
2024-07-12 18:13:59 +08:00
}
this.pagenum++
2024-06-04 17:50:05 +08:00
this.isLoading = false
2024-05-13 15:32:48 +08:00
}
2024-06-04 17:50:05 +08:00
})
2024-05-13 15:32:48 +08:00
}
2024-05-10 17:37:36 +08:00
}
},
tosetpage() {
this.showfz = false
uni.navigateTo({
2024-05-11 13:33:17 +08:00
url: '/page_user/fenzu'
2024-05-10 17:37:36 +08:00
})
},
// 点击更换用户模式
confirm(e) {
let type = e[0].value
if (type == '1') {
this.scanQRCode()
} else if (type == '2') {
uni.navigateTo({
2024-05-10 19:51:14 +08:00
url: '/page_fenbao/device/index'
2024-05-10 17:37:36 +08:00
})
}
// console.log(e);
// this.mode = e[0].label
// this.gettype()
},
logins() {
2024-03-25 19:46:07 +08:00
if (uni.getStorageSync('userType')) {
this.userType = uni.getStorageSync('userType')
2024-05-10 17:37:36 +08:00
this.userType = '01'
2024-03-25 19:46:07 +08:00
if (this.userType == '01') {
this.getDeviceList()
} else if (this.userType == '00') {
this.getdevice()
}
} else {
2024-05-10 17:37:36 +08:00
2024-03-25 19:46:07 +08:00
}
this.getuserinfo()
},
// 点击搜索附近设备进行跳转
btnserch() {
uni.navigateTo({
2024-05-10 19:51:14 +08:00
url: '/page_fenbao/device/index'
2024-03-25 19:46:07 +08:00
})
},
2024-01-27 16:37:52 +08:00
async initChart() {
2024-03-13 10:54:22 +08:00
let value = 100;
let value2 = this.deviceInfo.surplusElectriQuantity
const option = {
// backgroundColor:"#061740",
title: {
show: false,
text: `历史请求满意度`, // 图表标题
x: 'center',
y: '20',
textStyle: {
color: '#333', //'#fff',
fontSize: 20,
},
},
series: [{
type: 'pie', // 饼图类型
radius: ['98%', '70%'], // 饼图半径,第一个值是内半径,第二个值是外半径
silent: true,
clockwise: true,
startAngle: 90, // 起始角度
z: 0,
zlevel: 0,
data: [{
value: value,
name: '占比', // 数据项名称
itemStyle: {
normal: {
color: '#8883F0', // 数据项颜色
},
},
label: {
normal: {
position: 'center',
formatter: ` {a|${value2}}\n\n{b|剩余电量}`, // 标签内容格式
rich: {
a: {
fontSize: 15,
fontWeight: '700',
color: '#333',
},
b: {
fontSize: 11,
color: '#888',
},
},
},
},
},
{
value: 100 - value,
name: '',
label: {
normal: {
show: false,
},
},
itemStyle: {
normal: {
color: '#173164',
},
},
},
],
},
{
type: 'gauge', // 仪表盘类型
radius: '130%', // 仪表盘半径,占图表容器的百分比
center: ['50%', '50%'], // 仪表盘中心位置
startAngle: 359,
endAngle: 359.9,
splitNumber: 2, // 刻度分割段数
hoverAnimation: true,
axisTick: {
show: true, // 是否显示刻度线
length: 10, // 刻度线长度
lineStyle: {
color: 'auto',
width: 1,
},
},
splitLine: {
length: 0, // 刻度线分隔线长度
lineStyle: {
width: 1,
color: '#061740',
},
},
axisLabel: {
show: false, // 是否显示刻度标签
},
pointer: {
show: false, // 是否显示指针
},
axisLine: {
lineStyle: {
opacity: 0,
},
},
detail: {
show: false, // 是否显示仪表盘详情
},
data: [{
value: 0,
name: '',
}, ],
},
],
};
2024-07-18 18:06:40 +08:00
const chart = await this.$refs.chart.init(echarts)
2024-01-27 16:37:52 +08:00
chart.setOption(option)
return chart
},
2024-03-13 10:54:22 +08:00
// 获取设备详情
2024-03-25 19:46:07 +08:00
getDevice() {
2024-03-13 10:54:22 +08:00
this.$u.get("app/device/1").then((res) => {
2024-03-25 19:46:07 +08:00
// this.$forceUpdate()
2024-03-13 10:54:22 +08:00
if (res.code == 200) {
2024-03-25 19:46:07 +08:00
this.deviceInfo = res.data
this.loadings = true
2024-03-13 10:54:22 +08:00
}
})
2024-03-13 10:54:22 +08:00
},
2024-03-25 19:46:07 +08:00
getuserinfo() {
2024-03-13 10:54:22 +08:00
this.$u.get("/app/user/userInfo").then((res) => {
2024-03-25 19:46:07 +08:00
// this.$forceUpdate()
2024-03-13 10:54:22 +08:00
if (res.code == 200) {
2024-07-18 18:06:40 +08:00
// uni.setStorageSync('userType', res.data.userType)
2024-03-25 19:46:07 +08:00
this.userType = res.data.userType
2024-08-02 18:00:50 +08:00
this.isMch = res.data.isMch
2024-03-25 19:46:07 +08:00
if (this.userType == '01') {
2024-03-13 10:54:22 +08:00
this.getDeviceList()
2024-03-25 19:46:07 +08:00
} else if (this.userType == '00') {
2024-03-13 10:54:22 +08:00
this.getdevice()
}
2024-05-10 17:37:36 +08:00
} else {
2024-03-25 19:46:07 +08:00
this.jmlogin()
2024-03-13 10:54:22 +08:00
}
2024-06-04 17:50:05 +08:00
})
2024-03-13 10:54:22 +08:00
},
2024-05-10 17:37:36 +08:00
jmlogin() {
let taht = this
2024-03-25 19:46:07 +08:00
wx.login({
2024-05-10 17:37:36 +08:00
success(res) {
if (res.code) {
let data = {
loginCode: res.code,
2024-06-04 17:50:05 +08:00
}
2024-05-10 17:37:36 +08:00
taht.$u.post('/app/auth/wxLogin', data).then(res => {
if (res.code == 10003) {
uni.navigateTo({
url: '/pages/login/login'
})
} else if (res.code == 200) {
uni.setStorageSync('token', res.token)
2024-05-10 17:37:36 +08:00
taht.logins()
}
})
2024-05-10 17:37:36 +08:00
}
},
})
2024-03-25 19:46:07 +08:00
},
getDeviceList() {
2024-03-13 10:54:22 +08:00
this.$u.get("/app/device/list").then((res) => {
2024-03-25 19:46:07 +08:00
// this.$forceUpdate()
2024-03-13 10:54:22 +08:00
if (res.code == 200) {
2024-05-10 17:37:36 +08:00
this.deviceList = res.rows.filter(row => row.isDefault === true)
// console.log(this.deviceList)
2024-05-10 17:37:36 +08:00
this.total = res.total
2024-03-25 19:46:07 +08:00
if (this.deviceList == '') {
this.addflag = true
this.sbflag = false
} else {
this.addflag = false
this.sbflag = true
}
2024-05-10 17:37:36 +08:00
}
})
2024-03-13 10:54:22 +08:00
},
2024-03-25 19:46:07 +08:00
swiperchange(e) {
this.shuaxin = false
2024-05-24 16:48:42 +08:00
this.pagenum = 1
2024-03-25 19:46:07 +08:00
this.curtitidx = e.detail.current
2024-05-24 16:48:42 +08:00
this.storeId = this.groupLists[this.curtitidx].storeId
2024-03-13 10:54:22 +08:00
},
2024-05-21 10:49:02 +08:00
2024-03-25 19:46:07 +08:00
getdevice() {
2024-03-13 10:54:22 +08:00
this.$u.get("/app/device/tenant").then((res) => {
2024-07-18 18:06:40 +08:00
this.deviceInfo = res.rows.find(item => item.isDefault === true)
2024-05-10 17:37:36 +08:00
if (this.deviceInfo == undefined) {
this.addflag = true
this.sbflag = false
} else {
this.addflag = false
this.sbflag = true
}
2024-07-18 18:06:40 +08:00
uni.setStorageSync('deviceId', this.deviceInfo.deviceId)
2024-05-11 13:33:17 +08:00
// this.initChart()
2024-05-10 17:37:36 +08:00
this.order()
})
2024-03-13 10:54:22 +08:00
},
2024-03-25 19:46:07 +08:00
changeidx(index) {
2024-07-12 18:13:59 +08:00
this.pagenum = 1
2024-03-25 19:46:07 +08:00
this.curtitidx = index
},
// 点击导航栏回到首页
btnshouye() {
uni.reLaunch({
url: '/pages/shouye/index'
})
},
2024-05-21 10:49:02 +08:00
2024-03-25 19:46:07 +08:00
toydfx() {
uni.navigateTo({
2024-05-10 19:51:14 +08:00
url: "/page_components/eletj"
2024-03-25 19:46:07 +08:00
})
2024-03-13 10:54:22 +08:00
},
2024-03-25 19:46:07 +08:00
todetail(id) {
2024-03-13 10:54:22 +08:00
uni.navigateTo({
2024-05-21 10:49:02 +08:00
url: '/page_user/sbdetail?id=' + id
2024-03-13 10:54:22 +08:00
})
},
2024-03-25 19:46:07 +08:00
// 跳转到抄表
2024-05-10 17:37:36 +08:00
tochaobiao() {
2024-03-13 10:54:22 +08:00
uni.navigateTo({
2024-05-10 17:37:36 +08:00
url: '/page_user/cbRecord'
2024-03-13 10:54:22 +08:00
})
},
2023-11-27 09:57:03 +08:00
}
}
</script>
2024-01-27 16:37:52 +08:00
<style lang="scss">
2024-07-29 18:03:40 +08:00
.shuaxin {
width: 100%;
2024-07-27 18:43:42 +08:00
height: 110rpx;
z-index: 99;
2024-07-29 18:03:40 +08:00
// animation: fadeIn 1s forwards;
2024-07-27 18:43:42 +08:00
text-align: center;
image {
width: 80rpx;
height: 80rpx;
2024-07-29 18:03:40 +08:00
// transform: translateX(-50%);
// animation: spin 1s linear infinite;
}
2024-07-27 18:43:42 +08:00
view {
// width: 100%;
height: 80rpx;
font-size: 30rpx;
}
}
@keyframes spin {
from {
transform: rotate(360deg);
}
to {
transform: rotate(0deg);
}
}
@keyframes fadeIn {
from {
opacity: 0.4;
}
to {
opacity: 1;
}
}
.saoyisao {
width: 90rpx;
height: 90rpx;
position: fixed;
bottom: 240rpx;
right: 60rpx;
z-index: 99;
}
.title {
padding-left: 32rpx;
font-size: 40rpx;
color: #fff;
margin-bottom: 30rpx;
padding-top: 110rpx;
height: 200rpx;
background-color: #8883F0;
text {
2024-08-02 18:00:50 +08:00
padding-left: 27%;
}
}
2024-06-04 14:50:30 +08:00
/deep/ .u-title {
2024-06-03 16:47:25 +08:00
padding-bottom: 22rpx;
2024-05-24 16:48:42 +08:00
}
2024-06-04 14:50:30 +08:00
/deep/ .u-icon__icon {
2024-06-03 16:47:25 +08:00
padding-bottom: 22rpx;
2024-05-24 16:48:42 +08:00
}
2024-09-05 18:00:53 +08:00
.bluetoothbox {
width: 100%;
height: 100vh;
background-color: #f4f1f6;
position: fixed;
top: 0;
left: 0;
z-index: 99;
text-align: center;
.img {
margin-top: 400rpx;
width: 320rpx;
height: 320rpx;
}
.one {
font-size: 36rpx;
color: #000;
}
.two {
margin-top: 30rpx;
font-size: 24rpx;
color: #ccc;
}
.thr {
margin-top: 30rpx;
font-size: 28rpx;
color: #ccc;
}
.anfour {
display: flex;
margin-top: 30rpx;
justify-content: space-between;
padding: 0 220rpx;
box-sizing: border-box;
.qx {
width: 100rpx;
height: 70rpx;
line-height: 70rpx;
text-align: center;
border: 1px solid #3D3D3D;
border-radius: 10rpx;
}
.cx {
width: 200rpx;
height: 70rpx;
line-height: 70rpx;
text-align: center;
background-color: #8883F0;
color: #fff;
border-radius: 10rpx;
}
}
.stop {
font-size: 36rpx;
color: #000;
margin-top: 380rpx;
}
.xtop {
margin-top: 30rpx;
font-size: 24rpx;
color: #ccc;
}
.xqx {
width: 530rpx;
height: 90rpx;
line-height: 90rpx;
border-radius: 20rpx;
text-align: center;
background-color: #fff;
margin: auto;
margin-top: 200rpx;
}
image {
width: 500rpx;
height: 500rpx;
margin-top: 100rpx;
}
}
2024-03-13 10:54:22 +08:00
page {
background-color: #F7FAFE;
2024-05-24 16:48:42 +08:00
height: 100%;
position: fixed;
top: 0;
left: 0;
2024-03-13 10:54:22 +08:00
}
.activewzgl {
2024-07-22 18:03:27 +08:00
color: #ccc !important;
}
2024-03-13 10:54:22 +08:00
.page {
2024-05-24 16:48:42 +08:00
height: 100%;
2024-05-10 17:37:36 +08:00
padding-bottom: 200rpx;
overflow: hidden;
2024-05-21 10:49:02 +08:00
.tip_box {
2024-05-10 17:37:36 +08:00
position: fixed;
left: 72rpx;
top: 788rpx;
width: 610rpx;
background: #F7FAFE;
border-radius: 30rpx 30rpx 30rpx 30rpx;
z-index: 10000000;
2024-05-21 10:49:02 +08:00
.top {
2024-05-10 17:37:36 +08:00
padding: 52rpx 38rpx 42rpx 36rpx;
2024-05-21 10:49:02 +08:00
.txt {
2024-05-10 17:37:36 +08:00
width: 100%;
text-align: center;
font-weight: 500;
font-size: 32rpx;
color: #3D3D3D;
}
}
2024-05-21 10:49:02 +08:00
.bot {
border-top: 2rpx solid #D8D8D8;
2024-05-10 17:37:36 +08:00
display: flex;
flex-wrap: nowrap;
height: 100%;
2024-05-21 10:49:02 +08:00
.bot_left {
2024-05-10 17:37:36 +08:00
width: 50%;
height: 98rpx;
display: flex;
align-items: center;
justify-content: center;
font-weight: 500;
font-size: 36rpx;
color: #3D3D3D;
}
2024-05-21 10:49:02 +08:00
.bot_right {
2024-05-10 17:37:36 +08:00
width: 50%;
height: 98rpx;
display: flex;
align-items: center;
justify-content: center;
2024-05-21 10:49:02 +08:00
border-left: 2rpx solid #D8D8D8;
2024-05-10 17:37:36 +08:00
font-weight: 500;
font-size: 36rpx;
color: #4C97E7;
2024-05-21 10:49:02 +08:00
2024-05-10 17:37:36 +08:00
}
2024-05-21 10:49:02 +08:00
2024-05-10 17:37:36 +08:00
}
}
2024-05-21 10:49:02 +08:00
2024-03-25 19:46:07 +08:00
.noDevice {
2024-03-13 10:54:22 +08:00
margin-top: 432rpx;
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
2024-03-25 19:46:07 +08:00
.img_box {
2024-03-13 10:54:22 +08:00
width: 100%;
2024-01-27 16:37:52 +08:00
display: flex;
2024-03-13 10:54:22 +08:00
flex-wrap: wrap;
justify-content: center;
2024-03-25 19:46:07 +08:00
image {
2024-03-13 10:54:22 +08:00
width: 252rpx;
height: 252rpx;
2024-01-27 16:37:52 +08:00
}
2024-03-25 19:46:07 +08:00
.tps {
2024-03-13 10:54:22 +08:00
margin-top: 4rpx;
width: 100%;
text-align: center;
font-weight: 700;
font-size: 32rpx;
color: #BDBCBC;
2024-01-27 16:37:52 +08:00
}
}
2024-03-25 19:46:07 +08:00
.addbutn {
2024-03-13 10:54:22 +08:00
margin-top: 32rpx;
2024-01-27 16:37:52 +08:00
display: flex;
2024-03-13 10:54:22 +08:00
align-items: center;
justify-content: center;
width: 266rpx;
height: 96rpx;
background: #8883F0;
border-radius: 16rpx;
font-weight: 500;
font-size: 36rpx;
color: #FFFFFF;
}
2024-03-25 19:46:07 +08:00
.tip {
2024-03-13 10:54:22 +08:00
margin-top: 30rpx;
width: 100%;
text-align: center;
font-weight: 400;
font-size: 40rpx;
color: #BDBCBC;
}
}
2024-03-25 19:46:07 +08:00
2024-03-13 10:54:22 +08:00
.zhuhu {
margin-top: 20rpx;
padding: 0 40rpx;
.card1 {
padding: 34rpx 0 0 40rpx;
width: 670rpx;
height: 583rpx;
background: #FFFFFF;
box-shadow: 0rpx 14rpx 35rpx 0rpx rgba(53, 140, 255, 0.1);
border-radius: 28rpx 28rpx 28rpx 28rpx;
.top {
2024-01-27 16:37:52 +08:00
display: flex;
2024-03-13 10:54:22 +08:00
flex-wrap: nowrap;
justify-content: space-between;
align-items: center;
.left {
font-size: 35rpx;
2024-01-27 16:37:52 +08:00
font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
font-weight: 400;
2024-03-13 10:54:22 +08:00
color: #8883F0;
2024-01-27 16:37:52 +08:00
}
2024-03-13 10:54:22 +08:00
.right {
margin-right: 56rpx;
2024-05-10 17:37:36 +08:00
.imgs {
width: 94rpx;
height: 94rpx;
vertical-align: bottom;
}
2024-03-13 10:54:22 +08:00
.img1 {
width: 76rpx;
height: 76rpx;
}
}
}
.mid {
margin-top: 54rpx;
display: flex;
flex-wrap: nowrap;
align-content: flex-start;
.mid_left {
image {
width: 37rpx;
height: 98rpx;
}
}
.mid_right {
margin-left: 40rpx;
2024-01-27 16:37:52 +08:00
display: flex;
2024-03-13 10:54:22 +08:00
flex-wrap: wrap;
.mid_top {
width: 100%;
font-size: 42rpx;
2024-01-27 16:37:52 +08:00
font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
font-weight: 400;
2024-03-13 10:54:22 +08:00
color: #262B37;
2024-01-27 16:37:52 +08:00
}
2024-03-13 10:54:22 +08:00
.mid_bot {
2024-01-27 16:37:52 +08:00
display: flex;
2024-03-13 10:54:22 +08:00
flex-wrap: nowrap;
2024-01-27 16:37:52 +08:00
align-items: center;
2024-03-13 10:54:22 +08:00
.txt {
2024-06-05 18:07:50 +08:00
font-size: 26rpx;
2024-03-13 10:54:22 +08:00
font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
font-weight: 400;
color: #95989D;
}
.tip {
display: flex;
align-items: center;
justify-content: center;
margin-left: 19rpx;
width: 38rpx;
height: 23rpx;
background: rgba(204, 204, 204, 0);
opacity: 1;
border: 2rpx solid #8883F0;
border-radius: 40rpx;
font-size: 14rpx;
font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
font-weight: 400;
color: #8883F0;
}
2024-01-27 16:37:52 +08:00
}
}
}
2024-03-13 10:54:22 +08:00
.bot {
margin-top: 83rpx;
display: flex;
flex-wrap: nowrap;
align-items: center;
.bot_left {
2024-01-27 16:37:52 +08:00
width: 210rpx;
height: 190.14rpx;
2024-03-25 19:46:07 +08:00
margin-right: 34rpx;
2024-03-13 10:54:22 +08:00
.echarts {
width: 210rpx;
height: 190.14rpx;
}
2024-01-27 16:37:52 +08:00
}
2024-03-13 10:54:22 +08:00
.bot_right {
display: flex;
flex-wrap: nowrap;
.cont {
.tit {
font-size: 28rpx;
font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
font-weight: 600;
color: #262B37;
line-height: 49rpx;
}
.txt {
2024-06-05 18:07:50 +08:00
font-size: 26rpx;
2024-03-13 10:54:22 +08:00
font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
font-weight: 400;
color: #262B37;
}
}
}
}
}
.card2 {
padding-top: 40rpx;
margin-top: 24rpx;
width: 670rpx;
height: 254rpx;
background: #FFFFFF;
box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(53, 140, 255, 0.1);
border-radius: 28rpx;
.tit {
margin-left: 40rpx;
font-size: 35rpx;
font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
font-weight: 400;
color: #8883F0;
2024-01-27 16:37:52 +08:00
}
2024-03-13 10:54:22 +08:00
.cont_box {
margin-top: 32rpx;
2024-01-27 16:37:52 +08:00
display: flex;
flex-wrap: nowrap;
2024-03-13 10:54:22 +08:00
justify-content: space-around;
2024-03-25 19:46:07 +08:00
text-align: center;
2024-03-13 10:54:22 +08:00
.cont {
width: 110rpx;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
.top {
font-size: 32rpx;
2024-01-27 16:37:52 +08:00
font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
2024-03-13 10:54:22 +08:00
font-weight: 400;
2024-01-27 16:37:52 +08:00
color: #262B37;
2024-03-25 19:46:07 +08:00
width: 110rpx;
2024-01-27 16:37:52 +08:00
}
2024-03-13 10:54:22 +08:00
.bot {
margin-top: 20rpx;
2024-06-05 18:07:50 +08:00
font-size: 26rpx;
2024-01-27 16:37:52 +08:00
font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
font-weight: 400;
color: #262B37;
}
}
}
}
2024-03-13 10:54:22 +08:00
.card3 {
padding-top: 40rpx;
margin-top: 24rpx;
width: 670rpx;
height: 318rpx;
background: #FFFFFF;
box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(53, 140, 255, 0.1);
border-radius: 28rpx;
.tit {
margin-left: 40rpx;
font-size: 35rpx;
font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
font-weight: 400;
color: #8883F0;
}
.cont_box {
margin-top: 32rpx;
2024-01-27 16:37:52 +08:00
display: flex;
2024-03-13 10:54:22 +08:00
flex-wrap: nowrap;
2024-05-10 17:37:36 +08:00
padding-left: 50rpx;
2024-03-25 19:46:07 +08:00
box-sizing: border-box;
2024-05-10 17:37:36 +08:00
2024-03-13 10:54:22 +08:00
.cont {
2024-03-25 19:46:07 +08:00
width: 100rpx;
2024-03-13 10:54:22 +08:00
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
2024-05-10 17:37:36 +08:00
margin-right: 40rpx;
2024-03-13 10:54:22 +08:00
.top {
image {
width: 56rpx;
height: 56rpx;
}
}
.bot {
margin-top: 28rpx;
font-size: 28rpx;
font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
font-weight: 400;
color: #808080;
}
2024-01-27 16:37:52 +08:00
}
}
}
2024-03-13 10:54:22 +08:00
.button {
margin-left: 76rpx;
margin-top: 178rpx;
display: flex;
justify-content: center;
align-items: center;
width: 520rpx;
height: 104rpx;
background: #8883F0;
box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(42, 130, 228, 0.1);
border-radius: 52rpx 52rpx 52rpx 52rpx;
font-size: 32rpx;
2024-01-27 16:37:52 +08:00
font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
font-weight: 400;
2024-03-13 10:54:22 +08:00
color: #FFFFFF;
2024-01-27 16:37:52 +08:00
}
2024-03-13 10:54:22 +08:00
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
2024-03-25 19:46:07 +08:00
.fd {
2024-03-13 10:54:22 +08:00
margin-top: 20rpx;
padding: 0 40rpx;
padding-bottom: 200rpx;
height: 100%;
2024-05-10 17:37:36 +08:00
.fz {
margin: 0 -40rpx;
position: fixed;
bottom: 0;
width: 750rpx;
2024-07-27 18:43:42 +08:00
height: 830rpx;
2024-05-10 17:37:36 +08:00
background: #F7FAFE;
border-radius: 30rpx 30rpx 0 0;
z-index: 10071;
2024-07-27 18:43:42 +08:00
opacity: 0;
animation-name: fadeIn;
animation-duration: 1s;
animation-fill-mode: forwards;
2024-05-10 17:37:36 +08:00
.fz_top {
margin: 18rpx 0 auto;
display: flex;
flex-wrap: nowrap;
justify-content: space-between;
.icon-shanchu {
margin-left: 40rpx;
font-size: 50rpx;
}
.tit {
font-size: 36rpx;
font-family: Source Han Sans, Source Han Sans;
font-weight: 400;
color: #000000;
}
.txt {
margin-right: 40rpx;
font-size: 36rpx;
font-family: Source Han Sans, Source Han Sans;
font-weight: 400;
color: #2A82E4;
}
}
.card_cont {
width: 750rpx;
2024-05-21 18:02:34 +08:00
padding-left: 30rpx;
2024-05-13 15:32:48 +08:00
height: 100%;
2024-05-10 17:37:36 +08:00
overflow-y: auto;
overflow-x: hidden;
.cards {
margin-top: 32rpx;
display: flex;
flex-wrap: nowrap;
align-items: center;
justify-content: space-between;
padding: 0 40rpx;
width: 682rpx;
border-radius: 30rpx;
height: 114rpx;
background: #FFFFFF;
box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(42, 130, 228, 0.1);
.txt {
font-size: 36rpx;
font-family: Source Han Sans, Source Han Sans;
font-weight: 400;
color: #000000;
}
.num {
font-size: 36rpx;
font-family: Source Han Sans, Source Han Sans;
font-weight: 400;
color: #000000;
}
}
}
}
2024-03-25 19:46:07 +08:00
.fd_top {
2024-01-27 16:37:52 +08:00
display: flex;
flex-wrap: nowrap;
2024-03-13 10:54:22 +08:00
align-items: center;
2024-06-04 14:50:30 +08:00
2024-05-24 16:48:42 +08:00
.fd_da {
width: 600rpx;
overflow: hidden;
overflow-x: auto;
white-space: nowrap;
-ms-overflow-style: none;
/* 去除IE和Edge的默认滚动条 */
scrollbar-width: none;
2024-06-04 14:50:30 +08:00
2024-05-24 16:48:42 +08:00
/* 去除Firefox的默认滚动条 */
&::-webkit-scrollbar {
display: none;
}
2024-03-25 19:46:07 +08:00
2024-05-24 16:48:42 +08:00
.fd_lt {
display: flex;
2024-06-04 14:50:30 +08:00
transition: transform 0.3s ease;
padding-top: 10rpx;
2024-05-24 16:48:42 +08:00
.fd_tit {
text-align: center;
2024-06-04 14:50:30 +08:00
padding: 0 15rpx;
2024-05-24 16:48:42 +08:00
box-sizing: border-box;
2024-06-04 14:50:30 +08:00
font-size: 34rpx;
2024-05-24 16:48:42 +08:00
font-weight: 400;
color: #666;
}
}
2024-03-13 10:54:22 +08:00
}
2024-03-25 19:46:07 +08:00
.act1 {
2024-06-04 14:50:30 +08:00
font-size: 36rpx !important;
2024-05-24 16:48:42 +08:00
font-weight: 700 !important;
color: #000000 !important;
2024-03-13 10:54:22 +08:00
}
2024-03-25 19:46:07 +08:00
2024-05-24 16:48:42 +08:00
2024-05-10 17:37:36 +08:00
.right {
2024-03-13 10:54:22 +08:00
margin-left: auto;
2024-05-10 17:37:36 +08:00
display: flex;
flex-wrap: nowrap;
align-items: center;
.fd_set {
font-size: 60rpx;
}
.icon-liebiao {
margin-top: 10rpx;
margin-left: 20rpx;
font-size: 40rpx;
}
2024-03-13 10:54:22 +08:00
}
2024-05-10 17:37:36 +08:00
2024-03-13 10:54:22 +08:00
}
2024-06-04 14:50:30 +08:00
.shebei {
2024-05-24 16:48:42 +08:00
width: 750rpx;
height: 100vh;
position: fixed;
top: 0;
left: 0;
text-align: center;
padding-top: 300rpx;
font-size: 32rpx;
color: #ccc;
}
2024-03-25 19:46:07 +08:00
.swiper {
2024-06-04 14:50:30 +08:00
2024-07-27 18:43:42 +08:00
.swiper_item {
2024-05-24 16:48:42 +08:00
height: 100vh;
overflow-y: auto;
padding-bottom: 660rpx;
2024-06-04 14:50:30 +08:00
2024-03-25 19:46:07 +08:00
.card_box {
2024-03-13 10:54:22 +08:00
margin-top: 34rpx;
display: flex;
flex-wrap: wrap;
2024-03-25 19:46:07 +08:00
.card {
2024-03-13 10:54:22 +08:00
display: flex;
2024-09-29 19:32:37 +08:00
// margin-top: 20rpx;
2024-03-13 10:54:22 +08:00
width: 658rpx;
2024-07-12 18:13:59 +08:00
max-height: 300rpx;
padding-bottom: 20rpx;
box-sizing: border-box;
2024-03-13 10:54:22 +08:00
background: #fff;
2024-09-23 18:01:24 +08:00
// box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(255, 255, 255, 0);
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
2024-03-13 10:54:22 +08:00
border-radius: 24rpx 24rpx 24rpx 24rpx;
2024-03-25 19:46:07 +08:00
.card_left {
2024-07-22 18:03:27 +08:00
width: 100%;
margin-top: 20rpx;
2024-03-13 10:54:22 +08:00
margin-left: 50rpx;
2024-03-25 19:46:07 +08:00
.card_left_tit {
2024-09-29 19:32:37 +08:00
font-size: 36rpx;
2024-03-13 10:54:22 +08:00
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
2024-09-29 19:32:37 +08:00
font-weight: 600;
2024-03-13 10:54:22 +08:00
color: #8883F0;
}
2024-03-25 19:46:07 +08:00
.card_left_sta {
padding-top: 15rpx;
2024-03-25 19:46:07 +08:00
display: flex;
flex-wrap: nowrap;
align-items: center;
image {
width: 23.32rpx;
height: 36.47rpx;
}
.sta_txt {
2024-08-12 21:49:12 +08:00
// margin-left: 15rpx;
2024-03-25 19:46:07 +08:00
color: #262B37;
2024-06-05 18:07:50 +08:00
font-size: 26rpx;
2024-03-25 19:46:07 +08:00
font-family: HarmonyOS Sans SC, HarmonyOS Sans SC;
font-weight: 400;
}
2024-03-13 10:54:22 +08:00
}
2024-03-25 19:46:07 +08:00
.card_left_no {
padding-top: 15rpx;
2024-06-05 18:07:50 +08:00
font-size: 26rpx;
2024-03-13 10:54:22 +08:00
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
font-weight: 400;
color: #95989D;
}
}
2024-03-25 19:46:07 +08:00
.card_right {
2024-05-11 13:33:17 +08:00
margin-top: 30rpx;
2024-03-13 10:54:22 +08:00
margin-left: auto;
2024-05-11 13:33:17 +08:00
margin-right: 50rpx;
2024-05-21 10:49:02 +08:00
2024-03-25 19:46:07 +08:00
image {
2024-05-11 13:33:17 +08:00
width: 180rpx;
2024-06-13 18:02:12 +08:00
height: 180rpx;
2024-06-14 18:51:43 +08:00
border-radius: 10rpx;
2024-03-13 10:54:22 +08:00
}
}
2024-01-27 16:37:52 +08:00
}
}
}
}
2024-03-25 19:46:07 +08:00
}
}
.popup-content {
text-align: center;
text {
display: block;
}
.add {
margin-top: 10rpx;
font-size: 36rpx;
color: #000000;
line-height: 80rpx;
}
.saoma {
margin-top: 68rpx;
font-size: 40rpx;
color: #000000;
line-height: 54rpx;
border: 1px solid #ccc;
padding: 30rpx 0;
box-sizing: border-box;
}
.sousuo {
margin-top: 46rpx;
font-size: 40rpx;
color: #000000;
line-height: 54rpx;
border: 1px solid #ccc;
padding: 30rpx 0;
box-sizing: border-box;
2024-01-27 16:37:52 +08:00
}
}
2024-06-04 14:50:30 +08:00
</style>