// @ts-ignore: 忽略
import type { VbenFormSchema } from '@vben/common-ui';

// @ts-ignore: 忽略
import type { VxeColumnPropTypes } from '#/adapter/vxe-table';

import { h } from 'vue';

// @ts-ignore: 忽略
import { reviewStatusOptions } from '#/utils/dicts';

/**
 * 搜索表单配置
 */
export function queryFormSchema(): VbenFormSchema[] {
  return [
    {
      component: 'Input',
      componentProps: {
        placeholder: '请输入考生姓名',
      },
      fieldName: 'userName',
      label: '考生姓名',
    },
    {
      component: 'Select',
      componentProps: {
        placeholder: '请选择批改状态',
        options: reviewStatusOptions,
      },
      fieldName: 'reviewStatus',
      label: '批改状态',
    },
  ];
}

/**
 * 表格列配置
 */
export const tableColumns: VxeColumnPropTypes[] = [
  {
    title: '考试姓名',
    field: 'userName',
    showOverflow: true,
  },
  {
    title: '批改人员',
    field: 'correctorName',
    showOverflow: true,
  },
  {
    title: '批改状态',
    field: 'reviewStatus',
    showOverflow: true,
    slots: {
      // @ts-ignore: 忽略
      default: ({ row }) => {
        const reviewStatus = reviewStatusOptions.find(
          (item) => item.value === row.reviewStatus,
        );
        // 字体颜色，返回 h函数
        return h(
          'span',
          { style: { color: reviewStatus?.color } },
          reviewStatus?.label,
        );
      },
    },
  },
  {
    title: '批改时间',
    field: 'updateTime',
    showOverflow: true,
  },
  {
    title: '操作',
    field: 'action',
    align: 'center',
    slots: { default: 'action' },
  },
];
