| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 | 
							- <template>
 
- 	<view class="page" :style="{'min-height':h+'px', 'padding-top':mt+'px'}">
 
- 		<cus-header title='报告详情'></cus-header>
 
- 		<div class="pdf" :style="{'height':'calc(100vh - '+(mt+20)+'px)'}"
 
- 			@touchstart.prevent="touchStart" @touchmove.prevent="touchMove" @touchend.prevent="touchEnd">
 
- 			<div class="items" :style="{'transform':`translateX(${-(currentIndex * bl)}%)`,'transition':moveDistance !== 0 ? 'none' : 'transform 0.3s ease'}">
 
- 				<div class="item" v-for="(item,index) in slides" :key="index">
 
- 					<image :src="item" mode="widthFix" @touchstart="e=>touchStart2(e,item)" @touchend="touchEnd2"></image>
 
- 				</div>
 
- 			</div>
 
- 		</div>
 
- 		<div class="bottom">
 
- 			<div class="zt_btn" @tap="askReport">对报告提问</div>
 
- 		</div>
 
- 	</view>
 
- </template>
 
- <script>
 
- 	export default {
 
- 		data(){
 
- 			return {
 
- 				pdfUrl:'',
 
- 				fileName:'',
 
- 				slides:[],
 
- 				startX: 0,
 
- 				currentIndex: 0,
 
- 				moveDistance: 0,
 
- 				bl:0,
 
- 				touchStartTime: 0,
 
- 				longPressTimeout: null
 
- 			}
 
- 		},
 
- 		onLoad(option) {
 
- 			this.pdfUrl = option.pdfUrl;
 
- 			this.fileName = option.fileName;
 
- 			this.getDetail(option.reportId);
 
- 		},
 
- 		methods:{
 
- 			getDetail(reportId){
 
- 				this.$api.get('/core/report/member/viewReport/'+reportId).then(res=>{
 
- 					if(res.data.code!==0) return this.$showToast(res.data.msg)
 
- 					this.slides = res.data.data;
 
- 					this.bl = 100/res.data.data.length;
 
- 				})
 
- 			},
 
- 			askReport(){
 
- 				uni.navigateTo({
 
- 					url:`/pages/reportAsk?pdfUrl=${this.pdfUrl}&fileName=${this.fileName}`
 
- 				})
 
- 			},
 
- 			touchStart(event) {
 
- 			  this.startX = event.touches[0].clientX;
 
- 			  this.moveDistance = 0;
 
- 			},
 
- 			touchMove(event) {
 
- 			  const currentX = event.touches[0].clientX;
 
- 			  this.moveDistance = currentX - this.startX;
 
- 			},
 
- 			touchEnd() {
 
- 			  if (this.moveDistance > 50 && this.currentIndex > 0) {
 
- 			    this.currentIndex--;
 
- 			  } else if (this.moveDistance < -50 && this.currentIndex < this.slides.length - 1) {
 
- 			    this.currentIndex++;
 
- 			  }
 
- 			  this.moveDistance = 0; // 重置移动距离
 
- 			},
 
- 			touchStart2(e,img) {
 
- 			    this.touchStartTime = Date.now();
 
- 			    this.longPressTimeout = setTimeout(() => {
 
- 			        this.previewImage(img);
 
- 			    }, 1000);
 
- 			},
 
- 			touchEnd2() {
 
- 				clearTimeout(this.longPressTimeout);
 
- 			},
 
- 			previewImage(img) {
 
- 				uni.previewImage({
 
- 					urls: [img]
 
- 				});
 
- 			}
 
- 		}
 
- 	}
 
- </script>
 
- <style scoped lang="less">
 
- 	.page{
 
- 		padding: 0 24px 192rpx;
 
- 		box-sizing: border-box;
 
- 		background: #FFFFFF;
 
- 		
 
- 		.pdf{
 
- 			width: 100%;
 
- 			overflow-x: hidden;
 
- 			position: relative;
 
- 			.items{
 
- 				display: flex;
 
- 				width: fit-content; 
 
- 				.item{
 
- 					width: 702rpx;
 
- 					flex: 1;
 
- 					image{
 
- 						width: 100%;
 
- 					}
 
- 				}
 
- 			}
 
- 		}
 
- 		
 
- 		.bottom{
 
- 			width: 100%;
 
- 			height: 172rpx;
 
- 			background: #FFFFFF;
 
- 			box-shadow: 0rpx -2rpx 8rpx 0rpx rgba(0,0,0,0.06);
 
- 			padding: 34rpx 40rpx;
 
- 			box-sizing: border-box;
 
- 			position: fixed;
 
- 			left: 0;
 
- 			bottom: 0;
 
- 		}
 
- 	}
 
- </style>
 
 
  |