widget.qw 1.1.4 → 1.1.5

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/.env.development CHANGED
@@ -7,4 +7,4 @@ VITE_NEED_LOGIN_CODE=401
7
7
  # 注意:发布时 VITE_IS_DEBUG必须配置为false
8
8
  # 本地开发时 VITE_IS_DEBUG必须配置为true
9
9
  VITE_IS_DEBUG=true
10
- VITE_DEBUG_TOKEN= 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJIb3VNdSIsInJuU3RyIjoiNU9FTEgydFJReDlVQ2VFYzljZzJjRGc2a3g3VEp3SGQifQ.z3urMfzsUoQAd_DFGx1lgIdwKSHTFLFbUPjcAcFNI1A'
10
+ VITE_DEBUG_TOKEN= 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJIb3VNdSIsInJuU3RyIjoiVm1CUFdpRmpURnFoOGgzam5VSG43SEQyeU80b2FuZW8ifQ.OqAOTbI6tqVeFHKYTWHLhtGQ8KMMLONBdL1jck-p4qU'
package/build/style.css CHANGED
@@ -675,25 +675,25 @@
675
675
  margin:3px;
676
676
  }
677
677
 
678
- .cascader-pop[data-v-1f4b2244] {
678
+ .cascader-pop[data-v-0a051cd5] {
679
679
  width: 100%;
680
680
  overflow: hidden;
681
681
  }
682
- .cascader-selector[data-v-1f4b2244] {
682
+ .cascader-selector[data-v-0a051cd5] {
683
683
  padding: 10px;
684
684
  }
685
- .search-buttons[data-v-1f4b2244] {
685
+ .search-buttons[data-v-0a051cd5] {
686
686
  display: flex;
687
687
  gap: 10px;
688
688
  }
689
- .clear-btn[data-v-1f4b2244] {
689
+ .clear-btn[data-v-0a051cd5] {
690
690
  background-color: #f2f3f5;
691
691
  border: none;
692
692
  border-radius: 4px;
693
693
  padding: 4px 8px;
694
694
  font-size: 14px;
695
695
  }
696
- .confirm-btn[data-v-1f4b2244] {
696
+ .confirm-btn[data-v-0a051cd5] {
697
697
  background-color: #1989fa;
698
698
  color: white;
699
699
  border: none;
@@ -701,19 +701,19 @@
701
701
  padding: 4px 8px;
702
702
  font-size: 14px;
703
703
  }
704
- .no-results[data-v-1f4b2244] {
704
+ .no-results[data-v-0a051cd5] {
705
705
  text-align: center;
706
706
  padding: 20px;
707
707
  color: #969799;
708
708
  }
709
- .cascader-header[data-v-1f4b2244] {
709
+ .cascader-header[data-v-0a051cd5] {
710
710
  padding: 10px;
711
711
  border-bottom: 1px solid #ebedf0;
712
712
  display: flex;
713
713
  justify-content: space-between;
714
714
  align-items: center;
715
715
  }
716
- .current-path[data-v-1f4b2244] {
716
+ .current-path[data-v-0a051cd5] {
717
717
  flex: 1;
718
718
  font-size: 14px;
719
719
  margin-left: 5px;
@@ -722,25 +722,25 @@
722
722
  overflow: hidden;
723
723
  text-overflow: ellipsis;
724
724
  }
725
- .header-right[data-v-1f4b2244] {
725
+ .header-right[data-v-0a051cd5] {
726
726
  display: flex;
727
727
  gap: 8px;
728
728
  margin-left: auto;
729
729
  }
730
- .cancel-btn[data-v-1f4b2244] {
730
+ .cancel-btn[data-v-0a051cd5] {
731
731
  color: #969799;
732
732
  margin-right: 5px;
733
733
  }
734
- .scroll-container[data-v-1f4b2244] {
734
+ .scroll-container[data-v-0a051cd5] {
735
735
  height: calc(80vh - 150px);
736
736
  overflow-y: auto;
737
737
  }
738
- .cell-content[data-v-1f4b2244] {
738
+ .cell-content[data-v-0a051cd5] {
739
739
  display: flex;
740
740
  align-items: center;
741
741
  gap: 12px;
742
742
  }
743
- .circle-selector[data-v-1f4b2244] {
743
+ .circle-selector[data-v-0a051cd5] {
744
744
  width: 20px;
745
745
  height: 20px;
746
746
  border-radius: 50%;
@@ -750,29 +750,29 @@
750
750
  transition: all 0.2s;
751
751
  flex-shrink: 0;
752
752
  }
753
- .circle-selector.selected[data-v-1f4b2244] {
753
+ .circle-selector.selected[data-v-0a051cd5] {
754
754
  background-color: #1989fa;
755
755
  border-color: #1989fa;
756
756
  }
757
- .circle-selector.selected .van-icon[data-v-1f4b2244] {
757
+ .circle-selector.selected .van-icon[data-v-0a051cd5] {
758
758
  color: white;
759
759
  font-size: 14px;
760
760
  }
761
- .van-cell__right-icon[data-v-1f4b2244] {
761
+ .van-cell__right-icon[data-v-0a051cd5] {
762
762
  color: #969799;
763
763
  font-size: 16px;
764
764
  margin-left: 8px;
765
765
  }
766
- .name[data-v-1f4b2244] {
766
+ .name[data-v-0a051cd5] {
767
767
  flex: 1;
768
768
  overflow: hidden;
769
769
  text-overflow: ellipsis;
770
770
  white-space: nowrap;
771
771
  }
772
- .cancel-btn[data-v-1f4b2244] {
772
+ .cancel-btn[data-v-0a051cd5] {
773
773
  color: #969799;
774
774
  }
775
- .search-field[data-v-1f4b2244] {
775
+ .search-field[data-v-0a051cd5] {
776
776
  background: #fff;
777
777
  padding: 10px 16px;
778
778
  border-bottom: 1px solid #ebedf0;
@@ -21636,8 +21636,8 @@ const _sfc_main$4 = {
21636
21636
  }
21637
21637
  };
21638
21638
  var TreePicker = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-ebc14630"]]);
21639
- var CascaderPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.cascader-pop[data-v-1f4b2244] {\r\n width: 100%;\r\n overflow: hidden;\n}\n.cascader-selector[data-v-1f4b2244] {\r\n padding: 10px;\n}\n.search-buttons[data-v-1f4b2244] {\r\n display: flex;\r\n gap: 10px;\n}\n.clear-btn[data-v-1f4b2244] {\r\n background-color: #f2f3f5;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.confirm-btn[data-v-1f4b2244] {\r\n background-color: #1989fa;\r\n color: white;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.no-results[data-v-1f4b2244] {\r\n text-align: center;\r\n padding: 20px;\r\n color: #969799;\n}\n.cascader-header[data-v-1f4b2244] {\r\n padding: 10px;\r\n border-bottom: 1px solid #ebedf0;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\n}\n.current-path[data-v-1f4b2244] {\r\n flex: 1;\r\n font-size: 14px;\r\n margin-left: 5px;\r\n color: #323233;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\n}\n.header-right[data-v-1f4b2244] {\r\n display: flex;\r\n gap: 8px;\r\n margin-left: auto;\n}\n.cancel-btn[data-v-1f4b2244] {\r\n color: #969799;\r\n margin-right: 5px;\n}\n.scroll-container[data-v-1f4b2244] {\r\n height: calc(80vh - 150px);\r\n overflow-y: auto;\n}\n.cell-content[data-v-1f4b2244] {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\n}\n.circle-selector[data-v-1f4b2244] {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: all 0.2s;\r\n flex-shrink: 0;\n}\n.circle-selector.selected[data-v-1f4b2244] {\r\n background-color: #1989fa;\r\n border-color: #1989fa;\n}\n.circle-selector.selected .van-icon[data-v-1f4b2244] {\r\n color: white;\r\n font-size: 14px;\n}\n.van-cell__right-icon[data-v-1f4b2244] {\r\n color: #969799;\r\n font-size: 16px;\r\n margin-left: 8px;\n}\n.name[data-v-1f4b2244] {\r\n flex: 1;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\n}\n.cancel-btn[data-v-1f4b2244] {\r\n color: #969799;\n}\n.search-field[data-v-1f4b2244] {\r\n background: #fff;\r\n padding: 10px 16px;\r\n border-bottom: 1px solid #ebedf0;\r\n position: sticky;\r\n top: 0;\r\n z-index: 999;\r\n margin-bottom: 10px;\r\n flex-shrink: 0;\r\n /* \u9632\u6B62\u538B\u7F29 */\n}\r\n")();
21640
- const _withScopeId = (n) => (pushScopeId("data-v-1f4b2244"), n = n(), popScopeId(), n);
21639
+ var CascaderPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.cascader-pop[data-v-0a051cd5] {\r\n width: 100%;\r\n overflow: hidden;\n}\n.cascader-selector[data-v-0a051cd5] {\r\n padding: 10px;\n}\n.search-buttons[data-v-0a051cd5] {\r\n display: flex;\r\n gap: 10px;\n}\n.clear-btn[data-v-0a051cd5] {\r\n background-color: #f2f3f5;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.confirm-btn[data-v-0a051cd5] {\r\n background-color: #1989fa;\r\n color: white;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.no-results[data-v-0a051cd5] {\r\n text-align: center;\r\n padding: 20px;\r\n color: #969799;\n}\n.cascader-header[data-v-0a051cd5] {\r\n padding: 10px;\r\n border-bottom: 1px solid #ebedf0;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\n}\n.current-path[data-v-0a051cd5] {\r\n flex: 1;\r\n font-size: 14px;\r\n margin-left: 5px;\r\n color: #323233;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\n}\n.header-right[data-v-0a051cd5] {\r\n display: flex;\r\n gap: 8px;\r\n margin-left: auto;\n}\n.cancel-btn[data-v-0a051cd5] {\r\n color: #969799;\r\n margin-right: 5px;\n}\n.scroll-container[data-v-0a051cd5] {\r\n height: calc(80vh - 150px);\r\n overflow-y: auto;\n}\n.cell-content[data-v-0a051cd5] {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\n}\n.circle-selector[data-v-0a051cd5] {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: all 0.2s;\r\n flex-shrink: 0;\n}\n.circle-selector.selected[data-v-0a051cd5] {\r\n background-color: #1989fa;\r\n border-color: #1989fa;\n}\n.circle-selector.selected .van-icon[data-v-0a051cd5] {\r\n color: white;\r\n font-size: 14px;\n}\n.van-cell__right-icon[data-v-0a051cd5] {\r\n color: #969799;\r\n font-size: 16px;\r\n margin-left: 8px;\n}\n.name[data-v-0a051cd5] {\r\n flex: 1;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\n}\n.cancel-btn[data-v-0a051cd5] {\r\n color: #969799;\n}\n.search-field[data-v-0a051cd5] {\r\n background: #fff;\r\n padding: 10px 16px;\r\n border-bottom: 1px solid #ebedf0;\r\n position: sticky;\r\n top: 0;\r\n z-index: 999;\r\n margin-bottom: 10px;\r\n flex-shrink: 0;\r\n /* \u9632\u6B62\u538B\u7F29 */\n}\r\n")();
21640
+ const _withScopeId = (n) => (pushScopeId("data-v-0a051cd5"), n = n(), popScopeId(), n);
21641
21641
  const _hoisted_1$3 = {
21642
21642
  class: "cascader-selector"
21643
21643
  };
@@ -21781,22 +21781,31 @@ const _sfc_main$3 = {
21781
21781
  const ids2nodes2 = () => __async(this, null, function* () {
21782
21782
  if (!data2.selectedNodeIds || data2.selectedNodeIds.length < 1)
21783
21783
  return [];
21784
- let promises = data2.selectedNodeIds.map((nodeId) => __async(this, null, function* () {
21784
+ let ids = data2.selectedNodeIds;
21785
+ let res = [];
21786
+ let receivedNodes = [];
21787
+ for (var i = 0; i < ids.length; i++) {
21788
+ let nodeId = ids[i];
21789
+ let selectNode = null;
21790
+ selectNode = util.findNode(nodeId, receivedNodes);
21791
+ if (selectNode) {
21792
+ res = [...res, selectNode];
21793
+ continue;
21794
+ }
21785
21795
  let params = {};
21786
21796
  params.id = nodeId;
21787
21797
  params.isReturnParent = true;
21788
- params.hasChildren = false;
21798
+ params.hasChildren = true;
21789
21799
  params.hasPaths = true;
21790
21800
  params.hasUsers = true;
21791
- let selectNode = null;
21792
21801
  yield props2.idQueryNode(params, (node) => {
21793
- data2.parentNode = node;
21794
- selectNode = util.findNode(nodeId, data2.parentNode.children);
21802
+ receivedNodes = [...receivedNodes, ...node.children || []];
21803
+ selectNode = util.findNode(nodeId, receivedNodes);
21795
21804
  });
21796
- return selectNode;
21797
- }));
21798
- let selectNodes = yield Promise.all(promises);
21799
- return selectNodes;
21805
+ if (selectNode)
21806
+ res = [...res, selectNode];
21807
+ }
21808
+ return res;
21800
21809
  });
21801
21810
  const onSubmit2 = () => __async(this, null, function* () {
21802
21811
  if (!data2.selectedNodeIds || data2.selectedNodeIds.length < 1) {
@@ -21965,7 +21974,7 @@ const _sfc_main$3 = {
21965
21974
  };
21966
21975
  }
21967
21976
  };
21968
- var CascaderPop = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-1f4b2244"]]);
21977
+ var CascaderPop = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-0a051cd5"]]);
21969
21978
  const _hoisted_1$2 = {
21970
21979
  style: {
21971
21980
  "display": "flex",
@@ -22082,9 +22091,9 @@ const _sfc_main$2 = {
22082
22091
  }
22083
22092
  let params = {};
22084
22093
  params.id = nodeId;
22085
- params.isReturnParent = false;
22086
- params.hasChildren = false;
22087
- params.hasPaths = false;
22094
+ params.isReturnParent = true;
22095
+ params.hasChildren = true;
22096
+ params.hasPaths = true;
22088
22097
  params.hasUsers = true;
22089
22098
  yield props2.idQueryNode(params, (node) => {
22090
22099
  receivedNodes = [...receivedNodes, ...node.children || []];
@@ -22105,6 +22114,10 @@ const _sfc_main$2 = {
22105
22114
  data2.selectedNodeIds = [];
22106
22115
  }
22107
22116
  data2.selectedNodes = yield ids2nodes2();
22117
+ if (!props2.multiple)
22118
+ emit2("select", data2.selectedNodes[0]);
22119
+ else
22120
+ emit2("select", data2.selectedNodes);
22108
22121
  }), {
22109
22122
  immediate: true
22110
22123
  });
@@ -21639,8 +21639,8 @@ var __async = (__this, __arguments, generator) => {
21639
21639
  }
21640
21640
  };
21641
21641
  var TreePicker = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-ebc14630"]]);
21642
- var CascaderPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.cascader-pop[data-v-1f4b2244] {\r\n width: 100%;\r\n overflow: hidden;\n}\n.cascader-selector[data-v-1f4b2244] {\r\n padding: 10px;\n}\n.search-buttons[data-v-1f4b2244] {\r\n display: flex;\r\n gap: 10px;\n}\n.clear-btn[data-v-1f4b2244] {\r\n background-color: #f2f3f5;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.confirm-btn[data-v-1f4b2244] {\r\n background-color: #1989fa;\r\n color: white;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.no-results[data-v-1f4b2244] {\r\n text-align: center;\r\n padding: 20px;\r\n color: #969799;\n}\n.cascader-header[data-v-1f4b2244] {\r\n padding: 10px;\r\n border-bottom: 1px solid #ebedf0;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\n}\n.current-path[data-v-1f4b2244] {\r\n flex: 1;\r\n font-size: 14px;\r\n margin-left: 5px;\r\n color: #323233;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\n}\n.header-right[data-v-1f4b2244] {\r\n display: flex;\r\n gap: 8px;\r\n margin-left: auto;\n}\n.cancel-btn[data-v-1f4b2244] {\r\n color: #969799;\r\n margin-right: 5px;\n}\n.scroll-container[data-v-1f4b2244] {\r\n height: calc(80vh - 150px);\r\n overflow-y: auto;\n}\n.cell-content[data-v-1f4b2244] {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\n}\n.circle-selector[data-v-1f4b2244] {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: all 0.2s;\r\n flex-shrink: 0;\n}\n.circle-selector.selected[data-v-1f4b2244] {\r\n background-color: #1989fa;\r\n border-color: #1989fa;\n}\n.circle-selector.selected .van-icon[data-v-1f4b2244] {\r\n color: white;\r\n font-size: 14px;\n}\n.van-cell__right-icon[data-v-1f4b2244] {\r\n color: #969799;\r\n font-size: 16px;\r\n margin-left: 8px;\n}\n.name[data-v-1f4b2244] {\r\n flex: 1;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\n}\n.cancel-btn[data-v-1f4b2244] {\r\n color: #969799;\n}\n.search-field[data-v-1f4b2244] {\r\n background: #fff;\r\n padding: 10px 16px;\r\n border-bottom: 1px solid #ebedf0;\r\n position: sticky;\r\n top: 0;\r\n z-index: 999;\r\n margin-bottom: 10px;\r\n flex-shrink: 0;\r\n /* \u9632\u6B62\u538B\u7F29 */\n}\r\n")();
21643
- const _withScopeId = (n) => (vue.pushScopeId("data-v-1f4b2244"), n = n(), vue.popScopeId(), n);
21642
+ var CascaderPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.cascader-pop[data-v-0a051cd5] {\r\n width: 100%;\r\n overflow: hidden;\n}\n.cascader-selector[data-v-0a051cd5] {\r\n padding: 10px;\n}\n.search-buttons[data-v-0a051cd5] {\r\n display: flex;\r\n gap: 10px;\n}\n.clear-btn[data-v-0a051cd5] {\r\n background-color: #f2f3f5;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.confirm-btn[data-v-0a051cd5] {\r\n background-color: #1989fa;\r\n color: white;\r\n border: none;\r\n border-radius: 4px;\r\n padding: 4px 8px;\r\n font-size: 14px;\n}\n.no-results[data-v-0a051cd5] {\r\n text-align: center;\r\n padding: 20px;\r\n color: #969799;\n}\n.cascader-header[data-v-0a051cd5] {\r\n padding: 10px;\r\n border-bottom: 1px solid #ebedf0;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\n}\n.current-path[data-v-0a051cd5] {\r\n flex: 1;\r\n font-size: 14px;\r\n margin-left: 5px;\r\n color: #323233;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\n}\n.header-right[data-v-0a051cd5] {\r\n display: flex;\r\n gap: 8px;\r\n margin-left: auto;\n}\n.cancel-btn[data-v-0a051cd5] {\r\n color: #969799;\r\n margin-right: 5px;\n}\n.scroll-container[data-v-0a051cd5] {\r\n height: calc(80vh - 150px);\r\n overflow-y: auto;\n}\n.cell-content[data-v-0a051cd5] {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\n}\n.circle-selector[data-v-0a051cd5] {\r\n width: 20px;\r\n height: 20px;\r\n border-radius: 50%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: all 0.2s;\r\n flex-shrink: 0;\n}\n.circle-selector.selected[data-v-0a051cd5] {\r\n background-color: #1989fa;\r\n border-color: #1989fa;\n}\n.circle-selector.selected .van-icon[data-v-0a051cd5] {\r\n color: white;\r\n font-size: 14px;\n}\n.van-cell__right-icon[data-v-0a051cd5] {\r\n color: #969799;\r\n font-size: 16px;\r\n margin-left: 8px;\n}\n.name[data-v-0a051cd5] {\r\n flex: 1;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\n}\n.cancel-btn[data-v-0a051cd5] {\r\n color: #969799;\n}\n.search-field[data-v-0a051cd5] {\r\n background: #fff;\r\n padding: 10px 16px;\r\n border-bottom: 1px solid #ebedf0;\r\n position: sticky;\r\n top: 0;\r\n z-index: 999;\r\n margin-bottom: 10px;\r\n flex-shrink: 0;\r\n /* \u9632\u6B62\u538B\u7F29 */\n}\r\n")();
21643
+ const _withScopeId = (n) => (vue.pushScopeId("data-v-0a051cd5"), n = n(), vue.popScopeId(), n);
21644
21644
  const _hoisted_1$3 = {
21645
21645
  class: "cascader-selector"
21646
21646
  };
@@ -21784,22 +21784,31 @@ var __async = (__this, __arguments, generator) => {
21784
21784
  const ids2nodes2 = () => __async(this, null, function* () {
21785
21785
  if (!data2.selectedNodeIds || data2.selectedNodeIds.length < 1)
21786
21786
  return [];
21787
- let promises = data2.selectedNodeIds.map((nodeId) => __async(this, null, function* () {
21787
+ let ids = data2.selectedNodeIds;
21788
+ let res = [];
21789
+ let receivedNodes = [];
21790
+ for (var i = 0; i < ids.length; i++) {
21791
+ let nodeId = ids[i];
21792
+ let selectNode = null;
21793
+ selectNode = util.findNode(nodeId, receivedNodes);
21794
+ if (selectNode) {
21795
+ res = [...res, selectNode];
21796
+ continue;
21797
+ }
21788
21798
  let params = {};
21789
21799
  params.id = nodeId;
21790
21800
  params.isReturnParent = true;
21791
- params.hasChildren = false;
21801
+ params.hasChildren = true;
21792
21802
  params.hasPaths = true;
21793
21803
  params.hasUsers = true;
21794
- let selectNode = null;
21795
21804
  yield props2.idQueryNode(params, (node) => {
21796
- data2.parentNode = node;
21797
- selectNode = util.findNode(nodeId, data2.parentNode.children);
21805
+ receivedNodes = [...receivedNodes, ...node.children || []];
21806
+ selectNode = util.findNode(nodeId, receivedNodes);
21798
21807
  });
21799
- return selectNode;
21800
- }));
21801
- let selectNodes = yield Promise.all(promises);
21802
- return selectNodes;
21808
+ if (selectNode)
21809
+ res = [...res, selectNode];
21810
+ }
21811
+ return res;
21803
21812
  });
21804
21813
  const onSubmit2 = () => __async(this, null, function* () {
21805
21814
  if (!data2.selectedNodeIds || data2.selectedNodeIds.length < 1) {
@@ -21968,7 +21977,7 @@ var __async = (__this, __arguments, generator) => {
21968
21977
  };
21969
21978
  }
21970
21979
  };
21971
- var CascaderPop = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-1f4b2244"]]);
21980
+ var CascaderPop = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-0a051cd5"]]);
21972
21981
  const _hoisted_1$2 = {
21973
21982
  style: {
21974
21983
  "display": "flex",
@@ -22085,9 +22094,9 @@ var __async = (__this, __arguments, generator) => {
22085
22094
  }
22086
22095
  let params = {};
22087
22096
  params.id = nodeId;
22088
- params.isReturnParent = false;
22089
- params.hasChildren = false;
22090
- params.hasPaths = false;
22097
+ params.isReturnParent = true;
22098
+ params.hasChildren = true;
22099
+ params.hasPaths = true;
22091
22100
  params.hasUsers = true;
22092
22101
  yield props2.idQueryNode(params, (node) => {
22093
22102
  receivedNodes = [...receivedNodes, ...node.children || []];
@@ -22108,6 +22117,10 @@ var __async = (__this, __arguments, generator) => {
22108
22117
  data2.selectedNodeIds = [];
22109
22118
  }
22110
22119
  data2.selectedNodes = yield ids2nodes2();
22120
+ if (!props2.multiple)
22121
+ emit2("select", data2.selectedNodes[0]);
22122
+ else
22123
+ emit2("select", data2.selectedNodes);
22111
22124
  }), {
22112
22125
  immediate: true
22113
22126
  });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "widget.qw",
3
3
  "private": false,
4
- "version": "1.1.4",
4
+ "version": "1.1.5",
5
5
  "description": "marqstree Vue3组件库",
6
6
  "main": "build/widget.qw.es.js",
7
7
  "keywords": [
@@ -74,6 +74,8 @@ const props = defineProps({
74
74
  const data = reactive({
75
75
  isShowPop: false,
76
76
  selectedNodes: [],
77
+ //1)单选时,记录选中的临时节点id
78
+ //2)多选时,记录选中的临时节点id列表
77
79
  selectedNodeIds: null
78
80
  })
79
81
 
@@ -145,9 +147,9 @@ const ids2nodes = async () => {
145
147
 
146
148
  let params = {}
147
149
  params.id = nodeId
148
- params.isReturnParent = false
149
- params.hasChildren = false
150
- params.hasPaths = false
150
+ params.isReturnParent = true
151
+ params.hasChildren = true
152
+ params.hasPaths = true
151
153
  params.hasUsers = true
152
154
 
153
155
  await props.idQueryNode(params, (node) => {
@@ -173,7 +175,13 @@ watch(() => JSON.stringify(modelValue.value), async (n, o) => {
173
175
  data.selectedNodeIds = []
174
176
  }
175
177
 
178
+ //记录选中的节点对象列表
179
+ //单选时,数组只含一个元素
176
180
  data.selectedNodes = await ids2nodes()
181
+ if(!props.multiple)
182
+ emit('select', data.selectedNodes[0])
183
+ else
184
+ emit('select', data.selectedNodes)
177
185
  }, {
178
186
  immediate: true
179
187
  })
@@ -185,27 +185,45 @@ const ids2nodes = async () => {
185
185
  if (!data.selectedNodeIds || data.selectedNodeIds.length < 1)
186
186
  return []
187
187
 
188
- let promises = data.selectedNodeIds.map(async (nodeId) => {
188
+ let ids = data.selectedNodeIds
189
+
190
+ let res = []
191
+
192
+ //记录网络请求接收到的所有用户列表
193
+ let receivedNodes = []
194
+ for (var i = 0; i < ids.length; i++) {
195
+ let nodeId = ids[i]
196
+
197
+ let selectNode = null
198
+
199
+ //现在历史用户列表中查找
200
+ //找不到再发网络请求
201
+ selectNode = util.findNode(nodeId, receivedNodes)
202
+ if (selectNode){
203
+ res = [...res, selectNode]
204
+ continue
205
+ }
206
+
189
207
  let params = {}
190
208
  params.id = nodeId
191
209
  params.isReturnParent = true
192
- params.hasChildren = false
210
+ params.hasChildren = true
193
211
  params.hasPaths = true
194
212
  params.hasUsers = true
195
213
 
196
- let selectNode = null
197
214
  await props.idQueryNode(params, (node) => {
198
- data.parentNode = node
199
- selectNode = util.findNode(nodeId, data.parentNode.children)
215
+ receivedNodes = [...receivedNodes, ...(node.children || [])]
216
+ selectNode = util.findNode(nodeId, receivedNodes)
200
217
  })
201
- return selectNode
202
- })
203
-
204
- let selectNodes = await Promise.all(promises)
218
+
219
+ if (selectNode)
220
+ res = [...res, selectNode]
221
+ }
205
222
 
206
- return selectNodes
223
+ return res
207
224
  }
208
225
 
226
+
209
227
  // 确认按钮
210
228
  const onSubmit = async () => {
211
229
  if (!data.selectedNodeIds || data.selectedNodeIds.length < 1) {
Binary file