giime 0.0.23 → 0.0.24

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
@@ -1,3 +1,37 @@
1
+ .gm-flex-center[data-v-d1c6dac0] {
2
+ align-items: center;
3
+ }
4
+
5
+ .gm-flex-justify-between[data-v-d1c6dac0] {
6
+ justify-content: space-between;
7
+ }
8
+ [data-v-512cf874] .gmSearchForm .el-form-item {
9
+ margin-right: 8px;
10
+ margin-bottom: 8px;
11
+ }
12
+ [data-v-9f72778f] .gmTableNoBorder .el-table__body .el-table__cell {
13
+ border-right: none;
14
+ }
15
+
16
+ [data-v-9f72778f] .gmTableNoBorder .el-table__inner-wrapper:before {
17
+ height: 0;
18
+ }
19
+
20
+ [data-v-9f72778f] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
21
+ height: 0;
22
+ }
23
+
24
+ [data-v-9f72778f] .gmTableNoBorder.el-table--border:after {
25
+ height: 0;
26
+ }
27
+
28
+ [data-v-9f72778f] .gmTableNoBorder.el-table--border:before {
29
+ height: 0;
30
+ }
31
+
32
+ [data-v-9f72778f] .gmTableNoBorder .el-table__border-left-patch {
33
+ height: 0;
34
+ }
1
35
  /*
2
36
  ! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com
3
37
  *//*
@@ -679,40 +713,6 @@ video {
679
713
  .gm-group:hover .group-hover\:gm-block {
680
714
  display: block;
681
715
  }
682
- .gm-flex-center[data-v-d1c6dac0] {
683
- align-items: center;
684
- }
685
-
686
- .gm-flex-justify-between[data-v-d1c6dac0] {
687
- justify-content: space-between;
688
- }
689
- [data-v-512cf874] .gmSearchForm .el-form-item {
690
- margin-right: 8px;
691
- margin-bottom: 8px;
692
- }
693
- [data-v-ad9f3fdf] .gmTableNoBorder .el-table__body .el-table__cell {
694
- border-right: none;
695
- }
696
-
697
- [data-v-ad9f3fdf] .gmTableNoBorder .el-table__inner-wrapper:before {
698
- height: 0;
699
- }
700
-
701
- [data-v-ad9f3fdf] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
702
- height: 0;
703
- }
704
-
705
- [data-v-ad9f3fdf] .gmTableNoBorder.el-table--border:after {
706
- height: 0;
707
- }
708
-
709
- [data-v-ad9f3fdf] .gmTableNoBorder.el-table--border:before {
710
- height: 0;
711
- }
712
-
713
- [data-v-ad9f3fdf] .gmTableNoBorder .el-table__border-left-patch {
714
- height: 0;
715
- }
716
716
 
717
717
  .pagination-container[data-v-8a95ba6d] {
718
718
  background: #fff;
@@ -122,6 +122,164 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
122
122
  flexible: BooleanConstructor;
123
123
  showOverflowTooltip: import("vue").PropType<boolean | Partial<Pick<import("element-plus").ElTooltipProps, "offset" | "appendTo" | "effect" | "placement" | "popperClass" | "popperOptions" | "hideAfter" | "transition" | "enterable" | "showAfter" | "showArrow">> | undefined>;
124
124
  }, {
125
+ colPropsList: import("vue").Ref<{
126
+ type: "" | "edit";
127
+ fixed: string | boolean;
128
+ width: string | number;
129
+ minWidth: string | number;
130
+ prop: string;
131
+ sortable: string | boolean;
132
+ resizable: boolean;
133
+ reserveSelection: boolean;
134
+ filterMultiple: boolean;
135
+ sortOrders: ("ascending" | "descending" | null)[];
136
+ isSort: boolean;
137
+ isShow: boolean;
138
+ label?: string | undefined;
139
+ filterMethod?: import("element-plus/es/components/table/src/table-column/defaults").FilterMethods<any> | undefined;
140
+ align?: string | undefined;
141
+ className?: string | undefined;
142
+ labelClassName?: string | undefined;
143
+ formatter?: ((row: any, column: import("element-plus/es/components/table/src/table-column/defaults").TableColumnCtx<any>, cellValue: any, index: number) => string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
144
+ [key: string]: any;
145
+ }>) | undefined;
146
+ index?: number | ((index: number) => number) | undefined;
147
+ showOverflowTooltip?: boolean | {
148
+ offset?: number | undefined;
149
+ appendTo?: import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | ((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement))[], unknown, unknown> | undefined;
150
+ effect?: string | undefined;
151
+ placement?: import("element-plus/es/utils").EpPropMergeType<StringConstructor, import("element-plus").Placement, unknown> | undefined;
152
+ popperClass?: import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | {
153
+ [x: string]: boolean;
154
+ } | (string | {
155
+ [x: string]: boolean;
156
+ } | (string | {
157
+ [x: string]: boolean;
158
+ } | (string | {
159
+ [x: string]: boolean;
160
+ } | (string | {
161
+ [x: string]: boolean;
162
+ } | (string | {
163
+ [x: string]: boolean;
164
+ } | (string | {
165
+ [x: string]: boolean;
166
+ } | (string | {
167
+ [x: string]: boolean;
168
+ } | (string | {
169
+ [x: string]: boolean;
170
+ } | (string | {
171
+ [x: string]: boolean;
172
+ } | (string | any[] | {
173
+ [x: string]: boolean;
174
+ })[])[])[])[])[])[])[])[])[])[]) | (() => string | {
175
+ [x: string]: boolean;
176
+ } | (string | {
177
+ [x: string]: boolean;
178
+ } | (string | {
179
+ [x: string]: boolean;
180
+ } | (string | {
181
+ [x: string]: boolean;
182
+ } | (string | {
183
+ [x: string]: boolean;
184
+ } | (string | {
185
+ [x: string]: boolean;
186
+ } | (string | {
187
+ [x: string]: boolean;
188
+ } | (string | {
189
+ [x: string]: boolean;
190
+ } | (string | {
191
+ [x: string]: boolean;
192
+ } | (string | {
193
+ [x: string]: boolean;
194
+ } | (string | any[] | {
195
+ [x: string]: boolean;
196
+ })[])[])[])[])[])[])[])[])[])[]) | ((new (...args: any[]) => string | {
197
+ [x: string]: boolean;
198
+ } | (string | {
199
+ [x: string]: boolean;
200
+ } | (string | {
201
+ [x: string]: boolean;
202
+ } | (string | {
203
+ [x: string]: boolean;
204
+ } | (string | {
205
+ [x: string]: boolean;
206
+ } | (string | {
207
+ [x: string]: boolean;
208
+ } | (string | {
209
+ [x: string]: boolean;
210
+ } | (string | {
211
+ [x: string]: boolean;
212
+ } | (string | {
213
+ [x: string]: boolean;
214
+ } | (string | {
215
+ [x: string]: boolean;
216
+ } | (string | any[] | {
217
+ [x: string]: boolean;
218
+ })[])[])[])[])[])[])[])[])[])[]) | (() => string | {
219
+ [x: string]: boolean;
220
+ } | (string | {
221
+ [x: string]: boolean;
222
+ } | (string | {
223
+ [x: string]: boolean;
224
+ } | (string | {
225
+ [x: string]: boolean;
226
+ } | (string | {
227
+ [x: string]: boolean;
228
+ } | (string | {
229
+ [x: string]: boolean;
230
+ } | (string | {
231
+ [x: string]: boolean;
232
+ } | (string | {
233
+ [x: string]: boolean;
234
+ } | (string | {
235
+ [x: string]: boolean;
236
+ } | (string | {
237
+ [x: string]: boolean;
238
+ } | (string | any[] | {
239
+ [x: string]: boolean;
240
+ })[])[])[])[])[])[])[])[])[])[]))[], unknown, unknown> | undefined;
241
+ popperOptions?: {
242
+ placement?: import("element-plus").Placement | undefined;
243
+ modifiers?: {
244
+ name?: any;
245
+ enabled?: boolean | undefined;
246
+ phase?: import("@popperjs/core").ModifierPhases | undefined;
247
+ requires?: string[] | undefined;
248
+ requiresIfExists?: string[] | undefined;
249
+ fn?: ((arg0: import("@popperjs/core").ModifierArguments<any>) => void | import("@popperjs/core").State) | undefined;
250
+ effect?: ((arg0: import("@popperjs/core").ModifierArguments<any>) => void | (() => void)) | undefined;
251
+ options?: Partial<any> | undefined;
252
+ data?: import("@popperjs/core").Obj | undefined;
253
+ }[] | undefined;
254
+ strategy?: import("@popperjs/core").PositioningStrategy | undefined;
255
+ onFirstUpdate?: ((arg0: Partial<import("@popperjs/core").State>) => void) | undefined;
256
+ } | undefined;
257
+ hideAfter?: number | undefined;
258
+ transition?: string | undefined;
259
+ enterable?: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
260
+ showAfter?: number | undefined;
261
+ showArrow?: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
262
+ } | undefined;
263
+ property?: string | undefined;
264
+ renderHeader?: ((data: {
265
+ column: import("element-plus/es/components/table/src/table-column/defaults").TableColumnCtx<any>;
266
+ $index: number;
267
+ }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
268
+ [key: string]: any;
269
+ }>) | undefined;
270
+ sortMethod?: ((a: any, b: any) => number) | undefined;
271
+ sortBy?: string | string[] | ((row: any, index: number) => string) | undefined;
272
+ columnKey?: string | undefined;
273
+ headerAlign?: string | undefined;
274
+ selectable?: ((row: any, index: number) => boolean) | undefined;
275
+ filteredValue?: string[] | undefined;
276
+ filters?: {
277
+ text: string;
278
+ value: string;
279
+ }[] | undefined;
280
+ filterPlacement?: string | undefined;
281
+ filterClassName?: string | undefined;
282
+ }[]>;
125
283
  clearSort: () => void | undefined;
126
284
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
127
285
  "update:sortValue": (sortValue: {
@@ -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-ad9f3fdf"], ["__file", "TablePro.vue"]]);
5
+ var TablePro = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9f72778f"], ["__file", "TablePro.vue"]]);
6
6
 
7
7
  export { TablePro as default };
8
8
  //# sourceMappingURL=TablePro.vue.mjs.map
@@ -7,7 +7,7 @@ import { tableProProps, tableProEmits } from './tablePro.mjs';
7
7
  import { getVnodesByGmName } from './tableHelper.mjs';
8
8
  import { TableColumnProName, tableColumnProProps } from './tableColumnPro/tableColumnPro.mjs';
9
9
 
10
- const _withScopeId = (n) => (pushScopeId("data-v-ad9f3fdf"), n = n(), popScopeId(), n);
10
+ const _withScopeId = (n) => (pushScopeId("data-v-9f72778f"), n = n(), popScopeId(), n);
11
11
  const _hoisted_1 = { class: "gm-text-center" };
12
12
  const _hoisted_2 = {
13
13
  key: 0,
@@ -122,6 +122,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
122
122
  emit("sortChange", sort);
123
123
  };
124
124
  __expose({
125
+ colPropsList,
125
126
  clearSort: () => GmTbaleRef.value?.clearSort()
126
127
  });
127
128
  return (_ctx, _cache) => {
@@ -1 +1 @@
1
- {"version":3,"file":"TablePro.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/tablePro/TablePro.vue"],"sourcesContent":["<template>\r\n <div>\r\n <gm-table\r\n ref=\"GmTbaleRef\"\r\n v-bind=\"props\"\r\n border\r\n class=\"gmTablePro\"\r\n :class=\"[props.border ? '' : 'gmTableNoBorder']\"\r\n @selection-change=\"(value: TableColumnProProps[]) => $emit('selectionChange', value)\"\r\n @sort-change=\"handleSortChange\"\r\n @header-dragend=\"headerDragend\"\r\n >\r\n <template v-if=\"props.selection\">\r\n <gm-table-column :key=\"999999\" type=\"selection\" width=\"50\" />\r\n </template>\r\n <template v-if=\"gmTableHeaderRef?.isInited\">\r\n <TableColumnVNodeRenderer :vnode=\"tableColumnVnode\" :propsList=\"colPropsList\" />\r\n </template>\r\n <!-- 操作 -->\r\n <gm-table-column\r\n v-if=\"customHeader || customOperate\"\r\n prop=\"gmEdit\"\r\n min-width=\"100\"\r\n :width=\"editProps?.width\"\r\n :fixed=\"operateFixed ? 'right' : false\"\r\n >\r\n <template #header>\r\n <div class=\"gm-text-center\">\r\n <gm-button v-if=\"customHeader\" type=\"primary\" link size=\"small\" @click=\"setTable('header')\"> 表头 </gm-button>\r\n <gm-button v-if=\"customOperate\" type=\"primary\" link size=\"small\" @click=\"setTable('operate')\"> 操作 </gm-button>\r\n </div>\r\n </template>\r\n <template #default=\"slotValue\">\r\n <!-- <VNodeRenderer :vnode=\"customVNodes\" /> -->\r\n <div v-if=\"tableOperateVnode && gmCustomOperationsRef && gmCustomOperationsRef.isInited\" class=\"gm-flex gm-flex-wrap gm-justify-center\">\r\n <TableOperateVNodeRenderer :vnode=\"tableOperateVnode.children?.default(slotValue)\" :customPropsList=\"customBtnPropsList\" />\r\n </div>\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n </div>\r\n\r\n <gm-table-header-form\r\n ref=\"gmTableHeaderRef\"\r\n v-model:isShowDrawer=\"drawerHeaderVisible\"\r\n v-model:colPropsList=\"colPropsList\"\r\n :colDefaultPropsList=\"colDefaultPropsList\"\r\n :keyWord=\"props.page\"\r\n type=\"HeaderList\"\r\n />\r\n\r\n <gm-operate-button-form\r\n ref=\"gmCustomOperationsRef\"\r\n v-model:isShowDrawer=\"drawerOperateVisible\"\r\n v-model:customBtnPropsList=\"customBtnPropsList\"\r\n :customDefaultPropsList=\"customDefaultPropsList\"\r\n :keyWord=\"props.page\"\r\n type=\"OperateList\"\r\n />\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, nextTick, ref } from 'vue';\r\nimport { hasOwn } from '@giime/utils/src/objects';\r\n// import { cloneDeep } from 'lodash-es';\r\nimport { operateButtonProps } from '../operateButton/operateButton';\r\nimport TableOperateVNodeRenderer from './TableOperateVNodeRenderer';\r\nimport TableColumnVNodeRenderer from './TableColumnVNodeRenderer';\r\nimport { tableProEmits, tableProProps } from './tablePro';\r\nimport { getVnodesByGmName } from './tableHelper';\r\nimport { TableColumnProName, type TableColumnProProps, tableColumnProProps } from './tableColumnPro/tableColumnPro';\r\nimport type { OperateButtonFormInstance } from '../operateButton/operateButtonForm';\r\nimport type { TableHeaderFormInstance } from './tableHeaderForm';\r\nimport type { OperateButtonProps } from '../operateButton/operateButton';\r\nimport type { Sort, TableInstance } from 'element-plus';\r\n\r\ndefineOptions({\r\n name: 'GmTablePro',\r\n});\r\nconst GmTbaleRef = ref<TableInstance>();\r\nconst gmCustomOperationsRef = ref<OperateButtonFormInstance>();\r\nconst gmTableHeaderRef = ref<TableHeaderFormInstance>();\r\n\r\nconst emit = defineEmits(tableProEmits);\r\nconst props = defineProps(tableProProps);\r\n\r\nconst slots = defineSlots<{\r\n default(data?: any): any[];\r\n}>();\r\n// 列 当前原始vnode\r\nconst tableColumnVnode = computed(() => {\r\n const vNodes = slots.default?.() || [];\r\n // const nodes = vNodes.filter(vNode => vNode.props && vNode.props.type !== 'edit');\r\n return vNodes;\r\n});\r\n// 默认表头Props列表\r\nconst colDefaultPropsList = computed(() => {\r\n const vNodes = slots.default?.() || [];\r\n const children = getVnodesByGmName(vNodes, TableColumnProName);\r\n // const result = children.filter(vNode => vNode.props && vNode.props.type !== 'edit');\r\n\r\n const colProps: TableColumnProProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\r\n // 循环插入props所需的默认值\r\n colProps.forEach(it => {\r\n for (const key in tableColumnProProps) {\r\n // 如果当前props含有默认值\r\n if (hasOwn(it, key)) {\r\n continue;\r\n }\r\n if (hasOwn(tableColumnProProps, key)) {\r\n const element = tableColumnProProps[key as keyof TableColumnProProps];\r\n // 如果btn 定义中含有默认值 则赋值给props\r\n if (hasOwn(element, 'default')) {\r\n Reflect.set(it, key, Reflect.get(element, 'default'));\r\n }\r\n }\r\n }\r\n });\r\n return colProps;\r\n});\r\n// 已选中表头\r\nconst colPropsList = ref<TableColumnProProps[]>(colDefaultPropsList.value);\r\nconst editProps = computed(() => colPropsList.value.find(it => it.type === 'edit'));\r\n\r\n// 操作按钮组 当前原始vnode\r\nconst tableOperateVnode = computed(() => {\r\n const vNodes = slots.default?.() || [];\r\n const nodes = vNodes.find(vNode => vNode.props && vNode.props.type === 'edit');\r\n return nodes;\r\n});\r\n\r\nconst customDefaultPropsList = computed(() => {\r\n const defaultVnodes = tableOperateVnode.value?.children?.default?.(tableOperateVnode.value?.ctx.scope);\r\n const children = getVnodesByGmName(defaultVnodes, 'GmOperateButton');\r\n\r\n const btnProps: OperateButtonProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\r\n // 循环插入props所需的默认值\r\n btnProps.forEach(it => {\r\n for (const key in operateButtonProps) {\r\n // 如果当前props含有默认值\r\n if (hasOwn(it, key)) {\r\n continue;\r\n }\r\n if (hasOwn(operateButtonProps, key)) {\r\n const element = operateButtonProps[key as keyof OperateButtonProps];\r\n // 如果btn 定义中含有默认值 则赋值给props\r\n if (hasOwn(element, 'default')) {\r\n Reflect.set(it, key, Reflect.get(element, 'default'));\r\n }\r\n }\r\n }\r\n });\r\n return btnProps;\r\n});\r\nconst customBtnPropsList = ref<OperateButtonProps[]>(customDefaultPropsList.value);\r\n\r\n// 表格头部弹层\r\nconst drawerHeaderVisible = ref(false); // 表头设置弹层\r\nconst drawerOperateVisible = ref(false); // 按钮设置弹层\r\nconst setTable = (event: string) => {\r\n if (event === 'header') {\r\n drawerHeaderVisible.value = true;\r\n }\r\n if (event === 'operate') {\r\n drawerOperateVisible.value = true;\r\n }\r\n};\r\n\r\n/**\r\n * 表头拖动,修改width\r\n */\r\nconst headerDragend = async (newWidth: number, oldWidth: number, column: any) => {\r\n const findItem = colPropsList.value.find(it => it.prop === column.property);\r\n const editItem = column.property === 'gmEdit' ? colPropsList.value.find(it => it.type === 'edit') : null;\r\n if (!findItem && !editItem) {\r\n return;\r\n }\r\n if (findItem) {\r\n findItem.width = newWidth;\r\n }\r\n if (editItem) {\r\n editItem.width = newWidth;\r\n }\r\n // 设置列宽\r\n await nextTick();\r\n gmTableHeaderRef.value?.submitSettings();\r\n};\r\n/**\r\n * 搜索模块\r\n */\r\nconst sortValue = defineModel<{\r\n ascs: string;\r\n descs: string;\r\n}>('sortValue');\r\n\r\nconst handleSortChange = (sort: Sort) => {\r\n if (sortValue.value) {\r\n sortValue.value.ascs = '';\r\n sortValue.value.descs = '';\r\n switch (sort.order) {\r\n case 'ascending':\r\n sortValue.value.ascs = sort.prop;\r\n break;\r\n case 'descending':\r\n sortValue.value.descs = sort.prop;\r\n break;\r\n }\r\n }\r\n\r\n emit('sortChange', sort);\r\n};\r\ndefineExpose({\r\n clearSort: () => GmTbaleRef.value?.clearSort(),\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n:deep(.gmTableNoBorder .el-table__body .el-table__cell) {\r\n border-right: none;\r\n}\r\n:deep(.gmTableNoBorder .el-table__inner-wrapper:before) {\r\n height: 0;\r\n}\r\n:deep(.gmTableNoBorder.el-table--border .el-table__inner-wrapper:after) {\r\n height: 0;\r\n}\r\n:deep(.gmTableNoBorder.el-table--border:after) {\r\n height: 0;\r\n}\r\n:deep(.gmTableNoBorder.el-table--border:before) {\r\n height: 0;\r\n}\r\n:deep(.gmTableNoBorder .el-table__border-left-patch) {\r\n height: 0;\r\n}\r\n</style>\r\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>\r\n <div>\r\n <gm-table\r\n ref=\"GmTbaleRef\"\r\n v-bind=\"props\"\r\n border\r\n class=\"gmTablePro\"\r\n :class=\"[props.border ? '' : 'gmTableNoBorder']\"\r\n @selection-change=\"(value: TableColumnProProps[]) => $emit('selectionChange', value)\"\r\n @sort-change=\"handleSortChange\"\r\n @header-dragend=\"headerDragend\"\r\n >\r\n <template v-if=\"props.selection\">\r\n <gm-table-column :key=\"999999\" type=\"selection\" width=\"50\" />\r\n </template>\r\n <template v-if=\"gmTableHeaderRef?.isInited\">\r\n <TableColumnVNodeRenderer :vnode=\"tableColumnVnode\" :propsList=\"colPropsList\" />\r\n </template>\r\n <!-- 操作 -->\r\n <gm-table-column\r\n v-if=\"customHeader || customOperate\"\r\n prop=\"gmEdit\"\r\n min-width=\"100\"\r\n :width=\"editProps?.width\"\r\n :fixed=\"operateFixed ? 'right' : false\"\r\n >\r\n <template #header>\r\n <div class=\"gm-text-center\">\r\n <gm-button v-if=\"customHeader\" type=\"primary\" link size=\"small\" @click=\"setTable('header')\"> 表头 </gm-button>\r\n <gm-button v-if=\"customOperate\" type=\"primary\" link size=\"small\" @click=\"setTable('operate')\"> 操作 </gm-button>\r\n </div>\r\n </template>\r\n <template #default=\"slotValue\">\r\n <!-- <VNodeRenderer :vnode=\"customVNodes\" /> -->\r\n <div v-if=\"tableOperateVnode && gmCustomOperationsRef && gmCustomOperationsRef.isInited\" class=\"gm-flex gm-flex-wrap gm-justify-center\">\r\n <TableOperateVNodeRenderer :vnode=\"tableOperateVnode.children?.default(slotValue)\" :customPropsList=\"customBtnPropsList\" />\r\n </div>\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n </div>\r\n\r\n <gm-table-header-form\r\n ref=\"gmTableHeaderRef\"\r\n v-model:isShowDrawer=\"drawerHeaderVisible\"\r\n v-model:colPropsList=\"colPropsList\"\r\n :colDefaultPropsList=\"colDefaultPropsList\"\r\n :keyWord=\"props.page\"\r\n type=\"HeaderList\"\r\n />\r\n\r\n <gm-operate-button-form\r\n ref=\"gmCustomOperationsRef\"\r\n v-model:isShowDrawer=\"drawerOperateVisible\"\r\n v-model:customBtnPropsList=\"customBtnPropsList\"\r\n :customDefaultPropsList=\"customDefaultPropsList\"\r\n :keyWord=\"props.page\"\r\n type=\"OperateList\"\r\n />\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, nextTick, ref } from 'vue';\r\nimport { hasOwn } from '@giime/utils/src/objects';\r\n// import { cloneDeep } from 'lodash-es';\r\nimport { operateButtonProps } from '../operateButton/operateButton';\r\nimport TableOperateVNodeRenderer from './TableOperateVNodeRenderer';\r\nimport TableColumnVNodeRenderer from './TableColumnVNodeRenderer';\r\nimport { tableProEmits, tableProProps } from './tablePro';\r\nimport { getVnodesByGmName } from './tableHelper';\r\nimport { TableColumnProName, type TableColumnProProps, tableColumnProProps } from './tableColumnPro/tableColumnPro';\r\nimport type { OperateButtonFormInstance } from '../operateButton/operateButtonForm';\r\nimport type { TableHeaderFormInstance } from './tableHeaderForm';\r\nimport type { OperateButtonProps } from '../operateButton/operateButton';\r\nimport type { Sort, TableInstance } from 'element-plus';\r\n\r\ndefineOptions({\r\n name: 'GmTablePro',\r\n});\r\nconst GmTbaleRef = ref<TableInstance>();\r\nconst gmCustomOperationsRef = ref<OperateButtonFormInstance>();\r\nconst gmTableHeaderRef = ref<TableHeaderFormInstance>();\r\n\r\nconst emit = defineEmits(tableProEmits);\r\nconst props = defineProps(tableProProps);\r\n\r\nconst slots = defineSlots<{\r\n default(data?: any): any[];\r\n}>();\r\n// 列 当前原始vnode\r\nconst tableColumnVnode = computed(() => {\r\n const vNodes = slots.default?.() || [];\r\n // const nodes = vNodes.filter(vNode => vNode.props && vNode.props.type !== 'edit');\r\n return vNodes;\r\n});\r\n// 默认表头Props列表\r\nconst colDefaultPropsList = computed(() => {\r\n const vNodes = slots.default?.() || [];\r\n const children = getVnodesByGmName(vNodes, TableColumnProName);\r\n // const result = children.filter(vNode => vNode.props && vNode.props.type !== 'edit');\r\n\r\n const colProps: TableColumnProProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\r\n // 循环插入props所需的默认值\r\n colProps.forEach(it => {\r\n for (const key in tableColumnProProps) {\r\n // 如果当前props含有默认值\r\n if (hasOwn(it, key)) {\r\n continue;\r\n }\r\n if (hasOwn(tableColumnProProps, key)) {\r\n const element = tableColumnProProps[key as keyof TableColumnProProps];\r\n // 如果btn 定义中含有默认值 则赋值给props\r\n if (hasOwn(element, 'default')) {\r\n Reflect.set(it, key, Reflect.get(element, 'default'));\r\n }\r\n }\r\n }\r\n });\r\n return colProps;\r\n});\r\n// 已选中表头\r\nconst colPropsList = ref<TableColumnProProps[]>(colDefaultPropsList.value);\r\nconst editProps = computed(() => colPropsList.value.find(it => it.type === 'edit'));\r\n\r\n// 操作按钮组 当前原始vnode\r\nconst tableOperateVnode = computed(() => {\r\n const vNodes = slots.default?.() || [];\r\n const nodes = vNodes.find(vNode => vNode.props && vNode.props.type === 'edit');\r\n return nodes;\r\n});\r\n\r\nconst customDefaultPropsList = computed(() => {\r\n const defaultVnodes = tableOperateVnode.value?.children?.default?.(tableOperateVnode.value?.ctx.scope);\r\n const children = getVnodesByGmName(defaultVnodes, 'GmOperateButton');\r\n\r\n const btnProps: OperateButtonProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\r\n // 循环插入props所需的默认值\r\n btnProps.forEach(it => {\r\n for (const key in operateButtonProps) {\r\n // 如果当前props含有默认值\r\n if (hasOwn(it, key)) {\r\n continue;\r\n }\r\n if (hasOwn(operateButtonProps, key)) {\r\n const element = operateButtonProps[key as keyof OperateButtonProps];\r\n // 如果btn 定义中含有默认值 则赋值给props\r\n if (hasOwn(element, 'default')) {\r\n Reflect.set(it, key, Reflect.get(element, 'default'));\r\n }\r\n }\r\n }\r\n });\r\n return btnProps;\r\n});\r\nconst customBtnPropsList = ref<OperateButtonProps[]>(customDefaultPropsList.value);\r\n\r\n// 表格头部弹层\r\nconst drawerHeaderVisible = ref(false); // 表头设置弹层\r\nconst drawerOperateVisible = ref(false); // 按钮设置弹层\r\nconst setTable = (event: string) => {\r\n if (event === 'header') {\r\n drawerHeaderVisible.value = true;\r\n }\r\n if (event === 'operate') {\r\n drawerOperateVisible.value = true;\r\n }\r\n};\r\n\r\n/**\r\n * 表头拖动,修改width\r\n */\r\nconst headerDragend = async (newWidth: number, oldWidth: number, column: any) => {\r\n const findItem = colPropsList.value.find(it => it.prop === column.property);\r\n const editItem = column.property === 'gmEdit' ? colPropsList.value.find(it => it.type === 'edit') : null;\r\n if (!findItem && !editItem) {\r\n return;\r\n }\r\n if (findItem) {\r\n findItem.width = newWidth;\r\n }\r\n if (editItem) {\r\n editItem.width = newWidth;\r\n }\r\n // 设置列宽\r\n await nextTick();\r\n gmTableHeaderRef.value?.submitSettings();\r\n};\r\n/**\r\n * 搜索模块\r\n */\r\nconst sortValue = defineModel<{\r\n ascs: string;\r\n descs: string;\r\n}>('sortValue');\r\n\r\nconst handleSortChange = (sort: Sort) => {\r\n if (sortValue.value) {\r\n sortValue.value.ascs = '';\r\n sortValue.value.descs = '';\r\n switch (sort.order) {\r\n case 'ascending':\r\n sortValue.value.ascs = sort.prop;\r\n break;\r\n case 'descending':\r\n sortValue.value.descs = sort.prop;\r\n break;\r\n }\r\n }\r\n\r\n emit('sortChange', sort);\r\n};\r\ndefineExpose({\r\n colPropsList,\r\n clearSort: () => GmTbaleRef.value?.clearSort(),\r\n});\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n:deep(.gmTableNoBorder .el-table__body .el-table__cell) {\r\n border-right: none;\r\n}\r\n:deep(.gmTableNoBorder .el-table__inner-wrapper:before) {\r\n height: 0;\r\n}\r\n:deep(.gmTableNoBorder.el-table--border .el-table__inner-wrapper:after) {\r\n height: 0;\r\n}\r\n:deep(.gmTableNoBorder.el-table--border:after) {\r\n height: 0;\r\n}\r\n:deep(.gmTableNoBorder.el-table--border:before) {\r\n height: 0;\r\n}\r\n:deep(.gmTableNoBorder .el-table__border-left-patch) {\r\n height: 0;\r\n}\r\n</style>\r\n"],"names":["_useSlots","_useModel"],"mappings":"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"}