zoukankan      html  css  js  c++  java
  • 记录 vue+element树节点的标注

    html(背景:状态标注3钟颜色红黄绿对应0,1,2,)

    	<el-tree 
    					@check="slclasscheck" 
    					v-if="treeShow" 
    					:data="slclass"  
    					show-checkbox  
    					node-key="id" 
    					:default-expanded-keys="baseCheckedKeys" 
    					:default-checked-keys="baseCheckedKeys" 
    					ref="bstree">
                        <span class="custom-tree-node" slot-scope="obj">
                            <span style="user-select: none;">{{obj.data && obj.data.label}}</span>
                            <span v-if="obj.data.num!=0&&obj.data.state==0" class="red-circle"></span>
                            <span v-else-if="obj.data.num!=0&&obj.data.state==1" class="yellow-circle"></span>
                            <span v-else-if="obj.data.num!=0&&obj.data.state==2" class="gray-circle"></span>
                        </span>
                    </el-tree>
    

    在index.html引入需要数据slclass.js

      <script type="text/javascript" src="js/slclass.js"></script>
    

    js

          // 状态获取
          getState: function(obj, id, over, mid, err) {
            if (over.indexOf(id) != -1) {
              obj.state = 0;
            } else if (mid.indexOf(id) != -1) {
              obj.state = 1;
            } else if (err.indexOf(id) != -1) {
              obj.state = 2;
            }
          },
          // 获取子站数目
          getNum:function (data,id,obj) {
              for (let i = 0; i < 3; i++) {
                 for(let key in data[i]){
                     if(id &&id==key){
                      obj.num=data[i][key]
                     }else{
                         let arr=obj.children
                         if(arr){
                             arr.forEach(a => {
                                 if(a.id==key){
                                     a.num=data[i][key]
                                 }
                             });
                         }
                     }
                 }
             }
          },
          // 获取预警统计数目
          getWarnCount: function() {
        //模拟数据
            var data = {
              "0": {
                waterQuality1: 1,     //数目为0时不做标注
              },
              "1": {
                waterQuality1: 12,//数目为0时不做标注
              },
              "2": {
                waterQuality1: 18,//数目为0时不做标注
              }
            };
            var over = [];
            var mid = [];
            var err = [];
            function classify(array, i) {
              for (let key in data[i]) {
                array.push(key);
              }                
            }
            classify(over, 0);
            classify(mid, 1);
            classify(err, 2);
            
            slclass.forEach(obj => {
              let id = obj.id;
              this.getNum(data,id,obj)
              if (id) {
                this.getState(obj, id, over, mid, err);
              } else {
                if (obj.children) {
                  let arr = obj.children;
                  arr.forEach(a => {
                    this.getState(a, a.id, over, mid, err);
                  });
                }
              }
            });
          },
    		created(){
                         this.getWarnCount();
    			this.slclass = slclass
    		},
    

    slclass内容

    var slclass = [
        {
            label: "地表水质监测",
            children: [
                {
                    id: "waterQuality1",
                    label: "水质集装箱站",
                },
                {
                    id: "waterQuality2",
                    label: "水质微型站",
                },
            ]
        },
        {
            label: "土壤采样点",
            children: [
                {
                    label: "园地采样点",
                    disabled: true
                },
                {
                    label: "水源地二级保护区采样点",
                    disabled: true
                }
            ]
        },
        {
            id: '雨量',
            label: '园地',
        }
    ]
    
  • 相关阅读:
    解决打开GitHub慢的问题
    RestFramework规范简介
    在Linux中持久化运行项目
    Linux安装Mysql
    Java基础内容汇总[持续更新]
    Elasticsearch内容汇总[持续更新]
    深入源码理解SpringBean生命周期
    利用JVM钩子函数优雅关闭线程池
    聊聊消息队列高性能的秘密——零拷贝技术
    Elasticsearch性能优化汇总——写入&搜索
  • 原文地址:https://www.cnblogs.com/wwj007/p/11352391.html
Copyright © 2011-2022 走看看