Ben Lin
2024-07-03 a745761147b17a42b4698250a170ef4c0fa0b09b
src/views/tigerprojects/system/lowcode/entityts/ProdRouteBinding.ts
@@ -4,24 +4,26 @@
 * @version:
 * @Date: 2024-06-19 20:34:27
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-06-27 16:07:06
 * @LastEditTime: 2024-07-03 20:40:54
 */
import { Ref, ref, unref } from 'vue';
import { Ref, h, ref, render, unref } from 'vue';
import { GetRoutePTree, RouteToCust, RouteToProd } from '/@/api/tigerapi/mes/router';
import { GetEnum, convertToTree, getEntity } from '/@/api/tigerapi/system';
import { GetEnum, SaveEntity, convertToTree, getEntity } from '/@/api/tigerapi/system';
import { useLocale } from '/@/locales/useLocale';
import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
import { useI18n } from '/@/hooks/web/useI18n';
import { NavItem } from '/@/api/tigerapi/model/basModel';
import { useMessage } from '/@/hooks/web/useMessage';
import { useModal } from '/@/components/Modal';
import { V_MES_ROUTE_PTREE } from '/@/api/tigerapi/model/router';
import { FormSchema } from '/@/components/Table';
import { initRoute } from '../data';
const { t } = useI18n();
const { createErrorModal } = useMessage();
const { getLocale } = useLocale();
function _default() {
  /* 定义变量 */
  const isNormal = (type: number) => type === 0;
  const isScan = (type: number) => type === 1;
  const isAssy = (type: number) => type === 2;
@@ -29,6 +31,10 @@
  const isAudit = (type: number) => type === 4;
  const isPrint = (type: number) => type === 5;
  const isPackage = (type: number) => type === 6;
  /**
   * @description: 产品绑定工艺路线的一些自定义方法
   * @return {*}
   */
  const methods = {
    /**
     * @description: 获取树形图标
@@ -82,174 +88,22 @@
      data.fieldNames = { key: 'tid', title: 'name' };
      return data;
    },
    GetCrudForm: () => {
      return [
        {
          field: 'PROD_CODE',
          label: '产品编码',
          component: 'Input',
          dynamicDisabled: ({ values }) => {
            return true;
          },
          colProps: { span: 12 },
        },
        {
          field: 'ID',
          label: 'ID',
          component: 'Input',
          show: false,
        },
        {
          field: 'CUST_CODE',
          label: '客户编码',
          component: 'Input',
          dynamicDisabled: ({ values }) => {
            return true;
          },
          colProps: { span: 12 },
        },
        {
          field: 'ACT_TYPE',
          label: '行为类型',
          component: 'ApiSelect',
          colProps: { span: 12 },
          defaultValue: 0,
          componentProps: {
            api: GetEnum,
            params: { name: 'MES_PROD_ACTION+ACT_TYPEs' },
            resultField: 'Data',
            labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name',
            valueField: 'Value',
            // onChange: (e, v) => {
            //   alert(e)
            //   console.log('ApiSelect====>:', e, v);
            // },
          },
        },
        {
          field: 'IS_ACTIVE',
          label: '是否启用',
          required: true,
          component: 'Select',
          colProps: { span: 12 },
          componentProps: {
            options: [
              {
                label: '是',
                value: 'Y',
                key: 'Y',
              },
              {
                label: '否',
                value: 'N',
                key: 'N',
              },
            ],
          },
        },
        {
          field: 'RULE_CODE',
          label: '扫码验证',
          component: 'Input',
          colProps: { span: 10 },
          ifShow: ({ values }) => isScan(values.ACT_TYPE),
        },
        {
          field: '0',
          label: '1',
          defaultValue: '',
          component: 'Input',
          colProps: { span: 2, pull: 1 },
          ifShow: ({ values }) => isScan(values.ACT_TYPE),
          colSlot: 'scanadd',
        },
        {
          field: 'ITEM_CODE',
          label: '组装上料',
          colProps: { span: 10 },
          component: 'Input',
          ifShow: ({ values }) => isAssy(values.ACT_TYPE),
        },
        {
          field: '00',
          label: '1',
          defaultValue: '',
          component: 'Input',
          colProps: { span: 2, pull: 1 },
          ifShow: ({ values }) => isAssy(values.ACT_TYPE),
          colSlot: 'assyadd',
        },
        {
          field: 'TEST_CODE',
          label: '产品测试',
          colProps: { span: 10 },
          component: 'Input',
          ifShow: ({ values }) => isTest(values.ACT_TYPE),
        },
        {
          field: 'test0',
          label: '1',
          defaultValue: '',
          component: 'Input',
          colProps: { span: 2, pull: 1 },
          ifShow: ({ values }) => isTest(values.ACT_TYPE),
          colSlot: 'testadd',
        },
        {
          field: 'SAPL_CODE',
          label: '产品抽检',
          colProps: { span: 10 },
          component: 'Input',
          ifShow: ({ values }) => isAudit(values.ACT_TYPE),
        },
        {
          field: 'audit0',
          label: '1',
          defaultValue: '',
          component: 'Input',
          colProps: { span: 2, pull: 1 },
          ifShow: ({ values }) => isAudit(values.ACT_TYPE),
          colSlot: 'auditadd',
        },
        {
          field: 'LABEL_CODE',
          label: '标签打印',
          colProps: { span: 10 },
          component: 'Input',
          ifShow: ({ values }) => isPrint(values.ACT_TYPE),
        },
        {
          field: 'print0',
          label: '1',
          defaultValue: '',
          component: 'Input',
          colProps: { span: 2, pull: 1 },
          ifShow: ({ values }) => isPrint(values.ACT_TYPE),
          colSlot: 'printadd',
        },
        {
          field: 'pkgRULE_CODE',
          label: '包装规则',
          colProps: { span: 10 },
          component: 'Input',
          ifShow: ({ values }) => isPackage(values.ACT_TYPE),
        },
        {
          field: 'pkg0',
          label: '1',
          defaultValue: '',
          component: 'Input',
          colProps: { span: 2, pull: 1 },
          ifShow: ({ values }) => isPackage(values.ACT_TYPE),
          colSlot: 'pkgadd',
        },
        {
          field: 'REMARK',
          label: '备注',
          component: 'Input',
          colProps: { span: 12 },
        },
      ];
    /**
     * @description: 获取配置项表单字段,根据树形节点type不同而不同
     * @param {string} type
     * @return {*}
     */
    GetCrudForm: (type: string) => {
      let form: FormSchema[] = [];
      switch (type) {
        case 'Action':
          form = actionFormShema;
          break;
        case 'Node':
          form = nodeFormShema;
          break;
      }
      return form;
    },
    /**
     * @description: 获取表单中的字段插槽列表
@@ -258,32 +112,92 @@
    GetCrudColSlots: () => {
      return ['scanadd', 'assyadd', 'testadd', 'auditadd', 'printadd', 'pkgadd'];
    },
    /**
     * @description: 切换节点时事件方法
     * @return {*}
     */
    nodeChange: (params: {
      resetFields: any;
      setFieldsValue: any;
      objParams: Ref<any>;
      selectedNodes: Ref<any[]>;
    }) => {
      params['resetFields']();
      let sqlcmd = ' 1=1 ';
      if (!isNullOrEmpty(params['objParams'].value['CODE'])) {
        sqlcmd += `And PROD_CODE = '${params['objParams'].value['CODE']}'`;
      }
      // if (!isNullOrEmpty(Cust_Code.value)) {
      //   sqlcmd += `And CUST_CODE = '${Cust_Code.value}'`;
      // }
      if (!isNullOrEmpty(params['selectedNodes'].value[0].code)) {
        sqlcmd += `And ACT_ID = '${params['selectedNodes'].value[0].code}'`;
      if (!isNullOrEmpty(params['selectedNodes'].value[0].cust)) {
        sqlcmd += `And CUST_CODE = '${params['selectedNodes'].value[0].cust}'`;
      }
      if (!isNullOrEmpty(params['selectedNodes'].value[0].id)) {
        sqlcmd +=
          params['selectedNodes'].value[0].type == 'Action'
            ? `And ACT_ID = '${params['selectedNodes'].value[0].id}'`
            : `And NODE_ID = '${params['selectedNodes'].value[0].id}'`;
      }
      getEntity({
        sqlcmd: sqlcmd,
        entityName: 'MES_PROD_ACTION',
        entityName:
          params['selectedNodes'].value[0].type == 'Action' ? 'MES_PROD_ACTION' : 'MES_PROD_OPER',
      }).then((res) => {
        params['setFieldsValue']({
          PROD_CODE: params['objParams'].value['CODE'],
          ACT_TYPE: res.Data.Items[0].ACT_TYPE,
          CUST_CODE: params['selectedNodes'].value[0].cust,
        });
        params['resetFields']();
        if (params['selectedNodes'].value[0].type == 'Action') {
          params['setFieldsValue']({
            ID: res.Data.Items[0].ID,
            ACT_ID: res.Data.Items[0].ACT_ID,
            ROT_ID: res.Data.Items[0].ROT_ID,
            NODE_ID: res.Data.Items[0].NODE_ID,
            IS_ACTIVE: res.Data.Items[0].IS_ACTIVE,
            ITEM_CODE: res.Data.Items[0].ITEM_CODE,
            RULE_CODE: res.Data.Items[0].RULE_CODE,
            TEST_CODE: res.Data.Items[0].TEST_CODE,
            SAPL_CODE: res.Data.Items[0].SAPL_CODE,
            LABEL_CODE: res.Data.Items[0].LABEL_CODE,
            PKG_CODE: res.Data.Items[0].PKG_CODE,
            ACT_CODE: res.Data.Items[0].ACT_CODE,
            REMARK: res.Data.Items[0].REMARK,
            PROD_CODE: params['objParams'].value['CODE'],
            ACT_TYPE: res.Data.Items[0].ACT_TYPE,
            CUST_CODE: params['selectedNodes'].value[0].cust,
          });
        }
        if (params['selectedNodes'].value[0].type == 'Node') {
          params['setFieldsValue']({
            ID: res.Data.Items[0].ID,
            OPER_CODE: res.Data.Items[0].OPER_CODE,
            ROT_ID: res.Data.Items[0].ROT_ID,
            NODE_ID: res.Data.Items[0].NODE_ID,
            NODE_NAME: res.Data.Items[0].NODE_NAME,
            IS_ACTIVE: res.Data.Items[0].IS_ACTIVE,
            IS_CALC_FPY: res.Data.Items[0].IS_CALC_FPY,
            CAN_SKIP: res.Data.Items[0].CAN_SKIP,
            IS_INPUT: res.Data.Items[0].IS_INPUT,
            IS_OUTPUT: res.Data.Items[0].IS_OUTPUT,
            REMARK: res.Data.Items[0].REMARK,
            PROD_CODE: params['objParams'].value['CODE'],
            CUST_CODE: params['selectedNodes'].value[0].cust,
          });
        }
      });
    },
    /**
     * @description: 自定义提交方法
     * @return {*}
     */
    SubmitFunc: (values: Recordable<any>, type: string, emit) => {
      let entityName = '';
      switch (type) {
        case 'Action':
          entityName = 'MES_PROD_ACTION';
          break;
        case 'Node':
          entityName = 'MES_PROD_OPER';
          break;
      }
      SaveEntity(values, true, entityName).then((action) => {
        if (action.IsSuccessed) {
          emit('success');
        }
      });
    },
    /**
@@ -353,29 +267,27 @@
          for (i = 0; i < codes.length; i++) {
            if (d.which == 'addRoute') {
              RouteToProd({ rotId: codes[i], prodCode: args[1]['CODE'] });
            } else {
              RouteToCust({ rotId: codes[i], prodCode: args[1]['CODE'], custCode: '' });
            }
          }
          args[2]();
          break;
          case 'addCustomer':
            if (isNullOrEmpty(args[1]['CODE'])) {
              createErrorModal({
                title: t('sys.api.errorTip'),
                content: '产品为空,不能添加工艺路线,请点击左侧选择产品',
              });
              return;
            }
            let rotIds = d.ROT_ID.split(',');
            var i;
            for (i = 0; i < rotIds.length; i++) {
              RouteToCust({ rotId: rotIds[i], prodCode: args[1]['CODE'], custCode: d.CUST_CODE });
            }
            args[2]();
            break;
        case 'addCustomer':
          if (isNullOrEmpty(args[1]['CODE'])) {
            createErrorModal({
              title: t('sys.api.errorTip'),
              content: '产品为空,不能添加工艺路线,请点击左侧选择产品',
            });
            return;
          }
          let rotIds = d.ROT_ID.split(',');
          var i;
          for (i = 0; i < rotIds.length; i++) {
            RouteToCust({ rotId: rotIds[i], prodCode: args[1]['CODE'], custCode: d.CUST_CODE });
          }
          args[2]();
          break;
      }
      return value;
    },
@@ -387,6 +299,7 @@
      return {
        addRoute: useModal(),
        addCustomer: useModal(),
        editRoute: useModal(),
      };
    },
    /**
@@ -394,27 +307,32 @@
     * @param {string} type
     * @return {*}
     */
    GetTitle: () => {
    GetTitle: (type: string) => {
      return {
        configTitle: '行为配置',
        navTitle: '添加工艺路线',
        configTitle: type == 'Action' ? '行为配置' : '工序配置',
        navTitle: type == 'Product' ? '添加工艺路线' : '工艺路线维护',
      };
    },
    /**
     * @description: 根据选中的树节点判断要切换哪个组件
     * @description: 根据选中的树节点返回主页面,自定义方法,这里是判断要切换哪个组件
     * @param {Ref} selectedNodes
     * @return {*}
     */
    SelectNode: (selectedNodes: Ref<any[]>) => {
      let result = { showConfig: false, showNav: false };
      let result = {
        showConfig: false,
        showNav: false,
        type: selectedNodes.value[0].type,
        nodes: selectedNodes.value,
      };
      if (isNullOrUnDef(selectedNodes)) {
        return result;
      }
      if (selectedNodes.value[0].type == 'Product') {
      if (selectedNodes.value[0].type == 'Product' || selectedNodes.value[0].type == 'Route') {
        result.showNav = true;
        result.showConfig = false;
      }
      if (selectedNodes.value[0].type == 'Action') {
      if (selectedNodes.value[0].type == 'Action' || selectedNodes.value[0].type == 'Node') {
        result.showNav = false;
        result.showConfig = true;
      }
@@ -424,25 +342,43 @@
     * @description: 获取导航项
     * @return {*}
     */
    GetNavItems: () => {
      return [
        {
          title: '添加产品工艺路线',
          icon: 'add_green|svg',
          color: '#1fdaca',
          url: '/addRoute',
          action: 'addRoute',
          isStep: false,
        },
        {
          title: '添加客户工艺路线',
          icon: 'add_customer|svg',
          color: '#bf0c2c',
          url: '/addCustomer',
          action: 'addCustomer',
          isStep: true,
        },
      ] as NavItem[];
    GetNavItems: (type: string) => {
      let item: NavItem[] = [];
      switch (type) {
        case 'Product':
          item = [
            {
              title: '添加产品工艺路线',
              icon: 'add_green|svg',
              color: '#1fdaca',
              url: '/addRoute',
              action: 'addRoute',
              isStep: false,
            },
            {
              title: '添加客户工艺路线',
              icon: 'add_customer|svg',
              color: '#bf0c2c',
              url: '/addCustomer',
              action: 'addCustomer',
              isStep: true,
            },
          ];
          break;
        case 'Route':
          item = [
            {
              title: '编辑工艺路线',
              icon: 'clarity:note-edit-line',
              color: '#1fdaca',
              url: '/editRoute',
              action: 'editRoute',
              isStep: false,
            },
          ];
          break;
      }
      return item;
    },
    /**
     * @description: 导航页面切换按钮时调用方法
@@ -492,10 +428,75 @@
            title: '请完成以下步骤',
          });
          break;
        case 'editRoute':
          args[1](true, { rotId: args[2][0].id, slotName: '' });
          break;
      }
    },
    /**
     * @description: 获取卡片内配置列表,以循环显示多个卡片并配置多个插槽
     * @return {*}
     */
    GetBaseCards: (type: string) => {
      let reusts: any[] = [];
      switch (type) {
        case 'Product':
          reusts = [];
          break;
        case 'Route':
          reusts = [
            {
              name: 'RotInfo',
              slots: [],
              preIcons: {},
              title: '工艺路线图',
              entityName: '',
            },
          ];
          break;
      }
      return reusts;
    },
    /**
     * @description: 获取插槽列表
     * @return {*}
     */
    GetSlots: () => {
      return ['RotInfo'];
    },
    /**
     * @description: 生成html
     * @return {*}
     */
    GenerateHtml: (type: string | null) => {
      const newElement = document.createElement('div');
      // newElement.textContent = 'New Element =>'+type;
      // newElement.style.height = '250px';
      newElement.id = 'lfContainer';
      newElement.className = 'h-full';
      // newElement.style.color = 'blue';
      // newElement.style.fontSize = '16px';
      return newElement;
    },
    /**
     * @description: 自定义方法
     * @param {string} type
     * @param {array} args
     * @return {*}
     */
    CustFunc: (type: string | undefined, ...args) => {
      if (type == 'Route') {
        // initRoute(args[0], args[1]);
      }
    },
  };
  /* 以下是内部方法,不export,供上面的方法调用 */
  /**
   * @description: 弹出选择框-物料选择框配置
   * @return {*}
   */
  const itemCodeModalCfg = {
    title: '物料列表',
    schemas: [
@@ -529,6 +530,10 @@
    searchInfo: { TABLE_NAME: 'BAS_ITEM' },
  };
  /**
   * @description: 弹出选择框-规则选择框配置
   * @return {*}
   */
  const ruleModalCfg = {
    title: '规则列表',
    schemas: [
@@ -562,6 +567,10 @@
    searchInfo: { TABLE_NAME: 'BAS_CODE_RULE' },
  };
  /**
   * @description: 弹出选择框-打印模板选择框配置
   * @return {*}
   */
  const printModalCfg = {
    title: '打印模板列表',
    schemas: [
@@ -628,6 +637,372 @@
    searchInfo: { TABLE_NAME: 'BAS_PKG_RULE' },
  };
  /**
   * @description: 行为配置表单字段
   * @return {*}
   */
  const actionFormShema: FormSchema[] = [
    {
      field: 'PROD_CODE',
      label: '产品编码',
      component: 'Input',
      dynamicDisabled: ({ values }) => {
        return true;
      },
      colProps: { span: 12 },
    },
    {
      field: 'ID',
      label: 'ID',
      component: 'Input',
      show: false,
    },
    {
      field: 'ACT_ID',
      label: 'ACT_ID',
      component: 'Input',
      show: false,
    },
    {
      field: 'ROT_ID',
      label: 'ROT_ID',
      component: 'Input',
      show: false,
    },
    {
      field: 'ACT_CODE',
      label: 'ACT_CODE',
      component: 'Input',
      show: false,
    },
    {
      field: 'NODE_ID',
      label: 'NODE_ID',
      component: 'Input',
      show: false,
    },
    {
      field: 'CUST_CODE',
      label: '客户编码',
      component: 'Input',
      dynamicDisabled: ({ values }) => {
        return true;
      },
      colProps: { span: 12 },
    },
    {
      field: 'ACT_TYPE',
      label: '行为类型',
      component: 'ApiSelect',
      colProps: { span: 12 },
      defaultValue: 0,
      componentProps: {
        api: GetEnum,
        params: { name: 'MES_PROD_ACTION+ACT_TYPEs' },
        resultField: 'Data',
        labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name',
        valueField: 'Value',
        // onChange: (e, v) => {
        //   alert(e)
        //   console.log('ApiSelect====>:', e, v);
        // },
      },
    },
    {
      field: 'IS_ACTIVE',
      label: '是否启用',
      required: true,
      component: 'Select',
      colProps: { span: 12 },
      componentProps: {
        options: [
          {
            label: '是',
            value: 'Y',
            key: 'Y',
          },
          {
            label: '否',
            value: 'N',
            key: 'N',
          },
        ],
      },
    },
    {
      field: 'RULE_CODE',
      label: '扫码验证',
      component: 'Input',
      colProps: { span: 10 },
      ifShow: ({ values }) => isScan(values.ACT_TYPE),
    },
    {
      field: '0',
      label: '1',
      defaultValue: '',
      component: 'Input',
      colProps: { span: 2, pull: 1 },
      ifShow: ({ values }) => isScan(values.ACT_TYPE),
      colSlot: 'scanadd',
    },
    {
      field: 'ITEM_CODE',
      label: '组装上料',
      colProps: { span: 10 },
      component: 'Input',
      ifShow: ({ values }) => isAssy(values.ACT_TYPE),
    },
    {
      field: '00',
      label: '1',
      defaultValue: '',
      component: 'Input',
      colProps: { span: 2, pull: 1 },
      ifShow: ({ values }) => isAssy(values.ACT_TYPE),
      colSlot: 'assyadd',
    },
    {
      field: 'TEST_CODE',
      label: '产品测试',
      colProps: { span: 10 },
      component: 'Input',
      ifShow: ({ values }) => isTest(values.ACT_TYPE),
    },
    {
      field: 'test0',
      label: '1',
      defaultValue: '',
      component: 'Input',
      colProps: { span: 2, pull: 1 },
      ifShow: ({ values }) => isTest(values.ACT_TYPE),
      colSlot: 'testadd',
    },
    {
      field: 'SAPL_CODE',
      label: '产品抽检',
      colProps: { span: 10 },
      component: 'Input',
      ifShow: ({ values }) => isAudit(values.ACT_TYPE),
    },
    {
      field: 'audit0',
      label: '1',
      defaultValue: '',
      component: 'Input',
      colProps: { span: 2, pull: 1 },
      ifShow: ({ values }) => isAudit(values.ACT_TYPE),
      colSlot: 'auditadd',
    },
    {
      field: 'LABEL_CODE',
      label: '标签打印',
      colProps: { span: 10 },
      component: 'Input',
      ifShow: ({ values }) => isPrint(values.ACT_TYPE),
    },
    {
      field: 'print0',
      label: '1',
      defaultValue: '',
      component: 'Input',
      colProps: { span: 2, pull: 1 },
      ifShow: ({ values }) => isPrint(values.ACT_TYPE),
      colSlot: 'printadd',
    },
    {
      field: 'pkgRULE_CODE',
      label: '包装规则',
      colProps: { span: 10 },
      component: 'Input',
      ifShow: ({ values }) => isPackage(values.ACT_TYPE),
    },
    {
      field: 'pkg0',
      label: '1',
      defaultValue: '',
      component: 'Input',
      colProps: { span: 2, pull: 1 },
      ifShow: ({ values }) => isPackage(values.ACT_TYPE),
      colSlot: 'pkgadd',
    },
    {
      field: 'REMARK',
      label: '备注',
      component: 'Input',
      colProps: { span: 12 },
    },
  ];
  /**
   * @description: 工序配置表单字段
   * @return {*}
   */
  const nodeFormShema: FormSchema[] = [
    {
      field: 'PROD_CODE',
      label: '产品编码',
      component: 'Input',
      dynamicDisabled: ({ values }) => {
        return true;
      },
      colProps: { span: 12 },
    },
    {
      field: 'ID',
      label: 'ID',
      component: 'Input',
      show: false,
    },
    {
      field: 'ACT_ID',
      label: 'ACT_ID',
      component: 'Input',
      show: false,
    },
    {
      field: 'ROT_ID',
      label: 'ROT_ID',
      component: 'Input',
      show: false,
    },
    {
      field: 'NODE_ID',
      label: 'NODE_ID',
      component: 'Input',
      show: false,
    },
    {
      field: 'NODE_NAME',
      label: '工序节点名称',
      component: 'Input',
    },
    {
      field: 'CUST_CODE',
      label: '客户编码',
      component: 'Input',
      dynamicDisabled: ({ values }) => {
        return true;
      },
      colProps: { span: 12 },
    },
    {
      field: 'OPER_CODE',
      label: '工序编码',
      component: 'Input',
    },
    {
      field: 'IS_ACTIVE',
      label: '是否启用',
      required: true,
      component: 'Select',
      colProps: { span: 12 },
      componentProps: {
        options: [
          {
            label: '是',
            value: 'Y',
            key: 'Y',
          },
          {
            label: '否',
            value: 'N',
            key: 'N',
          },
        ],
      },
    },
    {
      field: 'IS_CALC_FPY',
      label: '是否计算直通率',
      required: true,
      component: 'Select',
      colProps: { span: 12 },
      componentProps: {
        options: [
          {
            label: '是',
            value: 'Y',
            key: 'Y',
          },
          {
            label: '否',
            value: 'N',
            key: 'N',
          },
        ],
      },
    },
    {
      field: 'CAN_SKIP',
      label: '是否允许跳站',
      required: true,
      component: 'Select',
      colProps: { span: 12 },
      componentProps: {
        options: [
          {
            label: '是',
            value: 'Y',
            key: 'Y',
          },
          {
            label: '否',
            value: 'N',
            key: 'N',
          },
        ],
      },
    },
    {
      field: 'IS_INPUT',
      label: '是否投入站',
      required: true,
      component: 'Select',
      colProps: { span: 12 },
      componentProps: {
        options: [
          {
            label: '是',
            value: 'Y',
            key: 'Y',
          },
          {
            label: '否',
            value: 'N',
            key: 'N',
          },
        ],
      },
    },
    {
      field: 'IS_OUTPUT',
      label: '是否产出站',
      required: true,
      component: 'Select',
      colProps: { span: 12 },
      componentProps: {
        options: [
          {
            label: '是',
            value: 'Y',
            key: 'Y',
          },
          {
            label: '否',
            value: 'N',
            key: 'N',
          },
        ],
      },
    },
    {
      field: 'REMARK',
      label: '备注',
      component: 'Input',
      colProps: { span: 12 },
    },
  ];
  return [methods];
}