|
@@ -40,7 +40,7 @@
|
|
|
<template v-for="(grid, k) in col.grid_list">
|
|
|
<span
|
|
|
v-if="k === 0"
|
|
|
- :key="`start-${i}-${j}-${k}`"
|
|
|
+ :key="`start-${i}-${j}-${grid.id}`"
|
|
|
class="drag-line grid-line drag-row"
|
|
|
:style="{ gridArea: 'grid-top' }"
|
|
|
:data-row="i"
|
|
@@ -50,7 +50,7 @@
|
|
|
></span>
|
|
|
<span
|
|
|
v-if="grid.row > 1 && grid.row !== col.grid_list[k - 1].row"
|
|
|
- :key="`middle-${i}-${j}-${k}`"
|
|
|
+ :key="`middle-${i}-${j}-${grid.id}`"
|
|
|
:style="{ gridArea: `middle-${grid.grid_area}` }"
|
|
|
:data-row="i"
|
|
|
:data-col="j"
|
|
@@ -59,7 +59,7 @@
|
|
|
class="drag-line grid-line"
|
|
|
></span>
|
|
|
<span
|
|
|
- :key="`left-${i}-${j}-${k}`"
|
|
|
+ :key="`left-${i}-${j}-${grid.id}`"
|
|
|
:style="{ gridArea: `left-${grid.grid_area}` }"
|
|
|
:data-row="i"
|
|
|
:data-col="j"
|
|
@@ -84,7 +84,7 @@
|
|
|
@changeData="changeData"
|
|
|
/>
|
|
|
<span
|
|
|
- :key="`right-${i}-${j}-${k}`"
|
|
|
+ :key="`right-${i}-${j}-${grid.id}`"
|
|
|
:style="{ gridArea: `right-${grid.grid_area}` }"
|
|
|
:data-row="i"
|
|
|
:data-col="j"
|
|
@@ -94,7 +94,7 @@
|
|
|
></span>
|
|
|
<span
|
|
|
v-if="k === col.grid_list.length - 1"
|
|
|
- :key="`end-${i}-${j}-${k}`"
|
|
|
+ :key="`end-${i}-${j}-${grid.id}`"
|
|
|
class="drag-line grid-line drag-row"
|
|
|
:style="{ gridArea: `grid-bottom` }"
|
|
|
:data-row="i"
|
|
@@ -557,28 +557,29 @@ export default {
|
|
|
* @param {string} id 组件 id
|
|
|
* @param {number} min_height 最小高度
|
|
|
*/
|
|
|
- handleVerticalMove(col, grid, offsetY, id, min_height) {
|
|
|
+ handleVerticalMove(col, grid, offsetY, id, min_height = 0) {
|
|
|
+ let height = 0;
|
|
|
+ const _h = this.isEdit ? grid?.edit_height : grid.height;
|
|
|
+
|
|
|
// 高度为 auto 时
|
|
|
- if (grid.height === 'auto') {
|
|
|
+ if (_h === 'auto' || _h === undefined) {
|
|
|
const gridHeight = document.querySelector(`.${id}`).offsetHeight;
|
|
|
- let height = gridHeight + offsetY;
|
|
|
- // 当高度小于最小高度时,设置为最小高度
|
|
|
- if (height < min_height) {
|
|
|
- height = min_height;
|
|
|
- }
|
|
|
- grid.height = `${height}px`;
|
|
|
- col.grid_template_rows = `0 ${col.grid_list.map(({ height }) => height).join(' 6px ')} 0`;
|
|
|
- return;
|
|
|
- }
|
|
|
- // 高度为数字时
|
|
|
- const height = Number(grid.height.replace('px', ''));
|
|
|
- let _h = height + offsetY;
|
|
|
- if (_h < min_height) {
|
|
|
- _h = min_height;
|
|
|
+
|
|
|
+ height = gridHeight + offsetY;
|
|
|
+ } else {
|
|
|
+ // 高度为数字时
|
|
|
+ const h = this.isEdit ? grid?.edit_height : grid.height;
|
|
|
+
|
|
|
+ const gridHeight = Number(h?.replace('px', ''));
|
|
|
+ height = gridHeight + offsetY;
|
|
|
}
|
|
|
- if (_h >= 50) {
|
|
|
- grid.height = `${_h}px`;
|
|
|
- col.grid_template_rows = `0 ${col.grid_list.map(({ height }) => height).join(' 6px ')} 0`;
|
|
|
+ // 当高度小于最小高度时,设置为最小高度
|
|
|
+ height = Math.max(height, min_height, 50);
|
|
|
+
|
|
|
+ if (this.isEdit) {
|
|
|
+ grid.edit_height = `${height}px`;
|
|
|
+ } else {
|
|
|
+ grid.height = `${height}px`;
|
|
|
}
|
|
|
},
|
|
|
|
|
@@ -842,7 +843,7 @@ export default {
|
|
|
if (!gridMap.has(item.row)) {
|
|
|
gridMap.set(item.row, []);
|
|
|
}
|
|
|
- gridMap.get(item.row).push(item.height);
|
|
|
+ gridMap.get(item.row).push(item?.edit_height || item.height);
|
|
|
});
|
|
|
gridMap.forEach((value, i) => {
|
|
|
if (i > 1) {
|
|
@@ -1020,6 +1021,7 @@ export default {
|
|
|
grid_area: letter,
|
|
|
width: '100fr',
|
|
|
height: 'auto',
|
|
|
+ edit_height: 'auto',
|
|
|
row: rowNum,
|
|
|
type: this.curType,
|
|
|
});
|
|
@@ -1038,6 +1040,7 @@ export default {
|
|
|
grid_area: letter,
|
|
|
width: '100fr',
|
|
|
height: 'auto',
|
|
|
+ edit_height: 'auto',
|
|
|
row: rowNum,
|
|
|
type: this.curType,
|
|
|
});
|
|
@@ -1084,6 +1087,7 @@ export default {
|
|
|
row: 1,
|
|
|
width: '100fr',
|
|
|
height: 'auto',
|
|
|
+ edit_height: 'auto',
|
|
|
type: this.curType,
|
|
|
},
|
|
|
],
|
|
@@ -1110,6 +1114,7 @@ export default {
|
|
|
grid_area: letter,
|
|
|
width: '100fr',
|
|
|
height: 'auto',
|
|
|
+ edit_height: 'auto',
|
|
|
row: 1,
|
|
|
type: this.curType,
|
|
|
},
|
|
@@ -1192,7 +1197,7 @@ export default {
|
|
|
|
|
|
return {
|
|
|
gridArea: grid.grid_area,
|
|
|
- height: grid.height,
|
|
|
+ height: grid?.edit_height || grid.height,
|
|
|
marginTop,
|
|
|
};
|
|
|
},
|