Ben Lin
2025-03-05 abbc201b41a1a25a19ccf7cff8df633dadcf5d88
src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts
@@ -4,15 +4,17 @@
 * @version:
 * @Date: 2024-06-19 20:34:27
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-06 23:15:08
 * @LastEditTime: 2024-09-11 20:51:11
 */
import { Ref, ref } from 'vue';
import { DeleteEntity, getEntity } from '/@/api/tigerapi/system';
import { Ref, ref, unref } from 'vue';
import { DeleteEntity, getEntity, SaveEntity } from '/@/api/tigerapi/system';
import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table';
import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
import { useDrawer } from '/@/components/Drawer';
import { EditOperation, Search, custDel } from '../data';
import { SaveBasPkgRule } from '/@/api/tigerapi/mes/baserule';
import { BAS_PKG_RULE } from '/@/api/tigerapi/model/mesModel';
function _default(): any[] {
  const ActionColumn: BasicColumn = {
@@ -34,7 +36,7 @@
     * @description: 获取新增按钮的行为
     * @return {*}
     */
    CreateAction: (fnName: string) => {
    CreateAction: (type: string) => {
      return {
        action: 'drawer', //drawer(打开左侧抽屉框) | go(跳转到新的页面)
      };
@@ -57,22 +59,36 @@
     * @param {*} u
     * @return {*}
     */
    EditOperation: (data: Ref<any[]>, d, u, item) => {
    EditOperation: (data: Ref<any[]>, d, u, name) => {
      //更新
      var _data = data.value[item].map((item) => {
        if (item['ID'] == d.ID)
          return {
            ...item,
            PKG_CODE: d.PKG_CODE,
            PKG_NAME: d.PKG_NAME,
            PKG_LEVEL: d.PKG_LEVEL,
            PKG_QTY: d.PKG_QTY,
            LABEL_CODE: d.LABEL_CODE,
            REMARK: d.REMARK,
          };
      var _data = data.value[name].map((item) => {
        if (item['ID'] == d.ID) {
          if (name == 'BAS_PKG_DTL') {
            return {
              ...item,
              PKG_CODE: d.PKG_CODE,
              PKG_NAME: d.PKG_NAME,
              PKG_LEVEL: d.PKG_LEVEL,
              PKG_QTY: d.PKG_QTY,
              LABEL_CODE: d.LABEL_CODE,
              REMARK: d.REMARK,
            };
          }
          if (name == 'BAS_PKG_PROD') {
            return {
              ...item,
              ITEM_CODE: d.ITEM_CODE,
              MIN_WEIGHT: d.MIN_WEIGHT,
              MIN_UNIT: d.MIN_UNIT,
              MAX_WEIGHT: d.MAX_WEIGHT,
              MAX_UNIT: d.MAX_UNIT,
              REMARK: d.REMARK,
            };
          }
        }
        return item;
      });
      EditOperation(data, d, u, item, _data);
      EditOperation(data, d, u, name, _data);
    },
    /**
     * @description: 高级表单和详情页面返回主页面的url
@@ -197,6 +213,9 @@
        {
          BAS_PKG_DTL: useDrawer(),
        },
        {
          BAS_PKG_PROD: useDrawer(),
        },
      ];
    },
    /**
@@ -229,6 +248,28 @@
            fixed: 'right',
          }, //自定义操作列
        }),
        BAS_PKG_PROD: useTable({
          title: '列表信息',
          dataSource: data.value['BAS_PKG_PROD'],
          columns: baseColumns['BAS_PKG_PROD'],
          formConfig: {
            labelWidth: 140,
            schemas: searchForms['BAS_PKG_PROD'],
            submitFunc: () => Search('BAS_PKG_PROD', data, args[0]), //自定义查询提交按钮的方法,触发查询提交事件
          },
          useSearchForm: true,
          showTableSetting: false,
          bordered: true,
          canResize: true,
          showIndexColumn: false,
          actionColumn: {
            width: 130,
            title: '操作',
            dataIndex: 'action',
            slots: { customRender: 'action' },
            fixed: 'right',
          }, //自定义操作列
        }),
      };
    },
    /**
@@ -242,6 +283,12 @@
        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;
        case 'BAS_PKG_PROD':
          data = d.data.value[d.type].filter((item) => item.ITEM_CODE.includes(d.values.ITEM_CODE));
          if (isNullOrEmpty(d.values.ITEM_CODE)) {
            data = d.data.value[d.type];
          }
          break;
@@ -259,11 +306,48 @@
        pageContent: '这里可以添加和修改包装规则和包装信息。',
        tableTitle: {
          BAS_PKG_DTL: '包装信息管理',
          BAS_PKG_PROD: '称重范围管理',
        },
      };
    },
    GetUseForm: () => {
      return {};
    },
    /**
     * @description: 提交所有
     * @return {*}
     */
    SubmitAll: (data: Ref<any[]>, keyFieldValues: Ref<{}>, ...args) => {
      const validates = args[1].validates;
      const Keys = args[1].Keys;
      const isAllUpdate = args[1].isAllUpdate;
      const baseCards = args[1].baseCards;
      const IsExist = args[1].IsExist;
      /* 循环保存高级表单中主表单信息,如果有多个的话,所以要循环 */
      let i;
      let p = [] as Promise<any>[];
      for (i = 0; i < Keys.length; i++) {
        p.push(
          SaveEntity(
            validates[Keys[i]],
            unref(isAllUpdate),
            baseCards.value[i]['entityName'],
            `${IsExist}='${validates[Keys[i]][IsExist]}'`,
            true,
          ),
        );
      }
      Promise.all(p).then(() => {
        SaveBasPkgRule({
          PkgDtl: data.value['BAS_PKG_DTL'],
          PkgProd: data.value['BAS_PKG_PROD'],
          PkgRule: {} as unknown as BAS_PKG_RULE,
        }).then((action) => {
          if (action.IsSuccessed) {
            args[0]();
          }
        });
      });
    },
  };
@@ -317,6 +401,16 @@
        },
      },
    ] as FormSchema[],
    BAS_PKG_PROD: [
      {
        field: 'ITEM_CODE',
        label: '物料编码',
        component: 'Input',
        colProps: {
          span: 8,
        },
      },
    ] as FormSchema[],
  };
  const baseColumns = {
@@ -350,6 +444,49 @@
        dataIndex: 'PKG_QTY',
      },
      {
        title: '标签模板',
        dataIndex: 'LABEL_CODE',
      },
      {
        title: '包装规则ID',
        dataIndex: 'PKG_RULE_ID',
        ifShow: false,
      },
      {
        title: '备注',
        dataIndex: 'REMARK',
      },
      {
        title: '更新时间',
        dataIndex: 'UPDATE_TIME',
      },
      {
        title: '更新人',
        dataIndex: 'UPDATE_USER',
      },
    ] as BasicColumn[],
    BAS_PKG_PROD: [
      {
        title: '物料编码',
        dataIndex: 'ITEM_CODE',
      },
      {
        title: '称重下限',
        dataIndex: 'MIN_WEIGHT',
      },
      {
        title: '称重下限单位',
        dataIndex: 'MIN_UNIT',
      },
      {
        title: '称重上限',
        dataIndex: 'MAX_WEIGHT',
      },
      {
        title: '称重上限单位',
        dataIndex: 'MAX_UNIT',
      },
      {
        title: '包装规则ID',
        dataIndex: 'PKG_RULE_ID',
        ifShow: false,
@@ -369,6 +506,7 @@
    ] as BasicColumn[],
  };
  let disableQty = false;
  const crudForms = {
    BAS_PKG_DTL: [
      {
@@ -391,10 +529,18 @@
          span: 24,
        },
        componentProps: ({ formModel }) => {
          formModel.PKG_LEVEL =
            _data['BAS_PKG_DTL'].reduce((max, item) => {
              return max < Number(item.PKG_LEVEL) ? Number(item.PKG_LEVEL) : max;
            }, 0) + 1;
          if (isNullOrEmpty(formModel.PKG_LEVEL) || Number(formModel.PKG_LEVEL) == 0) {
            formModel.PKG_LEVEL =
              _data['BAS_PKG_DTL'].reduce((max, item) => {
                return max < Number(item.PKG_LEVEL) ? Number(item.PKG_LEVEL) : max;
              }, 0) + 1;
          }
          // if (formModel.PKG_LEVEL == 1) {
          //   disableQty = true;
          //   formModel.PKG_QTY = 1;
          // } else {
          //   disableQty = false;
          // }
          return {
            onChange: (e) => {},
          };
@@ -442,6 +588,27 @@
        colProps: {
          span: 24,
        },
        dynamicDisabled: ({ values }) => {
          return disableQty;
        },
      },
      {
        field: 'LABEL_CODE',
        label: '模板编码',
        component: 'Input',
        show: true,
        // required: true,
        colProps: {
          span: 22,
        },
      },
      {
        field: 'BAS_LABEL_TEMP1PSelect_0', //按低代码配置的规则,实体名+序号+PSelect_0,序号用来区分多个的时候,PSelect_0这是个固定后缀
        label: '1',
        defaultValue: 'BAS_LABEL_TEMP',
        component: 'Input',
        colProps: { span: 2 },
        colSlot: 'BAS_LABEL_TEMP1add', //按低代码配置的规则,实体名+序号+add,序号用来区分多个的时候,add这是个固定后缀
      },
      {
        label: '包装名称',
@@ -470,6 +637,89 @@
        show: false,
      },
    ] as FormSchema[],
    BAS_PKG_PROD: [
      {
        label: '包装规则ID',
        field: 'PKG_RULE_ID',
        component: 'Input',
        colProps: {
          span: 24,
        },
        dynamicDisabled: ({ values }) => {
          return true;
        },
      },
      {
        label: '物料编码',
        field: 'ITEM_CODE',
        component: 'Input',
        required: true,
        colProps: {
          span: 22,
        },
      },
      {
        field: 'BAS_ITEM1PSelect_0', //按低代码配置的规则,实体名+序号+PSelect_0,序号用来区分多个的时候,PSelect_0这是个固定后缀
        label: '1',
        defaultValue: 'BAS_ITEM',
        component: 'Input',
        colProps: { span: 2 },
        colSlot: 'BAS_ITEM1add', //按低代码配置的规则,实体名+序号+add,序号用来区分多个的时候,add这是个固定后缀
      },
      {
        label: '称重下限',
        field: 'MIN_WEIGHT',
        component: 'Input',
        required: true,
        colProps: {
          span: 24,
        },
      },
      {
        label: '称重下限单位',
        field: 'MIN_UNIT',
        required: true,
        component: 'Input',
        colProps: {
          span: 24,
        },
      },
      {
        label: '称重上限',
        field: 'MAX_WEIGHT',
        required: true,
        component: 'Input',
        colProps: {
          span: 24,
        },
      },
      {
        label: '称重上限单位',
        field: 'MAX_UNIT',
        required: true,
        component: 'Input',
        colProps: {
          span: 24,
        },
      },
      {
        label: '备注',
        field: 'REMARK',
        component: 'Input',
        colProps: {
          span: 24,
        },
      },
      {
        label: 'ID',
        field: 'ID',
        component: 'Input',
        colProps: {
          span: 24,
        },
        show: false,
      },
    ] as FormSchema[],
  };
  return [methods, ActionColumn];