- angular 控件css_angular组件样式不生效
小飞侠的刀刀
angular控件css
在本周的项目中有一个需求,对处于两种不同状态的计算机列表赋予不同的颜色方便更加醒目的区分,完工后的效果如下。解决思路——rowClassName项目使用了ng-alain,作者提供了许多方便的方法与属性,所以解决这个问题并不太难,张喜硕学长直接给我说了使用rowClassName这个属性。0开始的时候我以为这个类名是对象那个类,还在思考应该怎么写,后来听张喜硕学长一说才明白,这是css的那个类,那
- angular和ng-alain前端跨域的问题
W不知我者怎居我心
angular是前端框架之一,相对vue和react比较,angular的难度是很大的,对于零基础的的开发着来说,需要下开打的功夫,多看文档,废话不多说了,直接上干货,希望能帮助到你,助你一臂之力!1.第一步:再项目的根目录新建一个文件,(不是文件夹!!!!!);我新建文件名称为:proxy.conf.json2.第二步:再proxy.conf.json文件里面写:{"/api":{"target
- 如何更好使用 ng-zorro-antd 图标
cipchk
自ng-zorro-antd1.7.x以后图标发生破坏性变更,虽然带了诸多优势,同时也带来几个劣势:若采用动态加载会产生额外的HTTP请求若静态加载需要逐一注册图标st组件的format参数无法直接指定图标ng-alain默认使用静态加载的做法,毕竟后端使用图标相对于比较有限,即使将svg都打包进脚本相比较之前整个styles体积上是所有减少,但比较并不多。而针对以上问题,ng-alain提供几种
- jeecg-boot sql注入漏洞解决
宁波阿成
java开发jeecg-bootsql数据库
输入下面的链接地址,就会出现下面的获取数据,这个漏洞还是比较严重的啊http://localhost:8080/nbcio-boot/sys/ng-alain/getDictItemsByTable/'%20from%20sys_user/*,%20'/x.js通过上面方式可以获取用户信息了如下:@RequestMapping(value="/getDictItemsByTable/{table}
- ng-alain的sf如何自定义部件
codeobj
一、背景最近使用ng-alain做前端,sf的部件很丰富,但是做起来之后就会发现,多多少少会有一些不符合需求的东西,比如:file这是一个string的部件,后边跟上一个单位看着很不错,但是我们通常在使用number时会更需要这个单位,然而官方的部件并没有再比如:file我想做一个编辑框,要求内容不可编辑,并且该内容要从别的列表进行选择,下拉选择可以满足需求,但是如果内容太多,有时就不方便使用下拉
- ng-alain安装
前端
修改ng的安装:yarnngconfig-gcli.packageManageryarn创建新的angular项目:ngnewXXXngnew时已经把node_modules里面的依赖安装好,但ngaddng-alain时需要安装ng-alain的一些依赖,此时会出现与之前依赖重复的,npm不会重新安装,此时,命令执行不下去了,出现依赖冲突;解决方法:在执行ngaddng-alain之前把node
- Ng-alain中G2图表加载动态数据
明哥我来
在做图表展示的时候,大部分是采用异步请求,获取图表数据。页面上如果有查询功能,在异步请求后,又需要动态更新当前图表。代码如下查询//component.ts部分import{ElementRef,ViewChild}from'@angular/core';import{Component,Injector,OnInit,ChangeDetectionStrategy}from'@angular/c
- 将 ng-alain 中的菜单替换成 ng-zorro-antd 的 nz-menu
Tucke
首先,不得不说@delon是一个很不错的业务组件,它是ng-alain默认使用的业务组件!但是由于delon的菜单组件sidebar-nav的样式是基于css控制的,所以当菜单折叠后,展示出来的子菜单,在某些情况操作下无法正常关闭,是需要通过监听鼠标的点击事件来关闭的,因此我才决定使用nz-menu去替换它,并且同时不破坏其它功能(如:路由守卫、在pad下自动收缩菜单等)一.新建一个组件例如sid
- 如何友好的启动Angular应用
cipchk
一、引言一个单页应用第一次启动从文档的下载(包括各种资源)再到初始化至成功渲染这一过程基本上都是以秒为单位的。Angular应用的index.html会在文档当中写入根组件,例如:Loading...直到Angular初始化完成后Loading...字样才会从页面消失,并进入实际的应用。当然相比较一版空白着实还算优雅一点。然而一个好的应用的体验怎能这样呢,有兴趣的可以先看一下ng-alain是如何
- ng-alain的sf如何自定义部件
codeobj
spring
一、背景最近使用ng-alain做前端,sf的部件很丰富,但是做起来之后就会发现,多多少少会有一些不符合需求的东西,比如:我想做一个编辑框,要求内容不可编辑,并且该内容要从别的列表进行选择,下拉选择可以满足需求,但是如果内容太多,有时就不方便使用下拉框了,那么这时候我们就需要自定义二、自定义ng-alain部件的流程1、组件的整体结构2、首先,组件click-input.component.htm
- Snails 1.0正式发布
Kuzan
前后端分离框架springbootangularng-alain
Snails项目源于给实习生做的一个Ng-Alain+SpringBoot入门学习项目,随着项目逐步完善,便将其开源并正式发布Snails1.0版本。基于简单、实用性等考虑,项目中使用了Lombok、Jpa、Java8等技术,加上Ng-Alain优秀的前端脚手架系统、Ng-Zorro丰富前端组件、SpringBoot作为后台JavaRestApi服务;并且,项目中支持的前端控制语言Angular与
- ng-alain SF表单项实现行内排列
Guoye
ng-alain
场景使用ng-alain的SF动态表单,当使用的表单项极少时,通常会使用到inline行内排列,用input组件没啥问题。但是使用某些组件,存在数据异步加载且没有初始值的情况,则ui展现会出现不雅观的问题。如下图。解决方式在ui中增加width属性即可,如下图示不需要设置下面这些属性最终能实现想要的效果
- ng-alain下拉选择异步数据,搜索异步数据及初始化默认选中数据
Guoye
ng-alain
在做CURD时使用ng-alain的SF,实现业务功能是相当的快。但是在做一些复杂或者相对复杂的需求时,官方所提供的示例也不一定会有,因此需要自己动手研究及解决。场景ng-alain7.2.0新增界面:SF组件使用select小部件下拉里显示懒加载一部分数据(因为数据量大,因此只加载100),搜索时也使用懒加载数据编辑界面:SF组件使用select小部件实始化默认选中的数据,选中的数据有可能不存在
- ng-alain动态表单SF表单项设置必填和正则校验
Guoye
ng-alainangular校验表单
在使用动态表单时对表单项进行非空校验及正则校验。使用手机号进行校验,示例如下:动态表单的基本使用:https://ng-alain.com/form/get...基于基本示例,增加手机号必填与正则校验的例子:@Component({selector:'app-home',template:``})exportclassHomeComponent{schema:SFSchema={propertie
- Angular 容器部署
cipchk
letsencryptnginxdockerangular2angular4
很多人反应很难访问GithubPage,所以ng-alain.com转移到阿里云服务器上,因此做了一次完整的Angular容器部署。以下我会阐述ng-alain整个过程,其中包括Docker、Nginx、Let'sSencrypt证书等范涛,我无法保证新手可以很好的阅读她,不过你可以通过一些文章关键字在搜索引擎获得更多资料。我们知道Docker有两个很重要的概念:镜像、容器。而Anguar容器部署
- ng-alain(ng-zorro)实现两个开关同排放置(关于自定义组件的运用)
c999
ng-alainng-zorroangular
采用ng-alain自定义组件官方文档地址:https://ng-alain.com/form/custom/zh注意:如果你属性名为name,则对应sf-template="name"代码如下:html:ts:最终效果:
- ng-alain 添加tinymce及tinymce图片上传功能模块
z-robot
angular8ng-alain
tinymce的使用tinymce中文文档默认ng-alain已经内置了tinymc查看共享模块是否加载了tinymceimport{NgxTinymceModule}from'ngx-tinymce';constTHIRDMODULES=[NgxTinymceModule];在appmodule中注册import{NgxTinymceModule}from'ngx-tinymce';@NgMod
- ng-alain学习
*MaybE
ng-alain
ng-alain--如何使用前期准备1、创建angular项目2、添加ng-alain脚手架3、运行项目ng-g业务页1.生成模块2.业务页前期准备1、创建angular项目ng-alain是基于angular之上的,所以先建个angular项目demo,然后进入demo,安装依赖包(官网是先添加ng-alain后安装依赖的,好像有点问题)ngnewdemocddemocnpminstall2、添
- 基于Ant Design UI框架的angular项目
开水没有春天
angular
地址:https://ng-alain.github.io/ng-alain/#/dashboard/v1https://pan.baidu.com/s/1dEA9BEh#list/path=%2F搜索东西:https://segmentfault.com/search?q=angular+antd
- ng-alain表单使用方式
weixin_34357887
Angular表单Angular提供两种不同的架构范式表单:模板驱动和响应式表单,官网也简单实现了动态表单范例。当使用两种不同范式构建一个用户必填性的表单,在使用上有非常大的不同:模板驱动@Component({template:`NameNameisrequired`})exportclassDemoComponent{}响应式@Component({template:`NameNameisre
- ng-alain 复用标签相关设置
weixin_34247032
排除复用import{ReuseTabMatchMode,ReuseTabService}from'@delon/abc';exportclassStartupService{constructor(privatereuseTabService:ReuseTabService,privateinj:Injector){}load():Promise{//onlyworkswithpromisesc
- ng-alain 与 .net core 搭配
weixin_34174422
写在前面鉴于很多使用ng-alain都以.net为后端,以下我将以一个示例来描述ng-alain如何同.netcore一起开发。示例以单个中后台项目为基准,对于多项目的应用大体相同,但整体目录结构当然不能以单个项目了,更多应该以多人开发为准。所有源码,从Github中获取。一、构建项目1、构建分为ng-alain和.netcore两个部分,当然我推荐二者分开创建在一个根目录下,例如以一个asdf为
- 基于ng-alain定义自己的select组件
weixin_34129145
1、首先是my-select2.component.html页面,这里是在ng-alain的select基础上根据业务需求添加新的功能;代码如下:复制代码2、再者是my-select2.component.ts页面,代码里面有注释;代码如下:import{ControlValueAccessor}from'@angular/forms/src/directives';import{Componen
- 发布 ng-alain 1.0.0 正式版
weixin_34029680
ng-zorro-antd0.7.0发布时我就想说那得喝一杯,这个版本的等待其实在社区里反应是有点“忐忑”,所以当VTHINK跟我说来今天要发布0.7时我说那晚上得喝一杯。然而,为了将ng-alain也同步0.7一个晚上都在忙碌;直到倒头睡觉把喝一杯的事已经忘光了。当然,今天也算是个不错的日子,ng-alain也发布了1.0.0正式版。从0.8到1.0并没有做了很多新的东西,一直以让开发者更加专注
- [ng-alain系列]一套基于 Ng-zorro-antd 企业后台模板。
weixin_33979203
ng-alain一套基于Ng-zorro-antd【ANTDESIGN】的企业后台模板。你可以在线体验它。快速入门确保node版本>=6.9.0且npm版本>=3以上。ng-alain本身并非组件库,只是一个单纯的企业后台模板,你可以直接克隆到你的本地,然后立即进入实际开发。#cloneng-alainrepo#--depth1removesallbutone.gitcommithistorygi
- 如何更好使用 ng-zorro-antd 图标
weixin_33915554
自ng-zorro-antd1.7.x以后图标发生破坏性变更,虽然带了诸多优势,同时也带来几个劣势:若采用动态加载会产生额外的HTTP请求若静态加载需要逐一注册图标st组件的format参数无法直接指定图标ng-alain默认使用静态加载的做法,毕竟后端使用图标相对于比较有限,即使将svg都打包进脚本相比较之前整个styles体积上是所有减少,但比较并不多。而针对以上问题,ng-alain提供几种
- 基于ng-alain前端框架项目开发
weixin_30687587
现在前后端分离开发逐渐趋向成为一种主流,公司最近项目也开始采用前后端分离的模式。这篇文章主要记录下采用angular前端框架遇到的一些问题,或者是踩的一些坑。1、环境的搭建这个比较简单,网上相关文章很多。这里主要是安装node.js(npm包管理工具在安装node.js时会自动安装),还有再安装下angul/cli工具,这个工具可以大大简化我们的开发,提高效率。2、项目初始化这个可以参考ng-al
- 基于阿里出得ng-Alain搭建后台管理系统
weixin_30565199
首先跟大家介绍一下ng_Alain(阿里团队出品)ng-alain技术栈基于Typescript、Angular、g2、@delon和ng-zorro-antd,提前了解和学习这些知识会非常有帮助。ng-alain脚手架是基于Angular和ng-zorro-antd(AntDesign的Angular版本)基础组件库的中后台前端解决方案。脚手架包含着一套通用的功能和业务组件库,它们可以极大的减少
- ng-alain使用
weixin_30549175
官方介绍NG-ALAIN是一个企业级中后台前端/设计解决方案脚手架,我们秉承AntDesign的设计价值观,目标也非常简单,希望在Angular上面开发企业后台更简单、更快速。ng-alain技术栈基于Typescript、Angular、g2、@delon和ng-zorro-antd。安装可以使用以下两种方式:注:使用CLI安装,是一个干净的脚手架;使用克隆代码会包含所有示例。1、CLI(推荐)
- Angular UI框架 Ng-alain @delon的脚手架的生成开发模板
Fire in rain
前端Angular
参考:https://www.cnblogs.com/wer-ltm/p/8447323.htmlhttps://ng-alain.com/zh
- C/C++Win32编程基础详解视频下载
择善Zach
编程C++Win32
课题视频:C/C++Win32编程基础详解
视频知识:win32窗口的创建
windows事件机制
主讲:择善Uncle老师
学习交流群:386620625
验证码:625
--
- Guava Cache使用笔记
bylijinnan
javaguavacache
1.Guava Cache的get/getIfPresent方法当参数为null时会抛空指针异常
我刚开始使用时还以为Guava Cache跟HashMap一样,get(null)返回null。
实际上Guava整体设计思想就是拒绝null的,很多地方都会执行com.google.common.base.Preconditions.checkNotNull的检查。
2.Guava
- 解决ora-01652无法通过128(在temp表空间中)
0624chenhong
oracle
解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程
一个sql语句后,大约花了10分钟,好不容易有一个结果,但是报了一个ora-01652错误,查阅了oracle的错误代码说明:意思是指temp表空间无法自动扩展temp段。这种问题一般有两种原因:一是临时表空间空间太小,二是不能自动扩展。
分析过程:
既然是temp表空间有问题,那当
- Struct在jsp标签
不懂事的小屁孩
struct
非UI标签介绍:
控制类标签:
1:程序流程控制标签 if elseif else
<s:if test="isUsed">
<span class="label label-success">True</span>
</
- 按对象属性排序
换个号韩国红果果
JavaScript对象排序
利用JavaScript进行对象排序,根据用户的年龄排序展示
<script>
var bob={
name;bob,
age:30
}
var peter={
name;peter,
age:30
}
var amy={
name;amy,
age:24
}
var mike={
name;mike,
age:29
}
var john={
- 大数据分析让个性化的客户体验不再遥远
蓝儿唯美
数据分析
顾客通过多种渠道制造大量数据,企业则热衷于利用这些信息来实现更为个性化的体验。
分析公司Gartner表示,高级分析会成为客户服务的关键,但是大数据分析的采用目前仅局限于不到一成的企业。 挑战在于企业还在努力适应结构化数据,疲于根据自身的客户关系管理(CRM)系统部署有效的分析框架,以及集成不同的内外部信息源。
然而,面对顾客通过数字技术参与而产生的快速变化的信息,企业需要及时作出反应。要想实
- java笔记4
a-john
java
操作符
1,使用java操作符
操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法调用不用,但是效果是相同的。加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)以及赋值号(=)的用法与其他编程语言类似。
操作符作用于操作数,生成一个新值。另外,有些操作符可能会改变操作数自身的
- 从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
aijuans
嵌入式学习
笔者学习嵌入式Linux也有一段时间了,很奇怪的是很多书讲驱动编程方面的知识,也有很多书将ARM9方面的知识,但是从以前51形式的(对寄存器直接操作,初始化芯片的功能模块)编程方法,和思维模式,变换为基于Linux操作系统编程,讲这个思想转变的书几乎没有,让初学者走了很多弯路,撞了很多难墙。
笔者因此写上自己的学习心得,希望能给和我一样转变
- 在springmvc中解决FastJson循环引用的问题
asialee
循环引用fastjson
我们先来看一个例子:
package com.elong.bms;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import co
- ArrayAdapter和SimpleAdapter技术总结
百合不是茶
androidSimpleAdapterArrayAdapter高级组件基础
ArrayAdapter比较简单,但它只能用于显示文字。而SimpleAdapter则有很强的扩展性,可以自定义出各种效果
ArrayAdapter;的数据可以是数组或者是队列
// 获得下拉框对象
AutoCompleteTextView textview = (AutoCompleteTextView) this
- 九封信
bijian1013
人生励志
有时候,莫名的心情不好,不想和任何人说话,只想一个人静静的发呆。有时候,想一个人躲起来脆弱,不愿别人看到自己的伤口。有时候,走过熟悉的街角,看到熟悉的背影,突然想起一个人的脸。有时候,发现自己一夜之间就长大了。 2014,写给人
- Linux下安装MySQL Web 管理工具phpMyAdmin
sunjing
PHPInstallphpMyAdmin
PHP http://php.net/
phpMyAdmin http://www.phpmyadmin.net
Error compiling PHP on CentOS x64
一、安装Apache
请参阅http://billben.iteye.com/admin/blogs/1985244
二、安装依赖包
sudo yum install gd
- 分布式系统理论
bit1129
分布式
FLP
One famous theory in distributed computing, known as FLP after the authors Fischer, Lynch, and Patterson, proved that in a distributed system with asynchronous communication and process crashes,
- ssh2整合(spring+struts2+hibernate)-附源码
白糖_
eclipsespringHibernatemysql项目管理
最近抽空又整理了一套ssh2框架,主要使用的技术如下:
spring做容器,管理了三层(dao,service,actioin)的对象
struts2实现与页面交互(MVC),自己做了一个异常拦截器,能拦截Action层抛出的异常
hibernate与数据库交互
BoneCp数据库连接池,据说比其它数据库连接池快20倍,仅仅是据说
MySql数据库
项目用eclipse
- treetable bug记录
braveCS
table
// 插入子节点删除再插入时不能正常显示。修改:
//不知改后有没有错,先做个备忘
Tree.prototype.removeNode = function(node) {
// Recursively remove all descendants of +node+
this.unloadBranch(node);
// Remove
- 编程之美-电话号码对应英语单词
bylijinnan
java算法编程之美
import java.util.Arrays;
public class NumberToWord {
/**
* 编程之美 电话号码对应英语单词
* 题目:
* 手机上的拨号盘,每个数字都对应一些字母,比如2对应ABC,3对应DEF.........,8对应TUV,9对应WXYZ,
* 要求对一段数字,输出其代表的所有可能的字母组合
- jquery ajax读书笔记
chengxuyuancsdn
jQuery ajax
1、jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()
- JWFD工作流拓扑结构解析伪码描述算法
comsci
数据结构算法工作活动J#
对工作流拓扑结构解析感兴趣的朋友可以下载附件,或者下载JWFD的全部代码进行分析
/* 流程图拓扑结构解析伪码描述算法
public java.util.ArrayList DFS(String graphid, String stepid, int j)
- oracle I/O 从属进程
daizj
oracle
I/O 从属进程
I/O从属进程用于为不支持异步I/O的系统或设备模拟异步I/O.例如,磁带设备(相当慢)就不支持异步I/O.通过使用I/O 从属进程,可以让磁带机模仿通常只为磁盘驱动器提供的功能。就好像支持真正的异步I/O 一样,写设备的进程(调用者)会收集大量数据,并交由写入器写出。数据成功地写出时,写入器(此时写入器是I/O 从属进程,而不是操作系统)会通知原来的调用者,调用者则会
- 高级排序:希尔排序
dieslrae
希尔排序
public void shellSort(int[] array){
int limit = 1;
int temp;
int index;
while(limit <= array.length/3){
limit = limit * 3 + 1;
- 初二下学期难记忆单词
dcj3sjt126com
englishword
kitchen 厨房
cupboard 厨柜
salt 盐
sugar 糖
oil 油
fork 叉;餐叉
spoon 匙;调羹
chopsticks 筷子
cabbage 卷心菜;洋白菜
soup 汤
Italian 意大利的
Indian 印度的
workplace 工作场所
even 甚至;更
Italy 意大利
laugh 笑
m
- Go语言使用MySQL数据库进行增删改查
dcj3sjt126com
mysql
目前Internet上流行的网站构架方式是LAMP,其中的M即MySQL, 作为数据库,MySQL以免费、开源、使用方便为优势成为了很多Web开发的后端数据库存储引擎。MySQL驱动Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种:
http://code.google.c...o-mysql-dri
- git命令
shuizhaosi888
git
---------------设置全局用户名:
git config --global user.name "HanShuliang" //设置用户名
git config --global user.email "
[email protected]" //设置邮箱
---------------查看环境配置
git config --li
- qemu-kvm 网络 nat模式 (四)
haoningabc
kvmqemu
qemu-ifup-NAT
#!/bin/bash
BRIDGE=virbr0
NETWORK=192.168.122.0
GATEWAY=192.168.122.1
NETMASK=255.255.255.0
DHCPRANGE=192.168.122.2,192.168.122.254
TFTPROOT=
BOOTP=
function check_bridge()
- 不要让未来的你,讨厌现在的自己
jingjing0907
生活 奋斗 工作 梦想
故事one
23岁,他大学毕业,放弃了父母安排的稳定工作,独闯京城,在家小公司混个小职位,工作还算顺手,月薪三千,混了混,混走了一年的光阴。 24岁,有了女朋友,从二环12人的集体宿舍搬到香山民居,一间平房,二人世界,爱爱爱。偶然约三朋四友,打扑克搓麻将,日子快乐似神仙; 25岁,出了几次差,调了两次岗,薪水涨了不过百,生猛狂飙的物价让现实血淋淋,无力为心爱银儿购件大牌
- 枚举类型详解
一路欢笑一路走
enum枚举详解enumsetenumMap
枚举类型详解
一.Enum详解
1.1枚举类型的介绍
JDK1.5加入了一个全新的类型的”类”—枚举类型,为此JDK1.5引入了一个新的关键字enum,我们可以这样定义一个枚举类型。
Demo:一个最简单的枚举类
public enum ColorType {
RED
- 第11章 动画效果(上)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Eclipse中jsp、js文件编辑时,卡死现象解决汇总
ljf_home
eclipsejsp卡死js卡死
使用Eclipse编辑jsp、js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲。将所有用过的方法罗列如下:
1、取消验证
windows–>perferences–>validation
把 除了manual 下面的全部点掉,build下只留 classpath dependency Valida
- MySQL编程中的6个重要的实用技巧
tomcat_oracle
mysql
每一行命令都是用分号(;)作为结束
对于MySQL,第一件你必须牢记的是它的每一行命令都是用分号(;)作为结束的,但当一行MySQL被插入在PHP代码中时,最好把后面的分号省略掉,例如:
mysql_query("INSERT INTO tablename(first_name,last_name)VALUES('$first_name',$last_name')");
- zoj 3820 Building Fire Stations(二分+bfs)
阿尔萨斯
Build
题目链接:zoj 3820 Building Fire Stations
题目大意:给定一棵树,选取两个建立加油站,问说所有点距离加油站距离的最大值的最小值是多少,并且任意输出一种建立加油站的方式。
解题思路:二分距离判断,判断函数的复杂度是o(n),这样的复杂度应该是o(nlogn),即使常数系数偏大,但是居然跑了4.5s,也是醉了。 判断函数里面做了3次bfs,但是每次bfs节点最多