<template>
	<view class="page">
		<u-navbar title="设置" :border-bottom="false" :background="bgc" back-icon-color="#fff" title-color='#fff' 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.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 == null ? '' : 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 == null ? '' : 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 == 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: "#8883f0",
				},
				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){
				// 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) {
					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){
					// 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() {
				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('/app/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.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
						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>