<template>
	<view class="index tn-safe-area-inset-bottom"  style="background: #f7f7f7;min-height: 100vh;">

		<tn-nav-bar customBack>
			<view slot="back" class='tn-custom-nav-bar__back' @click="goBack()">
				<text class='icon tn-icon-left'></text>
			</view>

			<view slot="default" style="display: flex;">
				<view style="flex:1;">
					<text :style="{fontSize:(wxFontSize)+'px'}">速立保</text>
				</view>

			</view>
		</tn-nav-bar>

		<view :style="{paddingTop: vuex_custom_bar_height + 'px'}">
				 
				<view class="tn-flex tn-flex-direction-column  tn-margin-top-sm ">
				
							<!-- 图文信息 -->
							<block v-for="(item,index) in content" :key="item.id">
								<view class="blogger__item" style="border-radius: 12px;margin: 12px 16px 12px 16px; background-color: #fff;"  :key="index">
									<view class="blogger__author tn-flex tn-flex-row-between tn-flex-col-center">
										<view class="justify__author__info">
											<view class="tn-flex tn-flex-row-center">
												<view class="tn-flex tn-flex-row-center tn-flex-col-center">
													<view class="" style="width: 5px;height: 5px;background: #E18730;border-radius: 50%;margin-right: 4px;">
													</view> 
													<view class="tn-padding-right">
														<view class="tn-padding-right tn-text-lg" style="color:#333;font-weight: 600;"  :style="{fontSize:(wxFontSize)+'px'}">
															{{ item.company||(item.contactNickName||item.contactPerson) }}
														</view>
														<!-- <view class="tn-padding-right tn-padding-left-sm tn-padding-top-xs tn-color-gray">{{ item.date }}</view> -->
													</view>
												</view>
											</view>
										</view>
										<view v-if="isNeed==1&&item.validDate"
											class="blogger__author__btn justify-content-item tn-flex-col-center tn-flex-row-center">
											<text class="" style="background: #E6E8F4;font-size: 12px;word-break: keep-all;padding: 8px;color: #8383F7;border-radius: 24px;border-top-right-radius: 0;" :style="{fontSize:(wxFontSize-6)+'px'}">{{item.validDate}}</text>
										</view>		 
									</view>
				
									<view
										class="blogger__desc tn-margin-top-sm tn-margin-bottom-sm tn-text-justify tn-flex-col-center tn-flex-row-left"
										>
										<tn-tag margin="-4px 4px 0 0" backgroundColor="#005da61a" v-if="item.brand"
											fontColor="#005DA6" shape="circle" :fontSize="wxFontSize+8" @click="showBrand('品牌：'+item.brand)">{{ item.brand }}</tn-tag>
										<tn-tag margin="-4px 4px 0 0" backgroundColor="#005da61a" v-if="!item.company"
											fontColor="#005DA6" shape="circle" :fontSize="wxFontSize+8" @click="showBrand('个人发布')">个人</tn-tag>
									</view>
									<view style="border-radius: 0px 0px 0px 0px;width:calc(100% + 32px);margin-left:-16px;border-bottom: 1px solid #E6E6E6;"></view>
									
									<view v-if="item.content" style="padding: 12px 12px 5px 5px;"> 
										<text 
											class="blogger__desc__content tn-flex-1 tn-text-justify tn-text-df" style="color:#747E87" :style="{fontSize:(wxFontSize-2)+'px'}">{{ item.content }}</text>
									</view>
				
									<!-- 内容太多疲劳了-->
									<view v-if="item.shareExt&&item.shareExt.length>0" :id="`blogger__content--${index}`">
										
										<view v-for="(sitem,index) in item.shareExt" :key="sitem.id">
											<view style="padding: 12px 0 8px 5px;color:#005DA6;"  :style="{fontSize:(wxFontSize-3)+'px'}">
												 {{sitem.prodName}}
											</view>
											<view style="padding: 8px 8px 0 5px;color:#333;display: flex;"  :style="{fontSize:(wxFontSize-3)+'px'}">
												 <text style="color: #777;white-space: nowrap;">产品型号：</text>{{sitem.prodSpec}}
											</view>
											<view v-if="sitem.prodDesc" style="padding: 8px 8px 0 5px;color:#333;display: flex;"  :style="{fontSize:(wxFontSize-3)+'px'}">
												 <text style="color: #777;white-space: nowrap;">产品介绍：</text><text>{{sitem.prodDesc}}</text>
											</view>
										</view>
									 
									</view>
				
									<block v-if="item.imgList&&item.imgList.length>0">
										<view v-if="[1,2,4].indexOf(item.imgList.length) != -1" class="tn-padding-top-xs"
											>
											<image v-for="(image_item,image_index) in item.imgList" :key="image_index"
												class="blogger__main-image" :class="{
				          'blogger__main-image--1 tn-margin-bottom-sm': item.imgList.length === 1,
				          'blogger__main-image--2 tn-margin-right-sm tn-margin-bottom-sm': item.imgList.length === 2 || item.imgList.length === 4
				        }" :src="image_item.ftpUrl" mode="aspectFill" @click="showImg(item.imgList,image_index)"></image>
										</view>
										<view v-else class="tn-padding-top-xs" @click="tn('')">
											<tn-grid hoverClass="none" :col="3">
												<block v-for="(image_item,image_index) in item.imgList" :key="image_index">
													<!-- #ifndef MP-WEIXIN -->
													<tn-grid-item style="width: 30%;margin: 10rpx;">
														<image class="blogger__main-image blogger__main-image--3"
															:src="image_item.ftpUrl" mode="aspectFill" @click="showImg(item.imgList,image_index)"></image>
													</tn-grid-item>
													<!-- #endif-->
													<!-- #ifdef MP-WEIXIN -->
													<tn-grid-item style="width: 30%;margin: 10rpx;">
														<image class="blogger__main-image blogger__main-image--3"
															:src="image_item.ftpUrl" mode="aspectFill" @click="showImg(item.imgList,image_index)"></image>
													</tn-grid-item>
													<!-- #endif-->
												</block>
											</tn-grid>
										</view>
									</block>
				
									
									<view v-for="(file,fIndex) in item.fileDetailList" :style="{marginTop:item.imgList&&item.imgList.length==0&&fIndex==0?'8px':'0'}" style="background-color:#005da60d ;margin-bottom: 4px;padding: 4px 8px;border-radius: 4px;"  @click="clickLink(file.ftpUrl,file.fileName)" :key="file.id" v-if="!isImage(file.fileName)">
										<view>
											<image src="../../../static/tu/link.png" style="width: 18px;height: 18px;vertical-align: bottom;"></image>
											<view style="display: inline;margin-left:8px;color:#005DA6;" :style="{fontSize:(wxFontSize-3)+'px'}">
												{{file.fileName}}</view>
										</view>
									</view>
									
									<view class="tn-flex tn-flex-row-between tn-flex-col-center tn-margin-top-xs">
										<view class="justify-content-item tn-color-gray tn-text-center">
											<view class="tn-padding-right   tn-padding-top-xs" :style="{fontSize:(wxFontSize-3)+'px',color:'#777'}">
												{{ item.createTime|formatDate }}
											</view>
										
										</view>
										<view class="justify-content-item tn-flex tn-flex-col-center" style="position: relative">
											<image style="width: 30px;height:30px;" @click="showActionSheet(item)" src="../../../static/tu/more.png"></image>
									
											<view v-if="curItem.id==item.id&&showSheet" class="pop-dia" style="position: absolute;background: #E4F1FB;display: block;right: 10px;top: 24px;border-radius: 6px;z-index: 900;">
											 
												<view class="content" style="padding: 8px;font-size: 16px;line-height: 24px; width: 180px;border-radius: 6px;z-index: -1;"
													v-if="!showContact">
													<button @click="linkTel()" style="border: none;border-radius: 0;color: #333333;background-color: #E4F1FB;border-bottom: 1px solid rgb(0 93 166 / 0.2);">
														 <image src="../../../static/tu/call.png" style="width: 26px;height: 26px;margin-right:10px;vertical-align: middle;"> {{isNeed==1?'联系需方':'联系供方'}}</button>
													<!-- <view>联系我们帮助对接</view> -->
													<button v-if="!collStatus" @click="addColl"
														style="border: none;border-radius: 0;color: #333333;background-color: #E4F1FB;border-bottom: 1px solid rgb(0 93 166 / 0.2);" type="default" plain="true">
														<image src="../../../static/tu/coll.png" style="width: 26px;height: 26px;margin-right:10px;vertical-align: sub;">
														收&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;藏</button>
													<button v-if="collStatus" @click="delColl"
														style="border: none;border-radius: 0;color: #333333;background-color: #E4F1FB;border-bottom: 1px solid rgb(0 93 166 / 0.2);" type="default" plain="true">
														<image src="../../../static/tu/coll.png" style="width: 26px;height: 26px;margin-right:10px;vertical-align: sub;"> 取消收藏</button>
													<button open-type="share"
														style="border: none;border-radius: 0;color: #333333;background-color: #E4F1FB;" type="default" plain="true" :data-coupon="curItem">
														<image src="../../../static/tu/share.png" style="width: 26px;height: 26px;margin-right:10px;vertical-align: sub;">
														转&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;发</button>
												</view>
												<view class="content " style="position: relative;background: linear-gradient( 180deg, #DAECFA 0%, #FFFFFF 27%, #FFFFFF 100%);padding: 24px 40px;padding-bottom: 32px;font-size: 16px;width: calc(100vw - 80px);line-height: 24px;border-radius: 12px;"
													v-if="showContact">
													<view><text style="font-size: 19px;font-weight: bold;color: #333;" v-if="curContact.company">{{curContact.company}}</text></view>
													<view style="margin-top:10px;font-size: 17px;text-align: center;color:#333">
														<image src="../../../static/tu/person.png" style="width: 24px;height: 24px;vertical-align: sub;">
													<text style="margin-left: 6px;">{{curContact.contactPerson}}</text> </view>
													<view style="margin-top:10px;font-size: 17px;text-align: center;color:#333" @click="showTel(curContact.contactMethod)">
														<image src="../../../static/tu/tel.png" style="width: 24px;height: 24px;vertical-align: middle;">
														<text style="margin-left: 4px;">{{curContact.contactMethod}}</text> 
													</view>
													
													<image src="../../../static/tu/close.png" style="width: 40px;height: 40px;position: absolute; left: calc(50vw - 60px);bottom: -64px;" @click="hideSheet()"></image>
												</view>
												<view style="position: fixed;top: 0;left: 0;height: 100000vh;width: 100%;background: rgb(0 0 0 / 0.5);z-index: -1;" @click="hideSheet()" v-if="showContact"></view>
											</view>
										</view>
									</view>
								</view>
							</block>

							<view v-if="showEmpty&&content.length==0" style="margin-top: 32vh;">
								<tn-empty mode="list"></tn-empty>
							</view>
				
						</view> 
				 
		</view> 
		 
	</view>
</template>

<script>
	import request from '../../../utils/request'

	export default {
		data() {
			return {
				bisNo:'',
				isNeed:'',
				imgList:[],
				fileDetailList:[],
				showHistory: false,
				content: [],
				contentValue:'',
				contactMethod:uni.getStorageSync('userInfo')?JSON.parse(uni.getStorageSync('userInfo')).userName:'',
				typeValue:1,
				 
				showEmpty: false,
				content:[],
				curItem:{},
				showSheet:false,
				collStatus:false,
				columns: [{
					fieldName: 'prodName',
					fieldDesc: '产品名称',
				
				}, {
					fieldName: 'prodSpec',
					fieldDesc: '产品型号',
				
				}, {
					fieldName: 'prodDesc',
					fieldDesc: '产品介绍',
				
				}],
				curContact:{},
				showContact: false,
				wxFontSize:17
			}
		},
		filters: {
			formatDate(value) {
				if (!value) return '';
				const date = new Date(value);
				const today = new Date();
				const yesterday = new Date(today); // 昨天的日期
				yesterday.setDate(yesterday.getDate() - 1); // 将昨天的日期设置为前一天

				if (date.getFullYear() == today.getFullYear() && date.getMonth() == today.getMonth() && date.getDate() ==
					today.getDate()) {
					return '今天 ' + (date.getHours() > 9 ? '' : '0') + date.getHours() + ':' + (date
						.getMinutes() > 9 ? '' : '0') + date.getMinutes(); // 根据需要格式化日期
				}
				if (date.getFullYear() == yesterday.getFullYear() && date.getMonth() == yesterday.getMonth() && date
					.getDate() == yesterday.getDate()) {
					return '昨天 ' + (date.getHours() > 9 ? '' : '0') + date.getHours() + ':' + (date
						.getMinutes() > 9 ? '' : '0') + date.getMinutes(); // 根据需要格式化日期
				}
				return date.toLocaleDateString() + ' ' + (date.getHours() > 9 ? '' : '0') + date.getHours() + ':' + (date
					.getMinutes() > 9 ? '' : '0') + date.getMinutes(); // 根据需要格式化日期
			},


		},
		created() {
			// uni.navigateTo({
			// 	url:'/pages/mine/addFeed'
			// })
		},
		methods: {
			showBrand(text){
				uni.showToast({
					title: text,
					icon: 'none'
				})
			},
			 showHis(){
				uni.navigateTo({
					url:'/pages/mine/feedback'
				}) 
			 },
			 
			goBack() {
				const pages = getCurrentPages()
				// 有可返回的页面则直接返回，uni.navigateBack 默认返回失败之后会自动刷新页面 ，无法继续返回
				if (pages.length > 1) {
					uni.navigateBack()
					return;
				}else{
					uni.reLaunch({
						url: '/pages/index/index'
					})
				}
			},
			isImage(fileName) {
				const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'ico']
				const extension = fileName.split('.').pop().toLowerCase();
				return imageExtensions.includes(extension);
			},
			showImg(items, index) {
				let urls = [];
				for (let i = 0; i < items.length; i++) {
					urls.push(items[i].ftpUrl);
				}
				// wx.chooseMessageFile({
				//   count: 3, //默认100
				//   type:'file',
				//   extension:['.pdf','.doc'],
				// 	success: function (res) {
				// 		console.error(JSON.stringify(res));
				// 	}
				// });
				// 预览图片
				uni.previewImage({
					urls: urls,
					current: index,
			
				});
			},
			clickLink(url,fileName) {
				// uni.navigateTo({
				// 	url:'/pages/webview/web-view?url='+encodeURIComponent('https://slb-m.lx-device.com/webview?title='+fileName+'&url='+ url),
				// })
				uni.downloadFile({
				  url: url,
				  filePath: wx.env.USER_DATA_PATH + "/" + fileName,
				  success: function (res) {
				    const filePath = res.filePath
				    uni.openDocument({
				      filePath: filePath,
					  showMenu: true,
				      success: function (res) {
				        console.log('打开文档成功')
				      },
					  fail: function(){
						  uni.navigateTo({
						  	url:'/pages/webview/web-view?url='+encodeURIComponent('https://slb-m.lx-device.com/webview?title='+fileName+'&url='+ url),
						  })
					  }
				    })
				  }
				})
				// uni.navigateTo({
				// 	url: '/pages/webview/web-view?url=' + url,
				// })
			},
			hideSheet(){
				this.showSheet = false;
			},
			showActionSheet(item) {
				let that = this;
				console.warn(item);
				this.curItem = item;
				this.curItem.isNeed = 1;
				this.collStatus = false;
				this.showSheet = true;
				that.showContact = false;
				if (uni.getStorageSync('userNo')) {
					let params = {};
			
					params = {
						fkBisNo: that.curItem.bisNo,
						userNo: uni.getStorageSync('userNo'),
					};
					request.post('/slbCollect/query', params).then(res => {
						if (res.success) {
							if (res.list && res.list.length > 0) {
								that.collStatus = true;
								that.collId = res.list[0].id;
							}
						}
					})
				}
			},
			linkTel() {
			
				if (!uni.getStorageSync('userNo')) {
					uni.showToast({
						title: '请登录',
						icon:'none'
					})
					uni.navigateTo({
						url: '/pages/login/login'
					})
					return false;
				}
				let that = this;
				let params = {};
				params.slbBisContact = JSON.stringify({
					fkBisNo: that.curItem.bisNo,
					bisType: that.isNeed==1?'1':'2',
					type: '1',
					company: that.curItem.company,
					companyNo: that.curItem.companyNo,
					userNo: uni.getStorageSync('userNo'),
				});
				request.post('/slbBisContact/add', params).then(res => {
					if (res.success) {
						that.showContact = true;
						that.curContact.company = that.curItem.company;
						that.curContact.contactMethod = res.resultMap.contactMethod;
						that.curContact.contactPerson = res.resultMap.contactPerson;
					} else {
						that.showContact = false;
						uni.showToast({
							title: res.msg,
							icon: 'none'
						})
					}
				})
			},
			
			addColl() {
				if (!uni.getStorageSync('userNo')) {
					uni.showToast({
						title: '请登录',
						icon:'none'
					})
					uni.navigateTo({
						url: '/pages/login/login'
					})
					return false;
				}
				let that = this;
				let params = {};
				params.slbCollect = JSON.stringify({
					fkBisNo: that.curItem.bisNo,
					bisType: that.isNeed==1?'1':'2',
					userNo: uni.getStorageSync('userNo'),
				});
				request.post('/slbCollect/add', params).then(res => {
					if (res.success) {
						that.showSheet = false;
						uni.showToast({
						  title: '信息已收藏，请在我的收藏里查看阅读',
						  icon: 'none',
						  duration: 2000
						})
					} else {
						uni.showToast({
							title: res.msg,
							icon:'none'
						})
					}
				})
			
			},
			delColl() {
				let that = this;
				request.post('/slbCollect/del', {
					id: that.collId
				}).then(res => {
					if (res.success) {
						that.showSheet = false;
						uni.showToast({
						  title: '此'+(that.isNeed==1?'需求':'供应')+'信息将不会保存在我的收藏里',
						  icon: 'none',
						  duration: 2000
						})
					} else {
						uni.showToast({
							title: res.msg,
							icon:'none'
						})
					}
				})
			},
			loadData(){
				let that = this;
			 
				request.post(that.isNeed==1?'/slbResourceDemand/query':'/slbResourceShare/query', {
					 
					bisNo: that.bisNo
				}).then(res => {
					 
					if (res.success) {
						 
						let newList = res.list || [];
						for (let i = 0; i < newList.length; i++) {
							newList[i].imgList = [];
							for (let j = 0; j < newList[i].fileDetailList.length; j++) {
								if (that.isImage(newList[i].fileDetailList[j].fileName)) {
									newList[i].imgList.push(newList[i].fileDetailList[j]);
								}
							}
						}
						if (1 == 1) {
							that.content = newList || [];
						} else {
							that.content = that.content.concat(newList || []);
						}
						// that.showEmpty = true;
					}
					console.warn(res);
				})
			},
			sleep(time) {
			    return new Promise((resolve) => setTimeout(resolve, time));
			},	
			onShareAppMessage: function(option) {
				this.addLog(this.curItem)
				this.showSheet = false;
				this.sleep(1500);
				return;
			},
			addLog(shareData){
				const that = this;
				let params= {
					bisNo:shareData.bisNo,
					bisType:that.isNeed==1?'1':'2',
					company: shareData.company,
				 	companyNo: shareData.companyNo,
					userNo:uni.getStorageSync('userNo')
				};
				
				request.post('/slbForward/add',{slbForward:JSON.stringify(params)},{
					  headers: {
						'Content-Type': 'application/json', // 默认值
					  },
				}).then(res=>{
							 
				})
			},
			showTel(tel){
				uni.makePhoneCall({
				  phoneNumber: tel,
				});
			},
		},
		onLoad(props) {
			const appBaseInfo = wx.getAppBaseInfo();
			this.wxFontSize = uni.getStorageSync('fontSize')||appBaseInfo.fontSizeSetting||17;
			
			 this.bisNo = props.id;
			 this.isNeed = props.isNeed;
			 this.loadData();
		}
	}
</script>

<style lang="scss" scoped>
	/* 胶囊*/
	.tn-custom-nav-bar__back {
		width: 60%;
		height: 100%;
		position: relative;
		display: flex;
		justify-content: space-evenly;
		align-items: center;
		box-sizing: border-box;
		// background-color: rgba(0, 0, 0, 0.15);
		border-radius: 1000rpx;
		border: 1rpx solid rgba(255, 255, 255, 0.5);
		// color: #FFFFFF;
		font-size: 18px;

		.icon {
			display: block;
			flex: 1;
			margin: auto;
			text-align: center;
		}

		&:before {
			content: " ";
			width: 1rpx;
			height: 110%;
			position: absolute;
			top: 22.5%;
			left: 0;
			right: 0;
			margin: auto;
			transform: scale(0.5);
			transform-origin: 0 0;
			pointer-events: none;
			box-sizing: border-box;
			opacity: 0.7;
			background-color: #FFFFFF;
		}
	}
	
	
	/* 文章内容 start*/
	.blogger {
		&__item {
			padding: 30rpx;
		}
	
		&__author {
			&__btn {
				margin-right: -12rpx;
				opacity: 0.5;
			}
		}
	
		&__desc {
			line-height: 30rpx;
	
			&__label {
	
				color: #1D2541;
				background-color: #F3F2F7;
				border-radius: 10rpx;
				font-size: 22rpx;
	
				padding: 5rpx 15rpx;
				margin: 5rpx 18rpx 0 0;
	
				&--prefix {
					font-size: 24rpx;
					color: #1D2541;
					padding-right: 10rpx;
				}
			}
	
			&__content {
				line-height: 50rpx;
			}
		}
	
		&__content {
			margin-top: 18rpx;
			padding-right: 18rpx;
	
			&__data {
				line-height: 46rpx;
				text-align: justify;
				overflow: hidden;
				transition: all 0.25s ease-in-out;
	
			}
	
			&__status {
				margin-top: 10rpx;
				font-size: 26rpx;
				color: #82B2FF;
			}
		}
	
		&__main-image {
			border: 1rpx solid #F8F7F8;
			border-radius: 16rpx;
	
			&--1 {
				max-width: 80%;
				max-height: 300rpx;
			}
	
			&--2 {
				max-width: 260rpx;
				max-height: 260rpx;
			}
	
			&--3 {
				height: 212rpx;
				width: 100%;
			}
		}
	
		&__count-icon {
			font-size: 40rpx;
			padding-right: 5rpx;
		}
	
		&__ad {
			width: 100%;
			height: 500rpx;
			transform: translate3d(0px, 0px, 0px) !important;
	
			::v-deep .uni-swiper-slide-frame {
				transform: translate3d(0px, 0px, 0px) !important;
			}
	
			.uni-swiper-slide-frame {
				transform: translate3d(0px, 0px, 0px) !important;
			}
	
			&__item {
				position: absolute;
				width: 100%;
				height: 100%;
				transform-origin: left center;
				transform: translate3d(100%, 0px, 0px) scale(1) !important;
				transition: transform 0.25s ease-in-out;
				z-index: 1;
	
				&--0 {
					transform: translate3d(0%, 0px, 0px) scale(1) !important;
					z-index: 4;
				}
	
				&--1 {
					transform: translate3d(13%, 0px, 0px) scale(0.9) !important;
					z-index: 3;
				}
	
				&--2 {
					transform: translate3d(26%, 0px, 0px) scale(0.8) !important;
					z-index: 2;
				}
			}
	
			&__content {
				border-radius: 40rpx;
				width: 640rpx;
				height: 500rpx;
				overflow: hidden;
			}
	
			&__image {
				width: 100%;
				height: 100%;
			}
		}
	}
</style>