<template> <view class="page"> <u-navbar title="设置" :border-bottom="false" :background="bgc" title-color='#2E4975' title-size='36' height='36'></u-navbar> <view class="card"> <view class="li" @click.stop="sremakemc()"> <view class="tit"> 设备名称 </view> <view class="info"> <view class="txt"> {{listobj.deviceName}} </view> <view class="iconfont icon-xiangyou1"></view> </view> </view> <view class="li" @click.stop="sremake()"> <view class="tit"> 备注 </view> <view class="info"> <view class="txt"> {{remake}} </view> <view class="iconfont icon-xiangyou1"></view> </view> </view> <view class="li" @click.stop="sremakes()"> <view class="tit"> 店铺名称 </view> <view class="info"> <view class="txt"> {{listobj.storeName}} </view> <view class="iconfont icon-xiangyou1"></view> </view> </view> <view class="li"> <view class="tit"> S/N </view> <view class="info"> <view class="txt"> {{listobj.deviceNo}} </view> </view> </view> <view class="li"> <view class="tit"> 类型 </view> <view class="info"> <view class="txt"> {{listobj.model}} </view> </view> </view> <view class="li"> <view class="tit"> Wifi配网 </view> <view class="info"> <view class="txt"> {{listobj.wifi}} </view> </view> </view> </view> <u-mask :show="showloading"></u-mask> <u-mask :show="showfz"></u-mask> <view class="fz" v-show="showfz"> <view class="fz_top"> <view class="iconfont icon-shanchu" @click="showfz=false"> </view> <view class="tit"> 设备分组 </view> <view class="txt" @click="tosetpage()"> 管理 </view> </view> <view class="card_cont"> <view class="cards" v-for="(item,index) in groupList" :key="index" @click="changeGp(item)"> <view class="txt"> {{item.groupName}} </view> <view class="num"> {{item.deviceCount}} </view> </view> <view class="zhanwei" style="width: 100%;height: 100rpx;"> </view> </view> </view> <view class="dd"> <u-select v-model="show" :list="list" title='欠费断电' @confirm="confirm"></u-select> </view> <u-popup v-model="showpopup" mode="center" border-radius='20'> <view class="popcard" v-if="showremake"> <view class="tit"> 修改备注 </view> <view class="ipt"> <u-input v-model="remake" placeholder=" " border='surround' placeholder-style='font-size: 24rpx;' /> </view> <view class="btnbox"> <view class="btn2" @click="close()"> 取消 </view> <view class="btn1" @click="sub(1)"> 确定 </view> </view> </view> <view class="popcard" v-if="showpeice"> <view class="tit"> 修改备注 </view> <view class="ipt"> <u-input v-model="price" placeholder=" " border='surround' placeholder-style='font-size: 24rpx;' /> </view> <view class="btnbox"> <view class="btn2" @click="close()"> 取消 </view> <view class="btn1" @click="sub(2)"> 确定 </view> </view> </view> </u-popup> <u-popup v-model="showmc" mode="center" border-radius='20'> <view class="popcard" v-if="showmc"> <view class="tit"> 修改名称 </view> <view class="ipt"> <u-input v-model="xgname" placeholder=" " border='surround' placeholder-style='font-size: 24rpx;' /> </view> <view class="btnbox"> <view class="btn2" @click="close()"> 取消 </view> <view class="btn1" @click="sub(3)"> 确定 </view> </view> </view> </u-popup> <view class="btn" @click="deldevice()"> 解除绑定 </view> <!-- 选择店铺 --> <u-select v-model="showshop" :list="wateringList" @confirm="confirms"></u-select> </view> </template> <script> export default { data() { return { bgc: { backgroundColor: "#F7FAFE", }, showloading: false, showfz: false, show: false, showshop: false, list: [{ value: '1', label: '欠费立即断电' }, { value: '0', label: '欠费不断电' } ], id: '', xgname:'', deviceInfo: {}, groupList: {}, showpopup: false, remake: '', price: '', showpeice: false, showremake: false, listobj: { deviceName:'', storeName:'', deviceNo:'', model:'', wifi:'', }, showmc:false, pagenum: 1, wateringList: [], pagesize: 10, isLoading: false, noMoreData: false, total: 0 } }, onLoad(option) { let id = option.id this.id = id this.getDevice(id) this.getlistobj(id) this.gettanc() }, onShow() { this.getgroup() }, methods: { sremakes() { this.showshop = true }, confirms(e){ console.log(e); let data = { deviceId: this.id, storeId:e[0].value } this.putdevice(data) setTimeout(()=>{ this.getlistobj(this.id) },1000) }, gettanc(){ 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.wateringList = this.wateringList.concat(arr) this.wateringList = this.wateringList.slice(1) this.pagenum++ console.log(this.wateringList); } else { // 没有更多数据 this.noMoreData = true; } this.isLoading = false; } }) }, onReachBottom() { let sum = this.total / this.pagesize if (this.pagenum - 1 < sum) { this.getlist(); // 上拉加载更多 } else { uni.showToast({ title: '没有更多订单记录了', icon: 'none', duration: 1000 }); } }, changeGp(item) { let data = { deviceId: this.id, groupId: item.groupId } this.putdevice(data) this.showfz = false setTimeout(() => { this.getgroup() }, 1000) }, tosetpage() { this.showfz = false uni.navigateTo({ url: '/page_user/fenzu' }) }, sub(num) { if (num == 1) { let data = { deviceId: this.id, remark: this.remake } this.showpopup = false this.showremake = false this.putdevice(data) } else if (num == 2) { let data = { deviceId: this.id, price: this.price, } this.showpopup = false this.showpeice = false this.showmc = false this.putdevice(data) }else if(num == 3){ console.log(this.xgname); let data = { deviceId: this.id, deviceName: this.xgname, } this.showpopup = false this.showpeice = false this.showmc = false this.putdevice(data) setTimeout(()=>{ this.getlistobj(this.id) },1000) } }, deldevice() { this.$u.delete(`/app/device/mch/unbind/${this.id}`).then((res) => { if (res.code == 200) { uni.showToast({ title: '解除成功', icon: 'none', duration: 2000 }); uni.navigateBack({ delta: 1 // 返回上级页面 }); } }) }, confirm(e) { let data = { deviceId: this.id, outageWay: e[0].value } this.putdevice(data) }, putdevice(data) { this.$u.put('/app/device', data).then((res) => { if (res.code == 200) { this.getDevice() uni.showToast({ title: '修改成功', icon: 'none', duration: 2000 }); } }) }, sremakemc(){ console.log(1); this.showmc = true this.xgname = this.listobj.deviceName }, sremake() { this.showpopup = true this.showremake = true }, sprice() { this.showpopup = true this.showpeice = true }, close() { this.showpeice = false this.showremake = false this.showpopup = false this.showmc = false }, getDevice(id) { this.$u.get("/app/device/" + this.id).then((res) => { // this.$forceUpdate() if (res.code == 200) { this.deviceInfo = res.data console.log(this.deviceInfo, 'resres'); this.price = this.deviceInfo.price this.remake = this.deviceInfo.remark // this.loadings=true // this.initChart() } }); }, getgroup() { this.$u.get("/app/store/listCount").then((res) => { // this.$forceUpdate() if (res.code == 200) { this.groupList = res.data // this.loadings=true // this.initChart() } }); }, getlistobj(id) { this.$u.get("/app/device/" + id).then((res) => { if (res.code == 200) { this.listobj = res.data } }) } } } </script> <style lang="scss"> page { background-color: #F7FAFE; } .page { width: 750rpx; .popcard { display: flex; justify-content: center; flex-wrap: wrap; width: 550rpx; height: 400rpx; border-radius: 20rpx; .tit { display: flex; justify-content: center; width: 100%; align-items: center; font-size: 28rpx; font-weight: 700; } .ipt { margin-top: 60rpx; width: 80%; .u-input::placeholder { font-size: 20px; color: red; } } .btnbox { width: 100%; display: flex; flex-wrap: nowrap; border-radius: 0 0 20rpx 20rpx; .btn2 { display: flex; align-items: center; justify-content: center; width: 50%; font-size: 32rpx; font-family: HarmonyOS Sans SC, HarmonyOS Sans SC; font-weight: 400; color: #FFFFFF; background-color: #2A82E4; } .btn1 { display: flex; align-items: center; justify-content: center; width: 50%; font-size: 32rpx; font-family: HarmonyOS Sans SC, HarmonyOS Sans SC; font-weight: 400; color: #000; background-color: #fff; border: 1rpx solid #ccc; } } } .card { padding: 16rpx 38rpx; margin: 60rpx auto 0; width: 654rpx; background: #FFFFFF; border-radius: 30rpx; box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(42, 130, 228, 0.1); opacity: 1; .li { display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; height: 94rpx; border-bottom: #E5E5E5 solid 2rpx; .tit { font-size: 32rpx; font-family: HarmonyOS Sans SC, HarmonyOS Sans SC; font-weight: 400; color: #000000; } .info { display: flex; flex-wrap: nowrap; align-items: center; .txt { font-size: 32rpx; font-family: HarmonyOS Sans SC, HarmonyOS Sans SC; font-weight: 400; color: #95989D; } .icon-xiangyou1 { margin-left: 6rpx; color: #95989D; } } } } .btn { display: flex; align-items: center; justify-content: center; margin: 52rpx auto 0; width: 654rpx; height: 100rpx; background: #FF4F4F; box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(42, 130, 228, 0.1); opacity: 1; border-radius: 30rpx; font-size: 32rpx; font-family: HarmonyOS Sans SC, HarmonyOS Sans SC; font-weight: 400; color: #FFFFFF; } .fz { position: fixed; bottom: 0; width: 750rpx; height: 1152rpx; background: #F7FAFE; border-radius: 30rpx 30rpx 0 0; z-index: 10071; .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; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; height: 1030rpx; 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; } } } } } </style>