兰宝车间质量管理系统-前端
src/views/tool/gen/editTable.vue
@@ -35,22 +35,22 @@
          <el-table-column label="插入" min-width="5%">
            <template #default="scope">
              <el-checkbox true-label="1" false-label="0" v-model="scope.row.isInsert"></el-checkbox>
              <el-checkbox v-model="scope.row.isInsert" true-label="1" false-label="0"></el-checkbox>
            </template>
          </el-table-column>
          <el-table-column label="编辑" min-width="5%">
            <template #default="scope">
              <el-checkbox true-label="1" false-label="0" v-model="scope.row.isEdit"></el-checkbox>
              <el-checkbox v-model="scope.row.isEdit" true-label="1" false-label="0"></el-checkbox>
            </template>
          </el-table-column>
          <el-table-column label="列表" min-width="5%">
            <template #default="scope">
              <el-checkbox true-label="1" false-label="0" v-model="scope.row.isList"></el-checkbox>
              <el-checkbox v-model="scope.row.isList" true-label="1" false-label="0"></el-checkbox>
            </template>
          </el-table-column>
          <el-table-column label="查询" min-width="5%">
            <template #default="scope">
              <el-checkbox true-label="1" false-label="0" v-model="scope.row.isQuery"></el-checkbox>
              <el-checkbox v-model="scope.row.isQuery" true-label="1" false-label="0"></el-checkbox>
            </template>
          </el-table-column>
          <el-table-column label="查询方式" min-width="10%">
@@ -69,7 +69,7 @@
          </el-table-column>
          <el-table-column label="必填" min-width="5%">
            <template #default="scope">
              <el-checkbox true-label="1" false-label="0" v-model="scope.row.isRequired"></el-checkbox>
              <el-checkbox v-model="scope.row.isRequired" true-label="1" false-label="0"></el-checkbox>
            </template>
          </el-table-column>
          <el-table-column label="显示类型" min-width="12%">
@@ -104,7 +104,7 @@
      </el-tab-pane>
    </el-tabs>
    <el-form label-width="100px">
      <div style="text-align: center;margin-left:-100px;margin-top:10px;">
      <div style="text-align: center; margin-left: -100px; margin-top: 10px">
        <el-button type="primary" @click="submitForm()">提交</el-button>
        <el-button @click="close()">返回</el-button>
      </div>
@@ -117,9 +117,8 @@
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";
import BasicInfoForm from './basicInfoForm.vue';
import GenInfoForm from './genInfoForm.vue';
const route = useRoute();
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
@@ -131,58 +130,58 @@
const dictOptions = ref<DictTypeVO[]>([]);
const info = ref<Partial<DbTableVO>>({});
const basicInfo = ref(basicInfoForm);
const genInfo = ref(genInfoForm);
const basicInfo = ref<InstanceType<typeof BasicInfoForm>>();
const genInfo = ref<InstanceType<typeof GenInfoForm>>();
/** 提交按钮 */
const submitForm = () => {
    const basicForm = basicInfo.value.$refs.basicInfoForm;
    const genForm = genInfo.value.$refs.genInfoForm;
  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
            };
            const response = await updateGenTable(genTable);
            proxy?.$modal.msgSuccess(response.msg);
            if (response.code === 200) {
                close();
            }
        } else {
            proxy?.$modal.msgError("表单校验未通过,请重新检查提交内容");
        }
    });
}
  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
      };
      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);
        });
  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);
}
  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;
    }
  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>