/**
 * @return {string}
 */

export default {
  onChange: ({ colInfo, getFieldValue, setFieldValueByBatch, dispatch }) => {
    if (!(colInfo.INPUT_ID_FIELD == 'NODE_ID' || colInfo.INPUT_ID_FIELD == 'ENERGY_CLASS_ID' || colInfo.INPUT_ID_FIELD == 'ENERGY_USE_ID'))
      return;

    let nodeId = getFieldValue('NODE_ID')
    let classID = getFieldValue('ENERGY_CLASS_ID')
    let useId = getFieldValue('ENERGY_USE_ID');
    if (!nodeId || !classID || !useId || nodeId == null || classID == null || useId == null) {
      const temps = [];
      temps.push({ field: 'DATA_ITEM_CODE', value: '' })
      setFieldValueByBatch(temps);
      return;
    }

    const json = {
      Parameter1: nodeId,
      Parameter2: classID,
      Parameter3: useId,
    };
    dispatch({
      type: 'app/getDataByPost',
      url: 'FM/FMEnergyConsuConf/GetDataCode',
      payload: json,
      onlyData: false,
      onComplete: (re) => {
        if (re && re.IsSuccessful && re.Data) {
          const temps = [];
          temps.push({ field: 'DATA_ITEM_CODE', value: re.Data })
          setFieldValueByBatch(temps);
        }
      }
    })
  },
  onBeforeEdit: ({ isNew, getFieldValue, setFieldValueByBatch, dispatch, data }) => {
    if (isNew) {
      const temps = [];
      temps.push({ field: 'NODE_ID', value: data.id })
      temps.push({ field: 'Nav_MeterNode.NAME', value: data.name })
      setFieldValueByBatch(temps);
    }
    else {
      if(!data.id)
        return;
      const json = {
        Parameter1: data.id,
      };
      dispatch({
        type: 'app/getDataByPost',
        url: 'FM/FMEnergyConsuConf/GetEditData',
        payload: json,
        onlyData: false,
        onComplete: (re) => {
          if (re && re.IsSuccessful && re.Data && re.Data != null) {
            var data = re.Data;
            const temps = [];
            temps.push({ field: 'NODE_ID', value: data.NODE_ID })
            temps.push({ field: 'Nav_MeterNode.NAME', value: data.Nav_MeterNode.NAME })
            temps.push({ field: 'CONFIG_NODE_ID', value: data.CONFIG_NODE_ID })
            temps.push({ field: 'ABB_NAME', value: data.ABB_NAME })
            temps.push({ field: 'ENERGY_CLASS_ID', value: data.ENERGY_CLASS_ID })
            temps.push({ field: 'Nav_EnergyClass.NAME', value: data.Nav_EnergyClass.NAME })
            temps.push({ field: 'ENERGY_USE_ID', value: data.ENERGY_USE_ID })
            temps.push({ field: 'Nav_EnergyUse.NAME', value: data.Nav_EnergyUse.NAME })
            temps.push({ field: 'Nav_EnergyClass.Nav_EnergyType.NAME', value: data.Nav_EnergyClass.Nav_EnergyType.NAME })
            temps.push({ field: 'DATA_ITEM_CODE', value: data.DATA_ITEM_CODE })
            temps.push({ field: 'FRE_ENUM_ITEM_ID', value: data.FRE_ENUM_ITEM_ID })
            temps.push({ field: 'Nav_FreEnumItem.NAME', value: data.Nav_FreEnumItem.NAME })
            temps.push({ field: 'Nav_EnergyClass.Nav_ReduFac.Nav_CarUnitEnumItem.NAME', value: data.Nav_EnergyClass.Nav_ReduFac.Nav_CarUnitEnumItem.NAME })
            temps.push({ field: 'Nav_EnergyClass.Nav_ReduFac.CUR_VALUE', value: data.Nav_EnergyClass.Nav_ReduFac.CUR_VALUE })
            temps.push({ field: 'RANGE_ENUM_ITEM_ID', value: data.RANGE_ENUM_ITEM_ID })
            temps.push({ field: 'Nav_RangeEnumItem.NAME', value: data.Nav_RangeEnumItem.NAME })
            temps.push({ field: 'SOURCE_ENUM_ITEM_ID', value: data.SOURCE_ENUM_ITEM_ID })
            temps.push({ field: 'Nav_SourceEnumItem.NAME', value: data.Nav_SourceEnumItem.NAME })
            temps.push({ field: 'COL_SYS_NAME', value: data.COL_SYS_NAME })
            temps.push({ field: 'IS_RANGE_JUDGMENT', value: data.IS_RANGE_JUDGMENT })
            temps.push({ field: 'MAX', value: data.MAX })
            temps.push({ field: 'MIN', value: data.MIN })
            setFieldValueByBatch(temps);
          }
        }
      })
    }
  },

}
