import { BasicColumn } from '/@/components/Table';
import { FormSchema } from '/@/components/Table';
import { h } from 'vue';
import { Tag } from 'ant-design-vue';
import { Icon } from '/@/components/Icon';
import { useI18n } from '/@/hooks/web/useI18n';
import { allUser } from '/@/api/authorize/authorize';
import { copyTransFun } from '/@/utils/fnUtils';
const { t } = useI18n();

//菜单管理页，所需的列 配置
export const columns: BasicColumn[] = [
  {
    title: '系统名称',
    dataIndex: 'NAME',
    width: 240,
  },
  {
    title: '授权类型',
    dataIndex: 'AUTHORIZED_GRANT_TYPE_LABELS',
    width: 300,
  },
  {
    title: '创建时间',
    dataIndex: 'CREATE_TIME',
    width: 180,
    slots: { customRender: 'pdate' },
  },
  // {
  //   title: '审核状态',
  //   dataIndex: 'status',
  //   width: 110,
  //   slots: { customRender: 'status' },
  // },
  {
    title: '备注',
    dataIndex: 'NOTE',
    width: 240,
  },
];

const isDir = (type: string) => type === '0';
const isMenu = (type: string) => type === '1';
const isButton = (type: string) => type === '2';

//菜单管理页，所需的搜索内容
export const searchFormSchema: FormSchema[] = [
  {
    field: 'menuName',
    label: t('routes.common.system.tableTitleSystemMenuName'), //菜单名称
    // label: '菜单名称',
    component: 'Input',
    colProps: { span: 8 },
    componentProps: {
      maxLength: 255,
    },
    dynamicRules: () => {
      return [
        {
          required: false,
          validator: (_, value) => {
            if (String(value).length > 255) {
              return Promise.reject('字数不超过255个字');
            }
            return Promise.resolve();
          },
        },
      ];
    },
  },
  {
    field: 'status',
    label: t('routes.common.system.tableTitleSystemStatus'), //状态
    // label: '状态',
    component: 'Select',
    componentProps: {
      options: [
        { label: t('routes.common.system.tableTitleSystemEnable'), value: '0' },
        // { label: '启用', value: '0' },

        { label: t('routes.common.system.tableTitleSystemStop'), value: '1' },
        // { label: '停用', value: '1' },
      ],
    },
    colProps: { span: 8 },
  },
];

//----------------------------------新增、编辑----------------------------------------------------------
export const formSchema: FormSchema[] = [
  {
    field: 'name',
    label: '名称',
    required: true,
    component: 'Input',
    componentProps: {
      maxLength: 255,
      placeholder: '请输入应用名称',
    },
  },
  // {
  //   field: 'scope',
  //   label: '密匙范围',
  //   required: true,
  //   component: 'RadioButtonGroup',
  //   componentProps: {
  //     options: [
  //       {
  //         label: '系统内部',
  //         value: 'app'
  //       },
  //       {
  //         label: '平台',
  //         value: 'all'
  //       }
  //     ],
  //   },
  // },
  // {
  //   field: 'grantTypes',
  //   label: '授权方式',
  //   required: true,
  //   component: 'RadioButtonGroup',
  //   componentProps: {
  //     options: [
  //       {
  //         label: '授权码',
  //         value: 'authorization_code'
  //       },
  //       {
  //         label: '密码',
  //         value: 'password'
  //       },
  //       {
  //         label: '客户端凭证',
  //         value: 'client_credentials'
  //       },
  //       {
  //         label: 'token刷新口令',
  //         value: 'refresh_token'
  //       }
  //     ],
  //   },
  // },
  // {
  //   field: 'autoapprove',
  //   label: '自动授权',
  //   required: true,
  //   component: 'RadioButtonGroup',
  //   componentProps: {
  //     options: [
  //       {
  //         label: '是',
  //         value: true
  //       },
  //       {
  //         label: '否',
  //         value: false
  //       }
  //     ],
  //   },
  // },
  // {
  //   field: 'userid',
  //   label: '系统用户',
  //   component: 'ApiTreeSelect',
  //   componentProps: {
  //     replaceFields: {
  //       title: 'NAME',
  //       key: 'EMPLOYEE_ID',
  //       value: 'EMPLOYEE_ID',
  //     },
  //     placeholder: '请你用户！',
  //     api: async () => {
  //       return await allUser();
  //     },
  //     onChange(value) {
  //       userid.value = value;
  //     },
  //   },
  // },
  {
    field: 'note',
    label: '备注',
    component: 'InputTextArea',
    componentProps: {
      maxLength: 500,
      placeholder: '请输入备注',
    },
    dynamicRules: () => {
      return [
        {
          required: false,
          validator: (_, value) => {
            if (String(value).length > 500) {
              return Promise.reject('字数不超过500个字');
            }
            return Promise.resolve();
          },
        },
      ];
    },
  },
];
