713 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			713 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Vue
		
	
	
	
| <template>
 | ||
| 	<view>
 | ||
| 		<view class="d-b-c topx-box">
 | ||
| 			<view class="f26 gray6 mr10">{{$t('MN_T_1')}}</view>
 | ||
| 			<view class="search-box">
 | ||
| 				<input type="text" name="">
 | ||
| 				<view class="icon-search"><u-icon name="search" color="#ffffff" size="30rpx"></u-icon></view>
 | ||
| 			</view>
 | ||
| 			<view class="f26 gray6 ml10">{{$t('MY_ORD_50')}}</view>
 | ||
| 		</view>
 | ||
| 		<view class="center-box">
 | ||
| 			<view class="example-box" v-if="example&&example!=''">
 | ||
| 				<view class="example-item d-c d-c-c" v-for="(item,index) in example" :key="index">
 | ||
| 					<image class="example-ava" :src="item.value" mode=""></image>
 | ||
| 					<view class="example-name">{{item.name}}</view>
 | ||
| 					<!-- <view class="example-name tc">Municipal level agency</view> -->
 | ||
| 				</view>
 | ||
| 			</view>
 | ||
| 			<view class="operate-btnboxs left">
 | ||
| 				<view class="d-c-c mb10">
 | ||
| 					<button class="f22 operate-btn" @click="changeTop(50)">
 | ||
| 						<u-icon width="48rpx" height="48rpx" name="/static/icon/tree/arr-top.png"></u-icon>
 | ||
| 					</button>
 | ||
| 				</view>
 | ||
| 				<view class="d-c-c">
 | ||
| 					<button class="f22 operate-btn" @click="changeLeft(50)">
 | ||
| 						<u-icon width="48rpx" height="48rpx" name="/static/icon/tree/arr-right.png"></u-icon>
 | ||
| 					</button>
 | ||
| 					<button class="f22 operate-btn m-0-10" @click="changeTop(-50)">
 | ||
| 						<u-icon width="48rpx" height="48rpx" name="/static/icon/tree/arr-down.png"></u-icon>
 | ||
| 					</button>
 | ||
| 					<button class="f22 operate-btn" @click="changeLeft(-50)">
 | ||
| 						<u-icon width="48rpx" height="48rpx" name="/static/icon/tree/arr-left.png"></u-icon>
 | ||
| 					</button>
 | ||
| 				</view>
 | ||
| 			</view>
 | ||
| 			<view class="d-c-c operate-btnboxs right">
 | ||
| 				<button class="f22 mr10 operate-btn-r" @click="changeSize(0.05)">
 | ||
| 					<u-icon width="48rpx" height="48rpx" name="/static/icon/tree/fangda.png"></u-icon>
 | ||
| 				</button>
 | ||
| 				<button class="f22 mr10 operate-btn-r" @click="changeSize(-0.05)">
 | ||
| 					<u-icon width="48rpx" height="48rpx" name="/static/icon/tree/suoxiao.png"></u-icon>
 | ||
| 				</button>
 | ||
| 				<button class="f22 operate-btn-r" @click="restTree()">
 | ||
| 					<u-icon width="48rpx" height="48rpx" name="/static/icon/tree/reset.png"></u-icon>
 | ||
| 				</button>
 | ||
| 			</view>
 | ||
| 			<view class="scroll-box">
 | ||
| 				<TreeChart :left="left" :top="top" :size="size" :json="listData"
 | ||
| 					:class="{ landscape: landscape.length }" @click-node="clickNode" />
 | ||
| 			</view>
 | ||
| 			<template v-if="isPop">
 | ||
| 				<view class="pop-bg"></view>
 | ||
| 				<view class="pop-usercontent">
 | ||
| 					<view class="d-e-c">
 | ||
| 						<u-icon name="close" size="32rpx" color="#999" @click="isPop = false"></u-icon>
 | ||
| 					</view>
 | ||
| 					<view class="Poster1 posterbox">
 | ||
| 						<view class="d-b-c mb20">
 | ||
| 							<view class="d-b-c">
 | ||
| 								<view>
 | ||
| 									<image crossorigin="anonymous" data-etype="image" :data-enode="popMould.avatarUrl"
 | ||
| 										:src="popMould.avatarUrl" mode="aspectFit" class="pop-userava Poster1"></image>
 | ||
| 								</view>
 | ||
| 								<view class="ml20">
 | ||
| 									<image crossorigin="anonymous" data-etype="image" :data-enode="popMould.countryUrl2"
 | ||
| 										:src="popMould.countryUrl2" mode="aspectFit" class="pop-country Poster1"></image>
 | ||
| 								</view>
 | ||
| 							</view>
 | ||
| 							<view>
 | ||
| 								<view class="mb10">
 | ||
| 									<image crossorigin="anonymous" data-etype="image" :data-enode="popMould.settleCountryUrl2"
 | ||
| 										:src="popMould.settleCountryUrl2" mode="aspectFit" class="pop-country Poster1"></image>
 | ||
| 								</view>
 | ||
| 								<view data-enode="结算国家" class="f24 gray3 Poster1" style="z-index: 1">
 | ||
| 									{{$t('MN_F_18')}}
 | ||
| 								</view>
 | ||
| 							</view>
 | ||
| 						</view>
 | ||
| 						<view>
 | ||
| 							<view class="pb20 border-b">
 | ||
| 								<view class="d-s-c mb20">
 | ||
| 									<view data-enode="会员编号" class="f24 gray3 content-name Poster1" style="z-index: 1">
 | ||
| 										<view class="f24 gray3 content-name">会员编号</view>
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.memberCode" class="content-box Poster1 text-ellipsis-2"
 | ||
| 										style="z-index: 1">
 | ||
| 										{{popMould.memberCode}}
 | ||
| 									</view>
 | ||
| 								</view>
 | ||
| 								<view class="d-s-c mb20">
 | ||
| 									<view data-enode="会员姓名" class="f24 gray3 Poster1 content-name" style="z-index: 1">
 | ||
| 										会员姓名
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.name" class="content-box Poster1 text-ellipsis-2"
 | ||
| 										style="z-index: 1">
 | ||
| 										{{popMould.name}}
 | ||
| 									</view>
 | ||
| 								</view>
 | ||
| 								<view class="d-s-c">
 | ||
| 									<view data-enode="支付时间" class="f24 gray3 Poster1 content-name" style="z-index: 1">
 | ||
| 										支付时间
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.payDate" class="content-box text-ellipsis-2"
 | ||
| 										style="z-index: 1">
 | ||
| 										{{popMould.payDate}}
 | ||
| 
 | ||
| 									</view>
 | ||
| 								</view>
 | ||
| 							</view>
 | ||
| 							<view class="pt20">
 | ||
| 								<!--   复购结余  -->
 | ||
| 								<view class="d-b-c mb20 Poster1">
 | ||
| 									<view data-enode="业绩(PV)" class="flex-1 tc text-ellipsis Poster1"
 | ||
| 										style="z-index: 1">
 | ||
| 										业绩(PV)
 | ||
| 									</view>
 | ||
| 									<view data-enode="左区" class="flex-1 tc text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										左区
 | ||
| 									</view>
 | ||
| 									<view data-enode="右区" class="flex-1 tc text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										右区
 | ||
| 									</view>
 | ||
| 								</view>
 | ||
| 								<view class="content-box-item Poster1">
 | ||
| 									<view data-enode="真实新增" class="flex-1 content-box text-ellipsis Poster1"
 | ||
| 										style="z-index: 1">
 | ||
| 										真实新增
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.leftRealNewPv"
 | ||
| 										class="flex-1 content-box text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										{{popMould.leftRealNewPv}}
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.rightRealNewPv"
 | ||
| 										class="flex-1 content-box text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										{{popMould.rightRealNewPv}}
 | ||
| 									</view>
 | ||
| 								</view>
 | ||
| 								<view class="content-box-item Poster1">
 | ||
| 									<view data-enode="首购新增" class="flex-1 content-box text-ellipsis Poster1"
 | ||
| 										style="z-index: 1">
 | ||
| 										首购新增
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.leftFirstPurchaseAdd"
 | ||
| 										class="flex-1 content-box text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										{{popMould.leftFirstPurchaseAdd}}
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.rightFirstPurchaseAdd"
 | ||
| 										class="flex-1 content-box text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										{{popMould.rightFirstPurchaseAdd}}
 | ||
| 									</view>
 | ||
| 								</view>
 | ||
| 								<view class="content-box-item Poster1">
 | ||
| 									<view data-enode="复购新增" class="flex-1 content-box text-ellipsis Poster1"
 | ||
| 										style="z-index: 1">
 | ||
| 										复购新增
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.leftRepeatPurchaseSurplus"
 | ||
| 										class="flex-1 content-box text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										{{popMould.leftRepeatPurchaseSurplus}}
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.rightRepeatPurchaseSurplus"
 | ||
| 										class="flex-1 content-box text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										{{popMould.rightRepeatPurchaseSurplus}}
 | ||
| 									</view>
 | ||
| 								</view>
 | ||
| 								<view class="content-box-item Poster1">
 | ||
| 									<view data-enode="真实累计" class="flex-1 content-box text-ellipsis Poster1"
 | ||
| 										style="z-index: 1">
 | ||
| 										真实累计
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.leftRealTotal"
 | ||
| 										class="flex-1 content-box text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										{{popMould.leftRealTotal}}
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.rightRealTotal"
 | ||
| 										class="flex-1 content-box text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										{{popMould.rightRealTotal}}
 | ||
| 									</view>
 | ||
| 								</view>
 | ||
| 								<view class="content-box-item Poster1">
 | ||
| 									<view data-enode="首购累计" class="flex-1 content-box text-ellipsis Poster1"
 | ||
| 										style="z-index: 1">
 | ||
| 										首购累计
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.leftFirstTotal"
 | ||
| 										class="flex-1 content-box text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										{{popMould.leftFirstTotal}}
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.rightFirstTotal"
 | ||
| 										class="flex-1 content-box text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										{{popMould.rightFirstTotal}}
 | ||
| 									</view>
 | ||
| 								</view>
 | ||
| 								<view class="content-box-item Poster1">
 | ||
| 									<view data-enode="复购累计" class="flex-1 content-box text-ellipsis Poster1"
 | ||
| 										style="z-index: 1">
 | ||
| 										复购累计
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.leftRepeatPurchaseTotal"
 | ||
| 										class="flex-1 content-box text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										{{popMould.leftRepeatPurchaseTotal}}
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.rightRepeatPurchaseTotal"
 | ||
| 										class="flex-1 content-box text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										{{popMould.rightRepeatPurchaseTotal}}
 | ||
| 									</view>
 | ||
| 								</view>
 | ||
| 								<view class="content-box-item Poster1">
 | ||
| 									<view data-enode="首购结余" class="flex-1 content-box text-ellipsis Poster1"
 | ||
| 										style="z-index: 1">
 | ||
| 										首购结余
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.leftFirstSurplus"
 | ||
| 										class="flex-1 content-box text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										{{popMould.leftFirstSurplus}}
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.rightFirstSurplus"
 | ||
| 										class="flex-1 content-box text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										{{popMould.rightFirstSurplus}}
 | ||
| 									</view>
 | ||
| 								</view>
 | ||
| 								<view class="content-box-item Poster1">
 | ||
| 									<view data-enode="复购结余" class="flex-1 content-box text-ellipsis Poster1"
 | ||
| 										style="z-index: 1">
 | ||
| 										复购结余
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.leftRepeatPurchaseSurplus"
 | ||
| 										class="flex-1 content-box text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										{{popMould.leftRepeatPurchaseSurplus}}
 | ||
| 									</view>
 | ||
| 									<view :data-enode="popMould.rightRepeatPurchaseSurplus"
 | ||
| 										class="flex-1 content-box text-ellipsis Poster1" style="z-index: 1">
 | ||
| 										{{popMould.rightRepeatPurchaseSurplus}}
 | ||
| 									</view>
 | ||
| 								</view>
 | ||
| 							</view>
 | ||
| 						</view>
 | ||
| 					</view>
 | ||
| 					<view class="d-b-c">
 | ||
| 						<view class="small-btn flex-1 mr20" @click="downImage('Poster1')">{{$t('S_C_45')}}</view>
 | ||
| 						<view class="small-text-btn flex-1" @click="copyText()">{{$t('N_I_243')}}</view>
 | ||
| 					</view>
 | ||
| 				</view>
 | ||
| 			</template>
 | ||
| 
 | ||
| 			<!-- <movable-area class="scroll-box">
 | ||
| 				<movable-view scale out-of-bounds :scale-value="0.5" :scale-max="20" :scale-min="0.1" direction="all">
 | ||
| 					<view class="bg-white pt30 mt0 pr" v-if="listData != null">
 | ||
| 						<TreeChart  :left="left" :top="top" :json="listData" :class="{ landscape: landscape.length }" />
 | ||
| 					</view>
 | ||
| 				</movable-view>
 | ||
| 			</movable-area>
 | ||
|  -->
 | ||
| 		</view>
 | ||
| 		<Eposter width="750" height="1334" :list="list" backgroundColor="rgb(255, 255, 255)" @on-success="onSuccess"
 | ||
| 			ref="Eposter">
 | ||
| 		</Eposter>
 | ||
| 	</view>
 | ||
| </template>
 | ||
| 
 | ||
| <script>
 | ||
| 	import TreeChart from "@/components/treeParent/resettleSO.vue";
 | ||
| 	import Eposter from '@/components/evils-el-poster/Poster.vue';
 | ||
| 	export default {
 | ||
| 		components: {
 | ||
| 			TreeChart,
 | ||
| 			Eposter
 | ||
| 		},
 | ||
| 		data() {
 | ||
| 			return {
 | ||
| 				list: [],
 | ||
| 				detailModel: {
 | ||
| 
 | ||
| 				},
 | ||
| 				top: 0,
 | ||
| 				left: 0,
 | ||
| 				startData: {
 | ||
| 					clientX: '',
 | ||
| 
 | ||
| 					clientY: ''
 | ||
| 				},
 | ||
| 				moveX: 0,
 | ||
| 				moveY: 0,
 | ||
| 				touch: {},
 | ||
| 				example: [],
 | ||
| 				landscape: [],
 | ||
| 				listData: null,
 | ||
| 				size: 1.0,
 | ||
| 				downImg: [],
 | ||
| 				isPop: false,
 | ||
| 				popMould: {
 | ||
| 
 | ||
| 				}
 | ||
| 			}
 | ||
| 		},
 | ||
| 		onShow() {
 | ||
| 			this.getExample();
 | ||
| 			this.getData();
 | ||
| 		},
 | ||
| 		methods: {
 | ||
| 			copyText() {
 | ||
| 				let self = this;
 | ||
| 				let md = self.popMould;
 | ||
| 				let text = `
 | ||
| 				会员编号:${md.memberCode} \n
 | ||
| 				会员姓名:${md.name}
 | ||
| 				支付时间:${md.payDate} \n
 | ||
| 				业绩(PV)  左区  右区 \n
 | ||
| 				真实新增  ${md.leftRealNewPv}  ${md.rightRealNewPv} \n
 | ||
| 				首购新增  ${md.leftFirstPurchaseAdd}  ${md.rightFirstPurchaseAdd} \n
 | ||
| 				复购新增  ${md.leftRepeatPurchaseSurplus}  ${md.rightRepeatPurchaseSurplus} \n
 | ||
| 				真实累计  ${md.leftRealTotal}  ${md.rightRealTotal} \n
 | ||
| 				首购累计  ${md.leftFirstTotal}  ${md.rightFirstTotal} \n
 | ||
| 				复购累计  ${md.leftRepeatPurchaseTotal}  ${md.rightRepeatPurchaseTotal} \n
 | ||
| 				首购结余  ${md.leftFirstSurplus}  ${md.rightFirstSurplus} \n
 | ||
| 				复购结余  ${md.leftRepeatPurchaseSurplus}  ${md.rightRepeatPurchaseSurplus} \n
 | ||
| 				`;
 | ||
| 				uni.setClipboardData({
 | ||
| 					data: text,
 | ||
| 					success: function(res) {
 | ||
| 						uni.getClipboardData({
 | ||
| 							success: function(res) {
 | ||
| 								uni.showToast({
 | ||
| 									title: self.$t('MY_CK_29')
 | ||
| 								})
 | ||
| 							}
 | ||
| 						})
 | ||
| 					}
 | ||
| 				})
 | ||
| 			},
 | ||
| 			downloadImg() {
 | ||
| 				let self = this;
 | ||
| 				let n = 0;
 | ||
| 				uni.showLoading({
 | ||
| 					title: self.$t('w_0413')
 | ||
| 				});
 | ||
| 				self.downImg = [this.posterImg];
 | ||
| 				self.downImg.forEach((item, index) => {
 | ||
| 					// 图片保存到本地
 | ||
| 					uni.saveImageToPhotosAlbum({
 | ||
| 						filePath: item,
 | ||
| 						success(data) {
 | ||
| 							n++;
 | ||
| 							if (n == self.downImg.length) {
 | ||
| 								uni.showToast({
 | ||
| 									icon: 'none',
 | ||
| 									title:  self.$t('fn_056'),
 | ||
| 									duration: 2000
 | ||
| 								});
 | ||
| 								uni.hideLoading();
 | ||
| 							}
 | ||
| 						},
 | ||
| 						fail(err) {
 | ||
| 							if (err.errMsg === 'saveImageToPhotosAlbum:fail auth deny') {
 | ||
| 								uni.showToast({
 | ||
| 									title: '请允许访问相册后重试',
 | ||
| 									icon: 'none',
 | ||
| 									duration: 1000
 | ||
| 								});
 | ||
| 								setTimeout(() => {
 | ||
| 									uni.openSetting();
 | ||
| 								}, 1000);
 | ||
| 							}
 | ||
| 							uni.hideLoading();
 | ||
| 							uni.showModal({
 | ||
| 								title:  self.$t('w_0406')
 | ||
| 							});
 | ||
| 							return;
 | ||
| 						},
 | ||
| 						complete(res) {
 | ||
| 							console.log('complete');
 | ||
| 						}
 | ||
| 					});
 | ||
| 				});
 | ||
| 			},
 | ||
| 			onError(err) {
 | ||
| 				console.log(`err`, err);
 | ||
| 			},
 | ||
| 			onSuccess(val) {
 | ||
| 				this.posterImg = val;
 | ||
| 				this.downloadImg(this.posterImg);
 | ||
| 			},
 | ||
| 			downImage(elClass) {
 | ||
| 				this.$refs.Eposter.createForElRect(elClass, false);
 | ||
| 			},
 | ||
| 			changeLeft(e) {
 | ||
| 				this.left += e;
 | ||
| 			},
 | ||
| 			changeTop(e) {
 | ||
| 				this.top += e;
 | ||
| 			},
 | ||
| 			changeSize(e) {
 | ||
| 				this.size += e;
 | ||
| 			},
 | ||
| 			restTree() {
 | ||
| 				this.left = 0;
 | ||
| 				this.top = 0;
 | ||
| 				this.size = 1.0;
 | ||
| 			},
 | ||
| 			clickNode(e) {
 | ||
| 				let self = this;
 | ||
| 				if (e) {
 | ||
| 					console.log(11111);
 | ||
| 					self.popMould = e;
 | ||
| 					self.isPop = true;
 | ||
| 
 | ||
| 					// self._post('member/manage/member-structure/get-url-base64', {
 | ||
| 					// 	avatarUrl: e.avatarUrl,
 | ||
| 					// 	countryUrl2: e.countryUrl2,
 | ||
| 					// 	settleCountryUrl2: e.settleCountryUrl2
 | ||
| 					// }, res => {
 | ||
| 					// 	self.popMould.avatarUrl = res.avatarUrlBase64;
 | ||
| 					// 	self.popMould.countryUrl2 = res.countryUrl2Base64;
 | ||
| 					// 	self.popMould.settleCountryUrl2 = res.settleCountryUrl2Base64;
 | ||
| 					// })
 | ||
| 
 | ||
| 				}
 | ||
| 			},
 | ||
| 			getExample() {
 | ||
| 				let self = this;
 | ||
| 				self._get('/member/api/member-structure/get-avatar-info', {}, res => {
 | ||
| 					self.example = res.data;
 | ||
| 				})
 | ||
| 			},
 | ||
| 			getData() {
 | ||
| 				let self = this;
 | ||
| 				self._get('/member/api/member-structure/az-framework', {
 | ||
| 					memberSettlePeriodId: 935,
 | ||
| 					memberCode: 'CN30720208',
 | ||
| 					level: 6,
 | ||
| 					type: 1
 | ||
| 				}, res => {
 | ||
| 					self.listData = res.data[0];
 | ||
| 				})
 | ||
| 			},
 | ||
| 			// 触摸touch事件
 | ||
| 
 | ||
| 			start(e) {
 | ||
| 				//@touchstart 触摸开始
 | ||
| 
 | ||
| 				this.transition = '.1s';
 | ||
| 
 | ||
| 				this.startData.clientX = e.changedTouches[0].clientX; //手指按下时的X坐标
 | ||
| 
 | ||
| 				this.startData.clientY = e.changedTouches[0].clientY; //手指按下时的Y坐标
 | ||
| 			},
 | ||
| 			end(e) {
 | ||
| 				//@touchend触摸结束
 | ||
| 
 | ||
| 				this.moveX = 0; //触摸事件结束恢复原状
 | ||
| 				this.moveY = 0; //触摸事件结束恢复原状
 | ||
| 
 | ||
| 				this.transition = '.5s';
 | ||
| 			},
 | ||
| 			move(event) {
 | ||
| 				//@touchmove触摸移动
 | ||
| 
 | ||
| 				let touch = event.touches[0]; //滑动过程中,手指滑动的坐标信息 返回的是Objcet对象
 | ||
| 
 | ||
| 				this.touch = touch;
 | ||
| 
 | ||
| 				let data = touch.clientX - this.startData.clientX;
 | ||
| 				let datay = touch.clientY - this.startData.clientY;
 | ||
| 
 | ||
| 				if (touch.clientX < this.startData.clientX) {
 | ||
| 					//向左移动
 | ||
| 
 | ||
| 					if (data < -375) {
 | ||
| 						data = -375;
 | ||
| 					}
 | ||
| 				}
 | ||
| 				if (touch.clientY < this.startData.clientY) {
 | ||
| 					//向左移动
 | ||
| 
 | ||
| 					if (datay < -375) {
 | ||
| 						datay = -375;
 | ||
| 					}
 | ||
| 				}
 | ||
| 				if (touch.clientX > this.startData.clientX) {
 | ||
| 					//向右移动
 | ||
| 					if (data > 375) {
 | ||
| 						data = 375;
 | ||
| 					}
 | ||
| 				}
 | ||
| 				if (touch.clientY > this.startData.clientY) {
 | ||
| 					//向右移动
 | ||
| 					if (datay > 375) {
 | ||
| 						datay = 375;
 | ||
| 					}
 | ||
| 				}
 | ||
| 				this.moveX = data;
 | ||
| 				this.moveY = datay;
 | ||
| 				this.top += this.moveY / 40;
 | ||
| 				this.left += this.moveX / 40;
 | ||
| 			},
 | ||
| 		}
 | ||
| 	}
 | ||
| </script>
 | ||
| 
 | ||
| <style lang="scss">
 | ||
| 	.center-box {
 | ||
| 		touch-action: none;
 | ||
| 	}
 | ||
| 
 | ||
| 	.center-box {
 | ||
| 		padding: 26rpx 22rpx;
 | ||
| 
 | ||
| 		.example-box {
 | ||
| 			background: #FFFFFF;
 | ||
| 			border-radius: 20rpx;
 | ||
| 			display: flex;
 | ||
| 			flex-wrap: wrap;
 | ||
| 			align-items: center;
 | ||
| 			justify-content: flex-start;
 | ||
| 			padding: 22rpx 0 28rpx 0;
 | ||
| 			height: 312rpx;
 | ||
| 			overflow-y: auto;
 | ||
| 			margin-bottom: 20rpx;
 | ||
| 
 | ||
| 			.example-item {
 | ||
| 				width: 20%;
 | ||
| 				flex-shrink: 0;
 | ||
| 				padding: 10rpx;
 | ||
| 				box-sizing: border-box;
 | ||
| 
 | ||
| 				.example-ava {
 | ||
| 					width: 104rpx;
 | ||
| 					height: 104rpx;
 | ||
| 					display: block;
 | ||
| 				}
 | ||
| 
 | ||
| 				.example-name {
 | ||
| 					font-size: 26rpx;
 | ||
| 					color: #666;
 | ||
| 					word-break: break-all;
 | ||
| 
 | ||
| 				}
 | ||
| 			}
 | ||
| 		}
 | ||
| 	}
 | ||
| 
 | ||
| 	.topx-box {
 | ||
| 		background-color: #fff;
 | ||
| 		padding: 20rpx 31rpx 20rpx 28rpx;
 | ||
| 	}
 | ||
| 
 | ||
| 	.search-box {
 | ||
| 		display: flex;
 | ||
| 		justify-content: center;
 | ||
| 		align-items: center;
 | ||
| 		width: 510rpx;
 | ||
| 		height: 65rpx;
 | ||
| 		background: #F5F6F8;
 | ||
| 		border-radius: 33rpx;
 | ||
| 		padding: 9rpx 12rpx;
 | ||
| 		box-sizing: border-box;
 | ||
| 
 | ||
| 		input {
 | ||
| 			flex: 1;
 | ||
| 			line-height: 65rpx;
 | ||
| 			font-size: 26rpx;
 | ||
| 			padding: 0 15rpx;
 | ||
| 		}
 | ||
| 	}
 | ||
| 
 | ||
| 	.icon-search {
 | ||
| 		width: 48rpx;
 | ||
| 		height: 48rpx;
 | ||
| 		background-color: #EE252A;
 | ||
| 		display: flex;
 | ||
| 		justify-content: center;
 | ||
| 		align-items: center;
 | ||
| 		color: #fff;
 | ||
| 		border-radius: 50%;
 | ||
| 	}
 | ||
| 
 | ||
| 	.operate-btnboxs {
 | ||
| 		position: absolute;
 | ||
| 		z-index: 101;
 | ||
| 		padding: 29rpx 26rpx;
 | ||
| 		box-sizing: border-box;
 | ||
| 	}
 | ||
| 
 | ||
| 	.operate-btnboxs.left {
 | ||
| 		left: 22rpx;
 | ||
| 	}
 | ||
| 
 | ||
| 	.operate-btnboxs.right {
 | ||
| 		right: 22rpx;
 | ||
| 	}
 | ||
| 
 | ||
| 	.operate-btn {
 | ||
| 		width: 64rpx;
 | ||
| 		height: 64rpx;
 | ||
| 		background: #F2F2F2;
 | ||
| 		border-radius: 5rpx;
 | ||
| 		padding: 0;
 | ||
| 		box-sizing: border-box;
 | ||
| 		display: flex;
 | ||
| 		justify-content: center;
 | ||
| 		align-items: center;
 | ||
| 	}
 | ||
| 
 | ||
| 	.operate-btn-r {
 | ||
| 		width: 64rpx;
 | ||
| 		height: 64rpx;
 | ||
| 		background: #F2F2F2;
 | ||
| 		border-radius: 5rpx;
 | ||
| 		padding: 0;
 | ||
| 		box-sizing: border-box;
 | ||
| 		display: flex;
 | ||
| 		justify-content: center;
 | ||
| 		align-items: center;
 | ||
| 	}
 | ||
| 
 | ||
| 	.scroll-box {
 | ||
| 		background-color: #fff;
 | ||
| 		border-radius: 33rpx;
 | ||
| 		width: 100%;
 | ||
| 		overflow: hidden;
 | ||
| 		height: calc(100vh - 104rpx - 362rpx - 72rpx);
 | ||
| 		// display: flex;
 | ||
| 		// justify-content: center;
 | ||
| 		// align-items: cen;
 | ||
| 	}
 | ||
| 
 | ||
| 	.pop-bg {
 | ||
| 		z-index: 103;
 | ||
| 	}
 | ||
| 
 | ||
| 	.pop-usercontent {
 | ||
| 		width: 704rpx;
 | ||
| 		background-color: #fff;
 | ||
| 		border-radius: 20rpx;
 | ||
| 		position: fixed;
 | ||
| 		left: 23rpx;
 | ||
| 		top: 40rpx;
 | ||
| 		z-index: 104;
 | ||
| 		padding: 20rpx 27rpx 20rpx 24rpx;
 | ||
| 		box-sizing: border-box;
 | ||
| 
 | ||
| 		.pop-userava {
 | ||
| 			width: 104rpx;
 | ||
| 			height: 104rpx;
 | ||
| 		}
 | ||
| 
 | ||
| 		.pop-country {
 | ||
| 			width: 88rpx;
 | ||
| 			height: 54rpx;
 | ||
| 		}
 | ||
| 	}
 | ||
| 
 | ||
| 	.posterbox {
 | ||
| 		padding: 20rpx 0;
 | ||
| 	}
 | ||
| 
 | ||
| 	.content-box {
 | ||
| 		flex: 1;
 | ||
| 		height: 52rpx;
 | ||
| 		background: #F3F3F3;
 | ||
| 		border: 1rpx solid #EEEEEE;
 | ||
| 		border-radius: 8rpx;
 | ||
| 		line-height: 52rpx;
 | ||
| 		padding: 0 15rpx;
 | ||
| 		text-align: center;
 | ||
| 	}
 | ||
| 
 | ||
| 	.content-name {
 | ||
| 		width: 120rpx;
 | ||
| 		margin-right: 16rpx;
 | ||
| 		word-break: break-all;
 | ||
| 	}
 | ||
| 
 | ||
| 	.content-box-item {
 | ||
| 		display: flex;
 | ||
| 		justify-content: center;
 | ||
| 		align-items: center;
 | ||
| 		margin-bottom: 17rpx;
 | ||
| 		font-size: 24rpx;
 | ||
| 		color: #333;
 | ||
| 
 | ||
| 		.content-box {
 | ||
| 			margin: 0 18rpx;
 | ||
| 		}
 | ||
| 	}
 | ||
| 
 | ||
| 	.small-btn {
 | ||
| 		width: 312rpx;
 | ||
| 		height: 72rpx;
 | ||
| 		background: #FB3024;
 | ||
| 		border-radius: 34rpx;
 | ||
| 		font-size: 28rpx;
 | ||
| 		font-weight: 400;
 | ||
| 		color: #FFFFFF;
 | ||
| 		display: flex;
 | ||
| 		justify-content: center;
 | ||
| 		align-items: center;
 | ||
| 	}
 | ||
| 
 | ||
| 	.small-text-btn {
 | ||
| 		width: 312rpx;
 | ||
| 		height: 72rpx;
 | ||
| 		border: 1px solid #FB3024;
 | ||
| 		border-radius: 34rpx;
 | ||
| 		display: flex;
 | ||
| 		justify-content: center;
 | ||
| 		align-items: center;
 | ||
| 		font-size: 28rpx;
 | ||
| 		color: #FB3024;
 | ||
| 
 | ||
| 	}
 | ||
| </style> |