@blueking/bk-user-selector 0.0.23 → 0.0.24
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/README.md +14 -12
- package/package.json +1 -1
- package/typings/components/multiple-selector.vue.d.ts +3 -0
- package/typings/components/single-selector.vue.d.ts +3 -0
- package/typings/components/user-selector.vue.d.ts +3 -0
- package/typings/types/index.d.ts +4 -0
- package/vue2/index.es.min.js +4526 -6786
- package/vue2/index.iife.min.js +4519 -6779
- package/vue2/index.umd.min.js +4512 -6772
- package/vue2/vue2.css +50 -567
- package/vue3/index.es.min.js +17 -12
- package/vue3/index.iife.min.js +4512 -6772
- package/vue3/index.umd.min.js +18 -13
- package/vue3/vue3.css +16 -16
package/vue3/index.umd.min.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
})(this, function(exports2, vue, bkuiVue) {
|
|
4
4
|
"use strict";
|
|
5
5
|
var __vite_style__ = document.createElement("style");
|
|
6
|
-
__vite_style__.textContent = ".me-tag[data-v-887b7c44] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background-color: #e1ecff;\n color: #4d4f56;\n border-radius: 50%;\n padding: 0 8px;\n height: 24px;\n width: 24px;\n cursor: pointer;\n font-size: 12px;\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n z-index: 1;\n}\n.me-tag[data-v-887b7c44]:hover {\n background-color: #cddffe;\n color: #3a84ff;\n}\n.me-tag.disabled[data-v-887b7c44] {\n background-color: #f0f1f5;\n color: #c4c6cc;\n cursor: not-allowed;\n}.dropdown-content[data-v-54b68f9a] {\n min-height: 40px;\n max-height: 300px;\n overflow-y: auto;\n padding: 5px 0;\n}\n.dropdown-content .no-data[data-v-54b68f9a] {\n padding: 10px;\n text-align: center;\n color: #979ba5;\n}\n.dropdown-content .user-group .group-header[data-v-54b68f9a] {\n padding: 8px 12px;\n color: #979ba5;\n display: flex;\n align-items: center;\n}\n.dropdown-content .user-group .group-header .group-count[data-v-54b68f9a] {\n margin-left: 4px;\n}\n.dropdown-content .user-option[data-v-54b68f9a] {\n padding: 8px 12px;\n cursor: pointer;\n display: flex;\n align-items: center;\n height: 32px;\n}\n.dropdown-content .user-option[data-v-54b68f9a]:hover {\n background-color: #f5f7fa;\n}.bk-user-selector-popover.bk-popover.bk-pop2-content {\n padding: 0;\n}.user-tag[data-v-655f7a5a] {\n margin-right: 4px;\n margin-left: 0;\n}\n.user-tag.draggable[data-v-655f7a5a] {\n cursor: move;\n}\n.user-tag.active[data-v-655f7a5a] {\n background-color: #e1ecff;\n border-color: #3a84ff;\n}\n.user-tag .tag-content .user-name[data-v-655f7a5a] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 12px;\n}.multiple-selector[data-v-
|
|
6
|
+
__vite_style__.textContent = ".me-tag[data-v-887b7c44] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background-color: #e1ecff;\n color: #4d4f56;\n border-radius: 50%;\n padding: 0 8px;\n height: 24px;\n width: 24px;\n cursor: pointer;\n font-size: 12px;\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n z-index: 1;\n}\n.me-tag[data-v-887b7c44]:hover {\n background-color: #cddffe;\n color: #3a84ff;\n}\n.me-tag.disabled[data-v-887b7c44] {\n background-color: #f0f1f5;\n color: #c4c6cc;\n cursor: not-allowed;\n}.dropdown-content[data-v-54b68f9a] {\n min-height: 40px;\n max-height: 300px;\n overflow-y: auto;\n padding: 5px 0;\n}\n.dropdown-content .no-data[data-v-54b68f9a] {\n padding: 10px;\n text-align: center;\n color: #979ba5;\n}\n.dropdown-content .user-group .group-header[data-v-54b68f9a] {\n padding: 8px 12px;\n color: #979ba5;\n display: flex;\n align-items: center;\n}\n.dropdown-content .user-group .group-header .group-count[data-v-54b68f9a] {\n margin-left: 4px;\n}\n.dropdown-content .user-option[data-v-54b68f9a] {\n padding: 8px 12px;\n cursor: pointer;\n display: flex;\n align-items: center;\n height: 32px;\n}\n.dropdown-content .user-option[data-v-54b68f9a]:hover {\n background-color: #f5f7fa;\n}.bk-user-selector-popover.bk-popover.bk-pop2-content {\n padding: 0;\n}.user-tag[data-v-655f7a5a] {\n margin-right: 4px;\n margin-left: 0;\n}\n.user-tag.draggable[data-v-655f7a5a] {\n cursor: move;\n}\n.user-tag.active[data-v-655f7a5a] {\n background-color: #e1ecff;\n border-color: #3a84ff;\n}\n.user-tag .tag-content .user-name[data-v-655f7a5a] {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 12px;\n}.multiple-selector[data-v-9fc5bebf] {\n position: relative;\n width: 100%;\n}\n.multiple-selector .tags-container[data-v-9fc5bebf] {\n min-height: 32px;\n border: 1px solid #c4c6cc;\n border-radius: 2px;\n padding: 1px 10px 1px 8px;\n transition: all 0.2s ease;\n background-color: #fff;\n}\n.multiple-selector .tags-container.focused[data-v-9fc5bebf] {\n border-color: #3a84ff;\n box-shadow: 0 0 0 2px rgba(58, 132, 255, 0.1);\n}\n.multiple-selector .tags-container.collapsed[data-v-9fc5bebf] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n.multiple-selector .tag-list[data-v-9fc5bebf] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n.multiple-selector .tag-wrapper[data-v-9fc5bebf] {\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n}\n.multiple-selector .search-input[data-v-9fc5bebf] {\n outline: none;\n border: none;\n height: 28px;\n min-width: 10px;\n background: transparent;\n}\n.multiple-selector .search-input[data-v-9fc5bebf]::placeholder {\n color: #c4c6cc;\n}\n.multiple-selector .search-input.inline[data-v-9fc5bebf] {\n min-width: 10px;\n}\n.multiple-selector .search-input.last[data-v-9fc5bebf], .multiple-selector .search-input.collapsed[data-v-9fc5bebf] {\n flex: 1;\n min-width: 60px;\n}.single-selector[data-v-1454c121] {\n position: relative;\n width: 100%;\n}\n.input-container[data-v-1454c121] {\n position: relative;\n display: flex;\n align-items: center;\n min-height: 32px;\n border: 1px solid #c4c6cc;\n border-radius: 2px;\n padding: 0 8px;\n background-color: #fff;\n}\n.input-container[data-v-1454c121]:focus-within {\n border-color: #3a84ff;\n box-shadow: 0 0 0 2px rgba(58, 132, 255, 0.1);\n}\n.search-input[data-v-1454c121] {\n flex: 1;\n outline: none;\n border: none;\n height: 30px;\n background: transparent;\n}\n.search-input[data-v-1454c121]::placeholder {\n color: #c4c6cc;\n}.bk-user-selector[data-v-906da21c] {\n width: 100%;\n position: relative;\n font-size: 12px;\n}/*$vite$:1*/";
|
|
7
7
|
document.head.appendChild(__vite_style__);
|
|
8
8
|
const getTenants = async (apiBaseUrl, tenantId) => {
|
|
9
9
|
if (!apiBaseUrl || !tenantId) {
|
|
@@ -3356,7 +3356,8 @@
|
|
|
3356
3356
|
userGroupName: { default: "用户群组" },
|
|
3357
3357
|
emptyText: { default: "无匹配人员" },
|
|
3358
3358
|
renderListItem: {},
|
|
3359
|
-
renderTag: {}
|
|
3359
|
+
renderTag: {},
|
|
3360
|
+
excludeUserIds: { default: () => [] }
|
|
3360
3361
|
},
|
|
3361
3362
|
emits: ["update:selectedUsers", "add-user", "remove-user"],
|
|
3362
3363
|
setup(__props, { emit: __emit }) {
|
|
@@ -3383,7 +3384,7 @@
|
|
|
3383
3384
|
const visibleUsers = vue.ref([]);
|
|
3384
3385
|
const hiddenCount = vue.ref(0);
|
|
3385
3386
|
const options = vue.computed(() => {
|
|
3386
|
-
return searchResults.value.filter((user) => !props.selectedUsers.some((selectedUser) => selectedUser.id === user.id));
|
|
3387
|
+
return searchResults.value.filter((user) => !props.selectedUsers.some((selectedUser) => selectedUser.id === user.id)).filter((user) => !props.excludeUserIds.includes(user.id));
|
|
3387
3388
|
});
|
|
3388
3389
|
const userGroupFilter = vue.computed(() => {
|
|
3389
3390
|
return props.userGroup.filter((group) => !props.selectedUsers.some((user) => user.id === group.id) && !group.hidden);
|
|
@@ -3825,7 +3826,7 @@
|
|
|
3825
3826
|
};
|
|
3826
3827
|
}
|
|
3827
3828
|
});
|
|
3828
|
-
const MultipleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-
|
|
3829
|
+
const MultipleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-9fc5bebf"]]);
|
|
3829
3830
|
const _hoisted_1$1 = { class: "input-container" };
|
|
3830
3831
|
const _hoisted_2 = ["placeholder"];
|
|
3831
3832
|
const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
@@ -3845,7 +3846,8 @@
|
|
|
3845
3846
|
userGroupName: { default: "用户群组" },
|
|
3846
3847
|
emptyText: { default: "无匹配人员" },
|
|
3847
3848
|
renderListItem: {},
|
|
3848
|
-
renderTag: {}
|
|
3849
|
+
renderTag: {},
|
|
3850
|
+
excludeUserIds: { default: () => [] }
|
|
3849
3851
|
},
|
|
3850
3852
|
emits: ["update:modelValue", "change"],
|
|
3851
3853
|
setup(__props, { emit: __emit }) {
|
|
@@ -3879,7 +3881,7 @@
|
|
|
3879
3881
|
const result = await lookupUsers(props.apiBaseUrl || "", props.tenantId || "", props.exactSearchKey, [
|
|
3880
3882
|
props.modelValue
|
|
3881
3883
|
]);
|
|
3882
|
-
options.value = formatUsers(result);
|
|
3884
|
+
options.value = formatUsers(result).filter((user) => !props.excludeUserIds.includes(user.id));
|
|
3883
3885
|
if (props.userGroup.length > 0) {
|
|
3884
3886
|
const groupResult = props.userGroup.filter((group) => group.id == props.modelValue);
|
|
3885
3887
|
options.value = groupResult.map((group) => ({
|
|
@@ -3906,7 +3908,7 @@
|
|
|
3906
3908
|
const result = await lookupUsers(props.apiBaseUrl, props.tenantId, props.exactSearchKey, [props.currentUserId]);
|
|
3907
3909
|
const formattedResults = formatUsers(result);
|
|
3908
3910
|
if (formattedResults.length > 0) {
|
|
3909
|
-
options.value = formattedResults;
|
|
3911
|
+
options.value = formattedResults.filter((user) => !props.excludeUserIds.includes(user.id));
|
|
3910
3912
|
addUser(formattedResults[0]);
|
|
3911
3913
|
}
|
|
3912
3914
|
} catch (error) {
|
|
@@ -3921,7 +3923,7 @@
|
|
|
3921
3923
|
isLoading.value = true;
|
|
3922
3924
|
try {
|
|
3923
3925
|
const result = await searchUsers(props.apiBaseUrl, props.tenantId, keyword);
|
|
3924
|
-
options.value = formatUsers(result).filter((user) => !selectedUser.value || user.id !== selectedUser.value);
|
|
3926
|
+
options.value = formatUsers(result).filter((user) => !selectedUser.value || user.id !== selectedUser.value).filter((user) => !props.excludeUserIds.includes(user.id));
|
|
3925
3927
|
} catch (error) {
|
|
3926
3928
|
console.error("获取用户列表失败:", error);
|
|
3927
3929
|
options.value = [];
|
|
@@ -4019,7 +4021,7 @@
|
|
|
4019
4021
|
};
|
|
4020
4022
|
}
|
|
4021
4023
|
});
|
|
4022
|
-
const SingleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-
|
|
4024
|
+
const SingleSelector = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-1454c121"]]);
|
|
4023
4025
|
const _hoisted_1 = {
|
|
4024
4026
|
ref: "containerRef",
|
|
4025
4027
|
class: "bk-user-selector"
|
|
@@ -4042,7 +4044,8 @@
|
|
|
4042
4044
|
userGroupName: { default: "用户群组" },
|
|
4043
4045
|
emptyText: { default: "无匹配人员" },
|
|
4044
4046
|
renderListItem: {},
|
|
4045
|
-
renderTag: {}
|
|
4047
|
+
renderTag: {},
|
|
4048
|
+
excludeUserIds: { default: () => [] }
|
|
4046
4049
|
},
|
|
4047
4050
|
emits: ["update:modelValue", "change"],
|
|
4048
4051
|
setup(__props, { emit: __emit }) {
|
|
@@ -4125,6 +4128,7 @@
|
|
|
4125
4128
|
"current-user-id": _ctx.currentUserId,
|
|
4126
4129
|
"empty-text": _ctx.emptyText,
|
|
4127
4130
|
"exact-search-key": _ctx.exactSearchKey,
|
|
4131
|
+
"exclude-user-ids": _ctx.excludeUserIds,
|
|
4128
4132
|
placeholder: _ctx.placeholder,
|
|
4129
4133
|
"render-list-item": _ctx.renderListItem,
|
|
4130
4134
|
"render-tag": _ctx.renderTag,
|
|
@@ -4133,7 +4137,7 @@
|
|
|
4133
4137
|
"user-group": _ctx.userGroup,
|
|
4134
4138
|
"user-group-name": _ctx.userGroupName,
|
|
4135
4139
|
onChange: handleUpdateUser
|
|
4136
|
-
}, null, 8, ["modelValue", "api-base-url", "current-user-id", "empty-text", "exact-search-key", "placeholder", "render-list-item", "render-tag", "tenant-id", "tenants", "user-group", "user-group-name"])) : (vue.openBlock(), vue.createElementBlock(
|
|
4140
|
+
}, null, 8, ["modelValue", "api-base-url", "current-user-id", "empty-text", "exact-search-key", "exclude-user-ids", "placeholder", "render-list-item", "render-tag", "tenant-id", "tenants", "user-group", "user-group-name"])) : (vue.openBlock(), vue.createElementBlock(
|
|
4137
4141
|
vue.Fragment,
|
|
4138
4142
|
{ key: 1 },
|
|
4139
4143
|
[
|
|
@@ -4146,6 +4150,7 @@
|
|
|
4146
4150
|
draggable: _ctx.draggable,
|
|
4147
4151
|
"empty-text": _ctx.emptyText,
|
|
4148
4152
|
"exact-search-key": _ctx.exactSearchKey,
|
|
4153
|
+
"exclude-user-ids": _ctx.excludeUserIds,
|
|
4149
4154
|
placeholder: _ctx.placeholder,
|
|
4150
4155
|
"render-list-item": _ctx.renderListItem,
|
|
4151
4156
|
"render-tag": _ctx.renderTag,
|
|
@@ -4155,7 +4160,7 @@
|
|
|
4155
4160
|
"user-group": _ctx.userGroup,
|
|
4156
4161
|
"user-group-name": _ctx.userGroupName,
|
|
4157
4162
|
"onUpdate:selectedUsers": handleUpdateSelectedUsers
|
|
4158
|
-
}, null, 8, ["modelValue", "api-base-url", "current-user-id", "draggable", "empty-text", "exact-search-key", "placeholder", "render-list-item", "render-tag", "selected-users", "tenant-id", "tenants", "user-group", "user-group-name"])
|
|
4163
|
+
}, null, 8, ["modelValue", "api-base-url", "current-user-id", "draggable", "empty-text", "exact-search-key", "exclude-user-ids", "placeholder", "render-list-item", "render-tag", "selected-users", "tenant-id", "tenants", "user-group", "user-group-name"])
|
|
4159
4164
|
],
|
|
4160
4165
|
2112
|
|
4161
4166
|
/* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
|
|
@@ -4167,7 +4172,7 @@
|
|
|
4167
4172
|
};
|
|
4168
4173
|
}
|
|
4169
4174
|
});
|
|
4170
|
-
const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4175
|
+
const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-906da21c"]]);
|
|
4171
4176
|
exports2.BkUserSelector = BkUserSelector;
|
|
4172
4177
|
exports2.default = BkUserSelector;
|
|
4173
4178
|
Object.defineProperties(exports2, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
package/vue3/vue3.css
CHANGED
|
@@ -71,11 +71,11 @@
|
|
|
71
71
|
overflow: hidden;
|
|
72
72
|
text-overflow: ellipsis;
|
|
73
73
|
font-size: 12px;
|
|
74
|
-
}.multiple-selector[data-v-
|
|
74
|
+
}.multiple-selector[data-v-9fc5bebf] {
|
|
75
75
|
position: relative;
|
|
76
76
|
width: 100%;
|
|
77
77
|
}
|
|
78
|
-
.multiple-selector .tags-container[data-v-
|
|
78
|
+
.multiple-selector .tags-container[data-v-9fc5bebf] {
|
|
79
79
|
min-height: 32px;
|
|
80
80
|
border: 1px solid #c4c6cc;
|
|
81
81
|
border-radius: 2px;
|
|
@@ -83,46 +83,46 @@
|
|
|
83
83
|
transition: all 0.2s ease;
|
|
84
84
|
background-color: #fff;
|
|
85
85
|
}
|
|
86
|
-
.multiple-selector .tags-container.focused[data-v-
|
|
86
|
+
.multiple-selector .tags-container.focused[data-v-9fc5bebf] {
|
|
87
87
|
border-color: #3a84ff;
|
|
88
88
|
box-shadow: 0 0 0 2px rgba(58, 132, 255, 0.1);
|
|
89
89
|
}
|
|
90
|
-
.multiple-selector .tags-container.collapsed[data-v-
|
|
90
|
+
.multiple-selector .tags-container.collapsed[data-v-9fc5bebf] {
|
|
91
91
|
display: flex;
|
|
92
92
|
flex-wrap: wrap;
|
|
93
93
|
align-items: center;
|
|
94
94
|
}
|
|
95
|
-
.multiple-selector .tag-list[data-v-
|
|
95
|
+
.multiple-selector .tag-list[data-v-9fc5bebf] {
|
|
96
96
|
display: flex;
|
|
97
97
|
flex-wrap: wrap;
|
|
98
98
|
align-items: center;
|
|
99
99
|
}
|
|
100
|
-
.multiple-selector .tag-wrapper[data-v-
|
|
100
|
+
.multiple-selector .tag-wrapper[data-v-9fc5bebf] {
|
|
101
101
|
display: inline-flex;
|
|
102
102
|
align-items: center;
|
|
103
103
|
max-width: 100%;
|
|
104
104
|
}
|
|
105
|
-
.multiple-selector .search-input[data-v-
|
|
105
|
+
.multiple-selector .search-input[data-v-9fc5bebf] {
|
|
106
106
|
outline: none;
|
|
107
107
|
border: none;
|
|
108
108
|
height: 28px;
|
|
109
109
|
min-width: 10px;
|
|
110
110
|
background: transparent;
|
|
111
111
|
}
|
|
112
|
-
.multiple-selector .search-input[data-v-
|
|
112
|
+
.multiple-selector .search-input[data-v-9fc5bebf]::placeholder {
|
|
113
113
|
color: #c4c6cc;
|
|
114
114
|
}
|
|
115
|
-
.multiple-selector .search-input.inline[data-v-
|
|
115
|
+
.multiple-selector .search-input.inline[data-v-9fc5bebf] {
|
|
116
116
|
min-width: 10px;
|
|
117
117
|
}
|
|
118
|
-
.multiple-selector .search-input.last[data-v-
|
|
118
|
+
.multiple-selector .search-input.last[data-v-9fc5bebf], .multiple-selector .search-input.collapsed[data-v-9fc5bebf] {
|
|
119
119
|
flex: 1;
|
|
120
120
|
min-width: 60px;
|
|
121
|
-
}.single-selector[data-v-
|
|
121
|
+
}.single-selector[data-v-1454c121] {
|
|
122
122
|
position: relative;
|
|
123
123
|
width: 100%;
|
|
124
124
|
}
|
|
125
|
-
.input-container[data-v-
|
|
125
|
+
.input-container[data-v-1454c121] {
|
|
126
126
|
position: relative;
|
|
127
127
|
display: flex;
|
|
128
128
|
align-items: center;
|
|
@@ -132,20 +132,20 @@
|
|
|
132
132
|
padding: 0 8px;
|
|
133
133
|
background-color: #fff;
|
|
134
134
|
}
|
|
135
|
-
.input-container[data-v-
|
|
135
|
+
.input-container[data-v-1454c121]:focus-within {
|
|
136
136
|
border-color: #3a84ff;
|
|
137
137
|
box-shadow: 0 0 0 2px rgba(58, 132, 255, 0.1);
|
|
138
138
|
}
|
|
139
|
-
.search-input[data-v-
|
|
139
|
+
.search-input[data-v-1454c121] {
|
|
140
140
|
flex: 1;
|
|
141
141
|
outline: none;
|
|
142
142
|
border: none;
|
|
143
143
|
height: 30px;
|
|
144
144
|
background: transparent;
|
|
145
145
|
}
|
|
146
|
-
.search-input[data-v-
|
|
146
|
+
.search-input[data-v-1454c121]::placeholder {
|
|
147
147
|
color: #c4c6cc;
|
|
148
|
-
}.bk-user-selector[data-v-
|
|
148
|
+
}.bk-user-selector[data-v-906da21c] {
|
|
149
149
|
width: 100%;
|
|
150
150
|
position: relative;
|
|
151
151
|
font-size: 12px;
|