@blueking/bk-user-selector 0.1.0 → 0.1.1-beta.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/README.md +2 -0
- package/package.json +1 -1
- package/typings/components/selection-popover.vue.d.ts +6 -0
- package/typings/components/user-render.d.ts +20 -1
- package/typings/components/user-selector.vue.d.ts +2 -0
- package/typings/components/user-tag.vue.d.ts +16 -0
- package/typings/types/index.d.ts +10 -0
- package/vue2/index.es.min.js +395 -83
- package/vue2/index.iife.min.js +400 -111
- package/vue2/index.umd.min.js +395 -83
- package/vue2/vue2.css +24 -24
- package/vue3/index.es.min.js +90 -24
- package/vue3/index.iife.min.js +395 -83
- package/vue3/index.umd.min.js +91 -25
- package/vue3/vue3.css +24 -24
package/vue2/vue2.css
CHANGED
|
@@ -810,71 +810,71 @@ optgroup {
|
|
|
810
810
|
color: #c4c6cc;
|
|
811
811
|
cursor: not-allowed;
|
|
812
812
|
background-color: #f0f1f5;
|
|
813
|
-
}.dropdown-content[data-v-
|
|
813
|
+
}.dropdown-content[data-v-d5a338f0] {
|
|
814
814
|
min-height: 40px;
|
|
815
815
|
max-height: 300px;
|
|
816
816
|
padding: 5px 0;
|
|
817
817
|
overflow-y: auto;
|
|
818
818
|
}
|
|
819
|
-
.dropdown-content .no-data[data-v-
|
|
819
|
+
.dropdown-content .no-data[data-v-d5a338f0] {
|
|
820
820
|
padding: 10px;
|
|
821
821
|
color: #979ba5;
|
|
822
822
|
text-align: center;
|
|
823
823
|
}
|
|
824
|
-
.dropdown-content .user-group .group-header[data-v-
|
|
824
|
+
.dropdown-content .user-group .group-header[data-v-d5a338f0] {
|
|
825
825
|
display: flex;
|
|
826
826
|
align-items: center;
|
|
827
827
|
padding: 8px 12px;
|
|
828
828
|
color: #979ba5;
|
|
829
829
|
}
|
|
830
|
-
.dropdown-content .user-group .group-header .group-count[data-v-
|
|
830
|
+
.dropdown-content .user-group .group-header .group-count[data-v-d5a338f0] {
|
|
831
831
|
margin-left: 4px;
|
|
832
832
|
}
|
|
833
|
-
.dropdown-content .user-option[data-v-
|
|
833
|
+
.dropdown-content .user-option[data-v-d5a338f0] {
|
|
834
834
|
display: flex;
|
|
835
835
|
align-items: center;
|
|
836
836
|
height: 32px;
|
|
837
837
|
padding: 8px 12px;
|
|
838
838
|
cursor: pointer;
|
|
839
839
|
}
|
|
840
|
-
.dropdown-content .user-option[data-v-
|
|
840
|
+
.dropdown-content .user-option[data-v-d5a338f0]:hover {
|
|
841
841
|
background-color: #f5f7fa;
|
|
842
|
-
}.user-tag[data-v-
|
|
842
|
+
}.user-tag[data-v-1f2e0737] {
|
|
843
843
|
margin-right: 4px;
|
|
844
844
|
margin-left: 0;
|
|
845
845
|
}
|
|
846
|
-
.user-tag.draggable[data-v-
|
|
846
|
+
.user-tag.draggable[data-v-1f2e0737] {
|
|
847
847
|
cursor: move;
|
|
848
848
|
}
|
|
849
|
-
.user-tag.active[data-v-
|
|
849
|
+
.user-tag.active[data-v-1f2e0737] {
|
|
850
850
|
background-color: #e1ecff;
|
|
851
851
|
border-color: #3a84ff;
|
|
852
852
|
}
|
|
853
|
-
.user-tag.is-custom[data-v-
|
|
853
|
+
.user-tag.is-custom[data-v-1f2e0737] {
|
|
854
854
|
color: #ea3636;
|
|
855
855
|
background-color: #feebea;
|
|
856
856
|
border-color: rgba(234, 53, 54, 0.3019607843);
|
|
857
857
|
}
|
|
858
|
-
.user-tag.is-custom[data-v-
|
|
858
|
+
.user-tag.is-custom[data-v-1f2e0737]:hover {
|
|
859
859
|
background-color: #fedddc;
|
|
860
860
|
}
|
|
861
|
-
.user-tag .tag-content .user-name[data-v-
|
|
861
|
+
.user-tag .tag-content .user-name[data-v-1f2e0737] {
|
|
862
862
|
overflow: hidden;
|
|
863
863
|
text-overflow: ellipsis;
|
|
864
864
|
font-size: 12px;
|
|
865
865
|
white-space: nowrap;
|
|
866
|
-
}.bk-user-selector[data-v-
|
|
866
|
+
}.bk-user-selector[data-v-9975c7e1] {
|
|
867
867
|
position: relative;
|
|
868
868
|
width: 100%;
|
|
869
869
|
height: 32px;
|
|
870
870
|
font-size: 12px;
|
|
871
871
|
}
|
|
872
|
-
.bk-user-selector.is-disabled[data-v-
|
|
872
|
+
.bk-user-selector.is-disabled[data-v-9975c7e1] {
|
|
873
873
|
pointer-events: none;
|
|
874
874
|
cursor: not-allowed;
|
|
875
875
|
background-color: #dcdee5;
|
|
876
876
|
}
|
|
877
|
-
.bk-user-selector .tags-container[data-v-
|
|
877
|
+
.bk-user-selector .tags-container[data-v-9975c7e1] {
|
|
878
878
|
position: relative;
|
|
879
879
|
min-height: 32px;
|
|
880
880
|
padding: 1px 10px 1px 8px;
|
|
@@ -883,42 +883,42 @@ optgroup {
|
|
|
883
883
|
border-radius: 2px;
|
|
884
884
|
transition: all 0.2s ease;
|
|
885
885
|
}
|
|
886
|
-
.bk-user-selector .tags-container.focused[data-v-
|
|
886
|
+
.bk-user-selector .tags-container.focused[data-v-9975c7e1] {
|
|
887
887
|
border-color: #3a84ff;
|
|
888
888
|
box-shadow: 0 0 0 2px rgba(58, 132, 255, 0.1);
|
|
889
889
|
}
|
|
890
|
-
.bk-user-selector .tags-container.tags-container-collapsed[data-v-
|
|
890
|
+
.bk-user-selector .tags-container.tags-container-collapsed[data-v-9975c7e1] {
|
|
891
891
|
display: flex;
|
|
892
892
|
flex-wrap: wrap;
|
|
893
893
|
align-items: center;
|
|
894
894
|
}
|
|
895
|
-
.bk-user-selector .tag-list[data-v-
|
|
895
|
+
.bk-user-selector .tag-list[data-v-9975c7e1] {
|
|
896
896
|
display: flex;
|
|
897
897
|
flex-wrap: wrap;
|
|
898
898
|
align-items: center;
|
|
899
899
|
}
|
|
900
|
-
.bk-user-selector .tag-wrapper[data-v-
|
|
900
|
+
.bk-user-selector .tag-wrapper[data-v-9975c7e1] {
|
|
901
901
|
display: inline-flex;
|
|
902
902
|
align-items: center;
|
|
903
903
|
max-width: 100%;
|
|
904
904
|
}
|
|
905
|
-
.bk-user-selector .search-input[data-v-
|
|
905
|
+
.bk-user-selector .search-input[data-v-9975c7e1] {
|
|
906
906
|
min-width: 20px;
|
|
907
907
|
height: 28px;
|
|
908
908
|
outline: none;
|
|
909
909
|
background: transparent;
|
|
910
910
|
border: none;
|
|
911
911
|
}
|
|
912
|
-
.bk-user-selector .search-input[data-v-
|
|
912
|
+
.bk-user-selector .search-input[data-v-9975c7e1]::placeholder {
|
|
913
913
|
color: #c4c6cc;
|
|
914
914
|
}
|
|
915
|
-
.bk-user-selector .search-input.input-inline[data-v-
|
|
915
|
+
.bk-user-selector .search-input.input-inline[data-v-9975c7e1] {
|
|
916
916
|
min-width: 20px;
|
|
917
917
|
}
|
|
918
|
-
.bk-user-selector .search-input.input-last[data-v-
|
|
918
|
+
.bk-user-selector .search-input.input-last[data-v-9975c7e1], .bk-user-selector .search-input.search-input-collapsed[data-v-9975c7e1] {
|
|
919
919
|
flex: 1;
|
|
920
920
|
}
|
|
921
|
-
.hidden-users[data-v-
|
|
921
|
+
.hidden-users[data-v-9975c7e1] {
|
|
922
922
|
padding: 6px 10px;
|
|
923
923
|
}.bk-user-selector-popover {
|
|
924
924
|
padding: 0 !important;
|
package/vue3/index.es.min.js
CHANGED
|
@@ -2908,7 +2908,7 @@ const searchUsers = async (params) => {
|
|
|
2908
2908
|
};
|
|
2909
2909
|
const lookupUsers = async (params) => {
|
|
2910
2910
|
const { apiBaseUrl, tenantId, exactSearchKey = "bk_username", usersList = [], enableMultiTenantMode = true } = params;
|
|
2911
|
-
const users = usersList.filter(Boolean).map((user) => user.trim());
|
|
2911
|
+
const users = usersList.filter(Boolean).map((user) => typeof user === "string" ? user.trim() : String(user).trim());
|
|
2912
2912
|
if (!enableMultiTenantMode) {
|
|
2913
2913
|
try {
|
|
2914
2914
|
const userList = await getUserList(apiBaseUrl, { userIds: users });
|
|
@@ -2946,12 +2946,14 @@ const formatUsers = (users, enableMultiTenantMode = true) => {
|
|
|
2946
2946
|
...user,
|
|
2947
2947
|
id: user.username,
|
|
2948
2948
|
name: `${user.display_name}(${user.username})`,
|
|
2949
|
+
type: user.data_source_type,
|
|
2949
2950
|
tenantId: user.owner_tenant_id
|
|
2950
2951
|
}));
|
|
2951
2952
|
}
|
|
2952
2953
|
return users.map((user) => ({
|
|
2953
2954
|
id: user.bk_username,
|
|
2954
2955
|
name: user.display_name,
|
|
2956
|
+
type: user.data_source_type,
|
|
2955
2957
|
tenantId: user.owner_tenant_id,
|
|
2956
2958
|
...user
|
|
2957
2959
|
}));
|
|
@@ -3124,7 +3126,8 @@ const languageMap = {
|
|
|
3124
3126
|
"zh-CN": zhCN
|
|
3125
3127
|
};
|
|
3126
3128
|
const getPath = (obj, path, variables) => {
|
|
3127
|
-
const
|
|
3129
|
+
const safePath = typeof path === "string" ? path : String(path ?? "");
|
|
3130
|
+
const pathStack = /^\w/.test(safePath) ? safePath.split(".") : [safePath];
|
|
3128
3131
|
const { length } = pathStack;
|
|
3129
3132
|
let target = obj;
|
|
3130
3133
|
let i = 0;
|
|
@@ -3134,9 +3137,11 @@ const getPath = (obj, path, variables) => {
|
|
|
3134
3137
|
}
|
|
3135
3138
|
if (variables) {
|
|
3136
3139
|
target = target[pathStack[i]];
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
+
if (typeof target === "string") {
|
|
3141
|
+
Object.keys(variables).forEach((key) => {
|
|
3142
|
+
target = target.replace(`{${key}}`, variables[key]);
|
|
3143
|
+
});
|
|
3144
|
+
}
|
|
3140
3145
|
} else {
|
|
3141
3146
|
target = target[pathStack[i]];
|
|
3142
3147
|
}
|
|
@@ -3368,10 +3373,12 @@ const useUserSearch = (apiBaseUrl, tenantId, enableMultiTenantMode = true) => {
|
|
|
3368
3373
|
const performSearch = async (keyword) => {
|
|
3369
3374
|
if (!(keyword == null ? void 0 : keyword.length)) {
|
|
3370
3375
|
searchResults.value = [];
|
|
3376
|
+
loading.value = false;
|
|
3371
3377
|
return;
|
|
3372
3378
|
}
|
|
3373
3379
|
if (enableMultiTenantMode && (!apiBaseUrl || !tenantId)) {
|
|
3374
3380
|
console.warn("执行用户搜索需要提供有效的API基础URL和租户ID");
|
|
3381
|
+
loading.value = false;
|
|
3375
3382
|
return;
|
|
3376
3383
|
}
|
|
3377
3384
|
loading.value = true;
|
|
@@ -3393,7 +3400,7 @@ const useUserSearch = (apiBaseUrl, tenantId, enableMultiTenantMode = true) => {
|
|
|
3393
3400
|
const debouncedSearch = debounce(performSearch, SEARCH_DEBOUNCE_DELAY);
|
|
3394
3401
|
const handleSearchInput = (value) => {
|
|
3395
3402
|
loading.value = true;
|
|
3396
|
-
searchQuery.value = value.trim();
|
|
3403
|
+
searchQuery.value = typeof value === "string" ? value.trim() : String(value ?? "").trim();
|
|
3397
3404
|
debouncedSearch(searchQuery.value);
|
|
3398
3405
|
};
|
|
3399
3406
|
const clearSearch = () => {
|
|
@@ -3494,6 +3501,9 @@ const _export_sfc = (sfc, props) => {
|
|
|
3494
3501
|
return target;
|
|
3495
3502
|
};
|
|
3496
3503
|
const MeTag = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-4f251ce1"]]);
|
|
3504
|
+
const UserGroupAvatar = "data:image/svg+xml,%3csvg%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20style='fill:%20%23A3C5FD;'%3e%3cpath%20fill-rule='evenodd'%20d='M405.7858816%20162.66256256C416.4461344%20160.6535248%20439.8986944%20159.44810208%20457.3815104%20160.25171712%20484.2453504%20161.05533248%20494.052784%20163.4661776%20516.226112%20174.7167888%20567.8217376%20200.43247136%20597.670448%20242.22045568%20606.6250624%20301.28616416%20617.711728%20374.415136%20593.4063488%20443.5260352%20535.8409792%20500.180896%20509.8299584%20525.8965792%20505.565856%20537.5489984%20514.0940608%20557.237568%20521.3430336%20572.9080608%20546.0748224%20586.5695168%20629.2248%20620.3213504%20691.054272%20645.2334208%20760.985536%20687.4232096%20767.8080992%20703.8973216%20774.6306624%20720.3714304%20784.8645056%20752.114224%20791.6870688%20777.4280992%20799.7888608%20807.1618592%20793.3927072%20818.8142784%20761.8383584%20832.4757344%20720.4765728%20850.155264%20669.3073536%20857.3878016%20546.9276416%20862.2094912%20392.9935776%20868.2366048%20227.12002944%20858.5932224%20162.30568672%20840.1100768%20134.5890272%20832.4757344%20108.15159776%20815.1980096%20100.47621504%20799.5275136%2093.6536528%20786.2678656%2094.08006304%20784.2588288%20105.59313696%20746.4889184%20116.67980096%20709.924432%20119.23826176%20705.5045504%20141.41158944%20685.4141728%20143.84821888%20683.2001312%20146.05397248%20681.2036448%20148.2232096%20679.3252416L152.13038144%20676.0501632C159.5946992%20670.0236288%20167.98497088%20664.6722176%20184.94031712%20656.0863296L191.29263904%20652.915344C215.97973152%20640.7492736%20256.51622304%20622.3959904%20329.458464%20589.3821696%20359.7335872%20575.3189056%20371.2466592%20563.6664896%20375.084352%20542.772496%20377.2164032%20530.316464%20374.6579424%20526.7001952%20345.2356416%20496.9664352%20295.34565344%20446.338688%20274.02514592%20396.9163584%20273.59873568%20331.0199232%20273.59873568%20291.24097568%20282.12693888%20265.52529312%20307.71154784%20228.15719168%20332.8697472%20191.19089792%20365.703328%20169.49329056%20405.7858816%20162.66256256ZM668.7713728%20226.60405184C756.683056%20211.50282816%20820.4190272%20263.09867616%20827.0124032%20354.9644544%20831.8475456%20416.6277856%20815.1443264%20461.931456%20770.3093664%20510.1714752%20752.287472%20529.4674848%20747.891888%20536.5986176%20748.3314464%20548.344016%20748.7710048%20555.8946272%20751.4083552%20565.123152%20754.485264%20568.8984576%20757.5621728%20572.2542848%20788.331264%20588.1944672%20823.0563776%20604.1346464%20944.3745024%20659.92528%20966.791984%20682.996592%20958.4403712%20744.6599232%20954.923904%20771.9260224%20956.6821376%20771.0870656%20890.308816%20787.0272448%20867.4517792%20792.8999456%20845.0343008%20798.3531648%20841.0782752%20799.6116%20835.3640128%20801.2895136%20833.1662208%20797.9336864%20830.5288704%20781.5740256%20824.3750528%20739.6261824%20812.0674176%20710.6821696%20790.0894976%20687.6108576%20752.287472%20647.3409248%20703.9360448%20619.6553504%20624.3759712%20593.6476864%20597.5629088%20584.4191616%20560.64%20550.8608864%20560.64%20534.920704%20560.64%20527.7895712%20569.8707264%20514.7857408%20589.6508544%20494.6507744%20620.859504%20461.931456%20639.7605152%20429.631616%20648.5516832%20394.8149056%20655.5846208%20366.7098496%20652.0681504%20283.23364096%20642.837424%20254.7091072%20635.3649312%20231.63779328%20634.4858144%20232.47675008%20668.7713728%20226.60405184Z'%3e%3c/path%3e%3c/svg%3e";
|
|
3505
|
+
const UserAvatar = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='32px'%20height='32px'%20viewBox='0%200%2032%2032'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3eIcon/用户%3c/title%3e%3cg%20id='Icon/用户'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cg%20id='user-(1)'%20transform='translate(3,%202)'%20fill='%23A3C5FD'%20fill-rule='nonzero'%3e%3cpath%20d='M13.0077612,27.9989067%20C10.3002732,27.9989067%207.59285518,28.0018792%204.88515705,27.997455%20C3.95018807,27.9959342%203.05044678,27.8282323%202.22816433,27.3628696%20C0.998627601,26.6672451%200.29953695,25.6114692%200.0864200465,24.2387462%20C-0.0656962495,23.259079%200.0147040645,22.4675755%200.0874005263,21.4879775%20C0.187970957,20.13461%200.423078914,19.3321844%200.863249688,18.0430358%20C1.22365046,16.9873982%201.73014453,16.0067633%202.49702917,15.175719%20C3.42254341,14.1726178%204.6014447,13.7297906%205.9255989,13.6440041%20C6.33292322,13.6073668%206.66741099,13.712025%206.9979768,13.9263185%20C7.58886318,14.3094892%208.17393665,14.7060014%208.79220674,15.0421658%20C10.1097776,15.758321%2011.5447274,16.1099698%2013.0616182,16.0930337%20C14.6806203,16.0750607%2016.2142496,15.63963%2017.592821,14.8169502%20C18.0555431,14.5407189%2018.5150436,14.256538%2018.9569652,13.9491996%20C19.3610679,13.6681294%2019.7808585,13.5749462%2020.274326,13.6337733%20C21.462472,13.7340074%2022.3872158,14.1103345%2023.2340106,14.8851094%20C23.902636,15.496952%2024.3685096,16.2520257%2024.7518119,17.0611566%20C25.272453,18.1598604%2025.5462904,18.7976948%2025.7441396,19.9861253%20C25.9499728,21.2233595%2026.0256808,22.2792045%2025.9924842,23.5308171%20C25.9627193,24.6543374%2025.6405577,25.6840525%2024.8535729,26.5307194%20C24.1686994,27.2671979%2023.3129402,27.7090574%2022.3211027,27.8808379%20C21.9232331,27.9495501%2021.5154185,27.9922014%2021.1120162,27.9935148%20C18.4104811,28.0036073%2015.7090862,27.9989067%2013.0077612,27.9989067%20L13.0077612,27.9989067%20Z%20M5.91775495,6.98479749%20C5.84814002,3.25685016%209.08684454,-0.00255470186%2013.0162355,1.5025268e-06%20C16.9117994,0.00256071584%2020.1304739,3.23452217%2020.1095656,7.04113598%20C20.0884528,10.8082092%2016.8998935,14.015354%2013.0058002,14.0149393%20C9.10134181,14.0145245%205.83322254,10.7695672%205.91775495,6.98479749%20Z'%20id='形状'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/svg%3e";
|
|
3506
|
+
const VirtualAvatar = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='32px'%20height='32px'%20viewBox='0%200%2032%2032'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3ctitle%3eIcon/虚拟icon%3c/title%3e%3cg%20id='Icon/虚拟icon'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cpath%20d='M27.4705882,3%20C28.315259,3%2029,3.68474098%2029,4.52941178%20L29,22.4623054%20C29,23.3069762%2028.315259,23.9917172%2027.4705882,23.9917172%20L20.5882353,23.9917172%20L20.5882353,27.0244081%20L24.0294118,27.0244081%20C24.2405794,27.0244081%2024.4117647,27.1955933%2024.4117647,27.406761%20L24.4117647,28.617647%20C24.4117647,28.8288148%2024.2405795,29%2024.0294118,29%20L7.97058824,29%20C7.75942054,29%207.58823529,28.8288148%207.58823529,28.617647%20L7.58823529,27.406761%20C7.58823531,27.1955933%207.75942055,27.0244081%207.97058824,27.0244081%20L11.4117647,27.0244081%20L11.4117647,23.9917172%20L4.52941178,23.9917172%20C3.68474098,23.9917172%203,23.3069762%203,22.4623054%20L3,4.52941178%20C3,3.68474098%203.68474098,3%204.52941178,3%20L27.4705882,3%20Z%20M19,24%20L13,24%20L13,27%20L19,27%20L19,24%20Z%20M23.4117647,7%20L8.58823529,7%20C8.03595054,7%207.58823529,7.44771525%207.58823529,8%20L7.58823529,19%20C7.58823529,19.5522847%208.03595054,20%208.58823529,20%20L23.4117647,20%20C23.9640495,20%2024.4117647,19.5522847%2024.4117647,19%20L24.4117647,8%20C24.4117647,7.44771525%2023.9640495,7%2023.4117647,7%20Z%20M12,10%20C12.5522847,10%2013,10.4477153%2013,11%20L13,13%20C13,13.5522847%2012.5522847,14%2012,14%20C11.4477153,14%2011,13.5522847%2011,13%20L11,11%20C11,10.4477153%2011.4477153,10%2012,10%20Z%20M20,10%20C20.5522847,10%2021,10.4477153%2021,11%20L21,13%20C21,13.5522847%2020.5522847,14%2020,14%20C19.4477153,14%2019,13.5522847%2019,13%20L19,11%20C19,10.4477153%2019.4477153,10%2020,10%20Z%20M26,5%20C25.4477153,5%2025,5.44771525%2025,6%20C25,6.55228475%2025.4477153,7%2026,7%20C26.5522847,7%2027,6.55228475%2027,6%20C27,5.44771525%2026.5522847,5%2026,5%20Z'%20id='蒙版'%20fill='%23A3C5FD'%20fill-rule='nonzero'%3e%3c/path%3e%3c/g%3e%3c/svg%3e";
|
|
3497
3507
|
const UserRender = defineComponent({
|
|
3498
3508
|
name: "UserRender",
|
|
3499
3509
|
props: {
|
|
@@ -3512,23 +3522,63 @@ const UserRender = defineComponent({
|
|
|
3512
3522
|
render: {
|
|
3513
3523
|
type: Function,
|
|
3514
3524
|
required: false
|
|
3525
|
+
},
|
|
3526
|
+
hasAvatar: {
|
|
3527
|
+
type: Boolean,
|
|
3528
|
+
default: false
|
|
3529
|
+
},
|
|
3530
|
+
avatarBaseUrl: {
|
|
3531
|
+
type: String,
|
|
3532
|
+
default: ""
|
|
3515
3533
|
}
|
|
3516
3534
|
},
|
|
3517
3535
|
setup(props) {
|
|
3536
|
+
const getAvatarUrl = (user) => {
|
|
3537
|
+
if (user.type === "virtual") {
|
|
3538
|
+
return VirtualAvatar;
|
|
3539
|
+
}
|
|
3540
|
+
if (user.type === "userGroup") {
|
|
3541
|
+
return UserGroupAvatar;
|
|
3542
|
+
}
|
|
3543
|
+
if (!props.avatarBaseUrl) {
|
|
3544
|
+
return UserAvatar;
|
|
3545
|
+
}
|
|
3546
|
+
const loginName = user.login_name || user.bk_username || user.id;
|
|
3547
|
+
return `${props.avatarBaseUrl}${loginName}.png?default_when_absent=true`;
|
|
3548
|
+
};
|
|
3518
3549
|
const defaultRender = (h2, props2) => {
|
|
3519
|
-
return h2(
|
|
3520
|
-
|
|
3521
|
-
|
|
3522
|
-
|
|
3523
|
-
|
|
3550
|
+
return h2(
|
|
3551
|
+
"div",
|
|
3552
|
+
{
|
|
3553
|
+
style: {
|
|
3554
|
+
display: "flex",
|
|
3555
|
+
alignItems: "center"
|
|
3556
|
+
}
|
|
3557
|
+
},
|
|
3558
|
+
[
|
|
3559
|
+
props2.hasAvatar ? h2("img", {
|
|
3560
|
+
src: getAvatarUrl(props2.user),
|
|
3524
3561
|
style: {
|
|
3525
|
-
|
|
3526
|
-
|
|
3562
|
+
width: "20px",
|
|
3563
|
+
height: "20px",
|
|
3564
|
+
borderRadius: "50%",
|
|
3565
|
+
marginRight: "6px",
|
|
3566
|
+
flexShrink: 0
|
|
3527
3567
|
}
|
|
3528
|
-
},
|
|
3529
|
-
|
|
3530
|
-
|
|
3531
|
-
|
|
3568
|
+
}) : null,
|
|
3569
|
+
h2("span", props2.user.name),
|
|
3570
|
+
props2.user.tenantId !== props2.tenantId && props2.user.tenantId ? h2(
|
|
3571
|
+
"span",
|
|
3572
|
+
{
|
|
3573
|
+
style: {
|
|
3574
|
+
color: "#f59500",
|
|
3575
|
+
marginLeft: "4px"
|
|
3576
|
+
}
|
|
3577
|
+
},
|
|
3578
|
+
`@${props2.tenants[props2.user.tenantId] || props2.user.tenantId}`
|
|
3579
|
+
) : null
|
|
3580
|
+
]
|
|
3581
|
+
);
|
|
3532
3582
|
};
|
|
3533
3583
|
return () => {
|
|
3534
3584
|
try {
|
|
@@ -3553,8 +3603,10 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
3553
3603
|
},
|
|
3554
3604
|
__name: "selection-popover",
|
|
3555
3605
|
props: {
|
|
3606
|
+
avatarBaseUrl: { default: "" },
|
|
3556
3607
|
containerWidth: { default: "auto" },
|
|
3557
3608
|
emptyText: { default: "" },
|
|
3609
|
+
hasAvatar: { type: Boolean, default: false },
|
|
3558
3610
|
isShow: { type: Boolean, default: false },
|
|
3559
3611
|
loading: { type: Boolean, default: false },
|
|
3560
3612
|
options: { default: () => [] },
|
|
@@ -3680,11 +3732,13 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
3680
3732
|
}, ["prevent"]))
|
|
3681
3733
|
}, [
|
|
3682
3734
|
createVNode(unref(UserRender), {
|
|
3735
|
+
"avatar-base-url": _ctx.avatarBaseUrl,
|
|
3736
|
+
"has-avatar": _ctx.hasAvatar,
|
|
3683
3737
|
render: _ctx.renderListItem,
|
|
3684
3738
|
"tenant-id": _ctx.tenantId,
|
|
3685
3739
|
tenants: _ctx.tenants,
|
|
3686
3740
|
user
|
|
3687
|
-
}, null, 8, ["render", "tenant-id", "tenants", "user"])
|
|
3741
|
+
}, null, 8, ["avatar-base-url", "has-avatar", "render", "tenant-id", "tenants", "user"])
|
|
3688
3742
|
], 40, _hoisted_4);
|
|
3689
3743
|
}),
|
|
3690
3744
|
128
|
|
@@ -3724,7 +3778,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
3724
3778
|
};
|
|
3725
3779
|
}
|
|
3726
3780
|
});
|
|
3727
|
-
const SelectionPopover = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-
|
|
3781
|
+
const SelectionPopover = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-d5a338f0"]]);
|
|
3728
3782
|
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
3729
3783
|
...{
|
|
3730
3784
|
name: "UserTag"
|
|
@@ -3732,8 +3786,10 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3732
3786
|
__name: "user-tag",
|
|
3733
3787
|
props: {
|
|
3734
3788
|
active: { type: Boolean },
|
|
3789
|
+
avatarBaseUrl: {},
|
|
3735
3790
|
currentTenantId: {},
|
|
3736
3791
|
draggable: { type: Boolean },
|
|
3792
|
+
hasAvatar: { type: Boolean },
|
|
3737
3793
|
renderTag: { type: Function },
|
|
3738
3794
|
showTenant: { type: Boolean },
|
|
3739
3795
|
tenants: {},
|
|
@@ -3758,11 +3814,13 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3758
3814
|
}, {
|
|
3759
3815
|
default: withCtx(() => [
|
|
3760
3816
|
createVNode(unref(UserRender), {
|
|
3817
|
+
"avatar-base-url": _ctx.avatarBaseUrl,
|
|
3818
|
+
"has-avatar": _ctx.hasAvatar,
|
|
3761
3819
|
render: _ctx.renderTag,
|
|
3762
3820
|
"tenant-id": _ctx.currentTenantId,
|
|
3763
3821
|
tenants: _ctx.tenants,
|
|
3764
3822
|
user: _ctx.user
|
|
3765
|
-
}, null, 8, ["render", "tenant-id", "tenants", "user"])
|
|
3823
|
+
}, null, 8, ["avatar-base-url", "has-avatar", "render", "tenant-id", "tenants", "user"])
|
|
3766
3824
|
]),
|
|
3767
3825
|
_: 1
|
|
3768
3826
|
/* STABLE */
|
|
@@ -3770,7 +3828,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
3770
3828
|
};
|
|
3771
3829
|
}
|
|
3772
3830
|
});
|
|
3773
|
-
const UserTag = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-
|
|
3831
|
+
const UserTag = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-1f2e0737"]]);
|
|
3774
3832
|
const _hoisted_1 = ["placeholder"];
|
|
3775
3833
|
const _hoisted_2 = { class: "hidden-users" };
|
|
3776
3834
|
const _hoisted_3 = ["placeholder"];
|
|
@@ -3786,6 +3844,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
3786
3844
|
multiple: { type: Boolean, default: false },
|
|
3787
3845
|
allowCreate: { type: Boolean, default: false },
|
|
3788
3846
|
apiBaseUrl: { default: "" },
|
|
3847
|
+
avatarBaseUrl: { default: "" },
|
|
3789
3848
|
currentUserId: { default: "" },
|
|
3790
3849
|
disabled: { type: Boolean, default: false },
|
|
3791
3850
|
emptyText: { default: "" },
|
|
@@ -3793,6 +3852,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
3793
3852
|
exactSearchKey: { default: DEFAULT_EXACT_SEARCH_KEY },
|
|
3794
3853
|
excludeUserIds: { default: () => [] },
|
|
3795
3854
|
freePaste: { type: Boolean, default: false },
|
|
3855
|
+
hasAvatar: { type: Boolean, default: false },
|
|
3796
3856
|
placeholder: { default: "" },
|
|
3797
3857
|
renderListItem: {},
|
|
3798
3858
|
renderTag: {},
|
|
@@ -3855,7 +3915,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
3855
3915
|
() => isMaxCountReached.value || !!props.currentUserId && selectedUsers.value.some((user) => user[props.exactSearchKey] === props.currentUserId)
|
|
3856
3916
|
);
|
|
3857
3917
|
const userTagCommonProps = computed(() => ({
|
|
3918
|
+
avatarBaseUrl: props.avatarBaseUrl,
|
|
3858
3919
|
currentTenantId: props.tenantId,
|
|
3920
|
+
hasAvatar: props.hasAvatar,
|
|
3859
3921
|
renderTag: props.renderTag,
|
|
3860
3922
|
tenants
|
|
3861
3923
|
}));
|
|
@@ -4160,8 +4222,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4160
4222
|
[
|
|
4161
4223
|
createCommentVNode(" 下拉选项列表 "),
|
|
4162
4224
|
createVNode(SelectionPopover, {
|
|
4225
|
+
"avatar-base-url": _ctx.avatarBaseUrl,
|
|
4163
4226
|
"container-width": containerRef.value ? containerRef.value.offsetWidth : "auto",
|
|
4164
4227
|
"empty-text": computedEmptyText.value,
|
|
4228
|
+
"has-avatar": _ctx.hasAvatar,
|
|
4165
4229
|
"is-show": showDropdown.value,
|
|
4166
4230
|
loading: unref(searchLoading),
|
|
4167
4231
|
options: displayOptions.value,
|
|
@@ -4307,10 +4371,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4307
4371
|
renderList(selectedUsers.value.slice(visibleUsers.value.length), (user) => {
|
|
4308
4372
|
return openBlock(), createBlock(unref(UserRender), {
|
|
4309
4373
|
key: user.id,
|
|
4374
|
+
"avatar-base-url": _ctx.avatarBaseUrl,
|
|
4375
|
+
"has-avatar": _ctx.hasAvatar,
|
|
4310
4376
|
"tenant-id": _ctx.tenantId,
|
|
4311
4377
|
tenants: unref(tenants),
|
|
4312
4378
|
user
|
|
4313
|
-
}, null, 8, ["tenant-id", "tenants", "user"]);
|
|
4379
|
+
}, null, 8, ["avatar-base-url", "has-avatar", "tenant-id", "tenants", "user"]);
|
|
4314
4380
|
}),
|
|
4315
4381
|
128
|
|
4316
4382
|
/* KEYED_FRAGMENT */
|
|
@@ -4357,7 +4423,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4357
4423
|
]),
|
|
4358
4424
|
_: 1
|
|
4359
4425
|
/* STABLE */
|
|
4360
|
-
}, 8, ["container-width", "empty-text", "is-show", "loading", "options", "render-list-item", "search-query", "tenant-id", "tenants", "user-group", "user-group-name"])
|
|
4426
|
+
}, 8, ["avatar-base-url", "container-width", "empty-text", "has-avatar", "is-show", "loading", "options", "render-list-item", "search-query", "tenant-id", "tenants", "user-group", "user-group-name"])
|
|
4361
4427
|
],
|
|
4362
4428
|
2
|
|
4363
4429
|
/* CLASS */
|
|
@@ -4365,7 +4431,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
4365
4431
|
};
|
|
4366
4432
|
}
|
|
4367
4433
|
});
|
|
4368
|
-
const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4434
|
+
const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9975c7e1"]]);
|
|
4369
4435
|
export {
|
|
4370
4436
|
BkUserSelector,
|
|
4371
4437
|
BkUserSelector as default
|