Ben Lin
2024-07-02 04259fe9c84d819791cab926b959cab8dc6584b6
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/*
 * @Description: 班制相关
 * @Author: Ben Lin
 * @version:
 * @Date: 2024-06-19 20:34:27
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-02 03:29:35
 */
 
import { ActionItem, BasicColumn } from '/@/components/Table';
import { buildUUID } from '/@/utils/uuid';
import { useI18n } from '/@/hooks/web/useI18n';
import { isNullOrUnDef } from '/@/utils/is';
 
const { t } = useI18n();
function _default() {
  const ActionColumn: BasicColumn = {
    width: 100,
    title: '操作',
    dataIndex: 'action',
    slots: { customRender: 'action' },
    fixed: 'right',
  };
  /**
   * @description: 一些自定义方法
   * @return {*}
   */
  const methods = {
    /**
     * @description: 获取新增按钮的行为
     * @return {*}
     */
    CreateAction: (fnName: string) => {
      return {
        action: 'go', //drawer(打开左侧抽屉框) | go(跳转到新的页面)
        url: 'MES_SHIFT/High',
        params: {
          CODE: '0',
          ID: buildUUID(),
          Name: 'MES_SHIFT', //实体名
          Title: '新增班制', //标题
          pCode: 'SFTS_CODE', //主信息关键字段CODE
          IsID: false, //是否带过去侧边框的是ID,false就是CODE,true是ID
          drawers: [
            { name: 'MES_SHIFT', code: 'SFTS_CODE' },
            { name: 'MES_SHIFT_PRD', code: 'SFT_CODE' },
          ], //drawers是右边弹出增改侧框的名字列表
        },
      };
    },
    /**
     * @description: 操作字段自定义按钮
     * @return {*}
     */
    ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => {
      if (!isNullOrUnDef(data[0])) {
        data[0].onClick = Edit.bind(null, args, params);
      }
      return data;
    },
    /**
     * @description: 弹出选择框成功返回方法
     * @param {*} d
     * @param {*} u
     * @return {*}
     */
    GetSelectSuccess: (d, u) => {
      return {
        ITEM_CODE: d.values['val'],
      };
    },
    /**
     * @description: 弹出选择框打开方法
     * @param {Fn} openItemModal
     * @return {*}
     */
    OpenSelectItem: (openItemModal: Fn, ...args) => {
      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' },
      });
    },
  };
 
  /* 以下是内部方法,不export,供上面的方法调用 */
 
  /**
   * @description: 自定义编辑方法
   * @param {Fn} args
   * @param {*} params
   * @return {*}
   */
  function Edit(args: Fn[], params: {}) {
    const param = {
      CODE: params['record']['SFTS_CODE'], //CODE的值
      ID: params['record']['ID'], //ID值
      Name: 'MES_SHIFT', //实体名
      Title: `编辑班制:${params['record']['SFTS_CODE']}`, //标题
      // pCode: 'SFTS_CODE', //主信息关键字段CODE,高级表单用下面drawers里的code
      IsID: false, //是否带过去侧边框的是ID,false就是CODE,true是ID
      drawers: [
        { name: 'MES_SHIFT', code: 'SFTS_CODE' },
        { name: 'MES_SHIFT_PRD', code: 'SFT_CODE' },
      ], //drawers是右边弹出增改侧框的名字列表
    };
    args[5](`/MES_SHIFT/High/${encodeURI(JSON.stringify(param))}`);
  }
 
  return [methods, ActionColumn];
}
 
export default _default;