forked from angelo/web-retail-h5
				
			
		
			
				
	
	
		
			284 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			284 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
| <!-- TreeList.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_bottom">
 | |
| 				<tree-item :data="treeData"></tree-item>
 | |
| 			</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>
 | |
| 
 | |
| 
 | |
| 	</view>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| 	import TreeItem from '@/components/treeItem.vue';
 | |
| 	import * as arc from '@/config/architecture.js'
 | |
| 	export default {
 | |
| 		name: 'TreeList',
 | |
| 		components: {
 | |
| 			TreeItem
 | |
| 		},
 | |
| 		data() {
 | |
| 			return {
 | |
| 				avaerInfoList: [],
 | |
| 				queryParams: {
 | |
| 					memberSettlePeriodId: "", //期数
 | |
| 					memberCode: "", //会员编号
 | |
| 					level: "", //代数
 | |
| 				},
 | |
| 				memberSettlePeriodList: [], //期数
 | |
| 				treeData: [],
 | |
| 				popShow: false,
 | |
| 				listShow: false,
 | |
| 				settleName: ""
 | |
| 			};
 | |
| 		},
 | |
| 		onLoad() {
 | |
| 			this.getAvarerInfo();
 | |
| 			this.getDataList()
 | |
| 		},
 | |
| 		methods: {
 | |
| 			confirm(e) {
 | |
| 				this.queryParams.memberSettlePeriodId = e.value[0].pkId
 | |
| 				this.settleName = e.value[0].settleDate
 | |
| 				this.listShow = false
 | |
| 			},
 | |
| 			clearAll() {
 | |
| 				this.popShow = false
 | |
| 				this.settleName = ""
 | |
| 				this.queryParams = {
 | |
| 					memberSettlePeriodId: "", //期数
 | |
| 					memberCode: "", //会员编号
 | |
| 					level: "", //代数
 | |
| 				}
 | |
| 				this.getDataList()
 | |
| 			},
 | |
| 			getAvarerInfo() {
 | |
| 				arc.getAvarerInfo().then((res) => {
 | |
| 					this.avaerInfoList = res.data;
 | |
| 				});
 | |
| 				arc.getMemberSettlePeriod().then(res => {
 | |
| 					this.memberSettlePeriodList = [res.data]
 | |
| 				})
 | |
| 			},
 | |
| 			getDataList() {
 | |
| 				arc.getTjFramework(this.queryParams).then(res => {
 | |
| 					this.treeData = res.data
 | |
| 				})
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| </script>
 | |
| <style lang="scss" scoped>
 | |
| 	.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: 38rpx 20rpx;
 | |
| 		background: #FFFFFF;
 | |
| 		margin-top: 25rpx;
 | |
| 	}
 | |
| 
 | |
| 	.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;
 | |
| 				}
 | |
| 
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| </style> |