陈薪名
9 months ago
1 changed files with 83 additions and 0 deletions
@ -0,0 +1,83 @@ |
|||
<template> |
|||
<ContentWrap v-loading="formLoading"> |
|||
<el-tabs v-model="activeName"> |
|||
<el-tab-pane label="基本信息" name="basicInfo"> |
|||
<basic-info-form ref="basicInfoRef" :table="formData.table" /> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="字段信息" name="colum"> |
|||
<colum-info-form ref="columInfoRef" :columns="formData.columns" /> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="生成信息" name="generateInfo"> |
|||
<generate-info-form ref="generateInfoRef" :table="formData.table" /> |
|||
</el-tab-pane> |
|||
</el-tabs> |
|||
<el-form> |
|||
<el-form-item style="float: right"> |
|||
<el-button :loading="formLoading" type="primary" @click="submitForm">保存</el-button> |
|||
<el-button @click="close">返回</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
</ContentWrap> |
|||
</template> |
|||
<script lang="ts" setup> |
|||
import { useTagsViewStore } from '@/store/modules/tagsView' |
|||
import { BasicInfoForm, ColumInfoForm, GenerateInfoForm } from './components' |
|||
import * as CodegenApi from '@/api/infra/codegen' |
|||
|
|||
defineOptions({ name: 'InfraCodegenEditTable' }) |
|||
|
|||
const { t } = useI18n() // 国际化 |
|||
const message = useMessage() // 消息弹窗 |
|||
const { push, currentRoute } = useRouter() // 路由 |
|||
const { query } = useRoute() // 查询参数 |
|||
const { delView } = useTagsViewStore() // 视图操作 |
|||
|
|||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 |
|||
const activeName = ref('colum') // Tag 激活的窗口 |
|||
const basicInfoRef = ref<ComponentRef<typeof BasicInfoForm>>() |
|||
const columInfoRef = ref<ComponentRef<typeof ColumInfoForm>>() |
|||
const generateInfoRef = ref<ComponentRef<typeof GenerateInfoForm>>() |
|||
const formData = ref<CodegenApi.CodegenUpdateReqVO>({ |
|||
table: {}, |
|||
columns: [] |
|||
}) |
|||
|
|||
/** 获得详情 */ |
|||
const getDetail = async () => { |
|||
const id = query.id as unknown as number |
|||
if (!id) { |
|||
return |
|||
} |
|||
formLoading.value = true |
|||
try { |
|||
formData.value = await CodegenApi.getCodegenTable(id) |
|||
} finally { |
|||
formLoading.value = false |
|||
} |
|||
} |
|||
|
|||
/** 提交按钮 */ |
|||
const submitForm = async () => { |
|||
// 参数校验 |
|||
if (!unref(formData)) return |
|||
await unref(basicInfoRef)?.validate() |
|||
await unref(generateInfoRef)?.validate() |
|||
try { |
|||
// 提交请求 |
|||
await CodegenApi.updateCodegenTable(formData.value) |
|||
message.success(t('common.updateSuccess')) |
|||
close() |
|||
} catch {} |
|||
} |
|||
|
|||
/** 关闭按钮 */ |
|||
const close = () => { |
|||
delView(unref(currentRoute)) |
|||
push('/infra/codegen') |
|||
} |
|||
|
|||
/** 初始化 */ |
|||
onMounted(() => { |
|||
getDetail() |
|||
}) |
|||
</script> |
Loading…
Reference in new issue