diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/GridAppendContent.vue b/io.sc.platform.core.frontend/src/platform/components/grid/GridAppendContent.vue
new file mode 100644
index 00000000..88f73bd8
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/grid/GridAppendContent.vue
@@ -0,0 +1,23 @@
+
+
+ 111
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/GridAppendRow.vue b/io.sc.platform.core.frontend/src/platform/components/grid/GridAppendRow.vue
new file mode 100644
index 00000000..6141564f
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/grid/GridAppendRow.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/GridBody.vue b/io.sc.platform.core.frontend/src/platform/components/grid/GridBody.vue
index 3f9238b4..fdc31f8a 100644
--- a/io.sc.platform.core.frontend/src/platform/components/grid/GridBody.vue
+++ b/io.sc.platform.core.frontend/src/platform/components/grid/GridBody.vue
@@ -33,7 +33,7 @@
@drop="draggableComputed ? onDrop($event, scope) : () => {}"
@dragstart="draggableComputed ? onDragStart($event, scope) : () => {}"
>
-
+
+
{
}
};
+const checkLastRow = (row) => {
+ if (props.grid.props.tree && row['expand'] && !Tools.isEmpty(row.children) && row.children.length > 0) {
+ const childrenLastRow = row.children[row.children.length - 1];
+ if (childrenLastRow['expand'] && !Tools.isEmpty(childrenLastRow.children) && childrenLastRow.children.length > 0) {
+ return checkLastRow(childrenLastRow);
+ } else {
+ return childrenLastRow[props.rowKeyName] === props.scope.row[props.rowKeyName];
+ }
+ } else {
+ return row[props.rowKeyName] === props.scope.row[props.rowKeyName];
+ }
+};
+
+const showAppendRowsComputed = computed(() => {
+ if (Array.isArray(props.grid.props.appendRows) && props.grid.props.appendRows.length > 0) {
+ const lastRow = table.rows[table.rows.length - 1];
+ return checkLastRow(lastRow);
+ }
+ return false;
+});
+
const draggableComputed = computed(() => {
if (
props.grid.props.draggable &&
@@ -333,7 +356,7 @@ const onDrop = (e, scope) => {
updateData.push(toRaw(item));
}
});
- if (props.grid.props.draggable === draggableMode.remote && updateData.length > 0) {
+ if (props.grid.props.draggable === draggableMode.server && updateData.length > 0) {
// 访问后端更新排序
updates(updateData, () => {});
}
diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/GridConfig.vue b/io.sc.platform.core.frontend/src/platform/components/grid/GridConfig.vue
index 42297a47..37dcf1cc 100644
--- a/io.sc.platform.core.frontend/src/platform/components/grid/GridConfig.vue
+++ b/io.sc.platform.core.frontend/src/platform/components/grid/GridConfig.vue
@@ -56,7 +56,7 @@
@click="
() => {
table.checkboxSelection = true;
- grid.stickyHeaderColumn(100);
+ grid.refreshStyle(100);
}
"
/>
@@ -69,7 +69,7 @@
@click="
() => {
table.checkboxSelection = false;
- grid.stickyHeaderColumn(100);
+ grid.refreshStyle(100);
}
"
/>
@@ -95,7 +95,7 @@
() => {
table.columns[0].hidden = false;
table.sortNo = true;
- grid.stickyHeaderColumn(100);
+ grid.refreshStyle(100);
}
"
/>
@@ -109,7 +109,7 @@
() => {
table.columns[0].hidden = true;
table.sortNo = false;
- grid.stickyHeaderColumn(100);
+ grid.refreshStyle(100);
}
"
/>
@@ -183,7 +183,7 @@
:options="stickyOptions"
@update:model-value="
() => {
- grid.stickyHeaderColumn(500);
+ grid.refreshStyle(500);
}
"
>
@@ -204,7 +204,7 @@
dense
@update:model-value="
() => {
- grid.stickyHeaderColumn(100);
+ grid.refreshStyle(100);
}
"
/>
diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/GridHeader.vue b/io.sc.platform.core.frontend/src/platform/components/grid/GridHeader.vue
index dd507d12..47518879 100644
--- a/io.sc.platform.core.frontend/src/platform/components/grid/GridHeader.vue
+++ b/io.sc.platform.core.frontend/src/platform/components/grid/GridHeader.vue
@@ -2,14 +2,20 @@
@@ -35,19 +41,21 @@
- {{ $t('tip.noData') }}
+ {{ $t('tip.noData') }}
@@ -63,13 +71,16 @@
- {{ $t('tip.noData') }}
+ {{ $t('tip.noData') }}