Twaver-HTML5基础学习(24)快速查找(QuickFinder)

简介: 文章介绍了Twaver中的快速查找工具QuickFinder,用于根据属性值快速查找网络图中的元素,并提供了使用步骤和React代码示例。

快速查找(QuickFinder)

快速查找用于快速查找指定属性值的所有元素,如查找某个告警级别的所有告警,特定类型的所有网元等等。

  • dataBox:数据容器,查找器查找的对象
  • propertyName:属性名称,查找条件
  • propertyType:属性类型,默认为’accessor’,表示可直接获取的属性,属性类型支持三种:accessor、client、style等
  • valueFunction:值获取函数,默认根据上面三种方式获取数据,用户也可以指定值的获取方式,通过设置valueFunction实现
  • filterFunction:过滤函数,用于控制哪些元素是否参与查找

twaver.QuickFinder = function(dataBox,propertyName,propertyType,valueFunction,filterFunction)

/**
 *filterFunction:传入data,返回true/false,表示这个元素是否参与查找
 */
filterFunction = function(data){
   }
//返回第一个查找到的元素
findFirst: function (value) 
//返回找到的所有元素的集合
find: function(value)
使用QuickFinder步骤,以查找指定名称元素为例:
(1).首先创建一个与name属性绑定的查找器
/**
 * databox:数据容器
 * 'name':查找条件
 */
var nameFinder = new waver.QuickFinder(box,'name');
(2).开始查找
/**
 * 返回值:返回查找到的元素集合
 */
var datas = nameFinder.find('group-1');

例子

在这里插入图片描述

react代码
/*
 * @Descripttion: 
 * @version: 
 * @Author: ZhangJunQing
 * @Date: 2022-04-18 14:44:05
 * @LastEditors: ZhangJunQing
 * @LastEditTime: 2022-04-27 09:39:30
 */
import React, {
    useEffect, useState } from 'react'
import {
   
    returnElementBoxAndNetworkFun,
    returnNodeFun,
    returnLineFun,
} from './utils'
const twaver = require('twaver');
// const demo = require('demo');
const Demo = () => {
   
        const [network, setnetwork] = useState({
   })
        const init = () => {
   
        const [box, network] = returnElementBoxAndNetworkFun()
        setnetwork(_ => network)
        network.invalidateElementUIs();
        document.getElementById("testID").appendChild(network.getView());
        // 设置最初的大小
        network.adjustBounds({
    x: 0, y: 0, width: 800, height: 800 });

        returnNodeFun(box, {
    name: "liuqing", location: {
    x: 200, y: 300 } })
        let liuqing2 = returnNodeFun(box, {
    name: "liuqing", location: {
    x: 400, y: 500 } })
        liuqing2.setClient('NO', 'NO')
        /**
         * dataBox:数据容器,查找器查找的对象
         * propertyName:属性名称,查找条件
         * propertyType:属性类型,默认为'accessor',表示可直接获取的属性,属性类型支持三种:accessor、client、style等
         * valueFunction:值获取函数,默认根据上面三种方式获取数据,用户也可以指定值的获取方式,通过设置valueFunction实现
         * filterFunction:过滤函数,用于控制哪些元素是否参与查找 
         */
        //  twaver.QuickFinder = function (dataBox, propertyName, propertyType, valueFunction, filterFunction)

        /**
         *filterFunction:传入data,返回true/false,表示这个元素是否参与查找
        */
        // filterFunction = function (data) { }

        //返回第一个查找到的元素 传入对应属性的属性值
        // findFirst: function (value) 
        // 返回找到的所有元素的集合
        // find: function(value)

        // (1).首先创建一个与name属性绑定的查找器
        /**
         * databox:数据容器
         * 'name':查找条件
         */
        var nameFinder = new twaver.QuickFinder(box, 'name');
        // name属性对应属性值 伟liuqing的第一个网元
        let node = nameFinder.findFirst('liuqing')
        // 一个元素
        console.log(node, 'liuqing')
        // 返回所以name属性值伟liuqing的网元
        let nodes = nameFinder.find('liuqing')
        // 元素集合
        console.log(nodes, 'nodes')

        var noFinder = new twaver.QuickFinder(box, 'NO', 'client');
        console.log(noFinder, 'noFinder')
    }
    useEffect(init, [])
    return (
        <>
            <p style={
   {
    fontSize: "20px", paddingLeft: "50px", poaddingTop: "50px" }}>tips: </p>
            <ul style={
   {
    fontSize: "20px", paddingLeft: "50px" }}>
                <li>quickFinder快速查找</li>
            </ul>
            {
   /* 画布元素需要开启定位 不然生成的图元坐标点会偏移 */}
            <div id="testID" style={
   {
    width: "800px", height: "800px", border: "1px solid #ccc", position: "relative" }}></div>
        </>
    )
}
export default Demo

在这里插入图片描述

学习参考:TWaver Documents

目录
相关文章
|
9月前
|
前端开发 JavaScript
个人征信电子版无痕修改, 个人信用报告pdf修改,js+html+css即可实现【仅供学习用途】
本代码展示了一个信用知识学习系统的前端实现,包含评分计算、因素分析和建议生成功能。所有数据均为模拟生成
|
9月前
|
前端开发
个人征信PDF无痕修改软件,个人征信模板可编辑,个人征信报告p图神器【js+html+css仅供学习用途】
这是一款信用知识学习系统,旨在帮助用户了解征信基本概念、信用评分计算原理及信用行为影响。系统通过模拟数据生成信用报告,涵盖还款记录
Twaver-HTML5基础学习(29)界面交互
这篇文章介绍了Twaver-HTML5中界面交互的多种模式,包括默认模式、编辑模式、创建网元模式、创建连线模式、创建形状连线模式、创建形状网元模式、触屏模式和放大镜模式,并提供了相应的代码示例。
307 10
Twaver-HTML5基础学习(29)界面交互
Twaver-HTML5基础学习(27)过滤器
这篇文章介绍了Twaver-HTML5中过滤器的使用,包括可见过滤器、可移动过滤器和可编辑过滤器,并通过代码示例展示了如何通过设置过滤器实现不同用户权限或网元类型的交互和视图。
174 8
Twaver-HTML5基础学习(27)过滤器
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(26)背景
这篇文章介绍了如何在Twaver-HTML5中设置背景,包括栅格图片、颜色、颜色渐变、基本形状以及图片与形状结合的背景类型,并提供了代码示例。
192 7
Twaver-HTML5基础学习(26)背景
|
数据可视化 前端开发
Twaver-HTML5基础学习(39)鹰眼可视化视图组件(OverView)
本文介绍了如何在Twaver-HTML5中使用鹰眼(Overview)可视化视图组件,它作为Network的缩略图,允许用户通过缩略图导航Network,支持单击、双击和框选操作来控制Network视图。
365 5
Twaver-HTML5基础学习(39)鹰眼可视化视图组件(OverView)
Twaver-HTML5基础学习(35)Network中ToolTip显示Chart(视图未成功出现)
本文尝试在Twaver-HTML5的Network组件的ToolTip中显示echarts饼图,但未成功,可能与版本有关。
227 4
Twaver-HTML5基础学习(35)Network中ToolTip显示Chart(视图未成功出现)
|
前端开发
Twaver-HTML5基础学习(34)Link显示流动效果
本文介绍了如何在Twaver-HTML5中为Link添加流动效果,通过设置流动颜色、模式等来实现动态视觉效果。
197 3
Twaver-HTML5基础学习(34)Link显示流动效果
|
数据可视化 前端开发 容器
Twaver-HTML5基础学习(41)列表可视化视图组件(List)
本文介绍了如何在Twaver-HTML5中使用列表可视化视图组件(List),展示了如何创建列表、设置列表属性(如行高、间隔颜色等)、实现数据绑定和排序,以及如何通过React代码示例进行操作。
272 2
Twaver-HTML5基础学习(41)列表可视化视图组件(List)
Twaver-HTML5基础学习(38)劈分面板SplitPane
本文介绍了如何在Twaver-HTML5中使用SplitPane组件来创建可分割的面板,通过动态调整分割条来改变面板的大小,支持水平和垂直分割。
223 2
Twaver-HTML5基础学习(38)劈分面板SplitPane