Browse Source

表格优化提交

main
likunming 1 year ago
parent
commit
cee8d9d41a
  1. 77
      io.sc.platform.core.frontend/src/platform/components/dialog/WDialog.vue
  2. 4
      io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue

77
io.sc.platform.core.frontend/src/platform/components/dialog/WDialog.vue

@ -95,42 +95,49 @@ const hide = () => {
}; };
// //
const getElementViewPosition = (element) => { // const getElementViewPosition = (element) => {
//x // //x
let actualLeft = element.offsetLeft; // let actualLeft = element.offsetLeft;
let xcurrent = element.offsetParent; // let xcurrent = element.offsetParent;
while (xcurrent !== null) { // while (xcurrent !== null) {
actualLeft += xcurrent.offsetLeft + xcurrent.clientLeft; // actualLeft += xcurrent.offsetLeft + xcurrent.clientLeft;
xcurrent = xcurrent.offsetParent; // xcurrent = xcurrent.offsetParent;
} // }
let elementScrollLeft = document.documentElement.scrollLeft; // let elementScrollLeft = document.documentElement.scrollLeft;
if (document.compatMode == 'BackCompat') { // if (document.compatMode == 'BackCompat') {
elementScrollLeft = document.body.scrollLeft; // elementScrollLeft = document.body.scrollLeft;
} // }
const left = actualLeft - elementScrollLeft; // const left = actualLeft - elementScrollLeft;
//y // //y
let actualTop = element.offsetTop; // let actualTop = element.offsetTop;
let ycurrent = element.offsetParent; // let ycurrent = element.offsetParent;
while (ycurrent !== null) { // while (ycurrent !== null) {
actualTop += ycurrent.offsetTop + ycurrent.clientTop; // actualTop += ycurrent.offsetTop + ycurrent.clientTop;
ycurrent = ycurrent.offsetParent; // ycurrent = ycurrent.offsetParent;
} // }
let elementScrollTop = document.documentElement.scrollTop; // let elementScrollTop = document.documentElement.scrollTop;
if (document.compatMode == 'BackCompat') { // if (document.compatMode == 'BackCompat') {
elementScrollTop = document.body.scrollTop; // elementScrollTop = document.body.scrollTop;
} // }
var right = actualTop - elementScrollTop; // var right = actualTop - elementScrollTop;
// // //
return { x: left, y: right }; // return { x: left, y: right };
}; // };
const getContentHeight = () => {
// const getContentHeight = () => {
// if (dialogContentDivRef?.value) {
// console.info('dialogContentDivRef.value', dialogContentDivRef.value.offsetHeight);
// return {
// height: dialogContentDivRef.value.offsetHeight,
// y: getElementViewPosition(dialogContentDivRef.value).y,
// };
// }
// return null;
// };
const getContent = () => {
if (dialogContentDivRef?.value) { if (dialogContentDivRef?.value) {
console.info('dialogContentDivRef.value', dialogContentDivRef.value.getBoundingClientRect().height); return dialogContentDivRef.value;
return {
height: dialogContentDivRef.value.offsetHeight,
y: getElementViewPosition(dialogContentDivRef.value).y,
};
} }
return null; return null;
}; };
@ -138,6 +145,6 @@ const getContentHeight = () => {
defineExpose({ defineExpose({
show, show,
hide, hide,
getContentHeight, getContent,
}); });
</script> </script>

4
io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue

@ -1356,7 +1356,7 @@ const wrapCsvValue = (val, formatFn, row) => {
}; };
// //
const replaceRows = (rows: any) => { const setLocalData = (rows: any) => {
table.rows = rows; table.rows = rows;
addRowKey(table.rows); addRowKey(table.rows);
stickyHeaderColumn(); stickyHeaderColumn();
@ -2018,7 +2018,7 @@ defineExpose({
getTickedRows, getTickedRows,
getRows, getRows,
refresh, refresh,
replaceRows, setLocalData,
replaceRow, replaceRow,
removeRows, removeRows,
addRow, addRow,

Loading…
Cancel
Save