widget.qw 1.1.0 → 1.1.1
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/build/style.css +19 -19
- package/build/widget.qw.es.js +32 -19
- package/build/widget.qw.umd.js +32 -19
- package/package.json +1 -1
- package/src/components/CascaderPicker.vue +22 -19
- package/src/components/CascaderPop.vue +20 -132
- package/src/views/userpicker/index.vue +4 -3
package/build/style.css
CHANGED
|
@@ -675,25 +675,25 @@
|
|
|
675
675
|
margin:3px;
|
|
676
676
|
}
|
|
677
677
|
|
|
678
|
-
.cascader-pop[data-v-
|
|
678
|
+
.cascader-pop[data-v-3ec31519] {
|
|
679
679
|
width: 100%;
|
|
680
680
|
overflow: hidden;
|
|
681
681
|
}
|
|
682
|
-
.cascader-selector[data-v-
|
|
682
|
+
.cascader-selector[data-v-3ec31519] {
|
|
683
683
|
padding: 10px;
|
|
684
684
|
}
|
|
685
|
-
.search-buttons[data-v-
|
|
685
|
+
.search-buttons[data-v-3ec31519] {
|
|
686
686
|
display: flex;
|
|
687
687
|
gap: 10px;
|
|
688
688
|
}
|
|
689
|
-
.clear-btn[data-v-
|
|
689
|
+
.clear-btn[data-v-3ec31519] {
|
|
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-
|
|
696
|
+
.confirm-btn[data-v-3ec31519] {
|
|
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-
|
|
704
|
+
.no-results[data-v-3ec31519] {
|
|
705
705
|
text-align: center;
|
|
706
706
|
padding: 20px;
|
|
707
707
|
color: #969799;
|
|
708
708
|
}
|
|
709
|
-
.cascader-header[data-v-
|
|
709
|
+
.cascader-header[data-v-3ec31519] {
|
|
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-
|
|
716
|
+
.current-path[data-v-3ec31519] {
|
|
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-
|
|
725
|
+
.header-right[data-v-3ec31519] {
|
|
726
726
|
display: flex;
|
|
727
727
|
gap: 8px;
|
|
728
728
|
margin-left: auto;
|
|
729
729
|
}
|
|
730
|
-
.cancel-btn[data-v-
|
|
730
|
+
.cancel-btn[data-v-3ec31519] {
|
|
731
731
|
color: #969799;
|
|
732
732
|
margin-right: 5px;
|
|
733
733
|
}
|
|
734
|
-
.scroll-container[data-v-
|
|
734
|
+
.scroll-container[data-v-3ec31519] {
|
|
735
735
|
height: calc(80vh - 150px);
|
|
736
736
|
overflow-y: auto;
|
|
737
737
|
}
|
|
738
|
-
.cell-content[data-v-
|
|
738
|
+
.cell-content[data-v-3ec31519] {
|
|
739
739
|
display: flex;
|
|
740
740
|
align-items: center;
|
|
741
741
|
gap: 12px;
|
|
742
742
|
}
|
|
743
|
-
.circle-selector[data-v-
|
|
743
|
+
.circle-selector[data-v-3ec31519] {
|
|
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-
|
|
753
|
+
.circle-selector.selected[data-v-3ec31519] {
|
|
754
754
|
background-color: #1989fa;
|
|
755
755
|
border-color: #1989fa;
|
|
756
756
|
}
|
|
757
|
-
.circle-selector.selected .van-icon[data-v-
|
|
757
|
+
.circle-selector.selected .van-icon[data-v-3ec31519] {
|
|
758
758
|
color: white;
|
|
759
759
|
font-size: 14px;
|
|
760
760
|
}
|
|
761
|
-
.van-cell__right-icon[data-v-
|
|
761
|
+
.van-cell__right-icon[data-v-3ec31519] {
|
|
762
762
|
color: #969799;
|
|
763
763
|
font-size: 16px;
|
|
764
764
|
margin-left: 8px;
|
|
765
765
|
}
|
|
766
|
-
.name[data-v-
|
|
766
|
+
.name[data-v-3ec31519] {
|
|
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-
|
|
772
|
+
.cancel-btn[data-v-3ec31519] {
|
|
773
773
|
color: #969799;
|
|
774
774
|
}
|
|
775
|
-
.search-field[data-v-
|
|
775
|
+
.search-field[data-v-3ec31519] {
|
|
776
776
|
background: #fff;
|
|
777
777
|
padding: 10px 16px;
|
|
778
778
|
border-bottom: 1px solid #ebedf0;
|
package/build/widget.qw.es.js
CHANGED
|
@@ -21615,7 +21615,7 @@ const _sfc_main$4 = {
|
|
|
21615
21615
|
}
|
|
21616
21616
|
};
|
|
21617
21617
|
var TreePicker = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-ebc14630"]]);
|
|
21618
|
-
var CascaderPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.cascader-pop[data-v-
|
|
21618
|
+
var CascaderPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.cascader-pop[data-v-3ec31519] {\r\n width: 100%;\r\n overflow: hidden;\n}\n.cascader-selector[data-v-3ec31519] {\r\n padding: 10px;\n}\n.search-buttons[data-v-3ec31519] {\r\n display: flex;\r\n gap: 10px;\n}\n.clear-btn[data-v-3ec31519] {\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-3ec31519] {\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-3ec31519] {\r\n text-align: center;\r\n padding: 20px;\r\n color: #969799;\n}\n.cascader-header[data-v-3ec31519] {\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-3ec31519] {\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-3ec31519] {\r\n display: flex;\r\n gap: 8px;\r\n margin-left: auto;\n}\n.cancel-btn[data-v-3ec31519] {\r\n color: #969799;\r\n margin-right: 5px;\n}\n.scroll-container[data-v-3ec31519] {\r\n height: calc(80vh - 150px);\r\n overflow-y: auto;\n}\n.cell-content[data-v-3ec31519] {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\n}\n.circle-selector[data-v-3ec31519] {\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-3ec31519] {\r\n background-color: #1989fa;\r\n border-color: #1989fa;\n}\n.circle-selector.selected .van-icon[data-v-3ec31519] {\r\n color: white;\r\n font-size: 14px;\n}\n.van-cell__right-icon[data-v-3ec31519] {\r\n color: #969799;\r\n font-size: 16px;\r\n margin-left: 8px;\n}\n.name[data-v-3ec31519] {\r\n flex: 1;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\n}\n.cancel-btn[data-v-3ec31519] {\r\n color: #969799;\n}\n.search-field[data-v-3ec31519] {\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")();
|
|
21619
21619
|
const _hoisted_1$3 = {
|
|
21620
21620
|
class: "cascader-selector"
|
|
21621
21621
|
};
|
|
@@ -21770,8 +21770,12 @@ const _sfc_main$3 = {
|
|
|
21770
21770
|
const onToggle = (node) => {
|
|
21771
21771
|
if (data2.selectedNodeIds.includes(node.id))
|
|
21772
21772
|
data2.selectedNodeIds = data2.selectedNodeIds.filter((item) => item != node.id);
|
|
21773
|
-
else
|
|
21774
|
-
|
|
21773
|
+
else {
|
|
21774
|
+
if (props2.multiple)
|
|
21775
|
+
data2.selectedNodeIds.push(node.id);
|
|
21776
|
+
else
|
|
21777
|
+
data2.selectedNodeIds = [node.id];
|
|
21778
|
+
}
|
|
21775
21779
|
};
|
|
21776
21780
|
const onNextLevel = (node) => {
|
|
21777
21781
|
props2.idQueryNode({
|
|
@@ -21783,15 +21787,6 @@ const _sfc_main$3 = {
|
|
|
21783
21787
|
});
|
|
21784
21788
|
};
|
|
21785
21789
|
const query = () => __async(this, null, function* () {
|
|
21786
|
-
if (!props2.multiple) {
|
|
21787
|
-
if (modelValue2.value)
|
|
21788
|
-
data2.selectedNodeIds = [modelValue2.value];
|
|
21789
|
-
else
|
|
21790
|
-
data2.selectedNodeIds = [];
|
|
21791
|
-
} else if (modelValue2.value && modelValue2.value.length > 0)
|
|
21792
|
-
data2.selectedNodeIds = modelValue2.value;
|
|
21793
|
-
else
|
|
21794
|
-
data2.selectedNodeIds = [];
|
|
21795
21790
|
let params = {};
|
|
21796
21791
|
if (data2.selectedNodeIds.length > 0)
|
|
21797
21792
|
params.id = data2.selectedNodeIds[0];
|
|
@@ -21802,7 +21797,17 @@ const _sfc_main$3 = {
|
|
|
21802
21797
|
data2.parentNode = node;
|
|
21803
21798
|
});
|
|
21804
21799
|
});
|
|
21805
|
-
watch(() => [
|
|
21800
|
+
watch(() => [props2.show], (n, o) => __async(this, null, function* () {
|
|
21801
|
+
if (!props2.show)
|
|
21802
|
+
return;
|
|
21803
|
+
if (!props2.multiple) {
|
|
21804
|
+
data2.selectedNodeIds = [modelValue2.value];
|
|
21805
|
+
} else {
|
|
21806
|
+
if (modelValue2.value && modelValue2.value.length > 0)
|
|
21807
|
+
data2.selectedNodeIds = modelValue2.value;
|
|
21808
|
+
else
|
|
21809
|
+
data2.selectedNodeIds = [];
|
|
21810
|
+
}
|
|
21806
21811
|
query();
|
|
21807
21812
|
}), {
|
|
21808
21813
|
immediate: true
|
|
@@ -21889,7 +21894,7 @@ const _sfc_main$3 = {
|
|
|
21889
21894
|
};
|
|
21890
21895
|
}
|
|
21891
21896
|
};
|
|
21892
|
-
var CascaderPop = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-
|
|
21897
|
+
var CascaderPop = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-3ec31519"]]);
|
|
21893
21898
|
const _hoisted_1$2 = {
|
|
21894
21899
|
style: {
|
|
21895
21900
|
"display": "flex",
|
|
@@ -21986,9 +21991,15 @@ const _sfc_main$2 = {
|
|
|
21986
21991
|
}
|
|
21987
21992
|
};
|
|
21988
21993
|
const ids2nodes2 = () => __async(this, null, function* () {
|
|
21989
|
-
|
|
21994
|
+
let ids = [];
|
|
21995
|
+
if (!props2.multiple) {
|
|
21996
|
+
if (modelValue2.value)
|
|
21997
|
+
ids = [modelValue2.value];
|
|
21998
|
+
} else if (modelValue2.value && modelValue2.value.length > 0)
|
|
21999
|
+
ids = modelValue2.value;
|
|
22000
|
+
if (ids.length < 1)
|
|
21990
22001
|
return [];
|
|
21991
|
-
let promises =
|
|
22002
|
+
let promises = ids.map((nodeId) => __async(this, null, function* () {
|
|
21992
22003
|
let params = {};
|
|
21993
22004
|
params.id = nodeId;
|
|
21994
22005
|
params.isReturnParent = true;
|
|
@@ -22005,13 +22016,15 @@ const _sfc_main$2 = {
|
|
|
22005
22016
|
return selectNodes;
|
|
22006
22017
|
});
|
|
22007
22018
|
watch(() => JSON.stringify(modelValue2.value), (n, o) => __async(this, null, function* () {
|
|
22008
|
-
data2.selectedNodeIds = modelValue2.value;
|
|
22009
|
-
data2.selectedNodes = yield ids2nodes2();
|
|
22010
22019
|
if (!props2.multiple) {
|
|
22011
22020
|
data2.selectedNodeIds = modelValue2.value;
|
|
22012
22021
|
} else {
|
|
22013
|
-
|
|
22022
|
+
if (modelValue2.value && modelValue2.value.length > 0)
|
|
22023
|
+
data2.selectedNodeIds = modelValue2.value;
|
|
22024
|
+
else
|
|
22025
|
+
data2.selectedNodeIds = [];
|
|
22014
22026
|
}
|
|
22027
|
+
data2.selectedNodes = yield ids2nodes2();
|
|
22015
22028
|
}), {
|
|
22016
22029
|
immediate: true
|
|
22017
22030
|
});
|
package/build/widget.qw.umd.js
CHANGED
|
@@ -21618,7 +21618,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
21618
21618
|
}
|
|
21619
21619
|
};
|
|
21620
21620
|
var TreePicker = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-ebc14630"]]);
|
|
21621
|
-
var CascaderPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.cascader-pop[data-v-
|
|
21621
|
+
var CascaderPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.cascader-pop[data-v-3ec31519] {\r\n width: 100%;\r\n overflow: hidden;\n}\n.cascader-selector[data-v-3ec31519] {\r\n padding: 10px;\n}\n.search-buttons[data-v-3ec31519] {\r\n display: flex;\r\n gap: 10px;\n}\n.clear-btn[data-v-3ec31519] {\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-3ec31519] {\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-3ec31519] {\r\n text-align: center;\r\n padding: 20px;\r\n color: #969799;\n}\n.cascader-header[data-v-3ec31519] {\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-3ec31519] {\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-3ec31519] {\r\n display: flex;\r\n gap: 8px;\r\n margin-left: auto;\n}\n.cancel-btn[data-v-3ec31519] {\r\n color: #969799;\r\n margin-right: 5px;\n}\n.scroll-container[data-v-3ec31519] {\r\n height: calc(80vh - 150px);\r\n overflow-y: auto;\n}\n.cell-content[data-v-3ec31519] {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\n}\n.circle-selector[data-v-3ec31519] {\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-3ec31519] {\r\n background-color: #1989fa;\r\n border-color: #1989fa;\n}\n.circle-selector.selected .van-icon[data-v-3ec31519] {\r\n color: white;\r\n font-size: 14px;\n}\n.van-cell__right-icon[data-v-3ec31519] {\r\n color: #969799;\r\n font-size: 16px;\r\n margin-left: 8px;\n}\n.name[data-v-3ec31519] {\r\n flex: 1;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\n}\n.cancel-btn[data-v-3ec31519] {\r\n color: #969799;\n}\n.search-field[data-v-3ec31519] {\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")();
|
|
21622
21622
|
const _hoisted_1$3 = {
|
|
21623
21623
|
class: "cascader-selector"
|
|
21624
21624
|
};
|
|
@@ -21773,8 +21773,12 @@ var __async = (__this, __arguments, generator) => {
|
|
|
21773
21773
|
const onToggle = (node) => {
|
|
21774
21774
|
if (data2.selectedNodeIds.includes(node.id))
|
|
21775
21775
|
data2.selectedNodeIds = data2.selectedNodeIds.filter((item) => item != node.id);
|
|
21776
|
-
else
|
|
21777
|
-
|
|
21776
|
+
else {
|
|
21777
|
+
if (props2.multiple)
|
|
21778
|
+
data2.selectedNodeIds.push(node.id);
|
|
21779
|
+
else
|
|
21780
|
+
data2.selectedNodeIds = [node.id];
|
|
21781
|
+
}
|
|
21778
21782
|
};
|
|
21779
21783
|
const onNextLevel = (node) => {
|
|
21780
21784
|
props2.idQueryNode({
|
|
@@ -21786,15 +21790,6 @@ var __async = (__this, __arguments, generator) => {
|
|
|
21786
21790
|
});
|
|
21787
21791
|
};
|
|
21788
21792
|
const query = () => __async(this, null, function* () {
|
|
21789
|
-
if (!props2.multiple) {
|
|
21790
|
-
if (modelValue2.value)
|
|
21791
|
-
data2.selectedNodeIds = [modelValue2.value];
|
|
21792
|
-
else
|
|
21793
|
-
data2.selectedNodeIds = [];
|
|
21794
|
-
} else if (modelValue2.value && modelValue2.value.length > 0)
|
|
21795
|
-
data2.selectedNodeIds = modelValue2.value;
|
|
21796
|
-
else
|
|
21797
|
-
data2.selectedNodeIds = [];
|
|
21798
21793
|
let params = {};
|
|
21799
21794
|
if (data2.selectedNodeIds.length > 0)
|
|
21800
21795
|
params.id = data2.selectedNodeIds[0];
|
|
@@ -21805,7 +21800,17 @@ var __async = (__this, __arguments, generator) => {
|
|
|
21805
21800
|
data2.parentNode = node;
|
|
21806
21801
|
});
|
|
21807
21802
|
});
|
|
21808
|
-
vue.watch(() => [
|
|
21803
|
+
vue.watch(() => [props2.show], (n, o) => __async(this, null, function* () {
|
|
21804
|
+
if (!props2.show)
|
|
21805
|
+
return;
|
|
21806
|
+
if (!props2.multiple) {
|
|
21807
|
+
data2.selectedNodeIds = [modelValue2.value];
|
|
21808
|
+
} else {
|
|
21809
|
+
if (modelValue2.value && modelValue2.value.length > 0)
|
|
21810
|
+
data2.selectedNodeIds = modelValue2.value;
|
|
21811
|
+
else
|
|
21812
|
+
data2.selectedNodeIds = [];
|
|
21813
|
+
}
|
|
21809
21814
|
query();
|
|
21810
21815
|
}), {
|
|
21811
21816
|
immediate: true
|
|
@@ -21892,7 +21897,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
21892
21897
|
};
|
|
21893
21898
|
}
|
|
21894
21899
|
};
|
|
21895
|
-
var CascaderPop = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-
|
|
21900
|
+
var CascaderPop = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-3ec31519"]]);
|
|
21896
21901
|
const _hoisted_1$2 = {
|
|
21897
21902
|
style: {
|
|
21898
21903
|
"display": "flex",
|
|
@@ -21989,9 +21994,15 @@ var __async = (__this, __arguments, generator) => {
|
|
|
21989
21994
|
}
|
|
21990
21995
|
};
|
|
21991
21996
|
const ids2nodes2 = () => __async(this, null, function* () {
|
|
21992
|
-
|
|
21997
|
+
let ids = [];
|
|
21998
|
+
if (!props2.multiple) {
|
|
21999
|
+
if (modelValue2.value)
|
|
22000
|
+
ids = [modelValue2.value];
|
|
22001
|
+
} else if (modelValue2.value && modelValue2.value.length > 0)
|
|
22002
|
+
ids = modelValue2.value;
|
|
22003
|
+
if (ids.length < 1)
|
|
21993
22004
|
return [];
|
|
21994
|
-
let promises =
|
|
22005
|
+
let promises = ids.map((nodeId) => __async(this, null, function* () {
|
|
21995
22006
|
let params = {};
|
|
21996
22007
|
params.id = nodeId;
|
|
21997
22008
|
params.isReturnParent = true;
|
|
@@ -22008,13 +22019,15 @@ var __async = (__this, __arguments, generator) => {
|
|
|
22008
22019
|
return selectNodes;
|
|
22009
22020
|
});
|
|
22010
22021
|
vue.watch(() => JSON.stringify(modelValue2.value), (n, o) => __async(this, null, function* () {
|
|
22011
|
-
data2.selectedNodeIds = modelValue2.value;
|
|
22012
|
-
data2.selectedNodes = yield ids2nodes2();
|
|
22013
22022
|
if (!props2.multiple) {
|
|
22014
22023
|
data2.selectedNodeIds = modelValue2.value;
|
|
22015
22024
|
} else {
|
|
22016
|
-
|
|
22025
|
+
if (modelValue2.value && modelValue2.value.length > 0)
|
|
22026
|
+
data2.selectedNodeIds = modelValue2.value;
|
|
22027
|
+
else
|
|
22028
|
+
data2.selectedNodeIds = [];
|
|
22017
22029
|
}
|
|
22030
|
+
data2.selectedNodes = yield ids2nodes2();
|
|
22018
22031
|
}), {
|
|
22019
22032
|
immediate: true
|
|
22020
22033
|
});
|
package/package.json
CHANGED
|
@@ -16,8 +16,9 @@
|
|
|
16
16
|
</template>
|
|
17
17
|
</van-field>
|
|
18
18
|
|
|
19
|
-
<CascaderPop :multiple="props.multiple" v-model:show="data.isShowPop" v-model="data.selectedNodeIds"
|
|
20
|
-
@select="onSelect" :keywordQueryNode="props.keywordQueryNode"
|
|
19
|
+
<CascaderPop :multiple="props.multiple" v-model:show="data.isShowPop" v-model="data.selectedNodeIds"
|
|
20
|
+
:placeholder="props.placeholder" @select="onSelect" :keywordQueryNode="props.keywordQueryNode"
|
|
21
|
+
:idQueryNode="props.idQueryNode" />
|
|
21
22
|
</template>
|
|
22
23
|
|
|
23
24
|
<script setup>
|
|
@@ -102,12 +103,6 @@ const onSelect = (nodes) => {
|
|
|
102
103
|
data.selectedNodes = nodes
|
|
103
104
|
emit('select', data.selectedNodes)
|
|
104
105
|
modelValue.value = data.selectedNodes.map(item => item.id)
|
|
105
|
-
|
|
106
|
-
// let one = data.selectedNodes.find(item => item.id === node.id)
|
|
107
|
-
// if (!one)
|
|
108
|
-
// data.selectedNodes = [...data.selectedNodes, node]
|
|
109
|
-
// emit('select', data.selectedNodes)
|
|
110
|
-
// modelValue.value = data.selectedNodes.map(item => item.id)
|
|
111
106
|
}
|
|
112
107
|
}
|
|
113
108
|
|
|
@@ -119,11 +114,19 @@ const onDelete = (idx) => {
|
|
|
119
114
|
}
|
|
120
115
|
}
|
|
121
116
|
|
|
122
|
-
const ids2nodes = async() => {
|
|
123
|
-
|
|
117
|
+
const ids2nodes = async () => {
|
|
118
|
+
let ids = []
|
|
119
|
+
if(!props.multiple){
|
|
120
|
+
if(modelValue.value)
|
|
121
|
+
ids = [modelValue.value]
|
|
122
|
+
}
|
|
123
|
+
else if(modelValue.value && modelValue.value.length>0)
|
|
124
|
+
ids = modelValue.value
|
|
125
|
+
|
|
126
|
+
if (ids.length < 1)
|
|
124
127
|
return []
|
|
125
128
|
|
|
126
|
-
let promises =
|
|
129
|
+
let promises = ids.map(async (nodeId) => {
|
|
127
130
|
let params = {}
|
|
128
131
|
params.id = nodeId
|
|
129
132
|
params.isReturnParent = true
|
|
@@ -137,24 +140,24 @@ const ids2nodes = async() => {
|
|
|
137
140
|
})
|
|
138
141
|
return selectNode
|
|
139
142
|
})
|
|
140
|
-
|
|
143
|
+
|
|
141
144
|
let selectNodes = await Promise.all(promises)
|
|
142
145
|
|
|
143
146
|
return selectNodes
|
|
144
147
|
}
|
|
145
148
|
|
|
146
|
-
watch(() => JSON.stringify(modelValue.value), async(n, o) => {
|
|
147
|
-
data.selectedNodeIds = modelValue.value
|
|
148
|
-
data.selectedNodes = await ids2nodes()
|
|
149
|
-
|
|
150
|
-
//单用户选择时,将用户id记录在selectedNodeIds,用户对象存入selectedNodes的第一个元素
|
|
149
|
+
watch(() => JSON.stringify(modelValue.value), async (n, o) => {
|
|
151
150
|
if (!props.multiple) {
|
|
152
151
|
data.selectedNodeIds = modelValue.value
|
|
153
152
|
}
|
|
154
|
-
//多用户选择时,遍历回调接口获取多用户对象列表,记录在selectedNodes
|
|
155
153
|
else {
|
|
156
|
-
|
|
154
|
+
if (modelValue.value && modelValue.value.length > 0)
|
|
155
|
+
data.selectedNodeIds = modelValue.value
|
|
156
|
+
else
|
|
157
|
+
data.selectedNodeIds = []
|
|
157
158
|
}
|
|
159
|
+
|
|
160
|
+
data.selectedNodes = await ids2nodes()
|
|
158
161
|
}, {
|
|
159
162
|
immediate: true
|
|
160
163
|
})
|
|
@@ -203,8 +203,12 @@ const onCancel = () => {
|
|
|
203
203
|
const onToggle = (node) => {
|
|
204
204
|
if (data.selectedNodeIds.includes(node.id))
|
|
205
205
|
data.selectedNodeIds = data.selectedNodeIds.filter(item => item != node.id)
|
|
206
|
-
else
|
|
207
|
-
|
|
206
|
+
else{
|
|
207
|
+
if(props.multiple)
|
|
208
|
+
data.selectedNodeIds.push(node.id)
|
|
209
|
+
else
|
|
210
|
+
data.selectedNodeIds = [node.id]
|
|
211
|
+
}
|
|
208
212
|
}
|
|
209
213
|
|
|
210
214
|
const onNextLevel = (node) => {
|
|
@@ -214,17 +218,6 @@ const onNextLevel = (node) => {
|
|
|
214
218
|
}
|
|
215
219
|
|
|
216
220
|
const query = async () => {
|
|
217
|
-
if (!props.multiple)
|
|
218
|
-
if (modelValue.value)
|
|
219
|
-
data.selectedNodeIds = [modelValue.value]
|
|
220
|
-
else
|
|
221
|
-
data.selectedNodeIds = []
|
|
222
|
-
else
|
|
223
|
-
if (modelValue.value && modelValue.value.length > 0)
|
|
224
|
-
data.selectedNodeIds = modelValue.value
|
|
225
|
-
else
|
|
226
|
-
data.selectedNodeIds = []
|
|
227
|
-
|
|
228
221
|
let params = {}
|
|
229
222
|
if (data.selectedNodeIds.length > 0)
|
|
230
223
|
params.id = data.selectedNodeIds[0]
|
|
@@ -235,132 +228,27 @@ const query = async () => {
|
|
|
235
228
|
await props.idQueryNode(params, (node) => {
|
|
236
229
|
data.parentNode = node
|
|
237
230
|
})
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
// if (!props.multiple) {
|
|
241
|
-
// //空id时,查带子节点的虚拟根节点
|
|
242
|
-
// if (!data.selectedNodeIds) {
|
|
243
|
-
// let params = {}
|
|
244
|
-
// params.isReturnParent = true
|
|
245
|
-
// params.hasChildren = true
|
|
246
|
-
// params.hasPaths = true
|
|
247
|
-
|
|
248
|
-
// await props.idQueryNode(params, (node) => {
|
|
249
|
-
// data.parentNode = node
|
|
250
|
-
|
|
251
|
-
// // if (!data.selectedNodeIds)
|
|
252
|
-
// // return
|
|
253
|
-
|
|
254
|
-
// // let childNode = util.findNode(modelValue.value, data.parentNode.children)
|
|
255
|
-
// // emit('select', childNode)
|
|
256
|
-
// })
|
|
257
|
-
// }
|
|
258
|
-
// //选中节点时
|
|
259
|
-
// else {
|
|
260
|
-
// //未显示底部弹窗时,只查节点本身
|
|
261
|
-
// if (!props.show) {
|
|
262
|
-
// let params = {}
|
|
263
|
-
// params.id = modelValue.value
|
|
264
|
-
// params.isReturnParent = true
|
|
265
|
-
// params.hasChildren = false
|
|
266
|
-
// params.hasPaths = true
|
|
267
|
-
|
|
268
|
-
// await props.idQueryNode(params, (node) => {
|
|
269
|
-
// data.parentNode = node
|
|
270
|
-
// let childNode = util.findNode(modelValue.value, data.parentNode.children)
|
|
271
|
-
// emit('select', childNode)
|
|
272
|
-
// })
|
|
273
|
-
// }
|
|
274
|
-
// //显示底部弹窗时,查询带子节点的父节点
|
|
275
|
-
// else {
|
|
276
|
-
// let params = {}
|
|
277
|
-
// params.id = modelValue.value
|
|
278
|
-
// params.isReturnParent = true
|
|
279
|
-
// params.hasChildren = true
|
|
280
|
-
// params.hasPaths = true
|
|
281
|
-
|
|
282
|
-
// await props.idQueryNode(params, (node) => {
|
|
283
|
-
// data.parentNode = node
|
|
284
|
-
// if (!modelValue.value)
|
|
285
|
-
// return
|
|
286
|
-
// let childNode = util.findNode(modelValue.value, data.parentNode.children)
|
|
287
|
-
// emit('select', childNode)
|
|
288
|
-
// })
|
|
289
|
-
// }
|
|
290
|
-
// }
|
|
291
|
-
// } else {
|
|
292
|
-
// //空数组时,查带子节点的虚拟根节点
|
|
293
|
-
// if (!data.selectedNodeIds || data.selectedNodeIds.length < 1) {
|
|
294
|
-
// let params = {}
|
|
295
|
-
// params.isReturnParent = true
|
|
296
|
-
// params.hasChildren = true
|
|
297
|
-
// params.hasPaths = true
|
|
298
|
-
|
|
299
|
-
// await props.idQueryNode(params, (node) => {
|
|
300
|
-
// data.parentNode = node
|
|
301
|
-
|
|
302
|
-
// if (!modelValue.value)
|
|
303
|
-
// return
|
|
304
|
-
|
|
305
|
-
// let childNode = util.findNode(modelValue.value, data.parentNode.children)
|
|
306
|
-
// emit('select', childNode)
|
|
307
|
-
// })
|
|
308
|
-
// }
|
|
309
|
-
// //选中节点时
|
|
310
|
-
// else {
|
|
311
|
-
// //未显示底部弹窗时,只查节点本身
|
|
312
|
-
// if (!props.show) {
|
|
313
|
-
// let selectNodes = data.selectedNodeIds.map(async(nodeId) => {
|
|
314
|
-
// let params = {}
|
|
315
|
-
// params.id = nodeId
|
|
316
|
-
// params.isReturnParent = true
|
|
317
|
-
// params.hasChildren = false
|
|
318
|
-
// params.hasPaths = true
|
|
319
|
-
|
|
320
|
-
// let selectNode = await props.idQueryNode(params, (node) => {
|
|
321
|
-
// data.parentNode = node
|
|
322
|
-
// let childNode = util.findNode(nodeId, data.parentNode.children)
|
|
323
|
-
// return childNode
|
|
324
|
-
// })
|
|
325
|
-
// return selectNode
|
|
326
|
-
// })
|
|
327
|
-
// // emit('select', selectNodes)
|
|
328
|
-
// }
|
|
329
|
-
// //显示底部弹窗时,查询第一个选中节点的的父节点
|
|
330
|
-
// else {
|
|
331
|
-
// let params = {}
|
|
332
|
-
// params.id = data.selectedNodeIds[0]
|
|
333
|
-
// params.isReturnParent = true
|
|
334
|
-
// params.hasChildren = true
|
|
335
|
-
// params.hasPaths = true
|
|
336
|
-
|
|
337
|
-
// await props.idQueryNode(params, (node) => {
|
|
338
|
-
// data.parentNode = node
|
|
339
|
-
// if (!data.selectedNodeIds[0])
|
|
340
|
-
// return
|
|
341
|
-
// let childNode = util.findNode(data.selectedNodeIds[0], data.parentNode.children)
|
|
342
|
-
// // emit('select', childNode)
|
|
343
|
-
// })
|
|
344
|
-
// }
|
|
345
|
-
// }
|
|
346
|
-
// }
|
|
347
231
|
}
|
|
348
232
|
|
|
349
233
|
//根据id查询详情对象
|
|
350
|
-
watch(() => [
|
|
234
|
+
watch(() => [props.show], async (n, o) => {
|
|
235
|
+
if(!props.show)
|
|
236
|
+
return
|
|
237
|
+
|
|
238
|
+
if (!props.multiple) {
|
|
239
|
+
data.selectedNodeIds = [modelValue.value]
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
if (modelValue.value && modelValue.value.length > 0)
|
|
243
|
+
data.selectedNodeIds = modelValue.value
|
|
244
|
+
else
|
|
245
|
+
data.selectedNodeIds = []
|
|
246
|
+
}
|
|
247
|
+
|
|
351
248
|
query()
|
|
352
249
|
}, {
|
|
353
250
|
immediate: true
|
|
354
251
|
})
|
|
355
|
-
|
|
356
|
-
// watch(() => props.show, () => {
|
|
357
|
-
// if (!props.show)
|
|
358
|
-
// return
|
|
359
|
-
|
|
360
|
-
// query()
|
|
361
|
-
// }, {
|
|
362
|
-
// immediate: true
|
|
363
|
-
// })
|
|
364
252
|
</script>
|
|
365
253
|
|
|
366
254
|
<style scoped>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="page">
|
|
3
|
-
<UserPicker label="项目经理" multiple v-model="data.userids" :auth="data.auth" />
|
|
3
|
+
<UserPicker label="项目经理" :multiple="data.multiple" v-model="data.userids" :auth="data.auth" />
|
|
4
4
|
</div>
|
|
5
5
|
</template>
|
|
6
6
|
|
|
@@ -9,8 +9,9 @@ import { reactive, onMounted } from "vue";
|
|
|
9
9
|
import UserPicker from '../cascaderpicker/userpicker.vue'
|
|
10
10
|
|
|
11
11
|
const data = reactive({
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
multiple:true,
|
|
13
|
+
auth: 'require',
|
|
14
|
+
userids: []
|
|
14
15
|
})
|
|
15
16
|
|
|
16
17
|
onMounted(() => {
|