修复错误

This commit is contained in:
ChenYi 2025-07-16 17:08:11 +08:00
parent cd772d5b04
commit 3d4b568a3b

View File

@ -76,6 +76,11 @@ const fixedColumns = [
// - 使 // - 使
const allColumns = computed(() => { const allColumns = computed(() => {
//
if (!isGridInitialized.value) {
return [...fixedColumns];
}
const columns = [...fixedColumns]; const columns = [...fixedColumns];
// //
@ -100,12 +105,12 @@ const initDefaultColumns = () => {
} }
}; };
//
const isGridInitialized = ref(false);
// //
initDefaultColumns(); initDefaultColumns();
//
fetchDeviceOptions();
const formOptions: VbenFormProps = { const formOptions: VbenFormProps = {
schema: querySchema.value, schema: querySchema.value,
initialValues: { initialValues: {
@ -189,7 +194,7 @@ const gridOptions: VxeGridProps<any> = {
highlight: true, highlight: true,
labelField: 'name', labelField: 'name',
}, },
columns: allColumns, // 使 columns: fixedColumns, // 使
height: 'auto', height: 'auto',
keepSource: true, keepSource: true,
pagerConfig: { pagerConfig: {
@ -323,34 +328,61 @@ watch(
}, },
); );
//
const initializeGrid = async () => {
try {
//
await fetchDeviceOptions();
//
isGridInitialized.value = true;
//
if (gridApi && gridApi.setState) {
await nextTick();
gridApi.setState({
gridOptions: {
...gridOptions,
columns: allColumns.value,
},
});
}
//
if (DeviceType || DeviceId || FocusAddress || SystemName) {
//
setTimeout(() => {
if (gridApi) {
gridApi.reload();
}
}, 300);
}
} catch (error) {
console.error('初始化表格失败:', error);
}
};
// //
watch( watch(
() => [DeviceType, DeviceId, FocusAddress, SystemName], () => [DeviceType, DeviceId, FocusAddress, SystemName],
async (newValues, oldValues) => { async (newValues, oldValues) => {
// //
if (newValues.some(val => val) && gridApi) { if (newValues.some(val => val) && gridApi && isGridInitialized.value) {
//
await fetchDeviceOptions();
// //
setTimeout(() => { setTimeout(() => {
gridApi.reload(); gridApi.reload();
}, 100); }, 100);
} }
}, },
{ immediate: true } { immediate: false } // false
); );
// //
onMounted(async () => { onMounted(async () => {
// // VXE
if (DeviceType || DeviceId || FocusAddress || SystemName) { setTimeout(async () => {
// await initializeGrid();
await fetchDeviceOptions(); }, 100);
//
setTimeout(() => {
gridApi.reload();
}, 200);
}
}); });
</script> </script>