|
@@ -11,7 +11,7 @@
|
|
|
<el-input v-model="formData.name" placeholder="请输入区域名称" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="区域类型" prop="type">
|
|
|
- <el-select v-model="formData.type" placeholder="请选择区域类型">
|
|
|
+ <el-select :disabled="disabled" v-model="formData.type" placeholder="请选择区域类型">
|
|
|
<el-option label="请选择字典生成" value="" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
@@ -55,15 +55,16 @@ const formData = ref({
|
|
|
const formRules = reactive({})
|
|
|
const formRef = ref() // 表单 Ref
|
|
|
const areaTree = ref() // 树形结构
|
|
|
+const disabled = ref(false)
|
|
|
|
|
|
/** 打开弹窗 */
|
|
|
-const open = async (type: string, id?: number) => {
|
|
|
+const open = async (type: string, id?: number, level?: number) => {
|
|
|
dialogVisible.value = true
|
|
|
dialogTitle.value = t('action.' + type)
|
|
|
formType.value = type
|
|
|
resetForm()
|
|
|
// 修改时,设置数据
|
|
|
- if (id) {
|
|
|
+ if (id && !level) {
|
|
|
formLoading.value = true
|
|
|
try {
|
|
|
formData.value = await AreaApi.getArea(id)
|
|
@@ -72,6 +73,11 @@ const open = async (type: string, id?: number) => {
|
|
|
}
|
|
|
}
|
|
|
await getAreaTree()
|
|
|
+ if (level) {
|
|
|
+ disabled.value = true
|
|
|
+ formData.value.parentId = id
|
|
|
+ formData.value.type = Number(level) + 1
|
|
|
+ }
|
|
|
}
|
|
|
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
|
|
|
|
@@ -107,6 +113,7 @@ const resetForm = () => {
|
|
|
type: undefined,
|
|
|
parentId: undefined
|
|
|
}
|
|
|
+ disabled.value = false
|
|
|
formRef.value?.resetFields()
|
|
|
}
|
|
|
|