Ben Lin
2025-03-07 ce374a9f4920a2d0e5ebe81a9872436088db6d55
src/views/tigerprojects/system/lowcode/high/baseForm.vue
@@ -4,7 +4,7 @@
 * @version: 
 * @Date: 2024-06-23 17:21:29
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-31 11:19:14
 * @LastEditTime: 2024-08-01 10:40:57
-->
<template>
  <a-card
@@ -33,9 +33,11 @@
  import GeneralModal from '/@/views/components/GeneralModal.vue';
  import { Card } from 'ant-design-vue';
  import { getEntity } from '/@/api/tigerapi/system';
  import { isNullOrEmpty } from '/@/utils/is';
  import { isNullOrEmpty, isNullOrUnDef, isTimeViaRegExp8601 } from '/@/utils/is';
  import { useI18n } from '/@/hooks/web/useI18n';
  import { isFunction } from 'xe-utils';
import { dateUtil } from '/@/utils/dateUtil';
  const { t } = useI18n();
  const props = defineProps({
    entityName: { type: String },
@@ -47,10 +49,11 @@
  const custImport = ref<any[]>(await import(`../entityts/${props.entityName}.ts`));
  const [{ GetBaseForm, GetBaseCards, GetUseModals }] = custImport.value['default']();
  const formSchemas = ref({
    BaseForm: GetBaseForm(props.entityName),
    BaseForm: GetBaseForm(props.entityName, objParams.value['IsEdit']),
  });
  const colSlots = ref<any[]>(objParams.value['colSlotsInHigh']);
  const useModals = ref<any>(GetUseModals());
  const useModals =
    GetUseModals && isFunction(GetUseModals) ? ref<any>(GetUseModals()) : ref<any>({});
  //弹出框或高级页面多表单结构
  useFormData.value = {
@@ -74,6 +77,13 @@
      order: '',
    }).then((res) => {
      if (!isNullOrEmpty(res.Data.Items)) {
        /* 循环字段名,判断如果是时间的就转换成dayjs格式,否则时间选择器会出错 */
      const Keys = Object.getOwnPropertyNames(res.Data.Items);
      for (const k in Keys) {
        if (!isNullOrUnDef(res.Data.Items[Keys[k]]) && isTimeViaRegExp8601(res.Data.Items[Keys[k]])) {
          res.Data.Items[Keys[k]] = dateUtil(res.Data.Items[Keys[k]]); //转换成dayjs格式
        }
      }
        useFormData.value[_baseCards.value[0]['name']][1].setFieldsValue(res.Data.Items[0]);
      } else {
        useFormData.value[_baseCards.value[0]['name']][1].setFieldsValue({
@@ -83,7 +93,6 @@
    });
  });
  /**
   * @description: 弹出选择框选择成功后事件
   * @param {*} d
@@ -91,7 +100,7 @@
   * @param {*} item 页面上循环抽屉列表传入的实体名字,作为各表格相关方法的key,从而调用各表格相关的方法,如:useFormData.value[_baseCards.value[0]['name']][1].getForm()
   * @return {*}
   */
   function handleItemSuccess(d, u, item) {
  function handleItemSuccess(d, u, item) {
    /* 动态import实体名.ts的自定义方法 */
    try {
      import(
@@ -116,12 +125,13 @@
   */
  function handleSelectItem(item) {
    /* 动态import实体名.ts的自定义方法 */
    const name = useFormData.value[_baseCards.value[0]['name']][1].getFieldsValue()[`${item.replace(/form-/, '').replace(/add/, '')}PSelect_0`];
    const name =
      useFormData.value[_baseCards.value[0]['name']][1].getFieldsValue()[
        `${item.replace(/form-/, '').replace(/add/, '')}PSelect_0`
      ];
    const openModal = useModals.value[item][1].openModal;
    try {
      import(
        `../entityts/${name}.ts`
      )
      import(`../entityts/${name}.ts`)
        .then((m) => {
          const [{ OpenSelectItem }] = m.default();
          OpenSelectItem(openModal);