<template>
	<view class="home">
		<view class="detail-area">
			<layout-row rowTitle="资产编号" :rowValue="assetObj.number"></layout-row>
			<layout-row rowTitle="资产名称" :rowValue="assetObj.name"></layout-row>
			<layout-row rowTitle="资产种类" :rowValue="assetObj.kind"></layout-row>
			<layout-row rowTitle="资产分类" :rowValue="assetObj.categoryNumber"></layout-row>
			<layout-row rowTitle="使用部门" :rowValue="assetObj.deptName"></layout-row>
			<layout-row rowTitle="资产原值(元)" :rowValue="assetObj.amount"></layout-row>
			<layout-row rowTitle="数量" :rowValue="assetObj.quantity"></layout-row>
			<layout-row rowTitle="存放地点" :rowValue="assetObj.placeName"></layout-row>
			<layout-row rowTitle="设备状态" :rowValue="assetObj.borrowStatus"></layout-row>
			<layout-row rowTitle="登记人" :rowValue="assetObj.registrant"></layout-row>
			<layout-row rowTitle="取得日期" :rowValue="assetObj.buildDate"></layout-row>
			<layout-row rowTitle="资产用途" :rowValue="assetObj.purpose"></layout-row>
			<layout-row rowTitle="规格型号" :rowValue="assetObj.specificationsModel"></layout-row>
		</view>
		<view v-if="show">
			<view class="borrow-date" v-if="assetObj.borrowStatus?assetObj.borrowStatus=='可借出'?true:false:false">
				<u--form
					labelPosition="left"
					:model="form"
					ref="Form1"
					:labelWidth="110"
					labelAlign="left">
					<u-form-item
						label="借用地点"
						prop="borrowPlaceName"
						borderBottom>
						<text @click="showPlace" style="font-size: 30rpx;width: 100%;height: 100%;">{{form.borrowPlaceName}}</text>
						<u-picker
						:show="placeShow" 
						:columns="placeList"
						title="请选择地点"
						keyName="name"
						@cancel="placeShow = false"
						@confirm="selectPlace"></u-picker>
					</u-form-item>
					<u-form-item
						label="联系电话"
						prop="tel"
						borderBottom>
						<u--input
						v-model="form.tel"
						border="none" placeholder="请输入联系电话">
						</u--input>
					</u-form-item>
					<u-form-item
						label="借用日期"
						prop="borrowDate"
						borderBottom>
						<text @click="showBor" style="font-size: 30rpx;">{{form.borrowDate}}</text>
						<u-datetime-picker
						:show="borrowShow"
						v-model="borrowValue"
						mode="datetime"
						@confirm="changeDate"
						@cancel="borrowShow = false"
						></u-datetime-picker>
					</u-form-item>
					<u-form-item
						label="归还日期"
						prop="returnDate"
						borderBottom>
						<text 
						@click="showRet" 
						style="font-size: 30rpx;">
						{{form.returnDate}}
						</text>
						<u-datetime-picker
						:show="returnShow"
						v-model="returnValue"
						mode="datetime"
						@confirm="returnChange"
						@cancel="returnShow = false"
						></u-datetime-picker>
					</u-form-item>
					<u-form-item
						label="备注"
						prop="remark"
						borderBottom>
						<u--input
						v-model="form.remark"
						border="none"
						placeholder="请输入备注"
						>
						</u--input>
					</u-form-item>
				</u--form>
			</view>
			<view class="borrow-date" v-else-if="assetObj.borrowStatus?assetObj.borrowStatus=='可借出'?false:true:true">
				<u--form
					labelPosition="left"
					:model="assetObj"
					ref="resF"
					:labelWidth="110"
					labelAlign="left">
					<u-form-item
						label="借用人工号"
						prop="borrowUserName"
						borderBottom>
						<text 
						style="font-size: 30rpx;">
						{{assetObj.borrowUserName?assetObj.borrowUserName:""}}
						</text>
					</u-form-item>
					<u-form-item
						label="借用地点"
						prop="borrowPlaceName"
						borderBottom>
						<text 
						style="font-size: 30rpx;">
						{{assetObj.placeName?assetObj.placeName:""}}
						</text>
					</u-form-item>
					<u-form-item
						label="联系电话"
						prop="tel"
						borderBottom>
						<text 
						style="font-size: 30rpx">
						{{assetObj.tel?assetObj.tel:""}}
						</text>
					</u-form-item>
					<u-form-item
						label="借用日期"
						prop="borrowDate"
						borderBottom>
						<text 
						style="font-size: 30rpx;">
						{{assetObj.borrowDate?assetObj.borrowDate:""}}
						</text>
					</u-form-item>
					<u-form-item
						label="归还日期"
						prop="returnDate"
						borderBottom>
						<text 
						style="font-size: 30rpx;">
						{{assetObj.returnDate?assetObj.returnDate:""}}
						</text>
					</u-form-item>
					<u-form-item
						label="备注"
						prop="remark"
						borderBottom>
						<text style="font-size: 30rpx;">
						{{assetObj.remark?assetObj.remark:"无"}}
						</text>
						</u--input>
					</u-form-item>
				</u--form>
			</view>
			<text style="font-size: 24rpx;">归还时间以实际归还时间为准</text>
			<view class="btn-area">
				<u-button text="借用" color="#67C23A" v-if="assetObj.borrowStatus?assetObj.borrowStatus=='可借出'?true:false:false" @click="toBorrowAsset">借用</u-button>
				<u-button text="归还" color="#67C23A" v-else-if="assetObj.borrowStatus?assetObj.borrowStatus=='可借出'?false:true:true" @click="toReturnAsset">归还</u-button>
			</view>
			<view class="repair-btn" @click="toRepeat">
				<i class="iconfont icon-a-shezhi2"></i>
			</view>
		</view>
		<u-toast ref="uToast"></u-toast>
	</view>
</template>

<script>
	import { searchAsset,getAllPlace,borrowAsset,returnAsset } from "@/api/asset.js"
	import cache from "@/utils/storage.js"
	import { dateToString } from "@/common/js/core.js"
	import LayoutRow from '@/component/LayoutRow.vue'
	export default {
		data() {
			return {
				borrowShow:false,
				borrowValue:Number(new Date()),
				returnShow:false,
				returnValue:Number(new Date()),
				assetObj:{},
				form:{
					borrowDate:dateToString(new Date()),
					returnDate:dateToString(new Date()),
					remark:"",
					tel:cache.session.getJSON("phone"),
					borrowPlaceName:"",
					assetBarCode:""
				},
				placeShow: false,
				placeList: [],
				show:false
			};
		},
		components:{
			LayoutRow
		},
		onLoad:function(option){
			this.form.assetBarCode = option.number
			// this.initAssets(option.number)
			this.init()
		},
		onShow() {
			this.initAssets(this.form.assetBarCode,0,"加载中")
		},
		methods:{
			showBor(){
				this.borrowShow = true
			},
			showRet(){
				this.returnShow = true
			},
			handleDate(fDate,rDate){
				let f = new Date(fDate)
				let r = new Date(rDate)
				if (f < r) {
					return true
				} else {
					uni.showToast({
						icon:"error",
						title:"借用日期应小于归还日期"
					})
					return false
				}
			},
			changeDate(val){
				let date = dateToString(val.value);
				this.form.borrowDate = date
				this.borrowShow = false
			},
			returnChange(val){
				let date = dateToString(val.value);
				if(this.handleDate(this.form.borrowDate,date)){
					this.form.returnDate = date
					this.returnShow = false
				}
			},
			init(){
				this.placeList = []
				// uni.showLoading({
				// 	title: "加载中",
				// 	mask: true,
				// });
				getAllPlace().then(res=>{
					if(res.length!==0){
						this.placeList.push(res)
						this.form.borrowPlaceName = res[0].name?res[0].name:"请选择地点"
					}
				})
				this.form.borrowDate = dateToString(new Date(new Date().getTime() + 1000*60*10))
				this.form.returnDate = dateToString(new Date(new Date().getTime() + 1000*60*15))
				this.form.tel = cache.session.getJSON("phone")
			},
			initAssets(data,num,str){
				uni.showLoading({
					title:str,
					icon:'none',
					mask:true
				})
				try{
					searchAsset({barCode: data}).then(res=>{
						if(res.barCode===null){
							uni.hideLoading()
							this.$refs.uToast.show({
								type: 'error',
								icon: false,
								message: "该设备不存在,即将返回上一页",
								duration:1500
							})
							setTimeout(()=>{
								uni.navigateBack({
									delta:1
								})
							},1400)
						}
						if(res.meBorrow || res.borrowStatus ==="可借出"){
							this.show = true;
						}else{
							this.show = false;
						}
						uni.hideLoading()
						let msg = ""
						let iconName = ""
						if(num===1){
							msg = "借用成功!"
							iconName = 'success'
						}else if(num===2){
							msg = "归还成功!"
							iconName = 'success'
						}else if(num===0){
							msg = "加载成功!"
							iconName = 'none'
						}
						uni.showToast({
							title: msg,
							icon:iconName
						});
						this.assetObj = res
					})
				}catch(err){
					uni.hideLoading()
				}
				
			},
			showPlace(){
				this.placeShow = true
			},
			selectPlace(e){
				this.form.borrowPlaceName = e.value[0].name 
				this.placeShow = false
			},
			//点去维修
			toRepeat(){
				// console.log("111233")
				uni.navigateTo({
					url:'/pages/fault/fault-report/fault-report?id='+this.form.assetBarCode
				})
			},
			toBorrowAsset(){
				if(this.form.tel===""){
					uni.showToast({
						icon:"error",
						title:"请输入正确的手机号",
						mask:true
					})
					return;
				}
			  	if(!this.handleDate(this.form.borrowDate,this.form.returnDate)){
					// uni.hideLoading()
					return;
				}
				uni.showLoading({
					title: "正在借用中",
					mask: true,
				});
				let data = {
					"tel": this.form.tel,
					"assetBarCode": this.assetObj.barCode,
					"borrowPlaceName": this.form.borrowPlaceName,
					"remark": this.form.remark
				}
				// console.log(data,1)
				let returnDate = new Date(this.form.returnDate).getTime()
				let borrowDate = new Date(this.form.borrowDate).getTime()
				try{
					borrowAsset(borrowDate,returnDate,data).then(res=>{
						uni.hideLoading()
						// uni.showToast({
						// 	icon:"none",
						// 	title:"借用成功!"
						// })
						// uni.$u.toast('借用成功!')
						this.initAssets(res.assetBarCode,1,"正在借用中")
					})
				}catch(err){
					uni.hideLoading()
				}
				
			},
			toReturnAsset(){
				// uni.showLoading({
				// 	title: "正在归还中",
				// 	mask: true,
				// });
				returnAsset(this.assetObj.barCode).then(res=>{
					if(res.data.code===200 && res.data.msg==="归还成功"){
						uni.showToast({
							icon:"success",
							title:"归还成功!",
							mask:true
						})
						this.initAssets(this.assetObj.barCode,2,"正在归还中")
					}
				})
			}
		}
	}
</script>

<style lang="scss" scoped>
page{
	background-color: #f5f6fa;
}
.home{
	padding: 24rpx 30rpx;
	display: flex;
	flex-direction: column;
	// height: 100vh;
	box-sizing: border-box;
}
.detail-area{
	height: 72%;
	// border: 1px solid $uni-border-black;
	border-radius: 15rpx;
	box-shadow: 0 2rpx 8rpx 0 rgba(0, 0, 0, 0.2);
	padding: 0 20rpx;
	overflow-y: scroll;
}
.borrow-date{
	// border: 1px solid $uni-border-black;
	border-radius: 15rpx;
	box-shadow: 0 2rpx 8rpx 0 rgba(0, 0, 0, 0.2);
	padding: 0 20rpx;
	margin-top: 20rpx;
	/deep/.u-picker__view__column__item{
		text-align: center;
	}
	/deep/.u-form-item__body__right__content__slot{
		height: 100%;
	}
}
.layout-row{
	border-top: 1rpx solid #d6d7d9;
	padding: 20rpx 0 ;
}
.demo-layout {
	height: 25px;
}
.btn-area{
	margin-top: 20rpx;
	padding: 0 250rpx;
}
.repair-btn{
	width: 80rpx;
	height: 80rpx;
	color: rgba(80, 80, 80, 1);
	border-radius: 50%;
	line-height: 150%;
	box-shadow: 0px 1px 1px 0px rgba(0, 0, 0, 0.5);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	flex-direction: column;
	font-size: 36rpx;
	position: fixed;
	bottom: 20rpx;
	right: 20rpx;
	background: #ffffff;
	z-index:100;
	.iconfont{
		font-size: 42rpx;
	}
}
</style>