当前位置: 首页 > 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.yayakq.cn/news/914630/

相关文章:

  • 江苏建设类高级工程师在那个网站公示广州网站建设联享科技
  • 网站首页图片 代码工信网备案网站
  • 寻找郑州网站优化公司wordpress瀑布流网店
  • 怎么看网站建设wordpress在线改主题
  • 汉中360网站建设宜阳网站建设
  • 西安专业做网站的图书网站开发
  • 滕州网站建设滕州网站的建设有什么好处
  • 站长seo查询工具河南郑州做网站汉狮
  • 自己做网站处理图片用什么软件下载养生网站建设免费
  • 帮企业建设网站保密合同天津网站建设市场
  • 网站建设服务费计入会计科目wordpress完美迁站教程
  • php 视频网站开发php企业网站通讯录管理系统
  • cdn网站网络加速器建设银行怎么从网站上改手机号码
  • 创建一个网站网站建设首选玖艺建站信得过
  • 手把手教你做网站 怎么注册域名安装wordpress程序
  • 天门市网站建设seo抖音代运营工作内容
  • 吴忠住房和城乡建设网站网站开发技术框架
  • 山东高端网站建设wangwordpress删除
  • 装企网站建设开发者联盟官网
  • 用织梦做网站能练技术吗wordpress网页视频播放器
  • 青海省建设厅网站公示公告企业网站.net
  • 教学网站设计与开发长春市长春网站建设网
  • 绍兴做网站价格重庆装修房子可以提取公积金吗
  • 做网站 用 显示器中国交通建设集团属于什么企业
  • 手工艺品外贸公司网站建设方案外贸建站哪个最便宜
  • 米课做网站文创产品设计分析
  • 沈阳建设厅网站首页网站开发 制作阶段的说课稿
  • 个人网站建设 毕业设计衡水网站建设培训学校
  • 沈阳网站的建设建设信用卡网站是什么
  • 怎么做网站的项目预算深圳航空公司订票电话