sharedMenu.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <template>
  2. <div class="shared-classify">
  3. <div class="section-item">
  4. <div class="tree-title">我共享的</div>
  5. <div class="shared-tree">
  6. <el-tree
  7. ref="sharedTree"
  8. :class="['catalog-tree',{'target_tree': source==='chart'}]"
  9. empty-text="暂无数据"
  10. :data="sharedClassifys"
  11. :props="{
  12. children: 'Children'
  13. }"
  14. node-key="UniqueCode"
  15. :expand-on-click-node="false"
  16. @current-change="(data,node)=>{$parent.nodeChange({data,node,treeName:'shared'})}"
  17. >
  18. <div class="custom-tree-node" slot-scope="{ data }">
  19. <span class="tree-label">{{ source==='edb'?data.ClassifyName:data.ChartClassifyName }}</span>
  20. </div>
  21. </el-tree>
  22. </div>
  23. </div>
  24. <div class="section-item receive-item">
  25. <div class="tree-title">收到共享</div>
  26. <div class="shared-tree">
  27. <el-tree
  28. ref="receiveTree"
  29. :class="['catalog-tree',{'target_tree': source==='chart'}]"
  30. empty-text="暂无数据"
  31. :data="receiveSharedClassifys"
  32. :props="{
  33. children: 'Children'
  34. }"
  35. node-key="UniqueCode"
  36. :expand-on-click-node="false"
  37. @current-change="(data,node)=>{$parent.nodeChange({data,node,treeName:'sharedReceive'})}"
  38. >
  39. <div class="custom-tree-node" slot-scope="{ data }">
  40. <span class="tree-label">{{ source==='edb'?data.ClassifyName:data.ChartClassifyName }}</span>
  41. </div>
  42. </el-tree>
  43. </div>
  44. </div>
  45. </div>
  46. </template>
  47. <script>
  48. import { edbBaseV2Interface,chartBaseV2Interface } from '@/api/modules/chartApi';
  49. export default {
  50. props: {
  51. source: { //指标或图库
  52. type: String,
  53. default: 'edb'
  54. }
  55. },
  56. data() {
  57. return {
  58. sharedClassifys: [],
  59. receiveSharedClassifys: []
  60. }
  61. },
  62. mounted(){
  63. this.getSharedClassify()
  64. },
  65. methods:{
  66. async getSharedClassify() {
  67. const res = this.source === 'edb'
  68. ? await edbBaseV2Interface.getSharedClassify()
  69. : await chartBaseV2Interface.getSharedClassify()
  70. if(res.Ret !== 200) return
  71. this.sharedClassifys = res.Data.Send || [];
  72. this.receiveSharedClassifys = res.Data.Received || [];
  73. }
  74. },
  75. }
  76. </script>
  77. <style scoped lang='scss'>
  78. .shared-classify {
  79. height: 100%;
  80. .section-item {
  81. height: 50%;
  82. display: flex;
  83. flex-direction: column;
  84. padding-bottom: 15px;
  85. &.receive-item {
  86. border-top: 1px solid #C8CDD9;
  87. }
  88. .tree-title {
  89. font-size: 15px;
  90. margin: 15px 0;
  91. }
  92. .shared-tree {
  93. flex: 1;
  94. overflow: auto;
  95. }
  96. }
  97. }
  98. </style>