Ben Lin
2024-07-30 cc88111d61a350a4d24cf339b526d4357f934ddf
src/views/tigerprojects/system/lowcode/high/edit/index.vue
@@ -4,7 +4,7 @@
 * @version: 
 * @Date: 2024-06-18 15:09:48
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-27 12:59:25
 * @LastEditTime: 2024-07-29 21:26:39
-->
<template>
  <PageWrapper
@@ -18,7 +18,12 @@
    </Suspense>
    <!-- <a-card :title="titleInfo['baseTableTitle']" :bordered="false" class="!mt-5"> -->
    <Suspense>
      <Editdtl :entityName="entityName" @search="dtlFormSearch" />
      <Editdtl
        :entityName="entityName"
        @search="dtlFormSearch"
        @gettables="GetTablesData"
        @opencust="OpenCust"
      />
    </Suspense>
    <!-- </a-card> -->
    <a-card
@@ -64,6 +69,7 @@
        </template>
      </CustModal>
    </Suspense>
    <GeneralModal @register="register" @success="handleCustSuccess" />
  </PageWrapper>
</template>
<script lang="ts" setup>
@@ -135,7 +141,8 @@
  provide<Ref<any>>('baseCards', baseCards);
  provide<Ref<any>>('useTables', useTables);
  const [registerCust, { openModal: openCustomModal, closeModal }] = useModal();
  const [registerCust] = useModal();
  const [register, { openModal, closeModal }] = useModal();
  const { setTitle } = useTabs();
  setTitle(objParams.value.Title); //设置标签页标题
@@ -160,32 +167,84 @@
  });
  /**
   * @description: 获取useTable
   * @param {*} d
   * @return {*}
   */
  function GetTablesData(d) {
    useTableData.value = d;
  }
  const currTableName = ref('');
  const currRecordId = ref('');
  /**
   * @description: 打开弹框
   * @param {*} d
   * @return {*}
   */
  function OpenCust(d) {
    console.log(d.name);
    currTableName.value = d.name;
    currRecordId.value = d.data.ID;
    data.value[d.name].map((x) => {
      if (x.ID == currRecordId.value && x.VAR_TYPE != d.data.VAR_TYPE) {
        x.VAR_TYPE = d.data.VAR_TYPE;
      }
    });
    openModal(true, d.modalSchema);
  }
  /**
   * @description:
   * @param {*} d
   * @param {*} u
   * @return {*}
   */
  function handleCustSuccess(d, u) {
    const _data = data.value[currTableName.value].map((x) => {
      if (x.ID == currRecordId.value) {
        x.VAR_VALUE = d.values.val;
      }
      return x;
    });
    data.value[currTableName.value] = [];
    useTables.value[currTableName.value][1].setProps({
      dataSource: [],
    });
    data.value[currTableName.value] = _data;
    useTables.value[currTableName.value][1].setProps({
      dataSource: data.value[currTableName.value],
    });
    useTables.value[currTableName.value][1].reload();
  }
  /**
   * @description: 异步全部提交方法
   * @return {*}
   */
  async function submitAll() {
    try {
      const validates = await validate();
      const Keys = Object.getOwnPropertyNames(useFormData.value);
      let i;
      let p = [] as Promise<any>[];
      for (i = 0; i < Keys.length; i++) {
        p.push(
          SaveEntity(
            validates[Keys[i]],
            unref(isAllUpdate),
            baseCards.value[i]['entityName'],
            `${objParams.value['IsExist']}='${validates[Keys[i]][objParams.value['IsExist']]}'`,
            true,
          ),
        );
      }
      await Promise.all(p);
      if (
        !custImport.value['default']()[0].SubmitAll &&
        !isFunction(custImport.value['default']()[0].SubmitAll)
      ) {
        /* 默认提交 */
        const Keys = Object.getOwnPropertyNames(useFormData.value);
        let i;
        let p = [] as Promise<any>[];
        for (i = 0; i < Keys.length; i++) {
          p.push(
            SaveEntity(
              validates[Keys[i]],
              unref(isAllUpdate),
              baseCards.value[i]['entityName'],
              `${objParams.value['IsExist']}='${validates[Keys[i]][objParams.value['IsExist']]}'`,
              true,
            ),
          );
        }
        await Promise.all(p);
        objParams.value['drawers'].forEach((d) => {
          let where = `${d['code']} = '${keyFieldValues.value[d['code']]}'`;
          /* type: all-表示需要code的所有的值 */
@@ -206,7 +265,13 @@
        });
      } else {
        /* 如果自定义提交方法存在就用自定义提交 */
        custImport.value['default']()[0].SubmitAll(data, keyFieldValues, cancel);
        custImport.value['default']()[0].SubmitAll(
          data,
          keyFieldValues,
          cancel,
          objParams.value['drawers'],
          validates,
        );
      }
    } catch (error) {}
  }