AcceptorSelect.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <template>
  2. <el-select
  3. :value="value"
  4. filterable
  5. remote
  6. placeholder="请输入关键词"
  7. :loading="loading"
  8. :remote-method="remoteMethod"
  9. clearable
  10. @change="onChange"
  11. >
  12. <el-option
  13. v-for="item in options"
  14. :key="item.id"
  15. :label="item.acceptorName"
  16. :value="item.id"
  17. />
  18. </el-select>
  19. </template>
  20. <script>
  21. import { acceptorSearchApi } from '@/api/contracts'
  22. export default {
  23. name: 'AcceptorSelect',
  24. props: {
  25. value: {
  26. type: [String, Number, Array],
  27. default: undefined
  28. }
  29. },
  30. data() {
  31. return {
  32. filter: {
  33. status:1, // 已删除的承兑人不展示
  34. pageIndex: 1,
  35. pageSize: 100
  36. },
  37. options: [],
  38. loading: false
  39. }
  40. },
  41. mounted() {
  42. this.loadData()
  43. },
  44. methods: {
  45. loadData(filter = {}) {
  46. const params = {
  47. ...this.filter,
  48. ...filter
  49. }
  50. this.loading = true
  51. acceptorSearchApi(params).then(res => {
  52. const result = res.data.result
  53. this.options = result
  54. this.loading = false
  55. console.log(res)
  56. }).catch(err => {
  57. console.log(err)
  58. this.loading = false
  59. })
  60. },
  61. remoteMethod(query) {
  62. this.loadData({ name: query })
  63. },
  64. onChange(value) {
  65. this.emitInput(value)
  66. },
  67. emitInput(value) {
  68. const exist = this.options.find((o) => o.id === value)
  69. this.$emit('input', value)
  70. this.$emit('change', value, exist)
  71. }
  72. }
  73. }
  74. </script>