index.vue 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <template>
  2. <div class="place-input">
  3. <v-autocomplete label="请选择员工" v-model="model" :placeholder="placeholder" :items="empList" @change="changeSelect" :multiple="multiple" clearable outlined dense class="mr-2" style="width:200px;"></v-autocomplete>
  4. </div>
  5. </template>
  6. <script>
  7. import { getEmps } from '@/api/statistics'
  8. export default {
  9. name: 'selectEmployee',
  10. props: {
  11. value: {
  12. type: [Number, String, Array]
  13. },
  14. multiple: {
  15. type: Boolean,
  16. default: false
  17. },
  18. change: Function,
  19. placeholder: {
  20. type: String,
  21. default: ''
  22. }
  23. },
  24. data () {
  25. return {
  26. model: null,
  27. empList: []
  28. }
  29. },
  30. async created () {
  31. await this.fetchGetdepts()
  32. },
  33. methods: {
  34. changeSelect (e) {
  35. this.$emit('input', e)
  36. this.$emit('change', e)
  37. },
  38. async fetchGetdepts () {
  39. try {
  40. const { data } = await getEmps({})
  41. this.empList = data.map((val) => {
  42. return val.employeeName
  43. })
  44. } catch (error) {
  45. this.$snackbar.error(error)
  46. }
  47. }
  48. }
  49. }
  50. </script>