import dayjs from 'dayjs';

function getcolumns(setdrawer) {
  const disabledDateOfDay = (current) => {
    // Can not select days before today and today
    return current && current < dayjs().endOf('day');
  };
  const disabledDateOfMonth = (current) => {
    // Can not select days before today and today
    return current && current < dayjs().startOf('month');
  };
  const columns_day = [
    {
      title: '设备编号',
      dataIndex: 'equipmentNo',
      key: 'equipmentNo',
      editable: false,
    },
    {
      title: '设备名称',
      dataIndex: 'equipmentName',
      key: 'equipmentName',
      editable: false,
    },
    {
      title: '工厂名称',
      dataIndex: 'factoryName',
      key: 'factoryId',
      hideInForm: true,
      valueType: 'select',
      fieldProps: {
        placeholder: '请选择',
        showSearch: true,
      },
      options: {
        path: '/auth/sysFactory/getAllFactorySelection',
        params: {},
      },
      editable: false,
    },
    {
      title: '车间名称',
      dataIndex: 'shopName',
      key: 'shopId',
      hideInForm: true,
      valueType: 'select',
      fieldProps: {
        placeholder: '请选择',
        showSearch: true,
      },
      options: {
        path: '/auth/sysShop/getAllShopSelection',
        params: {},
      },
      editable: false,
    },
    {
      title: '下次保养日期',
      dataIndex: 'nextMaintainDate',
      formItemProps: {
        rules: [
          {
            required: true,
            message: '此项为必填项',
          },
        ],
      },
      fieldProps: {
        disabledDate: disabledDateOfDay,
      },
      valueType: 'date',
      hideInSearch: true,
    },
  ];
  const columns_month = [
    {
      title: '设备编号',
      dataIndex: 'equipmentNo',
      key: 'equipmentNo',
      editable: false,
    },
    {
      title: '设备名称',
      dataIndex: 'equipmentName',
      key: 'equipmentName',
      editable: false,
    },
    {
      title: '工厂名称',
      dataIndex: 'factoryName',
      key: 'factoryId',
      hideInForm: true,
      valueType: 'select',
      fieldProps: {
        placeholder: '请选择',
        showSearch: true,
      },
      options: {
        path: '/auth/sysFactory/getAllFactorySelection',
        params: {},
      },
      editable: false,
    },
    {
      title: '车间名称',
      dataIndex: 'shopName',
      key: 'shopId',
      hideInForm: true,
      valueType: 'select',
      fieldProps: {
        placeholder: '请选择',
        showSearch: true,
      },
      options: {
        path: '/auth/sysShop/getAllShopSelection',
        params: {},
      },
      editable: false,
    },
    {
      title: '下次保养日期',
      dataIndex: 'nextMaintainDate',
      formItemProps: {
        rules: [
          {
            required: true,
            message: '此项为必填项',
          },
        ],
      },
      fieldProps: {
        disabledDate: disabledDateOfMonth,
      },
      valueType: 'dateMonth',
      hideInSearch: true,
    },
  ];
  return [
    {
      tab: '未完成',
      key: '1',
      columns: [
        {
          title: '保养计划号',
          dataIndex: 'maintainNo',
          key: 'maintainNo',
          hideInForm: true,
          render: (text, row, _, action) => {
            return (
              <a
                onClick={() => {
                  setdrawer((s) => ({
                    ...s,
                    open: true,
                    val: 'detail',
                    title: '详细信息',
                    item: row,
                  }));
                }}
              >
                {row?.maintainNo}
              </a>
            );
          },
        },
        {
          title: '设备编号',
          dataIndex: 'equipmentNo',
          key: 'equipmentNo',
          hideInForm: true,
        },
        {
          title: '设备名称',
          dataIndex: 'equipmentName',
          key: 'equipmentName',
          hideInForm: true,
        },
        {
          title: '工厂名称',
          dataIndex: 'factoryName',
          key: 'factoryId',
          valueType: 'select',
          fieldProps: {
            showSearch: true,
          },
          mode: 'radio',
          options: {
            path: '/auth/sysFactory/getAllFactorySelection',
            params: {},
          },
          hideInForm: true,
        },
        {
          title: '车间名称',
          dataIndex: 'shopName',
          key: 'shopId',
          fieldProps: {
            showSearch: true,
          },
          valueType: 'select',
          mode: 'radio',
          options: {
            path: '/auth/sysShop/getAllShopSelection',
            params: {},
          },
          hideInForm: true,
        },
        {
          title: '保养类型',
          dataIndex: 'maintainTypeName',
          key: 'maintainType',
          valueType: 'select',
          mode: 'radio',
          options: [
            {
              label: '自主保养',
              value: '1',
            },
            {
              label: '专业保养',
              value: '2',
            },
          ],
          formItemProps: {
            rules: [
              {
                required: true,
                message: '此项为必填项',
              },
            ],
          },
        },
        {
          title: '保养频次',
          dataIndex: 'maintainFrequencyName',
          key: 'maintainFrequency',
          formItemProps: {
            rules: [
              {
                required: true,
                message: '此项为必填项',
              },
            ],
          },
          valueType: 'select',
          mode: 'radio',
          options: [
            {
              label: '周',
              value: '0',
            },
            {
              label: '月度',
              value: '1',
            },
            {
              label: '季度',
              value: '2',
            },
            {
              label: '半年',
              value: '3',
            },
            {
              label: '年度',
              value: '4',
            },
          ],
        },
        {
          title: '计划类型',
          dataIndex: 'isCycle',
          key: 'isCycle',
          valueType: 'select',
          mode: 'radio',
          options: [
            {
              label: '单次',
              value: '1',
            },
            {
              label: '周期',
              value: '2',
            },
          ],
          hideInForm: false,
          formItemProps: {
            rules: [
              {
                required: true,
                message: '此项为必填项',
              },
            ],
          },
          render: (_, row) => {
            return row?.isCycle == 1 ? '单次' : '周期';
          },
        },
        {
          title: '下次保养日期',
          dataIndex: 'nextMaintainDate',
          key: 'nextMaintainDateList',
          valueType: 'dateRange',
          hideInForm: true,
        },
        {
          title: '状态',
          dataIndex: 'maintainStatusName',
          key: 'maintainStatus',
          hideInForm: true,
          valueType: 'select',
          fieldProps: {
            dropdownMatchSelectWidth: 100,
          },
          mode: 'radio',
          options: [
            {
              label: '未开始',
              value: '1',
            },
            {
              label: '执行中',
              value: '2',
            },
          ],
        },
        {
          title: '选择设备',
          dataIndex: 'paramList',
          key: 'paramList',
          formItemProps: {
            rules: [
              {
                required: true,
                message: '此项为必填项',
              },
            ],
          },
          hideInSearch: true,
          hideInTable: true,
          hideInForm: {
            maintainFrequency: {
              reverse: ['0'],
            },
          },
          valueType: 'formSelectList',
          colProps: {
            span: 24,
          },
          path: '/asset/equipment/list/user/shop',
          columns: columns_day,
          hideInDescriptions: true,
        },
        {
          title: '选择设备',
          dataIndex: 'paramList',
          key: 'paramList',
          hideInForm: {
            maintainFrequency: ['0'],
          },
          formItemProps: {
            rules: [
              {
                required: true,
                message: '此项为必填项',
              },
            ],
          },
          hideInSearch: true,
          hideInTable: true,
          valueType: 'formSelectList',
          colProps: {
            span: 24,
          },
          path: '/asset/equipment/list/user/shop',
          columns: columns_month,
          hideInDescriptions: true,
        },
      ],
      pathconfig: {
        enableadd: true,
        enableedit: true,
        enabledelete: true,
        enabledetail: true,
        add: '/maintain/umMaintainPlan/save',
        edit: '/maintain/umMaintainPlan/save',
        list: '/maintain/umMaintainPlan/queryList',
        delete: '/maintain/umMaintainPlan/deleteById',
        detail: '/maintain/umMaintainPlan/queryById',
      },
    },
    {
      tab: '已完成',
      key: '2',
      columns: [
        {
          title: '保养计划号',
          dataIndex: 'maintainNo',
          key: 'maintainNo',
          hideInForm: true,
          render: (text, row, _, action) => {
            return (
              <a
                onClick={() => {
                  setdrawer((s) => ({
                    ...s,
                    open: true,
                    val: 'detail',
                    title: '详细信息',
                    item: row,
                  }));
                }}
              >
                {row?.maintainNo}
              </a>
            );
          },
        },
        {
          title: '设备编号',
          dataIndex: 'equipmentNo',
          key: 'equipmentNo',
          hideInForm: true,
        },
        {
          title: '设备名称',
          dataIndex: 'equipmentName',
          key: 'equipmentName',
          hideInForm: true,
        },
        {
          title: '工厂名称',
          dataIndex: 'factoryName',
          key: 'factoryId',
          valueType: 'select',
          mode: 'radio',
          options: {
            path: '/auth/sysFactory/getAllFactorySelection',
            params: {},
          },
          hideInForm: true,
        },
        {
          title: '车间名称',
          dataIndex: 'shopName',
          key: 'shopId',
          valueType: 'select',
          mode: 'radio',
          options: {
            path: '/auth/sysShop/getAllShopSelection',
            params: {},
          },
          hideInForm: true,
        },
        {
          title: '保养类型',
          dataIndex: 'maintainTypeName',
          key: 'maintainType',
          valueType: 'select',
          mode: 'radio',
          options: [
            {
              label: '自主保养',
              value: '1',
            },
            {
              label: '专业保养',
              value: '2',
            },
          ],
          formItemProps: {
            rules: [
              {
                required: true,
                message: '此项为必填项',
              },
            ],
          },
        },
        {
          title: '保养频次',
          dataIndex: 'maintainFrequencyName',
          key: 'maintainFrequency',
          formItemProps: {
            rules: [
              {
                required: true,
                message: '此项为必填项',
              },
            ],
          },
          valueType: 'select',
          mode: 'radio',
          options: [
            {
              label: '周',
              value: '0',
            },
            {
              label: '月度',
              value: '1',
            },
            {
              label: '季度',
              value: '2',
            },
            {
              label: '半年',
              value: '3',
            },
            {
              label: '年度',
              value: '4',
            },
          ],
        },
        {
          title: '计划类型',
          dataIndex: 'isCycle',
          key: 'isCycle',
          valueType: 'select',
          mode: 'radio',
          options: [
            {
              label: '单次',
              value: '1',
            },
            {
              label: '周期',
              value: '2',
            },
          ],
          hideInForm: false,
          formItemProps: {
            rules: [
              {
                required: true,
                message: '此项为必填项',
              },
            ],
          },
          render: (_, row) => {
            return row?.isCycle == 1 ? '单次' : '周期';
          },
        },
        {
          title: '关单日期',
          dataIndex: 'customsTime',
          key: 'customsTimeList',
          valueType: 'dateRange',
          hideInForm: true,
        },
        {
          title: '状态',
          dataIndex: 'maintainStatusName',
          key: 'maintainStatus',
          hideInForm: true,
          valueType: 'input',
          mode: 'radio',
          hideInSearch: true,
        },
      ],
      pathconfig: {
        enableadd: true,
        enableedit: true,
        enabledelete: true,
        enabledetail: true,
        add: '/maintain/umMaintainPlan/save',
        edit: '/maintain/umMaintainPlan/save',
        list: '/maintain/umMaintainPlanHis/queryList',
        delete: '/maintain/umMaintainPlan/deleteById',
        detail: '/maintain/umMaintainPlanHis/queryById',
      },
    },
  ];
}
export default getcolumns;