import { doFetch } from './doFetch';

const selectValueType = (type, options) => {
  switch (type) {
    case 1:
      return {
        valueType: 'input',
        hideInTable: true,
      };
    case 2:
      return {
        valueType: 'select',
        hideInTable: true,
        options,
      };
    case 3:
      return {
        valueType: 'radio',
        hideInTable: true,
        options,
      };
    case 4:
      return {
        valueType: 'select',
        hideInTable: true,
        fieldProps: {
          mode: 'multiple',
        },
        options,
      };
    default:
      break;
  }
};

async function extraColumns({ url, params }) {
  let res = await doFetch({ url, params });
  if (res?.data?.dataList) {
    let column = [
      {
        title: '扩展字段',
        valueType: 'split',
      },
      res?.data?.dataList?.map?.((el) => {
        return {
          ...selectValueType(el.fieldChar, el.valueList),
          title: el.fieldName,
          dataIndex: el.id,
          key: el.id,
        };
      }),
    ];
    return column.flat();
  }
}

export default extraColumns;