import { ITEM_TYPE } from '@/components/BaseForm';

export const webMode = {
  single: 'single',
  integration: 'integration',
};
const typeContent = hasIntegerate => {
  if (hasIntegerate) {
    return [];
  }
  return [
    {
      value: webMode.integration,
      children: '集成网站',
    },
  ];
};

export const integrateStyleData = {
  platform: '工作台',
  webgis: 'WEBGIS',
  ios: 'IOS',
  catalog: 'Catalog',
  virtualcity: 'VirtualCity',
};
export const singleStyleData = {
  platform: '工作台',
  webgis: 'WEBGIS',
};
export const menuStyle = {
  'banner-left': '经典',
  // banner: '标题栏',
  // 'banner-big': '标题栏-大',
  // table: '左侧',
  // dock: '底部',
  // 'banner-left-noShrink': '标题栏-左-不收',
};
// 消息标记
export const markingLabel = {
  All: '多人',
  One: '单人',
};
// 语音播报
export const voiceLabel = {
  true: '开',
  false: '关',
};
export const MDILabel = {
  MDI: '多标签模式',
  SDI: '单标签模式',
};
export const notificationTypes = {
  // notify: '轮询通知',
  MQTT: 'MQTT消息',
};

const isIntegerate = (mode, hasIntegerate) => {
  if (typeof mode !== 'undefined') {
    return mode === 'single';
  }
  return hasIntegerate;
};

export const defaultWebConfigObj = {
  title: '',
  subtitle: '',
  mode: webMode.single,
  shortcutIcon: '',
  logo: '',
  client: '',
  bannerLogo: '',
  homePage: '',
  menu: 'banner-left',
  mdi: 'MDI',
  theme: '',
  style: '',
  hideMap: false,
  waterMark: true,
  mapPlan: '',
  qrcode: '',
  loginTemplate: 'Default.html',
  productType: '',
  alarmWays: notificationTypes.MQTT,
  messageMarking: 'All',
  messageVoice: true,
};

export const getDefaultGetWebconfig = ({
  initialValues = {},
  hasIntegerate,
  webThemes,
  onGetThemes,
  loginPages,
  onGetLoginPages,
  mapConfigs,
  onGetMapConfig,
  products,
  onGetProduct,
  isEdit,
  productList,
}) => {
  const config = {
    title: {
      label: '标题',
      formType: ITEM_TYPE.INPUT,
      allowClear: true,
      placeholder: '请输入标题',
      rules: [
        {
          required: true,
          message: '标题为必填项',
        },
      ],
    },
    subtitle: {
      label: '副标题',
      formType: ITEM_TYPE.INPUT,
      allowClear: true,
    },
    mode: {
      label: '网站类型',
      formType: ITEM_TYPE.SINGLE_RADIO,
      initialValue: webMode.single,
      disabled: isEdit,
      options: [
        {
          value: webMode.single,
          children: '一般网站',
        },
      ], // .concat(typeContent(hasIntegerate)),
    },
    shortcutIcon: {
      label: '系统icon',
      formType: ITEM_TYPE.IMGSHOP,
      picType: 'icon',
      rules: [
        {
          required: true,
          message: '请选择图标icon',
        },
      ],
    },
    logo: {
      label: '登录logo',
      formType: ITEM_TYPE.IMGSHOP,
      picType: 'logo',
      rules: [
        {
          required: true,
          message: '请选择登录logo',
        },
      ],
    },
    bannerLogo: {
      label: '标题logo',
      formType: ITEM_TYPE.IMGSHOP,
      picType: 'logo',
      rules: [
        {
          required: true,
          message: '请选择标题logo',
        },
      ],
    },
    client: {
      label: '虚拟目录',
      formType: ITEM_TYPE.INPUT,
      disabled: isEdit,
      allowClear: true,
      size: 'small',
      rules: [
        {
          required: true,
          message: '虚拟目录不能为空',
        },
      ],
    },
    productType: {
      label: '主页产品类型',
      formType: ITEM_TYPE.SELECT,
      placeholder: '请选择产品类型',
      options: products.map(t => ({
        value: t.PackageName,
        key: t.PackageName,
        children: t.ProductName,
      })),
      onDropdownVisibleChange: onGetProduct,
      showSearch: false,
      filterOption: (input, option) =>
        option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
      rules: [
        {
          required: false,
          message: '产品类型必填',
        },
      ],
    },
    homePage: {
      label: '主页',
      formType: ITEM_TYPE.INPUT,
      allowClear: true,
    },
    loginTemplate: {
      label: '登录模板',
      formType: ITEM_TYPE.SELECT,
      placeholder: '请选择登录模板',
      options: loginPages.map(t => ({
        value: t.value,
        children: t.text,
        key: t.value,
      })),
      onDropdownVisibleChange: onGetLoginPages,
      showSearch: true,
      filterOption: (input, option) =>
        option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
      rules: [
        {
          required: true,
          message: '登录模板必填',
        },
      ],
    },

    // theme: {
    //   label: '系统皮肤',
    //   formType: ITEM_TYPE.SELECT,
    //   initialValue: '',
    //   showSearch: true,
    //   filterOption: (input, option) =>
    //     option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
    //   options:
    //     webThemes.map(t => ({
    //       value: t.value,
    //       children: t.text,
    //       key: t.value,
    //     })) || [],
    //   onDropdownVisibleChange: onGetThemes,
    // },
    // style: {
    //   label: '系统风格',
    //   formType: ITEM_TYPE.SELECT,
    //   initialValue: '',
    //   options: Object.keys(
    //     isIntegerate(initialValues.mode, hasIntegerate)
    //       ? integrateStyleData
    //       : singleStyleData,
    //   ).map(k => ({
    //     value: k,
    //     key: k,
    //     children: integrateStyleData[k] || singleStyleData[k],
    //   })),
    // },
    menu: {
      label: '菜单类型',
      formType: ITEM_TYPE.SINGLE_RADIO,
      options: Object.keys(menuStyle).map(k => ({
        value: k,
        key: k,
        children: menuStyle[k],
      })),
    },
    // mdi: {
    //   label: '功能标签',
    //   formType: ITEM_TYPE.SINGLE_RADIO,
    //   options: Object.keys(MDILabel).map(k => ({
    //     value: k,
    //     key: k,
    //     children: MDILabel[k],
    //   })),
    // },
    qrcode: {
      label: '二维码地址',
      formType: ITEM_TYPE.INPUT,
      allowClear: true,
    },
    messageMarking: {
      label: '消息标记',
      formType: ITEM_TYPE.SINGLE_RADIO,
      options: Object.keys(markingLabel).map(k => ({
        value: k,
        key: k,
        children: markingLabel[k],
      })),
    },
    messageVoice: {
      label: '语音播报',
      formType: ITEM_TYPE.SINGLE_RADIO,
      optionType: 'button',
      options: [
        {
          value: true,
          key: '1',
          children: '开',
        },
        {
          value: false,
          key: '2',
          children: '关',
        },
      ],
    },
    // alarmWays: {
    //   label: '通知方式',
    //   formType: ITEM_TYPE.CHECK_BOX,
    //   options: Object.keys(notificationTypes).map(k => ({
    //     value: k,
    //     key: k,
    //     children: notificationTypes[k],
    //   })),
    // },
    // mapPlan: {
    //   label: '地图方案',
    //   formType: ITEM_TYPE.SELECT,
    //   options: mapConfigs.map(m => ({
    //     value: m.value,
    //     children: m.text,
    //     key: m.value,
    //   })),
    //   onDropdownVisibleChange: onGetMapConfig,
    // },
    // hideMap: {
    //   label: '按需加载地图',
    //   formType: ITEM_TYPE.SINGLE_RADIO,
    //   optionType: 'button',
    //   options: [
    //     {
    //       value: true,
    //       key: '1',
    //       children: '是',
    //     },
    //     {
    //       value: false,
    //       key: '2',
    //       children: '否',
    //     },
    //   ],
    // },
    // waterMark: {
    //   label: '地图水印',
    //   formType: ITEM_TYPE.SINGLE_RADIO,
    //   options: [
    //     {
    //       value: true,
    //       key: '1',
    //       children: '显示',
    //     },
    //     {
    //       value: false,
    //       key: '2',
    //       children: '不显示',
    //     },
    //   ],
    // },
  };
  if (initialValues) {
    Object.keys(config).forEach(k => {
      config[k].initialValue = typeof initialValues[k] !== 'undefined' ? initialValues[k] : '';
      // if (k === 'alarmWays') {
      //   config[k].initialValue = config[k].initialValue.split(',');
      // }
      // if (k === 'mode' && initialValues.mode) {
      //   config[k].options = [
      //     {
      //       value: webMode.single,
      //       children: '一般网站',
      //     },
      //     // {
      //     //   value: webMode.integration,
      //     //   children: '集成网站',
      //     // },
      //   ];
      //   config[k].initialValue = webMode.single; // initialValues.mode;
      // }
    });
  }
  return config;
};
