index.vue 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <template>
  2. <el-select
  3. v-model="assetId"
  4. filterable
  5. placeholder="请选择 资产名称"
  6. :loading="loading"
  7. :disabled="disabled"
  8. :multiple="multiple"
  9. style="width: 100%;"
  10. @change="handleChange"
  11. >
  12. <el-option
  13. v-for="item in listData"
  14. :key="item.id"
  15. :label="item.zcmc"
  16. :value="item.id">
  17. </el-option>
  18. </el-select>
  19. </template>
  20. <script>
  21. import { getList } from "@/api/basicResource/kyAssetList";
  22. export default {
  23. name: 'ProjectSelect',
  24. props: {
  25. value: [String, Number],
  26. // 搜索条件
  27. params: Object,
  28. disabled: {
  29. type: Boolean,
  30. default: false
  31. },
  32. // 是否多选
  33. multiple: {
  34. type: Boolean,
  35. default: false
  36. }
  37. },
  38. data() {
  39. return {
  40. assetId: '',
  41. loading: false,
  42. listData: []
  43. }
  44. },
  45. mounted() {
  46. this.getAssetList();
  47. },
  48. methods: {
  49. getAssetList() {
  50. getList(1, 99999, this.params).then(({ data }) => {
  51. if (data.success) {
  52. this.listData = data.data.records;
  53. this.assetId = this.value;
  54. }
  55. })
  56. },
  57. handleChange(val) {
  58. let objData = this.listData.find(item => item.id === val);
  59. this.$emit('input', val);
  60. this.$emit('change', objData);
  61. },
  62. }
  63. }
  64. </script>