giime 0.9.1 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.css CHANGED
@@ -933,9 +933,41 @@ video {
933
933
  width: auto;
934
934
  height: auto;
935
935
  }
936
- [data-v-79615afd] .gmSearchForm .el-form-item {
937
- margin-right: 0;
938
- margin-bottom: 4px;
936
+
937
+ .gm-range-number .el-form-item[data-v-1ae16d96] {
938
+ margin: 0;
939
+ }
940
+
941
+ .circular[data-v-d7b04fae] {
942
+ animation: loading-rotate-d7b04fae 2s linear infinite;
943
+ }
944
+
945
+ .path[data-v-d7b04fae] {
946
+ animation: loading-dash-d7b04fae 1.5s ease-in-out infinite;
947
+ stroke-dasharray: 90, 150;
948
+ stroke-dashoffset: 0;
949
+ stroke: var(--el-color-primary);
950
+ stroke-linecap: round;
951
+ }
952
+
953
+ @keyframes loading-rotate-d7b04fae {
954
+ to {
955
+ transform: rotate(360deg);
956
+ }
957
+ }
958
+ @keyframes loading-dash-d7b04fae {
959
+ 0% {
960
+ stroke-dasharray: 1, 200;
961
+ stroke-dashoffset: 0;
962
+ }
963
+ 50% {
964
+ stroke-dasharray: 90, 150;
965
+ stroke-dashoffset: -40px;
966
+ }
967
+ 100% {
968
+ stroke-dasharray: 90, 150;
969
+ stroke-dashoffset: -120px;
970
+ }
939
971
  }
940
972
  .gm-flex-center[data-v-c17deec9] {
941
973
  align-items: center;
@@ -944,6 +976,51 @@ video {
944
976
  .gm-flex-justify-between[data-v-c17deec9] {
945
977
  justify-content: space-between;
946
978
  }
979
+ [data-v-79615afd] .gmSearchForm .el-form-item {
980
+ margin-right: 0;
981
+ margin-bottom: 4px;
982
+ }
983
+ .gm-number-interval-single[data-v-4e6f4d6f] {
984
+ border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
985
+ box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
986
+ background-color: var(--el-input-bg-color, var(--el-fill-color-blank));
987
+ }
988
+ .gm-number-interval-single[data-v-4e6f4d6f] [data-v-4e6f4d6f] .el-input__wrapper {
989
+ box-shadow: none;
990
+ background: none;
991
+ }
992
+
993
+ .gm-number-interval-close[data-v-4e6f4d6f] {
994
+ display: none;
995
+ color: var(--el-input-icon-color, var(--el-text-color-placeholder));
996
+ }
997
+
998
+ .gm-number-interval-single[data-v-4e6f4d6f]:hover .gm-number-interval-close[data-v-4e6f4d6f] {
999
+ display: flex;
1000
+ }
1001
+ [data-v-050a4f74] .gmTableNoBorder .el-table__body .el-table__cell {
1002
+ border-right: none;
1003
+ }
1004
+
1005
+ [data-v-050a4f74] .gmTableNoBorder .el-table__inner-wrapper:before {
1006
+ height: 0;
1007
+ }
1008
+
1009
+ [data-v-050a4f74] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
1010
+ height: 0;
1011
+ }
1012
+
1013
+ [data-v-050a4f74] .gmTableNoBorder.el-table--border:after {
1014
+ height: 0;
1015
+ }
1016
+
1017
+ [data-v-050a4f74] .gmTableNoBorder.el-table--border:before {
1018
+ height: 0;
1019
+ }
1020
+
1021
+ [data-v-050a4f74] .gmTableNoBorder .el-table__border-left-patch {
1022
+ height: 0;
1023
+ }
947
1024
  [data-v-1e1d88ac] .gmTableNoBorder .el-table__body .el-table__cell {
948
1025
  border-right: none;
949
1026
  }
@@ -967,23 +1044,13 @@ video {
967
1044
  [data-v-1e1d88ac] .gmTableNoBorder .el-table__border-left-patch {
968
1045
  height: 0;
969
1046
  }
970
- .gm-number-interval-single[data-v-4e6f4d6f] {
971
- border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
972
- box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
973
- background-color: var(--el-input-bg-color, var(--el-fill-color-blank));
974
- }
975
- .gm-number-interval-single[data-v-4e6f4d6f] [data-v-4e6f4d6f] .el-input__wrapper {
976
- box-shadow: none;
977
- background: none;
978
- }
979
-
980
- .gm-number-interval-close[data-v-4e6f4d6f] {
981
- display: none;
982
- color: var(--el-input-icon-color, var(--el-text-color-placeholder));
1047
+ .gm-upload-preview-dialog[data-v-c615121c] [data-v-c615121c] .el-dialog__body {
1048
+ padding: 0;
983
1049
  }
984
1050
 
985
- .gm-number-interval-single[data-v-4e6f4d6f]:hover .gm-number-interval-close[data-v-4e6f4d6f] {
986
- display: flex;
1051
+ .gm-upload-file-picture-card[data-v-c615121c] [data-v-c615121c] .el-upload-list__item, .gm-upload-file-picture-card[data-v-c615121c] [data-v-c615121c] .el-upload--picture-card {
1052
+ width: auto;
1053
+ height: auto;
987
1054
  }
988
1055
  .gm-upload-file {
989
1056
  line-height: normal;
@@ -1021,190 +1088,124 @@ video {
1021
1088
  .gm-upload-file-disabled .el-upload-list__item-status-label {
1022
1089
  display: none;
1023
1090
  }
1024
- .gm-upload-preview-dialog[data-v-c615121c] [data-v-c615121c] .el-dialog__body {
1025
- padding: 0;
1026
- }
1027
-
1028
- .gm-upload-file-picture-card[data-v-c615121c] [data-v-c615121c] .el-upload-list__item, .gm-upload-file-picture-card[data-v-c615121c] [data-v-c615121c] .el-upload--picture-card {
1029
- width: auto;
1030
- height: auto;
1031
- }
1032
- [data-v-050a4f74] .gmTableNoBorder .el-table__body .el-table__cell {
1033
- border-right: none;
1034
- }
1035
1091
 
1036
- [data-v-050a4f74] .gmTableNoBorder .el-table__inner-wrapper:before {
1037
- height: 0;
1038
- }
1039
-
1040
- [data-v-050a4f74] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
1041
- height: 0;
1042
- }
1043
-
1044
- [data-v-050a4f74] .gmTableNoBorder.el-table--border:after {
1045
- height: 0;
1046
- }
1047
-
1048
- [data-v-050a4f74] .gmTableNoBorder.el-table--border:before {
1049
- height: 0;
1050
- }
1051
-
1052
- [data-v-050a4f74] .gmTableNoBorder .el-table__border-left-patch {
1053
- height: 0;
1054
- }
1055
- .circular[data-v-d7b04fae] {
1056
- animation: loading-rotate-d7b04fae 2s linear infinite;
1057
- }
1058
-
1059
- .path[data-v-d7b04fae] {
1060
- animation: loading-dash-d7b04fae 1.5s ease-in-out infinite;
1061
- stroke-dasharray: 90, 150;
1062
- stroke-dashoffset: 0;
1063
- stroke: var(--el-color-primary);
1064
- stroke-linecap: round;
1065
- }
1066
-
1067
- @keyframes loading-rotate-d7b04fae {
1068
- to {
1069
- transform: rotate(360deg);
1070
- }
1071
- }
1072
- @keyframes loading-dash-d7b04fae {
1073
- 0% {
1074
- stroke-dasharray: 1, 200;
1075
- stroke-dashoffset: 0;
1076
- }
1077
- 50% {
1078
- stroke-dasharray: 90, 150;
1079
- stroke-dashoffset: -40px;
1080
- }
1081
- 100% {
1082
- stroke-dasharray: 90, 150;
1083
- stroke-dashoffset: -120px;
1084
- }
1092
+ .pagination-container[data-v-47d35e7b] {
1093
+ background: #fff;
1094
+ padding-top: 12px;
1085
1095
  }
1086
-
1087
- .gm-range-number .el-form-item[data-v-1ae16d96] {
1088
- margin: 0;
1096
+ .pagination-container.hidden[data-v-47d35e7b] {
1097
+ display: none;
1089
1098
  }
1090
1099
 
1091
1100
  @charset "UTF-8";
1092
- .custom-operate-drawer .el-drawer__header {
1101
+ .table-custom-header-drawer .el-drawer__header {
1093
1102
  padding: 10px 15px;
1094
1103
  margin: 0;
1095
1104
  border-bottom: 1px solid #ebeef5;
1096
1105
  }
1097
- .custom-operate-drawer .el-drawer__title {
1106
+ .table-custom-header-drawer .el-drawer__title {
1098
1107
  font-size: 14px;
1099
1108
  color: #333;
1100
1109
  }
1101
- .custom-operate-drawer .el-drawer__body {
1110
+ .table-custom-header-drawer .el-drawer__body {
1102
1111
  padding: 15px;
1103
1112
  }
1104
- .custom-operate-drawer .el-drawer__footer {
1113
+ .table-custom-header-drawer .el-drawer__footer {
1105
1114
  padding: 10px 15px;
1106
1115
  border-top: 1px solid #ebeef5;
1107
1116
  }
1108
- .custom-operate-drawer .el-checkbox {
1117
+ .table-custom-header-drawer .el-checkbox {
1109
1118
  display: flex;
1110
1119
  align-items: center;
1111
1120
  }
1112
- .custom-operate-drawer .el-input__inner {
1121
+ .table-custom-header-drawer .el-input__inner {
1113
1122
  text-align: center;
1114
1123
  }
1115
- .custom-operate-drawer .el-input__suffix {
1124
+ .table-custom-header-drawer .el-input__suffix {
1116
1125
  position: absolute;
1117
1126
  right: 10px;
1118
1127
  }
1119
- .custom-operate-drawer .custom-content li {
1128
+ .table-custom-header-drawer .custom-content li {
1120
1129
  display: flex;
1121
1130
  align-items: center;
1122
1131
  justify-content: center;
1123
1132
  height: 44px;
1124
1133
  }
1125
- .custom-operate-drawer .custom-group {
1134
+ .table-custom-header-drawer .custom-group {
1126
1135
  max-height: calc(100vh - 226px);
1127
1136
  overflow-y: auto;
1128
1137
  }
1129
- .custom-operate-drawer .custom-group::-webkit-scrollbar {
1138
+ .table-custom-header-drawer .custom-group::-webkit-scrollbar {
1130
1139
  /*滚动条整体样式*/
1131
1140
  width: 4px;
1132
1141
  /*高宽分别对应横竖滚动条的尺寸*/
1133
1142
  height: 1px;
1134
1143
  }
1135
- .custom-operate-drawer .custom-group::-webkit-scrollbar-thumb {
1144
+ .table-custom-header-drawer .custom-group::-webkit-scrollbar-thumb {
1136
1145
  /*滚动条里面小方块*/
1137
1146
  border-radius: 10px;
1138
1147
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.1);
1139
1148
  background: #999;
1140
1149
  }
1141
- .custom-operate-drawer .custom-group::-webkit-scrollbar-track {
1150
+ .table-custom-header-drawer .custom-group::-webkit-scrollbar-track {
1142
1151
  /*滚动条里面轨道*/
1143
1152
  box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.1);
1144
1153
  border-radius: 10px;
1145
1154
  background: #eee;
1146
1155
  }
1147
1156
  @charset "UTF-8";
1148
- .table-custom-header-drawer .el-drawer__header {
1157
+ .custom-operate-drawer .el-drawer__header {
1149
1158
  padding: 10px 15px;
1150
1159
  margin: 0;
1151
1160
  border-bottom: 1px solid #ebeef5;
1152
1161
  }
1153
- .table-custom-header-drawer .el-drawer__title {
1162
+ .custom-operate-drawer .el-drawer__title {
1154
1163
  font-size: 14px;
1155
1164
  color: #333;
1156
1165
  }
1157
- .table-custom-header-drawer .el-drawer__body {
1166
+ .custom-operate-drawer .el-drawer__body {
1158
1167
  padding: 15px;
1159
1168
  }
1160
- .table-custom-header-drawer .el-drawer__footer {
1169
+ .custom-operate-drawer .el-drawer__footer {
1161
1170
  padding: 10px 15px;
1162
1171
  border-top: 1px solid #ebeef5;
1163
1172
  }
1164
- .table-custom-header-drawer .el-checkbox {
1173
+ .custom-operate-drawer .el-checkbox {
1165
1174
  display: flex;
1166
1175
  align-items: center;
1167
1176
  }
1168
- .table-custom-header-drawer .el-input__inner {
1177
+ .custom-operate-drawer .el-input__inner {
1169
1178
  text-align: center;
1170
1179
  }
1171
- .table-custom-header-drawer .el-input__suffix {
1180
+ .custom-operate-drawer .el-input__suffix {
1172
1181
  position: absolute;
1173
1182
  right: 10px;
1174
1183
  }
1175
- .table-custom-header-drawer .custom-content li {
1184
+ .custom-operate-drawer .custom-content li {
1176
1185
  display: flex;
1177
1186
  align-items: center;
1178
1187
  justify-content: center;
1179
1188
  height: 44px;
1180
1189
  }
1181
- .table-custom-header-drawer .custom-group {
1190
+ .custom-operate-drawer .custom-group {
1182
1191
  max-height: calc(100vh - 226px);
1183
1192
  overflow-y: auto;
1184
1193
  }
1185
- .table-custom-header-drawer .custom-group::-webkit-scrollbar {
1194
+ .custom-operate-drawer .custom-group::-webkit-scrollbar {
1186
1195
  /*滚动条整体样式*/
1187
1196
  width: 4px;
1188
1197
  /*高宽分别对应横竖滚动条的尺寸*/
1189
1198
  height: 1px;
1190
1199
  }
1191
- .table-custom-header-drawer .custom-group::-webkit-scrollbar-thumb {
1200
+ .custom-operate-drawer .custom-group::-webkit-scrollbar-thumb {
1192
1201
  /*滚动条里面小方块*/
1193
1202
  border-radius: 10px;
1194
1203
  box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.1);
1195
1204
  background: #999;
1196
1205
  }
1197
- .table-custom-header-drawer .custom-group::-webkit-scrollbar-track {
1206
+ .custom-operate-drawer .custom-group::-webkit-scrollbar-track {
1198
1207
  /*滚动条里面轨道*/
1199
1208
  box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.1);
1200
1209
  border-radius: 10px;
1201
1210
  background: #eee;
1202
- }
1203
-
1204
- .pagination-container[data-v-47d35e7b] {
1205
- background: #fff;
1206
- padding-top: 12px;
1207
- }
1208
- .pagination-container.hidden[data-v-47d35e7b] {
1209
- display: none;
1210
- }
1211
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,8 +1,10 @@
1
- declare var __VLS_6: any, __VLS_8: any;
1
+ declare var __VLS_5: any, __VLS_11: any, __VLS_13: any;
2
2
  type __VLS_Slots = {} & {
3
- default?: (props: typeof __VLS_6) => any;
3
+ header?: (props: typeof __VLS_5) => any;
4
4
  } & {
5
- header?: (props: typeof __VLS_8) => any;
5
+ default?: (props: typeof __VLS_11) => any;
6
+ } & {
7
+ header?: (props: typeof __VLS_13) => any;
6
8
  };
7
9
  declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
8
10
  type: {
@@ -1,4 +1,4 @@
1
- import { defineComponent, useSlots, resolveComponent, createBlock, openBlock, normalizeProps, guardReactiveProps, createSlots, withCtx, unref, renderSlot } from 'vue';
1
+ import { defineComponent, useSlots, computed, resolveComponent, createElementBlock, openBlock, Fragment, createCommentVNode, createBlock, normalizeProps, mergeProps, createSlots, withCtx, unref, renderSlot, guardReactiveProps, createVNode } from 'vue';
2
2
  import { tableColumnProps } from './tableColumn.mjs';
3
3
 
4
4
  var _sfc_main = /* @__PURE__ */ defineComponent({
@@ -10,32 +10,91 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
10
10
  setup(__props) {
11
11
  const slots = useSlots();
12
12
  const props = __props;
13
+ const hasDefaultSlot = computed(() => !!slots.default);
14
+ const isColumnComponent = (vnode) => {
15
+ if (!vnode) return false;
16
+ if (vnode.type) {
17
+ const typeName = typeof vnode.type === "object" ? vnode.type.name : null;
18
+ if (typeName === "GmTableColumn" || typeName === "GmTableColumnPro" || typeName === "ElTableColumn") {
19
+ return true;
20
+ }
21
+ }
22
+ if (vnode.children) {
23
+ const children = Array.isArray(vnode.children) ? vnode.children : [vnode.children];
24
+ if (children.some((child) => isColumnComponent(child))) {
25
+ return true;
26
+ }
27
+ }
28
+ return false;
29
+ };
30
+ const isMultiLevelHeader = computed(() => {
31
+ if (!slots.default) return false;
32
+ try {
33
+ const vnodes = slots.default({ row: {}, column: {}, $index: -1 });
34
+ if (!Array.isArray(vnodes)) return false;
35
+ return vnodes.some((vnode) => isColumnComponent(vnode));
36
+ } catch {
37
+ return false;
38
+ }
39
+ });
13
40
  return (_ctx, _cache) => {
14
41
  const _component_el_table_column = resolveComponent("el-table-column");
15
- return openBlock(), createBlock(
16
- _component_el_table_column,
17
- normalizeProps(guardReactiveProps(props)),
18
- createSlots({
19
- _: 2
20
- /* DYNAMIC */
21
- }, [
22
- unref(slots).default ? {
23
- name: "default",
24
- fn: withCtx((scope) => [
25
- renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(scope)))
26
- ]),
27
- key: "0"
28
- } : void 0,
29
- unref(slots).header ? {
30
- name: "header",
31
- fn: withCtx((scope) => [
32
- renderSlot(_ctx.$slots, "header", normalizeProps(guardReactiveProps(scope)))
42
+ return openBlock(), createElementBlock(
43
+ Fragment,
44
+ null,
45
+ [
46
+ createCommentVNode(" \u65E0\u81EA\u5B9A\u4E49 slot\uFF1A\u4F7F\u7528 el-table-column \u9ED8\u8BA4\u6E32\u67D3 "),
47
+ !hasDefaultSlot.value ? (openBlock(), createBlock(
48
+ _component_el_table_column,
49
+ normalizeProps(mergeProps({ key: 0 }, props)),
50
+ createSlots({
51
+ _: 2
52
+ /* DYNAMIC */
53
+ }, [
54
+ unref(slots).header ? {
55
+ name: "header",
56
+ fn: withCtx((scope) => [
57
+ renderSlot(_ctx.$slots, "header", normalizeProps(guardReactiveProps(scope)))
58
+ ]),
59
+ key: "0"
60
+ } : void 0
33
61
  ]),
34
- key: "1"
35
- } : void 0
36
- ]),
37
- 1040
38
- /* FULL_PROPS, DYNAMIC_SLOTS */
62
+ 1040
63
+ /* FULL_PROPS, DYNAMIC_SLOTS */
64
+ )) : (openBlock(), createElementBlock(
65
+ Fragment,
66
+ { key: 1 },
67
+ [
68
+ createCommentVNode(" \u6709\u81EA\u5B9A\u4E49 slot "),
69
+ createVNode(
70
+ _component_el_table_column,
71
+ normalizeProps(guardReactiveProps(props)),
72
+ createSlots({
73
+ default: withCtx((scope) => [
74
+ createCommentVNode(" \u591A\u7EA7\u8868\u5934\u59CB\u7EC8\u6E32\u67D3\uFF1B\u81EA\u5B9A\u4E49\u5185\u5BB9\u4EC5\u5728 $index !== -1 \u65F6\u6E32\u67D3\uFF08\u907F\u514D el-switch \u7B49\u89E6\u53D1\u526F\u4F5C\u7528\uFF09 "),
75
+ isMultiLevelHeader.value || scope.$index !== -1 ? renderSlot(_ctx.$slots, "default", normalizeProps(mergeProps({ key: 0 }, scope))) : createCommentVNode("v-if", true)
76
+ ]),
77
+ _: 2
78
+ /* DYNAMIC */
79
+ }, [
80
+ unref(slots).header ? {
81
+ name: "header",
82
+ fn: withCtx((scope) => [
83
+ renderSlot(_ctx.$slots, "header", normalizeProps(guardReactiveProps(scope)))
84
+ ]),
85
+ key: "0"
86
+ } : void 0
87
+ ]),
88
+ 1040
89
+ /* FULL_PROPS, DYNAMIC_SLOTS */
90
+ )
91
+ ],
92
+ 2112
93
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
94
+ ))
95
+ ],
96
+ 2112
97
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
39
98
  );
40
99
  };
41
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TableColumn.vue2.mjs","sources":["../../../../../../../packages/components/src/base/tableColumn/TableColumn.vue"],"sourcesContent":["<template>\n <el-table-column v-bind=\"props\">\n <template v-if=\"slots.default\" #default=\"scope\">\n <slot v-bind=\"scope\" />\n </template>\n\n <template v-if=\"slots.header\" #header=\"scope\">\n <slot name=\"header\" v-bind=\"scope\" />\n </template>\n </el-table-column>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useSlots } from 'vue';\nimport { tableColumnProps } from './tableColumn';\n\ndefineOptions({\n name: 'GmTableColumn',\n});\n\nconst slots = useSlots();\nconst props = defineProps(tableColumnProps);\n</script>\n"],"names":[],"mappings":";;;;;;;;;;AAoBA,IAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,IAAA,MAAM,KAAA,GAAQ,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"TableColumn.vue2.mjs","sources":["../../../../../../../packages/components/src/base/tableColumn/TableColumn.vue"],"sourcesContent":["<!--\n ⚠️ 重要:修改此组件前请先阅读 ./README.md\n-->\n<template>\n <!-- 无自定义 slot:使用 el-table-column 默认渲染 -->\n <el-table-column v-if=\"!hasDefaultSlot\" v-bind=\"props\">\n <template v-if=\"slots.header\" #header=\"scope\">\n <slot name=\"header\" v-bind=\"scope\" />\n </template>\n </el-table-column>\n\n <!-- 有自定义 slot -->\n <el-table-column v-else v-bind=\"props\">\n <template #default=\"scope\">\n <!-- 多级表头始终渲染;自定义内容仅在 $index !== -1 时渲染(避免 el-switch 等触发副作用) -->\n <template v-if=\"isMultiLevelHeader || scope.$index !== -1\">\n <slot v-bind=\"scope\" />\n </template>\n </template>\n\n <template v-if=\"slots.header\" #header=\"scope\">\n <slot name=\"header\" v-bind=\"scope\" />\n </template>\n </el-table-column>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, useSlots } from 'vue';\nimport { tableColumnProps } from './tableColumn';\n\ndefineOptions({\n name: 'GmTableColumn',\n});\n\nconst slots = useSlots();\nconst props = defineProps(tableColumnProps);\n\nconst hasDefaultSlot = computed(() => !!slots.default);\n\n/** 递归检查 vnode 是否包含 column 组件 */\nconst isColumnComponent = (vnode: any): boolean => {\n if (!vnode) return false;\n\n // 检查当前节点\n if (vnode.type) {\n const typeName = typeof vnode.type === 'object' ? vnode.type.name : null;\n if (typeName === 'GmTableColumn' || typeName === 'GmTableColumnPro' || typeName === 'ElTableColumn') {\n return true;\n }\n }\n\n // 递归检查 children(处理 template、Fragment 等包装情况)\n if (vnode.children) {\n const children = Array.isArray(vnode.children) ? vnode.children : [vnode.children];\n if (children.some((child: any) => isColumnComponent(child))) {\n return true;\n }\n }\n return false;\n};\n\n/** 检测 slot 是否包含 column 组件(多级表头场景) */\nconst isMultiLevelHeader = computed(() => {\n if (!slots.default) return false;\n try {\n // 执行 slot 获取 vnode,递归检查是否包含 column 组件\n const vnodes = slots.default({ row: {}, column: {}, $index: -1 });\n if (!Array.isArray(vnodes)) return false;\n return vnodes.some(vnode => isColumnComponent(vnode));\n } catch {\n return false;\n }\n});\n</script>\n"],"names":[],"mappings":";;;;;;;;;;AAkCA,IAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,IAAA,MAAM,KAAA,GAAQ,OAAA;AAEd,IAAA,MAAM,iBAAiB,QAAA,CAAS,MAAM,CAAC,CAAC,MAAM,OAAO,CAAA;AAGrD,IAAA,MAAM,iBAAA,GAAoB,CAAC,KAAA,KAAwB;AACjD,MAAA,IAAI,CAAC,OAAO,OAAO,KAAA;AAGnB,MAAA,IAAI,MAAM,IAAA,EAAM;AACd,QAAA,MAAM,WAAW,OAAO,KAAA,CAAM,SAAS,QAAA,GAAW,KAAA,CAAM,KAAK,IAAA,GAAO,IAAA;AACpE,QAAA,IAAI,QAAA,KAAa,eAAA,IAAmB,QAAA,KAAa,kBAAA,IAAsB,aAAa,eAAA,EAAiB;AACnG,UAAA,OAAO,IAAA;AAAA,QACT;AAAA,MACF;AAGA,MAAA,IAAI,MAAM,QAAA,EAAU;AAClB,QAAA,MAAM,QAAA,GAAW,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,QAAQ,IAAI,KAAA,CAAM,QAAA,GAAW,CAAC,KAAA,CAAM,QAAQ,CAAA;AACjF,QAAA,IAAI,SAAS,IAAA,CAAK,CAAC,UAAe,iBAAA,CAAkB,KAAK,CAAC,CAAA,EAAG;AAC3D,UAAA,OAAO,IAAA;AAAA,QACT;AAAA,MACF;AACA,MAAA,OAAO,KAAA;AAAA,IACT,CAAA;AAGA,IAAA,MAAM,kBAAA,GAAqB,SAAS,MAAM;AACxC,MAAA,IAAI,CAAC,KAAA,CAAM,OAAA,EAAS,OAAO,KAAA;AAC3B,MAAA,IAAI;AAEF,QAAA,MAAM,MAAA,GAAS,KAAA,CAAM,OAAA,CAAQ,EAAE,GAAA,EAAK,EAAC,EAAG,MAAA,EAAQ,EAAC,EAAG,MAAA,EAAQ,CAAA,CAAA,EAAI,CAAA;AAChE,QAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,MAAM,GAAG,OAAO,KAAA;AACnC,QAAA,OAAO,MAAA,CAAO,IAAA,CAAK,CAAA,KAAA,KAAS,iBAAA,CAAkB,KAAK,CAAC,CAAA;AAAA,MACtD,CAAA,CAAA,MAAQ;AACN,QAAA,OAAO,KAAA;AAAA,MACT;AAAA,IACF,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -303,6 +303,8 @@ export declare const GmTableColumn: import("../../../../utils").SFCWithInstall<{
303
303
  sortOrders: (import("element-plus/es/components/table/src/table/defaults.js").TableSortOrder | null)[];
304
304
  }, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
305
305
  $slots: {
306
+ header?: ((props: any) => any) | undefined;
307
+ } & {
306
308
  default?: ((props: any) => any) | undefined;
307
309
  } & {
308
310
  header?: ((props: any) => any) | undefined;
@@ -1 +1 @@
1
- export declare const version = "0.9.1";
1
+ export declare const version = "0.9.2";
@@ -1,4 +1,4 @@
1
- const version = "0.9.1";
1
+ const version = "0.9.2";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.9.1';\n"],"names":[],"mappings":"AAAO,MAAM,OAAA,GAAU;;;;"}
1
+ {"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.9.2';\n"],"names":[],"mappings":"AAAO,MAAM,OAAA,GAAU;;;;"}