diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/Td.vue b/io.sc.platform.core.frontend/src/platform/components/grid/Td.vue index cdab5269..f23d653c 100644 --- a/io.sc.platform.core.frontend/src/platform/components/grid/Td.vue +++ b/io.sc.platform.core.frontend/src/platform/components/grid/Td.vue @@ -131,55 +131,34 @@ const generateTdIfComputed = computed(() => { return true; }); -const mergeGroupByFieldContainsIf = (fieldName: string) => { - const mergeGroupByField = tools.cm.mergeGroupByField.value; - if (Array.isArray(mergeGroupByField) && mergeGroupByField.length > 0) { - const index = mergeGroupByField.findIndex((item) => item === fieldName); - if (index > -1) { - return true; - } - } - return false; -}; -const sortByContainsIf = (fieldName: string) => { - if (tools.props.sortBy && tools.props.sortBy.length > 0) { - const findResult = tools.props.sortBy.findIndex((item) => { - if (item.startsWith('-') && item.substring(1) === fieldName) { - return true; - } - return item === fieldName; - }); - return findResult > -1; - } - return false; -}; - const tdClick = () => { - // 判定是否要退出编辑模式 - const cellSelected = tools.table.store.cellSelected; - if (cellSelected) { - if (tools.props.localMode && tools.table.store.inlineEditStatus === Constant.EDIT_STATUS.CELL && tools.props.selectMode === Constant.SELECT_MODE.CELL) { - if (cellSelected.colName !== props.col['name'] || cellSelected.row[rowKey] !== props.scope.row[rowKey]) { - tools.editFM.exitInlineEdit(); - } - } else if ( - tools.props.localMode && - tools.table.store.inlineEditStatus === Constant.EDIT_STATUS.ROW && - tools.props.selectMode === Constant.SELECT_MODE.CELL - ) { - if (cellSelected.row[rowKey] !== props.scope.row[rowKey]) { - tools.editFM.exitInlineEdit(); + if (props.scope.row[Constant.FIELD_NAMES.SELECTABLE]) { + // 判定是否要退出编辑模式 + const cellSelected = tools.table.store.cellSelected; + if (cellSelected) { + if (tools.props.localMode && tools.table.store.inlineEditStatus === Constant.EDIT_STATUS.CELL && tools.props.selectMode === Constant.SELECT_MODE.CELL) { + if (cellSelected.colName !== props.col['name'] || cellSelected.row[rowKey] !== props.scope.row[rowKey]) { + tools.editFM.exitInlineEdit(); + } + } else if ( + tools.props.localMode && + tools.table.store.inlineEditStatus === Constant.EDIT_STATUS.ROW && + tools.props.selectMode === Constant.SELECT_MODE.CELL + ) { + if (cellSelected.row[rowKey] !== props.scope.row[rowKey]) { + tools.editFM.exitInlineEdit(); + } } } - } - if (tools.table.store.inlineEditStatus === Constant.EDIT_STATUS.NONE && tools.props.selectMode === Constant.SELECT_MODE.CELL) { - tools.table.store.cellSelected = { - row: toRaw(props.scope.row), - rowKey: props.scope.row[rowKey], - primaryKey: props.scope.row[tools.props.primaryKey], - colName: props.col['name'], - value: props.scope.row[props.col['name']], - }; + if (tools.table.store.inlineEditStatus === Constant.EDIT_STATUS.NONE && tools.props.selectMode === Constant.SELECT_MODE.CELL) { + tools.table.store.cellSelected = { + row: toRaw(props.scope.row), + rowKey: props.scope.row[rowKey], + primaryKey: props.scope.row[tools.props.primaryKey], + colName: props.col['name'], + value: props.scope.row[props.col['name']], + }; + } } }; diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/Tr.vue b/io.sc.platform.core.frontend/src/platform/components/grid/Tr.vue index 4dc496b1..0c5764b0 100644 --- a/io.sc.platform.core.frontend/src/platform/components/grid/Tr.vue +++ b/io.sc.platform.core.frontend/src/platform/components/grid/Tr.vue @@ -3,7 +3,7 @@ ref="trRef" :props="props.scope" :no-hover="trNoHoverComputed" - :class="{ selected: trSelectedClassComputed }" + :class="{ selected: trSelectedClassComputed, mouseDisabled: !scope.row[Constant.FIELD_NAMES.SELECTABLE] }" :draggable="draggableComputed" @click.stop="tools.em.rowClick($event, props.scope.row, props.scope.rowIndex)" @dblclick.stop="tools.em.rowDbClick($event, scope.row, scope.rowIndex)" @@ -18,6 +18,7 @@ @@ -94,7 +95,12 @@ const trSelectedClassComputed = computed(() => { // 行拖拽是否启用 const draggableComputed = computed(() => { - return dndMode && !Tools.isEmpty(Constant.DND_MODE.getAll()[dndMode]) && tools.table.store.inlineEditStatus === Constant.EDIT_STATUS.NONE; + return ( + dndMode && + !Tools.isEmpty(Constant.DND_MODE.getAll()[dndMode]) && + tools.table.store.inlineEditStatus === Constant.EDIT_STATUS.NONE && + props.scope.row[Constant.FIELD_NAMES.SELECTABLE] + ); }); // 得到表格数据行的中间高度 diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue b/io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue index 0e58cb2f..de1cc6f5 100644 --- a/io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue +++ b/io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue @@ -1,6 +1,6 @@