|
|
@@ -9,6 +9,7 @@ import { CommonStatusEnum } from '@/utils/constants'
|
|
|
|
|
|
defineOptions({ name: 'IotTree' })
|
|
|
|
|
|
+const formLoading = ref(false)
|
|
|
const dialogVisible = ref(false) // 弹窗的是否展示
|
|
|
const dialogTitle = ref('') // 弹窗的标题
|
|
|
const formRef = ref() // 搜索的表单
|
|
|
@@ -112,7 +113,7 @@ const handleMenuClick = async (action) => {
|
|
|
|
|
|
const submitForm = async () => {
|
|
|
// 表单验证逻辑
|
|
|
-
|
|
|
+ formLoading.value = true
|
|
|
try {
|
|
|
const targetParentId = formType.value === 'create' ? parentId.value : formData.value.parentId
|
|
|
formData.value.type = 'file'
|
|
|
@@ -133,6 +134,7 @@ const submitForm = async () => {
|
|
|
} catch (error) {
|
|
|
console.error(error)
|
|
|
} finally {
|
|
|
+ formLoading.value = false
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -339,7 +341,12 @@ onBeforeUnmount(() => {
|
|
|
</div>
|
|
|
|
|
|
<Dialog v-model="dialogVisible" :title="dialogTitle" style="width: 40em">
|
|
|
- <el-form ref="formRef" :model="formData" :rules="formRules" label-width="80px">
|
|
|
+ <el-form
|
|
|
+ ref="formRef"
|
|
|
+ v-loading="formLoading"
|
|
|
+ :model="formData"
|
|
|
+ :rules="formRules"
|
|
|
+ label-width="80px">
|
|
|
<div class="flex flex-col gap-4">
|
|
|
<el-form-item label="目录名称" prop="name" label-width="110px">
|
|
|
<el-input v-model="formData.name" placeholder="请输入目录名称" />
|