yc-pro-components 0.0.18 → 0.0.20

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.
Files changed (65) hide show
  1. package/es/components/display-item/src/index.vue2.mjs +18 -5
  2. package/es/components/form/src/form-content.vue.d.ts +2 -0
  3. package/es/components/page/index.d.ts +67 -3
  4. package/es/components/page/src/index.vue.d.ts +44 -49
  5. package/es/components/page/src/index.vue2.mjs +4 -2
  6. package/es/components/table/index.d.ts +19 -0
  7. package/es/components/table/src/index.vue.d.ts +3 -0
  8. package/es/components/table/src/index.vue2.mjs +4 -2
  9. package/es/components/table/src/type.d.ts +9 -0
  10. package/es/components/yc-plus-page/src/index.vue.d.ts +64 -4
  11. package/es/components/yc-select-v2/src/directive.d.ts +0 -4
  12. package/es/components/yc-select-v2/src/directive.mjs +70 -17
  13. package/es/components/yc-select-v2/src/index.vue2.mjs +18 -6
  14. package/es/constants/form.d.ts +5 -0
  15. package/es/constants/form.mjs +2 -1
  16. package/es/constants/index.mjs +1 -1
  17. package/es/index.css +1 -0
  18. package/es/index.mjs +1 -1
  19. package/es/types/plus.d.ts +29 -0
  20. package/index.css +14 -0
  21. package/index.js +113 -27
  22. package/index.min.css +1 -0
  23. package/index.min.js +7 -7
  24. package/index.min.mjs +7 -7
  25. package/index.mjs +113 -28
  26. package/lib/components/display-item/src/index.vue2.js +16 -3
  27. package/lib/components/form/src/form-content.vue.d.ts +2 -0
  28. package/lib/components/page/index.d.ts +67 -3
  29. package/lib/components/page/src/index.vue.d.ts +44 -49
  30. package/lib/components/page/src/index.vue2.js +4 -2
  31. package/lib/components/table/index.d.ts +19 -0
  32. package/lib/components/table/src/index.vue.d.ts +3 -0
  33. package/lib/components/table/src/index.vue2.js +3 -1
  34. package/lib/components/table/src/type.d.ts +9 -0
  35. package/lib/components/yc-plus-page/src/index.vue.d.ts +64 -4
  36. package/lib/components/yc-select-v2/src/directive.d.ts +0 -4
  37. package/lib/components/yc-select-v2/src/directive.js +70 -17
  38. package/lib/components/yc-select-v2/src/index.vue2.js +17 -5
  39. package/lib/constants/form.d.ts +5 -0
  40. package/lib/constants/form.js +2 -0
  41. package/lib/constants/index.js +1 -0
  42. package/lib/index.css +1 -0
  43. package/lib/index.js +1 -0
  44. package/lib/types/plus.d.ts +29 -0
  45. package/locale/en.js +1 -1
  46. package/locale/en.min.js +1 -1
  47. package/locale/en.min.mjs +1 -1
  48. package/locale/en.mjs +1 -1
  49. package/locale/ja.js +1 -1
  50. package/locale/ja.min.js +1 -1
  51. package/locale/ja.min.mjs +1 -1
  52. package/locale/ja.mjs +1 -1
  53. package/locale/ko.js +1 -1
  54. package/locale/ko.min.js +1 -1
  55. package/locale/ko.min.mjs +1 -1
  56. package/locale/ko.mjs +1 -1
  57. package/locale/zh-cn.js +1 -1
  58. package/locale/zh-cn.min.js +1 -1
  59. package/locale/zh-cn.min.mjs +1 -1
  60. package/locale/zh-cn.mjs +1 -1
  61. package/locale/zh-tw.js +1 -1
  62. package/locale/zh-tw.min.js +1 -1
  63. package/locale/zh-tw.min.mjs +1 -1
  64. package/locale/zh-tw.mjs +1 -1
  65. package/package.json +1 -1
@@ -272,6 +272,35 @@ export interface CommonType {
272
272
  * 多级表头
273
273
  */
274
274
  children?: PlusColumn[];
275
+ /**
276
+ * 字段值为空时显示的文本
277
+ * @version v0.2.0
278
+ * @default "-"
279
+ * @desc 当字段值为 null、undefined 或空字符串时,显示此文本
280
+ * @desc 仅对未定义 render/renderHTML 的字段生效
281
+ * @desc 如果不希望处理空值,可以设置为空字符串 emptyText: ""
282
+ * @example
283
+ * ```ts
284
+ * const columns: PlusColumn[] = [
285
+ * {
286
+ * label: '姓名',
287
+ * prop: 'name'
288
+ * // 默认空值显示 "-"
289
+ * },
290
+ * {
291
+ * label: '备注',
292
+ * prop: 'remark',
293
+ * emptyText: '暂无' // 自定义空值显示为 "暂无"
294
+ * },
295
+ * {
296
+ * label: '数量',
297
+ * prop: 'count',
298
+ * emptyText: '' // 空值显示空字符串(不处理)
299
+ * }
300
+ * ]
301
+ * ```
302
+ */
303
+ emptyText?: string;
275
304
  /**
276
305
  * 自动字典注入
277
306
  * @version v0.2.0
package/index.css CHANGED
@@ -41,6 +41,20 @@
41
41
  .column-settings-text[data-v-7c1490fd] {
42
42
  font-size: 14px;
43
43
  }
44
+
45
+ /* 加载中选项样式 */
46
+ .yc-select-v2-loading.el-select-dropdown__item {
47
+ text-align: center;
48
+ color: #909399;
49
+ font-size: 13px;
50
+ cursor: default;
51
+ pointer-events: none;
52
+ }
53
+ .yc-select-v2-loading.el-select-dropdown__item.is-disabled {
54
+ color: #909399;
55
+ cursor: default;
56
+ }
57
+
44
58
  @charset "UTF-8";
45
59
  /**
46
60
  * YcLineTree 树形连接线组件样式
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! yc-pro-components v0.0.18 */
1
+ /*! yc-pro-components v0.0.20 */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue'), require('element-plus')) :
4
4
  typeof define === 'function' && define.amd ? define(['exports', 'vue', 'element-plus'], factory) :
@@ -4779,6 +4779,7 @@
4779
4779
  const TableFormRefInjectionKey = Symbol("tableFormRefInjectionKey");
4780
4780
  const TableFormFieldRefInjectionKey = Symbol("tableFormFieldRefInjectionKey");
4781
4781
  const TableFormRowInfoInjectionKey = Symbol("tableFormRowInfoInjectionKey");
4782
+ const TableColumnsEmptyTextInjectionKey = Symbol("tableColumnsEmptyTextInjectionKey");
4782
4783
  const DatePickerValueIsArrayList = ["datetimerange", "daterange", "monthrange"];
4783
4784
  const ValueIsNumberList = ["rate", "input-number", "slider"];
4784
4785
  const ValueIsBooleanList = ["switch"];
@@ -17163,16 +17164,18 @@
17163
17164
  const value = props.column.valueType === "link" ? props.column.linkText || displayValue.value : displayValue.value;
17164
17165
  if (!selectValueTypeList.includes(props.column.valueType) && !isEdit.value) {
17165
17166
  if (props.column.formatter && isFunction(props.column.formatter)) {
17166
- return props.column.formatter(value, renderParams.value);
17167
+ const formattedValue = props.column.formatter(value, renderParams.value);
17168
+ return handleEmptyValue(formattedValue);
17167
17169
  }
17168
17170
  if (displayComponent.value.format && isFunction(displayComponent.value.format)) {
17169
- return displayComponent.value.format(
17171
+ const formattedValue = displayComponent.value.format(
17170
17172
  value,
17171
17173
  customFieldProps.value.format || customFieldProps.value.valueFormat
17172
17174
  );
17175
+ return handleEmptyValue(formattedValue);
17173
17176
  }
17174
17177
  }
17175
- return value;
17178
+ return handleEmptyValue(value);
17176
17179
  });
17177
17180
  const modelValues = vue.computed({
17178
17181
  get() {
@@ -17204,6 +17207,17 @@
17204
17207
  column: { ...props.rest.column, ...props.column }
17205
17208
  }));
17206
17209
  vue.provide(TableFormRowInfoInjectionKey, tableRowInfo);
17210
+ const injectedColumnsEmptyText = vue.inject(TableColumnsEmptyTextInjectionKey, vue.computed(() => "-"));
17211
+ const handleEmptyValue = (value) => {
17212
+ var _a;
17213
+ if (value === null || value === void 0 || value === "") {
17214
+ if (props.column.emptyText !== void 0) {
17215
+ return props.column.emptyText;
17216
+ }
17217
+ return (_a = injectedColumnsEmptyText.value) != null ? _a : "-";
17218
+ }
17219
+ return value;
17220
+ };
17207
17221
  const imageUrl = vue.computed(() => {
17208
17222
  const option = formatterValue.value;
17209
17223
  if (option && isString(option)) {
@@ -18708,7 +18722,8 @@
18708
18722
  indexContentStyle: { type: [Object, Function], default: () => ({}) },
18709
18723
  editable: { type: [Boolean, String], default: false },
18710
18724
  adaptive: { type: [Boolean, Object], default: false },
18711
- filterTableHeaderOverflowLabelLength: {}
18725
+ filterTableHeaderOverflowLabelLength: {},
18726
+ columnsEmptyText: { default: "-" }
18712
18727
  },
18713
18728
  emits: ["paginationChange", "clickAction", "clickActionConfirmCancel", "dragSortEnd", "formChange", "refresh", "edited", "cell-click", "cell-dblclick", "filterTableHeader", "radioChange"],
18714
18729
  setup(__props, { expose: __expose, emit: __emit }) {
@@ -18740,6 +18755,7 @@
18740
18755
  vue.provide(TableFormRefInjectionKey, formRefs);
18741
18756
  const formFieldRefs = vue.shallowRef({});
18742
18757
  vue.provide(TableFormFieldRefInjectionKey, formFieldRefs);
18758
+ vue.provide(TableColumnsEmptyTextInjectionKey, vue.computed(() => props.columnsEmptyText));
18743
18759
  vue.watch(
18744
18760
  () => props.columns,
18745
18761
  (val) => {
@@ -19954,7 +19970,8 @@
19954
19970
  page: "page",
19955
19971
  pageSize: "pageSize"
19956
19972
  }) },
19957
- searchSlot: { type: Boolean, default: false }
19973
+ searchSlot: { type: Boolean, default: false },
19974
+ columnsEmptyText: { default: "-" }
19958
19975
  },
19959
19976
  emits: ["search", "reset", "paginationChange", "requestError", "requestComplete"],
19960
19977
  setup(__props, { expose: __expose, emit: __emit }) {
@@ -20143,6 +20160,7 @@
20143
20160
  "table-data": vue.unref(tableData),
20144
20161
  "loading-status": vue.unref(loadingStatus),
20145
20162
  columns: _ctx.columns,
20163
+ "columns-empty-text": _ctx.columnsEmptyText,
20146
20164
  pagination: _ctx.pagination === false ? void 0 : {
20147
20165
  ..._ctx.pagination,
20148
20166
  total: vue.unref(total),
@@ -20198,7 +20216,7 @@
20198
20216
  ])
20199
20217
  };
20200
20218
  })
20201
- ]), 1040, ["table-data", "loading-status", "columns", "pagination"])
20219
+ ]), 1040, ["table-data", "loading-status", "columns", "columns-empty-text", "pagination"])
20202
20220
  ]),
20203
20221
  _: 3
20204
20222
  /* FORWARDED */
@@ -31339,28 +31357,83 @@
31339
31357
 
31340
31358
  const loadMoreDirective = {
31341
31359
  mounted(el, binding) {
31342
- vue.nextTick(() => {
31343
- const domClass = ".el-select-dropdown__wrap";
31344
- const element = el.querySelector(domClass);
31345
- if (element) {
31360
+ const bindScrollListener = (poperId) => {
31361
+ const poper = document.getElementById(poperId);
31362
+ if (!poper) return;
31363
+ let scrollContainer = null;
31364
+ scrollContainer = poper.querySelector(".el-scrollbar .el-select-dropdown__wrap");
31365
+ if (!scrollContainer) {
31366
+ scrollContainer = poper.querySelector(".el-select-dropdown__wrap");
31367
+ }
31368
+ if (!scrollContainer) {
31369
+ scrollContainer = poper.querySelector('[class*="scrollbar__wrap"]');
31370
+ }
31371
+ if (scrollContainer && !scrollContainer.__vueLoadMoreBound__) {
31372
+ scrollContainer.__vueLoadMoreBound__ = true;
31373
+ let lastTriggerTime = 0;
31346
31374
  const handleScroll = () => {
31347
- const { scrollTop, scrollHeight, clientHeight } = element;
31348
- const scrollDistance = scrollHeight - scrollTop <= clientHeight + 10;
31349
- if (scrollDistance) {
31375
+ if (!scrollContainer) return;
31376
+ const { scrollTop, scrollHeight, clientHeight } = scrollContainer;
31377
+ const THRESHOLD = 100;
31378
+ const scrollDistance = scrollHeight - scrollTop <= clientHeight + THRESHOLD;
31379
+ const now = Date.now();
31380
+ if (scrollDistance && binding.value && now - lastTriggerTime > 1e3) {
31381
+ lastTriggerTime = now;
31350
31382
  binding.value();
31351
31383
  }
31352
31384
  };
31353
- element.__vueLoadMoreHandler__ = handleScroll;
31354
- element.addEventListener("scroll", handleScroll);
31385
+ scrollContainer.__vueLoadMoreHandler__ = handleScroll;
31386
+ scrollContainer.addEventListener("scroll", handleScroll);
31355
31387
  }
31356
- });
31388
+ };
31389
+ const callback = (records) => {
31390
+ records.forEach((record) => {
31391
+ if (record.attributeName === "aria-describedby") {
31392
+ const target = record.target;
31393
+ const newValue = target.getAttribute("aria-describedby");
31394
+ if (newValue) {
31395
+ bindScrollListener(newValue);
31396
+ }
31397
+ }
31398
+ });
31399
+ };
31400
+ const selectTrigger = el.querySelector(".select-trigger") || el.querySelector(".el-select__wrapper") || el.querySelector("input");
31401
+ if (selectTrigger) {
31402
+ const observer = new MutationObserver(callback);
31403
+ observer.observe(selectTrigger, {
31404
+ attributes: true,
31405
+ attributeOldValue: true,
31406
+ attributeFilter: ["aria-describedby"]
31407
+ });
31408
+ el.__vueLoadMoreObserver__ = observer;
31409
+ }
31357
31410
  },
31358
31411
  beforeUnmount(el) {
31359
- const domClass = ".el-select-dropdown__wrap";
31360
- const element = el.querySelector(domClass);
31361
- if (element && element.__vueLoadMoreHandler__) {
31362
- element.removeEventListener("scroll", element.__vueLoadMoreHandler__);
31363
- delete element.__vueLoadMoreHandler__;
31412
+ if (el.__vueLoadMoreObserver__) {
31413
+ el.__vueLoadMoreObserver__.disconnect();
31414
+ delete el.__vueLoadMoreObserver__;
31415
+ }
31416
+ const selectTrigger = el.querySelector(".select-trigger") || el.querySelector(".el-select__wrapper") || el.querySelector("input");
31417
+ if (selectTrigger) {
31418
+ const ariaId = selectTrigger.getAttribute("aria-describedby");
31419
+ if (ariaId) {
31420
+ const poper = document.getElementById(ariaId);
31421
+ if (poper) {
31422
+ const scrollContainer = poper.querySelector(
31423
+ ".el-scrollbar .el-select-dropdown__wrap"
31424
+ ) || poper.querySelector(
31425
+ ".el-select-dropdown__wrap"
31426
+ );
31427
+ if (scrollContainer && scrollContainer.__vueLoadMoreHandler__) {
31428
+ scrollContainer.removeEventListener(
31429
+ "scroll",
31430
+ scrollContainer.__vueLoadMoreHandler__
31431
+ );
31432
+ delete scrollContainer.__vueLoadMoreHandler__;
31433
+ delete scrollContainer.__vueLoadMoreBound__;
31434
+ }
31435
+ }
31436
+ }
31364
31437
  }
31365
31438
  }
31366
31439
  };
@@ -31369,6 +31442,8 @@
31369
31442
  const ALL_SELECT_VALUE = "__ALL_SELECT__";
31370
31443
  const ALL_SELECT_LABEL = "\u5168\u9009";
31371
31444
  const ALL_UNSELECT_LABEL = "\u5168\u4E0D\u9009";
31445
+ const LOADING_VALUE = "__LOADING__";
31446
+ const LOADING_LABEL = "\u52A0\u8F7D\u4E2D...";
31372
31447
  var _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
31373
31448
  ...{
31374
31449
  name: "YcSelectV2",
@@ -31426,14 +31501,23 @@
31426
31501
  return innerOptions.value.every((opt) => currentValue.includes(opt.value));
31427
31502
  });
31428
31503
  const displayOptions = vue.computed(() => {
31429
- if (props.allSelect && props.multiple && innerOptions.value.length > 0) {
31504
+ let options = [...innerOptions.value];
31505
+ if (props.allSelect && props.multiple && options.length > 0) {
31430
31506
  const allSelectOption = {
31431
31507
  label: isAllSelected.value ? ALL_UNSELECT_LABEL : ALL_SELECT_LABEL,
31432
31508
  value: ALL_SELECT_VALUE
31433
31509
  };
31434
- return [allSelectOption, ...innerOptions.value];
31510
+ options = [allSelectOption, ...options];
31511
+ }
31512
+ if (loading.value && hasMore.value) {
31513
+ const loadingOption = {
31514
+ label: LOADING_LABEL,
31515
+ value: LOADING_VALUE,
31516
+ disabled: true
31517
+ };
31518
+ options = [...options, loadingOption];
31435
31519
  }
31436
- return innerOptions.value;
31520
+ return options;
31437
31521
  });
31438
31522
  const initData = async () => {
31439
31523
  if (props.searchMode === "local" && props.options.length > 0) {
@@ -31731,8 +31815,9 @@
31731
31815
  key: item.value,
31732
31816
  label: item.label,
31733
31817
  value: item.value,
31734
- disabled: item.disabled
31735
- }, null, 8, ["label", "value", "disabled"]);
31818
+ disabled: item.disabled,
31819
+ class: vue.normalizeClass({ "yc-select-v2-loading": item.value === "__LOADING__" })
31820
+ }, null, 8, ["label", "value", "disabled", "class"]);
31736
31821
  }),
31737
31822
  128
31738
31823
  /* KEYED_FRAGMENT */
@@ -59893,6 +59978,7 @@
59893
59978
  exports.ReboundCountTo = YcReboundCountTo;
59894
59979
  exports.SIZE_MAP = SIZE_MAP;
59895
59980
  exports.STATUS_CONFIG_MAP = STATUS_CONFIG_MAP;
59981
+ exports.TableColumnsEmptyTextInjectionKey = TableColumnsEmptyTextInjectionKey;
59896
59982
  exports.TableFormFieldRefInjectionKey = TableFormFieldRefInjectionKey;
59897
59983
  exports.TableFormRefInjectionKey = TableFormRefInjectionKey;
59898
59984
  exports.TableFormRowInfoInjectionKey = TableFormRowInfoInjectionKey;
package/index.min.css CHANGED
@@ -1,5 +1,6 @@
1
1
  .yc-svg-icon[data-v-34e1f2f7]{display:inline-block;-webkit-mask-size:contain;mask-size:contain;vertical-align:middle}.yc-svg-icon--original[data-v-34e1f2f7]{-o-object-fit:contain;object-fit:contain}
2
2
  .yc-plus-page[data-v-7c1490fd]{height:100%}.yc-plus-page[data-v-7c1490fd] [data-v-7c1490fd] .plus-page>.el-card{border-radius:8px}[data-v-7c1490fd] .yc-search-card-body{padding-right:0}[data-v-7c1490fd] .plus-table-title-bar__toolbar__icon{font-size:16px!important;position:relative;top:-2px}.column-settings-wrapper[data-v-7c1490fd]{align-items:center;cursor:pointer;display:flex;gap:4px;margin-left:8px}.column-settings-text[data-v-7c1490fd]{font-size:14px}
3
+ .yc-select-v2-loading.el-select-dropdown__item{color:#909399;cursor:default;font-size:13px;pointer-events:none;text-align:center}.yc-select-v2-loading.el-select-dropdown__item.is-disabled{color:#909399;cursor:default}
3
4
  .el-tree .el-tree-node__content{position:relative}.yc-tree-node-label-wrapper{align-items:center;display:flex;flex:1;min-width:0}.yc-tree-node-label{font-size:12px}.yc-tree-node-line-ver{border-left:1px dashed var(--el-border-color-light,#dcdfe6);display:block;height:100%;left:0;position:absolute;top:0}.yc-tree-node-line-ver.last-node-line{border-left:1px dashed transparent}.yc-tree-node-line-ver.last-node-isLeaf-line{height:50%}.yc-tree-node-line-hor{border-bottom:1px dashed var(--el-border-color-light,#dcdfe6);display:block;height:0;left:0;position:absolute;top:50%}
4
5
  .yc-plus-tree[data-v-0043eed3]{display:flex;flex-direction:column;height:100%;overflow:auto}.yc-plus-tree[data-v-0043eed3] .search-input[data-v-0043eed3]{flex-shrink:0;margin-bottom:16px}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3]{flex:1;min-height:0;overflow:hidden}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] [data-v-0043eed3] .el-tree-v2{overflow-x:visible!important}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .inline-input-node[data-v-0043eed3]{align-items:center;display:flex;flex:1;padding-left:0;padding-right:8px;position:relative;z-index:1}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .inline-input-node[data-v-0043eed3] .inline-input[data-v-0043eed3]{flex-shrink:0;width:100%}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .inline-input-node[data-v-0043eed3] .inline-input[data-v-0043eed3] [data-v-0043eed3] .el-input__wrapper{border-radius:4px;box-shadow:0 0 0 1px var(--el-border-color) inset;font-size:14px;height:26px;line-height:18px;padding:0 8px;transition:box-shadow .2s ease}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .inline-input-node[data-v-0043eed3] .inline-input[data-v-0043eed3] [data-v-0043eed3] .el-input__wrapper[data-v-0043eed3]:hover{box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .inline-input-node[data-v-0043eed3] .inline-input[data-v-0043eed3] [data-v-0043eed3] .el-input__wrapper.is-focus[data-v-0043eed3]{box-shadow:0 0 0 1px var(--el-color-primary) inset}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .inline-input-node[data-v-0043eed3] .inline-input[data-v-0043eed3] [data-v-0043eed3] .el-input__inner{color:rgba(0,0,0,.7);font-size:14px;height:24px;line-height:18px}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .inline-input-node[data-v-0043eed3] .inline-input[data-v-0043eed3] [data-v-0043eed3] .el-input__inner[data-v-0043eed3]::-moz-placeholder{color:rgba(0,0,0,.4)}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .inline-input-node[data-v-0043eed3] .inline-input[data-v-0043eed3] [data-v-0043eed3] .el-input__inner[data-v-0043eed3]::placeholder{color:rgba(0,0,0,.4)}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] [data-v-0043eed3] .el-tree-node__content:hover{background-color:var(--el-color-primary-light-9)}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] [data-v-0043eed3] .el-tree-node__content:hover .label-text[data-v-0043eed3]{color:var(--el-color-primary)}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] [data-v-0043eed3] .el-tree-node__content:hover .label-text{color:var(--el-color-primary)}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] [data-v-0043eed3] .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] [data-v-0043eed3] .el-tree-node.is-current>.el-tree-node__content .label-text{color:var(--el-color-primary)}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3]{align-items:center;display:flex;gap:4px;width:100%}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3][data-v-0043eed3]:hover .node-actions[data-v-0043eed3]{opacity:1;pointer-events:auto}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] .node-label[data-v-0043eed3],.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] [data-v-0043eed3] .custom-node-label{align-items:center;display:flex;flex:1;gap:4px;min-width:0}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] .node-label[data-v-0043eed3] [data-v-0043eed3] .el-tooltip__trigger,.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] [data-v-0043eed3] .custom-node-label [data-v-0043eed3] .el-tooltip__trigger{display:block;min-width:0;overflow:hidden}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] .node-label[data-v-0043eed3] .label-text[data-v-0043eed3],.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] .node-label[data-v-0043eed3] .node-text[data-v-0043eed3],.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] [data-v-0043eed3] .custom-node-label .label-text[data-v-0043eed3],.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] [data-v-0043eed3] .custom-node-label .node-text[data-v-0043eed3]{color:var(--el-text-color-primary);display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] .node-label[data-v-0043eed3] .label-text[data-v-0043eed3] [data-v-0043eed3] .highlight-keyword,.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] .node-label[data-v-0043eed3] .node-text[data-v-0043eed3] [data-v-0043eed3] .highlight-keyword,.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] [data-v-0043eed3] .custom-node-label .label-text[data-v-0043eed3] [data-v-0043eed3] .highlight-keyword,.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] [data-v-0043eed3] .custom-node-label .node-text[data-v-0043eed3] [data-v-0043eed3] .highlight-keyword{background-color:var(--el-color-primary-light-9);border-radius:2px;color:var(--el-color-primary);font-weight:600;padding:0 2px}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] .node-label[data-v-0043eed3] .node-count[data-v-0043eed3],.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] [data-v-0043eed3] .custom-node-label .node-count[data-v-0043eed3]{color:var(--el-text-color-secondary);font-size:12px}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] .node-actions[data-v-0043eed3]{align-items:center;display:flex;flex-shrink:0;margin-left:auto;margin-right:8px;opacity:0;pointer-events:none;transition:opacity .2s ease}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] .node-actions[data-v-0043eed3] .action-icon-wrapper[data-v-0043eed3]{align-items:center;cursor:pointer;display:flex;justify-content:center}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] .node-actions[data-v-0043eed3] .action-icon[data-v-0043eed3]{align-items:center;border-radius:4px;color:var(--el-color-primary);cursor:pointer;display:flex;height:20px;justify-content:center;transition:background-color .2s ease;width:20px}.yc-plus-tree[data-v-0043eed3] .tree-container[data-v-0043eed3] .node-label-wrapper[data-v-0043eed3] .node-actions[data-v-0043eed3] .action-icon[data-v-0043eed3][data-v-0043eed3]:hover{background-color:var(--el-color-primary-light-8)}.tree-dropdown-menu[data-v-0043eed3]{border-radius:8px!important;min-width:156px!important;padding:8px!important}.tree-dropdown-menu[data-v-0043eed3] [data-v-0043eed3] .el-dropdown-menu__item{border-radius:8px;font-size:12px;height:32px;line-height:32px;margin:0;padding:0 12px;transition:background-color .2s ease}.tree-dropdown-menu[data-v-0043eed3] [data-v-0043eed3] .el-dropdown-menu__item[data-v-0043eed3]:hover{background-color:var(--el-color-primary-light-9)!important;color:var(--el-color-primary)!important}.tree-dropdown-menu[data-v-0043eed3] [data-v-0043eed3] .el-dropdown-menu__item[data-v-0043eed3]:not(:last-child){margin-bottom:4px}.tree-dropdown-menu[data-v-0043eed3] [data-v-0043eed3] .el-divider{border-top:1px solid #e5e7eb;margin:12px 0}.tree-dropdown-menu[data-v-0043eed3] [data-v-0043eed3] .sortable-ghost{background-color:var(--el-color-primary-light-9);border:1px dashed var(--el-color-primary);border-radius:4px;opacity:.4}.tree-dropdown-menu[data-v-0043eed3] [data-v-0043eed3] .sortable-chosen{background-color:var(--el-color-primary-light-8);box-shadow:0 2px 8px rgba(0,0,0,.1)}.tree-dropdown-menu[data-v-0043eed3] [data-v-0043eed3] .sortable-drag{background-color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.15);cursor:move;opacity:1;transform:rotate(2deg)}.tree-dropdown-menu[data-v-0043eed3] [data-v-0043eed3] .sortable-fallback{-webkit-user-select:none;-moz-user-select:none;user-select:none}
5
6
  .tree-dropdown-popper{border:none!important;border-radius:8px!important;overflow:hidden!important}.yc-plus-tree .highlight-keyword{background-color:var(--el-color-primary-light-9);border-radius:2px;color:var(--el-color-primary);font-weight:600;padding:0 2px}.el-tree-node__content:has([data-input-node=true]) .el-tree-node__expand-icon{display:none!important}.sortable-ghost{opacity:.3!important;position:relative!important}.drop-target{background-color:var(--el-color-primary-light-9)!important;border-radius:4px}.drop-target:before{background:var(--el-color-primary);border-radius:1.5px;bottom:0;content:"";left:calc(var(--drop-indent, 0px) - 3px);opacity:.6;position:absolute;top:0;width:3px;z-index:1}