| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 | <template>	<dm-pop-view ref='popView' title="更多筛选"  :isShowConfirm='false'>		<view class="screen_container" >			<text class="screen_item_title">{{title}}</text>			<view class="level_tag_view">				<text class="level_tag" v-for="(item, i) in curOptions" :key="i"  :style="{ color: item.isSelected ? '#fff' : '#666', 'background-color': item.isSelected ? themeColor : '#fff' }"				  @click="chooseTags(item, i)">					{{item.name}}				</text>			</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="popConfirm">确定</text>			</view>		</view>	</dm-pop-view></template><script>	import dmPopView from './dmPopView.vue'	export default {		props: {			options: Array,			curItem: Array,			items:Array,			value: [String, Number],			title:{				type:String,				default:'请选择'			},		},		data() {			return {				oldSelectItem: [],				selectItem: [],				curOptions: [],				selIdx: 0,				themeColor:'',				themeColor25:''			}		},		watch:{			items(newVal,oldVal){				if(this.curOptions.length==0){					this.curOptions = newVal;				}			},			selectItem(newVal,oldVal){				var tempOptions = [];				for(let index in this.curOptions){					var option = this.curOptions[index];					const temp = newVal.findIndex(item=> option.id==item.dicDataId);					option.isSelected = (temp != -1 ? true : false);					tempOptions.push(option);				}				this.curOptions = tempOptions;			}			},		mounted() {			let globalData = getApp().globalData			this.themeColor = globalData.themeColor			this.themeColor25 = globalData.themeColor25		},		methods: {			show() {				this.$refs.popView.show()				var oldItemTemp = JSON.stringify(this.curItem);				var oldItem = JSON.parse(oldItemTemp);				// console.log("XXXXXXXX", oldItemTemp, oldItem)				this.selectItem = oldItem;				this.oldSelectItem = oldItem;			},			popConfirm() { // 确定			// console.log("确定",this.selectItem)				this.$emit('confirm', {					'selItems': this.selectItem,				})				this.$refs.popView.hide()			},			resetAction(e) { // 重置				var oldItemTemp = JSON.stringify(this.curItem);				var oldItem = JSON.parse(oldItemTemp);				this.selectItem = [];			},			chooseTags(subitem, idx){ // 选择				this.seltag = idx;				const temp = this.selectItem.findIndex(item=> subitem.id==item.dicDataId);				if(temp!=-1){					this.selectItem.splice(temp, 1)				}else{					this.selectItem.push({"dicDataId":subitem.id, "dicDataName":subitem.name});				}			}		},		components: {			dmPopView		}	}</script><style scoped lang="scss">	.pop-pickerView {		margin: 40rpx 0;		width: 750rpx;		height: 300rpx;		.column-item {			height: 80rpx;			display: flex;			box-sizing: border-box;			white-space: nowrap;			overflow: hidden;			flex-direction: row;			align-items: center;			justify-content: center;		}			}		.screen_container {		display: flex;		flex-direction: column;		width: 750rpx;			.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: 20rpx;			margin-bottom: 100rpx;			display: flex;			flex-wrap: wrap;			.level_tag {				margin-bottom: 20rpx;				padding: 0rpx 20rpx;				margin-right: 30rpx;				min-width: 116rpx;				height: 56rpx;				border-radius: 8rpx;				font-size: 28rpx;				font-family: Verdana, Verdana-Regular;				font-weight: 400;				text-align: center;				line-height: 56rpx;			}		}			.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;			margin-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>
 |