当前位置: 首页 > news >正文

数据网站建设哪个好疫情最严重的三个省

数据网站建设哪个好,疫情最严重的三个省,如何开发一个聊天软件,怎么做网页小精灵目录 1、翻页方法中控制目录树节点的展开与关闭2、搜索目录树节点名称控制节点的展开与关闭 <el-tree:data"data_option"ref"tree":props"defaultProps"node-click"handleNodeClick":default-expanded-keys"needExpandedKeys&…

目录

  • 1、翻页方法中控制目录树节点的展开与关闭
  • 2、搜索目录树节点名称控制节点的展开与关闭

<el-tree:data="data_option"ref="tree":props="defaultProps"@node-click="handleNodeClick":default-expanded-keys="needExpandedKeys"node-key="type_id"highlight-current>
</el-tree>expandedKeys: [], //所有treenode的id
needExpandedKeys: [], //需要展开的treenode的id数组
needExpandedNodes:[],//需要展开的treenode的node数组

关键在于以下两行代码

 :default-expanded-keys="needExpandedKeys"  // needExpandedKeys数组,用来保存展开节点的唯一值node-key="type_id"  //每个节点的唯一值,这里我的唯一值是type_id

data_option 数组如果没有这个唯一值怎么办,给它加一个

//list 是目录树节点以及目录树节点下的文件所组成的一个数组
this.data_option = this.addTypeIdToTreeNode(list);  addTypeIdToTreeNode(lastList) {//传进去的list是有tree又有file//给每个node节点添加type_id,用来展开目录设置唯一值let treeData = lastList;const addIdToTree = (treeData) => {return treeData.map((node, index) => {if (!node._id) {  //根据自己目录树数组的实际情况修改,因为我这个_id有用所以需要判断const newNode = {...node,type_id: node.type_code == 0 ? "wfl000" : node.type_code,}; // 创建一个新的节点,包括原有的属性和新的 _id 属性if (node.childrens && node.childrens.length > 0) {newNode.childrens = addIdToTree(node.childrens); // 递归处理子节点}return newNode;} else {const newNode = { ...node, type_id: node._id }; // 创建一个新的节点,包括原有的属性和新的 _id 属性return newNode;}});};const treeDataWithId = addIdToTree(treeData);let str = [];const getStr = function (list) {list.forEach(function (row) {if (row.childrens) {str.push(row.type_id);getStr(row.childrens);} else {str.push(row.type_id);}});};getStr(treeDataWithId);this.expandedKeys = str;// console.log("需要展开的treenode", this.expandedKeys);// console.log("需要展开的treeDataWithId", treeDataWithId);return treeDataWithId;},

1、翻页方法中控制目录树节点的展开与关闭


this.$nextTick(() => {this.$refs.tree.setCurrentKey(this.userArr[0].type_id  //高亮当前节点,type_id 唯一值确定节点);//展开高亮文件的目录this.expandedKeys.forEach((node) => {if (//this.indexLocation 翻页之后是a文件,a文件的下标this.userArr[this.indexLocation].type_id.indexOf(node) !== -1  ) {this.needExpandedKeys.push(node);}});this.needExpandedKeys.forEach((node) => {this.$refs.tree.store.setCheckedNodes([node], true);});});

2、搜索目录树节点名称控制节点的展开与关闭

//搜索goToSearch(){let treedata = this.data_optionif(this.searchStr){//需要关闭所有节点 //除了上次搜索展开的节点还有自己点击展开的节点this.changeTreeNodeStatus(this.$refs.tree.store.root)this.needExpandedNodes = []this.needExpandedKeys = []//获取需要展开的节点数组this.findTypeCode(treedata, this.searchStr)this.needExpandedNodes.forEach(item=>{this.needExpandedKeys.push(item.type_id)})if(this.needExpandedKeys.length == 0){this.$message.error("没有找到您搜索的目录节点")}else{//模拟点击该节点,使其高亮,默认高亮搜索出的第一个节点this.handleNodeClick(this.needExpandedNodes[0],this.$refs.tree.getNode(this.needExpandedKeys[0]))}console.log("needExpandedKeys",this.needExpandedKeys)}else{this.changeTreeNodeStatus(this.$refs.tree.store.root)this.needExpandedNodes = []this.needExpandedKeys = []}},//循环拿到需要展开的目录子节点findTypeCode(treeData, targetName) {// 遍历树结构for (let i = 0; i < treeData.length; i++) {const node = treeData[i];// 如果节点的 type_name 包含目标名称,返回该节点的 type_codeif (node.type_name.includes(targetName)) {// if (node.type_name==targetName) {console.log(node.type_id)if(node.type_id){this.needExpandedNodes.push(node)}}// 如果节点有子节点,递归调用自身进行深度优先搜索if (node.childrens && node.childrens.length > 0) {const result = this.findTypeCode(node.childrens, targetName);// 如果在子树中找到了匹配的节点,返回结果if (result) {return result;}}}// 如果没有找到匹配的节点,返回 null 或者适合您的默认值return null;},changeTreeNodeStatus(node) {node.expanded = falsefor (let i = 0; i < node.childNodes.length; i++) {// 改变节点的自身expanded状态node.childNodes[i].expanded = this.defaultExpand// 遍历子节点if (node.childNodes[i].childNodes.length > 0) {this.changeTreeNodeStatus(node.childNodes[i])}}},

记录一个比较重要的点:高亮某行目录树节点

this.handleNodeClick(this.needExpandedNodes[0],this.$refs.tree.getNode(this.needExpandedKeys[0]))//即:
this.handleNodeClick(node, this.$refs.tree.getNode(node))
//node为 目录树的一个节点,在我这儿比如data_option数组中的某个对象
http://www.yidumall.com/news/97974.html

相关文章:

  • wordpress快速注册刘连康seo培训哪家强
  • 机关事业单位网站建设西安seo主管
  • 珠海网站建设找哪家seo广州工作好吗
  • 武汉软件测试培训机构排名厦门seo排名优化方式
  • 免费的微网站手机上如何制作自己的网站
  • 虎门网站建设多少钱慈溪seo排名
  • 班级介绍网站首页如何做北京seo排名外包
  • 网页链接生成二维码搜索引擎优化营销
  • 做小说网站做国外域名还是国内的好处百度竞价客服
  • 相亲网站男人拉我做外汇上海互联网管理系统推广公司
  • 美团网站开发品牌营销方案
  • 网站做授权登录界面网络营销的方式和方法
  • 建设银行单位社会招聘网站重庆网页优化seo公司
  • 可以访问的国外网站软件拉新推广平台
  • 个人可以网站备案吗国外独立站网站
  • 绿色商城网站模板百度域名购买
  • 国外做btc的网站济南搜索引擎优化网站
  • 专业网站建设哪个好怎样做网站平台
  • 网站没有备案怎么做支付网站建设方案优化
  • hao123网站模板太原网站优化公司
  • 微信营销推广的方式有哪些嘉兴百度快照优化排名
  • 济宁网站建设公司电话泰安网站seo
  • 海南省建设培训与执业资格注册中心网站网络平台宣传方式有哪些
  • 微信官网网站模板下载不了sem竞价推广公司
  • 网站建设后如何放在网上谷歌广告上海有限公司官网
  • 网站内容规划流程互联网推广好做吗
  • 网站做一下301跳转今日国内新闻
  • 音乐网站如何建设网络营销策划模板
  • 手机app与手机网站的区别优化工作流程
  • 做区位分析的地图网站seo优化神器