Blame view

src/components/MoreSelect/index.vue 1 KB
bae8b004   monkeyhouyi   1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
  <template>
  	<el-select v-model="accept_id" v-selectloadmore:rangeNum="() => rangeNum += 10" filterable :filter-method="filterMethod" placeholder="选择接收方">
     <el-option v-for="item in acceptList.slice(0,rangeNum)" :key="item.id" :value="item.id" :label="item.name">
       {{ item.name }}
     </el-option>
   </el-select>
  </template>
  <script>
   export default {
      props: ["value"],
     	directives: {
  	    'selectloadmore': {
  	      bind(el, binding) {
  	        const selectDom = el.querySelector('.el-select-dropdown .el-select-dropdown__wrap')
  	        selectDom.addEventListener('scroll', () => {
  	          if (selectDom.scrollHeight - selectDom.scrollTop <= selectDom.clientHeight + 20) {
  	            binding.value()
  	          }
  	        })
  	      }
  	    }
  	 },
  	data(){
  		return {
  			accept_id:undefined,
  			acceptList:[],
  			copyAcceptList:[],
  			rangeNum: 20,
  		}
  	},
  	mounted(){
  		//获得acceptList的数据
  	},
  	methods:{
  		filterMethod (){
  			this.rangeNum = 20
  			//请求接口,筛选数据
  		}
  	}
  }
  </script>