equipment-select.vue 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <!-- 设备分类树形选择下拉框 -->
  2. <template>
  3. <ele-tree-select
  4. clearable
  5. filterable
  6. :value="value || ''"
  7. :data="treeData"
  8. label-key="name"
  9. value-key="id"
  10. default-expand-all
  11. :placeholder="placeholder"
  12. @input="updateValue"
  13. v-on="$listeners"
  14. @change="chooseNode"
  15. />
  16. </template>
  17. <script>
  18. import { getTreeByType } from '@/api/classifyManage';
  19. export default {
  20. props: {
  21. // 选中的数据(v-model)
  22. value: [Number, String],
  23. // 提示信息
  24. placeholder: {
  25. type: String,
  26. default: '请选择'
  27. }
  28. },
  29. data () {
  30. return {
  31. treeData: []
  32. };
  33. },
  34. created () {
  35. this.getData();
  36. },
  37. methods: {
  38. async getData () {
  39. const res = await getTreeByType(1);
  40. this.treeData = res.data;
  41. this.$emit('setRootId', res.data[0].id);
  42. // this.treeData = this.$util.toTreeData({
  43. // data: data || [],
  44. // idField: 'id',
  45. // parentIdField: 'parentId'
  46. // });
  47. },
  48. /* 更新选中数据 */
  49. updateValue (value) {
  50. this.$emit('input', value);
  51. },
  52. chooseNode(node){
  53. this.$emit('changeNode', node);
  54. }
  55. }
  56. };
  57. </script>