From ca0be67638e012b4d25a5dfebfc8dea3d2869f69 Mon Sep 17 00:00:00 2001 From: likunming Date: Fri, 18 Oct 2024 18:32:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8C=89=E9=92=AE=E4=B8=8D?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E5=AF=BC=E8=87=B4=E5=BE=AA=E7=8E=AF=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/platform/components/grid/GridTop.vue | 9 +++++++-- .../src/platform/components/grid/WGrid.vue | 8 +++++++- .../src/platform/components/grid/css/grid.css | 1 - .../platform/components/toolbar/WToolbar.vue | 18 +++++++++--------- 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/GridTop.vue b/io.sc.platform.core.frontend/src/platform/components/grid/GridTop.vue index f7772a40..f70dd2cb 100644 --- a/io.sc.platform.core.frontend/src/platform/components/grid/GridTop.vue +++ b/io.sc.platform.core.frontend/src/platform/components/grid/GridTop.vue @@ -32,6 +32,7 @@ import { useQuasar, exportFile } from 'quasar'; import { axios, Tools, t, NotifyManager } from '@/platform'; import { selectedMode, formStatus, editStatus } from './ts/grid'; import GridConfig from './GridConfig.vue'; +import { throws } from 'assert'; const $q = useQuasar(); @@ -607,7 +608,9 @@ const handleChildrenBtn = (arr, moreQueryShow) => { const tempArr = []; for (let i = 0; i < arr.length; i++) { const btn = arr[i]; - if (Array.isArray(btn) && btn.length > 0) { + if (typeof btn === 'string' && !buttonObj[btn]) { + throw new Error(`'` + btn + `'` + ' toolbar action NOT exits'); + } else if (Array.isArray(btn) && btn.length > 0) { const handleResult = handleChildrenBtn(btn, moreQueryShow); if (handleResult && handleResult.length > 0) { tempArr.push(handleResult); @@ -652,7 +655,9 @@ const handleToolbarActions = () => { moreQueryShow = true; } props.grid.props.toolbarActions.forEach((btn: any, index) => { - if (typeof btn === 'string' && buttonObj[btn]) { + if (typeof btn === 'string' && !buttonObj[btn]) { + throw new Error(`'` + btn + `'` + ' toolbar action NOT exits'); + } else if (typeof btn === 'string' && buttonObj[btn]) { if (btn === buttonObj.query.name && moreQueryShow) { buttons_.value.push([buttonObj[btn], buttonObj[buttonObj.moreQuery.name]]); } else { 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 582bc0a3..88d6d527 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 @@ -182,6 +182,13 @@ const props = defineProps({ foreignKey: { type: String, default: 'parent' }, // 数据外键(常规表格模式时,该字段暂时无用,将来可用作多个表格的数据关系字段。树形表格模式时,该字段为构建树数据的关系字段) refreshData: { type: Boolean, default: false }, // 新增、删除、修改成功后是否刷新数据列表,默认不刷新但是新增修改后台必须返回对应的行数据对象,删除则必须返回删除的记录集primaryKey集合。 dbClickOperation: { type: String, default: 'view' }, // 默认的双击操作:可填写内置或自定义按钮name,执行的操作为按钮对应的click,固定值提供:expand(展开双击的行)、none(双击不执行任何动作) + groupMode: { type: String, default: '' }, + group: { + type: Array, + default: () => { + return []; + }, + }, appendRows: { // 表格追加行,添加到当前表格数据行尾,可添加多行,支持跨行跨列配置,用于添加合计或者额外信息。 type: Array, @@ -901,7 +908,6 @@ const setRowDataExtraProperty = (rows: []) => { // 如果存在需要合并的字段,并且不是树表格,重新对数据进行排序 table.mergeRecords = {}; sortByProperties(rows, mergeColumns); - console.info('rows=========', rows); } if (rows && rows.length > 0) { rows.forEach((item: any, index) => { diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/css/grid.css b/io.sc.platform.core.frontend/src/platform/components/grid/css/grid.css index f265aa61..6bfffc8e 100644 --- a/io.sc.platform.core.frontend/src/platform/components/grid/css/grid.css +++ b/io.sc.platform.core.frontend/src/platform/components/grid/css/grid.css @@ -6,7 +6,6 @@ } .w-grid .q-table__top { padding: var(--tableTopPadding) var(--tableTopPadding); - border-bottom: 0px !important; } .w-grid .q-table__middle .q-table th { padding: var(--tableHeaderPadding) 8px; diff --git a/io.sc.platform.core.frontend/src/platform/components/toolbar/WToolbar.vue b/io.sc.platform.core.frontend/src/platform/components/toolbar/WToolbar.vue index 75083074..45aa0515 100644 --- a/io.sc.platform.core.frontend/src/platform/components/toolbar/WToolbar.vue +++ b/io.sc.platform.core.frontend/src/platform/components/toolbar/WToolbar.vue @@ -475,8 +475,8 @@ const buttonClick = async (button) => { context: context, selectedColName: props.grid.getSelectedCell()['colName'], }); - if (button.afterClick) { - nextTick(async () => { + nextTick(async () => { + if (button.afterClick) { await button.afterClick({ selected: firstSelectedComputed.value, selecteds: selectedComputed.value, @@ -486,13 +486,13 @@ const buttonClick = async (button) => { context: context, selectedColName: props.grid.getSelectedCell()['colName'], }); - let data = undefined; - if (button?.name !== 'add' && button?.name !== 'addTop' && button?.name !== 'addChild') { - data = firstSelectedComputed.value; - } - props.grid.emit('afterEditorOpen', { grid: props.grid, data: data }); - }); - } + } + let data = undefined; + if (button?.name !== 'add' && button?.name !== 'addTop' && button?.name !== 'addChild') { + data = firstSelectedComputed.value; + } + props.grid.emit('afterEditorOpen', { grid: props.grid, data: data }); + }); } };