editColumn.vue 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <template>
  2. <div class="sys-dbColumn-container">
  3. <el-dialog v-model="state.isShowDialog" draggable width="500px">
  4. <template #header>
  5. <div style="color: #fff">
  6. <el-icon size="16" style="margin-right: 3px; display: inline; vertical-align: middle"> <ele-Edit /> </el-icon>
  7. <span> 列编辑 </span>
  8. </div>
  9. </template>
  10. <el-form :model="state.ruleForm" ref="ruleFormRef" label-width="60px">
  11. <el-row :gutter="35">
  12. <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
  13. <el-form-item label="列名称" prop="columnName" :rules="[{ required: true, message: '名称不能为空', trigger: 'blur' }]">
  14. <el-input v-model="state.ruleForm.columnName" placeholder="列名称" clearable />
  15. </el-form-item>
  16. </el-col>
  17. <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
  18. <el-form-item label="描述" prop="description" :rules="[{ required: true, message: '描述不能为空', trigger: 'blur' }]">
  19. <el-input v-model="state.ruleForm.description" placeholder="描述" clearable type="textarea" />
  20. </el-form-item>
  21. </el-col>
  22. </el-row>
  23. </el-form>
  24. <template #footer>
  25. <span class="dialog-footer">
  26. <el-button @click="cancel">取 消</el-button>
  27. <el-button type="primary" @click="submit">确 定</el-button>
  28. </span>
  29. </template>
  30. </el-dialog>
  31. </div>
  32. </template>
  33. <script lang="ts" setup name="sysEditColumn">
  34. import { reactive, ref } from 'vue';
  35. import { getAPI } from '/@/utils/axios-utils';
  36. import { SysDatabaseApi } from '/@/api-services/api';
  37. import { UpdateDbColumnInput } from '/@/api-services/models';
  38. const emits = defineEmits(['handleQueryColumn']);
  39. const ruleFormRef = ref();
  40. const state = reactive({
  41. isShowDialog: false,
  42. ruleForm: {} as UpdateDbColumnInput,
  43. });
  44. // 打开弹窗
  45. const openDialog = (row: any) => {
  46. state.ruleForm = JSON.parse(JSON.stringify(row));
  47. state.isShowDialog = true;
  48. };
  49. // 关闭弹窗
  50. const closeDialog = () => {
  51. emits('handleQueryColumn');
  52. state.isShowDialog = false;
  53. };
  54. // 取消
  55. const cancel = () => {
  56. state.isShowDialog = false;
  57. };
  58. // 提交
  59. const submit = () => {
  60. ruleFormRef.value.validate(async (valid: boolean) => {
  61. if (!valid) return;
  62. await getAPI(SysDatabaseApi).apiSysDatabaseUpdateColumnPost(state.ruleForm);
  63. closeDialog();
  64. });
  65. };
  66. // 导出对象
  67. defineExpose({ openDialog });
  68. </script>