| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- /** 未选 */
- export const unCheckedStatus = 0
- /** 半选 */
- export const halfCheckedStatus = 1
- /** 选中 */
- export const isCheckedStatus = 2
- /**
- * 深拷贝内容
- * @param originData 拷贝对象
- * @author crlang(https://crlang.com)
- */
- export function deepClone(originData) {
- const type = Object.prototype.toString.call(originData)
- let data
- if (type === '[object Array]') {
- data = []
- for (let i = 0; i < originData.length; i++) {
- data.push(deepClone(originData[i]))
- }
- } else if (type === '[object Object]') {
- data = {}
- for (const prop in originData) {
- // eslint-disable-next-line no-prototype-builtins
- if (originData.hasOwnProperty(prop)) { // 非继承属性
- data[prop] = deepClone(originData[prop])
- }
- }
- } else {
- data = originData
- }
- return data
- }
- /**
- * 获取所有指定的节点
- * @param type
- * @param value
- * @author crlang(https://crlang.com)
- */
- export function getAllNodes(list, type, value, packDisabledkey = true) {
- if (!list || list.length === 0) {
- return []
- }
- const res = []
- for (let i = 0; i < list.length; i++) {
- const item = list[i]
- if (item[type] === value) {
- if ((packDisabledkey && item.disabled) || !item.disabled) {
- res.push(item)
- }
- }
- }
- return res
- }
- /**
- * 获取所有指定的key值
- * @param type
- * @param value
- * @author crlang(https://crlang.com)
- */
- export function getAllNodeKeys(list, type, value, packDisabledkey = true) {
- if (!list || list.length === 0) {
- return null
- }
- const res = []
- for (let i = 0; i < list.length; i++) {
- const item = list[i]
- if (item[type] === value) {
- if ((packDisabledkey && item.disabled) || !item.disabled) {
- res.push(item.key)
- }
- }
- }
- return res.length ? res : null
- }
- /**
- * 错误输出
- *
- * @param msg
- */
- export function logError(msg, ...args) {
- console.error(`DaTree: ${msg}`, ...args)
- }
- const toString = Object.prototype.toString
- export function is(val, type) {
- return toString.call(val) === `[object ${type}]`
- }
- /**
- * 是否对象(Object)
- * @param val
- */
- export function isObject(val) {
- return val !== null && is(val, 'Object')
- }
- /**
- * 是否数字(Number)
- * @param val
- */
- export function isNumber(val) {
- return is(val, 'Number')
- }
- /**
- * 是否字符串(String)
- * @param val
- */
- export function isString(val) {
- return is(val, 'String')
- }
- /**
- * 是否函数方法(Function)
- * @param val
- */
- export function isFunction(val) {
- return typeof val === 'function'
- }
- /**
- * 是否布尔(Boolean)
- * @param val
- */
- export function isBoolean(val) {
- return is(val, 'Boolean')
- }
- /**
- * 是否数组(Array)
- * @param val
- */
- export function isArray(val) {
- return val && Array.isArray(val)
- }
|