@blueking/bk-user-selector 0.1.0 → 0.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/README.md CHANGED
@@ -261,13 +261,15 @@ export default {
261
261
 
262
262
  ### Props 属性
263
263
 
264
- | 参数 | 说明 | 类型 | 默认值 | 必填 |
265
- | --------------------- | --------------------------------- | ------------------------------------------------ | ---------------------- | ---- |
266
- | modelValue / v-model | 绑定值,单选为字符串,多选为数组 | `string` / `string[]` | `''` / `[]` | 是 |
267
- | apiBaseUrl | API 基础 URL | `string` | `''` | 是 |
268
- | tenantId | 租户 ID | `string` | `''` | 是 |
269
- | label | 文本标签 | `string` | `'人员选择'` | 否 |
270
- | placeholder | 占位文本 | `string` | `'请输入人员名称搜索'` | 否 |
264
+ | 参数 | 说明 | 类型 | 默认值 | 必填 |
265
+ | --------------------- | --------------------------------- | ------------------------------------------------ | ----------------------------------------- | ---- |
266
+ | modelValue / v-model | 绑定值,单选为字符串,多选为数组 | `string` / `string[]` | `''` / `[]` | 是 |
267
+ | apiBaseUrl | API 基础 URL | `string` | `''` | 是 |
268
+ | tenantId | 租户 ID | `string` | `''` | 是 |
269
+ | hasAvatar | 是否显示头像 | `boolean` | `false` | 否 |
270
+ | avatarBaseUrl | 头像基础 URL | `string` | `` | 否 |
271
+ | label | 文本标签 | `string` | `'人员选择'` | 否 |
272
+ | placeholder | 占位文本 | `string` | `'请输入人员名称搜索'` | 否 |
271
273
  | multiple | 是否多选 | `boolean` | `false` | 否 |
272
274
  | draggable | 是否可拖拽排序(仅多选模式有效) | `boolean` | `false` | 否 |
273
275
  | exactSearchKey | 精确查找 key | `'bk_username'` / `'login_name'` / `'full_name'` | `'bk_username'` | 否 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blueking/bk-user-selector",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "蓝鲸用户选择器",
5
5
  "license": "MIT",
6
6
  "author": "Tencent BlueKing",
@@ -3,10 +3,14 @@ import { FormattedUser, RenderFunction, TenantMap, UserGroupConfig } from '../ty
3
3
  * 组件属性
4
4
  */
5
5
  interface SelectionPopoverProps {
6
+ /** 头像基础URL */
7
+ avatarBaseUrl?: string;
6
8
  /** 容器宽度 */
7
9
  containerWidth?: number | string;
8
10
  /** 无匹配人员时的提示文本 */
9
11
  emptyText?: string;
12
+ /** 是否显示头像 */
13
+ hasAvatar?: boolean;
10
14
  /** 是否显示下拉菜单 */
11
15
  isShow?: boolean;
12
16
  /** 是否加载中 */
@@ -51,6 +55,8 @@ declare const __VLS_component: import("vue").DefineComponent<SelectionPopoverPro
51
55
  tenantId: string;
52
56
  searchQuery: string;
53
57
  tenants: TenantMap;
58
+ hasAvatar: boolean;
59
+ avatarBaseUrl: string;
54
60
  containerWidth: number | string;
55
61
  emptyText: string;
56
62
  isShow: boolean;
@@ -16,6 +16,14 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
16
16
  type: FunctionConstructor;
17
17
  required: false;
18
18
  };
19
+ hasAvatar: {
20
+ type: BooleanConstructor;
21
+ default: boolean;
22
+ };
23
+ avatarBaseUrl: {
24
+ type: StringConstructor;
25
+ default: string;
26
+ };
19
27
  }>, () => any, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
20
28
  user: {
21
29
  type: () => FormattedUser;
@@ -33,5 +41,16 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
33
41
  type: FunctionConstructor;
34
42
  required: false;
35
43
  };
36
- }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
44
+ hasAvatar: {
45
+ type: BooleanConstructor;
46
+ default: boolean;
47
+ };
48
+ avatarBaseUrl: {
49
+ type: StringConstructor;
50
+ default: string;
51
+ };
52
+ }>> & Readonly<{}>, {
53
+ hasAvatar: boolean;
54
+ avatarBaseUrl: string;
55
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
37
56
  export default _default;
@@ -25,6 +25,8 @@ declare const _default: import("vue").DefineComponent<UserSelectorProps, {}, {},
25
25
  maxCount: number;
26
26
  excludeUserIds: string[];
27
27
  disabled: boolean;
28
+ hasAvatar: boolean;
29
+ avatarBaseUrl: string;
28
30
  emptyText: string;
29
31
  userGroupName: string;
30
32
  draggable: boolean;
@@ -5,6 +5,10 @@ declare const _default: import("vue").DefineComponent<{
5
5
  * 是否激活状态
6
6
  */
7
7
  active?: boolean;
8
+ /**
9
+ * 头像基础URL
10
+ */
11
+ avatarBaseUrl?: string;
8
12
  /**
9
13
  * 当前租户ID
10
14
  */
@@ -13,6 +17,10 @@ declare const _default: import("vue").DefineComponent<{
13
17
  * 是否可拖拽
14
18
  */
15
19
  draggable?: boolean;
20
+ /**
21
+ * 是否显示头像
22
+ */
23
+ hasAvatar?: boolean;
16
24
  /**
17
25
  * 渲染标签
18
26
  */
@@ -37,6 +45,10 @@ declare const _default: import("vue").DefineComponent<{
37
45
  * 是否激活状态
38
46
  */
39
47
  active?: boolean;
48
+ /**
49
+ * 头像基础URL
50
+ */
51
+ avatarBaseUrl?: string;
40
52
  /**
41
53
  * 当前租户ID
42
54
  */
@@ -45,6 +57,10 @@ declare const _default: import("vue").DefineComponent<{
45
57
  * 是否可拖拽
46
58
  */
47
59
  draggable?: boolean;
60
+ /**
61
+ * 是否显示头像
62
+ */
63
+ hasAvatar?: boolean;
48
64
  /**
49
65
  * 渲染标签
50
66
  */
@@ -13,6 +13,16 @@ export interface BaseSelectorProps {
13
13
  * 接口基础URL
14
14
  */
15
15
  apiBaseUrl: string;
16
+ /**
17
+ * 头像基础URL
18
+ * @default ''
19
+ */
20
+ avatarBaseUrl?: string;
21
+ /**
22
+ * 是否显示头像
23
+ * @default false
24
+ */
25
+ hasAvatar?: boolean;
16
26
  /**
17
27
  * 本人ID
18
28
  */
@@ -12247,12 +12247,14 @@ const formatUsers = (users, enableMultiTenantMode = true) => {
12247
12247
  ...user,
12248
12248
  id: user.username,
12249
12249
  name: `${user.display_name}(${user.username})`,
12250
+ type: user.data_source_type,
12250
12251
  tenantId: user.owner_tenant_id
12251
12252
  }));
12252
12253
  }
12253
12254
  return users.map((user) => ({
12254
12255
  id: user.bk_username,
12255
12256
  name: user.display_name,
12257
+ type: user.data_source_type,
12256
12258
  tenantId: user.owner_tenant_id,
12257
12259
  ...user
12258
12260
  }));
@@ -12669,10 +12671,12 @@ const useUserSearch = (apiBaseUrl, tenantId, enableMultiTenantMode = true) => {
12669
12671
  const performSearch = async (keyword) => {
12670
12672
  if (!(keyword == null ? void 0 : keyword.length)) {
12671
12673
  searchResults.value = [];
12674
+ loading2.value = false;
12672
12675
  return;
12673
12676
  }
12674
12677
  if (enableMultiTenantMode && (!apiBaseUrl || !tenantId)) {
12675
12678
  console.warn("执行用户搜索需要提供有效的API基础URL和租户ID");
12679
+ loading2.value = false;
12676
12680
  return;
12677
12681
  }
12678
12682
  loading2.value = true;
@@ -12795,6 +12799,9 @@ const _export_sfc = (sfc, props) => {
12795
12799
  return target;
12796
12800
  };
12797
12801
  const MeTag = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-4f251ce1"]]);
12802
+ 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";
12803
+ 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";
12804
+ 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";
12798
12805
  const UserRender = defineComponent({
12799
12806
  name: "UserRender",
12800
12807
  props: {
@@ -12813,23 +12820,63 @@ const UserRender = defineComponent({
12813
12820
  render: {
12814
12821
  type: Function,
12815
12822
  required: false
12823
+ },
12824
+ hasAvatar: {
12825
+ type: Boolean,
12826
+ default: false
12827
+ },
12828
+ avatarBaseUrl: {
12829
+ type: String,
12830
+ default: ""
12816
12831
  }
12817
12832
  },
12818
12833
  setup(props) {
12834
+ const getAvatarUrl = (user) => {
12835
+ if (user.type === "virtual") {
12836
+ return VirtualAvatar;
12837
+ }
12838
+ if (user.type === "userGroup") {
12839
+ return UserGroupAvatar;
12840
+ }
12841
+ if (!props.avatarBaseUrl) {
12842
+ return UserAvatar;
12843
+ }
12844
+ const loginName = user.login_name || user.bk_username || user.id;
12845
+ return `${props.avatarBaseUrl}${loginName}.png?default_when_absent=true`;
12846
+ };
12819
12847
  const defaultRender = (h2, props2) => {
12820
- return h2("div", [
12821
- h2("span", props2.user.name),
12822
- props2.user.tenantId !== props2.tenantId && props2.user.tenantId ? h2(
12823
- "span",
12824
- {
12848
+ return h2(
12849
+ "div",
12850
+ {
12851
+ style: {
12852
+ display: "flex",
12853
+ alignItems: "center"
12854
+ }
12855
+ },
12856
+ [
12857
+ props2.hasAvatar ? h2("img", {
12858
+ src: getAvatarUrl(props2.user),
12825
12859
  style: {
12826
- color: "#f59500",
12827
- marginLeft: "4px"
12860
+ width: "20px",
12861
+ height: "20px",
12862
+ borderRadius: "50%",
12863
+ marginRight: "6px",
12864
+ flexShrink: 0
12828
12865
  }
12829
- },
12830
- `@${props2.tenants[props2.user.tenantId] || props2.user.tenantId}`
12831
- ) : null
12832
- ]);
12866
+ }) : null,
12867
+ h2("span", props2.user.name),
12868
+ props2.user.tenantId !== props2.tenantId && props2.user.tenantId ? h2(
12869
+ "span",
12870
+ {
12871
+ style: {
12872
+ color: "#f59500",
12873
+ marginLeft: "4px"
12874
+ }
12875
+ },
12876
+ `@${props2.tenants[props2.user.tenantId] || props2.user.tenantId}`
12877
+ ) : null
12878
+ ]
12879
+ );
12833
12880
  };
12834
12881
  return () => {
12835
12882
  try {
@@ -12854,8 +12901,10 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
12854
12901
  },
12855
12902
  __name: "selection-popover",
12856
12903
  props: {
12904
+ avatarBaseUrl: { default: "" },
12857
12905
  containerWidth: { default: "auto" },
12858
12906
  emptyText: { default: "" },
12907
+ hasAvatar: { type: Boolean, default: false },
12859
12908
  isShow: { type: Boolean, default: false },
12860
12909
  loading: { type: Boolean, default: false },
12861
12910
  options: { default: () => [] },
@@ -12981,11 +13030,13 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
12981
13030
  }, ["prevent"]))
12982
13031
  }, [
12983
13032
  createVNode(unref(UserRender), {
13033
+ "avatar-base-url": _ctx.avatarBaseUrl,
13034
+ "has-avatar": _ctx.hasAvatar,
12984
13035
  render: _ctx.renderListItem,
12985
13036
  "tenant-id": _ctx.tenantId,
12986
13037
  tenants: _ctx.tenants,
12987
13038
  user
12988
- }, null, 8, ["render", "tenant-id", "tenants", "user"])
13039
+ }, null, 8, ["avatar-base-url", "has-avatar", "render", "tenant-id", "tenants", "user"])
12989
13040
  ], 40, _hoisted_4);
12990
13041
  }),
12991
13042
  128
@@ -13025,7 +13076,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
13025
13076
  };
13026
13077
  }
13027
13078
  });
13028
- const SelectionPopover = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-024fc663"]]);
13079
+ const SelectionPopover = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-d5a338f0"]]);
13029
13080
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
13030
13081
  ...{
13031
13082
  name: "UserTag"
@@ -13033,8 +13084,10 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
13033
13084
  __name: "user-tag",
13034
13085
  props: {
13035
13086
  active: { type: Boolean },
13087
+ avatarBaseUrl: {},
13036
13088
  currentTenantId: {},
13037
13089
  draggable: { type: Boolean },
13090
+ hasAvatar: { type: Boolean },
13038
13091
  renderTag: { type: Function },
13039
13092
  showTenant: { type: Boolean },
13040
13093
  tenants: {},
@@ -13059,11 +13112,13 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
13059
13112
  }, {
13060
13113
  default: withCtx(() => [
13061
13114
  createVNode(unref(UserRender), {
13115
+ "avatar-base-url": _ctx.avatarBaseUrl,
13116
+ "has-avatar": _ctx.hasAvatar,
13062
13117
  render: _ctx.renderTag,
13063
13118
  "tenant-id": _ctx.currentTenantId,
13064
13119
  tenants: _ctx.tenants,
13065
13120
  user: _ctx.user
13066
- }, null, 8, ["render", "tenant-id", "tenants", "user"])
13121
+ }, null, 8, ["avatar-base-url", "has-avatar", "render", "tenant-id", "tenants", "user"])
13067
13122
  ]),
13068
13123
  _: 1
13069
13124
  /* STABLE */
@@ -13071,7 +13126,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
13071
13126
  };
13072
13127
  }
13073
13128
  });
13074
- const UserTag = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-48ac8fc1"]]);
13129
+ const UserTag = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-1f2e0737"]]);
13075
13130
  const _hoisted_1 = ["placeholder"];
13076
13131
  const _hoisted_2 = { class: "hidden-users" };
13077
13132
  const _hoisted_3 = ["placeholder"];
@@ -13087,6 +13142,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
13087
13142
  multiple: { type: Boolean, default: false },
13088
13143
  allowCreate: { type: Boolean, default: false },
13089
13144
  apiBaseUrl: { default: "" },
13145
+ avatarBaseUrl: { default: "" },
13146
+ hasAvatar: { type: Boolean, default: false },
13090
13147
  currentUserId: { default: "" },
13091
13148
  disabled: { type: Boolean, default: false },
13092
13149
  emptyText: { default: "" },
@@ -13156,7 +13213,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
13156
13213
  () => isMaxCountReached.value || !!props.currentUserId && selectedUsers.value.some((user) => user[props.exactSearchKey] === props.currentUserId)
13157
13214
  );
13158
13215
  const userTagCommonProps = computed(() => ({
13216
+ avatarBaseUrl: props.avatarBaseUrl,
13159
13217
  currentTenantId: props.tenantId,
13218
+ hasAvatar: props.hasAvatar,
13160
13219
  renderTag: props.renderTag,
13161
13220
  tenants
13162
13221
  }));
@@ -13461,8 +13520,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
13461
13520
  [
13462
13521
  createCommentVNode(" 下拉选项列表 "),
13463
13522
  createVNode(SelectionPopover, {
13523
+ "avatar-base-url": _ctx.avatarBaseUrl,
13464
13524
  "container-width": containerRef.value ? containerRef.value.offsetWidth : "auto",
13465
13525
  "empty-text": computedEmptyText.value,
13526
+ "has-avatar": _ctx.hasAvatar,
13466
13527
  "is-show": showDropdown.value,
13467
13528
  loading: unref(searchLoading),
13468
13529
  options: displayOptions.value,
@@ -13608,10 +13669,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
13608
13669
  renderList(selectedUsers.value.slice(visibleUsers.value.length), (user) => {
13609
13670
  return openBlock(), createBlock(unref(UserRender), {
13610
13671
  key: user.id,
13672
+ "avatar-base-url": _ctx.avatarBaseUrl,
13673
+ "has-avatar": _ctx.hasAvatar,
13611
13674
  "tenant-id": _ctx.tenantId,
13612
13675
  tenants: unref(tenants),
13613
13676
  user
13614
- }, null, 8, ["tenant-id", "tenants", "user"]);
13677
+ }, null, 8, ["avatar-base-url", "has-avatar", "tenant-id", "tenants", "user"]);
13615
13678
  }),
13616
13679
  128
13617
13680
  /* KEYED_FRAGMENT */
@@ -13658,7 +13721,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
13658
13721
  ]),
13659
13722
  _: 1
13660
13723
  /* STABLE */
13661
- }, 8, ["container-width", "empty-text", "is-show", "loading", "options", "render-list-item", "search-query", "tenant-id", "tenants", "user-group", "user-group-name"])
13724
+ }, 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"])
13662
13725
  ],
13663
13726
  2
13664
13727
  /* CLASS */
@@ -13666,7 +13729,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
13666
13729
  };
13667
13730
  }
13668
13731
  });
13669
- const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-65e61c1c"]]);
13732
+ const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9975c7e1"]]);
13670
13733
  const vue2 = {
13671
13734
  model: {
13672
13735
  prop: "modelValue",