mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-30 17:58:43 +08:00 
			
		
		
		
	
		
			
	
	
		
			98 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			98 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | export default { | ||
|  | 	data() { | ||
|  | 		return { | ||
|  | 			position: [], | ||
|  | 			button: [] | ||
|  | 		} | ||
|  | 	}, | ||
|  | 	computed: { | ||
|  | 		pos() { | ||
|  | 			return JSON.stringify(this.position) | ||
|  | 		}, | ||
|  | 		btn() { | ||
|  | 			return JSON.stringify(this.button) | ||
|  | 		} | ||
|  | 	}, | ||
|  | 	watch: { | ||
|  | 		show(newVal) { | ||
|  | 			if (this.autoClose) return | ||
|  | 			let valueObj = this.position[0] | ||
|  | 			if (!valueObj) { | ||
|  | 				this.init() | ||
|  | 				return | ||
|  | 			} | ||
|  | 			valueObj.show = newVal | ||
|  | 			this.$set(this.position, 0, valueObj) | ||
|  | 		} | ||
|  | 	}, | ||
|  | 	created() { | ||
|  | 		if (this.swipeaction.children !== undefined) { | ||
|  | 			this.swipeaction.children.push(this) | ||
|  | 		} | ||
|  | 	}, | ||
|  | 	mounted() { | ||
|  | 		this.init() | ||
|  | 
 | ||
|  | 	}, | ||
|  | 	beforeDestroy() { | ||
|  | 		this.swipeaction.children.forEach((item, index) => { | ||
|  | 			if (item === this) { | ||
|  | 				this.swipeaction.children.splice(index, 1) | ||
|  | 			} | ||
|  | 		}) | ||
|  | 	}, | ||
|  | 	methods: { | ||
|  | 		init() { | ||
|  | 			 | ||
|  | 			setTimeout(() => { | ||
|  | 				this.getSize() | ||
|  | 				this.getButtonSize() | ||
|  | 			}, 50) | ||
|  | 		}, | ||
|  | 		closeSwipe(e) { | ||
|  | 			if (!this.autoClose) return | ||
|  | 			this.swipeaction.closeOther(this) | ||
|  | 		}, | ||
|  | 		 | ||
|  | 		change(e) { | ||
|  | 			this.$emit('change', e.open) | ||
|  | 			let valueObj = this.position[0] | ||
|  | 			if (valueObj.show !== e.open) { | ||
|  | 				valueObj.show = e.open | ||
|  | 				this.$set(this.position, 0, valueObj) | ||
|  | 			} | ||
|  | 		}, | ||
|  | 		onClick(index, item) { | ||
|  | 			this.$emit('click', { | ||
|  | 				content: item, | ||
|  | 				index | ||
|  | 			}) | ||
|  | 		}, | ||
|  | 		appTouchStart(){}, | ||
|  | 		appTouchEnd(){}, | ||
|  | 		getSize() { | ||
|  | 			const views = uni.createSelectorQuery().in(this) | ||
|  | 			views | ||
|  | 				.selectAll('.selector-query-hock') | ||
|  | 				.boundingClientRect(data => { | ||
|  | 					if (this.autoClose) { | ||
|  | 						data[0].show = false | ||
|  | 					} else { | ||
|  | 						data[0].show = this.show | ||
|  | 					} | ||
|  | 					this.position = data | ||
|  | 				}) | ||
|  | 				.exec() | ||
|  | 		}, | ||
|  | 		getButtonSize() { | ||
|  | 			const views = uni.createSelectorQuery().in(this) | ||
|  | 			views | ||
|  | 				.selectAll('.button-hock') | ||
|  | 				.boundingClientRect(data => { | ||
|  | 					this.button = data | ||
|  | 				}) | ||
|  | 				.exec() | ||
|  | 		} | ||
|  | 	} | ||
|  | } |