@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.
@@ -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-4f251ce1] {\n position: absolute;\n top: 50%;\n right: 8px;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0 8px;\n font-size: 12px;\n color: #4d4f56;\n white-space: nowrap;\n cursor: pointer;\n background-color: #e1ecff;\n border-radius: 50%;\n transform: translateY(-50%);\n}\n.me-tag[data-v-4f251ce1]:hover {\n color: #3a84ff;\n background-color: #cddffe;\n}\n.me-tag.disabled[data-v-4f251ce1] {\n color: #c4c6cc;\n cursor: not-allowed;\n background-color: #f0f1f5;\n}.dropdown-content[data-v-024fc663] {\n min-height: 40px;\n max-height: 300px;\n padding: 5px 0;\n overflow-y: auto;\n}\n.dropdown-content .no-data[data-v-024fc663] {\n padding: 10px;\n color: #979ba5;\n text-align: center;\n}\n.dropdown-content .user-group .group-header[data-v-024fc663] {\n display: flex;\n align-items: center;\n padding: 8px 12px;\n color: #979ba5;\n}\n.dropdown-content .user-group .group-header .group-count[data-v-024fc663] {\n margin-left: 4px;\n}\n.dropdown-content .user-option[data-v-024fc663] {\n display: flex;\n align-items: center;\n height: 32px;\n padding: 8px 12px;\n cursor: pointer;\n}\n.dropdown-content .user-option[data-v-024fc663]:hover {\n background-color: #f5f7fa;\n}.user-tag[data-v-48ac8fc1] {\n margin-right: 4px;\n margin-left: 0;\n}\n.user-tag.draggable[data-v-48ac8fc1] {\n cursor: move;\n}\n.user-tag.active[data-v-48ac8fc1] {\n background-color: #e1ecff;\n border-color: #3a84ff;\n}\n.user-tag.is-custom[data-v-48ac8fc1] {\n color: #ea3636;\n background-color: #feebea;\n border-color: rgba(234, 53, 54, 0.3019607843);\n}\n.user-tag.is-custom[data-v-48ac8fc1]:hover {\n background-color: #fedddc;\n}\n.user-tag .tag-content .user-name[data-v-48ac8fc1] {\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 12px;\n white-space: nowrap;\n}.bk-user-selector[data-v-65e61c1c] {\n position: relative;\n width: 100%;\n height: 32px;\n font-size: 12px;\n}\n.bk-user-selector.is-disabled[data-v-65e61c1c] {\n pointer-events: none;\n cursor: not-allowed;\n background-color: #dcdee5;\n}\n.bk-user-selector .tags-container[data-v-65e61c1c] {\n position: relative;\n min-height: 32px;\n padding: 1px 10px 1px 8px;\n background-color: #fff;\n border: 1px solid #c4c6cc;\n border-radius: 2px;\n transition: all 0.2s ease;\n}\n.bk-user-selector .tags-container.focused[data-v-65e61c1c] {\n border-color: #3a84ff;\n box-shadow: 0 0 0 2px rgba(58, 132, 255, 0.1);\n}\n.bk-user-selector .tags-container.tags-container-collapsed[data-v-65e61c1c] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n.bk-user-selector .tag-list[data-v-65e61c1c] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n.bk-user-selector .tag-wrapper[data-v-65e61c1c] {\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n}\n.bk-user-selector .search-input[data-v-65e61c1c] {\n min-width: 20px;\n height: 28px;\n outline: none;\n background: transparent;\n border: none;\n}\n.bk-user-selector .search-input[data-v-65e61c1c]::placeholder {\n color: #c4c6cc;\n}\n.bk-user-selector .search-input.input-inline[data-v-65e61c1c] {\n min-width: 20px;\n}\n.bk-user-selector .search-input.input-last[data-v-65e61c1c], .bk-user-selector .search-input.search-input-collapsed[data-v-65e61c1c] {\n flex: 1;\n}\n.hidden-users[data-v-65e61c1c] {\n padding: 6px 10px;\n}.bk-user-selector-popover {\n padding: 0 !important;\n}";
6
+ __vite_style__.textContent = ".me-tag[data-v-4f251ce1] {\n position: absolute;\n top: 50%;\n right: 8px;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0 8px;\n font-size: 12px;\n color: #4d4f56;\n white-space: nowrap;\n cursor: pointer;\n background-color: #e1ecff;\n border-radius: 50%;\n transform: translateY(-50%);\n}\n.me-tag[data-v-4f251ce1]:hover {\n color: #3a84ff;\n background-color: #cddffe;\n}\n.me-tag.disabled[data-v-4f251ce1] {\n color: #c4c6cc;\n cursor: not-allowed;\n background-color: #f0f1f5;\n}.dropdown-content[data-v-d5a338f0] {\n min-height: 40px;\n max-height: 300px;\n padding: 5px 0;\n overflow-y: auto;\n}\n.dropdown-content .no-data[data-v-d5a338f0] {\n padding: 10px;\n color: #979ba5;\n text-align: center;\n}\n.dropdown-content .user-group .group-header[data-v-d5a338f0] {\n display: flex;\n align-items: center;\n padding: 8px 12px;\n color: #979ba5;\n}\n.dropdown-content .user-group .group-header .group-count[data-v-d5a338f0] {\n margin-left: 4px;\n}\n.dropdown-content .user-option[data-v-d5a338f0] {\n display: flex;\n align-items: center;\n height: 32px;\n padding: 8px 12px;\n cursor: pointer;\n}\n.dropdown-content .user-option[data-v-d5a338f0]:hover {\n background-color: #f5f7fa;\n}.user-tag[data-v-1f2e0737] {\n margin-right: 4px;\n margin-left: 0;\n}\n.user-tag.draggable[data-v-1f2e0737] {\n cursor: move;\n}\n.user-tag.active[data-v-1f2e0737] {\n background-color: #e1ecff;\n border-color: #3a84ff;\n}\n.user-tag.is-custom[data-v-1f2e0737] {\n color: #ea3636;\n background-color: #feebea;\n border-color: rgba(234, 53, 54, 0.3019607843);\n}\n.user-tag.is-custom[data-v-1f2e0737]:hover {\n background-color: #fedddc;\n}\n.user-tag .tag-content .user-name[data-v-1f2e0737] {\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 12px;\n white-space: nowrap;\n}.bk-user-selector[data-v-9975c7e1] {\n position: relative;\n width: 100%;\n height: 32px;\n font-size: 12px;\n}\n.bk-user-selector.is-disabled[data-v-9975c7e1] {\n pointer-events: none;\n cursor: not-allowed;\n background-color: #dcdee5;\n}\n.bk-user-selector .tags-container[data-v-9975c7e1] {\n position: relative;\n min-height: 32px;\n padding: 1px 10px 1px 8px;\n background-color: #fff;\n border: 1px solid #c4c6cc;\n border-radius: 2px;\n transition: all 0.2s ease;\n}\n.bk-user-selector .tags-container.focused[data-v-9975c7e1] {\n border-color: #3a84ff;\n box-shadow: 0 0 0 2px rgba(58, 132, 255, 0.1);\n}\n.bk-user-selector .tags-container.tags-container-collapsed[data-v-9975c7e1] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n.bk-user-selector .tag-list[data-v-9975c7e1] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n}\n.bk-user-selector .tag-wrapper[data-v-9975c7e1] {\n display: inline-flex;\n align-items: center;\n max-width: 100%;\n}\n.bk-user-selector .search-input[data-v-9975c7e1] {\n min-width: 20px;\n height: 28px;\n outline: none;\n background: transparent;\n border: none;\n}\n.bk-user-selector .search-input[data-v-9975c7e1]::placeholder {\n color: #c4c6cc;\n}\n.bk-user-selector .search-input.input-inline[data-v-9975c7e1] {\n min-width: 20px;\n}\n.bk-user-selector .search-input.input-last[data-v-9975c7e1], .bk-user-selector .search-input.search-input-collapsed[data-v-9975c7e1] {\n flex: 1;\n}\n.hidden-users[data-v-9975c7e1] {\n padding: 6px 10px;\n}.bk-user-selector-popover {\n padding: 0 !important;\n}";
7
7
  document.head.appendChild(__vite_style__);
8
8
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
9
9
  function getDefaultExportFromCjs(x) {
@@ -2951,12 +2951,14 @@
2951
2951
  ...user,
2952
2952
  id: user.username,
2953
2953
  name: `${user.display_name}(${user.username})`,
2954
+ type: user.data_source_type,
2954
2955
  tenantId: user.owner_tenant_id
2955
2956
  }));
2956
2957
  }
2957
2958
  return users.map((user) => ({
2958
2959
  id: user.bk_username,
2959
2960
  name: user.display_name,
2961
+ type: user.data_source_type,
2960
2962
  tenantId: user.owner_tenant_id,
2961
2963
  ...user
2962
2964
  }));
@@ -3373,10 +3375,12 @@
3373
3375
  const performSearch = async (keyword) => {
3374
3376
  if (!(keyword == null ? void 0 : keyword.length)) {
3375
3377
  searchResults.value = [];
3378
+ loading.value = false;
3376
3379
  return;
3377
3380
  }
3378
3381
  if (enableMultiTenantMode && (!apiBaseUrl || !tenantId)) {
3379
3382
  console.warn("执行用户搜索需要提供有效的API基础URL和租户ID");
3383
+ loading.value = false;
3380
3384
  return;
3381
3385
  }
3382
3386
  loading.value = true;
@@ -3499,6 +3503,9 @@
3499
3503
  return target;
3500
3504
  };
3501
3505
  const MeTag = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-4f251ce1"]]);
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";
3507
+ 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";
3508
+ 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";
3502
3509
  const UserRender = vue.defineComponent({
3503
3510
  name: "UserRender",
3504
3511
  props: {
@@ -3517,23 +3524,63 @@
3517
3524
  render: {
3518
3525
  type: Function,
3519
3526
  required: false
3527
+ },
3528
+ hasAvatar: {
3529
+ type: Boolean,
3530
+ default: false
3531
+ },
3532
+ avatarBaseUrl: {
3533
+ type: String,
3534
+ default: ""
3520
3535
  }
3521
3536
  },
3522
3537
  setup(props) {
3538
+ const getAvatarUrl = (user) => {
3539
+ if (user.type === "virtual") {
3540
+ return VirtualAvatar;
3541
+ }
3542
+ if (user.type === "userGroup") {
3543
+ return UserGroupAvatar;
3544
+ }
3545
+ if (!props.avatarBaseUrl) {
3546
+ return UserAvatar;
3547
+ }
3548
+ const loginName = user.login_name || user.bk_username || user.id;
3549
+ return `${props.avatarBaseUrl}${loginName}.png?default_when_absent=true`;
3550
+ };
3523
3551
  const defaultRender = (h2, props2) => {
3524
- return h2("div", [
3525
- h2("span", props2.user.name),
3526
- props2.user.tenantId !== props2.tenantId && props2.user.tenantId ? h2(
3527
- "span",
3528
- {
3552
+ return h2(
3553
+ "div",
3554
+ {
3555
+ style: {
3556
+ display: "flex",
3557
+ alignItems: "center"
3558
+ }
3559
+ },
3560
+ [
3561
+ props2.hasAvatar ? h2("img", {
3562
+ src: getAvatarUrl(props2.user),
3529
3563
  style: {
3530
- color: "#f59500",
3531
- marginLeft: "4px"
3564
+ width: "20px",
3565
+ height: "20px",
3566
+ borderRadius: "50%",
3567
+ marginRight: "6px",
3568
+ flexShrink: 0
3532
3569
  }
3533
- },
3534
- `@${props2.tenants[props2.user.tenantId] || props2.user.tenantId}`
3535
- ) : null
3536
- ]);
3570
+ }) : null,
3571
+ h2("span", props2.user.name),
3572
+ props2.user.tenantId !== props2.tenantId && props2.user.tenantId ? h2(
3573
+ "span",
3574
+ {
3575
+ style: {
3576
+ color: "#f59500",
3577
+ marginLeft: "4px"
3578
+ }
3579
+ },
3580
+ `@${props2.tenants[props2.user.tenantId] || props2.user.tenantId}`
3581
+ ) : null
3582
+ ]
3583
+ );
3537
3584
  };
3538
3585
  return () => {
3539
3586
  try {
@@ -3558,8 +3605,10 @@
3558
3605
  },
3559
3606
  __name: "selection-popover",
3560
3607
  props: {
3608
+ avatarBaseUrl: { default: "" },
3561
3609
  containerWidth: { default: "auto" },
3562
3610
  emptyText: { default: "" },
3611
+ hasAvatar: { type: Boolean, default: false },
3563
3612
  isShow: { type: Boolean, default: false },
3564
3613
  loading: { type: Boolean, default: false },
3565
3614
  options: { default: () => [] },
@@ -3685,11 +3734,13 @@
3685
3734
  }, ["prevent"]))
3686
3735
  }, [
3687
3736
  vue.createVNode(vue.unref(UserRender), {
3737
+ "avatar-base-url": _ctx.avatarBaseUrl,
3738
+ "has-avatar": _ctx.hasAvatar,
3688
3739
  render: _ctx.renderListItem,
3689
3740
  "tenant-id": _ctx.tenantId,
3690
3741
  tenants: _ctx.tenants,
3691
3742
  user
3692
- }, null, 8, ["render", "tenant-id", "tenants", "user"])
3743
+ }, null, 8, ["avatar-base-url", "has-avatar", "render", "tenant-id", "tenants", "user"])
3693
3744
  ], 40, _hoisted_4);
3694
3745
  }),
3695
3746
  128
@@ -3729,7 +3780,7 @@
3729
3780
  };
3730
3781
  }
3731
3782
  });
3732
- const SelectionPopover = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-024fc663"]]);
3783
+ const SelectionPopover = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-d5a338f0"]]);
3733
3784
  const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
3734
3785
  ...{
3735
3786
  name: "UserTag"
@@ -3737,8 +3788,10 @@
3737
3788
  __name: "user-tag",
3738
3789
  props: {
3739
3790
  active: { type: Boolean },
3791
+ avatarBaseUrl: {},
3740
3792
  currentTenantId: {},
3741
3793
  draggable: { type: Boolean },
3794
+ hasAvatar: { type: Boolean },
3742
3795
  renderTag: { type: Function },
3743
3796
  showTenant: { type: Boolean },
3744
3797
  tenants: {},
@@ -3763,11 +3816,13 @@
3763
3816
  }, {
3764
3817
  default: vue.withCtx(() => [
3765
3818
  vue.createVNode(vue.unref(UserRender), {
3819
+ "avatar-base-url": _ctx.avatarBaseUrl,
3820
+ "has-avatar": _ctx.hasAvatar,
3766
3821
  render: _ctx.renderTag,
3767
3822
  "tenant-id": _ctx.currentTenantId,
3768
3823
  tenants: _ctx.tenants,
3769
3824
  user: _ctx.user
3770
- }, null, 8, ["render", "tenant-id", "tenants", "user"])
3825
+ }, null, 8, ["avatar-base-url", "has-avatar", "render", "tenant-id", "tenants", "user"])
3771
3826
  ]),
3772
3827
  _: 1
3773
3828
  /* STABLE */
@@ -3775,7 +3830,7 @@
3775
3830
  };
3776
3831
  }
3777
3832
  });
3778
- const UserTag = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-48ac8fc1"]]);
3833
+ const UserTag = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-1f2e0737"]]);
3779
3834
  const _hoisted_1 = ["placeholder"];
3780
3835
  const _hoisted_2 = { class: "hidden-users" };
3781
3836
  const _hoisted_3 = ["placeholder"];
@@ -3791,6 +3846,8 @@
3791
3846
  multiple: { type: Boolean, default: false },
3792
3847
  allowCreate: { type: Boolean, default: false },
3793
3848
  apiBaseUrl: { default: "" },
3849
+ avatarBaseUrl: { default: "" },
3850
+ hasAvatar: { type: Boolean, default: false },
3794
3851
  currentUserId: { default: "" },
3795
3852
  disabled: { type: Boolean, default: false },
3796
3853
  emptyText: { default: "" },
@@ -3860,7 +3917,9 @@
3860
3917
  () => isMaxCountReached.value || !!props.currentUserId && selectedUsers.value.some((user) => user[props.exactSearchKey] === props.currentUserId)
3861
3918
  );
3862
3919
  const userTagCommonProps = vue.computed(() => ({
3920
+ avatarBaseUrl: props.avatarBaseUrl,
3863
3921
  currentTenantId: props.tenantId,
3922
+ hasAvatar: props.hasAvatar,
3864
3923
  renderTag: props.renderTag,
3865
3924
  tenants
3866
3925
  }));
@@ -4165,8 +4224,10 @@
4165
4224
  [
4166
4225
  vue.createCommentVNode(" 下拉选项列表 "),
4167
4226
  vue.createVNode(SelectionPopover, {
4227
+ "avatar-base-url": _ctx.avatarBaseUrl,
4168
4228
  "container-width": containerRef.value ? containerRef.value.offsetWidth : "auto",
4169
4229
  "empty-text": computedEmptyText.value,
4230
+ "has-avatar": _ctx.hasAvatar,
4170
4231
  "is-show": showDropdown.value,
4171
4232
  loading: vue.unref(searchLoading),
4172
4233
  options: displayOptions.value,
@@ -4312,10 +4373,12 @@
4312
4373
  vue.renderList(selectedUsers.value.slice(visibleUsers.value.length), (user) => {
4313
4374
  return vue.openBlock(), vue.createBlock(vue.unref(UserRender), {
4314
4375
  key: user.id,
4376
+ "avatar-base-url": _ctx.avatarBaseUrl,
4377
+ "has-avatar": _ctx.hasAvatar,
4315
4378
  "tenant-id": _ctx.tenantId,
4316
4379
  tenants: vue.unref(tenants),
4317
4380
  user
4318
- }, null, 8, ["tenant-id", "tenants", "user"]);
4381
+ }, null, 8, ["avatar-base-url", "has-avatar", "tenant-id", "tenants", "user"]);
4319
4382
  }),
4320
4383
  128
4321
4384
  /* KEYED_FRAGMENT */
@@ -4362,7 +4425,7 @@
4362
4425
  ]),
4363
4426
  _: 1
4364
4427
  /* STABLE */
4365
- }, 8, ["container-width", "empty-text", "is-show", "loading", "options", "render-list-item", "search-query", "tenant-id", "tenants", "user-group", "user-group-name"])
4428
+ }, 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"])
4366
4429
  ],
4367
4430
  2
4368
4431
  /* CLASS */
@@ -4370,7 +4433,7 @@
4370
4433
  };
4371
4434
  }
4372
4435
  });
4373
- const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-65e61c1c"]]);
4436
+ const BkUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9975c7e1"]]);
4374
4437
  exports2.BkUserSelector = BkUserSelector;
4375
4438
  exports2.default = BkUserSelector;
4376
4439
  Object.defineProperties(exports2, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
package/vue3/vue3.css CHANGED
@@ -25,71 +25,71 @@
25
25
  color: #c4c6cc;
26
26
  cursor: not-allowed;
27
27
  background-color: #f0f1f5;
28
- }.dropdown-content[data-v-024fc663] {
28
+ }.dropdown-content[data-v-d5a338f0] {
29
29
  min-height: 40px;
30
30
  max-height: 300px;
31
31
  padding: 5px 0;
32
32
  overflow-y: auto;
33
33
  }
34
- .dropdown-content .no-data[data-v-024fc663] {
34
+ .dropdown-content .no-data[data-v-d5a338f0] {
35
35
  padding: 10px;
36
36
  color: #979ba5;
37
37
  text-align: center;
38
38
  }
39
- .dropdown-content .user-group .group-header[data-v-024fc663] {
39
+ .dropdown-content .user-group .group-header[data-v-d5a338f0] {
40
40
  display: flex;
41
41
  align-items: center;
42
42
  padding: 8px 12px;
43
43
  color: #979ba5;
44
44
  }
45
- .dropdown-content .user-group .group-header .group-count[data-v-024fc663] {
45
+ .dropdown-content .user-group .group-header .group-count[data-v-d5a338f0] {
46
46
  margin-left: 4px;
47
47
  }
48
- .dropdown-content .user-option[data-v-024fc663] {
48
+ .dropdown-content .user-option[data-v-d5a338f0] {
49
49
  display: flex;
50
50
  align-items: center;
51
51
  height: 32px;
52
52
  padding: 8px 12px;
53
53
  cursor: pointer;
54
54
  }
55
- .dropdown-content .user-option[data-v-024fc663]:hover {
55
+ .dropdown-content .user-option[data-v-d5a338f0]:hover {
56
56
  background-color: #f5f7fa;
57
- }.user-tag[data-v-48ac8fc1] {
57
+ }.user-tag[data-v-1f2e0737] {
58
58
  margin-right: 4px;
59
59
  margin-left: 0;
60
60
  }
61
- .user-tag.draggable[data-v-48ac8fc1] {
61
+ .user-tag.draggable[data-v-1f2e0737] {
62
62
  cursor: move;
63
63
  }
64
- .user-tag.active[data-v-48ac8fc1] {
64
+ .user-tag.active[data-v-1f2e0737] {
65
65
  background-color: #e1ecff;
66
66
  border-color: #3a84ff;
67
67
  }
68
- .user-tag.is-custom[data-v-48ac8fc1] {
68
+ .user-tag.is-custom[data-v-1f2e0737] {
69
69
  color: #ea3636;
70
70
  background-color: #feebea;
71
71
  border-color: rgba(234, 53, 54, 0.3019607843);
72
72
  }
73
- .user-tag.is-custom[data-v-48ac8fc1]:hover {
73
+ .user-tag.is-custom[data-v-1f2e0737]:hover {
74
74
  background-color: #fedddc;
75
75
  }
76
- .user-tag .tag-content .user-name[data-v-48ac8fc1] {
76
+ .user-tag .tag-content .user-name[data-v-1f2e0737] {
77
77
  overflow: hidden;
78
78
  text-overflow: ellipsis;
79
79
  font-size: 12px;
80
80
  white-space: nowrap;
81
- }.bk-user-selector[data-v-65e61c1c] {
81
+ }.bk-user-selector[data-v-9975c7e1] {
82
82
  position: relative;
83
83
  width: 100%;
84
84
  height: 32px;
85
85
  font-size: 12px;
86
86
  }
87
- .bk-user-selector.is-disabled[data-v-65e61c1c] {
87
+ .bk-user-selector.is-disabled[data-v-9975c7e1] {
88
88
  pointer-events: none;
89
89
  cursor: not-allowed;
90
90
  background-color: #dcdee5;
91
91
  }
92
- .bk-user-selector .tags-container[data-v-65e61c1c] {
92
+ .bk-user-selector .tags-container[data-v-9975c7e1] {
93
93
  position: relative;
94
94
  min-height: 32px;
95
95
  padding: 1px 10px 1px 8px;
@@ -98,42 +98,42 @@
98
98
  border-radius: 2px;
99
99
  transition: all 0.2s ease;
100
100
  }
101
- .bk-user-selector .tags-container.focused[data-v-65e61c1c] {
101
+ .bk-user-selector .tags-container.focused[data-v-9975c7e1] {
102
102
  border-color: #3a84ff;
103
103
  box-shadow: 0 0 0 2px rgba(58, 132, 255, 0.1);
104
104
  }
105
- .bk-user-selector .tags-container.tags-container-collapsed[data-v-65e61c1c] {
105
+ .bk-user-selector .tags-container.tags-container-collapsed[data-v-9975c7e1] {
106
106
  display: flex;
107
107
  flex-wrap: wrap;
108
108
  align-items: center;
109
109
  }
110
- .bk-user-selector .tag-list[data-v-65e61c1c] {
110
+ .bk-user-selector .tag-list[data-v-9975c7e1] {
111
111
  display: flex;
112
112
  flex-wrap: wrap;
113
113
  align-items: center;
114
114
  }
115
- .bk-user-selector .tag-wrapper[data-v-65e61c1c] {
115
+ .bk-user-selector .tag-wrapper[data-v-9975c7e1] {
116
116
  display: inline-flex;
117
117
  align-items: center;
118
118
  max-width: 100%;
119
119
  }
120
- .bk-user-selector .search-input[data-v-65e61c1c] {
120
+ .bk-user-selector .search-input[data-v-9975c7e1] {
121
121
  min-width: 20px;
122
122
  height: 28px;
123
123
  outline: none;
124
124
  background: transparent;
125
125
  border: none;
126
126
  }
127
- .bk-user-selector .search-input[data-v-65e61c1c]::placeholder {
127
+ .bk-user-selector .search-input[data-v-9975c7e1]::placeholder {
128
128
  color: #c4c6cc;
129
129
  }
130
- .bk-user-selector .search-input.input-inline[data-v-65e61c1c] {
130
+ .bk-user-selector .search-input.input-inline[data-v-9975c7e1] {
131
131
  min-width: 20px;
132
132
  }
133
- .bk-user-selector .search-input.input-last[data-v-65e61c1c], .bk-user-selector .search-input.search-input-collapsed[data-v-65e61c1c] {
133
+ .bk-user-selector .search-input.input-last[data-v-9975c7e1], .bk-user-selector .search-input.search-input-collapsed[data-v-9975c7e1] {
134
134
  flex: 1;
135
135
  }
136
- .hidden-users[data-v-65e61c1c] {
136
+ .hidden-users[data-v-9975c7e1] {
137
137
  padding: 6px 10px;
138
138
  }.bk-user-selector-popover {
139
139
  padding: 0 !important;