giime 0.8.11 → 0.8.12

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 (52) hide show
  1. package/dist/index.css +91 -90
  2. package/es/components/src/base/tableColumn/TableColumn.vue2.mjs +5 -5
  3. package/es/components/src/base/tableColumn/TableColumn.vue2.mjs.map +1 -1
  4. package/es/components/src/composite/previewFile/PreviewFile.vue2.mjs +1 -1
  5. package/es/components/src/composite/previewFile/PreviewFile.vue2.mjs.map +1 -1
  6. package/es/components/src/composite/tablePro/TableColumnVNodeRenderer.d.ts +4 -2
  7. package/es/components/src/composite/tablePro/TableColumnVNodeRenderer.mjs +44 -16
  8. package/es/components/src/composite/tablePro/TableColumnVNodeRenderer.mjs.map +1 -1
  9. package/es/components/src/composite/tablePro/TablePro.vue.mjs +1 -1
  10. package/es/components/src/composite/tablePro/TablePro.vue2.mjs +2 -2
  11. package/es/components/src/composite/tablePro/TablePro.vue2.mjs.map +1 -1
  12. package/es/components/src/composite/tablePro/tableColumnPro/TableColumnPro.vue2.mjs +5 -5
  13. package/es/components/src/composite/tablePro/tableColumnPro/TableColumnPro.vue2.mjs.map +1 -1
  14. package/es/components/src/composite/tablePro/tableHelper.d.ts +8 -1
  15. package/es/components/src/composite/tablePro/tableHelper.mjs +10 -1
  16. package/es/components/src/composite/tablePro/tableHelper.mjs.map +1 -1
  17. package/es/components/src/composite/uploadFile/UploadFile.vue.d.ts +4 -90
  18. package/es/components/src/composite/uploadFile/UploadFile.vue.mjs +1 -1
  19. package/es/components/src/composite/uploadFile/UploadFile.vue2.mjs +47 -41
  20. package/es/components/src/composite/uploadFile/UploadFile.vue2.mjs.map +1 -1
  21. package/es/components/src/composite/uploadFile/index.d.ts +4 -190
  22. package/es/components/src/composite/uploadFile/uploadFile.d.ts +1 -51
  23. package/es/components/src/composite/uploadFile/uploadFile.mjs +0 -50
  24. package/es/components/src/composite/uploadFile/uploadFile.mjs.map +1 -1
  25. package/es/giime/version.d.ts +1 -1
  26. package/es/index.css +91 -90
  27. package/lib/components/src/base/tableColumn/TableColumn.vue2.js +4 -4
  28. package/lib/components/src/base/tableColumn/TableColumn.vue2.js.map +1 -1
  29. package/lib/components/src/composite/previewFile/PreviewFile.vue2.js +1 -1
  30. package/lib/components/src/composite/previewFile/PreviewFile.vue2.js.map +1 -1
  31. package/lib/components/src/composite/tablePro/TableColumnVNodeRenderer.d.ts +4 -2
  32. package/lib/components/src/composite/tablePro/TableColumnVNodeRenderer.js +43 -15
  33. package/lib/components/src/composite/tablePro/TableColumnVNodeRenderer.js.map +1 -1
  34. package/lib/components/src/composite/tablePro/TablePro.vue.js +1 -1
  35. package/lib/components/src/composite/tablePro/TablePro.vue2.js +2 -2
  36. package/lib/components/src/composite/tablePro/TablePro.vue2.js.map +1 -1
  37. package/lib/components/src/composite/tablePro/tableColumnPro/TableColumnPro.vue2.js +4 -4
  38. package/lib/components/src/composite/tablePro/tableColumnPro/TableColumnPro.vue2.js.map +1 -1
  39. package/lib/components/src/composite/tablePro/tableHelper.d.ts +8 -1
  40. package/lib/components/src/composite/tablePro/tableHelper.js +10 -1
  41. package/lib/components/src/composite/tablePro/tableHelper.js.map +1 -1
  42. package/lib/components/src/composite/uploadFile/UploadFile.vue.d.ts +4 -90
  43. package/lib/components/src/composite/uploadFile/UploadFile.vue.js +1 -1
  44. package/lib/components/src/composite/uploadFile/UploadFile.vue2.js +47 -41
  45. package/lib/components/src/composite/uploadFile/UploadFile.vue2.js.map +1 -1
  46. package/lib/components/src/composite/uploadFile/index.d.ts +4 -190
  47. package/lib/components/src/composite/uploadFile/uploadFile.d.ts +1 -51
  48. package/lib/components/src/composite/uploadFile/uploadFile.js +0 -50
  49. package/lib/components/src/composite/uploadFile/uploadFile.js.map +1 -1
  50. package/lib/giime/version.d.ts +1 -1
  51. package/lib/index.css +91 -90
  52. package/package.json +1 -1
package/dist/index.css CHANGED
@@ -883,11 +883,13 @@ video {
883
883
  .gm-group:hover .group-hover\:gm-block {
884
884
  display: block;
885
885
  }
886
-
887
- .gm-range-number .el-form-item[data-v-1ae16d96] {
888
- margin: 0;
886
+ .gm-flex-center[data-v-c17deec9] {
887
+ align-items: center;
889
888
  }
890
889
 
890
+ .gm-flex-justify-between[data-v-c17deec9] {
891
+ justify-content: space-between;
892
+ }
891
893
  .circular[data-v-d7b04fae] {
892
894
  animation: loading-rotate-d7b04fae 2s linear infinite;
893
895
  }
@@ -919,6 +921,19 @@ video {
919
921
  stroke-dashoffset: -120px;
920
922
  }
921
923
  }
924
+
925
+ .gm-range-number .el-form-item[data-v-1ae16d96] {
926
+ margin: 0;
927
+ }
928
+
929
+ .gm-upload-pro-preview-dialog[data-v-80b383d8] [data-v-80b383d8] .el-dialog__body {
930
+ padding: 0;
931
+ }
932
+
933
+ .gm-upload-pro-file-picture-card[data-v-80b383d8] [data-v-80b383d8] .el-upload-list__item, .gm-upload-pro-file-picture-card[data-v-80b383d8] [data-v-80b383d8] .el-upload--picture-card {
934
+ width: auto;
935
+ height: auto;
936
+ }
922
937
  .gm-upload-pro-file {
923
938
  line-height: normal;
924
939
  }
@@ -957,21 +972,6 @@ video {
957
972
  .gm-upload-pro-file-disabled .el-upload-list__item-status-label {
958
973
  display: none;
959
974
  }
960
- .gm-upload-pro-preview-dialog[data-v-80b383d8] [data-v-80b383d8] .el-dialog__body {
961
- padding: 0;
962
- }
963
-
964
- .gm-upload-pro-file-picture-card[data-v-80b383d8] [data-v-80b383d8] .el-upload-list__item, .gm-upload-pro-file-picture-card[data-v-80b383d8] [data-v-80b383d8] .el-upload--picture-card {
965
- width: auto;
966
- height: auto;
967
- }
968
- .gm-flex-center[data-v-c17deec9] {
969
- align-items: center;
970
- }
971
-
972
- .gm-flex-justify-between[data-v-c17deec9] {
973
- justify-content: space-between;
974
- }
975
975
  .gm-number-interval-single[data-v-4e6f4d6f] {
976
976
  border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
977
977
  box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
@@ -990,97 +990,31 @@ video {
990
990
  .gm-number-interval-single[data-v-4e6f4d6f]:hover .gm-number-interval-close[data-v-4e6f4d6f] {
991
991
  display: flex;
992
992
  }
993
- [data-v-4bbcbf2d] .gmTableNoBorder .el-table__body .el-table__cell {
994
- border-right: none;
995
- }
996
-
997
- [data-v-4bbcbf2d] .gmTableNoBorder .el-table__inner-wrapper:before {
998
- height: 0;
999
- }
1000
-
1001
- [data-v-4bbcbf2d] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
1002
- height: 0;
1003
- }
1004
-
1005
- [data-v-4bbcbf2d] .gmTableNoBorder.el-table--border:after {
1006
- height: 0;
1007
- }
1008
-
1009
- [data-v-4bbcbf2d] .gmTableNoBorder.el-table--border:before {
1010
- height: 0;
1011
- }
1012
-
1013
- [data-v-4bbcbf2d] .gmTableNoBorder .el-table__border-left-patch {
1014
- height: 0;
1015
- }
1016
993
  [data-v-79615afd] .gmSearchForm .el-form-item {
1017
994
  margin-right: 0;
1018
995
  margin-bottom: 4px;
1019
996
  }
1020
- .gm-upload-preview-dialog[data-v-312f9322] [data-v-312f9322] .el-dialog__body {
1021
- padding: 0;
1022
- }
1023
-
1024
- .gm-upload-file-picture-card[data-v-312f9322] [data-v-312f9322] .el-upload-list__item, .gm-upload-file-picture-card[data-v-312f9322] [data-v-312f9322] .el-upload--picture-card {
1025
- width: auto;
1026
- height: auto;
1027
- }
1028
- .gm-upload-file {
1029
- line-height: normal;
1030
- }
1031
- .gm-upload-file .el-checkbox {
1032
- position: absolute;
1033
- left: 10px;
1034
- top: 0;
1035
- z-index: 9;
1036
- }
1037
- .gm-upload-file .el-upload-list--picture-card {
1038
- gap: 10px;
1039
- }
1040
- .gm-upload-file .el-upload-list__item {
1041
- margin: 0;
1042
- }
1043
- .gm-upload-file .el-upload-list__item-file-name {
1044
- line-height: normal;
1045
- }
1046
- .gm-upload-file .el-upload-dragger {
1047
- padding: 0;
1048
- border: none;
1049
- width: 100%;
1050
- height: 100%;
1051
- display: flex;
1052
- }
1053
- .gm-upload-file .el-upload--picture-card {
1054
- border: none;
1055
- }
1056
-
1057
- .gm-upload-file-disabled .el-upload--picture-card {
1058
- display: none;
1059
- }
1060
- .gm-upload-file-disabled .el-upload-list__item-status-label {
1061
- display: none;
1062
- }
1063
- [data-v-98c2e804] .gmTableNoBorder .el-table__body .el-table__cell {
997
+ [data-v-050a4f74] .gmTableNoBorder .el-table__body .el-table__cell {
1064
998
  border-right: none;
1065
999
  }
1066
1000
 
1067
- [data-v-98c2e804] .gmTableNoBorder .el-table__inner-wrapper:before {
1001
+ [data-v-050a4f74] .gmTableNoBorder .el-table__inner-wrapper:before {
1068
1002
  height: 0;
1069
1003
  }
1070
1004
 
1071
- [data-v-98c2e804] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
1005
+ [data-v-050a4f74] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
1072
1006
  height: 0;
1073
1007
  }
1074
1008
 
1075
- [data-v-98c2e804] .gmTableNoBorder.el-table--border:after {
1009
+ [data-v-050a4f74] .gmTableNoBorder.el-table--border:after {
1076
1010
  height: 0;
1077
1011
  }
1078
1012
 
1079
- [data-v-98c2e804] .gmTableNoBorder.el-table--border:before {
1013
+ [data-v-050a4f74] .gmTableNoBorder.el-table--border:before {
1080
1014
  height: 0;
1081
1015
  }
1082
1016
 
1083
- [data-v-98c2e804] .gmTableNoBorder .el-table__border-left-patch {
1017
+ [data-v-050a4f74] .gmTableNoBorder .el-table__border-left-patch {
1084
1018
  height: 0;
1085
1019
  }
1086
1020
 
@@ -1148,6 +1082,29 @@ video {
1148
1082
  border-radius: 10px;
1149
1083
  background: #eee;
1150
1084
  }
1085
+ [data-v-98c2e804] .gmTableNoBorder .el-table__body .el-table__cell {
1086
+ border-right: none;
1087
+ }
1088
+
1089
+ [data-v-98c2e804] .gmTableNoBorder .el-table__inner-wrapper:before {
1090
+ height: 0;
1091
+ }
1092
+
1093
+ [data-v-98c2e804] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
1094
+ height: 0;
1095
+ }
1096
+
1097
+ [data-v-98c2e804] .gmTableNoBorder.el-table--border:after {
1098
+ height: 0;
1099
+ }
1100
+
1101
+ [data-v-98c2e804] .gmTableNoBorder.el-table--border:before {
1102
+ height: 0;
1103
+ }
1104
+
1105
+ [data-v-98c2e804] .gmTableNoBorder .el-table__border-left-patch {
1106
+ height: 0;
1107
+ }
1151
1108
  @charset "UTF-8";
1152
1109
  .table-custom-header-drawer .el-drawer__header {
1153
1110
  padding: 10px 15px;
@@ -1203,4 +1160,48 @@ video {
1203
1160
  box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.1);
1204
1161
  border-radius: 10px;
1205
1162
  background: #eee;
1163
+ }
1164
+ .gm-upload-preview-dialog[data-v-28529631] [data-v-28529631] .el-dialog__body {
1165
+ padding: 0;
1166
+ }
1167
+
1168
+ .gm-upload-file-picture-card[data-v-28529631] [data-v-28529631] .el-upload-list__item, .gm-upload-file-picture-card[data-v-28529631] [data-v-28529631] .el-upload--picture-card {
1169
+ width: auto;
1170
+ height: auto;
1171
+ }
1172
+ .gm-upload-file {
1173
+ line-height: normal;
1174
+ }
1175
+ .gm-upload-file .el-checkbox {
1176
+ position: absolute;
1177
+ left: 10px;
1178
+ top: 0;
1179
+ z-index: 9;
1180
+ }
1181
+ .gm-upload-file .el-upload-list--picture-card {
1182
+ gap: 10px;
1183
+ }
1184
+ .gm-upload-file .el-upload-list__item {
1185
+ margin: 0;
1186
+ border: none;
1187
+ }
1188
+ .gm-upload-file .el-upload-list__item-file-name {
1189
+ line-height: normal;
1190
+ }
1191
+ .gm-upload-file .el-upload-dragger {
1192
+ padding: 0;
1193
+ border: none;
1194
+ width: 100%;
1195
+ height: 100%;
1196
+ display: flex;
1197
+ }
1198
+ .gm-upload-file .el-upload--picture-card {
1199
+ border: none;
1200
+ }
1201
+
1202
+ .gm-upload-file-disabled .el-upload--picture-card {
1203
+ display: none;
1204
+ }
1205
+ .gm-upload-file-disabled .el-upload-list__item-status-label {
1206
+ display: none;
1206
1207
  }
@@ -1,4 +1,4 @@
1
- import { defineComponent, useSlots, resolveComponent, createBlock, openBlock, normalizeProps, guardReactiveProps, createSlots, withCtx, unref, renderSlot, createCommentVNode, mergeProps } from 'vue';
1
+ import { defineComponent, useSlots, resolveComponent, createBlock, openBlock, normalizeProps, guardReactiveProps, createSlots, withCtx, unref, renderSlot } from 'vue';
2
2
  import { tableColumnProps } from './tableColumn.mjs';
3
3
 
4
4
  var _sfc_main = /* @__PURE__ */ defineComponent({
@@ -21,15 +21,15 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
21
21
  }, [
22
22
  unref(slots).default ? {
23
23
  name: "default",
24
- fn: withCtx((slotValue) => [
25
- slotValue.$index !== -1 ? renderSlot(_ctx.$slots, "default", normalizeProps(mergeProps({ key: 0 }, slotValue))) : createCommentVNode("v-if", true)
24
+ fn: withCtx((scope) => [
25
+ renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(scope)))
26
26
  ]),
27
27
  key: "0"
28
28
  } : void 0,
29
29
  unref(slots).header ? {
30
30
  name: "header",
31
- fn: withCtx((slotValue) => [
32
- renderSlot(_ctx.$slots, "header", normalizeProps(guardReactiveProps(slotValue)))
31
+ fn: withCtx((scope) => [
32
+ renderSlot(_ctx.$slots, "header", normalizeProps(guardReactiveProps(scope)))
33
33
  ]),
34
34
  key: "1"
35
35
  } : void 0
@@ -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=\"slotValue\">\n <template v-if=\"slotValue.$index !== -1\">\n <slot v-bind=\"slotValue\" />\n </template>\n </template>\n <template v-if=\"slots.header\" #header=\"slotValue\">\n <slot name=\"header\" v-bind=\"slotValue\" />\n </template>\n </el-table-column>\n</template>\n<script lang=\"ts\" setup>\nimport { useSlots } from 'vue';\nimport { tableColumnProps } from './tableColumn';\n// import type { TableColumnInstance } from 'element-plus';\n\ndefineOptions({\n name: 'GmTableColumn',\n});\nconst slots = useSlots();\nconst props = defineProps(tableColumnProps);\n\n// const elRef = ref<TableColumnInstance>();\n// defineExpose({\n// elRef,\n// });\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":["<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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -97,7 +97,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
97
97
  onClick: download
98
98
  }, {
99
99
  default: withCtx(() => [
100
- createTextVNode("\u4E0B\u8F7D")
100
+ createTextVNode("\u4E0B\u8F7D11")
101
101
  ]),
102
102
  _: 1
103
103
  /* STABLE */
@@ -1 +1 @@
1
- {"version":3,"file":"PreviewFile.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/previewFile/PreviewFile.vue"],"sourcesContent":["<template>\n <el-dialog v-model=\"dialogVisible\" title=\"预览\" :width=\"previewWidth\" top=\"10vh\" append-to-body destroy-on-close>\n <template #header>\n <div class=\"gm-flex gm-items-center gm-justify-between\">\n <span>预览</span>\n <el-button v-if=\"openPreviewDownload\" type=\"primary\" size=\"default\" link @click=\"download\">下载</el-button>\n </div>\n </template>\n <div class=\"gm-flex gm-select-none gm-items-center gm-justify-center gm-gap-4\">\n <div v-if=\"files.length > 1\" class=\"gm-cursor-pointer\" @click=\"prev\">\n <el-icon :size=\"40\"><ArrowLeftBold /></el-icon>\n </div>\n <div class=\"gm-flex gm-flex-1 gm-items-center gm-justify-center\" style=\"height: calc(80vh - 72px)\">\n <GmFileComponent v-bind=\"fileProps\" />\n </div>\n <div v-if=\"files.length > 1\" class=\"gm-cursor-pointer\" @click=\"next\">\n <el-icon :size=\"40\"><ArrowRightBold /></el-icon>\n </div>\n </div>\n </el-dialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { ElMessage } from 'element-plus';\nimport { useDownload } from '@giime/hooks/base/useDownload';\nimport { ArrowLeftBold, ArrowRightBold } from '@element-plus/icons-vue';\nimport GmFileComponent from '../fileComponent';\nimport { previewFileProps } from './previewFile';\nimport type { UploadFile } from 'element-plus';\n\ndefineOptions({\n name: 'GmPreviewFile',\n});\n\nconst props = defineProps(previewFileProps);\nconst dialogVisible = defineModel<boolean>('dialogVisible', { default: false });\nconst fileIndex = defineModel<number>('fileIndex', { default: 0 });\n\nconst downloadMethod = useDownload();\n\nconst files = computed(() => {\n let result: Partial<UploadFile>[] = props.fileList;\n if (props.fileList && !props.fileList.length && props.file) {\n result = [props.file];\n }\n return result;\n});\n\nconst fileProps = computed(() => {\n const file = files.value[fileIndex.value];\n return {\n file,\n controls: props.controls,\n oncontextmenu: props.oncontextmenu,\n controlslist: props.controlslist,\n field: props.field,\n url: props.url,\n size: props.size,\n };\n});\n\nconst prev = () => {\n if (fileIndex.value > 0) {\n fileIndex.value--;\n return;\n }\n ElMessage.warning('已经是第一张了');\n};\n\nconst next = () => {\n if (fileIndex.value < props.fileList.length - 1) {\n fileIndex.value++;\n return;\n }\n ElMessage.warning('没有更多了!');\n};\n\nconst download = () => {\n const file = files.value[fileIndex.value];\n const url = (file[props.url as keyof UploadFile] || file.url || '') as string;\n downloadMethod.downloadByUrl(url, { filename: file.name });\n};\n</script>\n"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,IAAA,MAAM,KAAA,GAAQ,OAAA;AACd,IAAA,MAAM,aAAA,GAAgBA,QAAA,CAAoB,OAAA,EAAC,eAAmC,CAAA;AAC9E,IAAA,MAAM,SAAA,GAAYA,QAAA,UAAoB,WAA2B,CAAA;AAEjE,IAAA,MAAM,iBAAiB,WAAA,EAAY;AAEnC,IAAA,MAAM,KAAA,GAAQ,SAAS,MAAM;AAC3B,MAAA,IAAI,SAAgC,KAAA,CAAM,QAAA;AAC1C,MAAA,IAAI,MAAM,QAAA,IAAY,CAAC,MAAM,QAAA,CAAS,MAAA,IAAU,MAAM,IAAA,EAAM;AAC1D,QAAA,MAAA,GAAS,CAAC,MAAM,IAAI,CAAA;AAAA,MACtB;AACA,MAAA,OAAO,MAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,MAAM,SAAA,GAAY,SAAS,MAAM;AAC/B,MAAA,MAAM,IAAA,GAAO,KAAA,CAAM,KAAA,CAAM,SAAA,CAAU,KAAK,CAAA;AACxC,MAAA,OAAO;AAAA,QACL,IAAA;AAAA,QACA,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,eAAe,KAAA,CAAM,aAAA;AAAA,QACrB,cAAc,KAAA,CAAM,YAAA;AAAA,QACpB,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,KAAK,KAAA,CAAM,GAAA;AAAA,QACX,MAAM,KAAA,CAAM;AAAA,OACd;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAM,OAAO,MAAM;AACjB,MAAA,IAAI,SAAA,CAAU,QAAQ,CAAA,EAAG;AACvB,QAAA,SAAA,CAAU,KAAA,EAAA;AACV,QAAA;AAAA,MACF;AACA,MAAA,SAAA,CAAU,QAAQ,4CAAS,CAAA;AAAA,IAC7B,CAAA;AAEA,IAAA,MAAM,OAAO,MAAM;AACjB,MAAA,IAAI,SAAA,CAAU,KAAA,GAAQ,KAAA,CAAM,QAAA,CAAS,SAAS,CAAA,EAAG;AAC/C,QAAA,SAAA,CAAU,KAAA,EAAA;AACV,QAAA;AAAA,MACF;AACA,MAAA,SAAA,CAAU,QAAQ,sCAAQ,CAAA;AAAA,IAC5B,CAAA;AAEA,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,MAAM,IAAA,GAAO,KAAA,CAAM,KAAA,CAAM,SAAA,CAAU,KAAK,CAAA;AACxC,MAAA,MAAM,MAAO,IAAA,CAAK,KAAA,CAAM,GAAuB,CAAA,IAAK,KAAK,GAAA,IAAO,EAAA;AAChE,MAAA,cAAA,CAAe,cAAc,GAAA,EAAK,EAAE,QAAA,EAAU,IAAA,CAAK,MAAM,CAAA;AAAA,IAC3D,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"PreviewFile.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/previewFile/PreviewFile.vue"],"sourcesContent":["<template>\n <el-dialog v-model=\"dialogVisible\" title=\"预览\" :width=\"previewWidth\" top=\"10vh\" append-to-body destroy-on-close>\n <template #header>\n <div class=\"gm-flex gm-items-center gm-justify-between\">\n <span>预览</span>\n <el-button v-if=\"openPreviewDownload\" type=\"primary\" size=\"default\" link @click=\"download\">下载11</el-button>\n </div>\n </template>\n <div class=\"gm-flex gm-select-none gm-items-center gm-justify-center gm-gap-4\">\n <div v-if=\"files.length > 1\" class=\"gm-cursor-pointer\" @click=\"prev\">\n <el-icon :size=\"40\"><ArrowLeftBold /></el-icon>\n </div>\n <div class=\"gm-flex gm-flex-1 gm-items-center gm-justify-center\" style=\"height: calc(80vh - 72px)\">\n <GmFileComponent v-bind=\"fileProps\" />\n </div>\n <div v-if=\"files.length > 1\" class=\"gm-cursor-pointer\" @click=\"next\">\n <el-icon :size=\"40\"><ArrowRightBold /></el-icon>\n </div>\n </div>\n </el-dialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { ElMessage } from 'element-plus';\nimport { useDownload } from '@giime/hooks/base/useDownload';\nimport { ArrowLeftBold, ArrowRightBold } from '@element-plus/icons-vue';\nimport GmFileComponent from '../fileComponent';\nimport { previewFileProps } from './previewFile';\nimport type { UploadFile } from 'element-plus';\n\ndefineOptions({\n name: 'GmPreviewFile',\n});\n\nconst props = defineProps(previewFileProps);\nconst dialogVisible = defineModel<boolean>('dialogVisible', { default: false });\nconst fileIndex = defineModel<number>('fileIndex', { default: 0 });\n\nconst downloadMethod = useDownload();\n\nconst files = computed(() => {\n let result: Partial<UploadFile>[] = props.fileList;\n if (props.fileList && !props.fileList.length && props.file) {\n result = [props.file];\n }\n return result;\n});\n\nconst fileProps = computed(() => {\n const file = files.value[fileIndex.value];\n return {\n file,\n controls: props.controls,\n oncontextmenu: props.oncontextmenu,\n controlslist: props.controlslist,\n field: props.field,\n url: props.url,\n size: props.size,\n };\n});\n\nconst prev = () => {\n if (fileIndex.value > 0) {\n fileIndex.value--;\n return;\n }\n ElMessage.warning('已经是第一张了');\n};\n\nconst next = () => {\n if (fileIndex.value < props.fileList.length - 1) {\n fileIndex.value++;\n return;\n }\n ElMessage.warning('没有更多了!');\n};\n\nconst download = () => {\n const file = files.value[fileIndex.value];\n const url = (file[props.url as keyof UploadFile] || file.url || '') as string;\n downloadMethod.downloadByUrl(url, { filename: file.name });\n};\n</script>\n"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,IAAA,MAAM,KAAA,GAAQ,OAAA;AACd,IAAA,MAAM,aAAA,GAAgBA,QAAA,CAAoB,OAAA,EAAC,eAAmC,CAAA;AAC9E,IAAA,MAAM,SAAA,GAAYA,QAAA,UAAoB,WAA2B,CAAA;AAEjE,IAAA,MAAM,iBAAiB,WAAA,EAAY;AAEnC,IAAA,MAAM,KAAA,GAAQ,SAAS,MAAM;AAC3B,MAAA,IAAI,SAAgC,KAAA,CAAM,QAAA;AAC1C,MAAA,IAAI,MAAM,QAAA,IAAY,CAAC,MAAM,QAAA,CAAS,MAAA,IAAU,MAAM,IAAA,EAAM;AAC1D,QAAA,MAAA,GAAS,CAAC,MAAM,IAAI,CAAA;AAAA,MACtB;AACA,MAAA,OAAO,MAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,MAAM,SAAA,GAAY,SAAS,MAAM;AAC/B,MAAA,MAAM,IAAA,GAAO,KAAA,CAAM,KAAA,CAAM,SAAA,CAAU,KAAK,CAAA;AACxC,MAAA,OAAO;AAAA,QACL,IAAA;AAAA,QACA,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,eAAe,KAAA,CAAM,aAAA;AAAA,QACrB,cAAc,KAAA,CAAM,YAAA;AAAA,QACpB,OAAO,KAAA,CAAM,KAAA;AAAA,QACb,KAAK,KAAA,CAAM,GAAA;AAAA,QACX,MAAM,KAAA,CAAM;AAAA,OACd;AAAA,IACF,CAAC,CAAA;AAED,IAAA,MAAM,OAAO,MAAM;AACjB,MAAA,IAAI,SAAA,CAAU,QAAQ,CAAA,EAAG;AACvB,QAAA,SAAA,CAAU,KAAA,EAAA;AACV,QAAA;AAAA,MACF;AACA,MAAA,SAAA,CAAU,QAAQ,4CAAS,CAAA;AAAA,IAC7B,CAAA;AAEA,IAAA,MAAM,OAAO,MAAM;AACjB,MAAA,IAAI,SAAA,CAAU,KAAA,GAAQ,KAAA,CAAM,QAAA,CAAS,SAAS,CAAA,EAAG;AAC/C,QAAA,SAAA,CAAU,KAAA,EAAA;AACV,QAAA;AAAA,MACF;AACA,MAAA,SAAA,CAAU,QAAQ,sCAAQ,CAAA;AAAA,IAC5B,CAAA;AAEA,IAAA,MAAM,WAAW,MAAM;AACrB,MAAA,MAAM,IAAA,GAAO,KAAA,CAAM,KAAA,CAAM,SAAA,CAAU,KAAK,CAAA;AACxC,MAAA,MAAM,MAAO,IAAA,CAAK,KAAA,CAAM,GAAuB,CAAA,IAAK,KAAK,GAAA,IAAO,EAAA;AAChE,MAAA,cAAA,CAAe,cAAc,GAAA,EAAK,EAAE,QAAA,EAAU,IAAA,CAAK,MAAM,CAAA;AAAA,IAC3D,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import type { TableColumnProProps } from './tableColumnPro/tableColumnPro';
2
- import type { PropType } from 'vue';
2
+ import type { PropType, VNode } from 'vue';
3
3
  declare const _default: import("vue").DefineComponent<{
4
4
  vnode: {
5
5
  type: (ObjectConstructor | ArrayConstructor)[];
@@ -13,7 +13,9 @@ declare const _default: import("vue").DefineComponent<{
13
13
  type: PropType<TableColumnProProps[]>;
14
14
  default: () => never[];
15
15
  };
16
- }, () => any[], unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
16
+ }, () => (VNode<import("vue").RendererNode, import("vue").RendererElement, {
17
+ [key: string]: any;
18
+ }> | null)[], unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
17
19
  vnode: {
18
20
  type: (ObjectConstructor | ArrayConstructor)[];
19
21
  required: true;
@@ -1,5 +1,4 @@
1
- import { defineComponent, computed, h } from 'vue';
2
- import { getVnodesByGmName } from './tableHelper.mjs';
1
+ import { defineComponent, computed, cloneVNode, h } from 'vue';
3
2
 
4
3
  var TableColumnVNodeRenderer = /* @__PURE__ */ defineComponent({
5
4
  functional: true,
@@ -20,7 +19,6 @@ var TableColumnVNodeRenderer = /* @__PURE__ */ defineComponent({
20
19
  }
21
20
  },
22
21
  setup(props) {
23
- const vnodes = computed(() => getVnodesByGmName(Array.isArray(props.vnode) ? props.vnode : [props.vnode], "GmTableColumnPro"));
24
22
  const mergePropsList = computed(() => {
25
23
  return props.defaultPropsList.map((it) => {
26
24
  const findProp = props.propsList.find((item) => item.prop === it.prop);
@@ -30,21 +28,51 @@ var TableColumnVNodeRenderer = /* @__PURE__ */ defineComponent({
30
28
  return it;
31
29
  });
32
30
  });
33
- const res = computed(() => mergePropsList.value.filter((props2) => props2.isShow && props2.type !== "edit").map((props2) => {
34
- const findVnode = vnodes.value.find((it) => it.props.prop === props2.prop);
35
- if (findVnode) {
36
- findVnode.props = {
37
- ...findVnode.props,
38
- width: props2.width,
39
- label: props2.label,
40
- fixed: props2.fixed
41
- // type: props.type,
42
- };
31
+ const processVNode = (vnode) => {
32
+ if (!vnode) return null;
33
+ if (vnode.type?.name === "GmTableColumnPro") {
34
+ const propsConfig = mergePropsList.value.find((it) => it.prop === vnode.props?.prop);
35
+ if (propsConfig && (!propsConfig.isShow || propsConfig.type === "edit")) {
36
+ return null;
37
+ }
38
+ if (propsConfig) {
39
+ const newProps = {
40
+ ...vnode.props,
41
+ width: propsConfig.width,
42
+ label: propsConfig.label,
43
+ fixed: propsConfig.fixed
44
+ };
45
+ return cloneVNode(vnode, newProps);
46
+ }
47
+ return vnode;
48
+ }
49
+ if (vnode.children) {
50
+ let newChildren = vnode.children;
51
+ if (typeof vnode.children === "object" && vnode.children.default) {
52
+ const originalDefault = vnode.children.default;
53
+ newChildren = {
54
+ ...vnode.children,
55
+ default: (slotProps) => {
56
+ const childVnodes = originalDefault(slotProps);
57
+ if (Array.isArray(childVnodes)) {
58
+ return childVnodes.map(processVNode).filter(Boolean);
59
+ }
60
+ return processVNode(childVnodes);
61
+ }
62
+ };
63
+ } else if (Array.isArray(vnode.children)) {
64
+ newChildren = vnode.children.map(processVNode).filter(Boolean);
65
+ }
66
+ return cloneVNode(vnode, vnode.props, newChildren);
43
67
  }
44
- return findVnode;
45
- }));
68
+ return vnode;
69
+ };
46
70
  const render = computed(() => {
47
- return res.value.map((it) => it && h(it));
71
+ const vnodeArray = Array.isArray(props.vnode) ? props.vnode : [props.vnode];
72
+ return vnodeArray.map((vnode) => {
73
+ const processed = processVNode(vnode);
74
+ return processed ? h(processed) : null;
75
+ }).filter(Boolean);
48
76
  });
49
77
  return () => render.value;
50
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TableColumnVNodeRenderer.mjs","sources":["../../../../../../../packages/components/src/composite/tablePro/TableColumnVNodeRenderer.tsx"],"sourcesContent":["// MyVNodeRenderer.js\nimport { computed, defineComponent, h } from 'vue';\nimport { getVnodesByGmName } from './tableHelper';\nimport type { TableColumnProProps } from './tableColumnPro/tableColumnPro';\nimport type { PropType } from 'vue';\nexport default defineComponent({\n functional: true,\n props: {\n // 当前原始vnode vue模板中的attribute\n vnode: {\n type: [Object, Array],\n required: true,\n },\n // 真实渲染的propsList\n propsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n defaultPropsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n },\n setup(props) {\n const vnodes = computed(() => getVnodesByGmName(Array.isArray(props.vnode) ? props.vnode : [props.vnode], 'GmTableColumnPro'));\n /** 合并propsList和defaultPropsList */\n const mergePropsList = computed(() => {\n return props.defaultPropsList.map(it => {\n const findProp = props.propsList.find(item => item.prop === it.prop);\n if (findProp) {\n return findProp;\n }\n return it;\n });\n });\n const res = computed(() =>\n mergePropsList.value\n .filter(props => props.isShow && props.type !== 'edit')\n .map(props => {\n const findVnode = vnodes.value.find(it => it.props.prop === props.prop);\n if (findVnode) {\n findVnode.props = {\n ...findVnode.props,\n width: props.width,\n label: props.label,\n fixed: props.fixed,\n // type: props.type,\n };\n }\n // findVnode.props.label = props.label;\n // findVnode.props.type = props.type;\n return findVnode;\n }),\n );\n const render = computed(() => {\n return res.value.map(it => it && h(it));\n });\n return () => render.value;\n },\n});\n"],"names":["functional","props","vnode","type","Object","Array","required","propsList","default","defaultPropsList","setup","vnodes","computed","getVnodesByGmName","isArray","mergePropsList","map","it","findProp","find","item","prop","res","value","filter","isShow","findVnode","width","label","fixed","render","h"],"mappings":";;;AAKA,+DAA+B;AAAA,EAC7BA,UAAAA,EAAY,IAAA;AAAA,EACZC,KAAAA,EAAO;AAAA;AAAA,IAELC,KAAAA,EAAO;AAAA,MACLC,IAAAA,EAAM,CAACC,MAAAA,EAAQC,KAAK,CAAA;AAAA,MACpBC,QAAAA,EAAU;AAAA,KACZ;AAAA;AAAA,IAEAC,SAAAA,EAAW;AAAA,MACTJ,IAAAA,EAAME,KAAAA;AAAAA,MACNG,OAAAA,EAASA,MAAM;AAAA,KACjB;AAAA,IACAC,gBAAAA,EAAkB;AAAA,MAChBN,IAAAA,EAAME,KAAAA;AAAAA,MACNG,OAAAA,EAASA,MAAM;AAAA;AACjB,GACF;AAAA,EACAE,MAAMT,KAAAA,EAAO;AACX,IAAA,MAAMU,SAASC,QAAAA,CAAS,MAAMC,iBAAAA,CAAkBR,KAAAA,CAAMS,QAAQb,KAAAA,CAAMC,KAAK,CAAA,GAAID,KAAAA,CAAMC,QAAQ,CAACD,KAAAA,CAAMC,KAAK,CAAA,EAAG,kBAAkB,CAAC,CAAA;AAE7H,IAAA,MAAMa,cAAAA,GAAiBH,SAAS,MAAM;AACpC,MAAA,OAAOX,KAAAA,CAAMQ,gBAAAA,CAAiBO,GAAAA,CAAIC,CAAAA,EAAAA,KAAM;AACtC,QAAA,MAAMC,QAAAA,GAAWjB,MAAMM,SAAAA,CAAUY,IAAAA,CAAKC,UAAQA,IAAAA,CAAKC,IAAAA,KAASJ,GAAGI,IAAI,CAAA;AACnE,QAAA,IAAIH,QAAAA,EAAU;AACZ,UAAA,OAAOA,QAAAA;AAAAA,QACT;AACA,QAAA,OAAOD,EAAAA;AAAAA,MACT,CAAC,CAAA;AAAA,IACH,CAAC,CAAA;AACD,IAAA,MAAMK,MAAMV,QAAAA,CAAS,MACnBG,cAAAA,CAAeQ,KAAAA,CACZC,OAAOvB,CAAAA,MAAAA,KAASA,MAAAA,CAAMwB,MAAAA,IAAUxB,OAAME,IAAAA,KAAS,MAAM,CAAA,CACrDa,GAAAA,CAAIf,CAAAA,MAAAA,KAAS;AACZ,MAAA,MAAMyB,SAAAA,GAAYf,OAAOY,KAAAA,CAAMJ,IAAAA,CAAKF,QAAMA,EAAAA,CAAGhB,KAAAA,CAAMoB,IAAAA,KAASpB,MAAAA,CAAMoB,IAAI,CAAA;AACtE,MAAA,IAAIK,SAAAA,EAAW;AACbA,QAAAA,SAAAA,CAAUzB,KAAAA,GAAQ;AAAA,UAChB,GAAGyB,SAAAA,CAAUzB,KAAAA;AAAAA,UACb0B,OAAO1B,MAAAA,CAAM0B,KAAAA;AAAAA,UACbC,OAAO3B,MAAAA,CAAM2B,KAAAA;AAAAA,UACbC,OAAO5B,MAAAA,CAAM4B;AAAAA;AAAAA,SAEf;AAAA,MACF;AAGA,MAAA,OAAOH,SAAAA;AAAAA,IACT,CAAC,CACL,CAAA;AACA,IAAA,MAAMI,MAAAA,GAASlB,SAAS,MAAM;AAC5B,MAAA,OAAOU,IAAIC,KAAAA,CAAMP,GAAAA,CAAIC,QAAMA,EAAAA,IAAMc,CAAAA,CAAEd,EAAE,CAAC,CAAA;AAAA,IACxC,CAAC,CAAA;AACD,IAAA,OAAO,MAAMa,MAAAA,CAAOP,KAAAA;AAAAA,EACtB;AACF,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"TableColumnVNodeRenderer.mjs","sources":["../../../../../../../packages/components/src/composite/tablePro/TableColumnVNodeRenderer.tsx"],"sourcesContent":["// TableColumnVNodeRenderer - 支持多级表头\nimport { computed, defineComponent, h, cloneVNode } from 'vue';\nimport type { TableColumnProProps } from './tableColumnPro/tableColumnPro';\nimport type { PropType, VNode } from 'vue';\n\nexport default defineComponent({\n functional: true,\n props: {\n // 当前原始vnode vue模板中的attribute\n vnode: {\n type: [Object, Array],\n required: true,\n },\n // 真实渲染的propsList\n propsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n defaultPropsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n },\n setup(props) {\n /** 合并propsList和defaultPropsList */\n const mergePropsList = computed(() => {\n return props.defaultPropsList.map(it => {\n const findProp = props.propsList.find(item => item.prop === it.prop);\n if (findProp) {\n return findProp;\n }\n return it;\n });\n });\n\n /**\n * 递归处理 vnode 树,应用 propsList 配置\n * @param vnode 要处理的 vnode\n * @returns 处理后的 vnode\n */\n const processVNode = (vnode: any): any => {\n if (!vnode) return null;\n\n // 如果是 GmTableColumnPro,查找并应用配置\n if (vnode.type?.name === 'GmTableColumnPro') {\n const propsConfig = mergePropsList.value.find(it => it.prop === vnode.props?.prop);\n\n // 如果配置中标记为不显示或类型是 edit,跳过渲染\n if (propsConfig && (!propsConfig.isShow || propsConfig.type === 'edit')) {\n return null;\n }\n\n // 应用配置到 vnode props\n if (propsConfig) {\n const newProps = {\n ...vnode.props,\n width: propsConfig.width,\n label: propsConfig.label,\n fixed: propsConfig.fixed,\n };\n return cloneVNode(vnode, newProps);\n }\n\n return vnode;\n }\n\n // 如果是其他组件(如 gm-table-column 用于多级表头),递归处理子节点\n if (vnode.children) {\n let newChildren = vnode.children;\n\n // 如果 children 是对象(包含 slots),递归处理 default slot\n if (typeof vnode.children === 'object' && vnode.children.default) {\n const originalDefault = vnode.children.default;\n newChildren = {\n ...vnode.children,\n default: (slotProps: any) => {\n const childVnodes = originalDefault(slotProps);\n if (Array.isArray(childVnodes)) {\n return childVnodes.map(processVNode).filter(Boolean);\n }\n return processVNode(childVnodes);\n },\n };\n }\n // 如果 children 是数组,递归处理每个子节点\n else if (Array.isArray(vnode.children)) {\n newChildren = vnode.children.map(processVNode).filter(Boolean);\n }\n\n return cloneVNode(vnode, vnode.props, newChildren);\n }\n\n return vnode;\n };\n\n const render = computed(() => {\n const vnodeArray = Array.isArray(props.vnode) ? props.vnode : [props.vnode];\n return vnodeArray\n .map(vnode => {\n const processed = processVNode(vnode);\n return processed ? h(processed) : null;\n })\n .filter(Boolean);\n });\n\n return () => render.value;\n },\n});\n"],"names":["functional","props","vnode","type","Object","Array","required","propsList","default","defaultPropsList","setup","mergePropsList","computed","map","it","findProp","find","item","prop","processVNode","name","propsConfig","value","isShow","newProps","width","label","fixed","cloneVNode","children","newChildren","originalDefault","slotProps","childVnodes","isArray","filter","Boolean","render","vnodeArray","processed","h"],"mappings":"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"}
@@ -2,7 +2,7 @@ import _sfc_main from './TablePro.vue2.mjs';
2
2
  import './TablePro.vue3.mjs';
3
3
  import _export_sfc from '../../../../_virtual/_plugin-vue_export-helper.mjs';
4
4
 
5
- var TablePro = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4bbcbf2d"]]);
5
+ var TablePro = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-050a4f74"]]);
6
6
 
7
7
  export { TablePro as default };
8
8
  //# sourceMappingURL=TablePro.vue.mjs.map
@@ -11,7 +11,7 @@ import { tableProEmits, tableProProps } from './tablePro.mjs';
11
11
  import { getVnodesByGmName } from './tableHelper.mjs';
12
12
  import { TableColumnProName, tableColumnProProps } from './tableColumnPro/tableColumnPro.mjs';
13
13
 
14
- const _withScopeId = (n) => (pushScopeId("data-v-4bbcbf2d"), n = n(), popScopeId(), n);
14
+ const _withScopeId = (n) => (pushScopeId("data-v-050a4f74"), n = n(), popScopeId(), n);
15
15
  const _hoisted_1 = { class: "gm-text-center" };
16
16
  const _hoisted_2 = {
17
17
  key: 0,
@@ -52,7 +52,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
52
52
  });
53
53
  const colDefaultPropsList = computed(() => {
54
54
  const vNodes = slots.default?.() || [];
55
- const children = getVnodesByGmName(vNodes, TableColumnProName);
55
+ const children = getVnodesByGmName(vNodes, TableColumnProName, true);
56
56
  const colProps = children.map((vNode) => vNode.props) ?? [];
57
57
  colProps.forEach((it) => {
58
58
  for (const key in tableColumnProProps) {
@@ -1 +1 @@
1
- {"version":3,"file":"TablePro.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/tablePro/TablePro.vue"],"sourcesContent":["<template>\n <div ref=\"gmTableDivRef\">\n <gm-table\n v-if=\"gmTableHeaderRef?.isInited\"\n ref=\"GmTbaleRef\"\n v-bind=\"props\"\n :height=\"autoHeight ? tableMaxHeight : height\"\n border\n class=\"gmTablePro\"\n :class=\"[props.border ? '' : 'gmTableNoBorder']\"\n v-on=\"elEvents\"\n @selection-change=\"(value: TableColumnProProps[]) => $emit('selection-change', value)\"\n @sort-change=\"handleSortChange\"\n @header-dragend=\"headerDragend\"\n >\n <!-- <template #empty>\n <gm-empty image=\"https://thirdorder.giikin.com/third/20240601/3c5850781351121f81b9e21ec7e75a204898949.png\" />\n </template> -->\n <slot name=\"native\" />\n <template v-if=\"slots.append\" #append>\n <slot name=\"append\" />\n </template>\n <template v-if=\"slots.empty\" #empty>\n <slot name=\"empty\" />\n </template>\n <template v-if=\"props.selection\">\n <gm-table-column :key=\"999999\" type=\"selection\" width=\"55\" />\n </template>\n <TableColumnVNodeRenderer :vnode=\"tableColumnVnode\" :propsList=\"colPropsList\" :defaultPropsList=\"colDefaultPropsList\" />\n <!-- 操作 -->\n <gm-table-column\n v-if=\"customHeader || customOperate\"\n prop=\"gmEdit\"\n min-width=\"100\"\n :width=\"editProps?.width\"\n :fixed=\"operateFixed ? 'right' : false\"\n >\n <template #header>\n <div class=\"gm-text-center\">\n <gm-button v-if=\"customHeader\" type=\"primary\" link size=\"small\" @click=\"setTable('header')\"> 表头 </gm-button>\n <gm-button v-if=\"customOperate\" type=\"primary\" link size=\"small\" @click=\"setTable('operate')\"> 操作 </gm-button>\n </div>\n </template>\n <template #default=\"slotValue\">\n <!-- <div\n v-if=\"\n tableOperateVnode &&\n tableOperateVnode.children &&\n gmCustomOperationsRef &&\n gmCustomOperationsRef.isInited &&\n slotValue &&\n slotValue.row &&\n tableOperateVnode.children?.default(slotValue) &&\n customBtnPropsList\n \"\n >\n <TableProEditSlot\n v-model:customBtnPropsList=\"customBtnPropsList\"\n v-model:customDefaultPropsList=\"customDefaultPropsList\"\n :tableOperateVnode=\"tableOperateVnode\"\n :isInited=\"gmCustomOperationsRef?.isInited\"\n :slotValue=\"slotValue\"\n />\n </div> -->\n <div\n v-if=\"\n tableOperateVnode &&\n tableOperateVnode.children &&\n gmCustomOperationsRef &&\n gmCustomOperationsRef.isInited &&\n slotValue &&\n slotValue.row &&\n tableOperateVnode.children?.default(slotValue) &&\n customBtnPropsList\n \"\n class=\"gm-flex gm-flex-wrap gm-justify-center\"\n >\n <TableOperateVNodeRenderer :vnode=\"tableOperateVnode.children?.default(slotValue)\" :customPropsList=\"customBtnPropsList\" />\n </div>\n </template>\n </gm-table-column>\n </gm-table>\n </div>\n\n <gm-table-header-form\n ref=\"gmTableHeaderRef\"\n v-model:isShowDrawer=\"drawerHeaderVisible\"\n v-model:colPropsList=\"colPropsList\"\n :colDefaultPropsList=\"colDefaultPropsList\"\n :keyWord=\"props.page\"\n :disabledRemoteCol=\"props.disabledRemoteCol\"\n type=\"HeaderList\"\n @updateColumns=\"resetWidthOnHeaderDrag()\"\n />\n\n <gm-operate-button-form\n ref=\"gmCustomOperationsRef\"\n v-model:isShowDrawer=\"drawerOperateVisible\"\n v-model:customBtnPropsList=\"customBtnPropsList\"\n :customDefaultPropsList=\"customDefaultPropsList\"\n :keyWord=\"props.page\"\n :disabledRemoteBtn=\"props.disabledRemoteBtn\"\n type=\"OperateList\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, inject, nextTick, ref } from 'vue';\nimport { hasOwn } from '@giime/utils/src/objects';\nimport { getGmExports } from '@giime/utils/src/elementPlus/exports';\nimport { getGmEvent } from '@giime/utils/src/elementPlus/event';\nimport { TableCtxKey } from '@giime/constants/table';\nimport { useElementBounding, useWindowSize } from '@vueuse/core';\nimport { operateButtonProps } from '../operateButton/operateButton';\n// import TableProEditSlot from './TableProEditSlot.vue';\n// import { cloneDeep } from 'lodash-es';\nimport TableOperateVNodeRenderer from './TableOperateVNodeRenderer';\nimport TableColumnVNodeRenderer from './TableColumnVNodeRenderer';\nimport { tableProEmits, tableProProps } from './tablePro';\nimport { getVnodesByGmName } from './tableHelper';\nimport { TableColumnProName, type TableColumnProProps, tableColumnProProps } from './tableColumnPro/tableColumnPro';\nimport type { TableProSortValue } from './tablePro';\nimport type { OperateButtonFormInstance } from '../operateButton/operateButtonForm';\nimport type { TableHeaderFormInstance } from './tableHeaderForm';\nimport type { OperateButtonProps } from '../operateButton/operateButton';\nimport type { Sort, TableInstance } from 'element-plus';\n\ndefineOptions({\n name: 'GmTablePro',\n});\nconst tableCtx = inject(TableCtxKey);\nconst props = defineProps(tableProProps);\n\nconst gmTableDivRef = ref<HTMLDivElement>();\n// 用于计算table高度\nconst { top: divTop } = useElementBounding(gmTableDivRef);\nconst { height: windowHeight } = useWindowSize();\nconst tableMaxHeight = computed(() => Math.floor(windowHeight.value - divTop.value - 60 - props.heightOffset)); // 高度 - 顶部距离 - 分页器116 - 用户自定义需要减去的高度\nconst GmTbaleRef = ref<TableInstance>();\nif (tableCtx && tableCtx.tableId === props.page) {\n tableCtx.tableRef = GmTbaleRef;\n}\nconst gmCustomOperationsRef = ref<OperateButtonFormInstance>();\nconst gmTableHeaderRef = ref<TableHeaderFormInstance>();\n\nconst emit = defineEmits(tableProEmits);\n// 需要手动重新实现的事件\nconst notResendEvents = ['sort-change', 'header-dragend', 'selection-change'];\nconst resendEvent = { ...tableProEmits };\nnotResendEvents.forEach(it => Reflect.deleteProperty(resendEvent, it));\n// 重发el的事件\nconst elEvents = getGmEvent(resendEvent, emit);\nconst slots = defineSlots<{\n default(data?: any): any[];\n append?(data?: any): any[];\n empty?(data?: any): any[];\n native?(data?: any): any[];\n}>();\n// 列 当前原始vnode\nconst tableColumnVnode = computed(() => {\n const vNodes = slots.default?.() || [];\n // const nodes = vNodes.filter(vNode => vNode.props && vNode.props.type !== 'edit');\n return vNodes;\n});\n// 默认表头Props列表\nconst colDefaultPropsList = computed(() => {\n const vNodes = slots.default?.() || [];\n const children = getVnodesByGmName(vNodes, TableColumnProName);\n // const result = children.filter(vNode => vNode.props && vNode.props.type !== 'edit');\n\n const colProps: TableColumnProProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\n // 循环插入props所需的默认值\n colProps.forEach(it => {\n for (const key in tableColumnProProps) {\n // 如果当前props含有默认值\n if (hasOwn(it, key)) {\n continue;\n }\n if (hasOwn(tableColumnProProps, key)) {\n const element = tableColumnProProps[key as keyof TableColumnProProps];\n // 如果btn 定义中含有默认值 则赋值给props\n if (hasOwn(element, 'default')) {\n Reflect.set(it, key, Reflect.get(element, 'default'));\n }\n }\n }\n });\n return colProps;\n});\n// 已选中表头\nconst colPropsList = ref<TableColumnProProps[]>(colDefaultPropsList.value);\nconst editProps = computed(() => colPropsList.value.find(it => it.type === 'edit'));\n\n// 操作按钮组 当前原始vnode\nconst tableOperateVnode = computed(() => {\n const vNodes = slots.default?.() || [];\n const nodes = vNodes.find(vNode => vNode.props && vNode.props.type === 'edit');\n return nodes;\n});\n\nconst customDefaultPropsList = computed(() => {\n const defaultVnodes = tableOperateVnode.value?.children?.default?.({ row: {} });\n if (Array.isArray(defaultVnodes) && defaultVnodes.some(it => it?.children === 'v-if')) {\n console.error(`警告:为确保表格操作按钮能正常渲染,请把表格${props.page}操作按钮中使用的\"v-if\"替换为\"v-see\"`);\n }\n const children = getVnodesByGmName(defaultVnodes, 'GmOperateButton');\n const btnProps: OperateButtonProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\n // console.log(btnProps);\n // 循环插入props所需的默认值\n btnProps.forEach(it => {\n for (const key in operateButtonProps) {\n // 如果当前props含有默认值\n if (hasOwn(it, key)) {\n continue;\n }\n if (hasOwn(operateButtonProps, key)) {\n const element = operateButtonProps[key as keyof OperateButtonProps];\n // 如果btn 定义中含有默认值 则赋值给props\n if (hasOwn(element, 'default')) {\n Reflect.set(it, key, Reflect.get(element, 'default'));\n }\n }\n }\n });\n // console.log(btnProps)\n return btnProps;\n});\n// customDefaultPropsList2();\n// const customDefaultPropsList = ref<OperateButtonProps[]>([]);\nconst customBtnPropsList = ref<OperateButtonProps[]>(customDefaultPropsList.value);\n\n// 表格头部弹层\nconst drawerHeaderVisible = ref(false); // 表头设置弹层\nconst drawerOperateVisible = ref(false); // 按钮设置弹层\nconst setTable = (event: string) => {\n if (event === 'header') {\n drawerHeaderVisible.value = true;\n }\n if (event === 'operate') {\n drawerOperateVisible.value = true;\n }\n};\n\n/**\n * 表头拖动,修改width\n */\nconst headerDragend = async (newWidth: number, oldWidth: number, column: any) => {\n const findItem = colPropsList.value.find(it => it.prop === column.property);\n const editItem = column.property === 'gmEdit' ? colPropsList.value.find(it => it.type === 'edit') : null;\n if (!findItem && !editItem) {\n return;\n }\n if (findItem) {\n findItem.width = newWidth;\n }\n if (editItem) {\n editItem.width = newWidth;\n }\n // 设置列宽\n await nextTick();\n resetWidthOnHeaderDrag(column);\n gmTableHeaderRef.value?.syncPropsList();\n gmTableHeaderRef.value?.submitSettings({ hiddenMessage: true });\n};\n/**\n * 当表头拖动后,重新计算补充列宽度\n * 当全部列都设置了宽度,把设置过minWidth的列设置为补充列,补充表格剩余宽度\n */\nconst resetWidthOnHeaderDrag = (column?: any) => {\n if (props.disabledResetWidth) {\n return;\n }\n // 当全部列都设置了宽度 才执行后续步骤\n if (colPropsList.value.some(it => it.isShow && !it.width)) {\n return;\n }\n const minWidthCols = colPropsList.value.filter(\n // 是在展示中的列,并且不是操作列,并且设置了最小宽度\n it => it.isShow === true && it.type !== 'edit' && it.prop !== 'edit' && ((it as any)['min-width'] || it.minWidth),\n );\n for (const item of minWidthCols) {\n // 只有一个minWidth时, 也需要设置width = ''\n if (column?.property === item.prop && minWidthCols.length !== 1) {\n continue;\n }\n item.width = '';\n }\n};\n/**\n * 搜索模块\n */\nconst sortValue = defineModel<TableProSortValue[]>('sortValue');\n\nconst handleSortChange = (sort: Sort) => {\n if (sortValue.value) {\n sortValue.value.length = 0;\n switch (sort.order) {\n case 'ascending':\n sortValue.value.push({ field: sort.prop, order: 'asc' });\n break;\n case 'descending':\n sortValue.value.push({ field: sort.prop, order: 'desc' });\n break;\n }\n }\n\n emit('sort-change', sort);\n};\nconst exposeEvents = [\n 'clearSelection',\n 'getSelectionRows',\n 'toggleRowSelection',\n 'toggleAllSelection',\n 'toggleRowExpansion',\n 'setCurrentRow',\n 'setChecked',\n 'clearSort',\n 'clearFilter',\n 'doLayout',\n 'sort',\n 'scrollTo',\n 'setScrollTop',\n 'setScrollLeft',\n] as const;\nconst { exposeFns } = getGmExports(GmTbaleRef, exposeEvents);\ndefineExpose({\n colPropsList,\n ...exposeFns,\n});\n</script>\n\n<style lang=\"scss\" scoped>\n:deep(.gmTableNoBorder .el-table__body .el-table__cell) {\n border-right: none;\n}\n:deep(.gmTableNoBorder .el-table__inner-wrapper:before) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border .el-table__inner-wrapper:after) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border:after) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border:before) {\n height: 0;\n}\n:deep(.gmTableNoBorder .el-table__border-left-patch) {\n height: 0;\n}\n</style>\n"],"names":["_useSlots","_useModel"],"mappings":"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"}
1
+ {"version":3,"file":"TablePro.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/tablePro/TablePro.vue"],"sourcesContent":["<template>\n <div ref=\"gmTableDivRef\">\n <gm-table\n v-if=\"gmTableHeaderRef?.isInited\"\n ref=\"GmTbaleRef\"\n v-bind=\"props\"\n :height=\"autoHeight ? tableMaxHeight : height\"\n border\n class=\"gmTablePro\"\n :class=\"[props.border ? '' : 'gmTableNoBorder']\"\n v-on=\"elEvents\"\n @selection-change=\"(value: TableColumnProProps[]) => $emit('selection-change', value)\"\n @sort-change=\"handleSortChange\"\n @header-dragend=\"headerDragend\"\n >\n <!-- <template #empty>\n <gm-empty image=\"https://thirdorder.giikin.com/third/20240601/3c5850781351121f81b9e21ec7e75a204898949.png\" />\n </template> -->\n <slot name=\"native\" />\n <template v-if=\"slots.append\" #append>\n <slot name=\"append\" />\n </template>\n <template v-if=\"slots.empty\" #empty>\n <slot name=\"empty\" />\n </template>\n <template v-if=\"props.selection\">\n <gm-table-column :key=\"999999\" type=\"selection\" width=\"55\" />\n </template>\n <TableColumnVNodeRenderer :vnode=\"tableColumnVnode\" :propsList=\"colPropsList\" :defaultPropsList=\"colDefaultPropsList\" />\n <!-- 操作 -->\n <gm-table-column\n v-if=\"customHeader || customOperate\"\n prop=\"gmEdit\"\n min-width=\"100\"\n :width=\"editProps?.width\"\n :fixed=\"operateFixed ? 'right' : false\"\n >\n <template #header>\n <div class=\"gm-text-center\">\n <gm-button v-if=\"customHeader\" type=\"primary\" link size=\"small\" @click=\"setTable('header')\"> 表头 </gm-button>\n <gm-button v-if=\"customOperate\" type=\"primary\" link size=\"small\" @click=\"setTable('operate')\"> 操作 </gm-button>\n </div>\n </template>\n <template #default=\"slotValue\">\n <!-- <div\n v-if=\"\n tableOperateVnode &&\n tableOperateVnode.children &&\n gmCustomOperationsRef &&\n gmCustomOperationsRef.isInited &&\n slotValue &&\n slotValue.row &&\n tableOperateVnode.children?.default(slotValue) &&\n customBtnPropsList\n \"\n >\n <TableProEditSlot\n v-model:customBtnPropsList=\"customBtnPropsList\"\n v-model:customDefaultPropsList=\"customDefaultPropsList\"\n :tableOperateVnode=\"tableOperateVnode\"\n :isInited=\"gmCustomOperationsRef?.isInited\"\n :slotValue=\"slotValue\"\n />\n </div> -->\n <div\n v-if=\"\n tableOperateVnode &&\n tableOperateVnode.children &&\n gmCustomOperationsRef &&\n gmCustomOperationsRef.isInited &&\n slotValue &&\n slotValue.row &&\n tableOperateVnode.children?.default(slotValue) &&\n customBtnPropsList\n \"\n class=\"gm-flex gm-flex-wrap gm-justify-center\"\n >\n <TableOperateVNodeRenderer :vnode=\"tableOperateVnode.children?.default(slotValue)\" :customPropsList=\"customBtnPropsList\" />\n </div>\n </template>\n </gm-table-column>\n </gm-table>\n </div>\n\n <gm-table-header-form\n ref=\"gmTableHeaderRef\"\n v-model:isShowDrawer=\"drawerHeaderVisible\"\n v-model:colPropsList=\"colPropsList\"\n :colDefaultPropsList=\"colDefaultPropsList\"\n :keyWord=\"props.page\"\n :disabledRemoteCol=\"props.disabledRemoteCol\"\n type=\"HeaderList\"\n @updateColumns=\"resetWidthOnHeaderDrag()\"\n />\n\n <gm-operate-button-form\n ref=\"gmCustomOperationsRef\"\n v-model:isShowDrawer=\"drawerOperateVisible\"\n v-model:customBtnPropsList=\"customBtnPropsList\"\n :customDefaultPropsList=\"customDefaultPropsList\"\n :keyWord=\"props.page\"\n :disabledRemoteBtn=\"props.disabledRemoteBtn\"\n type=\"OperateList\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, inject, nextTick, ref } from 'vue';\nimport { hasOwn } from '@giime/utils/src/objects';\nimport { getGmExports } from '@giime/utils/src/elementPlus/exports';\nimport { getGmEvent } from '@giime/utils/src/elementPlus/event';\nimport { TableCtxKey } from '@giime/constants/table';\nimport { useElementBounding, useWindowSize } from '@vueuse/core';\nimport { operateButtonProps } from '../operateButton/operateButton';\n// import TableProEditSlot from './TableProEditSlot.vue';\n// import { cloneDeep } from 'lodash-es';\nimport TableOperateVNodeRenderer from './TableOperateVNodeRenderer';\nimport TableColumnVNodeRenderer from './TableColumnVNodeRenderer';\nimport { tableProEmits, tableProProps } from './tablePro';\nimport { getVnodesByGmName } from './tableHelper';\nimport { TableColumnProName, type TableColumnProProps, tableColumnProProps } from './tableColumnPro/tableColumnPro';\nimport type { TableProSortValue } from './tablePro';\nimport type { OperateButtonFormInstance } from '../operateButton/operateButtonForm';\nimport type { TableHeaderFormInstance } from './tableHeaderForm';\nimport type { OperateButtonProps } from '../operateButton/operateButton';\nimport type { Sort, TableInstance } from 'element-plus';\n\ndefineOptions({\n name: 'GmTablePro',\n});\nconst tableCtx = inject(TableCtxKey);\nconst props = defineProps(tableProProps);\n\nconst gmTableDivRef = ref<HTMLDivElement>();\n// 用于计算table高度\nconst { top: divTop } = useElementBounding(gmTableDivRef);\nconst { height: windowHeight } = useWindowSize();\nconst tableMaxHeight = computed(() => Math.floor(windowHeight.value - divTop.value - 60 - props.heightOffset)); // 高度 - 顶部距离 - 分页器116 - 用户自定义需要减去的高度\nconst GmTbaleRef = ref<TableInstance>();\nif (tableCtx && tableCtx.tableId === props.page) {\n tableCtx.tableRef = GmTbaleRef;\n}\nconst gmCustomOperationsRef = ref<OperateButtonFormInstance>();\nconst gmTableHeaderRef = ref<TableHeaderFormInstance>();\n\nconst emit = defineEmits(tableProEmits);\n// 需要手动重新实现的事件\nconst notResendEvents = ['sort-change', 'header-dragend', 'selection-change'];\nconst resendEvent = { ...tableProEmits };\nnotResendEvents.forEach(it => Reflect.deleteProperty(resendEvent, it));\n// 重发el的事件\nconst elEvents = getGmEvent(resendEvent, emit);\nconst slots = defineSlots<{\n default(data?: any): any[];\n append?(data?: any): any[];\n empty?(data?: any): any[];\n native?(data?: any): any[];\n}>();\n// 列 当前原始vnode\nconst tableColumnVnode = computed(() => {\n const vNodes = slots.default?.() || [];\n // const nodes = vNodes.filter(vNode => vNode.props && vNode.props.type !== 'edit');\n return vNodes;\n});\n// 默认表头Props列表(递归提取所有 GmTableColumnPro,包括嵌套的)\nconst colDefaultPropsList = computed(() => {\n const vNodes = slots.default?.() || [];\n const children = getVnodesByGmName(vNodes, TableColumnProName, true); // 启用递归提取\n // const result = children.filter(vNode => vNode.props && vNode.props.type !== 'edit');\n\n const colProps: TableColumnProProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\n // 循环插入props所需的默认值\n colProps.forEach(it => {\n for (const key in tableColumnProProps) {\n // 如果当前props含有默认值\n if (hasOwn(it, key)) {\n continue;\n }\n if (hasOwn(tableColumnProProps, key)) {\n const element = tableColumnProProps[key as keyof TableColumnProProps];\n // 如果btn 定义中含有默认值 则赋值给props\n if (hasOwn(element, 'default')) {\n Reflect.set(it, key, Reflect.get(element, 'default'));\n }\n }\n }\n });\n return colProps;\n});\n// 已选中表头\nconst colPropsList = ref<TableColumnProProps[]>(colDefaultPropsList.value);\nconst editProps = computed(() => colPropsList.value.find(it => it.type === 'edit'));\n\n// 操作按钮组 当前原始vnode\nconst tableOperateVnode = computed(() => {\n const vNodes = slots.default?.() || [];\n const nodes = vNodes.find(vNode => vNode.props && vNode.props.type === 'edit');\n return nodes;\n});\n\nconst customDefaultPropsList = computed(() => {\n const defaultVnodes = tableOperateVnode.value?.children?.default?.({ row: {} });\n if (Array.isArray(defaultVnodes) && defaultVnodes.some(it => it?.children === 'v-if')) {\n console.error(`警告:为确保表格操作按钮能正常渲染,请把表格${props.page}操作按钮中使用的\"v-if\"替换为\"v-see\"`);\n }\n const children = getVnodesByGmName(defaultVnodes, 'GmOperateButton');\n const btnProps: OperateButtonProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\n // console.log(btnProps);\n // 循环插入props所需的默认值\n btnProps.forEach(it => {\n for (const key in operateButtonProps) {\n // 如果当前props含有默认值\n if (hasOwn(it, key)) {\n continue;\n }\n if (hasOwn(operateButtonProps, key)) {\n const element = operateButtonProps[key as keyof OperateButtonProps];\n // 如果btn 定义中含有默认值 则赋值给props\n if (hasOwn(element, 'default')) {\n Reflect.set(it, key, Reflect.get(element, 'default'));\n }\n }\n }\n });\n // console.log(btnProps)\n return btnProps;\n});\n// customDefaultPropsList2();\n// const customDefaultPropsList = ref<OperateButtonProps[]>([]);\nconst customBtnPropsList = ref<OperateButtonProps[]>(customDefaultPropsList.value);\n\n// 表格头部弹层\nconst drawerHeaderVisible = ref(false); // 表头设置弹层\nconst drawerOperateVisible = ref(false); // 按钮设置弹层\nconst setTable = (event: string) => {\n if (event === 'header') {\n drawerHeaderVisible.value = true;\n }\n if (event === 'operate') {\n drawerOperateVisible.value = true;\n }\n};\n\n/**\n * 表头拖动,修改width\n */\nconst headerDragend = async (newWidth: number, oldWidth: number, column: any) => {\n const findItem = colPropsList.value.find(it => it.prop === column.property);\n const editItem = column.property === 'gmEdit' ? colPropsList.value.find(it => it.type === 'edit') : null;\n if (!findItem && !editItem) {\n return;\n }\n if (findItem) {\n findItem.width = newWidth;\n }\n if (editItem) {\n editItem.width = newWidth;\n }\n // 设置列宽\n await nextTick();\n resetWidthOnHeaderDrag(column);\n gmTableHeaderRef.value?.syncPropsList();\n gmTableHeaderRef.value?.submitSettings({ hiddenMessage: true });\n};\n/**\n * 当表头拖动后,重新计算补充列宽度\n * 当全部列都设置了宽度,把设置过minWidth的列设置为补充列,补充表格剩余宽度\n */\nconst resetWidthOnHeaderDrag = (column?: any) => {\n if (props.disabledResetWidth) {\n return;\n }\n // 当全部列都设置了宽度 才执行后续步骤\n if (colPropsList.value.some(it => it.isShow && !it.width)) {\n return;\n }\n const minWidthCols = colPropsList.value.filter(\n // 是在展示中的列,并且不是操作列,并且设置了最小宽度\n it => it.isShow === true && it.type !== 'edit' && it.prop !== 'edit' && ((it as any)['min-width'] || it.minWidth),\n );\n for (const item of minWidthCols) {\n // 只有一个minWidth时, 也需要设置width = ''\n if (column?.property === item.prop && minWidthCols.length !== 1) {\n continue;\n }\n item.width = '';\n }\n};\n/**\n * 搜索模块\n */\nconst sortValue = defineModel<TableProSortValue[]>('sortValue');\n\nconst handleSortChange = (sort: Sort) => {\n if (sortValue.value) {\n sortValue.value.length = 0;\n switch (sort.order) {\n case 'ascending':\n sortValue.value.push({ field: sort.prop, order: 'asc' });\n break;\n case 'descending':\n sortValue.value.push({ field: sort.prop, order: 'desc' });\n break;\n }\n }\n\n emit('sort-change', sort);\n};\nconst exposeEvents = [\n 'clearSelection',\n 'getSelectionRows',\n 'toggleRowSelection',\n 'toggleAllSelection',\n 'toggleRowExpansion',\n 'setCurrentRow',\n 'setChecked',\n 'clearSort',\n 'clearFilter',\n 'doLayout',\n 'sort',\n 'scrollTo',\n 'setScrollTop',\n 'setScrollLeft',\n] as const;\nconst { exposeFns } = getGmExports(GmTbaleRef, exposeEvents);\ndefineExpose({\n colPropsList,\n ...exposeFns,\n});\n</script>\n\n<style lang=\"scss\" scoped>\n:deep(.gmTableNoBorder .el-table__body .el-table__cell) {\n border-right: none;\n}\n:deep(.gmTableNoBorder .el-table__inner-wrapper:before) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border .el-table__inner-wrapper:after) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border:after) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border:before) {\n height: 0;\n}\n:deep(.gmTableNoBorder .el-table__border-left-patch) {\n height: 0;\n}\n</style>\n"],"names":["_useSlots","_useModel"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, useSlots, computed, resolveComponent, createBlock, openBlock, mergeProps, createSlots, withCtx, unref, renderSlot, createCommentVNode, normalizeProps, guardReactiveProps } from 'vue';
1
+ import { defineComponent, useSlots, computed, resolveComponent, createBlock, openBlock, mergeProps, createSlots, withCtx, unref, renderSlot, normalizeProps, guardReactiveProps } from 'vue';
2
2
  import { tableColumnProProps, TableColumnProName } from './tableColumnPro.mjs';
3
3
 
4
4
  var _sfc_main = /* @__PURE__ */ defineComponent({
@@ -19,15 +19,15 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
19
19
  }, [
20
20
  unref(slots).default ? {
21
21
  name: "default",
22
- fn: withCtx((slotValue) => [
23
- slotValue.$index !== -1 ? renderSlot(_ctx.$slots, "default", normalizeProps(mergeProps({ key: 0 }, slotValue))) : createCommentVNode("v-if", true)
22
+ fn: withCtx((scope) => [
23
+ renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(scope)))
24
24
  ]),
25
25
  key: "0"
26
26
  } : void 0,
27
27
  unref(slots).header ? {
28
28
  name: "header",
29
- fn: withCtx((slotValue) => [
30
- renderSlot(_ctx.$slots, "header", normalizeProps(guardReactiveProps(slotValue)))
29
+ fn: withCtx((scope) => [
30
+ renderSlot(_ctx.$slots, "header", normalizeProps(guardReactiveProps(scope)))
31
31
  ]),
32
32
  key: "1"
33
33
  } : void 0
@@ -1 +1 @@
1
- {"version":3,"file":"TableColumnPro.vue2.mjs","sources":["../../../../../../../../packages/components/src/composite/tablePro/tableColumnPro/TableColumnPro.vue"],"sourcesContent":["<template>\n <gm-table-column v-bind=\"props\" :sortable=\"proSortable\">\n <template v-if=\"slots.default\" #default=\"slotValue\">\n <template v-if=\"slotValue.$index !== -1\">\n <slot v-bind=\"slotValue\" />\n </template>\n </template>\n <template v-if=\"slots.header\" #header=\"slotValue\">\n <slot name=\"header\" v-bind=\"slotValue\" />\n </template>\n </gm-table-column>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, useSlots } from 'vue';\nimport { TableColumnProName, tableColumnProProps } from './tableColumnPro';\n\ndefineOptions({\n name: TableColumnProName,\n});\nconst slots = useSlots();\nconst props = defineProps(tableColumnProProps);\nconst proSortable = computed(() => (props.isSort ? 'custom' : props.sortable));\n</script>\n"],"names":[],"mappings":";;;;;;;;;;AAmBA,IAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,IAAA,MAAM,KAAA,GAAQ,OAAA;AACd,IAAA,MAAM,cAAc,QAAA,CAAS,MAAO,MAAM,MAAA,GAAS,QAAA,GAAW,MAAM,QAAS,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"TableColumnPro.vue2.mjs","sources":["../../../../../../../../packages/components/src/composite/tablePro/tableColumnPro/TableColumnPro.vue"],"sourcesContent":["<template>\n <gm-table-column v-bind=\"props\" :sortable=\"proSortable\">\n <!-- 完全透传,与 gm-table-column 保持一致 -->\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 </gm-table-column>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, useSlots } from 'vue';\nimport { TableColumnProName, tableColumnProProps } from './tableColumnPro';\n\ndefineOptions({\n name: TableColumnProName,\n});\nconst slots = useSlots();\nconst props = defineProps(tableColumnProProps);\nconst proSortable = computed(() => (props.isSort ? 'custom' : props.sortable));\n</script>\n"],"names":[],"mappings":";;;;;;;;;;AAmBA,IAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,IAAA,MAAM,KAAA,GAAQ,OAAA;AACd,IAAA,MAAM,cAAc,QAAA,CAAS,MAAO,MAAM,MAAA,GAAS,QAAA,GAAW,MAAM,QAAS,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1,8 @@
1
- export declare const getVnodesByGmName: (defaultVnodes: any[], name: string) => any[];
1
+ /**
2
+ * 从 vnode 数组中提取指定名称的组件
3
+ * @param defaultVnodes vnode 数组
4
+ * @param name 目标组件名称
5
+ * @param recursive 是否递归提取嵌套组件(用于支持多级表头)
6
+ * @returns 提取的 vnode 数组
7
+ */
8
+ export declare const getVnodesByGmName: (defaultVnodes: any[], name: string, recursive?: boolean) => any[];