@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/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-024fc663] {
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-024fc663] {
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-024fc663] {
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-024fc663] {
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-024fc663] {
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-024fc663]:hover {
840
+ .dropdown-content .user-option[data-v-d5a338f0]:hover {
841
841
  background-color: #f5f7fa;
842
- }.user-tag[data-v-48ac8fc1] {
842
+ }.user-tag[data-v-1f2e0737] {
843
843
  margin-right: 4px;
844
844
  margin-left: 0;
845
845
  }
846
- .user-tag.draggable[data-v-48ac8fc1] {
846
+ .user-tag.draggable[data-v-1f2e0737] {
847
847
  cursor: move;
848
848
  }
849
- .user-tag.active[data-v-48ac8fc1] {
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-48ac8fc1] {
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-48ac8fc1]:hover {
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-48ac8fc1] {
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-65e61c1c] {
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-65e61c1c] {
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-65e61c1c] {
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-65e61c1c] {
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-65e61c1c] {
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-65e61c1c] {
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-65e61c1c] {
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-65e61c1c] {
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-65e61c1c]::placeholder {
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-65e61c1c] {
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-65e61c1c], .bk-user-selector .search-input.search-input-collapsed[data-v-65e61c1c] {
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-65e61c1c] {
921
+ .hidden-users[data-v-9975c7e1] {
922
922
  padding: 6px 10px;
923
923
  }.bk-user-selector-popover {
924
924
  padding: 0 !important;
@@ -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 pathStack = /^\w/.test(path) ? path.split(".") : [path];
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
- Object.keys(variables).forEach((key) => {
3138
- target = target.replace(`{${key}}`, variables[key]);
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("div", [
3520
- h2("span", props2.user.name),
3521
- props2.user.tenantId !== props2.tenantId && props2.user.tenantId ? h2(
3522
- "span",
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
- color: "#f59500",
3526
- marginLeft: "4px"
3562
+ width: "20px",
3563
+ height: "20px",
3564
+ borderRadius: "50%",
3565
+ marginRight: "6px",
3566
+ flexShrink: 0
3527
3567
  }
3528
- },
3529
- `@${props2.tenants[props2.user.tenantId] || props2.user.tenantId}`
3530
- ) : null
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-024fc663"]]);
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-48ac8fc1"]]);
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-65e61c1c"]]);
4434
+ const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9975c7e1"]]);
4369
4435
  export {
4370
4436
  BkUserSelector,
4371
4437
  BkUserSelector as default