<template>
	<view class="lists">
		<view class="status_bar" :style="navHeight"></view>
		<view class="header-bg">
			<image class="header-bg-img" src="@/static/image/nav_bg@3x.png" mode="scaleToFill"></image>
		</view>
		<view class="main" :style="mainHeight">
			<view class="block-detal">
				<view class="block-detal-head">
					<text class="detal-head-item-value detal-head-item-value-first">{{missionDetail.createdate}}</text>
					<text class="detal-head-item-value">{{missionDetail.viloationName}}</text>
					<text class="detal-head-item-value">{{missionDetail.childTypeName}}</text>
					<text
						class="detal-head-item-value detal-head-item-value-last status-done">{{missionDetail.status}}</text>
				</view>
				<view class="block-detal-body">
					<text class="detal-item-value">{{missionDetail.terminalName}}</text>
					<text class="detal-item-value">{{missionDetail.terminalAddress}}</text>
					<text class="detal-item-value">{{missionDetail.productName}}</text>
					<text class="detal-item-value">{{missionDetail.productQty}}盒</text>
				</view>
				<template v-for="(letter,index) in contactLetterDetail.entryDataList">
					<view class="text-block text-block-last">
						<text class="middle-date">联络函编号</text>
						<text class="middle-date-des">{{letter.contactLetterId}}</text>
					</view>
					<view class="text-block text-block-last" @click="previewImg(letter.contactLetterUrl)">
						<text class="middle-date">附件</text>
						<text class="middle-date-des">{{letter.contactLetterName}}</text>
					</view>
				</template>
			</view>
			<view class="middle view">
				<!-- <view class="steps">
					<view class="steps__row-container">
						<view class="steps__row-line-item">
							<view class="steps__row-line steps__row-line--before steps__row-line--hide"></view>
							<view class="steps__row-check">
								<i class="icon-dot icon-dot-active"></i>
							</view>
							<view class="steps__row-line steps__row-line--after steps__row-line--active"></view>
						</view>
						<view class="steps__row-line-item">
							<view class="steps__row-line steps__row-line--before"
								:class="{'steps__row-line--active':false}">
							</view>
							<view class="steps__row-check steps__row-circle">
								<i class="icon-dot" :class="{'icon-dot-active':false}"></i>
							</view>
							<view class="steps__row-line steps__row-line--after"
								:class="{'steps__row-line--active':false}"></view>
						</view>
						<view class="steps__row-line-item">
							<view class="steps__row-line steps__row-line--before"
								:class="{'steps__row-line--active':false}"></view>
							<view class="steps__row-check steps__row-circle">
								<i class="icon-dot" :class="{'icon-dot-active':false}"></i>
							</view>
							<view class="steps__row-line steps__row-line--after"
								:class="{'steps__row-line--active':false}"></view>
						</view>
						<view class="steps__row-line-item">
							<view class="steps__row-line steps__row-line--before"
								:class="{'steps__row-line--active':false}"></view>
							<view class="steps__row-check steps__row-circle">
								<i class="icon-dot" :class="{'icon-dot-active':false}"></i>
							</view>
							<view class="steps__row-line steps__row-line--after"
								:class="{'steps__row-line--active':false}"></view>
						</view>
						<view class="steps__row-line-item">
							<view class="steps__row-line steps__row-line--before"
								:class="{'steps__row-line--active':false}"></view>
							<view class="steps__row-check steps__row-circle">
								<i class="icon-dot" :class="{'icon-dot-active':false}"></i>
							</view>
							<view class="steps__row-line steps__row-line--after steps__row-line--hide"></view>
						</view>
					</view>
					<view class="steps__row-text-container">
						<view class="steps__row-text">
							<text class="steps__row-title steps__row-title-active">联络函</text>
							<text class="steps__row-desc"></text>
						</view>
						<view class="steps__row-text">
							<text class="steps__row-title">填收货信息</text>
							<text class="steps__row-desc"></text>
						</view>
						<view class="steps__row-text">
							<text class="steps__row-title">收款确认</text>
							<text class="steps__row-desc"></text>
						</view>
						<view class="steps__row-text">
							<text class="steps__row-title">发货</text>
							<text class="steps__row-desc"></text>
						</view>
						<view class="steps__row-text">
							<text class="steps__row-title">收货确认</text>
							<text class="steps__row-desc"></text>
						</view>
					</view>
				</view> -->
				
				<view class="text-block">
					<text class="middle-date">收货地址</text>
					<view class="middle-date-des uni-list picker-year">
						<view class="uni-list-cell">
							<view class="uni-list-cell-db">
								<input-autocomplete
								    class="unit-item__input"
								    :value="contactLetterDetail.receiveAddress"
								    v-model="contactLetterDetail.receiveAddress"
								    placeholder="请输入"
								    highlightColor="#FF0000"
								    :stringList="autocompleteStringList"
									:isNoShow='isNoShow'
									v-on:onInputTap='onInputTap'
								    v-on:selectItem="selectItemS">
								</input-autocomplete>
								<!-- <input class="middle-date-des" type="text" v-model="contactLetterDetail.receiveAddress"
									placeholder="" /> -->
							</view>
						</view>
					</view>
				</view>
				<view class="text-block">
					<text class="middle-date">打框架</text>
					<view class="middle-date-des uni-list picker-year">
						<view class="uni-list-cell">
							<view class="uni-list-cell-db">
								<picker class="picker-block" @change="bindPickerBundledProChange" mode="selector"
									range-key='value' :value="condition.bundledProducts" :range="bundledProPicker">
									<text
										class="uni-input-text">{{ bundledProPicker[bundledProductsFlagIndex].value}}</text>
								</picker>
							</view>
						</view>
						<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode="aspectFit"></image>
					</view>
				</view>
				
				<view class="text-block">
					<text class="middle-date">联系人</text>
					<view class="middle-date-des uni-list picker-year">
						<view class="uni-list-cell">
							<view class="uni-list-cell-db">
								<input class="middle-date-des" type="text" v-model="contactLetterDetail.contactUser"
									placeholder="" />
							</view>
						</view>
					</view>
				</view>
				<view class="text-block">
					<text class="middle-date">联系电话</text>
					<view class="middle-date-des uni-list picker-year">
						<view class="uni-list-cell">
							<view class="uni-list-cell-db">
								<input class="middle-date-des" type="text"
									v-model="contactLetterDetail.receiveContactPhone" placeholder="" />
							</view>
						</view>
					</view>
				</view>
				<view class="text-block">
					<text class="middle-date">期望保价(元)</text>
					<view class="middle-date-des uni-list picker-year">
						<view class="uni-list-cell">
							<view class="uni-list-cell-db">
								<input class="middle-date-des" type="number"
									v-model="contactLetterDetail.expectInsuredValue" placeholder="请输入期望保价，保留2位小数" />
							</view>
						</view>
					</view>
				</view>
				<view class="text-block">
					<text class="middle-date">物流公司</text>
					<view class="middle-date-des uni-list picker-year">
						<view class="uni-list-cell">
							<view class="uni-list-cell-db">
								<picker v-if="deliveryCompanyPickerShow" class="picker-block"
									@change="bindPickerDeliveryCompanyChange" mode="selector" range-key='name'
									:value="condition.expectLogistics" :range="deliveryCompanyList">
									<text
										class="uni-input-text">{{ deliveryCompanyList[deliveryCompanyIndex].name}}</text>
								</picker>
								<input v-if="!deliveryCompanyPickerShow" class="middle-date-des" type="text"
									v-model="condition.expectLogistics" placeholder="请输入期望物流公司" />
							</view>
						</view>
						<image v-if="deliveryCompanyPickerShow" class="icon-arrow icon-arrow-r"
							src="@/static/image/arrow_r@3x.png" mode="aspectFit">
						</image>
						<button class="btn-r" type="default" @tap="changeInputWay">
							<text class="btn-r-text">其他</text>
						</button>
					</view>
				</view>

			</view>

		</view>
		<view class="bottom-area"></view>
		<view class="bottom">
			<button class="btn" type="default" @tap="submit">
				<text class="btn-text">提交</text>
			</button>
		</view>
	</view>
	</view>
</template>

<script>
	import {
		mapState
	} from 'vuex'

	import {
		apiGetContactLetterDetail,
		apiDoReceiveInfo
	} from '@/servers/breakwords.js'
	import inputAutocomplete from '@/components/input-autocomplete/input-autocomplete.vue';
	export default {
		components: {
			inputAutocomplete
		},
		data() {
			return {
				productDisSalesAreaId: '',
				happenSalesAreaCode: '',
				testObj: {
					sname: '',
					dname: ''
				},
				isNoShow: true,
				autocompleteStringList: [],
				condition: {
					taskAssignmentId: '',
					bundledProducts: 'false',
					receiveAddress: '',
					contactUser: '',
					receiveContactPhone: '',
					expectInsuredValue: '',
					expectLogistics: '',
					entryDataList: []
				},
				bundledProductsFlagIndex: 0,
				deliveryCompanyIndex: 0,
				deliveryCompanyPickerShow: true,
				missionDetail: {},
				contactLetterDetail: {},
				bundledProPicker: [{
						key: 'false',
						value: '否'
					},
					{
						key: 'true',
						value: '是',
					},
				],
				deliveryCompanyList: [{
						'id': '京东快递',
						'name': '京东快递'
					},
					{
						'id': '圆通',
						'name': '圆通'
					},
					{
						'id': '申通',
						'name': '申通'
					},
					{
						'id': '韵达',
						'name': '韵达'
					},
					{
						'id': 'EMS',
						'name': 'EMS'
					},
					{
						'id': '中通',
						'name': '中通'
					},
					{
						'id': '顺丰',
						'name': '顺丰'
					},
					{
						'id': '百世',
						'name': '百世'
					},
					{
						'id': '天天',
						'name': '天天'
					},
					{
						'id': '邮政包裹',
						'name': '邮政包裹'
					},
					{
						'id': '宅急送',
						'name': '宅急送'
					},
					{
						'id': '全峰',
						'name': '全峰'
					},
					{
						'id': '德邦',
						'name': '德邦'
					}
				]
			}
		},
		computed: {
			...mapState(['sysinfo', 'userInfo','userBpData']),
			navHeight() {
				return {
					'height': `${this.sysinfo.safeArea.top + 44}px`
				}
			},
			mainHeight() {
				return {
					'height': `${this.sysinfo.safeArea.height - 44 }px`,
				}
			},
			isAreaCode(){
				return this.happenSalesAreaCode === this.productDisSalesAreaId
			},
		},
		onLoad(option) {
			if (option && option.pageType) {
				this.missionDetail = JSON.parse(option.info)
				this.condition.taskAssignmentId = this.missionDetail.ticketId
				this.getContactLetterDetail()
			}
		},
		methods: {
			previewImg (urls) {
				// #ifdef APP-PLUS
					const url = 'http://221.10.127.50/wmdp-uploadfile'+urls
					let dtask = plus.downloader.createDownload(url, {}, function(d, status){
						// 下载完成
						if(status == 200){ 
							console.log("Download success: " + d.url);
							plus.runtime.openFile(d.filename)
						} else {
							console.log("Download failed: " + status); 
						}
					});
					//dtask.addEventListener("statechanged", onStateChanged, false);
					dtask.start(); 
				// #endif
			},
			onInputTap(){
				this.isNoShow = true
			},
			onPageScroll(e) {
				this.isNoShow = false
			},
			selectItemS(data) {
				console.log('收到数据了:', data);
			},
			async getContactLetterDetail() {
				this.autocompleteStringList = uni.getStorageSync('wlyAddress')
				uni.showLoading({
					title: '加载中'
				});
				setTimeout(function() {
					uni.hideLoading();
				}, 2000);
				const res = await apiGetContactLetterDetail({
					taskAssignmentId: this.condition.taskAssignmentId
				})
				// let res = {
				// 	"result": "S",
				// 	"message": "操作成功",
				// 	"data": {
				// 		"taskAssignmentId": "T000008HK",
				// 		"bankName": "开户行",
				// 		"accountName": "户名",
				// 		"accountNumber": "账号",
				// 		"contact": "联系人",
				// 		"contactPhone": "联系电话",
				// 		"receiveAddress": "收货地址",
				// 		"contactUser": "收获联系人",
				// 		"receiveContactPhone": "联系人电话",
				// 		"expectInsuredValue": "期望保价",
				// 		"expectLogistics": "期望物流公司",
				// 		"receiveRecorderName": "录入人",
				// 		"receiveRecorderTime": "录入时间",
				// 		"remitPaidParty": "打款方",
				// 		"remitPaidUrl": "打款凭证照片",
				// 		"remitRecorderName": "打款录入人",
				// 		"remitRecorderTime": "打款录入时间",
				// 		"shipLogistics": "发货物流公司",
				// 		"shipLogisticsNo": "发货单号",
				// 		"shipTime": "发货时间",
				// 		"shipRecorderName": "发货人",
				// 		"entryDataList": [{
				// 			"contactLetterId": "联络函编号",
				// 			"contactLetterName": "联络函名称",
				// 			"createUserName": "创建人",
				// 			"status": "状态",
				// 			"statusName": "状态",
				// 			"createTime": "生成时间"
				// 		}]
				// 	}
				// }
				uni.hideLoading();
				for (let key in res.data) {
					this.$set(this.contactLetterDetail, key, res.data[key])
					// this.contactLetterDetail[key] = res.data[key]
				}
				this.condition.entryDataList = res.data.entryDataList
				this.happenSalesAreaCode = res.data.happenSalesAreaCode
				this.productDisSalesAreaId = res.data.productDisSalesAreaId
			},
			bindPickerBundledProChange(e) {
				console.log('picker发送选择改变，携带值为', e.detail.value)
				this.bundledProductsFlagIndex = e.detail.value
				this.condition.bundledProducts = this.bundledProPicker[e.detail.value].key
			},
			bindPickerDeliveryCompanyChange(e) {
				console.log('picker发送选择改变，携带值为', e.detail.value)
				this.deliveryCompanyIndex = e.detail.value
				this.condition.deliveryCompany = this.deliveryCompanyList[e.detail.value].id
			},
			changeInputWay() {
				this.deliveryCompanyPickerShow = !this.deliveryCompanyPickerShow
			},
			async submit() {
				if(!this.contactLetterDetail.receiveAddress){
					uni.showToast({
						title: '请先填写收货地址',
						duration: 2000,
						icon: 'none'
					});
					return
				}
				if(!this.contactLetterDetail.contactUser){
					uni.showToast({
						title: '请先填写联系人',
						duration: 2000,
						icon: 'none'
					});
					return
				}
				if(!this.contactLetterDetail.receiveContactPhone){
					uni.showToast({
						title: '请先填写联系电话',
						duration: 2000,
						icon: 'none'
					});
					return
				}
				if(!this.contactLetterDetail.expectInsuredValue){
					uni.showToast({
						title: '请先填写期望保价',
						duration: 2000,
						icon: 'none'
					});
					return
				}
				const expectInsuredNum =Number(this.contactLetterDetail.expectInsuredValue).toFixed(2)
				const params = {
					'taskAssignmentId': this.condition.taskAssignmentId,
					'receiveAddress': this.contactLetterDetail.receiveAddress,
					'contactUser': this.contactLetterDetail.contactUser,
					'contactPhone': this.contactLetterDetail.receiveContactPhone,
					'expectInsuredValue': expectInsuredNum,
					'expectLogistics': this.deliveryCompanyPickerShow ? this.deliveryCompanyList[this.deliveryCompanyIndex].name : this.condition.expectLogistics,
					'receiveRecorderId': this.userInfo.code,
					'receiveRecorderName': this.userBpData.USER_NAME,
					'contactLetterId': this.condition.entryDataList[0].contactLetterId,
					'bundledProducts': this.condition.bundledProducts
				}
				uni.showLoading({
					title: '加载中'
				});
				setTimeout(function() {
					uni.hideLoading();
				}, 2000);
				try{
					const res = await apiDoReceiveInfo(params)
					if(res.result === 'S'){
						const address = uni.getStorageSync('wlyAddress')
						if(address){
							// 里面有同样的地址就不加入了
							for(var i=0; i<address.length; i++) {
								if(address[i] === this.contactLetterDetail.receiveAddress) {
									uni.hideLoading();
									uni.navigateBack()
									return
								}
							}
							if(address.length === 5){
								address.pop()
							}
							address.unshift(this.contactLetterDetail.receiveAddress)
							uni.setStorageSync('wlyAddress', address);
						}else{
							uni.setStorageSync('wlyAddress', [this.contactLetterDetail.receiveAddress]);
						}
					}
					uni.hideLoading();
					uni.navigateBack()
				}catch(e){
					//TODO handle the exception
				}
				
			}
		}
	}
</script>

<style lang="scss" scoped>
	.view {
		display: flex;
		flex-direction: column;
	}

	.status_bar {
		height: var(--status-bar-height);
	}

	.header-bg {
		height: 284rpx;
		margin-top: -88rpx;
	}

	.header-bg-img {
		width: 750rpx;
	}

	.lists {
		position: relative;
		flex-direction: column;
		background: #f0f4f5;
	}

	.main {
		position: relative;
		flex-direction: column;
		margin-top: -184rpx;
		border-radius: 16rpx;
		padding: 0 16rpx;
	}

	.middle {
		background-color: #fff;
		border-radius: 16rpx;
		padding: 0 48rpx;
		margin-bottom: 32rpx;
	}

	.text-block {
		display: flex;
		overflow: hidden;
		height: 96rpx;
		border-bottom: 1px solid #f4f5f6;
	}

	.text-block-last {
		margin-bottom: 0;
		border-bottom: 0;
	}

	.no-border {
		border: 0;
	}

	.middle-date {
		flex: 3;
		font-size: 24rpx;
		line-height: 96rpx;
		color: #999;
		margin-bottom: 8rpx;
	}

	.middle-date-des {
		align-items: center;
		flex: 5.5;
		font-size: 24rpx;
		color: $text-base-color;
		height: 96rpx;
		line-height: 96rpx;
	}

	.uni-input-placeholder {
		color: #DBDBDB;
	}

	.picker-year {
		position: relative;
		align-items: center;
	}

	.uni-list-cell {
		flex: 1;
		padding-right: 52rpx;
	}

	.uni-list-cell-db {
		flex: 1;
	}

	.uni-input-text {
		font-size: 24rpx;
	}

	.picker-block {
		flex: 1;
	}

	.icon-arrow {
		position: absolute;
		right: 22rpx;
		top: 40rpx;
		width: 7px;
		height: 10px;
		z-index: 10;
	}

	.icon-arrow-r {
		right: 102rpx;
	}

	.planout-block-item {
		margin-top: 48rpx;
	}

	.block-detal {
		display: flex;
		flex-direction: column;
		background: #fff;
		border-radius: 20rpx;
		padding: 32rpx;
		margin-top: 32rpx;
		margin-bottom: 20rpx;
	}

	.block-detal-head {
		display: flex;
		justify-content: space-between;
		border-bottom: 1px solid #ddd;
		padding-bottom: 6px;
	}

	.detal-head-item-value {
		flex: 1;
		text-align: center;
		font-size: 24rpx;
	}

	.detal-head-item-value-first {
		flex: 1.2;
		text-align: left;
	}

	.detal-head-item-value-last {
		flex: 0.7;
		text-align: right;
	}

	.status-done {
		color: #F62C29;
	}

	.product-val {
		margin-right: 10px;
	}

	.block-detal-body {
		display: flex;
		flex-direction: column;
		padding-top: 20rpx;
	}

	.detal-item-value {
		color: #333;
		font-size: 24rpx;
		margin-bottom: 8rpx;
	}

	.bottom-area {
		height: 140rpx;
		margin-top: 12rpx;
	}

	.bottom {
		position: fixed;
		bottom: 0;
		left: 0;
		z-index: 10;
		width: 750rpx;
		height: 140rpx;
		padding: 0 32rpx;
		background-color: #fff;
		display: flex;
		justify-content: space-between;
		align-items: center;
	}

	.btn {
		flex: 1;
		height: 92rpx;
		background: $wly-primary-color;
		border-radius: 46rpx;
	}

	.btn-text {
		color: #fff;
		font-size: 34rpx;
	}

	.btn-r {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 40px;
		height: 48rpx;
		line-height: 48rpx;
		padding: 0;
		background-color: #F62C29;
	}

	.btn-r-text {
		color: #fff;
		font-size: 24rpx;
	}

	.steps {
		flex: 1;
		flex-direction: column;
		margin: 28rpx 0 32rpx;
	}

	.steps__row-text-container {
		align-items: flex-end;
		flex-direction: row;
	}

	.steps__row-text {
		flex: 1;
		flex-direction: column;
	}

	.steps__row-title {
		font-size: 12px;
		line-height: 16px;
		text-align: center;
		color: $text-base-color;
	}

	.steps__row-title-active {
		color: #ff3e61;
	}

	.steps__row-container {
		margin-bottom: 16rpx;
	}

	.steps__row-line-item {
		flex: 1;
		height: 14px;
		line-height: 14px;
		align-items: center;
		justify-content: center;
	}

	.steps__row-line--before {
		transform: translateX(-1px);
	}

	.icon-dot {
		width: 16rpx;
		height: 16rpx;
		background: #E5E5E5;
		border-radius: 50%;
	}

	.icon-dot-active {
		background: #ff1d32;
	}

	.steps__row-line--after {
		transform: translateX(1px);
	}

	.steps__row-line {
		flex: 1;
		height: 1px;
		background-color: #E5E5E5;
	}

	.steps__row-line--active {
		background: #ff3e61;
		border-radius: 1px;
	}

	.steps__row-circle {
		// background: #E5E5E5;
	}

	.steps__row-line--hide {
		background-color: transparent;
	}
	::v-deep  .str-auto-complete-container{
		// min-width: 50%;
		max-width: 50%;
		position: fixed;
	}
	::v-deep  .str-auto-complete-item{
		line-height: 1;
	}
	::v-deep  .iac-input-wrap{
		min-height: 96rpx;
	}
	::v-deep  .uni-input-input{
		font-size: 28rpx;
	}
</style>
