Browse Source

1、修复继承按钮会触发afterEditorOpen事件问题。

2、修复db-click-operation配置的按钮enableIf返回false时仍然会被调用的问题。
main
likunming 6 months ago
parent
commit
949c3c5704
  1. 6
      io.sc.platform.core.frontend/src/platform/components/select/WGridSelect.vue
  2. 18
      io.sc.platform.core.frontend/src/platform/components/toolbar/WToolbar.vue

6
io.sc.platform.core.frontend/src/platform/components/select/WGridSelect.vue

@ -312,13 +312,13 @@ const rowClick = (args) => {
watch( watch(
() => modelValue.value, () => modelValue.value,
(newVal, oldVal) => { async (newVal, oldVal) => {
fieldMethodsClass.updateValue(newVal);
if (Tools.isEmpty(newVal)) { if (Tools.isEmpty(newVal)) {
fieldMethodsClass.clearObjectValue(); fieldMethodsClass.clearObjectValue();
} else if (newVal !== oldVal && needFetchData.value) { } else if (newVal !== oldVal && needFetchData.value) {
fetchData(newVal); await fetchData(newVal);
} }
fieldMethodsClass.updateValue(newVal);
}, },
); );

18
io.sc.platform.core.frontend/src/platform/components/toolbar/WToolbar.vue

@ -452,7 +452,6 @@ const tickedComputed = computed(() => {
}); });
const buttonClick = async (button) => { const buttonClick = async (button) => {
let beforeResult = true;
const context = {}; const context = {};
const args = { const args = {
selected: firstSelectedComputed.value, selected: firstSelectedComputed.value,
@ -463,16 +462,29 @@ const buttonClick = async (button) => {
context: context, context: context,
selectedColName: props.grid.getSelectedCell()['colName'], selectedColName: props.grid.getSelectedCell()['colName'],
}; };
if (button.enableIf && !button.enableIf(args)) {
return;
}
let beforeResult = true;
if (button.beforeClick) { if (button.beforeClick) {
beforeResult = await button.beforeClick(args); beforeResult = await button.beforeClick(args);
} }
if (beforeResult && button.click) { if (beforeResult && button.click) {
await button.click({ ...args, _click: button._click }); let callAfterEditorOpen = true;
const clickProps = { ...args };
if (button._click) {
callAfterEditorOpen = false;
clickProps['_click'] = (_args: any) => {
button._click(_args || args);
callAfterEditorOpen = true;
};
}
await button.click(clickProps);
nextTick(async () => { nextTick(async () => {
if (button.afterClick) { if (button.afterClick) {
await button.afterClick(args); await button.afterClick(args);
} }
if (button.afterEditorOpen) { if (button.afterEditorOpen && callAfterEditorOpen) {
button.afterEditorOpen(args); button.afterEditorOpen(args);
} }
}); });

Loading…
Cancel
Save