|
|
|
|
@ -1,25 +1,29 @@
|
|
|
|
|
<template>
|
|
|
|
|
<el-select :size="size"
|
|
|
|
|
clearable
|
|
|
|
|
:popper-append-to-body="popperAppendToBody"
|
|
|
|
|
:style="{ width: width }"
|
|
|
|
|
value-key="id"
|
|
|
|
|
filterable
|
|
|
|
|
:multiple="multiple"
|
|
|
|
|
:loading="loading"
|
|
|
|
|
v-model="myValue"
|
|
|
|
|
@change="e => $emit('input',e)">
|
|
|
|
|
<el-option v-for="(item, index) in list"
|
|
|
|
|
:key="item.id"
|
|
|
|
|
:label="item.name"
|
|
|
|
|
:value="item.id">
|
|
|
|
|
</el-option>
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="myValue"
|
|
|
|
|
:size="size"
|
|
|
|
|
clearable
|
|
|
|
|
:popper-append-to-body="popperAppendToBody"
|
|
|
|
|
:style="{ width: width }"
|
|
|
|
|
value-key="id"
|
|
|
|
|
collapse-tags
|
|
|
|
|
filterable
|
|
|
|
|
:multiple="multiple"
|
|
|
|
|
:loading="loading"
|
|
|
|
|
@change="e => $emit('input',e)"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="(item) in list"
|
|
|
|
|
:key="item.id"
|
|
|
|
|
:label="item.name"
|
|
|
|
|
:value="item.id"
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
let listData = [];
|
|
|
|
|
import { index } from "@/api/user"
|
|
|
|
|
let listData = []
|
|
|
|
|
import { index } from '@/api/user'
|
|
|
|
|
export default {
|
|
|
|
|
props: {
|
|
|
|
|
popperAppendToBody: {
|
|
|
|
|
@ -30,8 +34,8 @@ export default {
|
|
|
|
|
multiple: Boolean,
|
|
|
|
|
size: String,
|
|
|
|
|
value: {
|
|
|
|
|
type: [String,Number],
|
|
|
|
|
default: "",
|
|
|
|
|
type: [String, Number],
|
|
|
|
|
default: '',
|
|
|
|
|
required: true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
@ -39,7 +43,7 @@ export default {
|
|
|
|
|
return {
|
|
|
|
|
total: 0,
|
|
|
|
|
loading: false,
|
|
|
|
|
myValue: "",
|
|
|
|
|
myValue: '',
|
|
|
|
|
list: [],
|
|
|
|
|
// select: {
|
|
|
|
|
// rows: 20,
|
|
|
|
|
@ -48,13 +52,29 @@ export default {
|
|
|
|
|
// },
|
|
|
|
|
select: {
|
|
|
|
|
rows: 9999,
|
|
|
|
|
page: 1,
|
|
|
|
|
page: 1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
computed: {},
|
|
|
|
|
watch: {
|
|
|
|
|
value: {
|
|
|
|
|
handler: function(newVal) {
|
|
|
|
|
this.myValue = newVal
|
|
|
|
|
},
|
|
|
|
|
immediate: true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
|
this.getList()
|
|
|
|
|
// this.initLoadMore();
|
|
|
|
|
},
|
|
|
|
|
beforeDestroy() {
|
|
|
|
|
// this.$el?.querySelector(".el-scrollbar__wrap")?.removeEventListener("scroll",this.loadListener)
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
remoteMethod (query) {
|
|
|
|
|
if (query !== "") {
|
|
|
|
|
remoteMethod(query) {
|
|
|
|
|
if (query !== '') {
|
|
|
|
|
this.select.keyword = query
|
|
|
|
|
this.select.page = 1
|
|
|
|
|
this.list = []
|
|
|
|
|
@ -65,20 +85,20 @@ export default {
|
|
|
|
|
this.getList()
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
async getList () {
|
|
|
|
|
async getList() {
|
|
|
|
|
if (listData instanceof Array && listData.length > 0) {
|
|
|
|
|
this.list = listData;
|
|
|
|
|
this.list = listData
|
|
|
|
|
} else {
|
|
|
|
|
this.loading = true;
|
|
|
|
|
this.loading = true
|
|
|
|
|
try {
|
|
|
|
|
const res = await index(this.select);
|
|
|
|
|
listData = res.data;
|
|
|
|
|
this.list = res.data;
|
|
|
|
|
this.total = res.total;
|
|
|
|
|
const res = await index(this.select)
|
|
|
|
|
listData = res.data
|
|
|
|
|
this.list = res.data
|
|
|
|
|
this.total = res.total
|
|
|
|
|
|
|
|
|
|
this.loading = false;
|
|
|
|
|
this.loading = false
|
|
|
|
|
} catch (err) {
|
|
|
|
|
this.loading = false;
|
|
|
|
|
this.loading = false
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
@ -100,32 +120,16 @@ export default {
|
|
|
|
|
|
|
|
|
|
initLoadMore() {
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
this.$el.querySelector(".el-scrollbar__wrap").addEventListener("scroll",this.loadListener)
|
|
|
|
|
this.$el.querySelector('.el-scrollbar__wrap').addEventListener('scroll', this.loadListener)
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
loadListener(e) {
|
|
|
|
|
let sign = 0
|
|
|
|
|
const sign = 0
|
|
|
|
|
const scrollDistance = e.scrollHeight - e.scrollTop - e.clientHeight
|
|
|
|
|
if (scrollDistance <= sign) {
|
|
|
|
|
this.getList()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
computed: {},
|
|
|
|
|
watch: {
|
|
|
|
|
value: {
|
|
|
|
|
handler: function(newVal) {
|
|
|
|
|
this.myValue = newVal
|
|
|
|
|
},
|
|
|
|
|
immediate: true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
|
this.getList();
|
|
|
|
|
//this.initLoadMore();
|
|
|
|
|
},
|
|
|
|
|
beforeDestroy() {
|
|
|
|
|
//this.$el?.querySelector(".el-scrollbar__wrap")?.removeEventListener("scroll",this.loadListener)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|