@yoooloo42/bean 1.0.36 → 1.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -5429,12 +5429,181 @@ var sort = {
5429
5429
  uniqueObjectArrayByFields
5430
5430
  };
5431
5431
 
5432
+ // Element - Tree 树形控件
5433
+ // label, children
5434
+ // 扁平化的源数据转为树形结构数据
5435
+
5436
+
5437
+ function treeRoot (para) {
5438
+ let data = JSON.parse(JSON.stringify(para.data)), // 数据源
5439
+ evalCode = para.evalCode, // 代码字段
5440
+ evalText = para.evalText, // 文本字段
5441
+ evalFather = para.evalFather, // 父节点字段
5442
+ evalNode = para.evalNode, // 节点类型
5443
+ evalAppendix = para.evalAppendix; // 数据附加
5444
+
5445
+ let tree = [], // 二叉树
5446
+ data0 = JSON.parse(JSON.stringify(data));
5447
+
5448
+ // 根节点
5449
+ for (let i = 0; i < data.length; i++) {
5450
+ if (!data[i].father) { // 根节点
5451
+ tree.push({
5452
+ treeItemCode: data[i][evalCode],
5453
+ treeItemText: data[i][evalText],
5454
+ treeItemFather: data[i][evalFather],
5455
+ treeItemNode: data[i][evalNode],
5456
+ treeItemAppendix: data[i][evalAppendix],
5457
+ label: data[i][evalText]
5458
+ });
5459
+ data.splice(i, 1);
5460
+ i--;
5461
+ } else {
5462
+ let a = data0.find(j => {
5463
+ return j[evalCode] === data[i][evalFather]
5464
+ });
5465
+ if (!a) { // 节点数据异常:父节点未找到,置为根节点
5466
+ tree.push({
5467
+ treeItemCode: data[i][evalCode],
5468
+ treeItemText: data[i][evalText],
5469
+ treeItemFather: data[i][evalFather],
5470
+ treeItemNode: data[i][evalNode],
5471
+ treeItemAppendix: data[i][evalAppendix],
5472
+ label: data[i][evalText]
5473
+ });
5474
+ data.splice(i, 1);
5475
+ i--;
5476
+ }
5477
+ }
5478
+ }
5479
+
5480
+ // 树节点
5481
+ let iWhile = 0;
5482
+ while (data.length > 0) {
5483
+ if (iWhile > data.length) {
5484
+ break
5485
+ } // 防止意外死循环
5486
+
5487
+ // 正序筛查
5488
+ data = sort.sortObjectArrayMultiLevel(data, {[evalCode]: 1});
5489
+ for (let i = 0; i < data.length; i++) {
5490
+ let node = treeNode({
5491
+ dataItem: data[i],
5492
+ evalCode,
5493
+ evalText,
5494
+ evalFather,
5495
+ evalNode,
5496
+ evalAppendix,
5497
+ tree
5498
+ });
5499
+ tree = node.tree;
5500
+ if (node.updated) {
5501
+ data.splice(i, 1);
5502
+ i--;
5503
+ }
5504
+ }
5505
+
5506
+ // 倒序筛查
5507
+ data = sort.sortObjectArrayMultiLevel(data, {[evalCode]: -1});
5508
+ for (let i = 0; i < data.length; i++) {
5509
+ let node = treeNode({
5510
+ dataItem: data[i],
5511
+ evalCode,
5512
+ evalText,
5513
+ evalFather,
5514
+ evalNode,
5515
+ evalAppendix,
5516
+ tree
5517
+ });
5518
+ tree = node.tree;
5519
+ if (node.updated) {
5520
+ data.splice(i, 1);
5521
+ i--;
5522
+ }
5523
+ }
5524
+ iWhile++;
5525
+ }
5526
+
5527
+ // console.log(tree)
5528
+ return tree
5529
+ }
5530
+
5531
+ function treeNode (para) {
5532
+ let dataItem = para.dataItem, // 数据节点
5533
+ evalCode = para.evalCode, // 代码字段
5534
+ evalText = para.evalText, // 文本字段
5535
+ evalFather = para.evalFather, // 父节点字段
5536
+ evalNode = para.evalNode, // 节点类型
5537
+ evalAppendix = para.evalAppendix, // 数据附加
5538
+ tree = para.tree; // 二叉树
5539
+
5540
+ for (let i = 0; i < tree.length; i++) {
5541
+ if (dataItem[evalFather] && dataItem[evalFather] === tree[i].treeItemCode) {
5542
+ if (!(tree[i].children && tree[i].children.length > 0)) {
5543
+ tree[i].children = [];
5544
+ }
5545
+ tree[i].children.push({
5546
+ treeItemCode: dataItem[evalCode],
5547
+ treeItemText: dataItem[evalText],
5548
+ treeItemFather: dataItem[evalFather],
5549
+ treeItemNode: dataItem[evalNode],
5550
+ treeItemAppendix: dataItem[evalAppendix],
5551
+ label: dataItem[evalText]
5552
+ });
5553
+
5554
+ return {
5555
+ tree,
5556
+ updated: true
5557
+ }
5558
+ } else if (tree[i].treeItemFather && tree[i].treeItemFather === dataItem[evalCode]) {
5559
+ let a = JSON.parse(JSON.stringify(tree[i]));
5560
+ tree[i] = {};
5561
+ tree[i].treeItemCode = dataItem[evalCode];
5562
+ tree[i].treeItemText = dataItem[evalText];
5563
+ tree[i].treeItemFather = dataItem[evalFather];
5564
+ tree[i].treeItemNode = dataItem[evalNode];
5565
+ tree[i].treeItemAppendix = dataItem[evalAppendix];
5566
+ tree[i].label = dataItem[evalText];
5567
+ tree[i].children = [];
5568
+ tree[i].children.push(a);
5569
+
5570
+ return {
5571
+ tree,
5572
+ updated: true
5573
+ }
5574
+ } else if (tree[i].children && tree[i].children.length > 0) {
5575
+ let node = treeNode({
5576
+ dataItem,
5577
+ evalCode,
5578
+ evalText,
5579
+ evalFather,
5580
+ evalNode,
5581
+ evalAppendix,
5582
+ tree: tree[i].children
5583
+ });
5584
+
5585
+ if (node.updated) return {
5586
+ tree,
5587
+ updated: true
5588
+ }
5589
+ }
5590
+ }
5591
+ return {
5592
+ tree,
5593
+ updated: false
5594
+ }
5595
+ }
5596
+ var tree = {
5597
+ treeRoot
5598
+ };
5599
+
5432
5600
  var unclassified = {
5433
5601
  dateFormat: dateFormat$1,
5434
5602
  deepClone: deepClone$1,
5435
5603
  random: random$1,
5436
5604
  regexp,
5437
- sort
5605
+ sort,
5606
+ tree
5438
5607
  };
5439
5608
 
5440
5609
  var index = {