兰宝车间质量管理系统-前端
疯狂的狮子Li
2023-04-03 1595cb282aab5399862fac6406b5de550863e3b6
src/views/tool/gen/editTable.vue
@@ -1,79 +1,3 @@
<script setup name="GenEdit" lang="ts">
import { getGenTable, updateGenTable } from '@/api/tool/gen';
import { DbColumnVO, DbTableVO } from '@/api/tool/gen/types';
import { optionselect as getDictOptionselect } from '@/api/system/dict/type';
import { DictTypeVO } from '@/api/system/dict/type/types';
import basicInfoForm from './basicInfoForm.vue';
import genInfoForm from "./genInfoForm.vue";
import { ComponentInternalInstance } from "vue";
const route = useRoute();
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const activeName = ref('columnInfo');
const tableHeight = ref(document.documentElement.scrollHeight - 245 + 'px');
const tables = ref<DbTableVO[]>([]);
const columns = ref<DbColumnVO[]>([]);
const dictOptions = ref<DictTypeVO[]>([]);
const info = ref<Partial<DbTableVO>>({});
const basicInfo = ref(basicInfoForm);
const genInfo = ref(genInfoForm);
/** 提交按钮 */
const submitForm = () => {
  const basicForm = basicInfo.value.$refs.basicInfoForm;
  const genForm = genInfo.value.$refs.genInfoForm;
  Promise.all([basicForm, genForm].map(getFormPromise)).then(async res => {
    const validateResult = res.every(item => !!item);
    if (validateResult) {
      const genTable: any = Object.assign({}, info.value);
      genTable.columns = columns.value;
      genTable.params = {
        treeCode: info.value?.treeCode,
        treeName: info.value.treeName,
        treeParentCode: info.value.treeParentCode,
        parentMenuId: info.value.parentMenuId
         };
         console.log(genTable)
         const response = await updateGenTable(genTable);
         proxy?.$modal.msgSuccess(response.msg);
         if (response.code === 200) {
            close();
         }
    } else {
      proxy?.$modal.msgError("表单校验未通过,请重新检查提交内容");
    }
  });
}
const getFormPromise = (form: any) => {
  return new Promise(resolve => {
    form.validate((res: any) => {
      resolve(res);
    });
  });
}
const close = () => {
  const obj = { path: "/tool/gen", query: { t: Date.now(), pageNum: route.query.pageNum } };
  proxy?.$tab.closeOpenPage(obj);
}
(async () => {
  const tableId = route.params && route.params.tableId as string;
  if (tableId) {
    // 获取表详细信息
      const res = await getGenTable(tableId);
      columns.value = res.data.rows;
      info.value = res.data.info;
      tables.value = res.data.tables;
    /** 查询字典下拉列表 */
      const response = await getDictOptionselect();
      dictOptions.value = response.data;
  }
})();
</script>
<template>
   <el-card>
      <el-tabs v-model="activeName">
@@ -187,3 +111,79 @@
      </el-form>
   </el-card>
</template>
<script setup name="GenEdit" lang="ts">
import { getGenTable, updateGenTable } from '@/api/tool/gen';
import { DbColumnVO, DbTableVO } from '@/api/tool/gen/types';
import { optionselect as getDictOptionselect } from '@/api/system/dict/type';
import { DictTypeVO } from '@/api/system/dict/type/types';
import basicInfoForm from './basicInfoForm.vue';
import genInfoForm from "./genInfoForm.vue";
import { ComponentInternalInstance } from "vue";
const route = useRoute();
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const activeName = ref('columnInfo');
const tableHeight = ref(document.documentElement.scrollHeight - 245 + 'px');
const tables = ref<DbTableVO[]>([]);
const columns = ref<DbColumnVO[]>([]);
const dictOptions = ref<DictTypeVO[]>([]);
const info = ref<Partial<DbTableVO>>({});
const basicInfo = ref(basicInfoForm);
const genInfo = ref(genInfoForm);
/** 提交按钮 */
const submitForm = () => {
    const basicForm = basicInfo.value.$refs.basicInfoForm;
    const genForm = genInfo.value.$refs.genInfoForm;
    Promise.all([basicForm, genForm].map(getFormPromise)).then(async res => {
        const validateResult = res.every(item => !!item);
        if (validateResult) {
            const genTable: any = Object.assign({}, info.value);
            genTable.columns = columns.value;
            genTable.params = {
                treeCode: info.value?.treeCode,
                treeName: info.value.treeName,
                treeParentCode: info.value.treeParentCode,
                parentMenuId: info.value.parentMenuId
            };
            console.log(genTable)
            const response = await updateGenTable(genTable);
            proxy?.$modal.msgSuccess(response.msg);
            if (response.code === 200) {
                close();
            }
        } else {
            proxy?.$modal.msgError("表单校验未通过,请重新检查提交内容");
        }
    });
}
const getFormPromise = (form: any) => {
    return new Promise(resolve => {
        form.validate((res: any) => {
            resolve(res);
        });
    });
}
const close = () => {
    const obj = { path: "/tool/gen", query: { t: Date.now(), pageNum: route.query.pageNum } };
    proxy?.$tab.closeOpenPage(obj);
}
(async () => {
    const tableId = route.params && route.params.tableId as string;
    if (tableId) {
        // 获取表详细信息
        const res = await getGenTable(tableId);
        columns.value = res.data.rows;
        info.value = res.data.info;
        tables.value = res.data.tables;
        /** 查询字典下拉列表 */
        const response = await getDictOptionselect();
        dictOptions.value = response.data;
    }
})();
</script>