mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 02:08: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()
 | |
| 		}
 | |
| 	}
 | |
| }
 | 
