YangYuGang
2025-03-05 6cc2d85787171281c269f4a6c3290b4a0762bcb6
src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_TEMP.ts
@@ -4,28 +4,170 @@
 * @version:
 * @Date: 2024-06-19 20:34:27
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-06-22 00:33:55
 * @LastEditTime: 2024-08-20 15:03:44
 */
import { ActionItem } from '/@/components/Table';
import { DeleteLabelTemplate } from '/@/api/tigerapi/mes/label';
import { CustModalParams } from '/@/api/tigerapi/model/systemModel';
import { ActionItem, BasicColumn } from '/@/components/Table';
import { useWebSocketStore } from '/@/store/modules/websocket';
import { useI18n } from '/@/hooks/web/useI18n';
const { t } = useI18n();
function _default() {
  const ActionColumn: BasicColumn = {
    width: 120,
    title: '操作',
    dataIndex: 'action',
    slots: { customRender: 'action' },
    fixed: 'right',
  };
  /**
   * @description: 产品绑定工艺路线操作字段自定义按钮
   * @description: 些自定义方法
   * @return {*}
   */
  function ActionItem(params: Recordable<any>, data, ...args): ActionItem[] {
    return [
      ...data,
      ...[
        {
          icon: 'clarity:info-standard-line',
          tooltip: '模板变量',
          onClick: goDetail.bind(null, args[5], params),
        },
      ],
    ];
  }
  const methods = {
    /**
     * @description: 获取新增按钮的行为
     * @return {*}
     */
    CreateAction: (type: string, ...args) => {
      return {
        action: 'drawer', //drawer(打开左侧抽屉框) | go(跳转到新的页面)
      };
      // const colSlots = args[0];
      // return {
      //   action: 'go', //drawer(打开左侧抽屉框) | go(跳转到新的页面) | edit(如果是表格可编辑页面就是自定义方法)
      //   url: 'BAS_LABEL_VAR/High',
      //   params: {
      //     CODE: '0',
      //     ID: buildUUID(),
      //     Name: 'BAS_LABEL_VAR', //实体名
      //     Title: '新增模板', //标题
      //     pCode: 'LABEL_CODE', //主信息关键字段CODE
      //     IsID: true, //是否带过去侧边框的是ID,false就是CODE,true是ID
      //     colSlots: colSlots,
      //     colSlotsInHigh: ['BAS_LABEL_VAR1add', 'BAS_LABEL_VAR2add'],
      //     drawers: [
      //       {
      //         name: 'BAS_LABEL_VAR', //实体名
      //         code: 'LABEL_ID', //传递过去高级表单页面的关键字段名
      //         type: 'one', //one-表示需要code的一个值,默认是这个
      //         keyName: 'BAS_LABEL_VAR', //关键表名(实体名)
      //         order: 'VAR_NAME', //排序
      //         showTbButton: false, //是否显示工具栏按钮
      //         FnName: '', //自定义方法名
      //       },
      //       {
      //         name: 'BAS_LABEL_VAR_WO', //实体名
      //         code: 'LABEL_ID', //传递过去高级表单页面的关键字段名
      //         type: 'one', //all-表示需要code的所有的值
      //         keyName: 'BAS_LABEL_VAR_WO', //关键表名(实体名)
      //         order: '',
      //         showTbButton: true, //是否显示工具栏按钮
      //         FnName: 'AddRow', //自定义方法名
      //       },
      //     ], //drawers是右边弹出增改侧框的名字列表,及按钮的执行方法
      //   },
      // };
    },
    /**
     * @description: 操作字段自定义按钮
     * @return {*}
     */
    ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => {
      data.map((x) => {
        if (x.name == 'goDetail') {
          x.onClick = goDetail.bind(null, args[5], params);
          x.tooltip = '模板变量';
        }
        if (x.name == 'Delete') {
          x.popConfirm.confirm = Del.bind(null, args, params);
          x.tooltip = '删除';
        }
      });
      return data;
    },
    GetUseForm: () => {
      return {};
    },
    /**
     * @description: 自定义方法
     * @param {string} type
     * @param {array} args
     * @return {*}
     */
    CustFunc: (param: CustModalParams) => {
      const webSocketStore = useWebSocketStore();
      if (webSocketStore.GetSocketState == 1 && param.values['TEMP_TYPE'] == 0) {
        webSocketStore.sendMessage(
          `wsSubStrings ${param.values['ID']}_#_${param.values['TEMP_PATH']}`,
        );
      }
    },
    /**
     * @description: 选择过程变量弹出选择框成功返回赋值方法
     * @param {*} d
     * @param {*} u
     * @return {*}
     */
    GetSelectSuccess: (d, u) => {
      return {
        LABEL_CODE: d.values['val'],
      };
    },
    /**
     * @description: 打开客户弹出选择框
     * @param {Fn} openItemModal
     * @param {array} args
     * @return {*}
     */
    OpenSelectItem: (openItemModal: Fn, ...args) => {
      openItemModal(true, {
        title: '打印模板列表',
        schemas: [
          {
            field: 'LABEL_CODE',
            component: 'Input',
            label: '模板编码',
            colProps: {
              span: 12,
            },
          },
          {
            field: 'LABEL_NAME',
            component: 'Input',
            label: '模板名称',
            colProps: {
              span: 12,
            },
          },
        ],
        ItemColumns: [
          {
            title: t('模板编码'),
            dataIndex: 'LABEL_CODE',
            resizable: true,
            sorter: true,
            width: 200,
          },
          {
            title: t('模板名称'),
            dataIndex: 'LABEL_NAME',
            resizable: true,
            sorter: true,
            width: 180,
          },
        ],
        tableName: 'BAS_LABEL_TEMP',
        rowKey: 'LABEL_CODE',
        searchInfo: { TABLE_NAME: 'BAS_LABEL_TEMP' },
      });
    },
  };
  /* 以下是内部方法,不export,供上面的方法调用 */
  /**
   * @description: 跳转到详情页面方法
@@ -34,20 +176,67 @@
   */
  function goDetail(go: Fn, params: Recordable) {
    const id = {
      ID: 'BAS_LABEL_VAR',
      firstTabName: '标签模板变量',
      secondTabName: '', //'标签过程变量',
      firstTitle: '模板变量',
      secondTitle: '', //'过程变量',
      pageTitle: '标签模板变量', //详情页面标题
      contentStr: '这里是标签模板变量管理页面,可以管理标签的模板变量或者打印过程中的变量',
      detailName: `模板[${params['record'].LABEL_NAME}]`,
      others: { LABEL_ID: params['record'].ID },
      colSlots: ['BAS_LABEL_PV1add'],
      CODE: params['record']['LABEL_CODE'],
      ID: params['record']['ID'],
      Name: 'BAS_LABEL_VAR',
      SessionName: 'BAS_LABEL_VAR_update',
      Title: `编辑模板${params['record']['LABEL_CODE']}的变量`,
      pCode: 'LABEL_CODE',
      IsID: true,
      ifSave: false,
      colSlots: params['colSlots'].value, //['BAS_LABEL_VAR1add', 'BAS_LABEL_VAR2add'],
      colSlotsInHigh: ['BAS_LABEL_VAR1add', 'BAS_LABEL_VAR2add'],
      drawers: [
        {
          name: 'BAS_LABEL_VAR',
          code: 'LABEL_ID',
          type: 'one',
          keyName: 'BAS_LABEL_VAR',
          order: 'VAR_NAME',
          showTbButton: true,
          FnName: 'AddRow',
        },
        // {
        //   name: 'BAS_LABEL_VAR_WO',
        //   code: 'LABEL_ID',
        //   type: 'one',
        //   keyName: 'BAS_LABEL_VAR_WO',
        //   order: '',
        //   showTbButton: true,
        //   FnName: 'AddRow',
        // },
      ], //drawers是右边弹出增改侧框的名字列表
    };
    go(`/BAS_LABEL_VAR/${encodeURI(JSON.stringify(id))}`);
    // const webSocketStore = useWebSocketStore();
    // if (webSocketStore.GetSocketState == 1) {
    //   webSocketStore.sendMessage(
    //     `wsSubStrings 1d441e20c43a469286319de9b0df5d7b_#_http://localhost:8800/files/10位唯一ID.btw`,
    //   );
    // }
    // 将对象转换为JSON字符串并保存到sessionStorage
    sessionStorage.removeItem(`${id.SessionName}_params`);
    sessionStorage.setItem(`${id.SessionName}_params`, encodeURI(JSON.stringify(id)));
    go(
      `/BAS_LABEL_VAR/High/${encodeURI(JSON.stringify({ sName: id.SessionName, Name: id.Name }))}`,
    );
  }
  return [ActionItem];
  /**
   * @description: 自定义删除方法
   * @param {Fn} args
   * @param {*} params
   * @return {*}
   */
  function Del(args: Fn[], params: {}) {
    const reload = args[1];
    DeleteLabelTemplate(params['record']['ID']).then((action) => {
      if (action.IsSuccessed) {
        reload();
      }
    });
  }
  return [methods, ActionColumn];
}
export default _default;