<template> <view class="page"> <u-navbar title="代理设置" :border-bottom="false" :background="bgc" back-icon-color="000" title-color='#000' title-size='36' height='50'></u-navbar> <view class="card"> <view class="icon"> <view class="tit"> 设备主图 </view> <view class="imgbox" v-if="userImgs"> <view style="border: 0;outline: none;width: 143rpx;padding-left: 0rpx;height: 143rpx;border-radius: 16rpx;margin: auto;" @click="getImage"> <image style="border-radius: 10rpx;" :src="userImgs" mode="aspectFit"></image> </view> </view> <view class="imgbox" v-else> <view style="border: 0;outline: none;width: 143rpx;padding-left: 0rpx;height: 143rpx;border-radius: 16rpx;margin: auto;" @click="getImage"> <image src="https://api.ccttiot.com/smartmeter/img/static/uY8CPw9YE6JxPzcHUaqf" mode="aspectFit"></image> </view> </view> <!-- 截图 --> <ksp-cropper mode="free" :width="142" :height="142" :maxWidth="1024" :maxHeight="1024" :url="url" @cancel="oncancel" @ok="onok"></ksp-cropper> </view> <view class="li" @click.stop="sremakemc()"> <view class="tit"> 服务费费率 </view> <view class="info"> <view class="txt"> {{listobj.agentServiceRate == undefined ? '--' : listobj.agentServiceRate + '%'}} </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 == null ? '' : remake}} </view> <view class="iconfont icon-xiangyou1"></view> </view> </view> --> <!-- @click.stop="sremakes()" --> <view class="li"> <view class="tit"> 所属商户 </view> <view class="info"> <view class="txt"> {{listobj.userName == null ? '' : listobj.userName}} </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 == null ? '' : listobj.deviceNo}} </view> </view> </view> <view class="li"> <view class="tit"> 类型 </view> <view class="info"> <view class="txt"> {{listobj.model == null ? '' : listobj.model}} </view> </view> </view> <view class="li" v-if="modelId.some(tag => tag == 2)" style="border-bottom: 0;"> <view class="tit"> WiFi名称 </view> <view class="info"> <view class="txt"> {{listobj.wifi == null || listobj.wifi == '创特物联TP' ? '--' : listobj.wifi}} </view> </view> </view> <view class="lis" @click="deldevice()"> 解除绑定 </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> <!-- 选择店铺 --> <u-select v-model="showshop" :list="wateringList" @confirm="confirms"></u-select> <view v-if="btnmsk" style="width: 100%;height: 100vh;position: fixed;top: 0;left: 0;background-color: #000;opacity: .1;z-index: 999;"></view> </view> </template> <script> export default { data() { return { btnmsk:false, bgc: { backgroundColor: "#fff", }, 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, userImgs:'', url:'', token:'', modelId:'' } }, onLoad(option) { let id = option.id this.id = id this.getshua() this.getQiniuToken() this.getDevice(id) this.getlistobj(id) this.gettanc() }, // 分享到好友(会话) onShareAppMessage: function () { return { title: '创想物联', path: '/pages/shouye/index' } }, // 分享到朋友圈 onShareTimeline: function () { return { title: '创想物联', query: '', path: '/pages/shouye/index' } }, onShow() { this.getgroup() }, methods: { getshua(){ this.$u.get(`/app/device/${this.id}/refreshIot`).then((res) => {}) }, getQiniuToken() { this.$u.get("/common/qiniu/uploadInfo").then((res) => { if (res.code == 200) { this.token = res.token } }) }, getImage() { uni.chooseImage({ count: 1, success: (rst) => { this.url = rst.tempFilePaths[0]; } }) }, onok(ev) { this.url = ""; this.path = ev.path; let _this = this let math = 'static/' + _this.$u.guid(20) wx.uploadFile({ url: 'https://up-z2.qiniup.com', name: 'file', filePath: _this.path, formData: { token: _this.token, //后端返回的token key: 'smartmeter/img/' + math }, success: function(res) { let str = JSON.parse(res.data) _this.userImgs = 'https://api.ccttiot.com/' + str.key let data = { deviceId:_this.id, customPicture:_this.userImgs } _this.$u.put('/app/device', data).then((res) => { if (res.code == 200) { // this.getDevice() uni.showToast({ title: '操作成功', icon: 'success', duration: 2000 }) } }) } }) }, oncancel() { // url设置为空,隐藏控件 this.url = "" }, sremakes() { this.showshop = true }, confirms(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) { console.log(this.remake) 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){ let data = { deviceId: this.id, agentServiceRate: this.xgname, } this.showpopup = false this.showpeice = false this.showmc = false this.putdevice(data) setTimeout(()=>{ this.getlistobj(this.id) },1000) } }, deldevice() { uni.showModal({ title: '确认解绑', content: '您确定要解绑设备吗?', success: (resModal) => { if (resModal.confirm) { this.btnmsk = true this.$u.delete(`/app/device/mch/unbind/${this.id}`).then((res) => { if (res.code == 200) { uni.showToast({ title: '解除成功', icon: 'success', duration: 2000 }) this.btnmsk = false uni.navigateBack({ delta: 2 // 返回上级页面 }) } else if(res.code == 500){ uni.showToast({ title: res.msg, icon: 'none', duration: 2000 }) this.btnmsk = false } }).catch((error) => { // 请求失败的处理逻辑 uni.showToast({ title: '请求失败', icon: 'none', duration: 2000 }) this.btnmsk = false }) } else if (resModal.cancel) { // 用户点击了取消按钮 uni.showToast({ title: '已取消', icon: 'none', duration: 1000 }) } } }); }, confirm(e) { let data = { deviceId: this.id, outageWay: e[0].value } this.putdevice(data) }, putdevice(data) { this.$u.put('/agent/device', data).then((res) => { if (res.code == 200) { this.getDevice() uni.showToast({ title: '修改成功', icon: 'success', duration: 2000 }) } }) }, sremakemc(){ // console.log(1); this.showmc = true this.xgname = this.listobj.agentServiceRate }, 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) => { if (res.code == 200) { this.deviceInfo = res.data console.log(this.deviceInfo, 'resres'); this.price = this.deviceInfo.price this.remake = this.deviceInfo.remark if(this.deviceInfo.customPicture == null){ this.userImgs = this.deviceInfo.picture }else{ this.userImgs = this.deviceInfo.customPicture } // 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 this.modelId = res.data.modelTags } }) } } } </script> <style lang="scss"> /deep/ .u-flex{ padding-top: 20rpx !important; box-sizing: border-box; } /deep/ .u-title{ padding-bottom: 22rpx; } /deep/ .u-icon__icon{ padding-bottom: 22rpx; } page { background-color: #F7FAFE; } .lis{ position: fixed; left: 50%; transform: translateX(-50%); bottom: 230rpx; width: 632rpx; height: 90rpx; background-color: #8883f0; text-align: center; line-height: 90rpx; font-size: 36rpx; color: #fff; border-radius: 50rpx; } .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: #000; background-color: #fff; } .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: #fff; background-color: #8883f0; 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; } } } } } .icon { .tit{ padding-top: 50rpx; box-sizing: border-box; font-size: 32rpx; } margin-top: 40rpx; margin-bottom: 30rpx; display: flex; justify-content: space-between; .imgbox { margin-left: 300rpx; image { width: 142rpx; height: 142rpx; } } } /deep/ .panel{ position: fixed; width: 100%; height: 100%; top: 0; bottom: 0; left: 0; z-index: 99 !important; overflow: hidden; } </style>