SelectRemoteUser.vue 983 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <template>
  2. <el-select
  3. v-model="value"
  4. :multiple="multiple"
  5. filterable
  6. remote
  7. reserve-keyword
  8. clearable
  9. placeholder="昵称/ID/手机号/邮箱搜索"
  10. :remote-method="remoteMethod"
  11. :loading="loading"
  12. @change="onChange"
  13. >
  14. <el-option v-for="item in options" :key="item.id" :label="item.nickName+'['+item.id+']'" :value="item.id" />
  15. </el-select>
  16. </template>
  17. <script>
  18. import { findSelectAccounts } from '@/api/userInfo'
  19. export default {
  20. name: 'SelectRemoteUser',
  21. props: {
  22. multiple: {
  23. type: [Boolean, Object],
  24. default: false
  25. },
  26. value: {
  27. type: [String, Number, Array],
  28. default: ''
  29. }
  30. },
  31. data: function() {
  32. return {
  33. options: [],
  34. loading: false
  35. }
  36. },
  37. methods: {
  38. onChange(value) {
  39. this.$emit('input', value)
  40. },
  41. remoteMethod(searchKey) {
  42. findSelectAccounts(searchKey).then(options => {
  43. this.options = options
  44. })
  45. }
  46. }
  47. }
  48. </script>