yc-pro-components 0.0.20 → 0.0.21

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 (59) hide show
  1. package/es/components/index.mjs +3 -1
  2. package/es/components/yc-plus-page/index.d.ts +5 -1
  3. package/es/components/yc-plus-page/index.mjs +5 -1
  4. package/es/components/yc-plus-page/src/constants.d.ts +22 -0
  5. package/es/components/yc-plus-page/src/constants.mjs +41 -0
  6. package/es/components/yc-plus-page/src/header-filter-cell.vue.d.ts +85 -0
  7. package/es/components/yc-plus-page/src/header-filter-cell.vue.mjs +6 -0
  8. package/es/components/yc-plus-page/src/header-filter-cell.vue2.mjs +354 -0
  9. package/es/components/yc-plus-page/src/index.vue.d.ts +327 -23
  10. package/es/components/yc-plus-page/src/index.vue.mjs +1 -1
  11. package/es/components/yc-plus-page/src/index.vue2.mjs +126 -8
  12. package/es/components/yc-plus-page/src/type.d.ts +112 -0
  13. package/es/components/yc-plus-page/src/use-header-filter.d.ts +55 -0
  14. package/es/components/yc-plus-page/src/use-header-filter.mjs +172 -0
  15. package/es/index.css +2 -1
  16. package/es/index.mjs +3 -1
  17. package/index.css +10 -6
  18. package/index.js +844 -163
  19. package/index.min.css +2 -1
  20. package/index.min.js +7 -7
  21. package/index.min.mjs +7 -7
  22. package/index.mjs +839 -164
  23. package/lib/components/index.js +8 -0
  24. package/lib/components/yc-plus-page/index.d.ts +5 -1
  25. package/lib/components/yc-plus-page/index.js +10 -0
  26. package/lib/components/yc-plus-page/src/constants.d.ts +22 -0
  27. package/lib/components/yc-plus-page/src/constants.js +46 -0
  28. package/lib/components/yc-plus-page/src/header-filter-cell.vue.d.ts +85 -0
  29. package/lib/components/yc-plus-page/src/header-filter-cell.vue.js +10 -0
  30. package/lib/components/yc-plus-page/src/header-filter-cell.vue2.js +358 -0
  31. package/lib/components/yc-plus-page/src/index.vue.d.ts +327 -23
  32. package/lib/components/yc-plus-page/src/index.vue.js +1 -1
  33. package/lib/components/yc-plus-page/src/index.vue2.js +125 -7
  34. package/lib/components/yc-plus-page/src/type.d.ts +112 -0
  35. package/lib/components/yc-plus-page/src/use-header-filter.d.ts +55 -0
  36. package/lib/components/yc-plus-page/src/use-header-filter.js +174 -0
  37. package/lib/index.css +2 -1
  38. package/lib/index.js +8 -0
  39. package/locale/en.js +1 -1
  40. package/locale/en.min.js +1 -1
  41. package/locale/en.min.mjs +1 -1
  42. package/locale/en.mjs +1 -1
  43. package/locale/ja.js +1 -1
  44. package/locale/ja.min.js +1 -1
  45. package/locale/ja.min.mjs +1 -1
  46. package/locale/ja.mjs +1 -1
  47. package/locale/ko.js +1 -1
  48. package/locale/ko.min.js +1 -1
  49. package/locale/ko.min.mjs +1 -1
  50. package/locale/ko.mjs +1 -1
  51. package/locale/zh-cn.js +1 -1
  52. package/locale/zh-cn.min.js +1 -1
  53. package/locale/zh-cn.min.mjs +1 -1
  54. package/locale/zh-cn.mjs +1 -1
  55. package/locale/zh-tw.js +1 -1
  56. package/locale/zh-tw.min.js +1 -1
  57. package/locale/zh-tw.min.mjs +1 -1
  58. package/locale/zh-tw.mjs +1 -1
  59. package/package.json +1 -1
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! yc-pro-components v0.0.20 */
1
+ /*! yc-pro-components v0.0.21 */
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) :
@@ -8589,8 +8589,8 @@
8589
8589
  vue.provide(DictStoreInjectionKey, dictStore);
8590
8590
  }
8591
8591
 
8592
- const _hoisted_1$q = { class: "plus-dialog-body" };
8593
- var _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
8592
+ const _hoisted_1$r = { class: "plus-dialog-body" };
8593
+ var _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
8594
8594
  ...{
8595
8595
  name: "PlusDialog",
8596
8596
  inheritAttrs: false
@@ -8655,7 +8655,7 @@
8655
8655
  class: "plus-dialog"
8656
8656
  }, _ctx.$attrs), vue.createSlots({
8657
8657
  default: vue.withCtx(() => [
8658
- vue.createElementVNode("div", _hoisted_1$q, [
8658
+ vue.createElementVNode("div", _hoisted_1$r, [
8659
8659
  vue.renderSlot(_ctx.$slots, "default")
8660
8660
  ])
8661
8661
  ]),
@@ -8727,25 +8727,25 @@
8727
8727
  return target;
8728
8728
  };
8729
8729
 
8730
- var Dialog = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["__file", "index.vue"]]);
8730
+ var Dialog = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["__file", "index.vue"]]);
8731
8731
 
8732
8732
  const PlusDialog = Dialog;
8733
8733
 
8734
- const _hoisted_1$p = /* @__PURE__ */ vue.createElementVNode(
8734
+ const _hoisted_1$q = /* @__PURE__ */ vue.createElementVNode(
8735
8735
  "span",
8736
8736
  null,
8737
8737
  null,
8738
8738
  -1
8739
8739
  /* HOISTED */
8740
8740
  );
8741
- const _hoisted_2$f = /* @__PURE__ */ vue.createElementVNode(
8741
+ const _hoisted_2$g = /* @__PURE__ */ vue.createElementVNode(
8742
8742
  "span",
8743
8743
  null,
8744
8744
  null,
8745
8745
  -1
8746
8746
  /* HOISTED */
8747
8747
  );
8748
- var _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
8748
+ var _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
8749
8749
  ...{
8750
8750
  name: "PlusPagination"
8751
8751
  },
@@ -8787,7 +8787,7 @@
8787
8787
  },
8788
8788
  [
8789
8789
  _ctx.align === "right" || _ctx.align === "center" ? vue.renderSlot(_ctx.$slots, "pagination-left", { key: 0 }, () => [
8790
- _hoisted_1$p
8790
+ _hoisted_1$q
8791
8791
  ]) : vue.createCommentVNode("v-if", true),
8792
8792
  vue.createVNode(vue.unref(elementPlus.ElPagination), vue.mergeProps({
8793
8793
  layout: "total, sizes, prev, pager, next, jumper",
@@ -8801,7 +8801,7 @@
8801
8801
  onCurrentChange: handleCurrentChange
8802
8802
  }), null, 16, ["current-page", "page-size", "total", "page-sizes"]),
8803
8803
  _ctx.align === "left" || _ctx.align === "center" ? vue.renderSlot(_ctx.$slots, "pagination-right", { key: 1 }, () => [
8804
- _hoisted_2$f
8804
+ _hoisted_2$g
8805
8805
  ]) : vue.createCommentVNode("v-if", true)
8806
8806
  ],
8807
8807
  2
@@ -8811,11 +8811,11 @@
8811
8811
  }
8812
8812
  });
8813
8813
 
8814
- var Pagination = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["__file", "index.vue"]]);
8814
+ var Pagination = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["__file", "index.vue"]]);
8815
8815
 
8816
8816
  const PlusPagination = Pagination;
8817
8817
 
8818
- var _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
8818
+ var _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
8819
8819
  ...{
8820
8820
  name: "PlusRadio"
8821
8821
  },
@@ -9000,7 +9000,7 @@
9000
9000
  }
9001
9001
  });
9002
9002
 
9003
- var Radio = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["__file", "index.vue"]]);
9003
+ var Radio = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["__file", "index.vue"]]);
9004
9004
 
9005
9005
  const PlusRadio = Radio;
9006
9006
 
@@ -15062,13 +15062,13 @@
15062
15062
  ZoomOut: zoom_out_default
15063
15063
  });
15064
15064
 
15065
- const _hoisted_1$o = {
15065
+ const _hoisted_1$p = {
15066
15066
  key: 0,
15067
15067
  class: "plus-table-action-bar__dropdown__link"
15068
15068
  };
15069
- const _hoisted_2$e = { class: "plus-table-action-bar__dropdown__link" };
15070
- const _hoisted_3$a = { class: "plus-table-action-bar__more-text" };
15071
- var _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
15069
+ const _hoisted_2$f = { class: "plus-table-action-bar__dropdown__link" };
15070
+ const _hoisted_3$b = { class: "plus-table-action-bar__more-text" };
15071
+ var _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
15072
15072
  ...{
15073
15073
  name: "PlusTableActionBar"
15074
15074
  },
@@ -15384,7 +15384,7 @@
15384
15384
  )
15385
15385
  ]),
15386
15386
  default: vue.withCtx(() => [
15387
- _ctx.moreType === "icon" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$o, [
15387
+ _ctx.moreType === "icon" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$p, [
15388
15388
  vue.renderSlot(_ctx.$slots, "action-bar-more-icon", {}, () => [
15389
15389
  vue.createVNode(vue.unref(elementPlus.ElIcon), null, {
15390
15390
  default: vue.withCtx(() => [
@@ -15399,10 +15399,10 @@
15399
15399
  { key: 1 },
15400
15400
  [
15401
15401
  vue.createCommentVNode(" \u9ED8\u8BA4 "),
15402
- vue.createElementVNode("span", _hoisted_2$e, [
15402
+ vue.createElementVNode("span", _hoisted_2$f, [
15403
15403
  vue.createElementVNode(
15404
15404
  "span",
15405
- _hoisted_3$a,
15405
+ _hoisted_3$b,
15406
15406
  vue.toDisplayString(vue.unref(t)("plus.table.more")),
15407
15407
  1
15408
15408
  /* TEXT */
@@ -15433,9 +15433,9 @@
15433
15433
  }
15434
15434
  });
15435
15435
 
15436
- var PlusTableActionBar = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__file", "table-action-bar.vue"]]);
15436
+ var PlusTableActionBar = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["__file", "table-action-bar.vue"]]);
15437
15437
 
15438
- var _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
15438
+ var _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
15439
15439
  ...{
15440
15440
  name: "PlusRender"
15441
15441
  },
@@ -15503,12 +15503,12 @@
15503
15503
  }
15504
15504
  });
15505
15505
 
15506
- var Render = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__file", "index.vue"]]);
15506
+ var Render = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__file", "index.vue"]]);
15507
15507
 
15508
15508
  const PlusRender = Render;
15509
15509
 
15510
- const _hoisted_1$n = { class: "plus-date-picker__middle" };
15511
- var _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
15510
+ const _hoisted_1$o = { class: "plus-date-picker__middle" };
15511
+ var _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
15512
15512
  ...{
15513
15513
  name: "PlusDatePicker"
15514
15514
  },
@@ -15613,7 +15613,7 @@
15613
15613
  }), null, 16, ["modelValue", "type", "value-format", "placeholder", "disabled"]),
15614
15614
  vue.createElementVNode(
15615
15615
  "span",
15616
- _hoisted_1$n,
15616
+ _hoisted_1$o,
15617
15617
  vue.toDisplayString(_ctx.rangeSeparator),
15618
15618
  1
15619
15619
  /* TEXT */
@@ -15644,11 +15644,11 @@
15644
15644
  }
15645
15645
  });
15646
15646
 
15647
- var DatePicker = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__file", "index.vue"]]);
15647
+ var DatePicker = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__file", "index.vue"]]);
15648
15648
 
15649
15649
  const PlusDatePicker = DatePicker;
15650
15650
 
15651
- var _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
15651
+ var _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
15652
15652
  ...{
15653
15653
  name: "PlusInputTag"
15654
15654
  },
@@ -15785,7 +15785,7 @@
15785
15785
  }
15786
15786
  });
15787
15787
 
15788
- var InputTag = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["__file", "index.vue"]]);
15788
+ var InputTag = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__file", "index.vue"]]);
15789
15789
 
15790
15790
  const PlusInputTag = InputTag;
15791
15791
 
@@ -15878,9 +15878,9 @@
15878
15878
  );
15879
15879
  const getFieldComponent = (valueType) => Reflect.get(FieldComponentMap, valueType) || {};
15880
15880
 
15881
- const _hoisted_1$m = { class: "el-form-item__error" };
15882
- const _hoisted_2$d = { class: "plus-form-item__label" };
15883
- var _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
15881
+ const _hoisted_1$n = { class: "el-form-item__error" };
15882
+ const _hoisted_2$e = { class: "plus-form-item__label" };
15883
+ var _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
15884
15884
  ...{
15885
15885
  name: "PlusFormItem"
15886
15886
  },
@@ -16435,7 +16435,7 @@
16435
16435
  vue.unref(isFunction)(_ctx.renderErrorMessage) ? {
16436
16436
  name: "error",
16437
16437
  fn: vue.withCtx(({ error }) => [
16438
- vue.createElementVNode("div", _hoisted_1$m, [
16438
+ vue.createElementVNode("div", _hoisted_1$n, [
16439
16439
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.renderErrorMessage), vue.mergeProps(props, {
16440
16440
  value: state.value,
16441
16441
  error,
@@ -16448,7 +16448,7 @@
16448
16448
  _ctx.hasLabel ? {
16449
16449
  name: "label",
16450
16450
  fn: vue.withCtx(({ label: currentLabel }) => [
16451
- vue.createElementVNode("span", _hoisted_2$d, [
16451
+ vue.createElementVNode("span", _hoisted_2$e, [
16452
16452
  _ctx.renderLabel && vue.unref(isFunction)(_ctx.renderLabel) ? (vue.openBlock(), vue.createElementBlock(
16453
16453
  vue.Fragment,
16454
16454
  { key: 0 },
@@ -16506,11 +16506,11 @@
16506
16506
  }
16507
16507
  });
16508
16508
 
16509
- var FormItem = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__file", "index.vue"]]);
16509
+ var FormItem = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["__file", "index.vue"]]);
16510
16510
 
16511
16511
  const PlusFormItem = FormItem;
16512
16512
 
16513
- var _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
16513
+ var _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
16514
16514
  ...{
16515
16515
  name: "PlusCollapseTransition"
16516
16516
  },
@@ -16561,17 +16561,17 @@
16561
16561
  }
16562
16562
  });
16563
16563
 
16564
- var PlusCollapseTransition = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__file", "collapse-transition.vue"]]);
16564
+ var PlusCollapseTransition = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__file", "collapse-transition.vue"]]);
16565
16565
 
16566
- const _hoisted_1$l = {
16566
+ const _hoisted_1$m = {
16567
16567
  key: 0,
16568
16568
  class: "plus-form-item-previous"
16569
16569
  };
16570
- const _hoisted_2$c = {
16570
+ const _hoisted_2$d = {
16571
16571
  key: 1,
16572
16572
  class: "plus-form-item-extra"
16573
16573
  };
16574
- var _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
16574
+ var _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
16575
16575
  ...{
16576
16576
  name: "PlusFormContent"
16577
16577
  },
@@ -16636,7 +16636,7 @@
16636
16636
  {
16637
16637
  default: vue.withCtx(() => [
16638
16638
  vue.createCommentVNode(" el-form-item\u4E0A\u4E00\u884C\u7684\u5185\u5BB9 "),
16639
- item.renderPrevious || _ctx.$slots[vue.unref(getPreviousSlotName)(item.prop)] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$l, [
16639
+ item.renderPrevious || _ctx.$slots[vue.unref(getPreviousSlotName)(item.prop)] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$m, [
16640
16640
  vue.unref(isFunction)(item.renderPrevious) ? (vue.openBlock(), vue.createBlock(
16641
16641
  vue.resolveDynamicComponent(item.renderPrevious),
16642
16642
  vue.normalizeProps(vue.mergeProps({ key: 0 }, item)),
@@ -16678,7 +16678,7 @@
16678
16678
  } : void 0
16679
16679
  ]), 1040, ["model-value", "clearable", "has-label", "onChange"]),
16680
16680
  vue.createCommentVNode(" el-form-item \u4E0B\u4E00\u884C\u989D\u5916\u7684\u5185\u5BB9 "),
16681
- item.renderExtra || _ctx.$slots[vue.unref(getExtraSlotName)(item.prop)] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$c, [
16681
+ item.renderExtra || _ctx.$slots[vue.unref(getExtraSlotName)(item.prop)] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$d, [
16682
16682
  item.renderExtra && vue.unref(isFunction)(item.renderExtra) ? (vue.openBlock(), vue.createBlock(
16683
16683
  vue.resolveDynamicComponent(item.renderExtra),
16684
16684
  vue.normalizeProps(vue.mergeProps({ key: 0 }, item)),
@@ -16715,10 +16715,10 @@
16715
16715
  }
16716
16716
  });
16717
16717
 
16718
- var PlusFormContent = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__file", "form-content.vue"]]);
16718
+ var PlusFormContent = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__file", "form-content.vue"]]);
16719
16719
 
16720
- const _hoisted_1$k = { class: "plus-form__group__item__icon" };
16721
- var _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
16720
+ const _hoisted_1$l = { class: "plus-form__group__item__icon" };
16721
+ var _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
16722
16722
  ...{
16723
16723
  name: "PlusForm",
16724
16724
  inheritAttrs: false
@@ -16880,7 +16880,7 @@
16880
16880
  icon: groupItem.icon,
16881
16881
  index
16882
16882
  }, () => [
16883
- vue.createElementVNode("div", _hoisted_1$k, [
16883
+ vue.createElementVNode("div", _hoisted_1$l, [
16884
16884
  groupItem.icon ? (vue.openBlock(), vue.createBlock(
16885
16885
  vue.unref(elementPlus.ElIcon),
16886
16886
  { key: 0 },
@@ -17025,7 +17025,7 @@
17025
17025
  }
17026
17026
  });
17027
17027
 
17028
- var Form = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__file", "index.vue"]]);
17028
+ var Form = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__file", "index.vue"]]);
17029
17029
 
17030
17030
  const PlusForm = Form;
17031
17031
 
@@ -17068,9 +17068,9 @@
17068
17068
  const hasDisplayComponent = (valueType) => Object.keys(DisplayComponentMap).includes(valueType);
17069
17069
  const getDisplayComponent = (valueType) => Reflect.get(DisplayComponentMap, valueType) || {};
17070
17070
 
17071
- const _hoisted_1$j = ["innerHTML"];
17072
- const _hoisted_2$b = { class: "plus-display-item" };
17073
- const _hoisted_3$9 = /* @__PURE__ */ vue.createElementVNode(
17071
+ const _hoisted_1$k = ["innerHTML"];
17072
+ const _hoisted_2$c = { class: "plus-display-item" };
17073
+ const _hoisted_3$a = /* @__PURE__ */ vue.createElementVNode(
17074
17074
  "svg",
17075
17075
  {
17076
17076
  fill: "none",
@@ -17089,7 +17089,7 @@
17089
17089
  -1
17090
17090
  /* HOISTED */
17091
17091
  );
17092
- var _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
17092
+ var _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
17093
17093
  ...{
17094
17094
  name: "PlusDisplayItem"
17095
17095
  },
@@ -17479,7 +17479,7 @@
17479
17479
  vue.createElementVNode("span", {
17480
17480
  class: "plus-display-item",
17481
17481
  innerHTML: _ctx.column.renderHTML(displayValue.value, renderParams.value)
17482
- }, null, 8, _hoisted_1$j)
17482
+ }, null, 8, _hoisted_1$k)
17483
17483
  ],
17484
17484
  2112
17485
17485
  /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
@@ -17585,7 +17585,7 @@
17585
17585
  { key: 5 },
17586
17586
  [
17587
17587
  vue.createCommentVNode(" \u590D\u5236 "),
17588
- vue.createElementVNode("span", _hoisted_2$b, [
17588
+ vue.createElementVNode("span", _hoisted_2$c, [
17589
17589
  vue.createTextVNode(
17590
17590
  vue.toDisplayString(formatterValue.value) + " ",
17591
17591
  1
@@ -17711,7 +17711,7 @@
17711
17711
  "pointer-events": "none"
17712
17712
  }, {
17713
17713
  default: vue.withCtx(() => [
17714
- _hoisted_3$9
17714
+ _hoisted_3$a
17715
17715
  ]),
17716
17716
  _: 1
17717
17717
  /* STABLE */
@@ -17725,12 +17725,12 @@
17725
17725
  }
17726
17726
  });
17727
17727
 
17728
- var DisplayItem = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__file", "index.vue"]]);
17728
+ var DisplayItem = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__file", "index.vue"]]);
17729
17729
 
17730
17730
  const PlusDisplayItem = DisplayItem;
17731
17731
 
17732
- const _hoisted_1$i = { class: "plus-table-column__header" };
17733
- var _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
17732
+ const _hoisted_1$j = { class: "plus-table-column__header" };
17733
+ var _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
17734
17734
  ...{
17735
17735
  name: "PlusTableColumn"
17736
17736
  },
@@ -17820,7 +17820,7 @@
17820
17820
  "min-width": item.minWidth
17821
17821
  }), {
17822
17822
  header: vue.withCtx((scoped) => [
17823
- vue.createElementVNode("span", _hoisted_1$i, [
17823
+ vue.createElementVNode("span", _hoisted_1$j, [
17824
17824
  item.renderHeader && vue.unref(isFunction)(item.renderHeader) ? (vue.openBlock(), vue.createBlock(vue.unref(PlusRender), {
17825
17825
  key: 0,
17826
17826
  render: item.renderHeader,
@@ -17949,9 +17949,9 @@
17949
17949
  }
17950
17950
  });
17951
17951
 
17952
- var PlusTableColumn = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__file", "table-column.vue"]]);
17952
+ var PlusTableColumn = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__file", "table-column.vue"]]);
17953
17953
 
17954
- var _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
17954
+ var _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
17955
17955
  ...{
17956
17956
  name: "PlusTableTableColumnIndex"
17957
17957
  },
@@ -18025,10 +18025,10 @@
18025
18025
  }
18026
18026
  });
18027
18027
 
18028
- var PlusTableTableColumnIndex = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__file", "table-column-index.vue"]]);
18028
+ var PlusTableTableColumnIndex = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__file", "table-column-index.vue"]]);
18029
18029
 
18030
- const _hoisted_1$h = { class: "plus-table-column-drag-icon" };
18031
- var _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
18030
+ const _hoisted_1$i = { class: "plus-table-column-drag-icon" };
18031
+ var _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
18032
18032
  ...{
18033
18033
  name: "PlusTableColumnDragSort"
18034
18034
  },
@@ -18079,7 +18079,7 @@
18079
18079
  "class-name": "plus-table-column-drag-sort"
18080
18080
  }, _ctx.dragSortableTableColumnProps), {
18081
18081
  default: vue.withCtx(() => [
18082
- vue.createElementVNode("span", _hoisted_1$h, [
18082
+ vue.createElementVNode("span", _hoisted_1$i, [
18083
18083
  vue.renderSlot(_ctx.$slots, "drag-sort-icon", {}, () => [
18084
18084
  vue.createTextVNode("\u2637")
18085
18085
  ])
@@ -18092,13 +18092,13 @@
18092
18092
  }
18093
18093
  });
18094
18094
 
18095
- var PlusTableColumnDragSort = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__file", "table-column-drag-sort.vue"]]);
18095
+ var PlusTableColumnDragSort = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__file", "table-column-drag-sort.vue"]]);
18096
18096
 
18097
- const _hoisted_1$g = {
18097
+ const _hoisted_1$h = {
18098
18098
  key: 0,
18099
18099
  style: { "padding-top": "12px" }
18100
18100
  };
18101
- var _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
18101
+ var _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
18102
18102
  ...{
18103
18103
  name: "PlusPopover"
18104
18104
  },
@@ -18156,7 +18156,7 @@
18156
18156
  ]),
18157
18157
  default: vue.withCtx(() => [
18158
18158
  vue.renderSlot(_ctx.$slots, "default"),
18159
- _ctx.hasShowBottomButton ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$g, [
18159
+ _ctx.hasShowBottomButton ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$h, [
18160
18160
  vue.createVNode(vue.unref(elementPlus.ElButton), {
18161
18161
  size: "small",
18162
18162
  plain: "",
@@ -18197,15 +18197,15 @@
18197
18197
  }
18198
18198
  });
18199
18199
 
18200
- var Popover = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__file", "index.vue"]]);
18200
+ var Popover = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__file", "index.vue"]]);
18201
18201
 
18202
18202
  const PlusPopover = Popover;
18203
18203
 
18204
- const _hoisted_1$f = { class: "plus-table-title-bar" };
18205
- const _hoisted_2$a = { class: "plus-table-title-bar__title" };
18206
- const _hoisted_3$8 = { class: "plus-table-title-bar__toolbar" };
18207
- const _hoisted_4$6 = { class: "plus-table-title-bar__toolbar__density" };
18208
- const _hoisted_5$6 = /* @__PURE__ */ vue.createElementVNode(
18204
+ const _hoisted_1$g = { class: "plus-table-title-bar" };
18205
+ const _hoisted_2$b = { class: "plus-table-title-bar__title" };
18206
+ const _hoisted_3$9 = { class: "plus-table-title-bar__toolbar" };
18207
+ const _hoisted_4$7 = { class: "plus-table-title-bar__toolbar__density" };
18208
+ const _hoisted_5$7 = /* @__PURE__ */ vue.createElementVNode(
18209
18209
  "svg",
18210
18210
  {
18211
18211
  viewBox: "0 0 1024 1024",
@@ -18220,14 +18220,14 @@
18220
18220
  -1
18221
18221
  /* HOISTED */
18222
18222
  );
18223
- const _hoisted_6$4 = { class: "plus-table-checkbox-checkAll" };
18223
+ const _hoisted_6$5 = { class: "plus-table-checkbox-checkAll" };
18224
18224
  const _hoisted_7$4 = {
18225
18225
  key: 0,
18226
18226
  class: "plus-table-checkbox-handle"
18227
18227
  };
18228
18228
  const _hoisted_8$2 = { key: 1 };
18229
18229
  const _hoisted_9$2 = { key: 1 };
18230
- var _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
18230
+ var _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
18231
18231
  ...{
18232
18232
  name: "PlusTableToolbar"
18233
18233
  },
@@ -18378,8 +18378,8 @@
18378
18378
  });
18379
18379
  return (_ctx, _cache) => {
18380
18380
  var _a, _b, _c;
18381
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$f, [
18382
- vue.createElementVNode("div", _hoisted_2$a, [
18381
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$g, [
18382
+ vue.createElementVNode("div", _hoisted_2$b, [
18383
18383
  vue.renderSlot(_ctx.$slots, "title", {}, () => [
18384
18384
  vue.createTextVNode(
18385
18385
  vue.toDisplayString(titleBarConfig.value.title),
@@ -18388,7 +18388,7 @@
18388
18388
  )
18389
18389
  ])
18390
18390
  ]),
18391
- vue.createElementVNode("div", _hoisted_3$8, [
18391
+ vue.createElementVNode("div", _hoisted_3$9, [
18392
18392
  vue.renderSlot(_ctx.$slots, "toolbar"),
18393
18393
  ((_a = titleBarConfig.value) == null ? void 0 : _a.refresh) === true ? (vue.openBlock(), vue.createElementBlock("span", {
18394
18394
  key: 0,
@@ -18441,7 +18441,7 @@
18441
18441
  class: "plus-table-title-bar__toolbar__icon"
18442
18442
  }, {
18443
18443
  default: vue.withCtx(() => [
18444
- _hoisted_5$6
18444
+ _hoisted_5$7
18445
18445
  ]),
18446
18446
  _: 1
18447
18447
  /* STABLE */
@@ -18453,7 +18453,7 @@
18453
18453
  }, 8, ["content"])
18454
18454
  ]),
18455
18455
  default: vue.withCtx(() => [
18456
- vue.createElementVNode("div", _hoisted_4$6, [
18456
+ vue.createElementVNode("div", _hoisted_4$7, [
18457
18457
  (vue.openBlock(), vue.createElementBlock(
18458
18458
  vue.Fragment,
18459
18459
  null,
@@ -18520,7 +18520,7 @@
18520
18520
  default: vue.withCtx(() => {
18521
18521
  var _a2, _b2, _c2;
18522
18522
  return [
18523
- vue.createElementVNode("div", _hoisted_6$4, [
18523
+ vue.createElementVNode("div", _hoisted_6$5, [
18524
18524
  vue.createVNode(vue.unref(elementPlus.ElCheckbox), {
18525
18525
  modelValue: state.checkAll,
18526
18526
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => state.checkAll = $event),
@@ -18680,10 +18680,10 @@
18680
18680
  }
18681
18681
  });
18682
18682
 
18683
- var PlusTableTitleBar = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__file", "table-title-bar.vue"]]);
18683
+ var PlusTableTitleBar = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__file", "table-title-bar.vue"]]);
18684
18684
 
18685
- const _hoisted_1$e = { class: "plus-table-expand-col" };
18686
- var _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
18685
+ const _hoisted_1$f = { class: "plus-table-expand-col" };
18686
+ var _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
18687
18687
  ...{
18688
18688
  name: "PlusTable",
18689
18689
  inheritAttrs: false
@@ -19036,7 +19036,7 @@
19036
19036
  }, _ctx.expandTableColumnProps),
19037
19037
  {
19038
19038
  default: vue.withCtx((scoped) => [
19039
- vue.createElementVNode("div", _hoisted_1$e, [
19039
+ vue.createElementVNode("div", _hoisted_1$f, [
19040
19040
  vue.renderSlot(_ctx.$slots, "expand", vue.mergeProps({
19041
19041
  index: scoped.$index
19042
19042
  }, scoped))
@@ -19139,11 +19139,11 @@
19139
19139
  }
19140
19140
  });
19141
19141
 
19142
- var _Table = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__file", "index.vue"]]);
19142
+ var _Table = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__file", "index.vue"]]);
19143
19143
 
19144
19144
  const PlusTable = _Table;
19145
19145
 
19146
- var _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
19146
+ var _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
19147
19147
  ...{
19148
19148
  name: "PlusDescriptions"
19149
19149
  },
@@ -19351,11 +19351,11 @@
19351
19351
  }
19352
19352
  });
19353
19353
 
19354
- var Descriptions = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__file", "index.vue"]]);
19354
+ var Descriptions = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__file", "index.vue"]]);
19355
19355
 
19356
19356
  const PlusDescriptions = Descriptions;
19357
19357
 
19358
- var _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
19358
+ var _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
19359
19359
  ...{
19360
19360
  name: "PlusSearch"
19361
19361
  },
@@ -19576,11 +19576,11 @@
19576
19576
  }
19577
19577
  });
19578
19578
 
19579
- var Search = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__file", "index.vue"]]);
19579
+ var Search = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__file", "index.vue"]]);
19580
19580
 
19581
19581
  const PlusSearch = Search;
19582
19582
 
19583
- var _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
19583
+ var _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
19584
19584
  ...{
19585
19585
  name: "PlusDialogForm"
19586
19586
  },
@@ -19744,12 +19744,12 @@
19744
19744
  }
19745
19745
  });
19746
19746
 
19747
- var DialogForm = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__file", "index.vue"]]);
19747
+ var DialogForm = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__file", "index.vue"]]);
19748
19748
 
19749
19749
  const PlusDialogForm = DialogForm;
19750
19750
 
19751
- const _hoisted_1$d = { class: "plus-drawer-form__footer" };
19752
- var _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
19751
+ const _hoisted_1$e = { class: "plus-drawer-form__footer" };
19752
+ var _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
19753
19753
  ...{
19754
19754
  name: "PlusDrawerForm"
19755
19755
  },
@@ -19902,7 +19902,7 @@
19902
19902
  _ctx.hasFooter ? {
19903
19903
  name: "footer",
19904
19904
  fn: vue.withCtx(() => [
19905
- vue.createElementVNode("div", _hoisted_1$d, [
19905
+ vue.createElementVNode("div", _hoisted_1$e, [
19906
19906
  vue.renderSlot(_ctx.$slots, "drawer-footer", vue.normalizeProps(vue.guardReactiveProps({ handleConfirm, handleCancel })), () => [
19907
19907
  vue.createVNode(vue.unref(elementPlus.ElButton), { onClick: handleCancel }, {
19908
19908
  default: vue.withCtx(() => [
@@ -19940,12 +19940,12 @@
19940
19940
  }
19941
19941
  });
19942
19942
 
19943
- var DrawerForm = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__file", "index.vue"]]);
19943
+ var DrawerForm = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__file", "index.vue"]]);
19944
19944
 
19945
19945
  const PlusDrawerForm = DrawerForm;
19946
19946
 
19947
- const _hoisted_1$c = { class: "plus-page" };
19948
- var _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
19947
+ const _hoisted_1$d = { class: "plus-page" };
19948
+ var _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
19949
19949
  ...{
19950
19950
  name: "PlusPage"
19951
19951
  },
@@ -20102,7 +20102,7 @@
20102
20102
  setTableData
20103
20103
  });
20104
20104
  return (_ctx, _cache) => {
20105
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$c, [
20105
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$d, [
20106
20106
  _ctx.search ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(renderWrapper().search), { key: 0 }, {
20107
20107
  default: vue.withCtx(() => [
20108
20108
  vue.createVNode(vue.unref(PlusSearch), vue.mergeProps({
@@ -20226,11 +20226,11 @@
20226
20226
  }
20227
20227
  });
20228
20228
 
20229
- var Page = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__file", "index.vue"]]);
20229
+ var Page = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__file", "index.vue"]]);
20230
20230
 
20231
20231
  const PlusPage = Page;
20232
20232
 
20233
- var _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
20233
+ var _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
20234
20234
  ...{
20235
20235
  name: "PlusStepsForm"
20236
20236
  },
@@ -20371,11 +20371,11 @@
20371
20371
  }
20372
20372
  });
20373
20373
 
20374
- var StepsForm = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__file", "index.vue"]]);
20374
+ var StepsForm = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__file", "index.vue"]]);
20375
20375
 
20376
20376
  const PlusStepsForm = StepsForm;
20377
20377
 
20378
- var _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
20378
+ var _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
20379
20379
  ...{
20380
20380
  name: "PlusBreadcrumb"
20381
20381
  },
@@ -20465,13 +20465,13 @@
20465
20465
  }
20466
20466
  });
20467
20467
 
20468
- var Breadcrumb = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__file", "index.vue"]]);
20468
+ var Breadcrumb = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__file", "index.vue"]]);
20469
20469
 
20470
20470
  const PlusBreadcrumb = Breadcrumb;
20471
20471
 
20472
- const _hoisted_1$b = { class: "plus-sidebar__item-title" };
20473
- const _hoisted_2$9 = { class: "plus-sidebar__item-title" };
20474
- var _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
20472
+ const _hoisted_1$c = { class: "plus-sidebar__item-title" };
20473
+ const _hoisted_2$a = { class: "plus-sidebar__item-title" };
20474
+ var _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
20475
20475
  ...{
20476
20476
  name: "PlusSidebarItem",
20477
20477
  inheritAttrs: false
@@ -20536,7 +20536,7 @@
20536
20536
  title: vue.withCtx(() => {
20537
20537
  var _a2;
20538
20538
  return [
20539
- vue.createElementVNode("span", _hoisted_1$b, [
20539
+ vue.createElementVNode("span", _hoisted_1$c, [
20540
20540
  _ctx.renderTitle && vue.unref(isFunction)(_ctx.renderTitle) ? (vue.openBlock(), vue.createBlock(
20541
20541
  vue.resolveDynamicComponent(_ctx.renderTitle),
20542
20542
  vue.normalizeProps(vue.mergeProps({ key: 0 }, vue.unref(removeChildrenField)(_ctx.item))),
@@ -20651,7 +20651,7 @@
20651
20651
  _: 1
20652
20652
  /* STABLE */
20653
20653
  })) : vue.createCommentVNode("v-if", true),
20654
- vue.createElementVNode("span", _hoisted_2$9, [
20654
+ vue.createElementVNode("span", _hoisted_2$a, [
20655
20655
  _ctx.renderTitle && vue.unref(isFunction)(_ctx.renderTitle) ? (vue.openBlock(), vue.createBlock(
20656
20656
  vue.resolveDynamicComponent(_ctx.renderTitle),
20657
20657
  vue.normalizeProps(vue.mergeProps({ key: 0 }, vue.unref(removeChildrenField)(_ctx.item))),
@@ -20743,9 +20743,9 @@
20743
20743
  }
20744
20744
  });
20745
20745
 
20746
- var SidebarItem = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__file", "sidebar-item.vue"]]);
20746
+ var SidebarItem = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__file", "sidebar-item.vue"]]);
20747
20747
 
20748
- var _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
20748
+ var _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
20749
20749
  ...{
20750
20750
  name: "PlusSidebar"
20751
20751
  },
@@ -20911,33 +20911,33 @@
20911
20911
  }
20912
20912
  });
20913
20913
 
20914
- var Sidebar = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__file", "index.vue"]]);
20914
+ var Sidebar = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__file", "index.vue"]]);
20915
20915
 
20916
20916
  const PlusSidebar = Sidebar;
20917
20917
  const PlusSidebarItem = SidebarItem;
20918
20918
 
20919
- const _hoisted_1$a = { class: "plus-header__left" };
20920
- const _hoisted_2$8 = ["src"];
20921
- const _hoisted_3$7 = {
20919
+ const _hoisted_1$b = { class: "plus-header__left" };
20920
+ const _hoisted_2$9 = ["src"];
20921
+ const _hoisted_3$8 = {
20922
20922
  key: 1,
20923
20923
  class: "plus-header__title"
20924
20924
  };
20925
- const _hoisted_4$5 = /* @__PURE__ */ vue.createElementVNode(
20925
+ const _hoisted_4$6 = /* @__PURE__ */ vue.createElementVNode(
20926
20926
  "div",
20927
20927
  { class: "plus-header__placeholder" },
20928
20928
  null,
20929
20929
  -1
20930
20930
  /* HOISTED */
20931
20931
  );
20932
- const _hoisted_5$5 = { class: "plus-header__right" };
20933
- const _hoisted_6$3 = { class: "plus-header__dropdown-area" };
20932
+ const _hoisted_5$6 = { class: "plus-header__right" };
20933
+ const _hoisted_6$4 = { class: "plus-header__dropdown-area" };
20934
20934
  const _hoisted_7$3 = ["src"];
20935
20935
  const _hoisted_8$1 = { class: "plus-header__username" };
20936
20936
  const _hoisted_9$1 = {
20937
20937
  key: 0,
20938
20938
  class: "plus-header-placeholder"
20939
20939
  };
20940
- var _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
20940
+ var _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
20941
20941
  ...{
20942
20942
  name: "PlusHeader"
20943
20943
  },
@@ -20975,7 +20975,7 @@
20975
20975
  class: vue.normalizeClass(["plus-header", { "is-fixed": _ctx.fixed }])
20976
20976
  }, {
20977
20977
  default: vue.withCtx(() => [
20978
- vue.createElementVNode("div", _hoisted_1$a, [
20978
+ vue.createElementVNode("div", _hoisted_1$b, [
20979
20979
  _ctx.renderHeaderLeft && vue.unref(isFunction)(_ctx.renderHeaderLeft) ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.renderHeaderLeft), {
20980
20980
  key: 0,
20981
20981
  logo: _ctx.logo,
@@ -20993,10 +20993,10 @@
20993
20993
  src: _ctx.logo,
20994
20994
  alt: "",
20995
20995
  class: "plus-header__logo"
20996
- }, null, 8, _hoisted_2$8)) : vue.createCommentVNode("v-if", true),
20996
+ }, null, 8, _hoisted_2$9)) : vue.createCommentVNode("v-if", true),
20997
20997
  _ctx.title ? (vue.openBlock(), vue.createElementBlock(
20998
20998
  "h2",
20999
- _hoisted_3$7,
20999
+ _hoisted_3$8,
21000
21000
  vue.toDisplayString(_ctx.title),
21001
21001
  1
21002
21002
  /* TEXT */
@@ -21006,8 +21006,8 @@
21006
21006
  /* STABLE_FRAGMENT */
21007
21007
  ))
21008
21008
  ]),
21009
- _hoisted_4$5,
21010
- vue.createElementVNode("div", _hoisted_5$5, [
21009
+ _hoisted_4$6,
21010
+ vue.createElementVNode("div", _hoisted_5$6, [
21011
21011
  _ctx.renderHeaderRight && vue.unref(isFunction)(_ctx.renderHeaderRight) ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.renderHeaderRight), {
21012
21012
  key: 0,
21013
21013
  "user-info": _ctx.userInfo,
@@ -21066,7 +21066,7 @@
21066
21066
  })
21067
21067
  ]),
21068
21068
  default: vue.withCtx(() => [
21069
- vue.createElementVNode("span", _hoisted_6$3, [
21069
+ vue.createElementVNode("span", _hoisted_6$4, [
21070
21070
  vue.createCommentVNode(" avatar "),
21071
21071
  _ctx.userInfo.avatar ? (vue.openBlock(), vue.createElementBlock("img", {
21072
21072
  key: 0,
@@ -21118,16 +21118,16 @@
21118
21118
  }
21119
21119
  });
21120
21120
 
21121
- var Header = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__file", "index.vue"]]);
21121
+ var Header = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__file", "index.vue"]]);
21122
21122
 
21123
21123
  const PlusHeader = Header;
21124
21124
 
21125
- const _hoisted_1$9 = { class: "plus-layout-main" };
21126
- const _hoisted_2$7 = {
21125
+ const _hoisted_1$a = { class: "plus-layout-main" };
21126
+ const _hoisted_2$8 = {
21127
21127
  key: 0,
21128
21128
  class: "plus-layout-extra"
21129
21129
  };
21130
- var _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
21130
+ var _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
21131
21131
  ...{
21132
21132
  name: "PlusLayout"
21133
21133
  },
@@ -21246,9 +21246,9 @@
21246
21246
  } : void 0
21247
21247
  ]), 1040, ["collapse"])) : vue.createCommentVNode("v-if", true),
21248
21248
  vue.createCommentVNode(" \u4E3B\u5185\u5BB9 "),
21249
- vue.createElementVNode("main", _hoisted_1$9, [
21249
+ vue.createElementVNode("main", _hoisted_1$a, [
21250
21250
  vue.createCommentVNode(" \u9762\u5305\u5C51\u4E0A\u65B9 "),
21251
- _ctx.$slots["layout-extra"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$7, [
21251
+ _ctx.$slots["layout-extra"] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$8, [
21252
21252
  vue.renderSlot(_ctx.$slots, "layout-extra")
21253
21253
  ])) : vue.createCommentVNode("v-if", true),
21254
21254
  vue.createCommentVNode(" \u9762\u5305\u5C51 "),
@@ -21321,22 +21321,22 @@
21321
21321
  }
21322
21322
  });
21323
21323
 
21324
- var Layout = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__file", "index.vue"]]);
21324
+ var Layout = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__file", "index.vue"]]);
21325
21325
 
21326
21326
  const PlusLayout = Layout;
21327
21327
 
21328
- const _hoisted_1$8 = { class: "plus-check-card__avatar-wrapper" };
21329
- const _hoisted_2$6 = { class: "plus-check-card__right-content" };
21330
- const _hoisted_3$6 = {
21328
+ const _hoisted_1$9 = { class: "plus-check-card__avatar-wrapper" };
21329
+ const _hoisted_2$7 = { class: "plus-check-card__right-content" };
21330
+ const _hoisted_3$7 = {
21331
21331
  key: 0,
21332
21332
  class: "plus-check-card__title"
21333
21333
  };
21334
- const _hoisted_4$4 = { class: "plus-check-card__title-left" };
21335
- const _hoisted_5$4 = {
21334
+ const _hoisted_4$5 = { class: "plus-check-card__title-left" };
21335
+ const _hoisted_5$5 = {
21336
21336
  key: 1,
21337
21337
  class: "plus-check-card__description"
21338
21338
  };
21339
- var _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
21339
+ var _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
21340
21340
  ...{
21341
21341
  name: "PlusCheckCard"
21342
21342
  },
@@ -21391,7 +21391,7 @@
21391
21391
  onClick: handleClick
21392
21392
  },
21393
21393
  [
21394
- vue.createElementVNode("div", _hoisted_1$8, [
21394
+ vue.createElementVNode("div", _hoisted_1$9, [
21395
21395
  vue.unref(isFunction)(_ctx.avatar) ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.avatar), {
21396
21396
  key: 0,
21397
21397
  avatar: _ctx.avatar,
@@ -21407,9 +21407,9 @@
21407
21407
  src: _ctx.avatar
21408
21408
  }, _ctx.avatarProps), null, 16, ["src"])) : vue.createCommentVNode("v-if", true)
21409
21409
  ]),
21410
- vue.createElementVNode("div", _hoisted_2$6, [
21411
- _ctx.title || _ctx.$slots.title ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$6, [
21412
- vue.createElementVNode("div", _hoisted_4$4, [
21410
+ vue.createElementVNode("div", _hoisted_2$7, [
21411
+ _ctx.title || _ctx.$slots.title ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$7, [
21412
+ vue.createElementVNode("div", _hoisted_4$5, [
21413
21413
  vue.unref(isFunction)(_ctx.title) ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.title), {
21414
21414
  key: 0,
21415
21415
  avatar: _ctx.avatar,
@@ -21451,7 +21451,7 @@
21451
21451
  }) : vue.createCommentVNode("v-if", true)
21452
21452
  ])
21453
21453
  ])) : vue.createCommentVNode("v-if", true),
21454
- _ctx.description || _ctx.$slots.description ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$4, [
21454
+ _ctx.description || _ctx.$slots.description ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$5, [
21455
21455
  vue.unref(isFunction)(_ctx.description) ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.description), {
21456
21456
  key: 0,
21457
21457
  title: _ctx.title,
@@ -21485,12 +21485,12 @@
21485
21485
  }
21486
21486
  });
21487
21487
 
21488
- var CheckCard = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__file", "index.vue"]]);
21488
+ var CheckCard = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__file", "index.vue"]]);
21489
21489
 
21490
21490
  const PlusCheckCard = CheckCard;
21491
21491
 
21492
- const _hoisted_1$7 = { class: "plus-check-card-group" };
21493
- var _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
21492
+ const _hoisted_1$8 = { class: "plus-check-card-group" };
21493
+ var _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
21494
21494
  ...{
21495
21495
  name: "PlusCheckCardGroup"
21496
21496
  },
@@ -21544,7 +21544,7 @@
21544
21544
  emit("extra", item);
21545
21545
  };
21546
21546
  return (_ctx, _cache) => {
21547
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [
21547
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$8, [
21548
21548
  (vue.openBlock(true), vue.createElementBlock(
21549
21549
  vue.Fragment,
21550
21550
  null,
@@ -21603,7 +21603,7 @@
21603
21603
  }
21604
21604
  });
21605
21605
 
21606
- var CheckCardGroup = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__file", "index.vue"]]);
21606
+ var CheckCardGroup = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__file", "index.vue"]]);
21607
21607
 
21608
21608
  const PlusCheckCardGroup = CheckCardGroup;
21609
21609
 
@@ -30868,7 +30868,7 @@
30868
30868
  }
30869
30869
  };
30870
30870
 
30871
- var _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
30871
+ var _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
30872
30872
  ...{
30873
30873
  name: "YcConfigProvider"
30874
30874
  },
@@ -30914,7 +30914,7 @@
30914
30914
  }
30915
30915
  });
30916
30916
 
30917
- var ConfigProvider = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__file", "index.vue"]]);
30917
+ var ConfigProvider = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__file", "index.vue"]]);
30918
30918
 
30919
30919
  function useYcConfig() {
30920
30920
  const config = vue.inject(YC_CONFIG_KEY, DEFAULT_YC_CONFIG);
@@ -30966,8 +30966,8 @@
30966
30966
 
30967
30967
  const YcConfigProvider = l(ConfigProvider);
30968
30968
 
30969
- const _hoisted_1$6 = ["src"];
30970
- var _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
30969
+ const _hoisted_1$7 = ["src"];
30970
+ var _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
30971
30971
  ...{
30972
30972
  name: "YcSvgIcon",
30973
30973
  inheritAttrs: false
@@ -31014,7 +31014,7 @@
31014
31014
  opacity: _ctx.opacity
31015
31015
  },
31016
31016
  alt: ""
31017
- }), null, 16, _hoisted_1$6)) : (vue.openBlock(), vue.createElementBlock(
31017
+ }), null, 16, _hoisted_1$7)) : (vue.openBlock(), vue.createElementBlock(
31018
31018
  vue.Fragment,
31019
31019
  { key: 1 },
31020
31020
  [
@@ -31048,7 +31048,565 @@
31048
31048
  }
31049
31049
  });
31050
31050
 
31051
- var YcSvgIcon = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-34e1f2f7"], ["__file", "index.vue"]]);
31051
+ var YcSvgIcon = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-34e1f2f7"], ["__file", "index.vue"]]);
31052
+
31053
+ const OPERATOR_CATALOG = {
31054
+ string: ["=", "!=", "like", "not like", "in", "not in"],
31055
+ number: ["=", "!=", ">", ">=", "<", "<=", "in", "not in", "between"],
31056
+ date: ["=", ">", ">=", "<", "<=", "between"],
31057
+ boolean: ["is true", "is false", "is null", "is not null"],
31058
+ nullable: ["is null", "is not null"],
31059
+ json: ["contains", "not contains", "is null", "is not null"]
31060
+ };
31061
+ const OPERATOR_LABELS = {
31062
+ // 通用
31063
+ "=": "\u7B49\u4E8E",
31064
+ "!=": "\u4E0D\u7B49\u4E8E",
31065
+ ">": "\u5927\u4E8E",
31066
+ ">=": "\u5927\u4E8E\u7B49\u4E8E",
31067
+ "<": "\u5C0F\u4E8E",
31068
+ "<=": "\u5C0F\u4E8E\u7B49\u4E8E",
31069
+ like: "\u5305\u542B",
31070
+ "not like": "\u4E0D\u5305\u542B",
31071
+ in: "\u5C5E\u4E8E",
31072
+ "not in": "\u4E0D\u5C5E\u4E8E",
31073
+ between: "\u4ECB\u4E8E",
31074
+ "is null": "\u4E3A\u7A7A",
31075
+ "is not null": "\u4E0D\u4E3A\u7A7A",
31076
+ // 布尔专用
31077
+ "is true": "\u4E3A\u771F",
31078
+ "is false": "\u4E3A\u5047",
31079
+ // JSON 专用
31080
+ contains: "\u5305\u542B\u952E\u503C",
31081
+ "not contains": "\u4E0D\u5305\u542B\u952E\u503C"
31082
+ };
31083
+ const NO_VALUE_OPERATORS = [
31084
+ "empty",
31085
+ "not_empty",
31086
+ "is null",
31087
+ "is not null",
31088
+ "is true",
31089
+ "is false"
31090
+ ];
31091
+ const DEFAULT_OPERATORS = [{ label: OPERATOR_LABELS["="] || "=", code: "=" }];
31092
+
31093
+ function useHeaderFilter(options = {}) {
31094
+ const { headerFilterConfig: headerFilterConfigOption, hideHeaderFilter: hideHeaderFilterOption } = options;
31095
+ const getHeaderFilterConfig = () => {
31096
+ return typeof headerFilterConfigOption === "function" ? headerFilterConfigOption() : headerFilterConfigOption;
31097
+ };
31098
+ const getHideHeaderFilter = () => {
31099
+ return typeof hideHeaderFilterOption === "function" ? hideHeaderFilterOption() : hideHeaderFilterOption;
31100
+ };
31101
+ const isEnabled = vue.computed(() => {
31102
+ const hideHeaderFilter = getHideHeaderFilter();
31103
+ const headerFilterConfig = getHeaderFilterConfig();
31104
+ if (hideHeaderFilter === true) return false;
31105
+ if (typeof headerFilterConfig === "boolean") return headerFilterConfig;
31106
+ if (headerFilterConfig && typeof headerFilterConfig === "object") {
31107
+ return headerFilterConfig.enabled !== false;
31108
+ }
31109
+ return false;
31110
+ });
31111
+ const operatorCatalogState = vue.computed(() => {
31112
+ const headerFilterConfig = getHeaderFilterConfig();
31113
+ if (typeof headerFilterConfig === "object" && (headerFilterConfig == null ? void 0 : headerFilterConfig.operatorCatalog)) {
31114
+ return headerFilterConfig.operatorCatalog;
31115
+ }
31116
+ return {};
31117
+ });
31118
+ const fieldCatalogState = vue.computed(() => {
31119
+ const headerFilterConfig = getHeaderFilterConfig();
31120
+ if (typeof headerFilterConfig === "object" && (headerFilterConfig == null ? void 0 : headerFilterConfig.fieldCatalog)) {
31121
+ return headerFilterConfig.fieldCatalog;
31122
+ }
31123
+ return {};
31124
+ });
31125
+ const headerFiltersState = vue.reactive({
31126
+ logic: "and",
31127
+ filters: []
31128
+ });
31129
+ const initConfig = getHeaderFilterConfig();
31130
+ const orderByState = vue.reactive(
31131
+ typeof initConfig === "object" && (initConfig == null ? void 0 : initConfig.defaultOrderBy) || []
31132
+ );
31133
+ const updateCatalogs = (_operatorCatalog, _fieldCatalog) => {
31134
+ };
31135
+ const findTypeByProp = (prop) => {
31136
+ const p = String(prop || "");
31137
+ const catalog = fieldCatalogState.value || {};
31138
+ for (const [key, val] of Object.entries(catalog)) {
31139
+ if (key === p || String((val == null ? void 0 : val.allowedField) || "") === p) {
31140
+ const t = String((val == null ? void 0 : val.type) || "").toLowerCase();
31141
+ return t || void 0;
31142
+ }
31143
+ }
31144
+ return void 0;
31145
+ };
31146
+ const isFieldFilterable = (prop) => {
31147
+ const p = String(prop || "");
31148
+ const catalog = fieldCatalogState.value || {};
31149
+ for (const [, val] of Object.entries(catalog)) {
31150
+ if (String((val == null ? void 0 : val.allowedField) || "") === p) {
31151
+ return (val == null ? void 0 : val.filter) === true;
31152
+ }
31153
+ }
31154
+ return true;
31155
+ };
31156
+ const isFieldVisible = (prop) => {
31157
+ const p = String(prop || "");
31158
+ const catalog = fieldCatalogState.value || {};
31159
+ for (const [, val] of Object.entries(catalog)) {
31160
+ const allowedField = String((val == null ? void 0 : val.allowedField) || "");
31161
+ if (allowedField === p) {
31162
+ return (val == null ? void 0 : val.nullable) !== false;
31163
+ }
31164
+ }
31165
+ return true;
31166
+ };
31167
+ const getOpsByProp = (prop) => {
31168
+ const typeKey = findTypeByProp(prop);
31169
+ const source = operatorCatalogState.value[String(typeKey || "")] || OPERATOR_CATALOG[String(typeKey || "")];
31170
+ if (Array.isArray(source) && source.length) {
31171
+ return source.map((s) => {
31172
+ var _a;
31173
+ return { label: (_a = OPERATOR_LABELS[s]) != null ? _a : s, code: s };
31174
+ });
31175
+ }
31176
+ return DEFAULT_OPERATORS;
31177
+ };
31178
+ const mapOp = (op) => {
31179
+ if (op === "eq") return "=";
31180
+ if (op === "neq") return "!=";
31181
+ return op;
31182
+ };
31183
+ const upsertHeaderFilter = (field, op, value) => {
31184
+ const idx = headerFiltersState.filters.findIndex((i) => i.field === field);
31185
+ const next = {
31186
+ field,
31187
+ op: mapOp(op),
31188
+ value: value != null ? String(value) : void 0
31189
+ };
31190
+ if (op === "empty" || op === "not_empty" || op === "is null" || op === "is not null" || op === "is true" || op === "is false") {
31191
+ delete next.value;
31192
+ }
31193
+ if (idx >= 0) {
31194
+ headerFiltersState.filters.splice(idx, 1, next);
31195
+ } else {
31196
+ headerFiltersState.filters.push(next);
31197
+ }
31198
+ };
31199
+ const removeHeaderFilter = (field) => {
31200
+ const idx = headerFiltersState.filters.findIndex((i) => i.field === field);
31201
+ if (idx >= 0) {
31202
+ headerFiltersState.filters.splice(idx, 1);
31203
+ }
31204
+ };
31205
+ const setOrderBy = (field, direction) => {
31206
+ const idx = orderByState.findIndex((i) => i.field === field);
31207
+ if (!direction) {
31208
+ if (idx >= 0) orderByState.splice(idx, 1);
31209
+ return;
31210
+ }
31211
+ const next = { field, direction };
31212
+ if (idx >= 0) {
31213
+ orderByState.splice(idx, 1, next);
31214
+ } else {
31215
+ orderByState.push(next);
31216
+ }
31217
+ };
31218
+ const getMergedQuery = (baseQuery) => {
31219
+ let mergedFilters = baseQuery.filters;
31220
+ if (headerFiltersState.filters.length > 0) {
31221
+ const baseFilters = baseQuery.filters;
31222
+ if (baseFilters && typeof baseFilters === "object" && Array.isArray(baseFilters.filters)) {
31223
+ mergedFilters = {
31224
+ logic: baseFilters.logic || "and",
31225
+ filters: [
31226
+ ...baseFilters.filters,
31227
+ ...headerFiltersState.filters
31228
+ ]
31229
+ };
31230
+ } else {
31231
+ mergedFilters = {
31232
+ logic: headerFiltersState.logic,
31233
+ filters: [...headerFiltersState.filters]
31234
+ };
31235
+ }
31236
+ }
31237
+ const mergedOrderBy = orderByState.length > 0 ? [...orderByState] : baseQuery.order_by;
31238
+ return {
31239
+ ...baseQuery,
31240
+ filters: mergedFilters,
31241
+ order_by: mergedOrderBy
31242
+ };
31243
+ };
31244
+ return {
31245
+ isEnabled,
31246
+ headerFiltersState,
31247
+ orderByState,
31248
+ operatorCatalogState,
31249
+ fieldCatalogState,
31250
+ upsertHeaderFilter,
31251
+ removeHeaderFilter,
31252
+ setOrderBy,
31253
+ getOpsByProp,
31254
+ getMergedQuery,
31255
+ updateCatalogs,
31256
+ isFieldFilterable,
31257
+ isFieldVisible
31258
+ };
31259
+ }
31260
+
31261
+ const _hoisted_1$6 = {
31262
+ class: "yc-header-filter-cell__sort",
31263
+ style: {
31264
+ display: "inline-flex",
31265
+ flexDirection: "column",
31266
+ alignItems: "center",
31267
+ lineHeight: 1
31268
+ }
31269
+ };
31270
+ const _hoisted_2$6 = {
31271
+ class: "yc-header-filter-cell__content",
31272
+ style: {
31273
+ display: "flex",
31274
+ flexDirection: "column",
31275
+ padding: "8px",
31276
+ minWidth: "180px",
31277
+ gap: "6px"
31278
+ }
31279
+ };
31280
+ const _hoisted_3$6 = { class: "yc-header-filter-cell__operators" };
31281
+ const _hoisted_4$4 = ["onClick"];
31282
+ const _hoisted_5$4 = { key: 0 };
31283
+ const _hoisted_6$3 = {
31284
+ class: "yc-header-filter-cell__actions",
31285
+ style: {
31286
+ display: "flex",
31287
+ justifyContent: "space-between",
31288
+ marginTop: "6px"
31289
+ }
31290
+ };
31291
+ var _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
31292
+ ...{
31293
+ name: "YcTableHeaderFilterCell"
31294
+ },
31295
+ __name: "header-filter-cell",
31296
+ props: {
31297
+ label: {},
31298
+ column: {},
31299
+ operators: { default: () => [] },
31300
+ filters: { default: () => [] },
31301
+ orderBy: { default: () => [] },
31302
+ disableFilter: { type: Boolean, default: false },
31303
+ referenceRenderer: { type: Function, default: void 0 }
31304
+ },
31305
+ emits: ["confirm", "reset", "sortChange"],
31306
+ setup(__props, { emit: __emit }) {
31307
+ const props = __props;
31308
+ const emit = __emit;
31309
+ const state = vue.reactive({
31310
+ selectedOp: "=",
31311
+ inputVal: ""
31312
+ });
31313
+ const popVisible = vue.ref(false);
31314
+ const wrapperElRef = vue.ref(null);
31315
+ const operatorsList = vue.computed(() => props.operators);
31316
+ vue.watch(
31317
+ operatorsList,
31318
+ (list) => {
31319
+ var _a;
31320
+ const firstCode = (_a = list == null ? void 0 : list[0]) == null ? void 0 : _a.code;
31321
+ if (!Array.isArray(list)) return;
31322
+ if (!list.some((op) => op.code === state.selectedOp)) {
31323
+ state.selectedOp = firstCode != null ? firstCode : "=";
31324
+ }
31325
+ },
31326
+ { immediate: true }
31327
+ );
31328
+ const fieldRef = vue.computed(() => {
31329
+ var _a;
31330
+ return String(((_a = props.column) == null ? void 0 : _a.prop) || "");
31331
+ });
31332
+ const isActive = vue.computed(() => {
31333
+ var _a, _b;
31334
+ const field = fieldRef.value;
31335
+ return (_b = (_a = props.filters) == null ? void 0 : _a.some((i) => String(i.field) === field)) != null ? _b : false;
31336
+ });
31337
+ const isAscActive = vue.computed(
31338
+ () => {
31339
+ var _a;
31340
+ return (_a = props.orderBy) == null ? void 0 : _a.some((i) => i.field === fieldRef.value && i.direction === "asc");
31341
+ }
31342
+ );
31343
+ const isDescActive = vue.computed(
31344
+ () => {
31345
+ var _a;
31346
+ return (_a = props.orderBy) == null ? void 0 : _a.some((i) => i.field === fieldRef.value && i.direction === "desc");
31347
+ }
31348
+ );
31349
+ const onDocPointerOrClick = (e) => {
31350
+ if (!popVisible.value) return;
31351
+ const target = e.target;
31352
+ const wrapper = wrapperElRef.value;
31353
+ if (target && ((wrapper == null ? void 0 : wrapper.contains(target)) || target.closest(".yc-header-filter-pop"))) return;
31354
+ popVisible.value = false;
31355
+ };
31356
+ vue.onMounted(() => {
31357
+ window.addEventListener("pointerdown", onDocPointerOrClick, true);
31358
+ window.addEventListener("click", onDocPointerOrClick, true);
31359
+ });
31360
+ vue.onBeforeUnmount(() => {
31361
+ window.removeEventListener("pointerdown", onDocPointerOrClick, true);
31362
+ window.removeEventListener("click", onDocPointerOrClick, true);
31363
+ });
31364
+ const handleSelect = (op) => {
31365
+ state.selectedOp = op.code;
31366
+ };
31367
+ const handleReset = () => {
31368
+ state.inputVal = "";
31369
+ emit("reset", { column: props.column, op: state.selectedOp });
31370
+ popVisible.value = false;
31371
+ };
31372
+ const handleConfirm = () => {
31373
+ emit("confirm", {
31374
+ column: props.column,
31375
+ op: state.selectedOp,
31376
+ value: state.inputVal
31377
+ });
31378
+ popVisible.value = false;
31379
+ };
31380
+ const toggleAsc = () => {
31381
+ const field = fieldRef.value;
31382
+ emit("sortChange", { field, direction: isAscActive.value ? void 0 : "asc" });
31383
+ };
31384
+ const toggleDesc = () => {
31385
+ const field = fieldRef.value;
31386
+ emit("sortChange", { field, direction: isDescActive.value ? void 0 : "desc" });
31387
+ };
31388
+ const cycleSort = () => {
31389
+ const field = fieldRef.value;
31390
+ if (!field) return;
31391
+ if (isDescActive.value) {
31392
+ emit("sortChange", { field, direction: "asc" });
31393
+ } else if (isAscActive.value) {
31394
+ emit("sortChange", { field, direction: void 0 });
31395
+ } else {
31396
+ emit("sortChange", { field, direction: "desc" });
31397
+ }
31398
+ };
31399
+ const needValueInput = vue.computed(() => {
31400
+ return !NO_VALUE_OPERATORS.includes(state.selectedOp);
31401
+ });
31402
+ const renderValueField = () => {
31403
+ var _a, _b, _c, _d, _e;
31404
+ if (!needValueInput.value) return null;
31405
+ const vt = String(((_a = props.column) == null ? void 0 : _a.valueType) || "").toLowerCase();
31406
+ const fp = ((_b = props.column) == null ? void 0 : _b.fieldProps) || {};
31407
+ if (vt === "time-picker") {
31408
+ return vue.h(elementPlus.ElTimePicker, {
31409
+ ...fp,
31410
+ format: (_c = fp == null ? void 0 : fp.format) != null ? _c : "HH:mm:ss",
31411
+ valueFormat: (_d = fp == null ? void 0 : fp.valueFormat) != null ? _d : "HH:mm:ss",
31412
+ modelValue: state.inputVal,
31413
+ "onUpdate:modelValue": (v) => state.inputVal = String(v != null ? v : ""),
31414
+ style: "margin-top: 4px; width: 100%"
31415
+ });
31416
+ }
31417
+ if (vt === "time-select") {
31418
+ return vue.h(elementPlus.ElTimeSelect, {
31419
+ ...fp,
31420
+ modelValue: state.inputVal,
31421
+ "onUpdate:modelValue": (v) => {
31422
+ const raw = String(v != null ? v : "");
31423
+ const nv = raw && /^\d{2}:\d{2}$/.test(raw) ? `${raw}:00` : raw;
31424
+ state.inputVal = nv;
31425
+ },
31426
+ style: "margin-top: 4px; width: 100%"
31427
+ });
31428
+ }
31429
+ if (vt === "date-picker") {
31430
+ return vue.h(elementPlus.ElDatePicker, {
31431
+ ...fp,
31432
+ valueFormat: (_e = fp == null ? void 0 : fp.valueFormat) != null ? _e : "YYYY-MM-DD HH:mm:ss",
31433
+ modelValue: state.inputVal,
31434
+ "onUpdate:modelValue": (v) => {
31435
+ const nv = Array.isArray(v) ? v.join(",") : String(v != null ? v : "");
31436
+ state.inputVal = nv;
31437
+ },
31438
+ style: "margin-top: 4px; width: 100%"
31439
+ });
31440
+ }
31441
+ return vue.h(elementPlus.ElInput, {
31442
+ modelValue: state.inputVal,
31443
+ "onUpdate:modelValue": (v) => state.inputVal = v,
31444
+ placeholder: "",
31445
+ style: "margin-top: 4px; width: 100%"
31446
+ });
31447
+ };
31448
+ return (_ctx, _cache) => {
31449
+ return vue.openBlock(), vue.createElementBlock(
31450
+ "div",
31451
+ {
31452
+ ref_key: "wrapperElRef",
31453
+ ref: wrapperElRef,
31454
+ class: "yc-header-filter-cell",
31455
+ style: {
31456
+ display: "inline-flex",
31457
+ alignItems: "center",
31458
+ gap: "6px",
31459
+ cursor: "default"
31460
+ }
31461
+ },
31462
+ [
31463
+ vue.createCommentVNode(" \u6807\u7B7E\u5185\u5BB9 "),
31464
+ vue.createElementVNode("span", {
31465
+ class: "yc-header-filter-cell__label",
31466
+ style: {
31467
+ userSelect: "none",
31468
+ cursor: "pointer"
31469
+ },
31470
+ onClick: vue.withModifiers(cycleSort, ["stop"])
31471
+ }, [
31472
+ _ctx.referenceRenderer ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.referenceRenderer), { key: 0 })) : (vue.openBlock(), vue.createElementBlock(
31473
+ vue.Fragment,
31474
+ { key: 1 },
31475
+ [
31476
+ vue.createTextVNode(
31477
+ vue.toDisplayString(_ctx.label),
31478
+ 1
31479
+ /* TEXT */
31480
+ )
31481
+ ],
31482
+ 64
31483
+ /* STABLE_FRAGMENT */
31484
+ ))
31485
+ ]),
31486
+ vue.createCommentVNode(" \u6392\u5E8F\u56FE\u6807 "),
31487
+ vue.createElementVNode("span", _hoisted_1$6, [
31488
+ vue.createVNode(vue.unref(elementPlus.ElIcon), {
31489
+ size: 12,
31490
+ color: isAscActive.value ? "var(--el-color-primary)" : "var(--el-text-color-secondary)",
31491
+ style: { cursor: "pointer" },
31492
+ onClick: vue.withModifiers(toggleAsc, ["stop"])
31493
+ }, {
31494
+ default: vue.withCtx(() => [
31495
+ vue.createVNode(vue.unref(caret_top_default))
31496
+ ]),
31497
+ _: 1
31498
+ /* STABLE */
31499
+ }, 8, ["color"]),
31500
+ vue.createVNode(vue.unref(elementPlus.ElIcon), {
31501
+ size: 12,
31502
+ color: isDescActive.value ? "var(--el-color-primary)" : "var(--el-text-color-secondary)",
31503
+ style: { cursor: "pointer", marginTop: "-5px" },
31504
+ onClick: vue.withModifiers(toggleDesc, ["stop"])
31505
+ }, {
31506
+ default: vue.withCtx(() => [
31507
+ vue.createVNode(vue.unref(caret_bottom_default))
31508
+ ]),
31509
+ _: 1
31510
+ /* STABLE */
31511
+ }, 8, ["color"])
31512
+ ]),
31513
+ vue.createCommentVNode(" \u7B5B\u9009\u56FE\u6807\u548C\u5F39\u7A97 "),
31514
+ !_ctx.disableFilter ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElPopover), {
31515
+ key: 0,
31516
+ trigger: "click",
31517
+ placement: "bottom-start",
31518
+ width: 220,
31519
+ visible: popVisible.value,
31520
+ "popper-class": "yc-header-filter-pop",
31521
+ "popper-style": { zIndex: 4e3 }
31522
+ }, {
31523
+ reference: vue.withCtx(() => [
31524
+ vue.createVNode(vue.unref(elementPlus.ElIcon), {
31525
+ size: 16,
31526
+ color: isActive.value ? "var(--el-color-primary)" : "var(--el-text-color-secondary)",
31527
+ style: { cursor: "pointer" },
31528
+ onClick: _cache[0] || (_cache[0] = vue.withModifiers(($event) => popVisible.value = !popVisible.value, ["stop"]))
31529
+ }, {
31530
+ default: vue.withCtx(() => [
31531
+ vue.createVNode(vue.unref(filter_default))
31532
+ ]),
31533
+ _: 1
31534
+ /* STABLE */
31535
+ }, 8, ["color"])
31536
+ ]),
31537
+ default: vue.withCtx(() => [
31538
+ vue.createElementVNode("div", _hoisted_2$6, [
31539
+ vue.createCommentVNode(" \u64CD\u4F5C\u7B26\u5217\u8868 "),
31540
+ vue.createElementVNode("div", _hoisted_3$6, [
31541
+ (vue.openBlock(true), vue.createElementBlock(
31542
+ vue.Fragment,
31543
+ null,
31544
+ vue.renderList(operatorsList.value, (op) => {
31545
+ return vue.openBlock(), vue.createElementBlock("div", {
31546
+ key: op.code,
31547
+ class: "yc-header-filter-cell__operator-item",
31548
+ style: vue.normalizeStyle({
31549
+ display: "flex",
31550
+ justifyContent: "space-between",
31551
+ alignItems: "center",
31552
+ padding: "6px 8px",
31553
+ borderRadius: "4px",
31554
+ background: state.selectedOp === op.code ? "var(--el-color-primary-light-9)" : "transparent",
31555
+ color: state.selectedOp === op.code ? "var(--el-color-primary)" : "inherit",
31556
+ cursor: "pointer"
31557
+ }),
31558
+ onClick: ($event) => handleSelect(op)
31559
+ }, [
31560
+ vue.createElementVNode(
31561
+ "span",
31562
+ null,
31563
+ vue.toDisplayString(op.label),
31564
+ 1
31565
+ /* TEXT */
31566
+ ),
31567
+ state.selectedOp === op.code ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$4, "\u2713")) : vue.createCommentVNode("v-if", true)
31568
+ ], 12, _hoisted_4$4);
31569
+ }),
31570
+ 128
31571
+ /* KEYED_FRAGMENT */
31572
+ ))
31573
+ ]),
31574
+ vue.createCommentVNode(" \u503C\u8F93\u5165 "),
31575
+ needValueInput.value ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(renderValueField), { key: 0 })) : vue.createCommentVNode("v-if", true),
31576
+ vue.createCommentVNode(" \u64CD\u4F5C\u6309\u94AE "),
31577
+ vue.createElementVNode("div", _hoisted_6$3, [
31578
+ vue.createVNode(vue.unref(elementPlus.ElButton), { onClick: handleReset }, {
31579
+ default: vue.withCtx(() => [
31580
+ vue.createTextVNode("\u91CD\u7F6E")
31581
+ ]),
31582
+ _: 1
31583
+ /* STABLE */
31584
+ }),
31585
+ vue.createVNode(vue.unref(elementPlus.ElButton), {
31586
+ type: "primary",
31587
+ onClick: handleConfirm
31588
+ }, {
31589
+ default: vue.withCtx(() => [
31590
+ vue.createTextVNode("\u786E\u5B9A")
31591
+ ]),
31592
+ _: 1
31593
+ /* STABLE */
31594
+ })
31595
+ ])
31596
+ ])
31597
+ ]),
31598
+ _: 1
31599
+ /* STABLE */
31600
+ }, 8, ["visible"])) : vue.createCommentVNode("v-if", true)
31601
+ ],
31602
+ 512
31603
+ /* NEED_PATCH */
31604
+ );
31605
+ };
31606
+ }
31607
+ });
31608
+
31609
+ var YcTableHeaderFilterCellComponent = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-87ce6807"], ["__file", "header-filter-cell.vue"]]);
31052
31610
 
31053
31611
  const DEFAULT_PAGE_SIZE = 20;
31054
31612
  var _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
@@ -31071,10 +31629,14 @@
31071
31629
  defaultPageSize: 20
31072
31630
  }) },
31073
31631
  hideColumnSettingsIcon: { type: Boolean, default: false },
31074
- showSearch: { type: Boolean, default: void 0 }
31632
+ showSearch: { type: Boolean, default: void 0 },
31633
+ headerFilter: { type: [Object, Boolean], default: false },
31634
+ hideHeaderFilter: { type: Boolean, default: true }
31075
31635
  },
31076
- setup(__props, { expose: __expose }) {
31636
+ emits: ["header-filter-confirm", "header-filter-reset"],
31637
+ setup(__props, { expose: __expose, emit: __emit }) {
31077
31638
  const props = __props;
31639
+ const emit = __emit;
31078
31640
  const globalShowPageSearch = useYcShowPageSearch();
31079
31641
  const { getCdnUrl } = useYcCdnUrl();
31080
31642
  const plusPageConfig = useYcComponentConfig("plusPage");
@@ -31100,6 +31662,102 @@
31100
31662
  });
31101
31663
  });
31102
31664
  };
31665
+ const {
31666
+ isEnabled: isHeaderFilterEnabled,
31667
+ headerFiltersState,
31668
+ orderByState,
31669
+ operatorCatalogState,
31670
+ fieldCatalogState,
31671
+ upsertHeaderFilter,
31672
+ removeHeaderFilter,
31673
+ setOrderBy,
31674
+ getOpsByProp,
31675
+ getMergedQuery,
31676
+ updateCatalogs,
31677
+ isFieldFilterable
31678
+ // isFieldVisible 已在 enhancedColumns 中直接使用 fieldCatalogState 实现
31679
+ } = useHeaderFilter({
31680
+ headerFilterConfig: () => props.headerFilter,
31681
+ hideHeaderFilter: () => props.hideHeaderFilter,
31682
+ onRefresh: () => {
31683
+ var _a, _b;
31684
+ (_b = (_a = plusPageRef.value) == null ? void 0 : _a.getList) == null ? void 0 : _b.call(_a);
31685
+ }
31686
+ });
31687
+ const refreshList = () => {
31688
+ var _a, _b;
31689
+ (_b = (_a = plusPageRef.value) == null ? void 0 : _a.getList) == null ? void 0 : _b.call(_a);
31690
+ };
31691
+ const handleFilterConfirm = (payload) => {
31692
+ var _a;
31693
+ const field = String(((_a = payload.column) == null ? void 0 : _a.prop) || "");
31694
+ upsertHeaderFilter(field, payload.op, payload.value);
31695
+ refreshList();
31696
+ emit("header-filter-confirm", payload);
31697
+ };
31698
+ const handleFilterReset = (payload) => {
31699
+ var _a;
31700
+ const field = String(((_a = payload.column) == null ? void 0 : _a.prop) || "");
31701
+ removeHeaderFilter(field);
31702
+ refreshList();
31703
+ emit("header-filter-reset", payload);
31704
+ };
31705
+ const handleSortChange = (payload) => {
31706
+ setOrderBy(payload.field, payload.direction);
31707
+ refreshList();
31708
+ };
31709
+ const enhancedColumns = vue.computed(() => {
31710
+ const cols = props.columns || [];
31711
+ if (!cols.length) return cols;
31712
+ const isEnabled = isHeaderFilterEnabled.value;
31713
+ const catalog = fieldCatalogState.value;
31714
+ const visibleCols = isEnabled && catalog && Object.keys(catalog).length > 0 ? cols.filter((col) => {
31715
+ const prop = String(col.prop || "");
31716
+ const fieldConfig = Object.values(catalog).find(
31717
+ (val) => String((val == null ? void 0 : val.allowedField) || "") === prop
31718
+ );
31719
+ return (fieldConfig == null ? void 0 : fieldConfig.nullable) !== false;
31720
+ }) : cols;
31721
+ if (!isEnabled) return visibleCols;
31722
+ return visibleCols.map((col) => {
31723
+ const colHideFilter = col.hideHeaderFilter === true;
31724
+ const fieldFilterable = isFieldFilterable(col.prop);
31725
+ if (colHideFilter || !fieldFilterable) {
31726
+ return col;
31727
+ }
31728
+ const operators = getOpsByProp(col.prop);
31729
+ const FILTER_ICON_WIDTH = 24;
31730
+ const SORT_ICON_WIDTH = 16;
31731
+ const EXTRA_WIDTH = FILTER_ICON_WIDTH + SORT_ICON_WIDTH;
31732
+ const originalWidth = col.width || col.minWidth;
31733
+ let adjustedWidth = originalWidth;
31734
+ if (typeof originalWidth === "number") {
31735
+ adjustedWidth = originalWidth + EXTRA_WIDTH;
31736
+ } else if (typeof originalWidth === "string") {
31737
+ const numWidth = parseInt(originalWidth, 10);
31738
+ if (!isNaN(numWidth)) {
31739
+ adjustedWidth = numWidth + EXTRA_WIDTH;
31740
+ }
31741
+ }
31742
+ return {
31743
+ ...col,
31744
+ // 如果有原始宽度,增加图标宽度;否则设置最小宽度
31745
+ ...originalWidth ? { width: adjustedWidth } : { minWidth: 120 },
31746
+ renderHeader: (label) => {
31747
+ return vue.h(YcTableHeaderFilterCellComponent, {
31748
+ label,
31749
+ column: col,
31750
+ operators,
31751
+ filters: headerFiltersState.filters,
31752
+ orderBy: orderByState,
31753
+ onConfirm: handleFilterConfirm,
31754
+ onReset: handleFilterReset,
31755
+ onSortChange: handleSortChange
31756
+ });
31757
+ }
31758
+ };
31759
+ });
31760
+ });
31103
31761
  const showSearch = vue.computed(() => {
31104
31762
  if (props.showSearch !== void 0) {
31105
31763
  return props.showSearch;
@@ -31261,13 +31919,16 @@
31261
31919
  return async (query) => {
31262
31920
  var _a;
31263
31921
  const finalPageSize = (query == null ? void 0 : query.pageSize) && query.pageSize > 0 ? query.pageSize : DEFAULT_PAGE_SIZE;
31264
- const queryWithDefaults = {
31922
+ const baseQuery = {
31265
31923
  ...query,
31266
31924
  page: (query == null ? void 0 : query.page) || 1,
31267
- // 确保 pageSize 使用我们计算的值
31268
31925
  pageSize: finalPageSize
31269
31926
  };
31270
- const result = await props.request(queryWithDefaults);
31927
+ const queryWithFilters = isHeaderFilterEnabled.value ? getMergedQuery(baseQuery) : baseQuery;
31928
+ const result = await props.request(queryWithFilters);
31929
+ if (isHeaderFilterEnabled.value) {
31930
+ updateCatalogs(result.operator_catalog, result.field_catalog);
31931
+ }
31271
31932
  return {
31272
31933
  data: result.data,
31273
31934
  total: (_a = result.total) != null ? _a : 0
@@ -31284,7 +31945,19 @@
31284
31945
  plusPageRef,
31285
31946
  plusTableInstance,
31286
31947
  tableInstance,
31287
- formRefs
31948
+ formRefs,
31949
+ // 表头筛选相关
31950
+ headerFiltersState,
31951
+ orderByState,
31952
+ operatorCatalogState,
31953
+ fieldCatalogState,
31954
+ upsertHeaderFilter,
31955
+ removeHeaderFilter,
31956
+ setOrderBy,
31957
+ getList: () => {
31958
+ var _a, _b;
31959
+ return (_b = (_a = plusPageRef.value) == null ? void 0 : _a.getList) == null ? void 0 : _b.call(_a);
31960
+ }
31288
31961
  });
31289
31962
  return (_ctx, _cache) => {
31290
31963
  return vue.openBlock(), vue.createElementBlock(
@@ -31299,6 +31972,7 @@
31299
31972
  ref_key: "plusPageRef",
31300
31973
  ref: plusPageRef
31301
31974
  }, props, {
31975
+ columns: enhancedColumns.value,
31302
31976
  "is-card": _ctx.isCard,
31303
31977
  request: wrappedRequest.value,
31304
31978
  search: mergedSearch.value,
@@ -31341,7 +32015,7 @@
31341
32015
  ])
31342
32016
  };
31343
32017
  })
31344
- ]), 1040, ["is-card", "request", "search", "search-card-props", "table-card-props", "table", "pagination", "default-page-info"])
32018
+ ]), 1040, ["columns", "is-card", "request", "search", "search-card-props", "table-card-props", "table", "pagination", "default-page-info"])
31345
32019
  ],
31346
32020
  512
31347
32021
  /* NEED_PATCH */
@@ -31350,9 +32024,10 @@
31350
32024
  }
31351
32025
  });
31352
32026
 
31353
- var YcPlusPageComponent = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-7c1490fd"], ["__file", "index.vue"]]);
32027
+ var YcPlusPageComponent = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-a59fd3d9"], ["__file", "index.vue"]]);
31354
32028
 
31355
32029
  const YcPlusPage = YcPlusPageComponent;
32030
+ const YcTableHeaderFilterCell = YcTableHeaderFilterCellComponent;
31356
32031
  const RePlusPage = YcPlusPageComponent;
31357
32032
 
31358
32033
  const loadMoreDirective = {
@@ -59926,11 +60601,15 @@
59926
60601
  const install = installer.install;
59927
60602
 
59928
60603
  exports.DEFAULT_CDN_CONFIG = DEFAULT_CDN_CONFIG;
60604
+ exports.DEFAULT_OPERATORS = DEFAULT_OPERATORS;
59929
60605
  exports.DEFAULT_YC_CONFIG = DEFAULT_YC_CONFIG;
59930
60606
  exports.DatePickerValueIsArrayList = DatePickerValueIsArrayList;
59931
60607
  exports.DefaultPageInfo = DefaultPageInfo;
59932
60608
  exports.DefaultPageSizeList = DefaultPageSizeList;
59933
60609
  exports.DictStoreInjectionKey = DictStoreInjectionKey;
60610
+ exports.NO_VALUE_OPERATORS = NO_VALUE_OPERATORS;
60611
+ exports.OPERATOR_CATALOG = OPERATOR_CATALOG;
60612
+ exports.OPERATOR_LABELS = OPERATOR_LABELS;
59934
60613
  exports.PlusBreadcrumb = PlusBreadcrumb;
59935
60614
  exports.PlusCheckCard = PlusCheckCard;
59936
60615
  exports.PlusCheckCardGroup = PlusCheckCardGroup;
@@ -60015,6 +60694,7 @@
60015
60694
  exports.YcSelectV2 = YcSelectV2;
60016
60695
  exports.YcStatusDialog = YcStatusDialog;
60017
60696
  exports.YcSvgIcon = YcSvgIcon;
60697
+ exports.YcTableHeaderFilterCell = YcTableHeaderFilterCell;
60018
60698
  exports.YcTabsWithFilter = YcTabsWithFilter;
60019
60699
  exports.YcTabsWithFilterWithInstall = YcTabsWithFilterWithInstall;
60020
60700
  exports.YcText = YcText;
@@ -60042,6 +60722,7 @@
60042
60722
  exports.useDictInjection = useDictInjection;
60043
60723
  exports.useDrawerFormConfig = useDrawerFormConfig;
60044
60724
  exports.useGetOptions = useGetOptions;
60725
+ exports.useHeaderFilter = useHeaderFilter;
60045
60726
  exports.useLocale = useLocale;
60046
60727
  exports.usePlusFormReset = usePlusFormReset;
60047
60728
  exports.usePlusProConfig = usePlusProConfig;