Ben Lin
2025-03-05 b3305675a429cac20c2b73464badb64f999b615b
src/views/tigerprojects/system/lowcode/normal/index.vue
@@ -9,7 +9,7 @@
<template>
  <div>
    <Suspense>
      <mainTable />
      <mainTable v-if="isMounted" />
    </Suspense>
  </div>
</template>
@@ -29,18 +29,28 @@
  import { EntityCustFunctionType } from '/@/api/tigerapi/model/basModel';
  import { isFunction } from 'xe-utils';
  import { useMessage } from '/@/hooks/web/useMessage';
  import { useLowCodeStore } from '/@/store/modules/lowcode';
  import { storeToRefs } from 'pinia';
  import { useMultipleTabStore } from '/@/store/modules/multipleTab';
  const { notification, createMessage } = useMessage();
  const { getLocale } = useLocale();
  const { t } = useI18n();
  const tabStore = useMultipleTabStore();
  const route = useRoute();
  const { currentRoute } = useRouter();
  const go = useGo();
  function getCurrentTab() {
    const route = unref(currentRoute);
    return tabStore.getTabList.find((item) => item.fullPath === route.fullPath)!;
  }
  const currentTab = getCurrentTab();
  const useLowcode = useLowCodeStore();
  const objParams = ref(JSON.parse(decodeURI(route.params?.id as string)));
  // 从sessionStorage中读取参数并转换回对象
  const _savedParams = sessionStorage.getItem(`${objParams.value.sName}_params`);
  const savedParams = _savedParams ? ref(JSON.parse(decodeURI(_savedParams))) : ref({});
  const entityName = ref(objParams.value.ID);
  const entityName = ref(objParams.value.EntityName);
  const _columns = ref<any[]>([]);
  const _searchFormSchema = ref<any[]>([]);
  const _crudFormSchema = ref<any[]>([]);
@@ -54,6 +64,7 @@
    BY_PROD: '',
    BY_WH: '',
  });
  const keyFieldValues = ref<any>(null);
  provide<Ref<any>>('objParams', objParams);
  provide<Ref<any>>('savedParams', savedParams as any);
@@ -96,19 +107,25 @@
    const [{ InitCrudFormSchema }] = isNullOrUnDef(custImport.value['default'])
      ? EntityCustFunction.value
      : custImport.value['default']();
    isMounted.value = true;
    //获取表单中插槽渲染的按钮点击弹出模态窗口的实例
    useModalData.value = GetUseModalData(objParams.value.ID);
    const data = await getEntity({
      sqlcmd: "ASSEMBLY_NAME ='" + objParams.value.ID + "'",
      sqlcmd: "CODE_NAME ='" + objParams.value.ID + "'",
      entityName: 'SYS_LOW_CODE',
      order: '',
    });
    AuthOption.value.BY_ORG = data.Data.Items[0].BY_ORG;
    AuthOption.value.BY_PROD = data.Data.Items[0].BY_PROD;
    AuthOption.value.BY_WH = data.Data.Items[0].BY_WH;
    var searchForms = JSON.parse(data.Data.Items[0].SEARCH_FORM_JSON);
    const searchData = JSON.parse(data.Data.Items[0].SEARCH_FORM_JSON);
    var searchForms = isNullOrEmpty(searchData.search) ? searchData : searchData.fields;
    let _isSearch = {} as {[key: string]: any};
    _isSearch[`${String(currentTab.name)}`] = isNullOrEmpty(searchData.search) ? true : searchData.search;
    /* 保存是否查询表单,true-是查询条件表单,false-是展示输入表单 */
    useLowcode.setIsSearch(_isSearch);
    isMounted.value = true;
    for (const i in searchForms) {
      if (
        !isNullOrEmpty(searchForms[i].componentProps) &&
@@ -117,7 +134,7 @@
      ) {
        searchForms[i].componentProps.api = GetEnum;
        searchForms[i].componentProps.params.name =
          `${objParams.value.ID}+${searchForms[i].field}s`;
          `${objParams.value.EntityName}+${searchForms[i].field}s`;
        searchForms[i].componentProps.labelField = unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name';
        searchForms[i].defaultValue = null;
      }
@@ -136,7 +153,7 @@
    var _cruds: any[] = [];
    /* 如果有初始化增删改页面结构的方法,则进入 */
    if (InitCrudFormSchema && isFunction(InitCrudFormSchema)) {
      _cruds = InitCrudFormSchema(objParams.value.ID);
      _cruds = InitCrudFormSchema(objParams.value.EntityName);
    } else {
      /* 没有初始化增删改页面结构的方法时进入 */
      _cruds = JSON.parse(data.Data.Items[0].FORM_JSON);
@@ -148,7 +165,7 @@
        _cruds[i].componentProps.api == 'GetEnum'
      ) {
        _cruds[i].componentProps.api = GetEnum;
        _cruds[i].componentProps.params.name = `${objParams.value.ID}+${_cruds[i].field}s`;
        _cruds[i].componentProps.params.name = `${objParams.value.EntityName}+${_cruds[i].field}s`;
        _cruds[i].componentProps.labelField = unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name';
        _cruds[i].defaultValue = null;
      }
@@ -166,7 +183,7 @@
        _cruds[i].componentProps.api = uploadApi;
        _cruds[i].componentProps.multiple = false;
        _cruds[i].componentProps.maxNumber = 1;
        _cruds[i].componentProps.uploadParams = { entityName: objParams.value.ID };
        _cruds[i].componentProps.uploadParams = { entityName: objParams.value.EntityName };
        _cruds[i].rules = [{ required: true, message: '请选择上传文件' }];
      }
      if (_cruds[i].isexist == 'Y') {
@@ -219,7 +236,7 @@
      obj.componentProps = ({ schema, tableAction, formActionType, formModel }) => {
        return {
          options: options,
          onChange: (e) => custOnChange(e, onChange, objParams.value.ID),
          onChange: (e) => custOnChange(e, onChange, objParams.value.EntityName),
        };
      };
    }