| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489 | <template>	<dm-pop-view ref='popView' title="筛选" :isShowConfirm="false" :maskTapHide='true'>		<scroll-view class="screen_container" scroll-y="true">			<dm-time-level-screen :isChengjiao2="true" :sortType="sortType" :queryDateType="queryDateType" @queryDateTypeAction="queryDateTypeAction" @sortTypeAction="sortTypeAction"></dm-time-level-screen>			<dm-date-screen style="margin-top: 40rpx;" :defaultParameter="tempDefaultParameter" @screenDateAction="screenDateAction"></dm-date-screen>			<view class="screen_item_title">成交进度</view>			<view class="level_tag_view">				<text class="level_tag" :style="{ color: item.isSelect ? '#fff' : '#666', 'background-color': item.isSelect ? themeColor : '#F1F5F9' }"				 v-for="(item, i) in progressList" :key="i" @click="selectProgress(item)">					<view class="level_tag_title">						{{ item.title }}					</view>					<view class="level_tag_subTitle" v-if="item.subTitle!=null">						({{item.subTitle}})					</view>				</text>			</view>			<view class="screen_item_title">成交业态</view>			<view class="level_tag_view">				<view class="level_tag" :style="{ color: item.isSelect ? '#fff' : '#666', 'background-color': item.isSelect ? themeColor : '#F1F5F9' }"				 v-for="(item, i) in yetaiList" :key="i" @click="selectYetai(item)">					<view class="level_tag_title">						{{ item.title }}					</view>					<view class="level_tag_subTitle" v-if="item.subTitle!=null">						({{item.subTitle}})					</view>				</view>			</view>			<view class="screen_item_title">成交构成</view>			<view class="level_tag_view">				<text class="level_tag" :style="{ color: item.isSelect ? '#fff' : '#666', 'background-color': item.isSelect ? themeColor : '#F1F5F9' }"				 v-for="(item, i) in gouchengList" :key="i" @click="selectGoucheng(item)">					<view class="level_tag_title">						{{ item.title }}					</view>					<view class="level_tag_subTitle" v-if="item.subTitle!=null">						({{item.subTitle}})					</view>				</text>			</view>			<view class="reportOrganize" @click="selectChengjiaoType" v-if="formType == 2 || formType == 3">				<view class="organizeName">					{{formTypeResponseSelect != null ? formTypeResponseSelect.title : formType == 2 ? '请选择推荐成交类型': '请选择报备成交类型'}}				</view>				<image class="organizeIcon" src="../../static/icons/icon_aboutUs_DropDown.png" mode=""></image>			</view>		</scroll-view>		<dm-picker-view ref="formTypeResponsePicker" :options="formTypeResponse" :value="formTypeResponseSelect != null ? formTypeResponseSelect.value : 0" :title="formType == 2 ? '请选择推荐成交类型': '请选择报备成交类型'" @confirm="confirmAction"></dm-picker-view>		<view class="bottom_btn" style="margin-top: 60rpx;">			<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'	import dmPickerView from './dmPickerView.vue'	import dmTimeLevelScreen from './dmTimeLevelScreen.vue'	import dmDateScreen from './dmDateScreen.vue'	let app = getApp();		export default {		props: {			houseId: {				type: [String, Number],				default: ''			},			defaultParameter: Object,			sortSel: [Number, String],			timeLevelSel: [Number, String]		},		data() {			return {				themeColor: null,				fuzhuColor: null,				themeColor50: null,				themeColor25: null,				fuzhuColor50: null,				progressList: [], // 成交进度				yetaiList: [], // 成交业态				gouchengList: [] ,// 成交构成				formTypeResponse: [],				changjiaoTypeList: [],				formTypeResponseSelect: null,				formType: 0,				sortType: 0,				queryDateType: 0,				tempDefaultParameter: null			}		},		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						this.resetAction()		},		methods: {			show() {				this.$refs.popView.show()			},			// 正序、倒叙			sortTypeAction(e) {				// this.$emit('sortTypeAction', e)				// debugger				this.sortType = e			},			// 选择时间维度(条件)			queryDateTypeAction(e) {				// this.$emit('queryDateTypeAction', e)				this.queryDateType = e			},			// 选择时间			screenDateAction(val, start, end) {				// this.$emit('screenDateAction', val, start, end)				this.tempDefaultParameter = {					value: this.tempDefaultParameter.value,					dateType: val,					startDate: start,					endDate: end,					terminal: this.tempDefaultParameter.terminal				}			},			selectProgress(e) {				if (e.value == 0) {					this.progressList.forEach((item) => {						item.isSelect = false					})					this.progressList[0].isSelect = true				}				else {					this.progressList[0].isSelect = false					var isHave = false					this.progressList.forEach((item, idx) => {						if (e.value == item.value) {							item.isSelect = !item.isSelect						}						if (item.isSelect) {							isHave = true						}					})					if (!isHave) {						this.progressList[0].isSelect = true					}				}			},			selectYetai(e) {				if (e.value == 0) {					this.yetaiList.forEach((item) => {						item.isSelect = false					})					this.yetaiList[0].isSelect = true				}				else {					this.yetaiList[0].isSelect = false					var isHave = false					this.yetaiList.forEach((item, idx) => {						if (e.value == item.value) {							item.isSelect = !item.isSelect						}						if (item.isSelect) {							isHave = true						}					})					if (!isHave) {						this.yetaiList[0].isSelect = true					}				}			},			selectGoucheng(e) {				var self = this				this.gouchengList.forEach((item, idx) => {					item.isSelect = false					if (e.value == item.value) {						item.isSelect = true						self.formType = item.value						self.formTypeResponseSelect = null						if (item.value == 2 || item.value == 3) {							self.getDealFormTips(item.value)						}					}				})			},			async getDealFormTips(type) {				var tempformType = 1				if (type == 2) { // 推荐成交					tempformType = 1				}				else {// 报备成交					tempformType = 2 				}				let res = await this.$myRequest({					url: '/elab-marketing-user/dealLedger/getDealFormTips',					data: {						houseId: this.houseId,						formType: tempformType,						dateType: this.defaultParameter.dateType,						mindate: this.defaultParameter.startDate,						maxdate: this.defaultParameter.endDate,						timeDimension: this.queryDateType					}				})				if (res.data.success && res.data.single) {					this.formTypeResponse = res.data.single.formTypeResponse || []					if (res.data.single.showXsxcx == 1) {						var dic = {							relationMess: "线上小程序用户",							relationOrganizeName: '',							relationOrganizeType: ''						}						this.formTypeResponse.push(dic)					}					this.formTypeResponse.forEach((item, idx) => {						item['title'] = item.relationMess						item['value'] = idx					})					this.$forceUpdate()						}							},						selectChengjiaoType() {				this.$refs.formTypeResponsePicker.show()			},						confirmAction(e) {				console.log('选择类型:', e)				this.formTypeResponseSelect = e.selItem			},						resetAction() {				this.progressList = [						{title: '全部', isSelect: true, value: 0},						{title: '认购', isSelect: false, value: 1},						{title: '签约', isSelect: false, value: 2},						{title: '已结首付', isSelect: false, value: 3},						{title: '已结全款', isSelect: false, value: 4},						{title: '已退房', isSelect: false, value: 6},					]				this.yetaiList = [						{title: '全部', isSelect: true, value: 0},						{title: '住宅', isSelect: false, value: 1},						{title: '公寓', isSelect: false, value: 2},						{title: '商业', isSelect: false, value: 3},						{title: '写字楼', isSelect: false, value: 4},						{title: '公共配套', isSelect: false, value: 5},						{title: '地下室', subTitle: '不含车位', isSelect: false, value: 6},						{title: '政策住宅', isSelect: false, value: 7},						{title: '车位', isSelect: false, value: 8},						{title: '其他', isSelect: false, value: 9},					]				this.gouchengList = [						{title: '全部', isSelect: true, value: 0},						{title: '其他自然成交', isSelect: false, value: 1},						{title: '推荐成交', isSelect: false, value: 2},						{title: '报备成交', isSelect: false, value: 3},						{title: '线上自然成交', isSelect: false, value: 4},						{title: '自然到访成交', isSelect: false, value: 5},					]									this.formTypeResponseSelect = null				this.formTypeResponse = []				this.tempDefaultParameter = JSON.parse(JSON.stringify(this.defaultParameter))				this.sortType = this.sortSel				this.queryDateType = this.timeLevelSel			},			sureAction() {				var transactionProgressList = []				this.progressList.forEach((item) => {					if (item.isSelect) {						transactionProgressList.push(item.value)					}				})				var productTypeList = []				this.yetaiList.forEach((item) => {					if (item.isSelect) {						productTypeList.push(item.value)					}				})				var screenParmas = {					timeLevelSel: this.queryDateType,					sortSel: this.sortType,					defaultParameter: this.tempDefaultParameter,					//成交进度					transactionProgress: transactionProgressList || [0],					// 成交业态					productType: productTypeList || [0],					// 成交构成					formType: this.formType,										relationOrganizeName: this.formTypeResponseSelect != null ? this.formTypeResponseSelect.relationOrganizeName : null,										relationOrganizeType: this.formTypeResponseSelect != null ? this.formTypeResponseSelect.relationOrganizeType : null,				}				this.$emit('screenAction', screenParmas)				this.$refs.popView.hide()			}		},		components: {			dmPopView,			dmPickerView,			dmTimeLevelScreen,			dmDateScreen		},		watch: {			defaultParameter: {				handler(e) {					this.tempDefaultParameter = JSON.parse(JSON.stringify(e))					if (this.formType == 2 || this.formType == 3) {						self.getDealFormTips(this.formType)					}				},				deep: true,				immediate: true			},			timeLevelSel: {				handler(e) {					this.queryDateType = e					this.$forceUpdate()				},				immediate: true			},			sortSel: {				handler(e) {					this.sortType = e					this.$forceUpdate()				},				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;			.level_tag {				margin-right: 16rpx;				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;				}			}		}		.reportOrganize {			margin-top: 20rpx;			margin-left: 30rpx;			margin-right: 30rpx;			padding: 0 30rpx;			box-sizing: border-box;			border-radius: 16rpx;			background-color: #F1F5F9;			height: 94rpx;			display: flex;			justify-content: space-between;			align-items: center;			line-height: 94rpx;			.organizeName {				font-size: 28rpx;				font-family: Verdana, Verdana-Regular;				font-weight: 400;				text-align: left;				color: #666666;			}			.organizeIcon {				width: 14rpx;				height: 9rpx;			}		}		.screen_item_sub {			margin-top: 8rpx;			margin-bottom: 40rpx;			margin-left: 30rpx;			line-height: 34rpx;			font-size: 24rpx;			font-family: Verdana, Verdana-Regular;			font-weight: 400;			text-align: left;			color: #999999;		}		.score_view {			margin-top: 30rpx;			margin-bottom: 120rpx;			display: flex;			justify-content: center;			align-items: center;			height: 82rpx;			.score_text {				font-size: 70rpx;				font-family: 'DIN Alternate', 'DIN Alternate-Bold';				font-weight: 700;			}			.score_unit {				padding-top: 25rpx;				font-size: 28rpx;				font-family: Verdana, Verdana-Regular;				font-weight: 400;			}		}	}	.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>
 |