只需要给弹窗加v-if即可解决,因为用v-if将子组件包裹起来,v-if=false时可以将子组件销毁掉,再次调用时重新渲染
<el-dialog
title=""
width="1200px"
:visible.sync="showPreviewDialog"
v-if="showPreviewDialog"
>
<preview-project ></preview-project>
</el-dialog>