Ben Lin
2024-11-08 3d2c48733b86a03fc2e5a1f12ac3667ab0863b80
src/views/tigerprojects/system/lowcode/data.ts
@@ -1,68 +1,33 @@
/*
 *                                                     __----~~~~~~~~~~~------___
 *                                    .  .   ~~//====......          __--~ ~~
 *                    -.            \_|//     |||\\  ~~~~~~::::... /~
 *                 ___-==_       _-~o~  \/    |||  \\            _/~~-
 *         __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
 *     _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
 *   .~       .~       |   \\ -_    /  /-   /   ||      \   /
 *  /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
 *  |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
 *           '         ~-|      /|    |-~\~~       __--~~
 *                       |-~~-_/ |    |   ~\_   _-~            /\
 *                            /  \     \__   \/~                \__
 *                        _--~ _/ | .-~~____--~-/                  ~~==.
 *                       ((->/~   '.|||' -_|    ~~-/ ,              . _||
 *                                  -_     ~\      ~~---l__i__i__i--~~_/
 *                                  _-~-__   ~)  \--______________--~~
 *                                //.-~~~-~_--~- |-------~~~~~~~~
 *                                       //.-~~~--\
 *                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 *
 *                               神兽保佑            永无BUG
 */
/*
 * @Description: 通用低代码呈现页面主数据
 * @Author: Ben Lin
 * @version:
 * @version:
 * @Date: 2024-06-02 17:52:35
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-06-14 09:08:11
 * @LastEditTime: 2024-10-23 23:01:49
 */
import {
  dftGrpOpenSelectItem,
  dftGrpGetSelectSuccess,
  dftGrpactionColumn,
  baseSchema,
  DftGrpEdit,
  searchSchema,
  defectBaseColumn,
  crudSchema,
  DftGrpDel,
  dftEditeOperation,
} from './normal/basDefectGrp';
import { onChangeFns, rsnGrpEdit, rsGrpGetSelectSuccess, rsGrpOpenSelectItem, rsnBaseSchema, rsnCrudSchema, rsnSearchSchema, rsnBaseColumn, rsnGrpDel, rsnEditeOperation } from './normal/basReasonGrp';
import { DeleteEntity } from '/@/api/tigerapi/system';
import { ActionItem, BasicColumn, FormSchema } from '/@/components/Table';
import { ActionItem, FormSchema, PopConfirm } from '/@/components/Table';
import { useI18n } from '/@/hooks/web/useI18n';
import { isNullOrEmpty } from '/@/utils/is';
import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
import { woCustFn, woformSchema } from '/@/views/components/bizMesWo';
import { useModal } from '/@/components/Modal';
import { goDetail, labelActionItem, labelGetSelectSuccess, labelOpenSelectItem } from './detail/basLabelVar';
import { Ref, unref } from 'vue';
import { getRouteData, getWoRouteData } from '/@/api/tigerapi/mes/router';
import { buildUUID } from '/@/utils/uuid';
import { Tag } from 'ant-design-vue';
import { Ref, h } from 'vue';
import { pkgBaseColumn, pkgBaseSchema, pkgCrudSchema, pkgEditeOperation, pkgGrpEdit, pkgSearchSchema } from './basPkgrule';
import { useUserStore } from '/@/store/modules/user';
import { formatToDateTime } from '/@/utils/dateUtil';
import { DeleteEntity, getEntity } from '/@/api/tigerapi/system';
import { useGo } from '/@/hooks/web/usePage';
import { useQueryStore } from '/@/store/modules/queryInpage';
import { RouteRecordName } from 'vue-router';
import { cloneDeep } from 'lodash-es';
const { t } = useI18n();
/**
 * @description: 低代码页面获取操作字段结构Json,如增加按钮及方法
 * 攻略:
 *  1. 另新建驼峰实体名.ts的文件,如:basDefectGrp.ts。以便区别不同页面的方法
 *  1. 另新建驼峰实体名.ts的文件,如:BAS_REASON.ts。以便区别不同页面的方法
 *  2. 替换主页面编辑按钮方法变为跳转到高级页面,方法中传入 { CODE: 主表记录的关键字段值,一般是XXX_CODE的值, ID: 当前记录的ID, Name: 'BAS_DEFECT'(跳转过去需要新增编辑的实体名), Title: `编辑不良代码组:${params['record']['DFTG_CODE']}`(定义tab页签的标题), pCode: 'DFTG_CODE'(主表的关键字段代码) }
 *     替换主页面新增按钮方法同上
 *  3. 在菜单管理新建一个高级页面。
@@ -70,127 +35,14 @@
 *  5. 初始化表格 GetBasicColumnAndInit
 *  6. 设置返回 getHomeUrl
 *  7. 设置标题 getTitle
 *  8. 设置新增时就默认的值 getOthersValues
 *  8. 设置新增时就默认的值 getKeyFieldValues
 *  9. 替换删除方法 GetActionsData
 * @param {*} params
 * @param {array} args
 * @return {*}
 */
export function GetActionsData(params: {}, ...args: Fn[]) {
  let data = [
    {
      icon: 'clarity:note-edit-line',
      onClick: editRecord.bind(null, args[0], params),
    },
    {
      icon: 'ant-design:delete-outlined',
      color: 'error',
      popConfirm: {
        title: '是否确认删除?',
        placement: 'left',
        confirm: deleteRecord.bind(null, args[1], params),
      },
    },
  ] as ActionItem[];
  switch (params['entityName']) {
    /* 不良代码组 */
    case 'BAS_DEFECT_GRP':
      data[0].onClick = DftGrpEdit.bind(null, args, params); //替换主页面编辑按钮方法变为跳转到高级页面
      break;
    /* 不良代原因组 */
    case 'BAS_REASON_GRP':
      data[0].onClick = rsnGrpEdit.bind(null, args, params); //替换主页面编辑按钮方法变为跳转到高级页面
      break;
    case 'BAS_DEFECT':
      data[1].popConfirm.confirm = DftGrpDel.bind(null, args, params);
      break;
    case 'BAS_REASON':
      data[1].popConfirm.confirm = rsnGrpDel.bind(null, args, params);
      break;
    /* 包装规则 */
    case 'BAS_PKG_RULE':
      data[0].onClick = pkgGrpEdit.bind(null, args, params); //替换主页面编辑按钮方法变为跳转到高级页面
      break;
    case 'BAS_PKG_DTL':
      data[1].popConfirm.confirm = custDel.bind(null, args, params);
      break;
    /* 标签模板 */
    case 'BAS_LABEL_TEMP':
      const _data = labelActionItem;
      _data[0].onClick = goDetail.bind(null, args[5], params['record'])
      data = [...data, ..._data];
      break;
  }
  return data;
}
/**
 * @description: 自定义删除方法
 * @param {Fn} args
 * @param {*} params
 * @return {*}
 */
export function custDel(args: Fn[], params: {}) {
  if (!isNullOrEmpty(params['data'])) {
    var _data = params['data'].value.filter((item) => item['ID'] != params['record']['ID']);
    params['data'].value = _data;
    args[6]({
      dataSource: [],
    });
    args[6]({
      dataSource: params['data'],
    });
    args[1]();
  } else {
    DeleteEntity(params['record'], params['entityName']).then((action) => {
      if (action.IsSuccessed) {
        args[1]();
      }
    });
  }
}
/**
 * @description: 明细表中编辑方法
 * @return {*}
 */
export function EditOperation(type: string, data: Ref<any[]>, d, u) {
  switch (type) {
    case 'BAS_PKG_DTL':
        return pkgEditeOperation(data, d, u);
      break;
    case 'BAS_REASON':
      return rsnEditeOperation(data, d, u);
    case 'BAS_DEFECT':
      return dftEditeOperation(data, d, u);
  }
}
/**
 * @description: 获取新增按钮的行为
 * @param {string} type
 * @return {*}
 */
export function getCreateAction(type: string) {
  let data = { action: 'drawer', url: '', params: {} }; //drawer(打开左侧抽屉框) | go(跳转到新的页面)
  switch (type) {
    case 'BAS_DEFECT_GRP':
      data.action = 'go';
      data.url = 'BAS_DEFECT/High';
      data.params = { CODE: '0', ID: buildUUID(), Name: 'BAS_DEFECT', Title: '新增不良代码组', pCode: 'DFTG_CODE', IsID: false };
      break;
    case 'BAS_REASON_GRP':
      data.action = 'go';
      data.url = 'BAS_REASON/High';
      data.params = { CODE: '0', ID: buildUUID(), Name: 'BAS_REASON', Title: '新增不良原因组', pCode: 'RSNG_CODE', IsID: false };
      break;
    case 'BAS_PKG_RULE':
      data.action = 'go';
      data.url = 'BAS_PKG_DTL/High';
      data.params = { CODE: '0', ID: buildUUID(), Name: 'BAS_PKG_DTL', Title: '新增包装规则', pCode: 'PKG_RULE_ID', IsID: true };
      break;
  }
export function GetActionsData(params: {}, ...args) {
  const data = [] as ActionItem[];
  return data;
}
@@ -210,147 +62,6 @@
}
/**
 * @description: 公用编辑方法
 * @param {Fn} fn
 * @param {*} params
 * @return {*}
 */
function editRecord(fn: Fn, params: {}) {
  fn(true, params);
}
/**
 * @description: 公用删除方法
 * @param {Fn} fn
 * @param {*} params
 * @return {*}
 */
function deleteRecord(fn: Fn, params: {}) {
  console.log(params['record']);
  //删除
  DeleteEntity(params['record'], params['entityName']).then((action) => {
    if (action.IsSuccessed) {
      fn();
    }
  });
}
/**
 * @description: 获取操作列样式方法
 * @param {string} entityName
 * @return {*}
 */
export function GetActionColumn(entityName: string) {
  let data: BasicColumn = {};
  switch (entityName) {
    case 'BAS_DEFECT_GRP':
      data = dftGrpactionColumn;
      break;
    case 'BAS_LABEL_TEMP':
      data = {
        width: 120,
        title: '操作',
        dataIndex: 'action',
        slots: { customRender: 'action' },
        fixed: 'right',
      };
      break;
    default:
      data = {
        width: 80,
        title: '操作',
        dataIndex: 'action',
        slots: { customRender: 'action' },
        fixed: undefined,
      };
      break;
  }
  return data;
}
/**
 * @description: 打开弹出选择框选择成功后返回方法
 * @param {*} d
 * @param {*} u
 * @param {string} entityName
 * @return {*}
 */
export function GetSelectSuccess(d, u, entityName: string) {
  let data = {};
  switch (entityName) {
    case 'BAS_DEFECT_GRP':
      data = dftGrpGetSelectSuccess(d, u);
      break;
    case 'BAS_REASON_GRP':
      data = rsGrpGetSelectSuccess(d, u);
      break;
    case 'BAS_LABEL_PV':
      data = labelGetSelectSuccess(d, u);
      break;
    default:
      data = {
        ITEM_CODE: d.values['val'],
      };
      break;
  }
  return data;
}
/**
 * @description: 打开弹出选择框
 * @param {Fn} openItemModal
 * @param {string} entityName
 * @return {*}
 */
export function OpenSelectItem(openItemModal: Fn, entityName: string) {
  switch (entityName) {
    case 'BAS_DEFECT_GRP':
      dftGrpOpenSelectItem(openItemModal);
      break;
    case 'BAS_REASON_GRP':
      rsGrpOpenSelectItem(openItemModal);
      break;
    case 'BAS_LABEL_PV':
      labelOpenSelectItem(openItemModal);
      break;
    default:
      openItemModal(true, {
        title: '物料列表',
        schemas: [
          {
            field: 'ITEM_CODE',
            component: 'Input',
            label: '物料编码',
            colProps: {
              span: 12,
            },
          },
        ],
        ItemColumns: [
          {
            title: t('物料编码'),
            dataIndex: 'ITEM_CODE',
            resizable: true,
            sorter: true,
            width: 200,
          },
          {
            title: t('物料名称'),
            dataIndex: 'ITEM_NAME',
            resizable: true,
            sorter: true,
            width: 180,
          },
        ],
        tableName: 'BAS_ITEM',
        rowKey: 'ITEM_CODE',
        searchInfo: {TABLE_NAME: 'BAS_ITEM'}
      });
      break;
  }
}
/**
 * @description: Select 自定义onChange方法
 * @param {any} e
 * @param {string} fnName
@@ -361,14 +72,14 @@
  if (!isNullOrEmpty(fnName)) {
    switch (entityName) {
      case 'BAS_REASON':
        onChangeFns[fnName](e);
        // onChangeFns[fnName](e);
        break;
      default:
        break;
        (e) => { };
        (e) => {};
    }
  } else {
    (e) => { };
    (e) => {};
  }
}
@@ -419,7 +130,7 @@
        ],
        tableName: 'BAS_ITEM',
        rowKey: 'ITEM_CODE',
        searchInfo: {TABLE_NAME: 'BAS_ITEM'}
        searchInfo: { TABLE_NAME: 'BAS_ITEM' },
      });
      break;
  }
@@ -436,33 +147,6 @@
    case 'BIZ_MES_WO':
      _formSchema = woformSchema;
      break;
    case 'BAS_DEFECT_BaseForm':
      _formSchema = baseSchema;
      break;
    case 'BAS_DEFECT_Search':
      _formSchema = searchSchema;
      break;
    case 'BAS_DEFECT_Crud':
      _formSchema = crudSchema;
      break;
    case 'BAS_REASON_BaseForm':
      _formSchema = rsnBaseSchema;
      break;
    case 'BAS_REASON_Search':
      _formSchema = rsnSearchSchema;
      break;
    case 'BAS_REASON_Crud':
      _formSchema = rsnCrudSchema;
      break;
    case 'BAS_PKG_DTL_BaseForm':
      _formSchema = pkgBaseSchema;
      break;
    case 'BAS_PKG_DTL_Search':
      _formSchema = pkgSearchSchema;
      break;
    case 'BAS_PKG_DTL_Crud':
      _formSchema = pkgCrudSchema;
      break;
    default:
      break;
  }
@@ -470,147 +154,275 @@
}
/**
 * @description: 获取表格列
 * @param {string} entityName
 * @description: 工艺路线初始化
 * @param {*} lf
 * @return {*}
 */
export function GetBasicColumnAndInit(entityName: string, ...args) {
  let data: BasicColumn[] = [];
  switch (entityName) {
    case 'BAS_DEFECT':
      data = defectBaseColumn;
      args[0].value[entityName] = getFormSchema(entityName);
      args[0].value['BaseForm'] = getFormSchema('BAS_DEFECT_BaseForm');
      args[1].value = {
        BaseForm: args[4]({
          labelWidth: 120,
          schemas: args[0].value['BaseForm'],
          actionColOptions: {
            span: 24,
          },
          showActionButtonGroup: false,
        }),
      };
      args[2].value = [
        { name: 'BaseForm', slots: [], preIcons: {}, title: '不良代码组信息', entityName: 'BAS_DEFECT_GRP' },
        // {
        //   name: 'prodinfo',
        //   slots: ['addRot', 'setRot'],
        //   preIcons: { addRot: 'search|svg', setRot: 'config|svg' },
        //   title: '产品信息',
        // },
        // { name: 'rotinfo', slots: ['add'], preIcons: { add: 'search|svg' }, title: '工艺信息' },
      ];
      break;
    case 'BAS_REASON':
      data = rsnBaseColumn;
      args[0].value['BaseForm'] = getFormSchema('BAS_REASON_BaseForm');
      args[1].value = {
        BaseForm: args[4]({
          labelWidth: 120,
          schemas: args[0].value['BaseForm'],
          actionColOptions: {
            span: 24,
          },
          showActionButtonGroup: false,
        }),
      };
      args[2].value = [
        { name: 'BaseForm', slots: [], preIcons: {}, title: '不良原因组信息', entityName: 'BAS_REASON_GRP' },
      ];
      break;
    case 'BAS_PKG_DTL':
      data = pkgBaseColumn;
      args[0].value['BaseForm'] = getFormSchema('BAS_PKG_DTL_BaseForm');
      args[1].value = {
        BaseForm: args[4]({
          labelWidth: 120,
          schemas: args[0].value['BaseForm'],
          actionColOptions: {
            span: 24,
          },
          showActionButtonGroup: false,
        }),
      };
      args[2].value = [
        { name: 'BaseForm', slots: [], preIcons: {}, title: '包装信息', entityName: 'BAS_PKG_RULE' },
      ];
      break;
    default:
      break;
export async function initRoute(lf, rotId, routeData, currlf, rotType) {
  currlf.value = unref(lf);
  //通过工艺路线ID获取图形数据,并渲染
  const _data = rotType == 'Wo' ? await getWoRouteData(rotId) : await getRouteData(rotId);
  console.log('组件已挂载', _data);
  if (_data.Data != null) {
    _data.Data.nodes.forEach((n) => {
      n.node.properties = JSON.parse(n.node.properties);
      n['node']['text']['value'] = n.NODE_NAME;
      routeData.value.nodes.push(n['node']);
    });
    console.log('111', routeData.value);
    _data.Data.edges.forEach((e) => {
      e.edge.properties = JSON.parse(e.edge.properties);
      routeData.value.edges.push(e.edge);
    });
    _data.Data.acts.forEach((act) => {
      act.node.properties = JSON.parse(act.node.properties);
      routeData.value.nodes.push(act.node);
    });
    unref(lf).render(routeData.value);
    // lf.graphModel.translateCenter();
    // lf.graphModel.fitView();
  }
  return data;
}
/* 高级表单公用方法 *********************************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: 获取goback的url
 * @param {string} type
 * @description: 高级表单新增编辑方法
 * @param {Ref} data
 * @param {*} d
 * @param {*} u
 * @param {*} item
 * @param {*} updates
 * @return {*}
 */
export function getHomeUrl(type: string) {
  let url = '';
  switch (type) {
    case 'BAS_DEFECT':
      const param = { ID: 'BAS_DEFECT_GRP', colSlots: [], crudColSlots: [] };
      url = `/BAS_DEFECT_GRP/LC/${encodeURI(JSON.stringify(param))}`;
      break;
    case 'BAS_REASON':
      url = `/BAS_REASON_GRP/LC/${encodeURI(JSON.stringify({ ID: 'BAS_REASON_GRP', colSlots: [], crudColSlots: [] }))}`;
      break;
    case 'BAS_PKG_DTL':
      url = `/BAS_PKG_RULE/LC/${encodeURI(JSON.stringify({ ID: 'BAS_PKG_RULE', colSlots: [], crudColSlots: [] }))}`;
      break;
    default:
      break;
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;
    let _data2: any[] = cloneDeep(data.value[item]);
    _data2.push(d);
    data.value[item] = _data2;
  }
  return url;
}
/**
 * @description: 获取标题信息
 * @param {string} type
 * @description: 自定义删除方法
 * @param {Fn} args
 * @param {*} params
 * @return {*}
 */
export function getTitle(type: string) {
  let title = {};
  switch (type) {
    case 'BAS_DEFECT':
      title = { pageTitle: '不良代码组管理', pageContent: '这里可以添加和修改不良代码组和不良代码。', baseTableTitle: '不良代码管理' };
      break;
    case 'BAS_REASON':
      title = { pageTitle: '不良原因组管理', pageContent: '这里可以添加和修改不良原因组和不良代码。', baseTableTitle: '不良原因管理' };
      break;
    case 'BAS_PKG_DTL':
      title = { pageTitle: '包装规则管理', pageContent: '这里可以添加和修改包装规则和包装信息。', baseTableTitle: '包装信息管理' };
      break;
    default:
      break;
export function custDel(args: Fn[], params: {}) {
  const name = params['name'];
  const useTables = args[1];
  if (!isNullOrEmpty(params['data'])) {
    const _data = params['data'].value[name].filter((item) => item['ID'] != params['record']['ID']);
    params['data'].value[name] = _data;
    useTables[name][1].setProps({
      dataSource: [],
    });
    useTables[name][1].setProps({
      dataSource: params['data'].value[name],
    });
    useTables[name][1].reload();
  } else {
    DeleteEntity(params['record'], params['entityName']).then((action) => {
      if (action.IsSuccessed) {
        useTables[name][1].reload();
      }
    });
  }
  return title;
}
/* 高级表单公用方法 *********************************End */
/**
 * @description: 获取权限按钮列表
 * @param {*} params
 * @return {*}
 */
export function GenerateActionButton(params: any, buttons: Ref<[]>, openDrawer: Fn, reload: Fn) {
  const actionItem = [] as ActionItem[];
  buttons.value.map((x) => {
    if (x['BUTTON_TYPE'] == 1) {
      let url = '';
      let color = undefined as 'success' | 'error' | 'warning' | undefined;
      let _click = null as any;
      let _popConfirm = undefined as PopConfirm | undefined;
      let _tooltip = '';
      if (x['DO_METHOD'] == 'Edit') {
        url = 'clarity:note-edit-line';
        _tooltip = '编辑';
        _click = editRecord.bind(null, openDrawer, params);
      } else {
        _click = () => {};
        if (x['DO_METHOD'] == 'Delete') {
          url = 'ant-design:delete-outlined';
          color = 'error';
          _tooltip = '删除';
          _popConfirm = {
            title: '是否确认删除?',
            placement: 'left',
            confirm: deleteRecord.bind(null, reload, params),
          };
        }
      }
      actionItem.push({
        icon: isNullOrEmpty(x['ICON_URL']) ? url : x['ICON_URL'],
        tooltip: _tooltip,
        onClick: _click,
        color: color,
        popConfirm: _popConfirm,
        name: x['DO_METHOD'],
      });
    }
  });
  return actionItem;
}
/**
 * @description: 获取需要新增时就默认的值,一般是主表信息
 * @param {string} type
 * @param {string} val
 * @description: 公用编辑方法
 * @param {Fn} fn
 * @param {*} params
 * @return {*}
 */
export function getOthersValues(type: string, val: string, id: string) {
  let Values = {};
  switch (type) {
    case 'BAS_DEFECT':
      Values = { DFTG_CODE: val };
      break;
    case 'BAS_REASON':
      Values = { RSNG_CODE: val };
      break;
    case 'BAS_PKG_DTL':
      Values = { PKG_RULE_ID: id };
      break;
    default:
      break;
  }
  return Values;
export function editRecord(fn: Fn, params: {}) {
  fn(true, params);
}
/**
 * @description: 公用删除方法
 * @param {Fn} fn
 * @param {*} params
 * @return {*}
 */
function deleteRecord(fn: Fn, params: {}) {
  console.log(params['record']);
  //删除
  DeleteEntity(params['record'], params['entityName']).then((action) => {
    if (action.IsSuccessed) {
      fn();
    }
  });
}
/**
 * @description: 跳转并根据传入的参数通过session传入
 * @param {string} path 跳转地址
 * @return {*}
 */
export function goByParams(path: string, params: {}, go) {
  if (path.split('/').length > 2 && path.split('/')[2] == 'LC') {
    getEntity({
      sqlcmd: `ASSEMBLY_NAME ='${path.split('/')[1]}'`,
      entityName: 'SYS_LOW_CODE',
      order: '',
    }).then((data) => {
      const searchForms = JSON.parse(data.Data.Items[0].SEARCH_FORM_JSON);
      const colSlots = [] as string[];
      for (const i in searchForms) {
        if (!isNullOrUnDef(searchForms[i]['colSlot'])) {
          colSlots.push('form-' + searchForms[i]['colSlot']);
        }
      }
      const _cruds = JSON.parse(data.Data.Items[0].FORM_JSON);
      const crudColSlots = [] as string[];
      for (const i in _cruds) {
        if (!isNullOrUnDef(_cruds[i]['colSlot'])) {
          crudColSlots.push(_cruds[i]['colSlot']);
        }
      }
      const id = {
        ID: path.split('/')[1],
        colSlots: colSlots,
        crudColSlots: crudColSlots,
        sName: `${path.split('/')[1]}_update`,
      };
      // 将对象转换为JSON字符串并保存到sessionStorage
      sessionStorage.removeItem(`${id.sName}_params`);
      sessionStorage.setItem(`${id.sName}_params`, encodeURI(JSON.stringify({ params: params })));
      go(`/${path.split('/')[1]}/${path.split('/')[2]}/${encodeURI(JSON.stringify(id))}`);
    });
  } else if (
    (path.split('/').length > 2 && path.split('/')[2] == 'High') ||
    path.split('/')[2] == 'CP'
  ) {
    const id = { sName: `${path.split('/')[1]}_update`, Name: path.split('/')[1], params: params };
    // 将对象转换为JSON字符串并保存到sessionStorage
    sessionStorage.removeItem(`${id.sName}_params`);
    sessionStorage.setItem(`${id.sName}_params`, encodeURI(JSON.stringify(id)));
    go(
      `/${path.split('/')[1]}/${path.split('/')[2]}/${encodeURI(JSON.stringify({ sName: id.sName, Name: id.Name }))}`,
    );
  } else {
    const id = { sName: `${path.split('/')[1]}_update`, params: params };
    // 将对象转换为JSON字符串并保存到sessionStorage
    sessionStorage.removeItem(`${id.sName}_params`);
    sessionStorage.setItem(`${id.sName}_params`, encodeURI(JSON.stringify(id)));
    go(`${path}/${encodeURI(JSON.stringify({ sName: id.sName }))}`);
  }
}
/**
 * @description: 调用api前,参数整理
 * @param {*} t
 * @return {*}
 */
export function SearchInfoFn(param: any, name: RouteRecordName | null | undefined, ByOrg: boolean) {
  const useQuery = useQueryStore();
  if (
    !isNullOrUnDef(useQuery.getCurSearchInfo) &&
    useQuery.getCurSearchInfo.some((q) => q.name == name)
  ) {
    const curSearchInfo = useQuery.getCurSearchInfo.filter((q) => q.name == name);
    const Keys = Object.getOwnPropertyNames(curSearchInfo[0].searchInfo);
    for (const k in Keys) {
      if (Keys[k] != 'page' && Keys[k] != 'pageSize') {
        param[Keys[k]] = curSearchInfo[0].searchInfo[Keys[k]];
      }
    }
    useQuery.setCurSearchInfo({ name: name, searchInfo: param });
  }
  if (isNullOrEmpty(param.option) && ByOrg) {
    param.option = {
      //根据据点查询,必需带这个参数
      UserId: useUserStore().getUserInfo.userId,
      ByOrg: true,
      CurOrg: useUserStore().getUserInfo.orgCode,
    };
  }
  return param;
}
/**
 * @description: 请求之后对返回值进行处理
 * @param {*} t
 * @return {*}
 */
export function afterFetchFn(t: any, name: RouteRecordName | null | undefined, f) {
  const useQuery = useQueryStore();
  if (
    !isNullOrUnDef(useQuery.getCurSearchInfo) &&
    useQuery.getCurSearchInfo.some((q) => q.name == name)
  ) {
    const curSearchInfo = useQuery.getCurSearchInfo.filter((q) => q.name == name);
    f.setFieldsValue(curSearchInfo[0].searchInfo);
  }
}