ce62ed8e7199a7094548475faf33825f8bafd0ff.svn-base 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <template>
  2. <div style="overflow: hidden">
  3. <el-select v-model="treeLabel" placeholder="请选择" multiple collapse-tags>
  4. <el-option :value="opValue" class="filter-tree">
  5. <el-tree :data="data"
  6. v-loading="initTreeLoading"
  7. show-checkbox
  8. node-key="id"
  9. ref="treeCols"
  10. default-expand-all
  11. :default-checked-keys="keyArr"
  12. check-strictly
  13. highlight-current
  14. :props="defaultProps"
  15. @check-change="handleCheckChange"></el-tree>
  16. </el-option>
  17. </el-select>
  18. </div>
  19. </template>
  20. <script>
  21. import { getAddTree,getAddTrees} from "../api/duChaAPI.js";
  22. export default {
  23. name:"addvMul",
  24. props:['rootAddCode','level'],
  25. components: {},
  26. data() {
  27. return {
  28. keyArr:[],
  29. mineStatus: [],
  30. opValue:"",
  31. treeLabel:[],
  32. treeValue:[],
  33. initTreeLoading:true,
  34. data: []
  35. };
  36. },
  37. //监听属性 类似于data概念
  38. computed: {
  39. defaultProps(){
  40. var _self = this;
  41. return {
  42. children: 'children',
  43. label: 'nm',
  44. disabled:function(data,node){
  45. if(_self.level=='3'){
  46. if(data.level=='3'){
  47. return true;
  48. }
  49. }
  50. }
  51. };
  52. }
  53. },
  54. //监控data中的数据变化
  55. watch: {
  56. },
  57. //方法集合
  58. methods: {
  59. setCheck(ids,nms){
  60. this.keyArr = ids;
  61. this.treeLabel = nms;
  62. },
  63. getAdDataList(adCodes,level) {
  64. if(adCodes && level=='3'){
  65. this.rootAddCode = adCodes;
  66. this.level = level
  67. }
  68. if(adCodes==""){
  69. this.rootAddCode = "";
  70. this.data = [];
  71. }
  72. var _self = this;
  73. if(this.level=="1" && this.rootAddCode){
  74. getAddTree(this.rootAddCode,this.level).then((res)=>{
  75. if(res.data){
  76. _self.data = res.data.children;
  77. _self.initTreeLoading = false;
  78. }
  79. })
  80. }
  81. else if(this.level=="3" && this.rootAddCode){
  82. getAddTrees(this.rootAddCode,this.level).then((res)=>{
  83. if(res.data){
  84. _self.data = res.data;
  85. _self.initTreeLoading = false;
  86. }
  87. })
  88. }else{
  89. _self.data = [] ;
  90. _self.initTreeLoading = false;
  91. }
  92. },
  93. // selectChange(e){
  94. // var arrNew = [];
  95. // var dataLength = this.mineStatusValue.length;
  96. // var eleng = e.length;
  97. // for(let i = 0; i< dataLength ;i++){
  98. // for(let j = 0; j < eleng; j++){
  99. // if(e[j] === this.mineStatusValue[i].nm){
  100. // arrNew.push(this.mineStatusValue[i])
  101. // }
  102. // }
  103. // }
  104. // this.$refs.tree.setCheckedNodes(arrNew);//设置勾选的值
  105. // },
  106. handleCheckChange(data, checked, node) {
  107. this.treeLabel = [];
  108. this.treeValue = []
  109. this.$nextTick(()=>{
  110. let res = this.$refs.treeCols.getCheckedNodes(false, false); //这里两个true,1. 是否只是叶子节点 2. 是否包含半选节点(就是使得选择的时候不包含父节点)
  111. res.forEach(item => {
  112. this.treeLabel.push(item.nm);
  113. this.treeValue.push(item.id);
  114. });
  115. this.$refs.treeCols.setCheckedKeys(this.treeValue);
  116. this.$emit('changeAddv',{adNames:this.treeLabel.join(","),adCodes:this.treeValue.join(","),level:this.level})
  117. })
  118. },
  119. // changeSelect(data, check) {
  120. //
  121. // var parentNm = [];
  122. // var currNm = [];
  123. // //getCheckedNodes 接收两个 boolean 类型的参数,1. 是否只是叶子节点,默认值为 false 2. 是否包含半选节点,默认值为 false
  124. // this.TreeList= this.$refs.tree.getCheckedNodes(false, true).map(i => i.id);
  125. // if(check.halfCheckedNodes && check.halfCheckedNodes.length>0){
  126. // check.halfCheckedNodes.forEach((item)=>{
  127. // parentNm.push(item.nm);
  128. // })
  129. // }
  130. // if(check.checkedNodes && check.checkedNodes.length>0){
  131. // check.checkedNodes.forEach((item)=>{
  132. // currNm.push(parentNm.join("-")+"-"+item.nm);
  133. // })
  134. // }
  135. // this.mineStatus = currNm;
  136. // }
  137. },
  138. //生命周期 - 创建完成(可以访问当前this实例)
  139. created() {
  140. },
  141. //生命周期 - 挂载完成(可以访问DOM元素)
  142. mounted() {
  143. this.getAdDataList();
  144. },
  145. beforeCreate() {}, //生命周期 - 创建之前
  146. beforeMount() {}, //生命周期 - 挂载之前
  147. beforeUpdate() {}, //生命周期 - 更新之前
  148. updated() {}, //生命周期 - 更新之后
  149. beforeDestroy() {}, //生命周期 - 销毁之前
  150. destroyed() {}, //生命周期 - 销毁完成
  151. activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
  152. }
  153. </script>
  154. <style scoped>
  155. .filter-tree{
  156. height:auto;
  157. overflow-y:auto;
  158. max-height: 200px;
  159. padding: 0;
  160. background: white;
  161. }
  162. .el-select /deep/ .el-tag__close{
  163. display: none;
  164. }
  165. </style>