This commit is contained in:
吴红兵
2026-03-07 12:35:45 +08:00
parent 271710e870
commit b997b3ba48
423 changed files with 79612 additions and 91574 deletions

View File

@@ -1,84 +1,73 @@
<template>
<el-dialog
v-model="visible"
title="实施采购"
width="800px"
:close-on-click-modal="false"
destroy-on-close
@close="handleClose"
>
<ImplementContent
ref="implementContentRef"
@close="handleContentClose"
@saved="handleContentSaved"
/>
<el-dialog v-model="visible" title="实施采购" width="800px" :close-on-click-modal="false" destroy-on-close @close="handleClose">
<ImplementContent ref="implementContentRef" @close="handleContentClose" @saved="handleContentSaved" />
<template #footer>
<div class="dialog-footer">
<el-button @click="handleClose">取消</el-button>
<el-button type="primary" :loading="confirming" @click="handleConfirm">确定</el-button>
</div>
</template>
</el-dialog>
<template #footer>
<div class="dialog-footer">
<el-button @click="handleClose">取消</el-button>
<el-button type="primary" :loading="confirming" @click="handleConfirm">确定</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup lang="ts" name="ImplementForm">
import { ref, nextTick } from 'vue'
import ImplementContent from './implement.vue'
import { ref, nextTick } from 'vue';
import ImplementContent from './implement.vue';
const emit = defineEmits<{
(e: 'refresh'): void
}>()
(e: 'refresh'): void;
}>();
const visible = ref(false)
const implementContentRef = ref<InstanceType<typeof ImplementContent>>()
const confirming = ref(false)
const pendingRow = ref<{ id: string | number } | null>(null)
const visible = ref(false);
const implementContentRef = ref<InstanceType<typeof ImplementContent>>();
const confirming = ref(false);
const pendingRow = ref<{ id: string | number } | null>(null);
const handleClose = () => {
visible.value = false
}
visible.value = false;
};
const handleContentClose = () => {
visible.value = false
emit('refresh')
}
visible.value = false;
emit('refresh');
};
const handleContentSaved = () => {
emit('refresh')
}
emit('refresh');
};
const handleConfirm = async () => {
confirming.value = true
try {
await implementContentRef.value?.handleConfirm()
visible.value = false
emit('refresh')
} finally {
confirming.value = false
}
}
confirming.value = true;
try {
await implementContentRef.value?.handleConfirm();
visible.value = false;
emit('refresh');
} finally {
confirming.value = false;
}
};
const openDialog = async (row: { id: string | number }) => {
pendingRow.value = row
visible.value = true
// 等待 dialog 及内部组件挂载完成后再调用 open
await nextTick()
if (pendingRow.value) {
implementContentRef.value?.open(pendingRow.value)
pendingRow.value = null
}
}
pendingRow.value = row;
visible.value = true;
// 等待 dialog 及内部组件挂载完成后再调用 open
await nextTick();
if (pendingRow.value) {
implementContentRef.value?.open(pendingRow.value);
pendingRow.value = null;
}
};
defineExpose({
openDialog,
})
openDialog,
});
</script>
<style scoped lang="scss">
.dialog-footer {
display: flex;
justify-content: flex-end;
gap: 12px;
display: flex;
justify-content: flex-end;
gap: 12px;
}
</style>
</style>