565 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			565 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Vue
		
	
	
	
| <template>
 | |
| 	<view>
 | |
| 		<view class="seach">
 | |
| 			<view class="neibox">
 | |
| 				会员编号
 | |
| 			</view>
 | |
| 			<view class="seach_i">
 | |
| 				<u--input class="these" v-model="queryParams.memberCode">
 | |
| 					<template slot='suffix'>
 | |
| 						<view class="seatch_r">
 | |
| 							<u-icon @click="getDataList" name="search" size="22" color="#fff"></u-icon>
 | |
| 						</view>
 | |
| 					</template>
 | |
| 				</u--input>
 | |
| 			</view>
 | |
| 			<view class="neibox" @click="popShow = true">
 | |
| 				筛选
 | |
| 			</view>
 | |
| 
 | |
| 		</view>
 | |
| 		<view class="mainbox">
 | |
| 			<view class="main_top">
 | |
| 				<view class="top_flex" v-for="item,index in avaerInfoList" :key="index">
 | |
| 					<img class="theimg" :src="item.value" alt="">
 | |
| 					<view class="fle2">{{item.name}}</view>
 | |
| 				</view>
 | |
| 
 | |
| 			</view>
 | |
| 
 | |
| 			<view class="main_bottom">
 | |
| 				<view class="scoll_main" ref="scrollMain" @touchstart="handleTouchStart" @touchmove="handleTouchMove"
 | |
| 					@touchend="handleTouchEnd">
 | |
| 					<TreeChart3 :size="size" :json="data" :class="{ landscape: landscape.length }"
 | |
| 						@click-node="clickNode" @click-top='clickTop' />
 | |
| 				</view>
 | |
| 			</view>
 | |
| 		</view>
 | |
| 		<u-popup :show="popShow" mode="right" @close="popShow = false" :closeOnClickOverlay="false">
 | |
| 			<view class="rightPopup">
 | |
| 				<view class="popup_top">
 | |
| 					<view @click="()=>{getDataList(),popShow = false}">筛选</view>
 | |
| 					<view class="top_red" @click="popShow = false">{{'返回'}}</view>
 | |
| 				</view>
 | |
| 				<view class="typesBox">
 | |
| 					<view class="typeTitle" @click='listShow=true'>
 | |
| 						结算期数
 | |
| 					</view>
 | |
| 					<view class="choiceBox">
 | |
| 						<view class="inputbox" @click="listShow=true">
 | |
| 							<view class="">
 | |
| 								{{settleName?settleName:"请选择"}}
 | |
| 							</view>
 | |
| 							<u-icon name="arrow-right" size="24rpx" color="#090000"></u-icon>
 | |
| 						</view>
 | |
| 					</view>
 | |
| 				</view>
 | |
| 				<view class="typesBox">
 | |
| 					<view class="typeTitle">
 | |
| 						代数
 | |
| 					</view>
 | |
| 					<view class="choiceBox">
 | |
| 						<u--input v-model="queryParams.level"
 | |
| 							style="background-color: rgba(176, 196, 222, .45);border-color:rgba(176, 196, 222, .45)!important;"
 | |
| 							placeholder="请输入" border="surround" shape='circle'></u--input>
 | |
| 					</view>
 | |
| 				</view>
 | |
| 
 | |
| 				<view class="popup_bottom">
 | |
| 					<view class="bottom_btn thebtn1" @click="clearAll">清空筛选条件</view>
 | |
| 					<view class="bottom_btn thebtn2" @click="()=>{getDataList(),popShow = false}">{{'确定'}}
 | |
| 					</view>
 | |
| 				</view>
 | |
| 
 | |
| 			</view>
 | |
| 			<u-picker @cancel='listShow=false' :show="listShow" ref="uPicker" :columns="memberSettlePeriodList"
 | |
| 				@confirm="confirm" keyName='settleDate'></u-picker>
 | |
| 
 | |
| 		</u-popup>
 | |
| 		
 | |
| 		<Eposter width="750" height="1334" :list="list" backgroundColor="rgb(255, 255, 255)" @on-success="onSuccess"
 | |
| 			ref="Eposter">
 | |
| 		</Eposter>
 | |
| 	</view>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| 	import html2canvas from 'html2canvas';
 | |
| 	import TreeChart3 from "@/components/architectures/resettleSO3.vue";
 | |
| 	import Eposter from '@/components/architectures/Poster.vue';
 | |
| 
 | |
| 	import * as arc from '@/config/architecture.js'
 | |
| 	export default {
 | |
| 		components: {
 | |
| 			TreeChart3,
 | |
| 			Eposter
 | |
| 		},
 | |
| 		data() {
 | |
| 			return {
 | |
| 				avaerInfoList: [],
 | |
| 				treeData: [],
 | |
| 				queryParams: {
 | |
| 					memberSettlePeriodId: "", //期数
 | |
| 					memberCode: "", //会员编号
 | |
| 					level: 3, //代数
 | |
| 					type: 3
 | |
| 				},
 | |
| 				memberSettlePeriodList: [], //期数
 | |
| 				popShow: false,
 | |
| 				listShow: false,
 | |
| 				settleName: "",
 | |
| 				data: {},
 | |
| 				size: 0.8,
 | |
| 				landscape: [],
 | |
| 				popMould: {},
 | |
| 				isPop: false,
 | |
| 				touchStartPosition1: {
 | |
| 					x: 0,
 | |
| 					y: 0
 | |
| 				},
 | |
| 				touchStartPosition2: {
 | |
| 					x: 0,
 | |
| 					y: 0
 | |
| 				},
 | |
| 				initialDistance: 0,
 | |
| 				list: []
 | |
| 
 | |
| 			};
 | |
| 		},
 | |
| 		onLoad() {
 | |
| 			this.getAvarerInfo();
 | |
| 			this.getDataList()
 | |
| 		},
 | |
| 		methods: {
 | |
| 			
 | |
| 
 | |
| 			handleTouchStart(event) {
 | |
| 				const touch1 = event.touches[0];
 | |
| 				const touch2 = event.touches[1];
 | |
| 				if (touch2) {
 | |
| 					this.touchStartPosition1 = {
 | |
| 						x: touch1.pageX,
 | |
| 						y: touch1.pageY
 | |
| 					};
 | |
| 					this.touchStartPosition2 = {
 | |
| 						x: touch2.pageX,
 | |
| 						y: touch2.pageY
 | |
| 					};
 | |
| 					this.initialDistance = Math.hypot(touch2.pageX - touch1.pageX, touch2.pageY - touch1.pageY);
 | |
| 				}
 | |
| 			},
 | |
| 			handleTouchMove(event) {
 | |
| 				const touch1 = event.touches[0];
 | |
| 				const touch2 = event.touches[1];
 | |
| 				if (touch2) {
 | |
| 					const currentDistance = Math.hypot(touch2.pageX - touch1.pageX, touch2.pageY - touch1.pageY);
 | |
| 					const scale = currentDistance / this.initialDistance;
 | |
| 					this.size = this.size * scale;
 | |
| 
 | |
| 				}
 | |
| 			},
 | |
| 			handleTouchEnd() {
 | |
| 				this.touchStartPosition1 = {
 | |
| 					x: 0,
 | |
| 					y: 0
 | |
| 				};
 | |
| 				this.touchStartPosition2 = {
 | |
| 					x: 0,
 | |
| 					y: 0
 | |
| 				};
 | |
| 				this.initialDistance = 0;
 | |
| 			},
 | |
| 			clickNode(e) {
 | |
| 				
 | |
| 			},
 | |
| 			clickTop(e) {
 | |
| 				let that = this;
 | |
| 				if (e) {
 | |
| 					that.queryParams.memberCode = e.memberCode
 | |
| 					that.getDataList()
 | |
| 				}
 | |
| 			},
 | |
| 			confirm(e) {
 | |
| 				this.queryParams.memberSettlePeriodId = e.value[0].pkId
 | |
| 				this.settleName = e.value[0].settleDate
 | |
| 				this.listShow = false
 | |
| 			},
 | |
| 			getAvarerInfo() {
 | |
| 				arc.getAvarerInfo().then((res) => {
 | |
| 					this.avaerInfoList = res.data;
 | |
| 				});
 | |
| 				arc.getMemberSettlePeriod().then(res => {
 | |
| 					this.memberSettlePeriodList = [res.data]
 | |
| 				})
 | |
| 			},
 | |
| 			getDataList() {
 | |
| 				arc.getAzFramework(this.queryParams).then((res) => {
 | |
| 					this.data = res.data[0];
 | |
| 				});
 | |
| 			},
 | |
| 			clearAll() {
 | |
| 				this.popShow = false
 | |
| 				this.settleName = ""
 | |
| 				this.queryParams = {
 | |
| 					memberSettlePeriodId: "", //期数
 | |
| 					memberCode: "", //会员编号
 | |
| 					level: 3, //代数
 | |
| 					type: 3
 | |
| 				}
 | |
| 				this.getDataList()
 | |
| 			},
 | |
| 
 | |
| 		}
 | |
| 	}
 | |
| </script>
 | |
| <style lang="scss" scoped>
 | |
| 	.ispop_box {
 | |
| 		padding: 27rpx;
 | |
| 		padding-top: 60rpx;
 | |
| 		width: 670rpx;
 | |
| 		font-size: 24rpx;
 | |
| 		color: #333333;
 | |
| 
 | |
| 		.pop_top {
 | |
| 			display: flex;
 | |
| 			justify-content: space-between;
 | |
| 			align-items: center;
 | |
| 
 | |
| 			.poster1 {
 | |
| 				height: 88rpx;
 | |
| 				width: 88rpx;
 | |
| 			}
 | |
| 
 | |
| 			.poster2 {
 | |
| 				width: 88rpx;
 | |
| 				height: 54rpx;
 | |
| 				border-radius: 10rpx;
 | |
| 				margin-left: 20rpx;
 | |
| 			}
 | |
| 
 | |
| 			.top_right {
 | |
| 				display: flex;
 | |
| 				flex-direction: column;
 | |
| 				align-items: center;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		.pop_center {
 | |
| 			.center_flex {
 | |
| 				display: flex;
 | |
| 				align-items: center;
 | |
| 				margin-top: 20rpx;
 | |
| 
 | |
| 				.c1 {
 | |
| 					width: 20%;
 | |
| 
 | |
| 				}
 | |
| 
 | |
| 				.c2 {
 | |
| 					width: 80%;
 | |
| 					display: flex;
 | |
| 					justify-content: center;
 | |
| 					align-items: center;
 | |
| 					background: #F3F3F3;
 | |
| 					border: 2rpx solid #EEEEEE;
 | |
| 					border-radius: 8rpx;
 | |
| 					padding: 10rpx 0;
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		.pop_bottom {
 | |
| 			margin: 20rpx 0;
 | |
| 			border-top: 2rpx solid #eeeeee;
 | |
| 			border-top: 2rpx solid #eeeeee;
 | |
| 
 | |
| 			.b_flex {
 | |
| 				display: flex;
 | |
| 
 | |
| 				.bt1 {
 | |
| 					display: flex;
 | |
| 					justify-content: center;
 | |
| 					align-items: center;
 | |
| 					margin-top: 22rpx;
 | |
| 					flex: 1;
 | |
| 				}
 | |
| 
 | |
| 				.bt2 {
 | |
| 					display: flex;
 | |
| 					justify-content: center;
 | |
| 					align-items: center;
 | |
| 					margin-top: 22rpx;
 | |
| 					flex: 1;
 | |
| 					background: #F3F3F3;
 | |
| 					border: 2rpx solid #EEEEEE;
 | |
| 					border-radius: 8rpx;
 | |
| 					padding: 12rpx 0;
 | |
| 					margin: 11rpx 18rpx;
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		.btn_box {
 | |
| 			display: flex;
 | |
| 			align-items: center;
 | |
| 			justify-content: space-between;
 | |
| 
 | |
| 			.small-btn {
 | |
| 				width: 312rpx;
 | |
| 				height: 72rpx;
 | |
| 				background: #005BAC;
 | |
| 				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 #005BAC;
 | |
| 				border-radius: 34rpx;
 | |
| 				display: flex;
 | |
| 				justify-content: center;
 | |
| 				align-items: center;
 | |
| 				font-size: 28rpx;
 | |
| 				color: #005BAC;
 | |
| 
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	.operate-btnboxs {
 | |
| 		padding: 29rpx 26rpx;
 | |
| 		background-color: #ffffff;
 | |
| 
 | |
| 		.d-c-c {
 | |
| 			display: flex;
 | |
| 			align-items: center;
 | |
| 			justify-content: center;
 | |
| 
 | |
| 			.operate-btn {
 | |
| 				width: 64rpx;
 | |
| 				height: 64rpx;
 | |
| 				margin: 5rpx;
 | |
| 				// background: #F2F2F2;
 | |
| 				border-radius: 5rpx;
 | |
| 				padding: 0;
 | |
| 				box-sizing: border-box;
 | |
| 				display: flex;
 | |
| 				justify-content: center;
 | |
| 				align-items: center;
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 	.rightPopup {
 | |
| 		width: 645rpx;
 | |
| 		height: 100%;
 | |
| 		overflow: auto;
 | |
| 
 | |
| 		.popup_top {
 | |
| 			padding: 25rpx;
 | |
| 			background-color: rgba(176, 196, 222, .45);
 | |
| 			display: flex;
 | |
| 			justify-content: space-between;
 | |
| 			align-items: center;
 | |
| 			font-size: 28rpx;
 | |
| 			font-family: Source Han Sans CN;
 | |
| 			font-weight: 400;
 | |
| 			color: #333333;
 | |
| 
 | |
| 			.top_red {
 | |
| 				color: #005BAC;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		.popup_bottom {
 | |
| 			display: flex;
 | |
| 			align-items: center;
 | |
| 			position: absolute;
 | |
| 			left: 0;
 | |
| 			bottom: 0;
 | |
| 			width: 100%;
 | |
| 
 | |
| 			.bottom_btn {
 | |
| 				flex: 1;
 | |
| 				padding: 20rpx 0;
 | |
| 				text-align: center;
 | |
| 				font-size: 28rpx;
 | |
| 			}
 | |
| 
 | |
| 			.thebtn1 {
 | |
| 				background-color: rgba(176, 196, 222, .45);
 | |
| 				color: #333333;
 | |
| 			}
 | |
| 
 | |
| 			.thebtn2 {
 | |
| 				background-color: #005BAC;
 | |
| 				color: #ffffff;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		.typesBox {
 | |
| 			margin-top: 40rpx;
 | |
| 
 | |
| 			.typeTitle {
 | |
| 				padding: 0 24rpx;
 | |
| 				font-size: 30rpx;
 | |
| 				font-family: Source Han Sans CN;
 | |
| 				font-weight: bold;
 | |
| 				color: #333333;
 | |
| 			}
 | |
| 
 | |
| 			.choiceBox {
 | |
| 				padding: 0 12rpx;
 | |
| 				display: flex;
 | |
| 				margin-top: 17rpx;
 | |
| 				align-items: center;
 | |
| 				flex-wrap: wrap;
 | |
| 
 | |
| 				.inputbox {
 | |
| 					font-size: 26rpx;
 | |
| 					width: 100%;
 | |
| 					padding: 20rpx 32rpx;
 | |
| 					border-radius: 20rpx;
 | |
| 					background-color: rgba(176, 196, 222, .45);
 | |
| 					display: flex;
 | |
| 					justify-content: space-between;
 | |
| 					align-items: center;
 | |
| 				}
 | |
| 
 | |
| 				.flex_btn {
 | |
| 					background-color: rgba(176, 196, 222, .45);
 | |
| 					display: flex;
 | |
| 					align-items: center;
 | |
| 					justify-content: center;
 | |
| 					padding: 14rpx 48rpx;
 | |
| 					border-radius: 26rpx;
 | |
| 					font-size: 24rpx;
 | |
| 					font-family: Source Han Sans CN;
 | |
| 					font-weight: 400;
 | |
| 					color: #333333;
 | |
| 					margin: 17rpx 5rpx;
 | |
| 				}
 | |
| 
 | |
| 				.timesbtn {
 | |
| 					flex: 1;
 | |
| 				}
 | |
| 
 | |
| 				.selectbtn {
 | |
| 					background-color: #005BAC;
 | |
| 					color: #ffffff;
 | |
| 				}
 | |
| 
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	.seach {
 | |
| 		background: #fff;
 | |
| 		overflow: hidden;
 | |
| 		padding: 20rpx 23rpx;
 | |
| 		display: flex;
 | |
| 		justify-content: space-between;
 | |
| 		align-items: center;
 | |
| 		position: relative;
 | |
| 		border-bottom: 2rpx solid #eee;
 | |
| 
 | |
| 		.these {
 | |
| 			border: none;
 | |
| 			padding: 10rpx 0 !important;
 | |
| 		}
 | |
| 
 | |
| 		.seach_i {
 | |
| 			padding: 0 20rpx;
 | |
| 			border-radius: 34rpx;
 | |
| 			background: #fff;
 | |
| 			flex: 1;
 | |
| 			background: #f5f6f8;
 | |
| 			margin: 0 20rpx;
 | |
| 		}
 | |
| 
 | |
| 		.neibox {
 | |
| 			display: flex;
 | |
| 			align-items: center;
 | |
| 			font-size: 26rpx;
 | |
| 			font-family: PingFang SC;
 | |
| 			font-weight: 400;
 | |
| 			color: #999999;
 | |
| 		}
 | |
| 
 | |
| 		.seatch_r {
 | |
| 			background: #005BAC;
 | |
| 			border-radius: 50%;
 | |
| 			padding: 8rpx;
 | |
| 		}
 | |
| 
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	.mainbox {
 | |
| 		padding: 26rpx 22rpx;
 | |
| 
 | |
| 		.main_top {
 | |
| 			background: #FFFFFF;
 | |
| 			border-radius: 20rpx;
 | |
| 			padding: 20rpx 4rpx;
 | |
| 			display: flex;
 | |
| 			flex-wrap: wrap;
 | |
| 
 | |
| 			.top_flex {
 | |
| 				display: flex;
 | |
| 				flex-direction: column;
 | |
| 				align-items: center;
 | |
| 				margin: 15rpx 20rpx;
 | |
| 				// justify-content: center;
 | |
| 				width: 98rpx;
 | |
| 
 | |
| 				.theimg {
 | |
| 					width: 92rpx;
 | |
| 					height: 92rpx;
 | |
| 					border-radius: 50%;
 | |
| 				}
 | |
| 
 | |
| 				.flex2 {
 | |
| 					font-size: 26rpx;
 | |
| 					font-family: Source Han Sans CN;
 | |
| 					font-weight: 400;
 | |
| 					color: #666666;
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		.main_bottom {
 | |
| 			width: 100%;
 | |
| 			height: calc(100vh - 600rpx);
 | |
| 			margin-top: 25rpx;
 | |
| 			background-color: #ffffff;
 | |
| 			padding: 38rpx 0;
 | |
| 
 | |
| 			border-radius: 20rpx;
 | |
| 
 | |
| 		}
 | |
| 
 | |
| 		.scoll_main {
 | |
| 			width: 700rpx;
 | |
| 			height: calc(100vh - 600rpx);
 | |
| 			overflow: auto;
 | |
| 
 | |
| 			// overflow: scroll;
 | |
| 			// overflow-x: auto;
 | |
| 
 | |
| 		}
 | |
| 	}
 | |
| </style> |