使用this.$ownerInstance.callMethod(‘组件的方法名’,‘参数’)

<script module='sortable' lang="renderjs"  >
	export default {
		data() {
			return {
				mySortable:null
			};
		},
		mounted(){
			if (window.Sortable) {
				this.init()
			} else {
				// 动态引入类库
				const script = document.createElement('script')
				script.src = 'static/sortable.js'
				script.onload = this.init
				document.head.appendChild(script)
			};
		},
		methods:{
			init() {
				this.mySortable = new Sortable(document.getElementById('sort'),{
					direction: 'horizontal',
					scroll: false,
					handle:'.sort',
					ghostClass:'drag',
					dragClass:'chosenClass',
					onEnd:(e)=>{
						this.$ownerInstance.callMethod('sortList',{
							oldIndex:e.oldIndex,
							newIndex:e.newIndex
						})
					}
				});
			},
		}
	}
</script>

<script>
	export default {
		data() {
			return {
				showList:[],
				hideList:[]
			};
		},
		onLoad(){
			let list = uni.getStorageSync('master_index_sortshow')
			this.showList = list.filter(item=>{
				return item.show == true
			});
			this.hideList = list.filter(item=>{
				return item.show == false
			});
		},
		onUnload(){
			let list = [...this.showList,...this.hideList];
			uni.setStorageSync('master_index_sortshow',list);
			uni.$emit('setSortShow')
		},
		methods:{
			delItem(index){
				let item = this.showList[index];
				item.show = false;
				this.hideList.push(item);
				this.showList.splice(index,1);
			},
			addItem(index){
				let item = this.hideList[index];
				item.show = true;
				this.showList.push(item);
				this.hideList.splice(index,1);
			},
			sortList({oldIndex,newIndex}){
				let temp = this.showList[oldIndex];
				this.showList[oldIndex] = this.showList[newIndex];
				this.showList[newIndex] = temp;
			}
		}
	}
</script>
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐