<template> <view class="page"> <u-navbar :title="tit" :border-bottom="false" :background="bgc" back-icon-color="#262B37" title-color='#262B37' title-size='36' height='48' id="navbar"> </u-navbar> <view class="box"> <view class="ulbox"> <view class="one"> 设施名称 </view> <view class="two"> <input type="text" v-model="name" style="text-align: right;" placeholder="输入设施名称"/> </view> </view> <view class="ulbox" @click="showlx = true"> <view class="one"> 设施类型 </view> <view class="two"> {{kslx}} <image src="https://api.ccttiot.com/smartmeter/img/static/uS5JydUQDmvbMyg4nsdo" mode=""></image> </view> </view> <view class="ulbox" @click="showone = true" v-if="obj.type == 1"> <view class="one"> 开锁方式 </view> <view class="two"> {{ksfs}} <image src="https://api.ccttiot.com/smartmeter/img/static/uS5JydUQDmvbMyg4nsdo" mode=""></image> </view> </view> <view class="ulbox" @click="showtwo = true" v-if="obj.type == 1"> <view class="one"> 开锁时长 </view> <view class="two"> {{kstime == '' ? '' : kstime + '秒'}} <image src="https://api.ccttiot.com/smartmeter/img/static/uS5JydUQDmvbMyg4nsdo" mode=""></image> </view> </view> <view class="ulbox" @click="dtflags = true" v-if="obj.equipmentId"> <view class="one"> 设备绑定 </view> <view class="two"> {{obj.device.sn == null ? '' : obj.device.sn}} <image src="https://api.ccttiot.com/smartmeter/img/static/uS5JydUQDmvbMyg4nsdo" mode=""></image> </view> </view> <u-select v-model="showlx" :list="listlx" @confirm="btnlx"></u-select> <u-select v-model="showone" :list="listone" @confirm="btnone"></u-select> <u-picker mode="time" v-model="showtwo" :params="params" @confirm="btntwo"></u-picker> </view> <view class="anniu"> <view class="tougang" @click="btndel"> {{txtdel}} </view> <view class="tougang" @click="btnshop"> {{txt}} </view> </view> <view class="mask" style="z-index: 3;" v-if="dtflags"></view> <view class="addmen" v-if="dtflags"> <view class="top"> <view class="cha" @click="dtflags = false"> × </view> <view class="name"> 请选择投放设备方式 </view> </view> <view class="one" @click="btnsaoma"> <view class="lt"> <view class="saoma"> 扫码投放 </view> <view class="saomas"> 扫描设备上的二维码 </view> <view class="saomas"> 投放设施 </view> </view> <view class="rt"> <image src="https://api.ccttiot.com/smartmeter/img/static/ukzEfdUUjPKUUOxonIgm" mode=""></image> </view> </view> <view class="one" @click="btntouf"> <view class="lt"> <view class="saoma"> 未投放设备列表投放 </view> <view class="saomas"> 选择未投放列表中的设备 </view> <view class="saomas"> 投放设施 </view> </view> <view class="rt"> <image src="https://api.ccttiot.com/smartmeter/img/static/ukzEfdUUjPKUUOxonIgm" mode=""></image> </view> </view> </view> </view> </template> <script> export default { data() { return { bgc: { backgroundColor: "#fff", }, listlx:[{ value: '1', label: '房间门' },{ value: '4', label: '房间灯' }], listone:[{ value: '1', label: '通电开锁' },{ value: '2', label: '断电开锁' }], params: { year: false, month: false, day: false, hour: false, minute: false, second: true }, showone:false, showtwo:false, showlx:false, ksfs:'', kstime:'', ksfsid:'', kslx:'', kslxid:'', equipmentId:'', name:'', type:'', sn:'', namelist:[], ruleIdlist:[], obj:{}, txt:'', txtdel:'', roomId:'', tit:'', dtflags: false, } }, onLoad(option) { if(option.equipmentId){ this.equipmentId = option.equipmentId this.txt = '修改' this.txtdel = '删除' this.tit = '修改房间设施' this.getxx() }else{ this.roomId = option.roomId this.txt = '添加' this.txtdel = '取消' this.tit = '添加房间设施' } }, onShow() { this.getxx() if(uni.getStorageSync('namelist') && uni.getStorageSync('ruleIdlist')){ this.namelist = uni.getStorageSync('namelist') this.ruleIdlist = uni.getStorageSync('ruleIdlist') } }, onHide() { // 移除存储中的数据 uni.removeStorageSync('namelist') uni.removeStorageSync('ruleIdlist') }, onUnload() { // 移除存储中的数据 uni.removeStorageSync('namelist') uni.removeStorageSync('ruleIdlist') }, methods: { // 点击未投列表放选择 btntouf(){ this.dtflags = false uni.navigateTo({ url: '/page_shanghu/weishebei?equipmentId=' + this.obj.equipmentId }) }, // 房间设施点击扫码投放 btnsaoma() { 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 } console.log(res); let sceneValue = res.result let decodedValue = decodeURIComponent(sceneValue) let id = getQueryParam(decodedValue, 'sn') let that = this let data = { sn: id, equipmentId: this.obj.equipmentId } that.$u.put(`/app/store/bandGate`, data).then(res => { if (res.code == 200) { uni.showToast({ title: '绑定成功', icon: 'success', duration: 2000 }) that.dtflags = false this.getxx() } else { uni.showToast({ title: res.msg, icon: 'none', duration: 2000 }) } }) } }) }, // 确认选择开锁方式 btnone(e){ this.ksfs = e[0].label this.ksfsid = e[0].value }, // 确认选择开锁时间 btntwo(e){ this.kstime = e.second }, // 点击删除大厅设施 btndel(){ if(this.txtdel == '删除'){ let that = this uni.showModal({ title: '温馨提示', content: '您确定要删除此设施吗?', success: function (res) { if (res.confirm) { that.$u.delete(`/app/equipment/${that.equipmentId}`).then((res) => { if (res.code == 200) { uni.showToast({ title: '删除成功', icon: 'success', duration:2000 }) setTimeout(()=>{ uni.navigateBack({ delta:1 }) },1000) }else{ uni.showToast({ title: res.msg, icon: 'none', duration:2000 }) } }) } else if (res.cancel) { } } }) }else{ uni.navigateBack() } }, // 点击编辑大厅 btnshop(){ if(this.txt == '修改'){ let data = { equipmentId:this.equipmentId, name:this.name, type:this.kslxid, ruleIds:this.ruleIdlist, unlockMode:this.ksfsid, unlockTime:this.kstime } this.$u.put(`/app/equipment`,data).then(res =>{ if(res.code == 200){ uni.showToast({ title: '修改成功', icon: 'success', duration:2000 }) setTimeout(()=>{ uni.navigateBack() },1000) }else{ uni.showToast({ title: res.msg, icon: 'none', duration:2000 }) } }) }else{ let data = { name:this.name, type:this.kslxid, roomId:this.roomId, ruleIds:this.ruleIdlist, unlockMode:this.ksfsid, unlockTime:this.kstime } this.$u.post(`/app/equipment`,data).then(res =>{ if(res.code == 200){ uni.showToast({ title: '添加成功', icon: 'success', duration:2000 }) setTimeout(()=>{ uni.navigateBack() },1000) }else{ uni.showToast({ title: res.msg, icon: 'none', duration:2000 }) } }) } }, // 点击选择收费 btnshoufei(){ uni.navigateTo({ url:'/page_moban/shoufei' }) }, // 确认选择类型 btnlx(e){ this.kslx = e[0].label this.kslxid = e[0].value if(e[0].value == 1){ this.obj.type = 1 }else{ this.obj.type = 4 } }, // 获取设备信息 getxx(){ this.$u.get(`/app/equipment/${this.equipmentId}`).then(res => { if (res.code == 200) { this.obj = res.data this.name = res.data.name this.type = res.data.type this.kslxid = res.data.type this.kstime = res.data.unlockTime this.ksfsid = res.data.unlockMode if(res.data.unlockMode == 1){ this.ksfs = '通电开锁' }else if(res.data.unlockMode == 2){ this.ksfs = '断电开锁' } if(res.data.feeRuleVOS != null){ res.data.feeRuleVOS.forEach(item =>{ this.namelist.push(item.explain) }) } if(res.data.type == 1){ this.kslx = '房间门' }else if(res.data.type == 4){ this.kslx = '房间灯' } // this.sn = res.data.device.sn } }) }, } } </script> <style lang="scss"> /deep/ .u-iconfont, /deep/ .u-title{ padding-bottom: 20rpx; box-sizing: border-box; } .addmen { width: 694rpx; height: 702rpx; background: linear-gradient(180deg, #DEF1DA 0%, #FFFFFF 100%, #FFFFFF 100%); border-radius: 36rpx 36rpx 36rpx 36rpx; position: fixed; top: 464rpx; left: 50%; transform: translateX(-50%); z-index: 3; box-shadow: 1px 2px 4px -3px; .one { display: flex; align-items: center; justify-content: space-between; width: 100%; .rt { image { width: 60rpx; height: 60rpx; } } .saoma { font-weight: 600; font-size: 36rpx; color: #48893B; margin-top: 10rpx; } .saomas { font-size: 28rpx; color: #48893B; margin-top: 10rpx; } width: 584rpx; height: 224rpx; border: 2rpx solid #48893B; border-radius: 20rpx; margin: auto; margin-top: 48rpx; padding: 38rpx 44rpx; box-sizing: border-box; } .top { display: flex; flex-wrap: wrap; padding: 0 26rpx; box-sizing: border-box; .name { font-weight: 600; font-size: 44rpx; color: #48893B; width: 100%; text-align: center; position: absolute; top: 56rpx; left: 50%; transform: translateX(-50%); } .cha { font-size: 68rpx; font-weight: 600; width: 100%; text-align: right; } } } .wz{ font-size: 24rpx; color: #3D3D3D; margin-top: 24rpx; margin-bottom: 20rpx; height: 50rpx; } .shichang{ .stop{ display: flex; width: 618rpx; height: 76rpx; line-height: 76rpx; background: #F0F0F0; view{ width: 50%; text-align: center; font-size: 28rpx; color: #3D3D3D; } } } .jieb{ width: 750rpx; height: 152rpx; background: #FFFFFF; box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0,0,0,0.3); border-radius: 0rpx 0rpx 0rpx 0rpx; position: fixed; bottom: 0; left: 0; .bt{ width: 680rpx; height: 104rpx; background: #48893B; margin: auto; margin-top: 24rpx; border-radius: 24rpx; font-weight: 600; font-size: 36rpx; color: #FFFFFF; text-align: center; line-height: 104rpx; } } .lianwang{ width: 680rpx; height: 112rpx; background: #FFFFFF; display: flex; align-items: center; justify-content: space-between; margin: auto; margin-top: 22rpx; border-radius: 24rpx; padding: 36rpx 32rpx; box-sizing: border-box; .two{ font-size: 32rpx; color: #7C7C7C; } .thr{ font-size: 32rpx; color: #3D3D3D; display: flex; align-items: center; image{ width: 12rpx; height: 34rpx; margin-left: 10rpx; } } } .jichuxx{ width: 680rpx; max-height: 458rpx; background: #FFFFFF; box-sizing: border-box; padding: 44rpx 34rpx; box-sizing: border-box; margin: auto; margin-top: 22rpx; border-radius: 20rpx; .top{ border-left: 14rpx solid #48893B; font-weight: 600; font-size: 36rpx; color: #3D3D3D; padding-left: 24rpx; box-sizing: border-box; } .one{ display: flex; justify-content: space-between; align-items: center; margin-top: 28rpx; .two{ font-size: 32rpx; color: #7C7C7C; } .thr{ font-size: 32rpx; color: #3D3D3D; } } } .toufangbox{ width: 680rpx; height: 284rpx; background: #FFFFFF; border-radius: 24rpx 24rpx 24rpx 24rpx; margin: auto; margin-top: 22rpx; padding: 44rpx 34rpx; box-sizing: border-box; .shebeibj{ display: flex; justify-content: space-between; .lt{ .name{ font-weight: 600; font-size: 40rpx; color: #262B37; } .zt{ font-size: 28rpx; color: #5B5B5B; margin-top: 12rpx; text{ color: #00BA88; } } } .rt{ image{ width: 196rpx; height: 196rpx; } } } } .xuanze{ width: 750rpx; height: 494rpx; background: #FFFFFF; border-radius: 40rpx 40rpx 0 0; position: fixed; left: 0; bottom: 0; z-index: 1; padding: 42rpx 62rpx; box-sizing: border-box; .changj{ display: flex; justify-content: space-between; flex-wrap: wrap; .changj_item{ width: 302rpx; height: 110rpx; background: #F0F0F0; border-radius: 6rpx 6rpx 6rpx 6rpx; font-weight: 600; text-align: center; line-height: 110rpx; font-size: 36rpx; margin-top: 40rpx; color: #3D3D3D; } } .top{ display: flex; justify-content: space-between; view{ font-weight: 600; font-size: 36rpx; color: #3D3D3D; image{ width: 50rpx; height: 50rpx; } } } } .mask{ width: 100%; height: 100vh; background-color: #000; opacity: .3; position: fixed; top: 0; left: 0; } .anniu{ width: 100%; height: 152rpx; background: #FFFFFF; box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0,0,0,0.3); border-radius: 0rpx 0rpx 0rpx 0rpx; display: flex; padding: 24rpx 36rpx; box-sizing: border-box; justify-content: space-between; text-align: center; position: fixed; left: 0; bottom: 0; .tougang{ width: 300rpx; margin: auto; height: 104rpx; background: #48893B; font-size: 36rpx; color: #FFFFFF; line-height: 104rpx; border-radius: 20rpx; } } .box{ width: 680rpx; max-height: 2708rpx; background: #FFFFFF; border-radius: 20rpx; margin: auto; margin-top: 28rpx; padding: 0 30rpx; box-sizing: border-box; padding-bottom: 30rpx; .ulbox{ width: 100%; height: 118rpx; line-height: 118rpx; display: flex; justify-content: space-between; border-bottom: 1px solid #D8D8D8; .one{ font-size: 32rpx; color: #3D3D3D; } .two{ font-size: 32rpx; color: #7C7C7C; display: flex; align-items: center; image{ width: 14rpx; height: 42rpx; margin-left: 20rpx; } } } } page { background: #F6F6F6; } </style>