예 를 들 어 ztree 는 vue 프로젝트 에서 사용 되 고 검색 기능 이 있 습 니 다.
지난 글vue 에서 ztree 를 어떻게 사용 합 니까?을 소개 하 였 으 니 클릭 하여 보 실 수 있 습 니 다.
앞서 블 로 그 는 vue 에서 클릭 요 소 를 보 여 주 는 방법 과 검색 기능 을 소개 했다.
html
<el-form-item label=" " class="ztree-par">
<i class="icon_org"></i>
<input type="text" placeholder=" " id="ser" v-model="ruleForm.mechanism" @keyup.enter="search_ztree('treeDemo', 'ser')" @click.stop = "control()" class="login-input">
<el-button icon="el-icon-arrow-down" @click.stop="control()"></el-button>
<div class="ztree-z" v-show="ztreeCon">
<ul id="treeDemo" class="ztree"></ul>
</div>
</el-form-item>
main.js 단독 도입 필요
import "./../static/ztree/js/jquery.ztree.exhide-3.5.min.js";
이것 을 단독으로 도입 하지 않 으 면 많은 요 소 를 얻 을 수 없습니다.input 리 턴 이벤트 나 이 벤트 를 클릭 할 때 이 이 벤트 를 직접 실행 하면 됩 니 다.코드 부분
expand_ztree(treeId) {
var treeObj = $.fn.zTree.getZTreeObj(treeId);
treeObj.expandAll(true);
},
close_ztree(treeId) {
var treeObj = $.fn.zTree.getZTreeObj(treeId);
var nodes = treeObj.transformToArray(treeObj.getNodes());
var nodeLength = nodes.length;
for (var i = 0; i < nodeLength; i++) {
if (nodes[i].id == '0') {
// :
treeObj.expandNode(nodes[i], true, true, false);
} else {
// :
treeObj.expandNode(nodes[i], false, true, false);
}
}
},
search_ztree(treeId, searchConditionId) {
this.searchByFlag_ztree(treeId, searchConditionId, "");
},
searchByFlag_ztree(treeId, searchConditionId, flag) {
//<1>.
var searchCondition = $('#' + searchConditionId).val();
//<2>.
var highlightNodes = new Array();
if (searchCondition != "") {
var treeObj = $.fn.zTree.getZTreeObj(treeId);
highlightNodes = treeObj.getNodesByParamFuzzy("name", searchCondition, null);
}
//<3>. 【 s】
this.highlightAndExpand_ztree(treeId, highlightNodes, searchCondition, flag);
},
highlightAndExpand_ztree(treeId, highlightNodes, tx, flag) {
var treeObj = $.fn.zTree.getZTreeObj(treeId);
//<1>.
var treeNodes = treeObj.transformToArray(treeObj.getNodes());
for (var i = 0; i < treeNodes.length; i++) {
treeNodes[i].highlight = false;
treeObj.updateNode(treeNodes[i]);
}
//<2>. ,
this.close_ztree(treeId);
//<3>. ,
if (highlightNodes != null) {
for (var i = 0; i < highlightNodes.length; i++) {
if (flag != null && flag != "") {
if (highlightNodes[i].flag == flag) {
// ,
highlightNodes[i].highlight = true;
treeObj.updateNode(highlightNodes[i]);
// .... ,
var parentNode = highlightNodes[i].getParentNode();
var parentNodes = this.getParentNodes_ztree(treeId, parentNode);
treeObj.expandNode(parentNodes, true, false, true);
treeObj.expandNode(parentNode, true, false, true);
}
} else {
treeObj.updateNode(highlightNodes[i]);
var parentNode = highlightNodes[i].getParentNode();
var parentNodes = this.getParentNodes_ztree(treeId, parentNode);
treeObj.expandNode(parentNodes, true, false, true);
treeObj.expandNode(parentNode, true, false, true);
}
}
}
},
getParentNodes_ztree(treeId, node) {
if (node != null) {
var treeObj = $.fn.zTree.getZTreeObj(treeId);
var parentNode = node.getParentNode();
return this.getParentNodes_ztree(treeId, parentNode);
} else {
return node;
}
}
전시 하 다.이것 은 작은 bug 가 있 습 니 다.바로 키 보드 를 누 르 거나 들 었 을 때 문제 가 생 길 수 있 습 니 다.https://yq.aliyun.com/articles/308489이 글 은 이 문 제 를 해결 합 니 다.
총결산
위 에서 말 한 것 은 편집장 이 소개 한 ztree 가 vue 프로젝트 에서 사용 하고 검색 기능 을 가지 고 있 습 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.