Ben Lin
2024-07-02 2069d53e9be24adec3c8d6717fd7317555bd9a52
高级表单优化
已修改17个文件
766 ■■■■■ 文件已修改
src/api/tigerapi/model/basModel.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/tigerapi/system.ts 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tigerprojects/system/lowcode/data.ts 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts 79 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts 104 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT_SYS.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tigerprojects/system/lowcode/entityts/QMS_INS_ITEM.ts 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tigerprojects/system/lowcode/entityts/QMS_INS_STD.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tigerprojects/system/lowcode/high/baseForm.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tigerprojects/system/lowcode/high/dtl.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tigerprojects/system/lowcode/high/index.vue 92 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tigerprojects/system/lowcode/normal/mainTable.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/tigerapi/model/basModel.ts
@@ -143,6 +143,7 @@
  GetUseDrawers: () => [];
  GetUseTables: (data: Ref<Recordable[]>, ...args) => [];
  SubmitFunc: (values: Recordable<any>, type: string, emit) => void;
  FormSearch: (d) => string | {};
  GetSlots: (type: string | undefined) => {};
  GenerateHtml: (type: string | null) => HTMLElement | null;
  CustFunc: (type: string | undefined, ...args) => void | any;
src/api/tigerapi/system.ts
@@ -1,4 +1,3 @@
import { UserConfigFn } from 'vite';
import { useGlobSetting } from '/@/hooks/setting';
import { buildUUID } from '../../utils/uuid';
import { DateFormat } from '../../utils/dataformat';
@@ -31,7 +30,7 @@
  iSYS_ROLE_PROD,
} from './model/systemModel';
import { defHttp } from '/@/utils/http/axios';
import { isArray, isDate, isNullOrEmpty, isTimeType, isTimeViaRegExp8601, isTimeViaRegExpSimple } from '/@/utils/is';
import { isArray, isNullOrEmpty, isTimeViaRegExp8601 } from '/@/utils/is';
export enum Api {
  QueryUrl = '/Base/Query',
@@ -39,6 +38,7 @@
  EntitySqlList = '/Base/QuerySQL',
  EntityPageList = '/Base/QueryCustomPage',
  IsAccountExist = '/Base/IsExist',
  AddAfterDelete = '/Base/AddAfterDelete',
  setRoleStatus = '/system/setRoleStatus',
  MenuList = '/SYS/getMenuListAll',
  SaveMenu = '/SYS/SaveMenu',
@@ -704,9 +704,46 @@
 * @return {*}
 */
export async function getListByPage<T>(params: T) {
  const sqlcmd = ReturnSqlcmd(params);
  let order = '';
  if (!isNullOrEmpty(params['order'])) {
    order = params['order'] == 'descend' ? params['field'] + ' desc' : params['field'];
  }
  const rParams = genAction(params['TABLE_NAME'], {
    QueryAble_T: '',
    where: sqlcmd,
    order: order,
    page: {
      pageAble_T: 'string',
      draw: 1,
      pageIndex: params['page'],
      pageSize: params['pageSize'],
    },
  });
  return getListByPageAsync(rParams);
}
async function getListByPageAsync(params: any) {
  const data = await defHttp.post(
    { url: Api.QueryUrl, params, timeout: 50000 },
    {
      isTransformResponse: false,
    },
  );
  const model = {
    items: data.Data.page.data,
    total: data.Data.page.totals,
  };
  return model;
}
/**
 * @description: 根据查询条件参数拼接查询条件
 * @param {T} params
 * @return {*}
 */
export function ReturnSqlcmd<T>(params: T) {
  const Keys = Object.getOwnPropertyNames(params);
  let sqlcmd = '1=1 ';
  let order = '';
  for (const k in Keys) {
    console.log(`${k}:${Keys[k]}`);
    if (
@@ -727,34 +764,7 @@
      }
    }
  }
  if (!isNullOrEmpty(params['order'])) {
    order = params['order'] == 'descend' ? params['field'] + ' desc' : params['field'];
  }
  const rParams = genAction(params['TABLE_NAME'], {
    QueryAble_T: '',
    where: sqlcmd,
    order: order,
    page: {
      pageAble_T: 'string',
      draw: 1,
      pageIndex: params['page'],
      pageSize: params['pageSize'],
    },
  });
  return getListByPageAsync(rParams);
}
async function getListByPageAsync(params: any) {
  const data = await defHttp.post(
    { url: Api.QueryUrl, params,timeout:50000 },
    {
      isTransformResponse: false,
    },
  );
  const model = {
    items: data.Data.page.data,
    total: data.Data.page.totals,
  };
  return model;
  return sqlcmd;
}
export async function SaveEntity<T>(params: T, isUpdate: boolean, entityName: string, ...args) {
@@ -769,7 +779,7 @@
    );
  } else {
    var check = await isExist(genAction(entityName, args[0]));
    if(check.Data){
    if (check.Data) {
      check.IsSuccessed = false;
      check.Message = '记录已经存在,不能新增!';
      return check;
@@ -809,6 +819,31 @@
}
/**
 * @description: 先删除后添加Api
 * @param {T} params
 * @param {string} entityName
 * @param {*} items
 * @return {*}
 */
export async function AddAfterDelete(entityName: string, items: [], where: string) {
  let data = await defHttp.post(
    {
      url: Api.AddAfterDelete,
      params: genAction(entityName, {
        QueryAble_T: '',
        where: where,
        Items: items,
      }),
    },
    {
      errorMessageMode: 'none',
      isTransformResponse: false,
    },
  );
  return data;
}
/**
 * @description: 根据条件删除
 * @param {string} sqlcmd
 * @param {string} entityName
src/views/tigerprojects/system/lowcode/data.ts
@@ -4,27 +4,19 @@
 * @version:
 * @Date: 2024-06-02 17:52:35
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-06-29 06:12:26
 * @LastEditTime: 2024-07-02 19:40:27
 */
import { ActionItem, BasicColumn, FormSchema } from '/@/components/Table';
import { ActionItem, FormSchema } from '/@/components/Table';
import { useI18n } from '/@/hooks/web/useI18n';
import { isNullOrEmpty } from '/@/utils/is';
import { woCustFn, woformSchema } from '/@/views/components/bizMesWo';
import { useModal } from '/@/components/Modal';
import LogicFlow from '@logicflow/core';
import { BpmnElement } from '@logicflow/extension/es/bpmn';
import { Ref, ref, unref } from 'vue';
import customEdge from '/@/components/FlowChart/src/customEdge';
import actionRect from '/@/components/FlowChart/src/actionRect';
import TestNode from '/@/components/FlowChart/src/TestNode';
import CollectNode from '/@/components/FlowChart/src/CollectNode';
import AssemblyNode from '/@/components/FlowChart/src/AssemblyNode';
import PackingNode from '/@/components/FlowChart/src/PackingNode';
import RepairNode from '/@/components/FlowChart/src/RepairNode';
import { Ref, unref } from 'vue';
import { getRouteData } from '/@/api/tigerapi/mes/router';
import { toLogicFlowData } from '/@/components/FlowChart/src/adpterForTurbo';
import { SelectionSelect } from '@logicflow/extension';
import { buildUUID } from '/@/utils/uuid';
import { useUserStore } from '/@/store/modules/user';
import { formatToDateTime } from '/@/utils/dateUtil';
const { t } = useI18n();
/**
@@ -157,10 +149,10 @@
}
/**
   * @description: 工艺路线初始化
   * @param {*} lf
   * @return {*}
   */
 * @description: 工艺路线初始化
 * @param {*} lf
 * @return {*}
 */
export async function initRoute(lf, rotId, routeData, currlf) {
  currlf.value = unref(lf);
  //通过工艺路线ID获取图形数据,并渲染
@@ -184,3 +176,48 @@
    unref(lf).render(routeData.value);
  }
}
/* 高级表单公用方法 *********************************Start */
/**
 * @description: 查询自定义方法,当在高级表单中的表格中查询时触发事件,并把{ type: type, data: data }传到父组件
 * @param {string} type 表格的名字,好确定是哪个表格要查询
 * @param {Ref} data 此表格的原数据
 * @param {*} emit dtl组件的事件,触发一个'search'事件
 * @return {*}
 */
export async function Search(type: string, data: Ref<any>, emit) {
  emit('search', { type: type, data: data });
}
/**
 * @description: 高级表单新增编辑方法
 * @param {Ref} data
 * @param {*} d
 * @param {*} u
 * @param {*} item
 * @param {*} updates
 * @return {*}
 */
export function EditOperation(data: Ref<any[]>, d, u, item, updates) {
  if (u.isUpdate) {
    //更新
    data.value[item] = updates;
  } else {
    //新增
    d.ID = buildUUID();
    d.CREATE_USER = useUserStore().getUserInfo.userId as string;
    d.UPDATE_TIME = formatToDateTime(new Date());
    d.UPDATE_USER = useUserStore().getUserInfo.userId as string;
    var _data2: any[] = [];
    if (!isNullOrEmpty(data.value[item])) {
      _data2 = data.value[item].map((item) => {
        return item;
      });
    }
    _data2.push(d);
    data.value[item] = _data2;
  }
}
/* 高级表单公用方法 *********************************End */
src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts
@@ -4,12 +4,12 @@
 * @version:
 * @Date: 2024-06-19 20:34:27
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-01 17:04:43
 * @LastEditTime: 2024-07-02 20:00:10
 */
import { Ref, h, unref } from 'vue';
import { DeleteEntity, GetEnum, getEntity } from '/@/api/tigerapi/system';
import { ActionItem, BasicColumn, useTable } from '/@/components/Table';
import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table';
import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
import { buildUUID } from '/@/utils/uuid';
import { useUserStore } from '/@/store/modules/user';
@@ -17,6 +17,7 @@
import { Tag } from 'ant-design-vue';
import { useLocale } from '/@/locales/useLocale';
import { useDrawer } from '/@/components/Drawer';
import { EditOperation, Search } from '../data';
const { getLocale } = useLocale();
function _default() {
@@ -145,15 +146,16 @@
     * @param {array} args
     * @return {*}
     */    
    GetUseTables: (data: any[], ...args) => {
    GetUseTables: (data: Ref<{}>, ...args) => {
      return {
        BAS_DEFECT: useTable({
          title: '列表信息',
          dataSource: data,
          dataSource: data.value['BAS_DEFECT'],
          columns: baseColumns['BAS_DEFECT'],
          formConfig: {
            labelWidth: 140,
            schemas: searchForms['BAS_DEFECT'],
            submitFunc: () => Search('BAS_DEFECT', data, args[0]), //自定义查询提交按钮的方法,触发查询提交事件
          },
          useSearchForm: true,
          showTableSetting: true,
@@ -170,6 +172,26 @@
        })
      };
    },
    /**
     * @description: 表格查询回调,父组件中通过子组件触发的事件获取传入的值,做具体的查询逻辑实现
     * @param {*} d
     * @return {*}
     */
    FormSearch: (d) => {
      let data = {} as any;
      switch (d.type) {
        case 'BAS_DEFECT':
          data = d.data.value[d.type].filter(
            (item) =>
              item.DFT_CODE.includes(d.values.DFT_CODE) || item.DFT_NAME == d.values.DFT_NAME,
          );
          if (isNullOrEmpty(d.values.DFT_CODE) && isNullOrEmpty(d.values.DFT_NAME)) {
            data = d.data.value[d.type];
          }
          break;
      }
      return data;
    },
    OthersValues: (val: string, id: string) => {
      return { DFTG_CODE: val };
    } /**
@@ -179,36 +201,20 @@
     * @param {*} u
     * @return {*}
     */,
    EditOperation: (data: Ref<any[]>, d, u) => {
      if (u.isUpdate) {
        //更新
        var _data = data.value.map((item) => {
          if (item['ID'] == d.ID)
            return {
              ...item,
              DFT_CODE: d.DFT_CODE,
              DFT_NAME: d.DFT_NAME,
              DFT_LEVEL: d.DFT_LEVEL,
              REMARK: d.REMARK,
            };
          return item;
        });
        data.value = _data;
      } else {
        //新增
        d.ID = buildUUID();
        d.CREATE_USER = useUserStore().getUserInfo.userId as string;
        d.UPDATE_TIME = formatToDateTime(new Date());
        d.UPDATE_USER = useUserStore().getUserInfo.userId as string;
        var _data2: any[] = [];
        if (!isNullOrEmpty(data.value)) {
          _data2 = data.value.map((item) => {
            return item;
          });
        }
        _data2.push(d);
        data.value = _data2;
      }
    EditOperation: (data: Ref<any[]>, d, u, item) => {
      //更新
      var _data = data.value[item].map((item) => {
        if (item['ID'] == d.ID)
          return {
            ...item,
            DFT_CODE: d.DFT_CODE,
            DFT_NAME: d.DFT_NAME,
            DFT_LEVEL: d.DFT_LEVEL,
            REMARK: d.REMARK,
          };
        return item;
      });
      EditOperation(data,d, u, item, _data);
    },
    /**
     * @description: 获取标题信息
@@ -324,7 +330,7 @@
          span: 8,
        },
      },
    ]
    ] as FormSchema[],
  }
  const crudForms = {
@@ -398,7 +404,7 @@
        },
        show: false,
      },
    ]
    ] as FormSchema[],
  }
  return [methods, ActionColumn];
src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts
@@ -4,7 +4,7 @@
 * @version:
 * @Date: 2024-06-19 20:34:27
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-01 20:14:03
 * @LastEditTime: 2024-07-02 21:06:18
 */
import { ActionItem, BasicColumn } from '/@/components/Table';
@@ -120,12 +120,16 @@
      CODE: params['record']['DFTG_CODE'],
      ID: params['record']['ID'],
      Name: 'BAS_DEFECT',
      SessionName: 'BAS_DEFECT_update',
      Title: `编辑不良代码组:${params['record']['DFTG_CODE']}`,
      pCode: 'DFTG_CODE',
      IsID: false,
      drawers: [{ name: 'BAS_DEFECT', code: 'DFTG_CODE' }], //drawers是右边弹出增改侧框的名字列表
    };
    args[5](`/BAS_DEFECT/High/${encodeURI(JSON.stringify(param))}`);
    // 将对象转换为JSON字符串并保存到sessionStorage
    sessionStorage.removeItem(`${param.SessionName}_params`);
    sessionStorage.setItem(`${param.SessionName}_params`, encodeURI(JSON.stringify(param)));
    args[5](`/BAS_DEFECT/High/${encodeURI(JSON.stringify({ sName: param.SessionName, Name: param.Name }))}`);
  }
  return [methods, ActionColumn];
src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts
@@ -4,17 +4,18 @@
 * @version:
 * @Date: 2024-06-19 20:34:27
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-01 17:08:25
 * @LastEditTime: 2024-07-02 19:59:52
 */
import { Ref } from 'vue';
import { DeleteEntity, getEntity } from '/@/api/tigerapi/system';
import { ActionItem, BasicColumn, useTable } from '/@/components/Table';
import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table';
import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
import { buildUUID } from '/@/utils/uuid';
import { useUserStore } from '/@/store/modules/user';
import { formatToDateTime } from '/@/utils/dateUtil';
import { useDrawer } from '/@/components/Drawer';
import { EditOperation, Search } from '../data';
function _default(): any[] {
  const ActionColumn: BasicColumn = {
@@ -57,37 +58,21 @@
     * @param {*} u
     * @return {*}
     */
    EditOperation: (data: Ref<any[]>, d, u) => {
      if (u.isUpdate) {
        //更新
        var _data = data.value.map((item) => {
          if (item['ID'] == d.ID)
            return {
              ...item,
              PKG_CODE: d.PKG_CODE,
              PKG_LEVEL: d.PKG_LEVEL,
              PKG_QTY: d.PKG_QTY,
              LABEL_CODE: d.LABEL_CODE,
              REMARK: d.REMARK,
            };
          return item;
        });
        data.value = _data;
      } else {
        //新增
        d.ID = buildUUID();
        d.CREATE_USER = useUserStore().getUserInfo.userId as string;
        d.UPDATE_TIME = formatToDateTime(new Date());
        d.UPDATE_USER = useUserStore().getUserInfo.userId as string;
        var _data2: any[] = [];
        if (!isNullOrEmpty(data.value)) {
          _data2 = data.value.map((item) => {
            return item;
          });
        }
        _data2.push(d);
        data.value = _data2;
      }
    EditOperation: (data: Ref<any[]>, d, u, item) => {
      //更新
      var _data = data.value[item].map((item) => {
        if (item['ID'] == d.ID)
          return {
            ...item,
            PKG_CODE: d.PKG_CODE,
            PKG_LEVEL: d.PKG_LEVEL,
            PKG_QTY: d.PKG_QTY,
            LABEL_CODE: d.LABEL_CODE,
            REMARK: d.REMARK,
          };
        return item;
      });
      EditOperation(data,d, u, item, _data);
    },
    /**
     * @description: 高级表单和详情页面返回主页面的url
@@ -218,15 +203,16 @@
     * @param {array} args
     * @return {*}
     */
    GetUseTables: (data: any[], ...args) => {
    GetUseTables: (data: Ref<{}>, ...args) => {
      return {
        BAS_PKG_DTL: useTable({
          title: '列表信息',
          dataSource: data,
          dataSource: data.value['BAS_PKG_DTL'],
          columns: baseColumns['BAS_PKG_DTL'],
          formConfig: {
            labelWidth: 140,
            schemas: searchForms['BAS_PKG_DTL'],
            submitFunc: () => Search('BAS_PKG_DTL', data, args[0]), //自定义查询提交按钮的方法,触发查询提交事件
          },
          useSearchForm: true,
          showTableSetting: true,
@@ -242,6 +228,23 @@
          }, //自定义操作列
        }),
      };
    },
    /**
     * @description: 表格查询回调,父组件中通过子组件触发的事件获取传入的值,做具体的查询逻辑实现
     * @param {*} d
     * @return {*}
     */
    FormSearch: (d) => {
      let data = {} as any;
      switch (d.type) {
        case 'BAS_PKG_DTL':
          data = d.data.value[d.type].filter((item) => item.PKG_CODE.includes(d.values.PKG_CODE));
          if (isNullOrEmpty(d.values.PKG_CODE)) {
            data = d.data.value[d.type];
          }
          break;
      }
      return data;
    },
    /**
     * @description: 获取标题信息
@@ -297,7 +300,7 @@
          span: 8,
        },
      },
    ],
    ] as FormSchema[],
  };
  const baseColumns = {
@@ -333,7 +336,7 @@
        title: '更新人',
        dataIndex: 'UPDATE_USER',
      },
    ],
    ] as BasicColumn[],
  };
  const crudForms = {
@@ -399,7 +402,7 @@
        },
        show: false,
      },
    ],
    ] as FormSchema[],
  };
  return [methods, ActionColumn];
src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts
@@ -4,7 +4,7 @@
 * @version:
 * @Date: 2024-06-19 20:34:27
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-01 20:14:42
 * @LastEditTime: 2024-07-02 21:03:23
 */
import { ActionItem, BasicColumn } from '/@/components/Table';
@@ -69,12 +69,16 @@
      CODE: params['record']['RULE_CODE'],
      ID: params['record']['ID'],
      Name: 'BAS_PKG_DTL',
      SessionName: 'BAS_PKG_DTL_update',
      Title: `编辑包装规则:${params['record']['RULE_CODE']}`,
      pCode: 'PKG_RULE_ID',
      IsID: true,
      drawers: [{ name: 'BAS_PKG_DTL', code: 'PKG_RULE_ID' }], //drawers是右边弹出增改侧框的名字列表
    };
    go(`/BAS_PKG_DTL/High/${encodeURI(JSON.stringify(param))}`);
    // 将对象转换为JSON字符串并保存到sessionStorage
    sessionStorage.removeItem(`${param.SessionName}_params`);
    sessionStorage.setItem(`${param.SessionName}_params`, encodeURI(JSON.stringify(param)));
    go(`/BAS_PKG_DTL/High/${encodeURI(JSON.stringify({ sName: param.SessionName, Name: param.Name }))}`);
  }
  return [methods, ActionColumn];
src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts
@@ -4,17 +4,18 @@
 * @version:
 * @Date: 2024-06-22 00:58:43
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-01 17:13:16
 * @LastEditTime: 2024-07-02 19:59:39
 */
import { Ref, h } from 'vue';
import { DeleteEntity, getEntity } from '/@/api/tigerapi/system';
import { ActionItem, BasicColumn, useTable } from '/@/components/Table';
import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table';
import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
import { buildUUID } from '/@/utils/uuid';
import { useUserStore } from '/@/store/modules/user';
import { formatToDateTime } from '/@/utils/dateUtil';
import { Tag } from 'ant-design-vue';
import { useDrawer } from '/@/components/Drawer';
import { EditOperation, Search } from '../data';
function _default() {
  const ActionColumn: BasicColumn = {
@@ -56,36 +57,20 @@
     * @param {*} u
     * @return {*}
     */
    EditOperation: (data: Ref<any[]>, d, u) => {
      if (u.isUpdate) {
        //更新
        var _data = data.value.map((item) => {
          if (item['ID'] == d.ID)
            return {
              ...item,
              RSN_CODE: d.RSN_CODE,
              RSN_NAME: d.RSN_NAME,
              NEED_REPLACE: d.NEED_REPLACE,
              REMARK: d.REMARK,
            };
          return item;
        });
        data.value = _data;
      } else {
        //新增
        d.ID = buildUUID();
        d.CREATE_USER = useUserStore().getUserInfo.userId as string;
        d.UPDATE_TIME = formatToDateTime(new Date());
        d.UPDATE_USER = useUserStore().getUserInfo.userId as string;
        var _data2: any[] = [];
        if (!isNullOrEmpty(data.value)) {
          _data2 = data.value.map((item) => {
            return item;
          });
        }
        _data2.push(d);
        data.value = _data2;
      }
    EditOperation: (data: Ref<any[]>, d, u, item) => {
       //更新
       var _data = data.value[item].map((item) => {
        if (item['ID'] == d.ID)
          return {
            ...item,
            RSN_CODE: d.RSN_CODE,
            RSN_NAME: d.RSN_NAME,
            NEED_REPLACE: d.NEED_REPLACE,
            REMARK: d.REMARK,
          };
        return item;
      });
      EditOperation(data,d, u, item, _data);
    },
    /**
     * @description: 高级表单和详情页面返回主页面的url
@@ -170,15 +155,16 @@
     * @param {array} args
     * @return {*}
     */
    GetUseTables: (data: any[], ...args) => {
    GetUseTables: (data: Ref<{}>, ...args) => {
      return {
        BAS_REASON: useTable({
          title: '列表信息',
          dataSource: data,
          dataSource: data.value['BAS_REASON'],
          columns: baseColumns['BAS_REASON'],
          formConfig: {
            labelWidth: 140,
            schemas: searchForms['BAS_REASON'],
            submitFunc: () => Search('BAS_REASON', data, args[0]), //自定义查询提交按钮的方法,触发查询提交事件
          },
          useSearchForm: true,
          showTableSetting: true,
@@ -194,6 +180,26 @@
          }, //自定义操作列
        }),
      };
    },
    /**
     * @description: 表格查询回调,父组件中通过子组件触发的事件获取传入的值,做具体的查询逻辑实现
     * @param {*} d
     * @return {*}
     */
    FormSearch: (d) => {
      let data = {} as any;
      switch (d.type) {
        case 'BAS_REASON':
          data = d.data.value[d.type].filter(
            (item) =>
              item.RSN_CODE.includes(d.values.RSN_CODE) || item.RSN_NAME == d.values.RSN_NAME,
          );
          if (isNullOrEmpty(d.values.RSN_CODE) && isNullOrEmpty(d.values.RSN_NAME)) {
            data = d.data.value[d.type];
          }
          break;
      }
      return data;
    },
    OthersValues: (val: string, id: string) => {
      return { RSNG_CODE: val };
@@ -289,7 +295,7 @@
        title: '更新人',
        dataIndex: 'UPDATE_USER',
      },
    ],
    ] as BasicColumn[],
  };
  const searchForms = {
@@ -310,7 +316,7 @@
          span: 8,
        },
      },
    ],
    ] as FormSchema[],
  };
  const crudForms = {
@@ -391,7 +397,7 @@
        },
        show: false,
      },
    ],
    ] as FormSchema[],
  };
  return [methods, ActionColumn];
src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts
@@ -4,7 +4,7 @@
 * @version:
 * @Date: 2024-06-19 20:34:27
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-01 20:15:46
 * @LastEditTime: 2024-07-02 21:29:04
 */
import { ActionItem, BasicColumn } from '/@/components/Table';
@@ -111,12 +111,16 @@
      CODE: params['record']['RSNG_CODE'],
      ID: params['record']['ID'],
      Name: 'BAS_REASON',
      SessionName: 'BAS_REASON_update',
      Title: `编辑不良原因组:${params['record']['RSNG_CODE']}`,
      pCode: 'RSNG_CODE',
      IsID: false,
      drawers: [{ name: 'BAS_REASON', code: 'RSNG_CODE' }], //drawers是右边弹出增改侧框的名字列表
    };
    args[5](`/BAS_REASON/High/${encodeURI(JSON.stringify(param))}`);
    // 将对象转换为JSON字符串并保存到sessionStorage
    sessionStorage.removeItem(`${param.SessionName}_params`);
    sessionStorage.setItem(`${param.SessionName}_params`, encodeURI(JSON.stringify(param)));
    args[5](`/BAS_REASON/High/${encodeURI(JSON.stringify({ sName: param.SessionName, Name: param.Name }))}`);
  }
  return [methods, ActionColumn];
src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts
@@ -4,12 +4,12 @@
 * @version:
 * @Date: 2024-06-19 20:34:27
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-02 03:40:15
 * @LastEditTime: 2024-07-02 19:41:38
 */
import { Ref, h, ref, unref } from 'vue';
import { DeleteEntity, GetEnum, getEntity } from '/@/api/tigerapi/system';
import { ActionItem, BasicColumn, useTable } from '/@/components/Table';
import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table';
import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
import { buildUUID } from '/@/utils/uuid';
import { useUserStore } from '/@/store/modules/user';
@@ -17,29 +17,11 @@
import { Tag } from 'ant-design-vue';
import { useLocale } from '/@/locales/useLocale';
import { useDrawer } from '/@/components/Drawer';
import { EditOperation, Search } from '../data';
const { getLocale } = useLocale();
function _default() {
  let _data = ref([
    {
      SFT_CODE: '1',
      SFT_NAME: '1',
      SFTS_CODE: '1',
      SFT_BEGIN: 1,
      SFT_END: 1,
      IS_ACROSS_DAY: 'N',
      REMARK: '1',
      AUTH_ORG: '1',
      AUTH_PROD: '1',
      AUTH_WH: '1',
      GHOST_ROW: false,
      CREATE_TIME: '2024-07-01 12:34:29',
      CREATE_USER: '1',
      UPDATE_TIME: '2024-07-01 12:34:29',
      UPDATE_USER: '1',
      ID: '6632a14fec8c470c9216f5c7354baa22',
    },
  ] as Recordable<any>[]);
  let _data = ref<any>({});
  const ActionColumn: BasicColumn = {
    width: 80,
    title: '操作',
@@ -203,9 +185,11 @@
          title: '列表信息',
          dataSource: data.value['MES_SHIFT'],
          columns: baseColumns['MES_SHIFT'],
          maxHeight: 230,
          formConfig: {
            labelWidth: 140,
            schemas: searchForms['MES_SHIFT'],
            submitFunc: () => Search('MES_SHIFT', data, args[0]), //自定义查询提交按钮的方法,触发查询提交事件
          },
          useSearchForm: true,
          showTableSetting: true,
@@ -224,9 +208,11 @@
          title: '列表信息',
          dataSource: data.value['MES_SHIFT_PRD'],
          columns: baseColumns['MES_SHIFT_PRD'],
          maxHeight: 260,
          formConfig: {
            labelWidth: 140,
            schemas: searchForms['MES_SHIFT_PRD'],
            submitFunc: () => Search('MES_SHIFT_PRD', data, args[0]), //自定义查询提交按钮的方法,触发查询提交事件
          },
          useSearchForm: true,
          showTableSetting: true,
@@ -243,6 +229,28 @@
        }),
      };
    },
    /**
     * @description: 表格查询回调,父组件中通过子组件触发的事件获取传入的值,做具体的查询逻辑实现
     * @param {*} d
     * @return {*}
     */
    FormSearch: (d) => {
      let data = {} as any;
      switch (d.type) {
        case 'MES_SHIFT':
          data = d.data.value[d.type].filter(
            (item) =>
              item.SFT_CODE.includes(d.values.SFT_CODE) || item.SFT_NAME == d.values.SFT_NAME,
          );
          if (isNullOrEmpty(d.values.SFT_CODE) && isNullOrEmpty(d.values.SFT_NAME)) {
            data = d.data.value[d.type];
          }
          break;
        case 'MES_SHIFT_PRD':
          break;
      }
      return data;
    },
    OthersValues: (val: string, id: string) => {
      return { SFTS_CODE: val };
    } /**
@@ -253,37 +261,21 @@
     * @return {*}
     */,
    EditOperation: (data: Ref<any[]>, d, u, item) => {
      if (u.isUpdate) {
        //更新
        var _data = data.value.map((item) => {
          if (item['ID'] == d.ID)
            return {
              ...item,
              SFT_CODE: d.SFT_CODE,
              SFT_NAME: d.SFT_NAME,
              SFT_BEGIN: d.SFT_BEGIN,
              SFT_END: d.SFT_END,
              IS_ACROSS_DAY: d.IS_ACROSS_DAY,
              REMARK: d.REMARK,
            };
          return item;
        });
        data.value = _data;
      } else {
        //新增
        d.ID = buildUUID();
        d.CREATE_USER = useUserStore().getUserInfo.userId as string;
        d.UPDATE_TIME = formatToDateTime(new Date());
        d.UPDATE_USER = useUserStore().getUserInfo.userId as string;
        var _data2: any[] = [];
        if (!isNullOrEmpty(data.value[item])) {
          _data2 = data.value[item].map((item) => {
            return item;
          });
        }
        _data2.push(d);
        data.value[item] = _data2;
      }
       //更新
       var _data = data.value[item].map((item) => {
        if (item['ID'] == d.ID)
          return {
            ...item,
            SFT_CODE: d.SFT_CODE,
            SFT_NAME: d.SFT_NAME,
            SFT_BEGIN: d.SFT_BEGIN,
            SFT_END: d.SFT_END,
            IS_ACROSS_DAY: d.IS_ACROSS_DAY,
            REMARK: d.REMARK,
          };
        return item;
      });
      EditOperation(data,d, u, item, _data);
    },
    /**
     * @description: 获取标题信息
@@ -492,7 +484,7 @@
          span: 8,
        },
      },
    ],
    ] as FormSchema[],
    MES_SHIFT_PRD: [
      {
        field: 'PRD_CODE',
@@ -510,7 +502,7 @@
          span: 8,
        },
      },
    ],
    ] as FormSchema[],
  };
  const crudForms = {
@@ -643,7 +635,7 @@
          span: 24,
        },
        componentProps: () => {
          const options = _data.map((entity) => ({
          const options = _data.value['MES_SHIFT'].map((entity) => ({
            value: entity.SFT_CODE,
            label: entity.SFT_NAME,
          }));
src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT_SYS.ts
@@ -4,7 +4,7 @@
 * @version:
 * @Date: 2024-06-19 20:34:27
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-02 03:29:35
 * @LastEditTime: 2024-07-02 21:28:53
 */
import { ActionItem, BasicColumn } from '/@/components/Table';
@@ -123,6 +123,7 @@
      CODE: params['record']['SFTS_CODE'], //CODE的值
      ID: params['record']['ID'], //ID值
      Name: 'MES_SHIFT', //实体名
      SessionName: 'MES_SHIFT_update', //SessionStorage的key
      Title: `编辑班制:${params['record']['SFTS_CODE']}`, //标题
      // pCode: 'SFTS_CODE', //主信息关键字段CODE,高级表单用下面drawers里的code
      IsID: false, //是否带过去侧边框的是ID,false就是CODE,true是ID
@@ -131,7 +132,10 @@
        { name: 'MES_SHIFT_PRD', code: 'SFT_CODE' },
      ], //drawers是右边弹出增改侧框的名字列表
    };
    args[5](`/MES_SHIFT/High/${encodeURI(JSON.stringify(param))}`);
    // 将对象转换为JSON字符串并保存到sessionStorage
    sessionStorage.removeItem(`${param.SessionName}_params`);
    sessionStorage.setItem(`${param.SessionName}_params`, encodeURI(JSON.stringify(param)));
    args[5](`/MES_SHIFT/High/${encodeURI(JSON.stringify({ sName: param.SessionName, Name: param.Name }))}`);
  }
  return [methods, ActionColumn];
src/views/tigerprojects/system/lowcode/entityts/QMS_INS_ITEM.ts
@@ -4,12 +4,12 @@
 * @version:
 * @Date: 2024-06-19 20:34:27
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-01 17:17:58
 * @LastEditTime: 2024-07-02 19:43:08
 */
import { Ref, h, unref } from 'vue';
import { DeleteEntity, GetEnum, getEntity } from '/@/api/tigerapi/system';
import { ActionItem, BasicColumn, useTable } from '/@/components/Table';
import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table';
import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
import { buildUUID } from '/@/utils/uuid';
import { useUserStore } from '/@/store/modules/user';
@@ -17,6 +17,7 @@
import { Tag } from 'ant-design-vue';
import { useLocale } from '/@/locales/useLocale';
import { useDrawer } from '/@/components/Drawer';
import { EditOperation, Search } from '../data';
const { getLocale } = useLocale();
function _default() {
@@ -33,36 +34,20 @@
   * @return {*}
   */
  const methods = {
    EditOperation: (data: Ref<any[]>, d, u) => {
      if (u.isUpdate) {
        //更新
        var _data = data.value.map((item) => {
          if (item['ID'] == d.ID)
            return {
              ...item,
              STD_CODE: d.STD_CODE,
              STD_NAME: d.STD_NAME,
              STD_TYPE: d.STD_TYPE,
              REMARK: d.REMARK,
            };
          return item;
        });
        data.value = _data;
      } else {
        //新增
        d.ID = buildUUID();
        d.CREATE_USER = useUserStore().getUserInfo.userId as string;
        d.UPDATE_TIME = formatToDateTime(new Date());
        d.UPDATE_USER = useUserStore().getUserInfo.userId as string;
        var _data2: any[] = [];
        if (!isNullOrEmpty(data.value)) {
          _data2 = data.value.map((item) => {
            return item;
          });
        }
        _data2.push(d);
        data.value = _data2;
      }
    EditOperation: (data: Ref<any[]>, d, u, item) => {
      //更新
      var _data = data.value[item].map((item) => {
        if (item['ID'] == d.ID)
          return {
            ...item,
            STD_CODE: d.STD_CODE,
            STD_NAME: d.STD_NAME,
            STD_TYPE: d.STD_TYPE,
            REMARK: d.REMARK,
          };
        return item;
      });
      EditOperation(data,d, u, item, _data);
    },
    /**
     * @description: 获取新增按钮的行为
@@ -183,15 +168,16 @@
     * @param {array} args
     * @return {*}
     */
    GetUseTables: (data: any[], ...args) => {
    GetUseTables: (data: Ref<{}>, ...args) => {
      return {
        QMS_INS_ITEM: useTable({
          title: '列表信息',
          dataSource: data,
          dataSource: data.value['QMS_INS_ITEM'],
          columns: baseColumns['QMS_INS_ITEM'],
          formConfig: {
            labelWidth: 140,
            schemas: searchForms['QMS_INS_ITEM'],
            submitFunc: () => Search('QMS_INS_ITEM', data, args[0]), //自定义查询提交按钮的方法,触发查询提交事件
          },
          useSearchForm: true,
          showTableSetting: true,
@@ -208,6 +194,26 @@
        }),
        MES_SHIFT_PRD: useTable(),
      };
    },
    /**
     * @description: 表格查询回调,父组件中通过子组件触发的事件获取传入的值,做具体的查询逻辑实现
     * @param {*} d
     * @return {*}
     */
    FormSearch: (d) => {
      let data = {} as any;
      switch (d.type) {
        case 'QMS_INS_ITEM':
          data = d.data.value[d.type].filter(
            (item) =>
              item.INS_CODE.includes(d.values.INS_CODE) || item.INS_NAME == d.values.INS_NAME,
          );
          if (isNullOrEmpty(d.values.INS_CODE) && isNullOrEmpty(d.values.INS_NAME)) {
            data = d.data.value[d.type];
          }
          break;
      }
      return data;
    },
    OthersValues: (val: string, id: string) => {
      return { TECH_STD: val };
@@ -359,7 +365,7 @@
        title: '更新人',
        dataIndex: 'UPDATE_USER',
      },
    ],
    ] as BasicColumn[],
  };
  const searchForms = {
@@ -380,7 +386,7 @@
          span: 8,
        },
      },
    ],
    ] as FormSchema[],
  };
  const crudForms = {
@@ -462,7 +468,7 @@
        },
        show: false,
      },
    ],
    ] as FormSchema[],
  };
  return [methods, ActionColumn];
src/views/tigerprojects/system/lowcode/entityts/QMS_INS_STD.ts
@@ -4,7 +4,7 @@
 * @version:
 * @Date: 2024-06-19 20:34:27
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-01 20:16:53
 * @LastEditTime: 2024-07-02 21:29:12
 */
import { ActionItem, BasicColumn } from '/@/components/Table';
@@ -122,13 +122,17 @@
      CODE: params['record']['STD_CODE'],
      ID: params['record']['ID'],
      Name: 'QMS_INS_ITEM', //一般是明细表实体
      SessionName: 'QMS_INS_ITEM_update', //SessionStorage的key
      Title: `编辑检验项目:${params['record']['STD_CODE']}`,
      pCode: 'TECH_STD', //跳转到高级表单的关键字段名
      mCode: 'STD_CODE', //跳转到高级表单的关键字段名映射字段
      IsID: false,
      drawers: [{ name: 'QMS_INS_ITEM', code: 'STD_CODE' }], //drawers是右边弹出增改侧框的名字列表
    };
    args[5](`/QMS_INS_ITEM/High/${encodeURI(JSON.stringify(param))}`);
    // 将对象转换为JSON字符串并保存到sessionStorage
    sessionStorage.removeItem(`${param.SessionName}_params`);
    sessionStorage.setItem(`${param.SessionName}_update_params`, encodeURI(JSON.stringify(param)));
    args[5](`/QMS_INS_ITEM/High/${encodeURI(JSON.stringify({ sName: param.SessionName, Name: param.Name }))}`);
  }
  return [methods, ActionColumn];
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-06-23 18:08:08
 * @LastEditTime: 2024-07-02 21:26:46
-->
<template>
  <a-card
@@ -22,13 +22,15 @@
  import { Card } from 'ant-design-vue';
  import { getEntity } from '/@/api/tigerapi/system';
  import { isNullOrEmpty } from '/@/utils/is';
  const props = defineProps({
    entityName: { type: String },
  });
  const ACard = Card;
  const objParams = inject('objParams') as Ref<any>;
  const useFormData = inject('useFormData') as Ref<{}>;
  const baseCards = inject('baseCards') as Ref<any>;
  const custImport = ref<any[]>(
    await import(`../entityts/${objParams['Name']}.ts`),
    await import(`../entityts/${props.entityName}.ts`),
  );
  const [
    {
@@ -55,7 +57,7 @@
  onMounted(() => {
    useFormData.value[_baseCards.value[0]['name']][1].resetFields();
    getEntity({
      sqlcmd: ` ID = '${objParams['ID']}'`,
      sqlcmd: ` ID = '${objParams.value['ID']}'`,
      entityName: _baseCards.value[0]['entityName'],
    }).then((res) => {
      if (!isNullOrEmpty(res.Data.Items)) {
src/views/tigerprojects/system/lowcode/high/dtl.vue
@@ -53,6 +53,7 @@
  const { t } = useI18n();
  const ACard = Card;
  const emit = defineEmits(['search']);
  const props = defineProps({
    colSlots: { type: Array as PropType<any[]> },
    useTableData: { type: Object as PropType<{}>, default: { table: [] } },
@@ -61,6 +62,7 @@
  });
  const objParams = inject('objParams') as Ref<any>;
  const data = inject('data') as Ref<any>;
  const _useTables = inject('useTables') as Ref<any>;
  const useFormData = inject('useFormData') as Ref<{}>;
  const others = inject('others') as Ref<Recordable[]>;
  const go = useGo();
@@ -103,10 +105,11 @@
  ] = isNullOrUnDef(custImport.value['default'])
    ? EntityCustFunction.value
    : custImport.value['default']();
  others.value = OthersValues(objParams['CODE'], objParams['ID']);
  const drawers = ref<any[]>(objParams['drawers']);
  const useTables = GetUseTables(data);
  others.value = OthersValues(objParams.value['CODE'], objParams.value['ID']);
  const drawers = ref<any[]>(objParams.value['drawers']);
  const useTables = GetUseTables(data, emit);
  const useDrawers = GetUseDrawers();
  _useTables.value = useTables;
  // watch(
  //   () => props.dataSource,
  //   (newVal, oldVal) => {
@@ -157,7 +160,7 @@
      isUpdate: true,
      ifSave: true,
      entityName: props.entityName,
      formJson: GetCrudForm(item), //getFormSchema(`${entityName.value}_Crud`),
      formJson: GetCrudForm(item, data), //getFormSchema(`${entityName.value}_Crud`),
      cType,
      dtlSlots,
      useModalData,
@@ -183,8 +186,7 @@
    if (isNullOrUnDef(custImport.value)) {
      return actionItem;
    }
    const [{ ActionItem }] = custImport.value['default']();
    return ActionItem(
    return nActionItem(
      params,
      actionItem,
      useDrawers[index][item][1].openDrawer,
@@ -242,18 +244,18 @@
      const Keys = Object.getOwnPropertyNames(useFormData.value);
      let i;
      for (i = 0; i < Keys.length; i++) {
        others.value[objParams['pCode']] = objParams['IsID']
        others.value[objParams.value['pCode']] = objParams.value['IsID']
          ? res[Keys[i]]['ID']
          : res[Keys[i]][objParams['pCode']] == '0' ||
              isNullOrUnDef(res[Keys[i]][objParams['pCode']])
            ? res[Keys[i]][objParams['mCode']]
            : res[Keys[i]][objParams['pCode']];
          : res[Keys[i]][objParams.value['pCode']] == '0' ||
              isNullOrUnDef(res[Keys[i]][objParams.value['pCode']])
            ? res[Keys[i]][objParams.value['mCode']]
            : res[Keys[i]][objParams.value['pCode']];
      }
      useDrawers[index][item][1].openDrawer(true, {
        isUpdate: false,
        ifSave: true,
        entityName: props.entityName,
        formJson: GetCrudForm(item), //getFormSchema(`${entityName.value}_Crud`),
        formJson: GetCrudForm(item, data), //getFormSchema(`${entityName.value}_Crud`),
        crudColSlots: props.crudColSlots,
        others: others.value,
      });
src/views/tigerprojects/system/lowcode/high/index.vue
@@ -4,7 +4,7 @@
 * @version: 
 * @Date: 2024-06-18 15:09:48
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-02 03:42:25
 * @LastEditTime: 2024-07-02 22:51:31
-->
<!--
 *                        _oo0oo_
@@ -49,12 +49,12 @@
    @back="goBack"
  >
    <Suspense>
      <baseForm />
      <baseForm :entityName="entityName" />
    </Suspense>
    <!-- <a-card :title="titleInfo['baseTableTitle']" :bordered="false" class="!mt-5"> -->
      <Suspense>
        <dtl :entityName="entityName" />
      </Suspense>
    <Suspense>
      <dtl :entityName="entityName" @search="dtlFormSearch" />
    </Suspense>
    <!-- </a-card> -->
    <a-card
      :title="item.title"
@@ -105,7 +105,13 @@
  import dtl from './dtl.vue';
  import baseForm from './baseForm.vue';
  import GeneralModal from '/@/views/components/GeneralModal.vue';
  import { AddListEntity, DeleteWhere, SaveEntity, getEntity } from '/@/api/tigerapi/system';
  import {
    AddAfterDelete,
    AddListEntity,
    DeleteWhere,
    SaveEntity,
    getEntity,
  } from '/@/api/tigerapi/system';
  import { useGlobSetting } from '/@/hooks/setting';
  import { useRoute, useRouter } from 'vue-router';
  import CustModal from '/@/views/components/CustModal.vue';
@@ -119,7 +125,6 @@
  import { buildUUID } from '/@/utils/uuid';
  import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
  import { useI18n } from '/@/hooks/web/useI18n';
import { Reactified } from '@vueuse/core';
  const { t } = useI18n();
@@ -135,9 +140,12 @@
    return tabStore.getTabList.find((item) => item.fullPath === route.fullPath)!;
  }
  const currentTab = getCurrentTab();
  const objParams = ref(JSON.parse(decodeURI(route.params?.id as string)));
  const routeParams = ref(JSON.parse(decodeURI(route.params?.id as string)));
  const entityName = ref(routeParams.value.Name);
  // 从sessionStorage中读取参数并转换回对象
  const savedParams = sessionStorage.getItem(`${routeParams.value.sName}_params`);
  const objParams = savedParams ? ref(JSON.parse(decodeURI(savedParams))) : ref({});
  const titleInfo = ref({}); //getTitle(objParams.value.Name);
  const entityName = ref(objParams.value.Name);
  const isAllUpdate = ref(objParams.value.CODE != '0');
  const globSetting = useGlobSetting();
  const formSchemas = ref({}); //弹出框或高级页面多表单结构
@@ -153,14 +161,16 @@
  const custImport = ref<any[]>([]);
  const others = ref<any>(null);
  const data = ref<any>({});
  for(const i in objParams.value['drawers']){
  const useTables = ref<any>({});
  for (const i in objParams.value['drawers']) {
    data.value[objParams.value['drawers'][i]['name']] = ref<Recordable[]>([]);
  }
  provide<Ref<any>>('objParams', objParams.value);
  provide<Ref<any>>('objParams', objParams);
  provide<Ref<any>>('data', data);
  provide<Ref<any>>('others', others);
  provide<Ref<{}>>('useFormData', useFormData);
  provide<Ref<any>>('baseCards', baseCards);
  provide<Ref<any>>('useTables', useTables);
  const [registerCust, { openModal: openCustomModal, closeModal }] = useModal();
  const { setTitle } = useTabs();
@@ -180,7 +190,7 @@
    /* 动态import实体名.ts的自定义方法 */
    try {
      custImport.value = await import(`../entityts/${entityName.value}.ts`);
      const [{GetTitle}] = custImport.value['default']();
      const [{ GetTitle }] = custImport.value['default']();
      titleInfo.value = GetTitle();
    } catch (e) {}
    isMounted.value = true;
@@ -200,19 +210,32 @@
          p.push(SaveEntity(res[Keys[i]], unref(isAllUpdate), baseCards.value[i]['entityName']));
        }
        Promise.all(p).then((action) => {
          DeleteWhere(
            ` ${objParams.value.pCode} = '${others.value[objParams.value.pCode]}'`,
            entityName.value,
          ).then((res) => {
            if (res.IsSuccessed) {
              data.value.forEach((item) => {
                item.ID = buildUUID();
              });
              AddListEntity(data.value, entityName.value).then((action) => {
                if (action.IsSuccessed) {
                  cancel();
                }
              });
          // DeleteWhere(
          //   ` ${objParams.value.pCode} = '${others.value[objParams.value.pCode]}'`,
          //   entityName.value,
          // ).then((res) => {
          //   if (res.IsSuccessed) {
          //     data.value.forEach((item) => {
          //       item.ID = buildUUID();
          //     });
          //     AddListEntity(data.value, entityName.value).then((action) => {
          //       if (action.IsSuccessed) {
          //         cancel();
          //       }
          //     });
          //   }
          // });
          let where = `${objParams.value['drawers'][0]['code']} = '${others.value[objParams.value['drawers'][0]['code']]}'`;
          data.value[objParams.value['drawers'][0]['name']].forEach((item) => {
            item.ID = buildUUID();
          });
          AddAfterDelete(
            objParams.value['drawers'][0]['name'],
            data.value[objParams.value['drawers'][0]['name']],
            where,
          ).then((action) => {
            if (action.IsSuccessed) {
              cancel();
            }
          });
        });
@@ -249,6 +272,25 @@
  }
  /**
   * @description: 表格查询回调,根据对应子组件中表格的查询按钮提交事件转入动态调用的实体名方法去执行对应的查询逻辑,返回后刷新数据
   * @param {*} d
   * @return {*}
   */
  function dtlFormSearch(d) {
    try {
      var values = useTables.value[d.type][1].getForm().getFieldsValue();
      let data = custImport.value['default']()[0].FormSearch({ ...d, ...{ values: values } });
      useTables.value[d.type][1].setProps({
        dataSource: [],
      });
      useTables.value[d.type][1].setProps({
        dataSource: data,
      });
      useTables.value[d.type][1].reload();
    } catch (e) {}
  }
  /**
   * @description: Select 自定义onChange方法
   * @param {*} obj
   * @return {*}
src/views/tigerprojects/system/lowcode/normal/mainTable.vue
@@ -254,7 +254,9 @@
      const result = CreateAction(fnName);
      switch (result.action) {
        case 'go':
          go(`/${result.url}/${encodeURI(JSON.stringify(result.params))}`);
          // 将对象转换为JSON字符串并保存到sessionStorage
          sessionStorage.setItem(`${result.params.Name}_params`, encodeURI(JSON.stringify(result.params)));
          go(`/${result.url}/${encodeURI(JSON.stringify({ sName: result.params.Name, Name: result.params.Name }))}`);
          break;
        case 'drawer':
          openDrawer(true, {