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: '园地',
        }
    ]
    
  • 相关阅读:
    flume-agent实例
    Apache Ant在Windows下配置环境变量
    作业流程和优化
    使用MapReduce查询Hbase表指定列簇的全部数据输出到HDFS(一)
    使用MapReduce将HDFS数据导入到HBase(二)
    数据结构(一)线性表——顺序表
    Java类集综合练习——信息管理(增、删、改、查)
    MySQL数据库表的数据插入、修改、删除、查询操作及实例应用
    总结一下这几节Java课的...重点!!!
    文件I/O操作——File类
  • 原文地址:https://www.cnblogs.com/wwj007/p/11352391.html
Copyright © 2011-2022 走看看