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

如何做百度的网站建站平台哪个好

如何做百度的网站,建站平台哪个好,做网站图标,如何做网站迁移效果 原理分析 从后端获取数据后,判断当前节点是否勾选,从而判断是否勾选子节点勾选当前节点时,子节点均勾选全勾选与半勾选与不勾选的样式处理全勾选和全取消勾选的逻辑筛选出半勾选的节点定义变量 import {computed, nextTick, reactive, ref} from vue; import {tree} f…

效果

在这里插入图片描述

原理分析

  1. 从后端获取数据后,判断当前节点是否勾选,从而判断是否勾选子节点
  2. 勾选当前节点时,子节点均勾选
  3. 全勾选半勾选不勾选的样式处理
  4. 全勾选全取消勾选的逻辑
  5. 筛选出半勾选的节点

定义变量

import {computed, nextTick, reactive, ref} from 'vue';
import {tree} from "./tree.js";// 默认节点
const tableData = reactive([{id: '节点1', hasChildren: true}, {id: '节点2', hasChildren: true},{id: '节点3', hasChildren: true}, {id: '节点4', hasChildren: true},
]);
const treeTableRef = ref();         // 表格实例
const selections = ref([]);			// 勾选节点
const childrenNodes = reactive({});	// 全部子节点
const isSelectedAll = ref(false);   // 是否勾选全部

定义是否勾选全部子节点函数

/*** 勾选子节点* @param id* @param selected*/
const selectedChildren = (id, selected) => {(childrenNodes[id] || []).forEach(row => {treeTableRef.value.toggleRowSelection(row, selected);if (id !== row.id) selectedChildren(row.id, selected);});
}

单个节点勾选函数

/*** 单个节点勾选* @param selection    选中节点集合* @param row        当前节点*/
const select = (selection, row) => {nextTick(() => {// 是否勾选当前节点下全部子节点selectedChildren(row.id, selection.some(d => d.id === row.id));});
}

从后端获取节点数据

/*** 加载子节点* @param row        当前节点* @param treeNode    节点状态* @param resolve    渲染子集函数*/
const load = (row, treeNode, resolve) => {setTimeout(() => {childrenNodes[row.id] = (tree[row.id] || []).map(d => ({...d, parentId: row.id}));resolve(childrenNodes[row.id]);// 判断当前节点是否选中,选中则自动勾选子节点nextTick(() => select(selections.value, row));}, 100);
}

全勾选、全取消勾选函数和勾选监听

/*** 全选节点勾选* @param selection    选中节点集合*/
const selectAll = (selection) => {isSelectedAll.value = !isSelectedAll.value;treeTableRef.value.data.forEach(row => {// 默认数据的勾选treeTableRef.value.toggleRowSelection(row, isSelectedAll.value);// 是否勾选全部节点下全部子节点selectedChildren(row.id, isSelectedAll.value);});
}/*** 监听节点选择事件* @param selection    选中节点集合*/
const selectionChange = (selection) => {selections.value = selection;// 勾选的节点数量为0时,设置勾选全部的状态为falsenextTick(() => ((selection.length === 0) && (isSelectedAll.value = false)));
}

表头Checkbox选中样式

/*** 表格头选中状态* @type {ComputedRef<string>}    样式选择器名称*/
const headerRowClassName = computed(() => {let count = tableData.length;for (const key in childrenNodes) {count += (childrenNodes[key] || []).length;}return (count === selections.value.length || selections.value.length === 0) ? '' : 'half-checked';
})

定义当前节点样式选择器

/*** 定义表格行样式选择器* @param row            当前节点* @param rowIndex        当前节点索引* @returns {string}    样式选择器名称*/
const rowClassName = ({row, rowIndex}) => {if (selections.value.length === 0) return '';const selectedNodeFlags = []; // 存储节点的状态/*** 筛选子节点勾选状态* @param item    当前节点*/const filterSelectedChildrenNodeFlags = (item) => {(childrenNodes[item.id] || []).forEach(node => {// 避免死循环if (item.id 
http://www.tj-hxxt.cn/news/113591.html

相关文章:

  • 收集链接 做网站想做网站找什么公司
  • 怎么搜做传奇私服网站总出来怎么提高百度搜索排名
  • net网站开发手机网站网页seo优化
  • 深圳专业网站开发公司站长查询域名
  • 做网站数据库设计近期国内新闻
  • 网站建设程序代码seo培训多少钱
  • 部标平台软件网站开发最近七天的新闻大事
  • 安徽六安什么时候解封seo推广专员工作好做吗
  • 温州市手机网站制作多少钱北京网站优化专家
  • 和平县做网站网站广告投放收费标准
  • html做简单网站实例新闻源软文推广平台
  • 2022永久免费客服系统乐陵seo外包
  • 拍写真昆明seo工资
  • 乌鲁木齐做网站推广优化百度seo技术搜索引擎
  • 互联网外包平台seo外包服务专家
  • 做网做网站建设百度店面定位怎么申请
  • 制作精美网站建设独立广州seo优化公司
  • 怎么做抽奖网站大连今日新闻头条
  • 视频直播网站建设企业门户网站的设计与实现
  • 秦皇岛哪里能做网站广告网址
  • 太原市网站建设淘宝seo搜索优化
  • 中央广播电视总台国际在线免费的seo优化
  • 百度云建站网站建设百度站长电脑版
  • 武汉科技职业学院官网入口seo服务深圳
  • 如何让做的网站自动适应浏览器网站建设网站定制
  • 息壤网站模板怎么给自己的公司做网站
  • 中山企业手机网站建设今日实时热点新闻事件
  • 自己做的美食分享到网站百度总部电话
  • 初学者做网站考研培训班哪个机构比较好
  • 大岭山建设网站电脑培训班价目表