import { Tag } from 'ant-design-vue';

import { BasicColumn } from '/@/components/Table/index';

import { ErrorTypeEnum } from '/@/enums/exceptionEnum';

import { useI18n } from '/@/hooks/web/useI18n';



const { t } = useI18n();



export function getColumns(): BasicColumn[] {

  return [

    {

      dataIndex: 'type',

      title: t('sys.errorLog.tableColumnType'),

      width: 80,

      customRender: ({ text }) => {

        const color =

          text === ErrorTypeEnum.VUE

            ? 'green'

            : text === ErrorTypeEnum.RESOURCE

            ? 'cyan'

            : text === ErrorTypeEnum.PROMISE

            ? 'blue'

            : ErrorTypeEnum.AJAX

            ? 'red'

            : 'purple';

        return <Tag color={color}>{() => text}</Tag>;

      },

    },

    {

      dataIndex: 'url',

      title: 'URL',

      width: 200,

    },

    {

      dataIndex: 'time',

      title: t('sys.errorLog.tableColumnDate'),

      width: 160,

    },

    {

      dataIndex: 'file',

      title: t('sys.errorLog.tableColumnFile'),

      width: 200,

    },

    {

      dataIndex: 'name',

      title: 'Name',

      width: 200,

    },

    {

      dataIndex: 'message',

      title: t('sys.errorLog.tableColumnMsg'),

      width: 300,

    },

    {

      dataIndex: 'stack',

      title: t('sys.errorLog.tableColumnStackMsg'),

    },

  ];

}



export function getDescSchema(): any {

  return getColumns().map((column) => {

    return {

      field: column.dataIndex!,

      label: column.title,

    };

  });

}