giime 0.3.12 → 0.3.13
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 +27 -27
- package/es/components/src/composite/tablePro/TablePro.vue.mjs +1 -1
- package/es/components/src/composite/tablePro/TablePro.vue2.mjs +10 -6
- package/es/components/src/composite/tablePro/TablePro.vue2.mjs.map +1 -1
- package/es/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue.d.ts +1 -0
- package/es/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue2.mjs +3 -2
- package/es/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue2.mjs.map +1 -1
- package/es/components/src/composite/tablePro/tableHeaderForm/index.d.ts +1 -0
- package/es/giime/version.d.ts +1 -1
- package/es/giime/version.mjs +1 -1
- package/es/giime/version.mjs.map +1 -1
- package/es/index.css +27 -27
- package/lib/components/src/composite/tablePro/TablePro.vue.js +1 -1
- package/lib/components/src/composite/tablePro/TablePro.vue2.js +10 -6
- package/lib/components/src/composite/tablePro/TablePro.vue2.js.map +1 -1
- package/lib/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue.d.ts +1 -0
- package/lib/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue2.js +3 -2
- package/lib/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue2.js.map +1 -1
- package/lib/components/src/composite/tablePro/tableHeaderForm/index.d.ts +1 -0
- package/lib/giime/version.d.ts +1 -1
- package/lib/giime/version.js +1 -1
- package/lib/giime/version.js.map +1 -1
- package/lib/index.css +27 -27
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -755,17 +755,33 @@ video {
|
|
|
755
755
|
margin: 0;
|
|
756
756
|
}
|
|
757
757
|
|
|
758
|
-
.gm-flex-center[data-v-6829dac1] {
|
|
759
|
-
align-items: center;
|
|
760
|
-
}
|
|
761
|
-
|
|
762
|
-
.gm-flex-justify-between[data-v-6829dac1] {
|
|
763
|
-
justify-content: space-between;
|
|
764
|
-
}
|
|
765
758
|
[data-v-ec3af0bb] .gmSearchForm .el-form-item {
|
|
766
759
|
margin-right: 0;
|
|
767
760
|
margin-bottom: 4px;
|
|
768
761
|
}
|
|
762
|
+
[data-v-72a53f6c] .gmTableNoBorder .el-table__body .el-table__cell {
|
|
763
|
+
border-right: none;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
[data-v-72a53f6c] .gmTableNoBorder .el-table__inner-wrapper:before {
|
|
767
|
+
height: 0;
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
[data-v-72a53f6c] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
|
|
771
|
+
height: 0;
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
[data-v-72a53f6c] .gmTableNoBorder.el-table--border:after {
|
|
775
|
+
height: 0;
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
[data-v-72a53f6c] .gmTableNoBorder.el-table--border:before {
|
|
779
|
+
height: 0;
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
[data-v-72a53f6c] .gmTableNoBorder .el-table__border-left-patch {
|
|
783
|
+
height: 0;
|
|
784
|
+
}
|
|
769
785
|
.gm-number-interval-single[data-v-47a13fd0] {
|
|
770
786
|
border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
|
|
771
787
|
box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
|
|
@@ -784,28 +800,12 @@ video {
|
|
|
784
800
|
.gm-number-interval-single[data-v-47a13fd0]:hover .gm-number-interval-close[data-v-47a13fd0] {
|
|
785
801
|
display: flex;
|
|
786
802
|
}
|
|
787
|
-
[data-v-
|
|
788
|
-
|
|
789
|
-
}
|
|
790
|
-
|
|
791
|
-
[data-v-da681c8c] .gmTableNoBorder .el-table__inner-wrapper:before {
|
|
792
|
-
height: 0;
|
|
793
|
-
}
|
|
794
|
-
|
|
795
|
-
[data-v-da681c8c] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
|
|
796
|
-
height: 0;
|
|
797
|
-
}
|
|
798
|
-
|
|
799
|
-
[data-v-da681c8c] .gmTableNoBorder.el-table--border:after {
|
|
800
|
-
height: 0;
|
|
801
|
-
}
|
|
802
|
-
|
|
803
|
-
[data-v-da681c8c] .gmTableNoBorder.el-table--border:before {
|
|
804
|
-
height: 0;
|
|
803
|
+
.gm-flex-center[data-v-6829dac1] {
|
|
804
|
+
align-items: center;
|
|
805
805
|
}
|
|
806
806
|
|
|
807
|
-
[data-v-
|
|
808
|
-
|
|
807
|
+
.gm-flex-justify-between[data-v-6829dac1] {
|
|
808
|
+
justify-content: space-between;
|
|
809
809
|
}
|
|
810
810
|
|
|
811
811
|
.pagination-container[data-v-19230954] {
|
|
@@ -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-
|
|
5
|
+
var TablePro = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-72a53f6c"], ["__file", "TablePro.vue"]]);
|
|
6
6
|
|
|
7
7
|
export { TablePro as default };
|
|
8
8
|
//# sourceMappingURL=TablePro.vue.mjs.map
|
|
@@ -11,7 +11,7 @@ import { tableProProps, tableProEmits } 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-
|
|
14
|
+
const _withScopeId = (n) => (pushScopeId("data-v-72a53f6c"), n = n(), popScopeId(), n);
|
|
15
15
|
const _hoisted_1 = { class: "gm-text-center" };
|
|
16
16
|
const _hoisted_2 = {
|
|
17
17
|
key: 0,
|
|
@@ -122,10 +122,11 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
122
122
|
editItem.width = newWidth;
|
|
123
123
|
}
|
|
124
124
|
await nextTick();
|
|
125
|
+
resetWidthOnHeaderDrag(column);
|
|
126
|
+
gmTableHeaderRef.value?.syncPropsList();
|
|
125
127
|
gmTableHeaderRef.value?.submitSettings({ hiddenMessage: true });
|
|
126
|
-
return resetWidthOnHeaderDrag();
|
|
127
128
|
};
|
|
128
|
-
const resetWidthOnHeaderDrag = () => {
|
|
129
|
+
const resetWidthOnHeaderDrag = (column) => {
|
|
129
130
|
if (props.disabledResetWidth) {
|
|
130
131
|
return;
|
|
131
132
|
}
|
|
@@ -137,6 +138,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
137
138
|
(it) => it.isShow === true && it.type !== "edit" && it.prop !== "edit" && (it["min-width"] || it.minWidth)
|
|
138
139
|
);
|
|
139
140
|
for (const item of minWidthCols) {
|
|
141
|
+
if (column?.property === item.prop && minWidthCols.length !== 1) {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
140
144
|
item.width = "";
|
|
141
145
|
}
|
|
142
146
|
};
|
|
@@ -298,15 +302,15 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
298
302
|
colDefaultPropsList: colDefaultPropsList.value,
|
|
299
303
|
keyWord: props.page,
|
|
300
304
|
type: "HeaderList",
|
|
301
|
-
onUpdateColumns: resetWidthOnHeaderDrag
|
|
305
|
+
onUpdateColumns: _cache[5] || (_cache[5] = ($event) => resetWidthOnHeaderDrag())
|
|
302
306
|
}, null, 8, ["isShowDrawer", "colPropsList", "colDefaultPropsList", "keyWord"]),
|
|
303
307
|
createVNode(_component_gm_operate_button_form, {
|
|
304
308
|
ref_key: "gmCustomOperationsRef",
|
|
305
309
|
ref: gmCustomOperationsRef,
|
|
306
310
|
isShowDrawer: drawerOperateVisible.value,
|
|
307
|
-
"onUpdate:isShowDrawer": _cache[
|
|
311
|
+
"onUpdate:isShowDrawer": _cache[6] || (_cache[6] = ($event) => drawerOperateVisible.value = $event),
|
|
308
312
|
customBtnPropsList: customBtnPropsList.value,
|
|
309
|
-
"onUpdate:customBtnPropsList": _cache[
|
|
313
|
+
"onUpdate:customBtnPropsList": _cache[7] || (_cache[7] = ($event) => customBtnPropsList.value = $event),
|
|
310
314
|
customDefaultPropsList: customDefaultPropsList.value,
|
|
311
315
|
keyWord: props.page,
|
|
312
316
|
type: "OperateList"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TablePro.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/tablePro/TablePro.vue"],"sourcesContent":["<template>\r\n <div ref=\"gmTableDivRef\">\r\n <gm-table\r\n v-if=\"gmTableHeaderRef?.isInited\"\r\n ref=\"GmTbaleRef\"\r\n v-bind=\"props\"\r\n :height=\"autoHeight ? tableMaxHeight : height\"\r\n border\r\n class=\"gmTablePro\"\r\n :class=\"[props.border ? '' : 'gmTableNoBorder']\"\r\n v-on=\"elEvents\"\r\n @selection-change=\"(value: TableColumnProProps[]) => $emit('selection-change', value)\"\r\n @sort-change=\"handleSortChange\"\r\n @header-dragend=\"headerDragend\"\r\n >\r\n <!-- <template #empty>\r\n <gm-empty image=\"https://thirdorder.giikin.com/third/20240601/3c5850781351121f81b9e21ec7e75a204898949.png\" />\r\n </template> -->\r\n <template v-if=\"slots.append\" #append>\r\n <slot name=\"append\" />\r\n </template>\r\n <template v-if=\"slots.empty\" #empty>\r\n <slot name=\"empty\" />\r\n </template>\r\n <template v-if=\"props.selection\">\r\n <gm-table-column :key=\"999999\" type=\"selection\" width=\"55\" />\r\n </template>\r\n <TableColumnVNodeRenderer :vnode=\"tableColumnVnode\" :propsList=\"colPropsList\" />\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 <!-- <div\r\n v-if=\"\r\n tableOperateVnode &&\r\n tableOperateVnode.children &&\r\n gmCustomOperationsRef &&\r\n gmCustomOperationsRef.isInited &&\r\n slotValue &&\r\n slotValue.row &&\r\n tableOperateVnode.children?.default(slotValue) &&\r\n customBtnPropsList\r\n \"\r\n >\r\n <TableProEditSlot\r\n v-model:customBtnPropsList=\"customBtnPropsList\"\r\n v-model:customDefaultPropsList=\"customDefaultPropsList\"\r\n :tableOperateVnode=\"tableOperateVnode\"\r\n :isInited=\"gmCustomOperationsRef?.isInited\"\r\n :slotValue=\"slotValue\"\r\n />\r\n </div> -->\r\n <div\r\n v-if=\"\r\n tableOperateVnode &&\r\n tableOperateVnode.children &&\r\n gmCustomOperationsRef &&\r\n gmCustomOperationsRef.isInited &&\r\n slotValue &&\r\n slotValue.row &&\r\n tableOperateVnode.children?.default(slotValue) &&\r\n customBtnPropsList\r\n \"\r\n class=\"gm-flex gm-flex-wrap gm-justify-center\"\r\n >\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 @updateColumns=\"resetWidthOnHeaderDrag\"\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, inject, nextTick, ref } from 'vue';\r\nimport { hasOwn } from '@giime/utils/src/objects';\r\nimport { getGmExports } from '@giime/utils/src/elementPlus/exports';\r\nimport { getGmEvent } from '@giime/utils/src/elementPlus/event';\r\nimport { TableCtxKey } from '@giime/constants/table';\r\nimport { useElementBounding, useWindowSize } from '@vueuse/core';\r\nimport { operateButtonProps } from '../operateButton/operateButton';\r\n// import TableProEditSlot from './TableProEditSlot.vue';\r\n// import { cloneDeep } from 'lodash-es';\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 { TableProSortValue } from './tablePro';\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 tableCtx = inject(TableCtxKey);\r\nconst props = defineProps(tableProProps);\r\n\r\nconst gmTableDivRef = ref<HTMLDivElement>();\r\n// 用于计算table高度\r\nconst { top: divTop } = useElementBounding(gmTableDivRef);\r\nconst { height: windowHeight } = useWindowSize();\r\nconst tableMaxHeight = computed(() => Math.floor(windowHeight.value - divTop.value - 60 - props.heightOffset)); // 高度 - 顶部距离 - 分页器116 - 用户自定义需要减去的高度\r\nconst GmTbaleRef = ref<TableInstance>();\r\nif (tableCtx && tableCtx.tableId === props.page) {\r\n tableCtx.tableRef = GmTbaleRef;\r\n}\r\nconst gmCustomOperationsRef = ref<OperateButtonFormInstance>();\r\nconst gmTableHeaderRef = ref<TableHeaderFormInstance>();\r\n\r\nconst emit = defineEmits(tableProEmits);\r\n// 需要手动重新实现的事件\r\nconst notResendEvents = ['sort-change', 'header-dragend', 'selection-change'];\r\nconst resendEvent = { ...tableProEmits };\r\nnotResendEvents.forEach(it => Reflect.deleteProperty(resendEvent, it));\r\n// 重发el的事件\r\nconst elEvents = getGmEvent(resendEvent, emit);\r\nconst slots = defineSlots<{\r\n default(data?: any): any[];\r\n append?(data?: any): any[];\r\n empty?(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?.({ row: {} });\r\n if (Array.isArray(defaultVnodes) && defaultVnodes.some(it => it?.children === 'v-if')) {\r\n console.error(`警告:为确保表格操作按钮能正常渲染,请把表格${props.page}操作按钮中使用的\"v-if\"替换为\"v-see\"`);\r\n }\r\n const children = getVnodesByGmName(defaultVnodes, 'GmOperateButton');\r\n const btnProps: OperateButtonProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\r\n // console.log(btnProps);\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 // console.log(btnProps)\r\n return btnProps;\r\n});\r\n// customDefaultPropsList2();\r\n// const customDefaultPropsList = ref<OperateButtonProps[]>([]);\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({ hiddenMessage: true });\r\n return resetWidthOnHeaderDrag();\r\n};\r\n/**\r\n * 当表头拖动后,重新计算补充列宽度\r\n * 当全部列都设置了宽度,把设置过minWidth的列设置为补充列,补充表格剩余宽度\r\n */\r\nconst resetWidthOnHeaderDrag = () => {\r\n if (props.disabledResetWidth) {\r\n return;\r\n }\r\n // 当全部列都设置了宽度 才执行后续步骤\r\n if (colPropsList.value.some(it => it.isShow && !it.width)) {\r\n return;\r\n }\r\n const minWidthCols = colPropsList.value.filter(\r\n // 是在展示中的列,并且不是操作列,并且设置了最小宽度\r\n it => it.isShow === true && it.type !== 'edit' && it.prop !== 'edit' && ((it as any)['min-width'] || it.minWidth),\r\n );\r\n for (const item of minWidthCols) {\r\n item.width = '';\r\n }\r\n};\r\n/**\r\n * 搜索模块\r\n */\r\nconst sortValue = defineModel<TableProSortValue[]>('sortValue');\r\n\r\nconst handleSortChange = (sort: Sort) => {\r\n if (sortValue.value) {\r\n sortValue.value.length = 0;\r\n switch (sort.order) {\r\n case 'ascending':\r\n sortValue.value.push({ field: sort.prop, order: 'asc' });\r\n break;\r\n case 'descending':\r\n sortValue.value.push({ field: sort.prop, order: 'desc' });\r\n break;\r\n }\r\n }\r\n\r\n emit('sort-change', sort);\r\n};\r\nconst exposeEvents = [\r\n 'clearSelection',\r\n 'getSelectionRows',\r\n 'toggleRowSelection',\r\n 'toggleAllSelection',\r\n 'toggleRowExpansion',\r\n 'setCurrentRow',\r\n 'setChecked',\r\n 'clearSort',\r\n 'clearFilter',\r\n 'doLayout',\r\n 'sort',\r\n 'scrollTo',\r\n 'setScrollTop',\r\n 'setScrollLeft',\r\n] as const;\r\nconst { exposeFns } = getGmExports(GmTbaleRef, exposeEvents);\r\ndefineExpose({\r\n colPropsList,\r\n ...exposeFns,\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+HA,IAAM,MAAA,QAAA,GAAW,OAAO,WAAW,CAAA,CAAA;AACnC,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAA,MAAM,gBAAgB,GAAoB,EAAA,CAAA;AAE1C,IAAA,MAAM,EAAE,GAAA,EAAK,MAAO,EAAA,GAAI,mBAAmB,aAAa,CAAA,CAAA;AACxD,IAAA,MAAM,EAAE,MAAA,EAAQ,YAAa,EAAA,GAAI,aAAc,EAAA,CAAA;AAC/C,IAAA,MAAM,cAAiB,GAAA,QAAA,CAAS,MAAM,IAAA,CAAK,KAAM,CAAA,YAAA,CAAa,KAAQ,GAAA,MAAA,CAAO,KAAQ,GAAA,EAAA,GAAK,KAAM,CAAA,YAAY,CAAC,CAAA,CAAA;AAC7G,IAAA,MAAM,aAAa,GAAmB,EAAA,CAAA;AACtC,IAAA,IAAI,QAAY,IAAA,QAAA,CAAS,OAAY,KAAA,KAAA,CAAM,IAAM,EAAA;AAC/C,MAAA,QAAA,CAAS,QAAW,GAAA,UAAA,CAAA;AAAA,KACtB;AACA,IAAA,MAAM,wBAAwB,GAA+B,EAAA,CAAA;AAC7D,IAAA,MAAM,mBAAmB,GAA6B,EAAA,CAAA;AAEtD,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAA,MAAM,eAAkB,GAAA,CAAC,aAAe,EAAA,gBAAA,EAAkB,kBAAkB,CAAA,CAAA;AAC5E,IAAM,MAAA,WAAA,GAAc,EAAE,GAAG,aAAc,EAAA,CAAA;AACvC,IAAA,eAAA,CAAgB,QAAQ,CAAM,EAAA,KAAA,OAAA,CAAQ,cAAe,CAAA,WAAA,EAAa,EAAE,CAAC,CAAA,CAAA;AAErE,IAAM,MAAA,QAAA,GAAW,UAAW,CAAA,WAAA,EAAa,IAAI,CAAA,CAAA;AAC7C,IAAA,MAAM,QAAQA,QAAA,EAAA,CAAA;AAMd,IAAM,MAAA,gBAAA,GAAmB,SAAS,MAAM;AACtC,MAAA,MAAM,MAAS,GAAA,KAAA,CAAM,OAAU,IAAA,IAAK,EAAC,CAAA;AAErC,MAAO,OAAA,MAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAM,MAAA,mBAAA,GAAsB,SAAS,MAAM;AACzC,MAAA,MAAM,MAAS,GAAA,KAAA,CAAM,OAAU,IAAA,IAAK,EAAC,CAAA;AACrC,MAAM,MAAA,QAAA,GAAW,iBAAkB,CAAA,MAAA,EAAQ,kBAAkB,CAAA,CAAA;AAG7D,MAAM,MAAA,QAAA,GAAkC,SAAS,GAAI,CAAA,CAAC,UAA0B,KAAM,CAAA,KAAK,KAAK,EAAC,CAAA;AAEjG,MAAA,QAAA,CAAS,QAAQ,CAAM,EAAA,KAAA;AACrB,QAAA,KAAA,MAAW,OAAO,mBAAqB,EAAA;AAErC,UAAI,IAAA,MAAA,CAAO,EAAI,EAAA,GAAG,CAAG,EAAA;AACnB,YAAA,SAAA;AAAA,WACF;AACA,UAAI,IAAA,MAAA,CAAO,mBAAqB,EAAA,GAAG,CAAG,EAAA;AACpC,YAAM,MAAA,OAAA,GAAU,oBAAoB,GAAgC,CAAA,CAAA;AAEpE,YAAI,IAAA,MAAA,CAAO,OAAS,EAAA,SAAS,CAAG,EAAA;AAC9B,cAAA,OAAA,CAAQ,IAAI,EAAI,EAAA,GAAA,EAAK,QAAQ,GAAI,CAAA,OAAA,EAAS,SAAS,CAAC,CAAA,CAAA;AAAA,aACtD;AAAA,WACF;AAAA,SACF;AAAA,OACD,CAAA,CAAA;AACD,MAAO,OAAA,QAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAM,MAAA,YAAA,GAAe,GAA2B,CAAA,mBAAA,CAAoB,KAAK,CAAA,CAAA;AACzE,IAAM,MAAA,SAAA,GAAY,QAAS,CAAA,MAAM,YAAa,CAAA,KAAA,CAAM,KAAK,CAAM,EAAA,KAAA,EAAA,CAAG,IAAS,KAAA,MAAM,CAAC,CAAA,CAAA;AAGlF,IAAM,MAAA,iBAAA,GAAoB,SAAS,MAAM;AACvC,MAAA,MAAM,MAAS,GAAA,KAAA,CAAM,OAAU,IAAA,IAAK,EAAC,CAAA;AACrC,MAAM,MAAA,KAAA,GAAQ,OAAO,IAAK,CAAA,CAAA,KAAA,KAAS,MAAM,KAAS,IAAA,KAAA,CAAM,KAAM,CAAA,IAAA,KAAS,MAAM,CAAA,CAAA;AAC7E,MAAO,OAAA,KAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAM,MAAA,sBAAA,GAAyB,SAAS,MAAM;AAC5C,MAAM,MAAA,aAAA,GAAgB,kBAAkB,KAAO,EAAA,QAAA,EAAU,UAAU,EAAE,GAAA,EAAK,EAAC,EAAG,CAAA,CAAA;AAC9E,MAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,aAAa,CAAK,IAAA,aAAA,CAAc,KAAK,CAAM,EAAA,KAAA,EAAA,EAAI,QAAa,KAAA,MAAM,CAAG,EAAA;AACrF,QAAA,OAAA,CAAQ,KAAM,CAAA,CAAA,oIAAA,EAAyB,KAAM,CAAA,IAAI,CAA0B,+EAAA,CAAA,CAAA,CAAA;AAAA,OAC7E;AACA,MAAM,MAAA,QAAA,GAAW,iBAAkB,CAAA,aAAA,EAAe,iBAAiB,CAAA,CAAA;AACnE,MAAM,MAAA,QAAA,GAAiC,SAAS,GAAI,CAAA,CAAC,UAA0B,KAAM,CAAA,KAAK,KAAK,EAAC,CAAA;AAGhG,MAAA,QAAA,CAAS,QAAQ,CAAM,EAAA,KAAA;AACrB,QAAA,KAAA,MAAW,OAAO,kBAAoB,EAAA;AAEpC,UAAI,IAAA,MAAA,CAAO,EAAI,EAAA,GAAG,CAAG,EAAA;AACnB,YAAA,SAAA;AAAA,WACF;AACA,UAAI,IAAA,MAAA,CAAO,kBAAoB,EAAA,GAAG,CAAG,EAAA;AACnC,YAAM,MAAA,OAAA,GAAU,mBAAmB,GAA+B,CAAA,CAAA;AAElE,YAAI,IAAA,MAAA,CAAO,OAAS,EAAA,SAAS,CAAG,EAAA;AAC9B,cAAA,OAAA,CAAQ,IAAI,EAAI,EAAA,GAAA,EAAK,QAAQ,GAAI,CAAA,OAAA,EAAS,SAAS,CAAC,CAAA,CAAA;AAAA,aACtD;AAAA,WACF;AAAA,SACF;AAAA,OACD,CAAA,CAAA;AAED,MAAO,OAAA,QAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAGD,IAAM,MAAA,kBAAA,GAAqB,GAA0B,CAAA,sBAAA,CAAuB,KAAK,CAAA,CAAA;AAGjF,IAAM,MAAA,mBAAA,GAAsB,IAAI,KAAK,CAAA,CAAA;AACrC,IAAM,MAAA,oBAAA,GAAuB,IAAI,KAAK,CAAA,CAAA;AACtC,IAAM,MAAA,QAAA,GAAW,CAAC,KAAkB,KAAA;AAClC,MAAA,IAAI,UAAU,QAAU,EAAA;AACtB,QAAA,mBAAA,CAAoB,KAAQ,GAAA,IAAA,CAAA;AAAA,OAC9B;AACA,MAAA,IAAI,UAAU,SAAW,EAAA;AACvB,QAAA,oBAAA,CAAqB,KAAQ,GAAA,IAAA,CAAA;AAAA,OAC/B;AAAA,KACF,CAAA;AAKA,IAAA,MAAM,aAAgB,GAAA,OAAO,QAAkB,EAAA,QAAA,EAAkB,MAAgB,KAAA;AAC/E,MAAM,MAAA,QAAA,GAAW,aAAa,KAAM,CAAA,IAAA,CAAK,QAAM,EAAG,CAAA,IAAA,KAAS,OAAO,QAAQ,CAAA,CAAA;AAC1E,MAAM,MAAA,QAAA,GAAW,MAAO,CAAA,QAAA,KAAa,QAAW,GAAA,YAAA,CAAa,KAAM,CAAA,IAAA,CAAK,CAAM,EAAA,KAAA,EAAA,CAAG,IAAS,KAAA,MAAM,CAAI,GAAA,IAAA,CAAA;AACpG,MAAI,IAAA,CAAC,QAAY,IAAA,CAAC,QAAU,EAAA;AAC1B,QAAA,OAAA;AAAA,OACF;AACA,MAAA,IAAI,QAAU,EAAA;AACZ,QAAA,QAAA,CAAS,KAAQ,GAAA,QAAA,CAAA;AAAA,OACnB;AACA,MAAA,IAAI,QAAU,EAAA;AACZ,QAAA,QAAA,CAAS,KAAQ,GAAA,QAAA,CAAA;AAAA,OACnB;AAEA,MAAA,MAAM,QAAS,EAAA,CAAA;AACf,MAAA,gBAAA,CAAiB,KAAO,EAAA,cAAA,CAAe,EAAE,aAAA,EAAe,MAAM,CAAA,CAAA;AAC9D,MAAA,OAAO,sBAAuB,EAAA,CAAA;AAAA,KAChC,CAAA;AAKA,IAAA,MAAM,yBAAyB,MAAM;AACnC,MAAA,IAAI,MAAM,kBAAoB,EAAA;AAC5B,QAAA,OAAA;AAAA,OACF;AAEA,MAAI,IAAA,YAAA,CAAa,MAAM,IAAK,CAAA,CAAA,EAAA,KAAM,GAAG,MAAU,IAAA,CAAC,EAAG,CAAA,KAAK,CAAG,EAAA;AACzD,QAAA,OAAA;AAAA,OACF;AACA,MAAM,MAAA,YAAA,GAAe,aAAa,KAAM,CAAA,MAAA;AAAA;AAAA,QAEtC,CAAM,EAAA,KAAA,EAAA,CAAG,MAAW,KAAA,IAAA,IAAQ,EAAG,CAAA,IAAA,KAAS,MAAU,IAAA,EAAA,CAAG,IAAS,KAAA,MAAA,KAAY,EAAW,CAAA,WAAW,KAAK,EAAG,CAAA,QAAA,CAAA;AAAA,OAC1G,CAAA;AACA,MAAA,KAAA,MAAW,QAAQ,YAAc,EAAA;AAC/B,QAAA,IAAA,CAAK,KAAQ,GAAA,EAAA,CAAA;AAAA,OACf;AAAA,KACF,CAAA;AAIA,IAAM,MAAA,SAAA,GAAYC,QAAgC,CAAA,OAAA,EAAC,WAAW,CAAA,CAAA;AAE9D,IAAM,MAAA,gBAAA,GAAmB,CAAC,IAAe,KAAA;AACvC,MAAA,IAAI,UAAU,KAAO,EAAA;AACnB,QAAA,SAAA,CAAU,MAAM,MAAS,GAAA,CAAA,CAAA;AACzB,QAAA,QAAQ,KAAK,KAAO;AAAA,UAClB,KAAK,WAAA;AACH,YAAU,SAAA,CAAA,KAAA,CAAM,KAAK,EAAE,KAAA,EAAO,KAAK,IAAM,EAAA,KAAA,EAAO,OAAO,CAAA,CAAA;AACvD,YAAA,MAAA;AAAA,UACF,KAAK,YAAA;AACH,YAAU,SAAA,CAAA,KAAA,CAAM,KAAK,EAAE,KAAA,EAAO,KAAK,IAAM,EAAA,KAAA,EAAO,QAAQ,CAAA,CAAA;AACxD,YAAA,MAAA;AAAA,SACJ;AAAA,OACF;AAEA,MAAA,IAAA,CAAK,eAAe,IAAI,CAAA,CAAA;AAAA,KAC1B,CAAA;AACA,IAAA,MAAM,YAAe,GAAA;AAAA,MACnB,gBAAA;AAAA,MACA,kBAAA;AAAA,MACA,oBAAA;AAAA,MACA,oBAAA;AAAA,MACA,oBAAA;AAAA,MACA,eAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,aAAA;AAAA,MACA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,KACF,CAAA;AACA,IAAA,MAAM,EAAE,SAAA,EAAc,GAAA,YAAA,CAAa,YAAY,YAAY,CAAA,CAAA;AAC3D,IAAa,QAAA,CAAA;AAAA,MACX,YAAA;AAAA,MACA,GAAG,SAAA;AAAA,KACJ,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"TablePro.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/tablePro/TablePro.vue"],"sourcesContent":["<template>\r\n <div ref=\"gmTableDivRef\">\r\n <gm-table\r\n v-if=\"gmTableHeaderRef?.isInited\"\r\n ref=\"GmTbaleRef\"\r\n v-bind=\"props\"\r\n :height=\"autoHeight ? tableMaxHeight : height\"\r\n border\r\n class=\"gmTablePro\"\r\n :class=\"[props.border ? '' : 'gmTableNoBorder']\"\r\n v-on=\"elEvents\"\r\n @selection-change=\"(value: TableColumnProProps[]) => $emit('selection-change', value)\"\r\n @sort-change=\"handleSortChange\"\r\n @header-dragend=\"headerDragend\"\r\n >\r\n <!-- <template #empty>\r\n <gm-empty image=\"https://thirdorder.giikin.com/third/20240601/3c5850781351121f81b9e21ec7e75a204898949.png\" />\r\n </template> -->\r\n <template v-if=\"slots.append\" #append>\r\n <slot name=\"append\" />\r\n </template>\r\n <template v-if=\"slots.empty\" #empty>\r\n <slot name=\"empty\" />\r\n </template>\r\n <template v-if=\"props.selection\">\r\n <gm-table-column :key=\"999999\" type=\"selection\" width=\"55\" />\r\n </template>\r\n <TableColumnVNodeRenderer :vnode=\"tableColumnVnode\" :propsList=\"colPropsList\" />\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 <!-- <div\r\n v-if=\"\r\n tableOperateVnode &&\r\n tableOperateVnode.children &&\r\n gmCustomOperationsRef &&\r\n gmCustomOperationsRef.isInited &&\r\n slotValue &&\r\n slotValue.row &&\r\n tableOperateVnode.children?.default(slotValue) &&\r\n customBtnPropsList\r\n \"\r\n >\r\n <TableProEditSlot\r\n v-model:customBtnPropsList=\"customBtnPropsList\"\r\n v-model:customDefaultPropsList=\"customDefaultPropsList\"\r\n :tableOperateVnode=\"tableOperateVnode\"\r\n :isInited=\"gmCustomOperationsRef?.isInited\"\r\n :slotValue=\"slotValue\"\r\n />\r\n </div> -->\r\n <div\r\n v-if=\"\r\n tableOperateVnode &&\r\n tableOperateVnode.children &&\r\n gmCustomOperationsRef &&\r\n gmCustomOperationsRef.isInited &&\r\n slotValue &&\r\n slotValue.row &&\r\n tableOperateVnode.children?.default(slotValue) &&\r\n customBtnPropsList\r\n \"\r\n class=\"gm-flex gm-flex-wrap gm-justify-center\"\r\n >\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 @updateColumns=\"resetWidthOnHeaderDrag()\"\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, inject, nextTick, ref } from 'vue';\r\nimport { hasOwn } from '@giime/utils/src/objects';\r\nimport { getGmExports } from '@giime/utils/src/elementPlus/exports';\r\nimport { getGmEvent } from '@giime/utils/src/elementPlus/event';\r\nimport { TableCtxKey } from '@giime/constants/table';\r\nimport { useElementBounding, useWindowSize } from '@vueuse/core';\r\nimport { operateButtonProps } from '../operateButton/operateButton';\r\n// import TableProEditSlot from './TableProEditSlot.vue';\r\n// import { cloneDeep } from 'lodash-es';\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 { TableProSortValue } from './tablePro';\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 tableCtx = inject(TableCtxKey);\r\nconst props = defineProps(tableProProps);\r\n\r\nconst gmTableDivRef = ref<HTMLDivElement>();\r\n// 用于计算table高度\r\nconst { top: divTop } = useElementBounding(gmTableDivRef);\r\nconst { height: windowHeight } = useWindowSize();\r\nconst tableMaxHeight = computed(() => Math.floor(windowHeight.value - divTop.value - 60 - props.heightOffset)); // 高度 - 顶部距离 - 分页器116 - 用户自定义需要减去的高度\r\nconst GmTbaleRef = ref<TableInstance>();\r\nif (tableCtx && tableCtx.tableId === props.page) {\r\n tableCtx.tableRef = GmTbaleRef;\r\n}\r\nconst gmCustomOperationsRef = ref<OperateButtonFormInstance>();\r\nconst gmTableHeaderRef = ref<TableHeaderFormInstance>();\r\n\r\nconst emit = defineEmits(tableProEmits);\r\n// 需要手动重新实现的事件\r\nconst notResendEvents = ['sort-change', 'header-dragend', 'selection-change'];\r\nconst resendEvent = { ...tableProEmits };\r\nnotResendEvents.forEach(it => Reflect.deleteProperty(resendEvent, it));\r\n// 重发el的事件\r\nconst elEvents = getGmEvent(resendEvent, emit);\r\nconst slots = defineSlots<{\r\n default(data?: any): any[];\r\n append?(data?: any): any[];\r\n empty?(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?.({ row: {} });\r\n if (Array.isArray(defaultVnodes) && defaultVnodes.some(it => it?.children === 'v-if')) {\r\n console.error(`警告:为确保表格操作按钮能正常渲染,请把表格${props.page}操作按钮中使用的\"v-if\"替换为\"v-see\"`);\r\n }\r\n const children = getVnodesByGmName(defaultVnodes, 'GmOperateButton');\r\n const btnProps: OperateButtonProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\r\n // console.log(btnProps);\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 // console.log(btnProps)\r\n return btnProps;\r\n});\r\n// customDefaultPropsList2();\r\n// const customDefaultPropsList = ref<OperateButtonProps[]>([]);\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 resetWidthOnHeaderDrag(column);\r\n gmTableHeaderRef.value?.syncPropsList();\r\n gmTableHeaderRef.value?.submitSettings({ hiddenMessage: true });\r\n};\r\n/**\r\n * 当表头拖动后,重新计算补充列宽度\r\n * 当全部列都设置了宽度,把设置过minWidth的列设置为补充列,补充表格剩余宽度\r\n */\r\nconst resetWidthOnHeaderDrag = (column?: any) => {\r\n if (props.disabledResetWidth) {\r\n return;\r\n }\r\n // 当全部列都设置了宽度 才执行后续步骤\r\n if (colPropsList.value.some(it => it.isShow && !it.width)) {\r\n return;\r\n }\r\n const minWidthCols = colPropsList.value.filter(\r\n // 是在展示中的列,并且不是操作列,并且设置了最小宽度\r\n it => it.isShow === true && it.type !== 'edit' && it.prop !== 'edit' && ((it as any)['min-width'] || it.minWidth),\r\n );\r\n for (const item of minWidthCols) {\r\n // 只有一个minWidth时, 也需要设置width = ''\r\n if (column?.property === item.prop && minWidthCols.length !== 1) {\r\n continue;\r\n }\r\n item.width = '';\r\n }\r\n};\r\n/**\r\n * 搜索模块\r\n */\r\nconst sortValue = defineModel<TableProSortValue[]>('sortValue');\r\n\r\nconst handleSortChange = (sort: Sort) => {\r\n if (sortValue.value) {\r\n sortValue.value.length = 0;\r\n switch (sort.order) {\r\n case 'ascending':\r\n sortValue.value.push({ field: sort.prop, order: 'asc' });\r\n break;\r\n case 'descending':\r\n sortValue.value.push({ field: sort.prop, order: 'desc' });\r\n break;\r\n }\r\n }\r\n\r\n emit('sort-change', sort);\r\n};\r\nconst exposeEvents = [\r\n 'clearSelection',\r\n 'getSelectionRows',\r\n 'toggleRowSelection',\r\n 'toggleAllSelection',\r\n 'toggleRowExpansion',\r\n 'setCurrentRow',\r\n 'setChecked',\r\n 'clearSort',\r\n 'clearFilter',\r\n 'doLayout',\r\n 'sort',\r\n 'scrollTo',\r\n 'setScrollTop',\r\n 'setScrollLeft',\r\n] as const;\r\nconst { exposeFns } = getGmExports(GmTbaleRef, exposeEvents);\r\ndefineExpose({\r\n colPropsList,\r\n ...exposeFns,\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+HA,IAAM,MAAA,QAAA,GAAW,OAAO,WAAW,CAAA,CAAA;AACnC,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAA,MAAM,gBAAgB,GAAoB,EAAA,CAAA;AAE1C,IAAA,MAAM,EAAE,GAAA,EAAK,MAAO,EAAA,GAAI,mBAAmB,aAAa,CAAA,CAAA;AACxD,IAAA,MAAM,EAAE,MAAA,EAAQ,YAAa,EAAA,GAAI,aAAc,EAAA,CAAA;AAC/C,IAAA,MAAM,cAAiB,GAAA,QAAA,CAAS,MAAM,IAAA,CAAK,KAAM,CAAA,YAAA,CAAa,KAAQ,GAAA,MAAA,CAAO,KAAQ,GAAA,EAAA,GAAK,KAAM,CAAA,YAAY,CAAC,CAAA,CAAA;AAC7G,IAAA,MAAM,aAAa,GAAmB,EAAA,CAAA;AACtC,IAAA,IAAI,QAAY,IAAA,QAAA,CAAS,OAAY,KAAA,KAAA,CAAM,IAAM,EAAA;AAC/C,MAAA,QAAA,CAAS,QAAW,GAAA,UAAA,CAAA;AAAA,KACtB;AACA,IAAA,MAAM,wBAAwB,GAA+B,EAAA,CAAA;AAC7D,IAAA,MAAM,mBAAmB,GAA6B,EAAA,CAAA;AAEtD,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAA,MAAM,eAAkB,GAAA,CAAC,aAAe,EAAA,gBAAA,EAAkB,kBAAkB,CAAA,CAAA;AAC5E,IAAM,MAAA,WAAA,GAAc,EAAE,GAAG,aAAc,EAAA,CAAA;AACvC,IAAA,eAAA,CAAgB,QAAQ,CAAM,EAAA,KAAA,OAAA,CAAQ,cAAe,CAAA,WAAA,EAAa,EAAE,CAAC,CAAA,CAAA;AAErE,IAAM,MAAA,QAAA,GAAW,UAAW,CAAA,WAAA,EAAa,IAAI,CAAA,CAAA;AAC7C,IAAA,MAAM,QAAQA,QAAA,EAAA,CAAA;AAMd,IAAM,MAAA,gBAAA,GAAmB,SAAS,MAAM;AACtC,MAAA,MAAM,MAAS,GAAA,KAAA,CAAM,OAAU,IAAA,IAAK,EAAC,CAAA;AAErC,MAAO,OAAA,MAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAM,MAAA,mBAAA,GAAsB,SAAS,MAAM;AACzC,MAAA,MAAM,MAAS,GAAA,KAAA,CAAM,OAAU,IAAA,IAAK,EAAC,CAAA;AACrC,MAAM,MAAA,QAAA,GAAW,iBAAkB,CAAA,MAAA,EAAQ,kBAAkB,CAAA,CAAA;AAG7D,MAAM,MAAA,QAAA,GAAkC,SAAS,GAAI,CAAA,CAAC,UAA0B,KAAM,CAAA,KAAK,KAAK,EAAC,CAAA;AAEjG,MAAA,QAAA,CAAS,QAAQ,CAAM,EAAA,KAAA;AACrB,QAAA,KAAA,MAAW,OAAO,mBAAqB,EAAA;AAErC,UAAI,IAAA,MAAA,CAAO,EAAI,EAAA,GAAG,CAAG,EAAA;AACnB,YAAA,SAAA;AAAA,WACF;AACA,UAAI,IAAA,MAAA,CAAO,mBAAqB,EAAA,GAAG,CAAG,EAAA;AACpC,YAAM,MAAA,OAAA,GAAU,oBAAoB,GAAgC,CAAA,CAAA;AAEpE,YAAI,IAAA,MAAA,CAAO,OAAS,EAAA,SAAS,CAAG,EAAA;AAC9B,cAAA,OAAA,CAAQ,IAAI,EAAI,EAAA,GAAA,EAAK,QAAQ,GAAI,CAAA,OAAA,EAAS,SAAS,CAAC,CAAA,CAAA;AAAA,aACtD;AAAA,WACF;AAAA,SACF;AAAA,OACD,CAAA,CAAA;AACD,MAAO,OAAA,QAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAM,MAAA,YAAA,GAAe,GAA2B,CAAA,mBAAA,CAAoB,KAAK,CAAA,CAAA;AACzE,IAAM,MAAA,SAAA,GAAY,QAAS,CAAA,MAAM,YAAa,CAAA,KAAA,CAAM,KAAK,CAAM,EAAA,KAAA,EAAA,CAAG,IAAS,KAAA,MAAM,CAAC,CAAA,CAAA;AAGlF,IAAM,MAAA,iBAAA,GAAoB,SAAS,MAAM;AACvC,MAAA,MAAM,MAAS,GAAA,KAAA,CAAM,OAAU,IAAA,IAAK,EAAC,CAAA;AACrC,MAAM,MAAA,KAAA,GAAQ,OAAO,IAAK,CAAA,CAAA,KAAA,KAAS,MAAM,KAAS,IAAA,KAAA,CAAM,KAAM,CAAA,IAAA,KAAS,MAAM,CAAA,CAAA;AAC7E,MAAO,OAAA,KAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAM,MAAA,sBAAA,GAAyB,SAAS,MAAM;AAC5C,MAAM,MAAA,aAAA,GAAgB,kBAAkB,KAAO,EAAA,QAAA,EAAU,UAAU,EAAE,GAAA,EAAK,EAAC,EAAG,CAAA,CAAA;AAC9E,MAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,aAAa,CAAK,IAAA,aAAA,CAAc,KAAK,CAAM,EAAA,KAAA,EAAA,EAAI,QAAa,KAAA,MAAM,CAAG,EAAA;AACrF,QAAA,OAAA,CAAQ,KAAM,CAAA,CAAA,oIAAA,EAAyB,KAAM,CAAA,IAAI,CAA0B,+EAAA,CAAA,CAAA,CAAA;AAAA,OAC7E;AACA,MAAM,MAAA,QAAA,GAAW,iBAAkB,CAAA,aAAA,EAAe,iBAAiB,CAAA,CAAA;AACnE,MAAM,MAAA,QAAA,GAAiC,SAAS,GAAI,CAAA,CAAC,UAA0B,KAAM,CAAA,KAAK,KAAK,EAAC,CAAA;AAGhG,MAAA,QAAA,CAAS,QAAQ,CAAM,EAAA,KAAA;AACrB,QAAA,KAAA,MAAW,OAAO,kBAAoB,EAAA;AAEpC,UAAI,IAAA,MAAA,CAAO,EAAI,EAAA,GAAG,CAAG,EAAA;AACnB,YAAA,SAAA;AAAA,WACF;AACA,UAAI,IAAA,MAAA,CAAO,kBAAoB,EAAA,GAAG,CAAG,EAAA;AACnC,YAAM,MAAA,OAAA,GAAU,mBAAmB,GAA+B,CAAA,CAAA;AAElE,YAAI,IAAA,MAAA,CAAO,OAAS,EAAA,SAAS,CAAG,EAAA;AAC9B,cAAA,OAAA,CAAQ,IAAI,EAAI,EAAA,GAAA,EAAK,QAAQ,GAAI,CAAA,OAAA,EAAS,SAAS,CAAC,CAAA,CAAA;AAAA,aACtD;AAAA,WACF;AAAA,SACF;AAAA,OACD,CAAA,CAAA;AAED,MAAO,OAAA,QAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAGD,IAAM,MAAA,kBAAA,GAAqB,GAA0B,CAAA,sBAAA,CAAuB,KAAK,CAAA,CAAA;AAGjF,IAAM,MAAA,mBAAA,GAAsB,IAAI,KAAK,CAAA,CAAA;AACrC,IAAM,MAAA,oBAAA,GAAuB,IAAI,KAAK,CAAA,CAAA;AACtC,IAAM,MAAA,QAAA,GAAW,CAAC,KAAkB,KAAA;AAClC,MAAA,IAAI,UAAU,QAAU,EAAA;AACtB,QAAA,mBAAA,CAAoB,KAAQ,GAAA,IAAA,CAAA;AAAA,OAC9B;AACA,MAAA,IAAI,UAAU,SAAW,EAAA;AACvB,QAAA,oBAAA,CAAqB,KAAQ,GAAA,IAAA,CAAA;AAAA,OAC/B;AAAA,KACF,CAAA;AAKA,IAAA,MAAM,aAAgB,GAAA,OAAO,QAAkB,EAAA,QAAA,EAAkB,MAAgB,KAAA;AAC/E,MAAM,MAAA,QAAA,GAAW,aAAa,KAAM,CAAA,IAAA,CAAK,QAAM,EAAG,CAAA,IAAA,KAAS,OAAO,QAAQ,CAAA,CAAA;AAC1E,MAAM,MAAA,QAAA,GAAW,MAAO,CAAA,QAAA,KAAa,QAAW,GAAA,YAAA,CAAa,KAAM,CAAA,IAAA,CAAK,CAAM,EAAA,KAAA,EAAA,CAAG,IAAS,KAAA,MAAM,CAAI,GAAA,IAAA,CAAA;AACpG,MAAI,IAAA,CAAC,QAAY,IAAA,CAAC,QAAU,EAAA;AAC1B,QAAA,OAAA;AAAA,OACF;AACA,MAAA,IAAI,QAAU,EAAA;AACZ,QAAA,QAAA,CAAS,KAAQ,GAAA,QAAA,CAAA;AAAA,OACnB;AACA,MAAA,IAAI,QAAU,EAAA;AACZ,QAAA,QAAA,CAAS,KAAQ,GAAA,QAAA,CAAA;AAAA,OACnB;AAEA,MAAA,MAAM,QAAS,EAAA,CAAA;AACf,MAAA,sBAAA,CAAuB,MAAM,CAAA,CAAA;AAC7B,MAAA,gBAAA,CAAiB,OAAO,aAAc,EAAA,CAAA;AACtC,MAAA,gBAAA,CAAiB,KAAO,EAAA,cAAA,CAAe,EAAE,aAAA,EAAe,MAAM,CAAA,CAAA;AAAA,KAChE,CAAA;AAKA,IAAM,MAAA,sBAAA,GAAyB,CAAC,MAAiB,KAAA;AAC/C,MAAA,IAAI,MAAM,kBAAoB,EAAA;AAC5B,QAAA,OAAA;AAAA,OACF;AAEA,MAAI,IAAA,YAAA,CAAa,MAAM,IAAK,CAAA,CAAA,EAAA,KAAM,GAAG,MAAU,IAAA,CAAC,EAAG,CAAA,KAAK,CAAG,EAAA;AACzD,QAAA,OAAA;AAAA,OACF;AACA,MAAM,MAAA,YAAA,GAAe,aAAa,KAAM,CAAA,MAAA;AAAA;AAAA,QAEtC,CAAM,EAAA,KAAA,EAAA,CAAG,MAAW,KAAA,IAAA,IAAQ,EAAG,CAAA,IAAA,KAAS,MAAU,IAAA,EAAA,CAAG,IAAS,KAAA,MAAA,KAAY,EAAW,CAAA,WAAW,KAAK,EAAG,CAAA,QAAA,CAAA;AAAA,OAC1G,CAAA;AACA,MAAA,KAAA,MAAW,QAAQ,YAAc,EAAA;AAE/B,QAAA,IAAI,QAAQ,QAAa,KAAA,IAAA,CAAK,IAAQ,IAAA,YAAA,CAAa,WAAW,CAAG,EAAA;AAC/D,UAAA,SAAA;AAAA,SACF;AACA,QAAA,IAAA,CAAK,KAAQ,GAAA,EAAA,CAAA;AAAA,OACf;AAAA,KACF,CAAA;AAIA,IAAM,MAAA,SAAA,GAAYC,QAAgC,CAAA,OAAA,EAAC,WAAW,CAAA,CAAA;AAE9D,IAAM,MAAA,gBAAA,GAAmB,CAAC,IAAe,KAAA;AACvC,MAAA,IAAI,UAAU,KAAO,EAAA;AACnB,QAAA,SAAA,CAAU,MAAM,MAAS,GAAA,CAAA,CAAA;AACzB,QAAA,QAAQ,KAAK,KAAO;AAAA,UAClB,KAAK,WAAA;AACH,YAAU,SAAA,CAAA,KAAA,CAAM,KAAK,EAAE,KAAA,EAAO,KAAK,IAAM,EAAA,KAAA,EAAO,OAAO,CAAA,CAAA;AACvD,YAAA,MAAA;AAAA,UACF,KAAK,YAAA;AACH,YAAU,SAAA,CAAA,KAAA,CAAM,KAAK,EAAE,KAAA,EAAO,KAAK,IAAM,EAAA,KAAA,EAAO,QAAQ,CAAA,CAAA;AACxD,YAAA,MAAA;AAAA,SACJ;AAAA,OACF;AAEA,MAAA,IAAA,CAAK,eAAe,IAAI,CAAA,CAAA;AAAA,KAC1B,CAAA;AACA,IAAA,MAAM,YAAe,GAAA;AAAA,MACnB,gBAAA;AAAA,MACA,kBAAA;AAAA,MACA,oBAAA;AAAA,MACA,oBAAA;AAAA,MACA,oBAAA;AAAA,MACA,eAAA;AAAA,MACA,YAAA;AAAA,MACA,WAAA;AAAA,MACA,aAAA;AAAA,MACA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,cAAA;AAAA,MACA,eAAA;AAAA,KACF,CAAA;AACA,IAAA,MAAM,EAAE,SAAA,EAAc,GAAA,YAAA,CAAa,YAAY,YAAY,CAAA,CAAA;AAC3D,IAAa,QAAA,CAAA;AAAA,MACX,YAAA;AAAA,MACA,GAAG,SAAA;AAAA,KACJ,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -25,6 +25,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
25
25
|
submitSettings: (options?: {
|
|
26
26
|
hiddenMessage?: boolean | undefined;
|
|
27
27
|
} | undefined) => Promise<void>;
|
|
28
|
+
syncPropsList: () => void;
|
|
28
29
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
29
30
|
"update:isShowDrawer": (isShowDrawer: boolean) => void;
|
|
30
31
|
"update:colPropsList": (colPropsList: TableColumnProProps[]) => void;
|
|
@@ -37,7 +37,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
37
37
|
const colPropsList = useModel(__props, "colPropsList");
|
|
38
38
|
const customSettingsStore = useCustomSettingsStore();
|
|
39
39
|
const isInited = ref(false);
|
|
40
|
-
const { cloned: clonedColPropsList } = useCloned(colPropsList);
|
|
40
|
+
const { cloned: clonedColPropsList, sync: syncPropsList } = useCloned(colPropsList);
|
|
41
41
|
const defaultPropsList = computed(() => cloneDeep(props.colDefaultPropsList));
|
|
42
42
|
watch(isShowDrawer, (newValue) => {
|
|
43
43
|
if (newValue) {
|
|
@@ -136,7 +136,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
136
136
|
});
|
|
137
137
|
__expose({
|
|
138
138
|
isInited,
|
|
139
|
-
submitSettings
|
|
139
|
+
submitSettings,
|
|
140
|
+
syncPropsList
|
|
140
141
|
});
|
|
141
142
|
return (_ctx, _cache) => {
|
|
142
143
|
const _component_gm_icon = resolveComponent("gm-icon");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeaderForm.vue2.mjs","sources":["../../../../../../../../packages/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义表头\" direction=\"rtl\" size=\"600px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center gm-py-3\">\r\n <gm-icon><InfoFilled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedColPropsList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" :disabled=\"row.type === 'edit'\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列名\" prop=\"label\">\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n {{ row.type === 'edit' ? '操作' : row.label }}\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列宽\">\r\n <template #default=\"{ row }: { row: TableColumnProProps; $index: number }\">\r\n <gm-input v-model=\"row.width\" class=\"gm-w-[120px]\" placeholder=\"设置宽度\" clearable />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"固定\">\r\n <template #default=\"{ row }: { row: TableColumnProProps; $index: number }\">\r\n <div v-if=\"row.type !== 'edit'\">\r\n <gm-tooltip effect=\"dark\" content=\"固定在左侧\" placement=\"top\">\r\n <gm-icon\r\n class=\"gm-mr-2 gm-cursor-pointer\"\r\n :class=\"row.fixed === '' || row.fixed === true || row.fixed === 'left' ? 'gm-text-blue-500' : ''\"\r\n size=\"20\"\r\n @click=\"toggleFixedLeft(row)\"\r\n >\r\n <IceCreamRound />\r\n </gm-icon>\r\n </gm-tooltip>\r\n <gm-tooltip effect=\"dark\" content=\"固定在右侧\" placement=\"top\">\r\n <gm-icon\r\n class=\"-gm-scale-x-100 gm-cursor-pointer\"\r\n :class=\"row.fixed === 'right' ? 'gm-text-blue-500' : ''\"\r\n size=\"20\"\r\n @click=\"toggleFixedRight(row)\"\r\n >\r\n <IceCreamRound />\r\n </gm-icon>\r\n </gm-tooltip>\r\n </div>\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"submitSettings()\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { GmMessage } from '@giime/components/src/plugins/message';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { isNil } from '@giime/utils/src/is';\r\nimport { IceCreamRound, InfoFilled } from '@element-plus/icons-vue';\r\nimport { tableHeaderFormProps } from './tableHeaderForm';\r\nimport type { CheckboxValueType } from 'element-plus';\r\nimport type { TableColumnProProps } from '../tableColumnPro/tableColumnPro';\r\n\r\ndefineOptions({\r\n name: 'GmTableHeaderForm',\r\n});\r\n\r\nconst props = defineProps(tableHeaderFormProps);\r\nconst emit = defineEmits([\"updateColumns\"]);\r\n/**抽屉显示 */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n\r\n/**自定义按钮 props列表 */\r\nconst colPropsList = defineModel<TableColumnProProps[]>('colPropsList', {\r\n required: true,\r\n});\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedColPropsList } = useCloned(colPropsList);\r\nconst defaultPropsList = computed(() => cloneDeep(props.colDefaultPropsList));\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedColPropsList.value = cloneDeep(colPropsList.value);\r\n }\r\n});\r\nconst customSettingsValue = computed<TableColumnProProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\n// 更新选中数据\r\nconst updateColumns = () => {\r\n colPropsList.value = clonedColPropsList.value;\r\n};\r\n// 初始化数据\r\nconst initColumns = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedColPropsList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.width = findItem.width;\r\n if (!isNil(findItem.fixed)) {\r\n it.fixed = findItem.fixed;\r\n }\r\n // it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateColumns();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedColPropsList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedColPropsList.value.filter(it => it.type !== 'edit').every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedColPropsList.value.filter(it => it.type !== 'edit').some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedColPropsList.value.forEach(v => {\r\n if (v.type !== 'edit') {\r\n v.isShow = Boolean(val);\r\n }\r\n });\r\n};\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst submitSettings = async (options?: { hiddenMessage?: boolean }) => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedColPropsList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n // isShowDrawer.value = false;\r\n updateColumns();\r\n if (!options?.hiddenMessage) {\r\n GmMessage.success('保存成功');\r\n }\r\n emit('updateColumns');\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n GmMessage.success('同步成功');\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n// 重置\r\nconst onReset = () => {\r\n clonedColPropsList.value = cloneDeep(props.colDefaultPropsList);\r\n};\r\n// 点击固定到左侧\r\nconst toggleFixedLeft = (row: TableColumnProProps) => {\r\n if (row.fixed === 'left' || row.fixed === true || row.fixed === '') {\r\n row.fixed = false;\r\n } else {\r\n row.fixed = 'left';\r\n }\r\n};\r\n// 点击固定到右侧\r\nconst toggleFixedRight = (row: TableColumnProProps) => {\r\n if (row.fixed === 'right') {\r\n row.fixed = false;\r\n } else {\r\n row.fixed = 'right';\r\n }\r\n};\r\nonMounted(() => {\r\n initColumns();\r\n});\r\ndefineExpose({\r\n isInited,\r\n submitSettings,\r\n});\r\n</script>\r\n"],"names":["_useModel"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TableHeaderForm.vue2.mjs","sources":["../../../../../../../../packages/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义表头\" direction=\"rtl\" size=\"600px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center gm-py-3\">\r\n <gm-icon><InfoFilled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedColPropsList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" :disabled=\"row.type === 'edit'\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列名\" prop=\"label\">\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n {{ row.type === 'edit' ? '操作' : row.label }}\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列宽\">\r\n <template #default=\"{ row }: { row: TableColumnProProps; $index: number }\">\r\n <gm-input v-model=\"row.width\" class=\"gm-w-[120px]\" placeholder=\"设置宽度\" clearable />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"固定\">\r\n <template #default=\"{ row }: { row: TableColumnProProps; $index: number }\">\r\n <div v-if=\"row.type !== 'edit'\">\r\n <gm-tooltip effect=\"dark\" content=\"固定在左侧\" placement=\"top\">\r\n <gm-icon\r\n class=\"gm-mr-2 gm-cursor-pointer\"\r\n :class=\"row.fixed === '' || row.fixed === true || row.fixed === 'left' ? 'gm-text-blue-500' : ''\"\r\n size=\"20\"\r\n @click=\"toggleFixedLeft(row)\"\r\n >\r\n <IceCreamRound />\r\n </gm-icon>\r\n </gm-tooltip>\r\n <gm-tooltip effect=\"dark\" content=\"固定在右侧\" placement=\"top\">\r\n <gm-icon\r\n class=\"-gm-scale-x-100 gm-cursor-pointer\"\r\n :class=\"row.fixed === 'right' ? 'gm-text-blue-500' : ''\"\r\n size=\"20\"\r\n @click=\"toggleFixedRight(row)\"\r\n >\r\n <IceCreamRound />\r\n </gm-icon>\r\n </gm-tooltip>\r\n </div>\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"submitSettings()\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { GmMessage } from '@giime/components/src/plugins/message';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { isNil } from '@giime/utils/src/is';\r\nimport { IceCreamRound, InfoFilled } from '@element-plus/icons-vue';\r\nimport { tableHeaderFormProps } from './tableHeaderForm';\r\nimport type { CheckboxValueType } from 'element-plus';\r\nimport type { TableColumnProProps } from '../tableColumnPro/tableColumnPro';\r\n\r\ndefineOptions({\r\n name: 'GmTableHeaderForm',\r\n});\r\n\r\nconst props = defineProps(tableHeaderFormProps);\r\nconst emit = defineEmits([\"updateColumns\"]);\r\n/**抽屉显示 */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n\r\n/**自定义按钮 props列表 */\r\nconst colPropsList = defineModel<TableColumnProProps[]>('colPropsList', {\r\n required: true,\r\n});\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedColPropsList, sync: syncPropsList } = useCloned(colPropsList);\r\nconst defaultPropsList = computed(() => cloneDeep(props.colDefaultPropsList));\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedColPropsList.value = cloneDeep(colPropsList.value);\r\n }\r\n});\r\nconst customSettingsValue = computed<TableColumnProProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\n// 更新选中数据\r\nconst updateColumns = () => {\r\n colPropsList.value = clonedColPropsList.value;\r\n};\r\n// 初始化数据\r\nconst initColumns = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedColPropsList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.width = findItem.width;\r\n if (!isNil(findItem.fixed)) {\r\n it.fixed = findItem.fixed;\r\n }\r\n // it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateColumns();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedColPropsList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedColPropsList.value.filter(it => it.type !== 'edit').every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedColPropsList.value.filter(it => it.type !== 'edit').some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedColPropsList.value.forEach(v => {\r\n if (v.type !== 'edit') {\r\n v.isShow = Boolean(val);\r\n }\r\n });\r\n};\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst submitSettings = async (options?: { hiddenMessage?: boolean }) => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedColPropsList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n // isShowDrawer.value = false;\r\n updateColumns();\r\n if (!options?.hiddenMessage) {\r\n GmMessage.success('保存成功');\r\n }\r\n emit('updateColumns');\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n GmMessage.success('同步成功');\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n// 重置\r\nconst onReset = () => {\r\n clonedColPropsList.value = cloneDeep(props.colDefaultPropsList);\r\n};\r\n// 点击固定到左侧\r\nconst toggleFixedLeft = (row: TableColumnProProps) => {\r\n if (row.fixed === 'left' || row.fixed === true || row.fixed === '') {\r\n row.fixed = false;\r\n } else {\r\n row.fixed = 'left';\r\n }\r\n};\r\n// 点击固定到右侧\r\nconst toggleFixedRight = (row: TableColumnProProps) => {\r\n if (row.fixed === 'right') {\r\n row.fixed = false;\r\n } else {\r\n row.fixed = 'right';\r\n }\r\n};\r\nonMounted(() => {\r\n initColumns();\r\n});\r\ndefineExpose({\r\n isInited,\r\n submitSettings,\r\n syncPropsList,\r\n});\r\n</script>\r\n"],"names":["_useModel"],"mappings":"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"}
|
|
@@ -25,6 +25,7 @@ export declare const GmTableHeaderForm: import("../../../../../utils").SFCWithIn
|
|
|
25
25
|
submitSettings: (options?: {
|
|
26
26
|
hiddenMessage?: boolean | undefined;
|
|
27
27
|
} | undefined) => Promise<void>;
|
|
28
|
+
syncPropsList: () => void;
|
|
28
29
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
29
30
|
"update:isShowDrawer": (isShowDrawer: boolean) => void;
|
|
30
31
|
"update:colPropsList": (colPropsList: import("../index.js").TableColumnProProps[]) => void;
|
package/es/giime/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "0.3.
|
|
1
|
+
export declare const version = "0.3.13";
|
package/es/giime/version.mjs
CHANGED
package/es/giime/version.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.3.
|
|
1
|
+
{"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.3.13';\n"],"names":[],"mappings":"AAAO,MAAM,OAAU,GAAA;;;;"}
|
package/es/index.css
CHANGED
|
@@ -755,17 +755,33 @@ video {
|
|
|
755
755
|
margin: 0;
|
|
756
756
|
}
|
|
757
757
|
|
|
758
|
-
.gm-flex-center[data-v-6829dac1] {
|
|
759
|
-
align-items: center;
|
|
760
|
-
}
|
|
761
|
-
|
|
762
|
-
.gm-flex-justify-between[data-v-6829dac1] {
|
|
763
|
-
justify-content: space-between;
|
|
764
|
-
}
|
|
765
758
|
[data-v-ec3af0bb] .gmSearchForm .el-form-item {
|
|
766
759
|
margin-right: 0;
|
|
767
760
|
margin-bottom: 4px;
|
|
768
761
|
}
|
|
762
|
+
[data-v-72a53f6c] .gmTableNoBorder .el-table__body .el-table__cell {
|
|
763
|
+
border-right: none;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
[data-v-72a53f6c] .gmTableNoBorder .el-table__inner-wrapper:before {
|
|
767
|
+
height: 0;
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
[data-v-72a53f6c] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
|
|
771
|
+
height: 0;
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
[data-v-72a53f6c] .gmTableNoBorder.el-table--border:after {
|
|
775
|
+
height: 0;
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
[data-v-72a53f6c] .gmTableNoBorder.el-table--border:before {
|
|
779
|
+
height: 0;
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
[data-v-72a53f6c] .gmTableNoBorder .el-table__border-left-patch {
|
|
783
|
+
height: 0;
|
|
784
|
+
}
|
|
769
785
|
.gm-number-interval-single[data-v-47a13fd0] {
|
|
770
786
|
border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
|
|
771
787
|
box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
|
|
@@ -784,28 +800,12 @@ video {
|
|
|
784
800
|
.gm-number-interval-single[data-v-47a13fd0]:hover .gm-number-interval-close[data-v-47a13fd0] {
|
|
785
801
|
display: flex;
|
|
786
802
|
}
|
|
787
|
-
[data-v-
|
|
788
|
-
|
|
789
|
-
}
|
|
790
|
-
|
|
791
|
-
[data-v-da681c8c] .gmTableNoBorder .el-table__inner-wrapper:before {
|
|
792
|
-
height: 0;
|
|
793
|
-
}
|
|
794
|
-
|
|
795
|
-
[data-v-da681c8c] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
|
|
796
|
-
height: 0;
|
|
797
|
-
}
|
|
798
|
-
|
|
799
|
-
[data-v-da681c8c] .gmTableNoBorder.el-table--border:after {
|
|
800
|
-
height: 0;
|
|
801
|
-
}
|
|
802
|
-
|
|
803
|
-
[data-v-da681c8c] .gmTableNoBorder.el-table--border:before {
|
|
804
|
-
height: 0;
|
|
803
|
+
.gm-flex-center[data-v-6829dac1] {
|
|
804
|
+
align-items: center;
|
|
805
805
|
}
|
|
806
806
|
|
|
807
|
-
[data-v-
|
|
808
|
-
|
|
807
|
+
.gm-flex-justify-between[data-v-6829dac1] {
|
|
808
|
+
justify-content: space-between;
|
|
809
809
|
}
|
|
810
810
|
|
|
811
811
|
.pagination-container[data-v-19230954] {
|
|
@@ -6,7 +6,7 @@ var TablePro_vue_vue_type_script_setup_true_lang = require('./TablePro.vue2.js')
|
|
|
6
6
|
require('./TablePro.vue3.js');
|
|
7
7
|
var _pluginVue_exportHelper = require('../../../../_virtual/_plugin-vue_export-helper.js');
|
|
8
8
|
|
|
9
|
-
var TablePro = /* @__PURE__ */ _pluginVue_exportHelper.default(TablePro_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-
|
|
9
|
+
var TablePro = /* @__PURE__ */ _pluginVue_exportHelper.default(TablePro_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-72a53f6c"], ["__file", "TablePro.vue"]]);
|
|
10
10
|
|
|
11
11
|
exports.default = TablePro;
|
|
12
12
|
//# sourceMappingURL=TablePro.vue.js.map
|
|
@@ -15,7 +15,7 @@ var tablePro = require('./tablePro.js');
|
|
|
15
15
|
var tableHelper = require('./tableHelper.js');
|
|
16
16
|
var tableColumnPro = require('./tableColumnPro/tableColumnPro.js');
|
|
17
17
|
|
|
18
|
-
const _withScopeId = (n) => (vue.pushScopeId("data-v-
|
|
18
|
+
const _withScopeId = (n) => (vue.pushScopeId("data-v-72a53f6c"), n = n(), vue.popScopeId(), n);
|
|
19
19
|
const _hoisted_1 = { class: "gm-text-center" };
|
|
20
20
|
const _hoisted_2 = {
|
|
21
21
|
key: 0,
|
|
@@ -126,10 +126,11 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
126
126
|
editItem.width = newWidth;
|
|
127
127
|
}
|
|
128
128
|
await vue.nextTick();
|
|
129
|
+
resetWidthOnHeaderDrag(column);
|
|
130
|
+
gmTableHeaderRef.value?.syncPropsList();
|
|
129
131
|
gmTableHeaderRef.value?.submitSettings({ hiddenMessage: true });
|
|
130
|
-
return resetWidthOnHeaderDrag();
|
|
131
132
|
};
|
|
132
|
-
const resetWidthOnHeaderDrag = () => {
|
|
133
|
+
const resetWidthOnHeaderDrag = (column) => {
|
|
133
134
|
if (props.disabledResetWidth) {
|
|
134
135
|
return;
|
|
135
136
|
}
|
|
@@ -141,6 +142,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
141
142
|
(it) => it.isShow === true && it.type !== "edit" && it.prop !== "edit" && (it["min-width"] || it.minWidth)
|
|
142
143
|
);
|
|
143
144
|
for (const item of minWidthCols) {
|
|
145
|
+
if (column?.property === item.prop && minWidthCols.length !== 1) {
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
144
148
|
item.width = "";
|
|
145
149
|
}
|
|
146
150
|
};
|
|
@@ -302,15 +306,15 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
302
306
|
colDefaultPropsList: colDefaultPropsList.value,
|
|
303
307
|
keyWord: props.page,
|
|
304
308
|
type: "HeaderList",
|
|
305
|
-
onUpdateColumns: resetWidthOnHeaderDrag
|
|
309
|
+
onUpdateColumns: _cache[5] || (_cache[5] = ($event) => resetWidthOnHeaderDrag())
|
|
306
310
|
}, null, 8, ["isShowDrawer", "colPropsList", "colDefaultPropsList", "keyWord"]),
|
|
307
311
|
vue.createVNode(_component_gm_operate_button_form, {
|
|
308
312
|
ref_key: "gmCustomOperationsRef",
|
|
309
313
|
ref: gmCustomOperationsRef,
|
|
310
314
|
isShowDrawer: drawerOperateVisible.value,
|
|
311
|
-
"onUpdate:isShowDrawer": _cache[
|
|
315
|
+
"onUpdate:isShowDrawer": _cache[6] || (_cache[6] = ($event) => drawerOperateVisible.value = $event),
|
|
312
316
|
customBtnPropsList: customBtnPropsList.value,
|
|
313
|
-
"onUpdate:customBtnPropsList": _cache[
|
|
317
|
+
"onUpdate:customBtnPropsList": _cache[7] || (_cache[7] = ($event) => customBtnPropsList.value = $event),
|
|
314
318
|
customDefaultPropsList: customDefaultPropsList.value,
|
|
315
319
|
keyWord: props.page,
|
|
316
320
|
type: "OperateList"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TablePro.vue2.js","sources":["../../../../../../../packages/components/src/composite/tablePro/TablePro.vue"],"sourcesContent":["<template>\r\n <div ref=\"gmTableDivRef\">\r\n <gm-table\r\n v-if=\"gmTableHeaderRef?.isInited\"\r\n ref=\"GmTbaleRef\"\r\n v-bind=\"props\"\r\n :height=\"autoHeight ? tableMaxHeight : height\"\r\n border\r\n class=\"gmTablePro\"\r\n :class=\"[props.border ? '' : 'gmTableNoBorder']\"\r\n v-on=\"elEvents\"\r\n @selection-change=\"(value: TableColumnProProps[]) => $emit('selection-change', value)\"\r\n @sort-change=\"handleSortChange\"\r\n @header-dragend=\"headerDragend\"\r\n >\r\n <!-- <template #empty>\r\n <gm-empty image=\"https://thirdorder.giikin.com/third/20240601/3c5850781351121f81b9e21ec7e75a204898949.png\" />\r\n </template> -->\r\n <template v-if=\"slots.append\" #append>\r\n <slot name=\"append\" />\r\n </template>\r\n <template v-if=\"slots.empty\" #empty>\r\n <slot name=\"empty\" />\r\n </template>\r\n <template v-if=\"props.selection\">\r\n <gm-table-column :key=\"999999\" type=\"selection\" width=\"55\" />\r\n </template>\r\n <TableColumnVNodeRenderer :vnode=\"tableColumnVnode\" :propsList=\"colPropsList\" />\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 <!-- <div\r\n v-if=\"\r\n tableOperateVnode &&\r\n tableOperateVnode.children &&\r\n gmCustomOperationsRef &&\r\n gmCustomOperationsRef.isInited &&\r\n slotValue &&\r\n slotValue.row &&\r\n tableOperateVnode.children?.default(slotValue) &&\r\n customBtnPropsList\r\n \"\r\n >\r\n <TableProEditSlot\r\n v-model:customBtnPropsList=\"customBtnPropsList\"\r\n v-model:customDefaultPropsList=\"customDefaultPropsList\"\r\n :tableOperateVnode=\"tableOperateVnode\"\r\n :isInited=\"gmCustomOperationsRef?.isInited\"\r\n :slotValue=\"slotValue\"\r\n />\r\n </div> -->\r\n <div\r\n v-if=\"\r\n tableOperateVnode &&\r\n tableOperateVnode.children &&\r\n gmCustomOperationsRef &&\r\n gmCustomOperationsRef.isInited &&\r\n slotValue &&\r\n slotValue.row &&\r\n tableOperateVnode.children?.default(slotValue) &&\r\n customBtnPropsList\r\n \"\r\n class=\"gm-flex gm-flex-wrap gm-justify-center\"\r\n >\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 @updateColumns=\"resetWidthOnHeaderDrag\"\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, inject, nextTick, ref } from 'vue';\r\nimport { hasOwn } from '@giime/utils/src/objects';\r\nimport { getGmExports } from '@giime/utils/src/elementPlus/exports';\r\nimport { getGmEvent } from '@giime/utils/src/elementPlus/event';\r\nimport { TableCtxKey } from '@giime/constants/table';\r\nimport { useElementBounding, useWindowSize } from '@vueuse/core';\r\nimport { operateButtonProps } from '../operateButton/operateButton';\r\n// import TableProEditSlot from './TableProEditSlot.vue';\r\n// import { cloneDeep } from 'lodash-es';\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 { TableProSortValue } from './tablePro';\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 tableCtx = inject(TableCtxKey);\r\nconst props = defineProps(tableProProps);\r\n\r\nconst gmTableDivRef = ref<HTMLDivElement>();\r\n// 用于计算table高度\r\nconst { top: divTop } = useElementBounding(gmTableDivRef);\r\nconst { height: windowHeight } = useWindowSize();\r\nconst tableMaxHeight = computed(() => Math.floor(windowHeight.value - divTop.value - 60 - props.heightOffset)); // 高度 - 顶部距离 - 分页器116 - 用户自定义需要减去的高度\r\nconst GmTbaleRef = ref<TableInstance>();\r\nif (tableCtx && tableCtx.tableId === props.page) {\r\n tableCtx.tableRef = GmTbaleRef;\r\n}\r\nconst gmCustomOperationsRef = ref<OperateButtonFormInstance>();\r\nconst gmTableHeaderRef = ref<TableHeaderFormInstance>();\r\n\r\nconst emit = defineEmits(tableProEmits);\r\n// 需要手动重新实现的事件\r\nconst notResendEvents = ['sort-change', 'header-dragend', 'selection-change'];\r\nconst resendEvent = { ...tableProEmits };\r\nnotResendEvents.forEach(it => Reflect.deleteProperty(resendEvent, it));\r\n// 重发el的事件\r\nconst elEvents = getGmEvent(resendEvent, emit);\r\nconst slots = defineSlots<{\r\n default(data?: any): any[];\r\n append?(data?: any): any[];\r\n empty?(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?.({ row: {} });\r\n if (Array.isArray(defaultVnodes) && defaultVnodes.some(it => it?.children === 'v-if')) {\r\n console.error(`警告:为确保表格操作按钮能正常渲染,请把表格${props.page}操作按钮中使用的\"v-if\"替换为\"v-see\"`);\r\n }\r\n const children = getVnodesByGmName(defaultVnodes, 'GmOperateButton');\r\n const btnProps: OperateButtonProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\r\n // console.log(btnProps);\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 // console.log(btnProps)\r\n return btnProps;\r\n});\r\n// customDefaultPropsList2();\r\n// const customDefaultPropsList = ref<OperateButtonProps[]>([]);\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({ hiddenMessage: true });\r\n return resetWidthOnHeaderDrag();\r\n};\r\n/**\r\n * 当表头拖动后,重新计算补充列宽度\r\n * 当全部列都设置了宽度,把设置过minWidth的列设置为补充列,补充表格剩余宽度\r\n */\r\nconst resetWidthOnHeaderDrag = () => {\r\n if (props.disabledResetWidth) {\r\n return;\r\n }\r\n // 当全部列都设置了宽度 才执行后续步骤\r\n if (colPropsList.value.some(it => it.isShow && !it.width)) {\r\n return;\r\n }\r\n const minWidthCols = colPropsList.value.filter(\r\n // 是在展示中的列,并且不是操作列,并且设置了最小宽度\r\n it => it.isShow === true && it.type !== 'edit' && it.prop !== 'edit' && ((it as any)['min-width'] || it.minWidth),\r\n );\r\n for (const item of minWidthCols) {\r\n item.width = '';\r\n }\r\n};\r\n/**\r\n * 搜索模块\r\n */\r\nconst sortValue = defineModel<TableProSortValue[]>('sortValue');\r\n\r\nconst handleSortChange = (sort: Sort) => {\r\n if (sortValue.value) {\r\n sortValue.value.length = 0;\r\n switch (sort.order) {\r\n case 'ascending':\r\n sortValue.value.push({ field: sort.prop, order: 'asc' });\r\n break;\r\n case 'descending':\r\n sortValue.value.push({ field: sort.prop, order: 'desc' });\r\n break;\r\n }\r\n }\r\n\r\n emit('sort-change', sort);\r\n};\r\nconst exposeEvents = [\r\n 'clearSelection',\r\n 'getSelectionRows',\r\n 'toggleRowSelection',\r\n 'toggleAllSelection',\r\n 'toggleRowExpansion',\r\n 'setCurrentRow',\r\n 'setChecked',\r\n 'clearSort',\r\n 'clearFilter',\r\n 'doLayout',\r\n 'sort',\r\n 'scrollTo',\r\n 'setScrollTop',\r\n 'setScrollLeft',\r\n] as const;\r\nconst { exposeFns } = getGmExports(GmTbaleRef, exposeEvents);\r\ndefineExpose({\r\n colPropsList,\r\n ...exposeFns,\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":["inject","TableCtxKey","ref","useElementBounding","useWindowSize","computed","tableProEmits","getGmEvent","_useSlots","getVnodesByGmName","TableColumnProName","tableColumnProProps","hasOwn","operateButtonProps","nextTick","_useModel","getGmExports"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TablePro.vue2.js","sources":["../../../../../../../packages/components/src/composite/tablePro/TablePro.vue"],"sourcesContent":["<template>\r\n <div ref=\"gmTableDivRef\">\r\n <gm-table\r\n v-if=\"gmTableHeaderRef?.isInited\"\r\n ref=\"GmTbaleRef\"\r\n v-bind=\"props\"\r\n :height=\"autoHeight ? tableMaxHeight : height\"\r\n border\r\n class=\"gmTablePro\"\r\n :class=\"[props.border ? '' : 'gmTableNoBorder']\"\r\n v-on=\"elEvents\"\r\n @selection-change=\"(value: TableColumnProProps[]) => $emit('selection-change', value)\"\r\n @sort-change=\"handleSortChange\"\r\n @header-dragend=\"headerDragend\"\r\n >\r\n <!-- <template #empty>\r\n <gm-empty image=\"https://thirdorder.giikin.com/third/20240601/3c5850781351121f81b9e21ec7e75a204898949.png\" />\r\n </template> -->\r\n <template v-if=\"slots.append\" #append>\r\n <slot name=\"append\" />\r\n </template>\r\n <template v-if=\"slots.empty\" #empty>\r\n <slot name=\"empty\" />\r\n </template>\r\n <template v-if=\"props.selection\">\r\n <gm-table-column :key=\"999999\" type=\"selection\" width=\"55\" />\r\n </template>\r\n <TableColumnVNodeRenderer :vnode=\"tableColumnVnode\" :propsList=\"colPropsList\" />\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 <!-- <div\r\n v-if=\"\r\n tableOperateVnode &&\r\n tableOperateVnode.children &&\r\n gmCustomOperationsRef &&\r\n gmCustomOperationsRef.isInited &&\r\n slotValue &&\r\n slotValue.row &&\r\n tableOperateVnode.children?.default(slotValue) &&\r\n customBtnPropsList\r\n \"\r\n >\r\n <TableProEditSlot\r\n v-model:customBtnPropsList=\"customBtnPropsList\"\r\n v-model:customDefaultPropsList=\"customDefaultPropsList\"\r\n :tableOperateVnode=\"tableOperateVnode\"\r\n :isInited=\"gmCustomOperationsRef?.isInited\"\r\n :slotValue=\"slotValue\"\r\n />\r\n </div> -->\r\n <div\r\n v-if=\"\r\n tableOperateVnode &&\r\n tableOperateVnode.children &&\r\n gmCustomOperationsRef &&\r\n gmCustomOperationsRef.isInited &&\r\n slotValue &&\r\n slotValue.row &&\r\n tableOperateVnode.children?.default(slotValue) &&\r\n customBtnPropsList\r\n \"\r\n class=\"gm-flex gm-flex-wrap gm-justify-center\"\r\n >\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 @updateColumns=\"resetWidthOnHeaderDrag()\"\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, inject, nextTick, ref } from 'vue';\r\nimport { hasOwn } from '@giime/utils/src/objects';\r\nimport { getGmExports } from '@giime/utils/src/elementPlus/exports';\r\nimport { getGmEvent } from '@giime/utils/src/elementPlus/event';\r\nimport { TableCtxKey } from '@giime/constants/table';\r\nimport { useElementBounding, useWindowSize } from '@vueuse/core';\r\nimport { operateButtonProps } from '../operateButton/operateButton';\r\n// import TableProEditSlot from './TableProEditSlot.vue';\r\n// import { cloneDeep } from 'lodash-es';\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 { TableProSortValue } from './tablePro';\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 tableCtx = inject(TableCtxKey);\r\nconst props = defineProps(tableProProps);\r\n\r\nconst gmTableDivRef = ref<HTMLDivElement>();\r\n// 用于计算table高度\r\nconst { top: divTop } = useElementBounding(gmTableDivRef);\r\nconst { height: windowHeight } = useWindowSize();\r\nconst tableMaxHeight = computed(() => Math.floor(windowHeight.value - divTop.value - 60 - props.heightOffset)); // 高度 - 顶部距离 - 分页器116 - 用户自定义需要减去的高度\r\nconst GmTbaleRef = ref<TableInstance>();\r\nif (tableCtx && tableCtx.tableId === props.page) {\r\n tableCtx.tableRef = GmTbaleRef;\r\n}\r\nconst gmCustomOperationsRef = ref<OperateButtonFormInstance>();\r\nconst gmTableHeaderRef = ref<TableHeaderFormInstance>();\r\n\r\nconst emit = defineEmits(tableProEmits);\r\n// 需要手动重新实现的事件\r\nconst notResendEvents = ['sort-change', 'header-dragend', 'selection-change'];\r\nconst resendEvent = { ...tableProEmits };\r\nnotResendEvents.forEach(it => Reflect.deleteProperty(resendEvent, it));\r\n// 重发el的事件\r\nconst elEvents = getGmEvent(resendEvent, emit);\r\nconst slots = defineSlots<{\r\n default(data?: any): any[];\r\n append?(data?: any): any[];\r\n empty?(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?.({ row: {} });\r\n if (Array.isArray(defaultVnodes) && defaultVnodes.some(it => it?.children === 'v-if')) {\r\n console.error(`警告:为确保表格操作按钮能正常渲染,请把表格${props.page}操作按钮中使用的\"v-if\"替换为\"v-see\"`);\r\n }\r\n const children = getVnodesByGmName(defaultVnodes, 'GmOperateButton');\r\n const btnProps: OperateButtonProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\r\n // console.log(btnProps);\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 // console.log(btnProps)\r\n return btnProps;\r\n});\r\n// customDefaultPropsList2();\r\n// const customDefaultPropsList = ref<OperateButtonProps[]>([]);\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 resetWidthOnHeaderDrag(column);\r\n gmTableHeaderRef.value?.syncPropsList();\r\n gmTableHeaderRef.value?.submitSettings({ hiddenMessage: true });\r\n};\r\n/**\r\n * 当表头拖动后,重新计算补充列宽度\r\n * 当全部列都设置了宽度,把设置过minWidth的列设置为补充列,补充表格剩余宽度\r\n */\r\nconst resetWidthOnHeaderDrag = (column?: any) => {\r\n if (props.disabledResetWidth) {\r\n return;\r\n }\r\n // 当全部列都设置了宽度 才执行后续步骤\r\n if (colPropsList.value.some(it => it.isShow && !it.width)) {\r\n return;\r\n }\r\n const minWidthCols = colPropsList.value.filter(\r\n // 是在展示中的列,并且不是操作列,并且设置了最小宽度\r\n it => it.isShow === true && it.type !== 'edit' && it.prop !== 'edit' && ((it as any)['min-width'] || it.minWidth),\r\n );\r\n for (const item of minWidthCols) {\r\n // 只有一个minWidth时, 也需要设置width = ''\r\n if (column?.property === item.prop && minWidthCols.length !== 1) {\r\n continue;\r\n }\r\n item.width = '';\r\n }\r\n};\r\n/**\r\n * 搜索模块\r\n */\r\nconst sortValue = defineModel<TableProSortValue[]>('sortValue');\r\n\r\nconst handleSortChange = (sort: Sort) => {\r\n if (sortValue.value) {\r\n sortValue.value.length = 0;\r\n switch (sort.order) {\r\n case 'ascending':\r\n sortValue.value.push({ field: sort.prop, order: 'asc' });\r\n break;\r\n case 'descending':\r\n sortValue.value.push({ field: sort.prop, order: 'desc' });\r\n break;\r\n }\r\n }\r\n\r\n emit('sort-change', sort);\r\n};\r\nconst exposeEvents = [\r\n 'clearSelection',\r\n 'getSelectionRows',\r\n 'toggleRowSelection',\r\n 'toggleAllSelection',\r\n 'toggleRowExpansion',\r\n 'setCurrentRow',\r\n 'setChecked',\r\n 'clearSort',\r\n 'clearFilter',\r\n 'doLayout',\r\n 'sort',\r\n 'scrollTo',\r\n 'setScrollTop',\r\n 'setScrollLeft',\r\n] as const;\r\nconst { exposeFns } = getGmExports(GmTbaleRef, exposeEvents);\r\ndefineExpose({\r\n colPropsList,\r\n ...exposeFns,\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":["inject","TableCtxKey","ref","useElementBounding","useWindowSize","computed","tableProEmits","getGmEvent","_useSlots","getVnodesByGmName","TableColumnProName","tableColumnProProps","hasOwn","operateButtonProps","nextTick","_useModel","getGmExports"],"mappings":"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"}
|
|
@@ -25,6 +25,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
25
25
|
submitSettings: (options?: {
|
|
26
26
|
hiddenMessage?: boolean | undefined;
|
|
27
27
|
} | undefined) => Promise<void>;
|
|
28
|
+
syncPropsList: () => void;
|
|
28
29
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
29
30
|
"update:isShowDrawer": (isShowDrawer: boolean) => void;
|
|
30
31
|
"update:colPropsList": (colPropsList: TableColumnProProps[]) => void;
|
|
@@ -41,7 +41,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
41
41
|
const colPropsList = vue.useModel(__props, "colPropsList");
|
|
42
42
|
const customSettingsStore = index.useCustomSettingsStore();
|
|
43
43
|
const isInited = vue.ref(false);
|
|
44
|
-
const { cloned: clonedColPropsList } = core.useCloned(colPropsList);
|
|
44
|
+
const { cloned: clonedColPropsList, sync: syncPropsList } = core.useCloned(colPropsList);
|
|
45
45
|
const defaultPropsList = vue.computed(() => lodashEs.cloneDeep(props.colDefaultPropsList));
|
|
46
46
|
vue.watch(isShowDrawer, (newValue) => {
|
|
47
47
|
if (newValue) {
|
|
@@ -140,7 +140,8 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
140
140
|
});
|
|
141
141
|
__expose({
|
|
142
142
|
isInited,
|
|
143
|
-
submitSettings
|
|
143
|
+
submitSettings,
|
|
144
|
+
syncPropsList
|
|
144
145
|
});
|
|
145
146
|
return (_ctx, _cache) => {
|
|
146
147
|
const _component_gm_icon = vue.resolveComponent("gm-icon");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeaderForm.vue2.js","sources":["../../../../../../../../packages/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义表头\" direction=\"rtl\" size=\"600px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center gm-py-3\">\r\n <gm-icon><InfoFilled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedColPropsList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" :disabled=\"row.type === 'edit'\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列名\" prop=\"label\">\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n {{ row.type === 'edit' ? '操作' : row.label }}\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列宽\">\r\n <template #default=\"{ row }: { row: TableColumnProProps; $index: number }\">\r\n <gm-input v-model=\"row.width\" class=\"gm-w-[120px]\" placeholder=\"设置宽度\" clearable />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"固定\">\r\n <template #default=\"{ row }: { row: TableColumnProProps; $index: number }\">\r\n <div v-if=\"row.type !== 'edit'\">\r\n <gm-tooltip effect=\"dark\" content=\"固定在左侧\" placement=\"top\">\r\n <gm-icon\r\n class=\"gm-mr-2 gm-cursor-pointer\"\r\n :class=\"row.fixed === '' || row.fixed === true || row.fixed === 'left' ? 'gm-text-blue-500' : ''\"\r\n size=\"20\"\r\n @click=\"toggleFixedLeft(row)\"\r\n >\r\n <IceCreamRound />\r\n </gm-icon>\r\n </gm-tooltip>\r\n <gm-tooltip effect=\"dark\" content=\"固定在右侧\" placement=\"top\">\r\n <gm-icon\r\n class=\"-gm-scale-x-100 gm-cursor-pointer\"\r\n :class=\"row.fixed === 'right' ? 'gm-text-blue-500' : ''\"\r\n size=\"20\"\r\n @click=\"toggleFixedRight(row)\"\r\n >\r\n <IceCreamRound />\r\n </gm-icon>\r\n </gm-tooltip>\r\n </div>\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"submitSettings()\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { GmMessage } from '@giime/components/src/plugins/message';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { isNil } from '@giime/utils/src/is';\r\nimport { IceCreamRound, InfoFilled } from '@element-plus/icons-vue';\r\nimport { tableHeaderFormProps } from './tableHeaderForm';\r\nimport type { CheckboxValueType } from 'element-plus';\r\nimport type { TableColumnProProps } from '../tableColumnPro/tableColumnPro';\r\n\r\ndefineOptions({\r\n name: 'GmTableHeaderForm',\r\n});\r\n\r\nconst props = defineProps(tableHeaderFormProps);\r\nconst emit = defineEmits([\"updateColumns\"]);\r\n/**抽屉显示 */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n\r\n/**自定义按钮 props列表 */\r\nconst colPropsList = defineModel<TableColumnProProps[]>('colPropsList', {\r\n required: true,\r\n});\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedColPropsList } = useCloned(colPropsList);\r\nconst defaultPropsList = computed(() => cloneDeep(props.colDefaultPropsList));\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedColPropsList.value = cloneDeep(colPropsList.value);\r\n }\r\n});\r\nconst customSettingsValue = computed<TableColumnProProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\n// 更新选中数据\r\nconst updateColumns = () => {\r\n colPropsList.value = clonedColPropsList.value;\r\n};\r\n// 初始化数据\r\nconst initColumns = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedColPropsList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.width = findItem.width;\r\n if (!isNil(findItem.fixed)) {\r\n it.fixed = findItem.fixed;\r\n }\r\n // it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateColumns();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedColPropsList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedColPropsList.value.filter(it => it.type !== 'edit').every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedColPropsList.value.filter(it => it.type !== 'edit').some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedColPropsList.value.forEach(v => {\r\n if (v.type !== 'edit') {\r\n v.isShow = Boolean(val);\r\n }\r\n });\r\n};\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst submitSettings = async (options?: { hiddenMessage?: boolean }) => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedColPropsList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n // isShowDrawer.value = false;\r\n updateColumns();\r\n if (!options?.hiddenMessage) {\r\n GmMessage.success('保存成功');\r\n }\r\n emit('updateColumns');\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n GmMessage.success('同步成功');\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n// 重置\r\nconst onReset = () => {\r\n clonedColPropsList.value = cloneDeep(props.colDefaultPropsList);\r\n};\r\n// 点击固定到左侧\r\nconst toggleFixedLeft = (row: TableColumnProProps) => {\r\n if (row.fixed === 'left' || row.fixed === true || row.fixed === '') {\r\n row.fixed = false;\r\n } else {\r\n row.fixed = 'left';\r\n }\r\n};\r\n// 点击固定到右侧\r\nconst toggleFixedRight = (row: TableColumnProProps) => {\r\n if (row.fixed === 'right') {\r\n row.fixed = false;\r\n } else {\r\n row.fixed = 'right';\r\n }\r\n};\r\nonMounted(() => {\r\n initColumns();\r\n});\r\ndefineExpose({\r\n isInited,\r\n submitSettings,\r\n});\r\n</script>\r\n"],"names":["_useModel","useCustomSettingsStore","ref","useCloned","computed","cloneDeep","watch","isNil","GmMessage","onMounted"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TableHeaderForm.vue2.js","sources":["../../../../../../../../packages/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue"],"sourcesContent":["<template>\r\n <gm-drawer v-model=\"isShowDrawer\" title=\"自定义表头\" direction=\"rtl\" size=\"600px\" append-to-body destroy-on-close>\r\n <section\r\n class=\"drawer-alert gm-mb-4 gm-flex gm-items-center gm-justify-between gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-px-4 gm-text-sm gm-text-[#777]\"\r\n >\r\n <div class=\"gm-flex gm-items-center gm-py-3\">\r\n <gm-icon><InfoFilled /></gm-icon>\r\n <p class=\"gm-ml-2\">\r\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\r\n </p>\r\n </div>\r\n </section>\r\n <gm-table :data=\"clonedColPropsList\" :header-cell-style=\"{ background: '#F5F7FA', color: '#333' }\" style=\"width: 100%\">\r\n <gm-table-column align=\"left\" width=\"80\">\r\n <template #header>\r\n <gm-checkbox :model-value=\"checkedAll\" :indeterminate=\"isIndeterminate\" @change=\"handleCheckAllChange\" />\r\n </template>\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n <gm-checkbox v-model=\"row.isShow\" :disabled=\"row.type === 'edit'\" />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列名\" prop=\"label\">\r\n <template #default=\"{ row }: { row: TableColumnProProps }\">\r\n {{ row.type === 'edit' ? '操作' : row.label }}\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"列宽\">\r\n <template #default=\"{ row }: { row: TableColumnProProps; $index: number }\">\r\n <gm-input v-model=\"row.width\" class=\"gm-w-[120px]\" placeholder=\"设置宽度\" clearable />\r\n </template>\r\n </gm-table-column>\r\n <gm-table-column label=\"固定\">\r\n <template #default=\"{ row }: { row: TableColumnProProps; $index: number }\">\r\n <div v-if=\"row.type !== 'edit'\">\r\n <gm-tooltip effect=\"dark\" content=\"固定在左侧\" placement=\"top\">\r\n <gm-icon\r\n class=\"gm-mr-2 gm-cursor-pointer\"\r\n :class=\"row.fixed === '' || row.fixed === true || row.fixed === 'left' ? 'gm-text-blue-500' : ''\"\r\n size=\"20\"\r\n @click=\"toggleFixedLeft(row)\"\r\n >\r\n <IceCreamRound />\r\n </gm-icon>\r\n </gm-tooltip>\r\n <gm-tooltip effect=\"dark\" content=\"固定在右侧\" placement=\"top\">\r\n <gm-icon\r\n class=\"-gm-scale-x-100 gm-cursor-pointer\"\r\n :class=\"row.fixed === 'right' ? 'gm-text-blue-500' : ''\"\r\n size=\"20\"\r\n @click=\"toggleFixedRight(row)\"\r\n >\r\n <IceCreamRound />\r\n </gm-icon>\r\n </gm-tooltip>\r\n </div>\r\n </template>\r\n </gm-table-column>\r\n </gm-table>\r\n <template #footer>\r\n <div class=\"gm-flex gm-justify-between\">\r\n <div>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\r\n </div>\r\n <div>\r\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\r\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"submitSettings()\">保存</gm-button>\r\n </div>\r\n </div>\r\n </template>\r\n </gm-drawer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, watch } from 'vue';\r\nimport { useCloned } from '@vueuse/core';\r\nimport { useCustomSettingsStore } from '@giime/hooks';\r\nimport { GmMessage } from '@giime/components/src/plugins/message';\r\nimport { cloneDeep } from 'lodash-es';\r\nimport { isNil } from '@giime/utils/src/is';\r\nimport { IceCreamRound, InfoFilled } from '@element-plus/icons-vue';\r\nimport { tableHeaderFormProps } from './tableHeaderForm';\r\nimport type { CheckboxValueType } from 'element-plus';\r\nimport type { TableColumnProProps } from '../tableColumnPro/tableColumnPro';\r\n\r\ndefineOptions({\r\n name: 'GmTableHeaderForm',\r\n});\r\n\r\nconst props = defineProps(tableHeaderFormProps);\r\nconst emit = defineEmits([\"updateColumns\"]);\r\n/**抽屉显示 */\r\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\r\n required: true,\r\n});\r\n\r\n/**自定义按钮 props列表 */\r\nconst colPropsList = defineModel<TableColumnProProps[]>('colPropsList', {\r\n required: true,\r\n});\r\nconst customSettingsStore = useCustomSettingsStore();\r\n\r\n/**\r\n * 数据是否初始化完成\r\n */\r\nconst isInited = ref(false);\r\n/**内部克隆一份,当点击保存时 应用修改的内容 */\r\nconst { cloned: clonedColPropsList, sync: syncPropsList } = useCloned(colPropsList);\r\nconst defaultPropsList = computed(() => cloneDeep(props.colDefaultPropsList));\r\n// 重新打开弹窗时, 克隆一份新数据\r\nwatch(isShowDrawer, newValue => {\r\n if (newValue) {\r\n clonedColPropsList.value = cloneDeep(colPropsList.value);\r\n }\r\n});\r\nconst customSettingsValue = computed<TableColumnProProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\r\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\r\n\r\n// 更新选中数据\r\nconst updateColumns = () => {\r\n colPropsList.value = clonedColPropsList.value;\r\n};\r\n// 初始化数据\r\nconst initColumns = async () => {\r\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\r\n clonedColPropsList.value = defaultPropsList.value.map(it => {\r\n const findItem = clonedStore.value.find(v => v.prop === it.prop);\r\n if (findItem) {\r\n it.isShow = findItem.isShow;\r\n it.width = findItem.width;\r\n if (!isNil(findItem.fixed)) {\r\n it.fixed = findItem.fixed;\r\n }\r\n // it.type = findItem.type;\r\n }\r\n return it;\r\n });\r\n\r\n updateColumns();\r\n isInited.value = true;\r\n};\r\n\r\n// 已选中条数\r\nconst checkedNumber = computed(() => {\r\n return clonedColPropsList.value.filter(v => v.isShow).length;\r\n});\r\n// 全选\r\nconst checkedAll = computed(() => clonedColPropsList.value.filter(it => it.type !== 'edit').every(v => v.isShow));\r\n// 半选\r\nconst isIndeterminate = computed(() => !checkedAll.value && clonedColPropsList.value.filter(it => it.type !== 'edit').some(v => v.isShow));\r\n// 切换全选\r\nconst handleCheckAllChange = (val: CheckboxValueType) => {\r\n clonedColPropsList.value.forEach(v => {\r\n if (v.type !== 'edit') {\r\n v.isShow = Boolean(val);\r\n }\r\n });\r\n};\r\nconst submitLoading = ref(false);\r\n// 保存\r\nconst submitSettings = async (options?: { hiddenMessage?: boolean }) => {\r\n try {\r\n submitLoading.value = true;\r\n const { data } = await customSettingsStore.addCustomSettings({\r\n key_word: props.keyWord,\r\n value: JSON.stringify(clonedColPropsList.value),\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n if (data.code !== 0) {\r\n return;\r\n }\r\n // isShowDrawer.value = false;\r\n updateColumns();\r\n if (!options?.hiddenMessage) {\r\n GmMessage.success('保存成功');\r\n }\r\n emit('updateColumns');\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n/**同步远程设置 */\r\nconst onSyncRemote = async () => {\r\n try {\r\n submitLoading.value = true;\r\n await customSettingsStore.syncRemoteSetting({\r\n key_word: props.keyWord,\r\n type: props.type,\r\n });\r\n submitLoading.value = false;\r\n GmMessage.success('同步成功');\r\n } catch (e) {\r\n console.error(e);\r\n submitLoading.value = false;\r\n }\r\n};\r\n// 重置\r\nconst onReset = () => {\r\n clonedColPropsList.value = cloneDeep(props.colDefaultPropsList);\r\n};\r\n// 点击固定到左侧\r\nconst toggleFixedLeft = (row: TableColumnProProps) => {\r\n if (row.fixed === 'left' || row.fixed === true || row.fixed === '') {\r\n row.fixed = false;\r\n } else {\r\n row.fixed = 'left';\r\n }\r\n};\r\n// 点击固定到右侧\r\nconst toggleFixedRight = (row: TableColumnProProps) => {\r\n if (row.fixed === 'right') {\r\n row.fixed = false;\r\n } else {\r\n row.fixed = 'right';\r\n }\r\n};\r\nonMounted(() => {\r\n initColumns();\r\n});\r\ndefineExpose({\r\n isInited,\r\n submitSettings,\r\n syncPropsList,\r\n});\r\n</script>\r\n"],"names":["_useModel","useCustomSettingsStore","ref","useCloned","computed","cloneDeep","watch","isNil","GmMessage","onMounted"],"mappings":"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"}
|
|
@@ -25,6 +25,7 @@ export declare const GmTableHeaderForm: import("../../../../../utils").SFCWithIn
|
|
|
25
25
|
submitSettings: (options?: {
|
|
26
26
|
hiddenMessage?: boolean | undefined;
|
|
27
27
|
} | undefined) => Promise<void>;
|
|
28
|
+
syncPropsList: () => void;
|
|
28
29
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
29
30
|
"update:isShowDrawer": (isShowDrawer: boolean) => void;
|
|
30
31
|
"update:colPropsList": (colPropsList: import("../index.js").TableColumnProProps[]) => void;
|
package/lib/giime/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "0.3.
|
|
1
|
+
export declare const version = "0.3.13";
|
package/lib/giime/version.js
CHANGED
package/lib/giime/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.3.
|
|
1
|
+
{"version":3,"file":"version.js","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.3.13';\n"],"names":[],"mappings":";;AAAO,MAAM,OAAU,GAAA;;;;"}
|
package/lib/index.css
CHANGED
|
@@ -755,17 +755,33 @@ video {
|
|
|
755
755
|
margin: 0;
|
|
756
756
|
}
|
|
757
757
|
|
|
758
|
-
.gm-flex-center[data-v-6829dac1] {
|
|
759
|
-
align-items: center;
|
|
760
|
-
}
|
|
761
|
-
|
|
762
|
-
.gm-flex-justify-between[data-v-6829dac1] {
|
|
763
|
-
justify-content: space-between;
|
|
764
|
-
}
|
|
765
758
|
[data-v-ec3af0bb] .gmSearchForm .el-form-item {
|
|
766
759
|
margin-right: 0;
|
|
767
760
|
margin-bottom: 4px;
|
|
768
761
|
}
|
|
762
|
+
[data-v-72a53f6c] .gmTableNoBorder .el-table__body .el-table__cell {
|
|
763
|
+
border-right: none;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
[data-v-72a53f6c] .gmTableNoBorder .el-table__inner-wrapper:before {
|
|
767
|
+
height: 0;
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
[data-v-72a53f6c] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
|
|
771
|
+
height: 0;
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
[data-v-72a53f6c] .gmTableNoBorder.el-table--border:after {
|
|
775
|
+
height: 0;
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
[data-v-72a53f6c] .gmTableNoBorder.el-table--border:before {
|
|
779
|
+
height: 0;
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
[data-v-72a53f6c] .gmTableNoBorder .el-table__border-left-patch {
|
|
783
|
+
height: 0;
|
|
784
|
+
}
|
|
769
785
|
.gm-number-interval-single[data-v-47a13fd0] {
|
|
770
786
|
border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
|
|
771
787
|
box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
|
|
@@ -784,28 +800,12 @@ video {
|
|
|
784
800
|
.gm-number-interval-single[data-v-47a13fd0]:hover .gm-number-interval-close[data-v-47a13fd0] {
|
|
785
801
|
display: flex;
|
|
786
802
|
}
|
|
787
|
-
[data-v-
|
|
788
|
-
|
|
789
|
-
}
|
|
790
|
-
|
|
791
|
-
[data-v-da681c8c] .gmTableNoBorder .el-table__inner-wrapper:before {
|
|
792
|
-
height: 0;
|
|
793
|
-
}
|
|
794
|
-
|
|
795
|
-
[data-v-da681c8c] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
|
|
796
|
-
height: 0;
|
|
797
|
-
}
|
|
798
|
-
|
|
799
|
-
[data-v-da681c8c] .gmTableNoBorder.el-table--border:after {
|
|
800
|
-
height: 0;
|
|
801
|
-
}
|
|
802
|
-
|
|
803
|
-
[data-v-da681c8c] .gmTableNoBorder.el-table--border:before {
|
|
804
|
-
height: 0;
|
|
803
|
+
.gm-flex-center[data-v-6829dac1] {
|
|
804
|
+
align-items: center;
|
|
805
805
|
}
|
|
806
806
|
|
|
807
|
-
[data-v-
|
|
808
|
-
|
|
807
|
+
.gm-flex-justify-between[data-v-6829dac1] {
|
|
808
|
+
justify-content: space-between;
|
|
809
809
|
}
|
|
810
810
|
|
|
811
811
|
.pagination-container[data-v-19230954] {
|