Ben Lin
2024-11-25 6e6fec028ffc9a27b3c8d30eb484cd361a119d76
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/*
 * @Description: 包装规则相关
 * @Author: Ben Lin
 * @version:
 * @Date: 2024-06-19 20:34:27
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-09-10 23:49:55
 */
 
import { ActionItem, BasicColumn } from '/@/components/Table';
import { isNullOrUnDef } from '/@/utils/is';
import { buildUUID } from '/@/utils/uuid';
 
function _default() {
  const ActionColumn: BasicColumn = {
    width: 80,
    title: '操作',
    dataIndex: 'action',
    slots: { customRender: 'action' },
    fixed: undefined,
  };
 
  /**
   * @description: 一些自定义方法
   * @return {*}
   */
  const methods = {
    /**
     * @description: 获取新增按钮的行为
     * @return {*}
     */
    CreateAction: (type: string) => {
      return {
        action: 'go', //drawer(打开左侧抽屉框) | go(跳转到新的页面)
        url: 'BAS_PKG_DTL/High',
        params: {
          CODE: '0',
          ID: buildUUID(),
          Name: 'BAS_PKG_DTL',
          Title: '新增包装规则',
          IsExist: 'RULE_CODE',
          IsID: true,
          drawers: [
            {
              name: 'BAS_PKG_DTL', //实际的实体名
              dataType: 'V_BAS_PKG_DTL', //如果这里给了值,则会替换name的实体名去查询数据库
              code: 'PKG_RULE_ID',
              type: 'one',
              keyName: 'BAS_PKG_DTL',
              order: 'PKG_LEVEL',
            },
            {
              name: 'BAS_PKG_PROD', //实际的实体名
              code: 'PKG_RULE_ID',
              type: 'one',
              keyName: 'BAS_PKG_PROD',
              order: 'ITEM_CODE',
            },
          ], //drawers是右边弹出增改侧框的名字列表
        },
      };
    },
    /**
     * @description: 操作字段自定义按钮
     * @return {*}
     */
    ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => {
      if (!isNullOrUnDef(data[0])) {
        data[0].onClick = pkgGrpEdit.bind(null, args[5], params);
      }
      return data;
    },
    GetUseForm: () => {
      return {};
    },
  };
 
  /* 以下是内部方法,不export,供上面的方法调用 */
 
  /**
   * @description: 自定义编辑方法,跳转到高级页面
   * @param {Fn} args
   * @param {*} params
   * @return {*}
   */
  function pkgGrpEdit(go: Fn, params: {}) {
    const param = {
      CODE: params['record']['RULE_CODE'],
      ID: params['record']['ID'],
      Name: 'BAS_PKG_DTL',
      SessionName: 'BAS_PKG_DTL_update',
      Title: `编辑包装规则:${params['record']['RULE_CODE']}`,
      IsExist: 'RULE_CODE',
      IsID: true,
      crudColSlots: {BAS_PKG_DTL:['BAS_LABEL_TEMP1add'], BAS_PKG_PROD:['BAS_ITEM1add']} /* 增删改表单字段的插槽列表,一般用于弹出选择框按钮 */,
      drawers: [
        {
          name: 'BAS_PKG_DTL',
          dataType: 'V_BAS_PKG_DTL', //如果这里给了值,则会替换name的实体名去查数据库
          code: 'PKG_RULE_ID',
          type: 'one',
          keyName: 'BAS_PKG_DTL',
          order: 'PKG_LEVEL',
        },
        {
          name: 'BAS_PKG_PROD', //实际的实体名
          code: 'PKG_RULE_ID',
          type: 'one',
          keyName: 'BAS_PKG_DTL',
          order: 'ITEM_CODE',
        },
      ], //drawers是右边弹出增改侧框的名字列表
    };
    // 将对象转换为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];
}
 
export default _default;