| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446 | <template>	<dm-pop-view ref="popView" title="更多筛选" :isShowConfirm="false" :maskTapHide='true'>		<scroll-view class="screen_container" scroll-y="true">			<view class="screen-items" v-for="(item, idx) in dataList" :key="idx">				<block v-if="!(idx == 1 && screenValue == 1)">					<view class="screen_item_title">{{item.title}}</view>					<view class="level_tag_view">						<text class="level_tag" :style="{ color: item1.isSelect ? '#fff' : '#666', 'background-color': item1.isSelect ? themeColor : '#F1F5F9' }"						 v-for="(item1, idx1) in item.subList" :key="idx1" @click="selectAction(item1, idx)">							{{item1.title}}						</text>					</view>				</block>			</view>		</scroll-view>		<view class="bottom_btn">			<text class="reset_btn" :style="`background-color: ${themeColor25};`" @click="resetAction">重置</text>			<text class="pop_btn" :style="`background-color: ${themeColor};`" @click="sureAction">确定</text>		</view>	</dm-pop-view></template><script>	import dmPopView from './dmPopView.vue';	let app = getApp()	export default {		props: {			screenValue: {				type: [String, Number],				default: 0			},			houseId: {				type: [String, Number],				default: ''			},			isSingleProject: {				type: Boolean,				default: false			},			isBrand: Boolean,			defaultParameter: Object		},		data() {			return {				themeColor: null,				fuzhuColor: null,				themeColor50: null,				themeColor25: null,				fuzhuColor50: null,				dataList: [],				brandId: ''			}		},		mounted() {			this.themeColor = app.globalData.themeColor			this.themeColor50 = app.globalData.themeColor50			this.themeColor25 = app.globalData.themeColor25			this.fuzhuColor = app.globalData.fuzhuColor			this.fuzhuColor50 = app.globalData.fuzhuColor50			let that = this;			uni.getStorage({				//获得保存在本地的用户信息				key: 'userInfo',				success: res => {					if (res.data) {						//有数据,已登录						that.brandId = res.data.brandId;						that.reloadDatahandle()					}				}			});		},		methods: {			async dataHandle() {				if (!this.isSingleProject) {					return				}				var houseIds = []				if (this.houseId != '' && this.houseId != null) {					houseIds = [this.houseId]				}				var self = this				let res = await this.$myRequest({					url: '/elab-marketing-user/activity_ticket_record/get_ticket_activity',					data: {						brandId: self.brandId,						isBrand: self.isBrand,						dateType: self.defaultParameter.dateType,						maxDate: self.defaultParameter.endDate,						minDate: self.defaultParameter.startDate,						houseIds: houseIds,						type: self.screenValue + 1					}				})				if (res.data.success) {					var tempList = [{						title: '全部',						isSelect: true,						id: 0					}]					res.data.list.forEach((item, idx) => {						var data = {							title: item.activityName,							isSelect: false,							id: item.activityId						}						tempList.push(data)					})					this.dataList[3].subList = tempList					this.dataList.forEach((item, idx) => {						item.subList.forEach((item1, idx1) => {							if (item1.hasOwnProperty('idx')) {								item1.idx = idx1							} else {								item1['idx'] = idx1							}						})					})				}			},						async getActiveTypeDatahandle() {				if (!this.isSingleProject) {					return				}				var houseIds = []				if (this.houseId != '' && this.houseId != null) {					houseIds = [this.houseId]				}				var self = this				let res = await this.$myRequest({					url: '/elab-marketing-user/activity_ticket_record/get_ticket_activity_type',					data: {						brandId: self.brandId,						isBrand: self.isBrand,						dateType: self.defaultParameter.dateType,						maxDate: self.defaultParameter.endDate,						minDate: self.defaultParameter.startDate,						houseIds: houseIds,						type: self.screenValue + 1					}				})				if (res.data.success) {					var tempList = [{						title: '全部',						isSelect: true,						id: 0					}]					res.data.list.forEach((item, idx) => {						var data = {							title: item.activityTypeName,							isSelect: false,							id: item.activityType						}						tempList.push(data)					})					this.dataList[2].subList = tempList					this.dataList.forEach((item, idx) => {						item.subList.forEach((item1, idx1) => {							if (item1.hasOwnProperty('idx')) {								item1.idx = idx1							} else {								item1['idx'] = idx1							}						})					})				}			},							show() {				this.$refs.popView.show()			},			reloadDataList() {				this.dataList = [{						title: '排序',						subList: [{								title: '获券时间倒序',								isSelect: true,								id: 0							},							{								title: '获券时间正序',								isSelect: false,								id: 1							}						]					},					{						title: '奖券状态',						subList: [{								title: '全部',								isSelect: true,								id: 0							},							{								title: '可使用',								isSelect: false,								id: 1							},							{								title: '已使用',								isSelect: false,								id: 2							},							{								title: '已过期',								isSelect: false,								id: 3							}						]					},					{						title: '活动类型',						subList: []					},					{						title: '活动名称',						subList: []					}				]				this.dataList.forEach((item, idx) => {					item.subList.forEach((item1, idx1) => {						if (item1.hasOwnProperty('idx')) {							item1.idx = idx1						} else {							item1['idx'] = idx1						}					})				})			},			selectAction(e, index) {				this.dataList.forEach((item, idx) => {					if (index == idx) {						if (index > 1) {							var isHave = false							if (e.id != 0) {								item.subList.forEach((item1, idx1) => {									if (item1.idx == 0) {										item1.isSelect = false									}									if (item1.idx == e.idx) {										item1.isSelect = !item1.isSelect									}									if (item1.isSelect) {										isHave = true									}								})								if (!isHave) {									item.subList[0].isSelect = true								}							} else {								item.subList.forEach((item1, idx1) => {									item1.isSelect = false									if (item1.idx == 0) {										item1.isSelect = true									}								})							}						} else {							item.subList.forEach((item1, idx1) => {								item1.isSelect = item1.idx == e.idx ? true : false							})						}					}				})			},			sureAction() {				this.$emit('selectScreenAction', this.dataList)				this.$refs.popView.hide()			},			resetAction() {				this.dataList.forEach((item, idx) => {					item.subList.forEach((item1, idx1) => {						item1.isSelect = idx1 == 0 ? true: false					})				})				this.$emit('selectScreenAction', this.dataList)				this.$refs.popView.hide()			},			reloadDatahandle() {				this.reloadDataList()				this.dataHandle()				this.getActiveTypeDatahandle()				// var self = this				// Promise.all([				// 	self.dataHandle(),				// 	self.getActiveTypeDatahandle(),				// ]).then(res => {				// 	if (res && res.length == 2) {				// 		self.reloadDataList()				// 	}				// })			}		},		components: {			dmPopView		},		watch: {			screenValue: {				handler(e) {					this.reloadDatahandle()				},				immediate: true			},			houseId: {				handler(e) {					this.reloadDatahandle()				},				immediate: true			},			isSingleProject: {				handler(e) {					if (e) {						this.reloadDatahandle()					}				},				immediate: true			},			defaultParameter: {				handler(e) {					this.reloadDatahandle()				},				deep: true,				immediate: true			}		}	}</script><style scoped lang="scss">	.screen_container {		position: relative;		margin-bottom: 190rpx;		width: 750rpx;		max-height: 1000rpx;		.screen_item_title {			margin-left: 30rpx;			margin-top: 54rpx;			line-height: 44rpx;			font-size: 32rpx;			font-family: Verdana, Verdana-Bold;			font-weight: 700;			text-align: left;			color: #454545;		}		.level_tag_view {			margin-left: 30rpx;			margin-top: 0rpx;			display: flex;			flex-wrap: wrap;			align-content: center;			align-items: center;			.level_tag {				padding: 0 26rpx;				box-sizing: border-box;				margin-right: 16rpx;				min-width: 220rpx;				height: 72rpx;				border-radius: 12rpx;				margin-top: 20rpx;				display: flex;				flex-direction: column;				justify-content: center;				align-items: center;				.level_tag_title {					font-size: 28rpx;					font-family: Verdana, Verdana-Regular;					font-weight: 400;					text-align: center;				}				.level_tag_subTitle {					margin-top: -5rpx;					font-size: 20rpx;					font-family: Verdana, Verdana-Regular;					font-weight: 400;					text-align: center;				}			}		}	}	// .bottom_btn {	// 	display: flex;	// 	justify-content: center;	// 	position: fixed;	// 	width: 100%;	// 	left: 0;	// 	bottom: 60rpx;	// 	.text {	// 		width: 260rpx;	// 		height: 84rpx;	// 		border-radius: 42rpx;	// 		line-height: 84rpx;	// 		font-size: 32rpx;	// 		font-family: Verdana, Verdana-Regular;	// 		font-weight: 400;	// 		text-align: center;	// 		color: #ffffff;	// 	}	// }	.bottom_btn {		display: flex;		justify-content: center;		position: fixed;		width: 100%;		left: 0;		bottom: 60rpx;		.reset_btn {			width: 156rpx;			height: 80rpx;			border-radius: 40rpx;			font-size: 28rpx;			font-family: Verdana, Verdana-Bold;			font-weight: 700;			text-align: center;			line-height: 80rpx;			color: #666666;		}		.pop_btn {			margin-left: 30rpx;			width: 444rpx;			height: 80rpx;			border-radius: 40rpx;			font-size: 28rpx;			font-family: Verdana, Verdana-Bold;			font-weight: 700;			text-align: center;			line-height: 80rpx;			color: #ffffff;		}	}</style>
 |