"use strict";

function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = void 0;

var _react = _interopRequireWildcard(require("react"));

var _oProgress = _interopRequireDefault(require("../components/o-progress"));

var _krProgress = _interopRequireDefault(require("../components/kr-progress"));

var _subOProgress = _interopRequireDefault(require("../components/sub-o-progress"));

var _requestApis = require("../request-apis");

require("./index.css");

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }

function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }

function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }

function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }

var OKrProgress = function OKrProgress(_ref) {
  var workId = _ref.workId;

  var _useState = (0, _react.useState)([]),
      _useState2 = _slicedToArray(_useState, 2),
      oProgressData = _useState2[0],
      setOProgressData = _useState2[1];

  var _useState3 = (0, _react.useState)([]),
      _useState4 = _slicedToArray(_useState3, 2),
      krProgressData = _useState4[0],
      setKrProgressData = _useState4[1];

  var _useState5 = (0, _react.useState)([]),
      _useState6 = _slicedToArray(_useState5, 2),
      subOProgressData = _useState6[0],
      setSubOProgressData = _useState6[1];

  var _useState7 = (0, _react.useState)(),
      _useState8 = _slicedToArray(_useState7, 2),
      updateProgress = _useState8[0],
      setUpdateProgress = _useState8[1];

  var _useState9 = (0, _react.useState)(),
      _useState10 = _slicedToArray(_useState9, 2),
      okrInfo = _useState10[0],
      setOkrInfo = _useState10[1];

  var oldPercentRef = (0, _react.useRef)(0);

  var getOProgressData = function getOProgressData() {
    (0, _requestApis.getProgress)(workId).then(function (resp) {
      if (resp.Code === 1) {
        var data = resp.Data.operations.comments.reverse();

        if (!data || data.length === 0) {
          setOProgressData([]);
          return;
        }

        var tempOProgressData = data.map(function (item, index) {
          var result = {
            riskLevel: index !== data.length - 1 ? 4 : resp.Data.progressExtensionModel.riskLevel,
            percent: Number.parseInt(item.workProgress),
            oldPercent: index === 0 ? Number.parseInt(item.workProgress) : oldPercentRef.current,
            content: item.progressDescriptionNoRichText && item.progressDescriptionNoRichText.trim(),
            time: item.createDateTime,
            id: item.commentId,
            oStatus: 1
          };
          oldPercentRef.current = Number.parseInt(item.workProgress);
          return result;
        });
        setOProgressData(tempOProgressData.reverse());
      }
    });
  };

  (0, _react.useEffect)(function () {
    getOProgressData();
    (0, _requestApis.getOkrDetail)({
      okrId: workId
    }).then(function (resp) {
      setOkrInfo(resp);
      (0, _requestApis.getRelProgress)(workId).then(function (relProgressResp) {
        var data = relProgressResp.Data;

        if (!data || data.length === 0) {
          setKrProgressData([]);
          setSubOProgressData([]);
          return;
        }

        var krsData = data.krsProgressDes.map(function (item) {
          return {
            riskLevel: item.progressExtensionModel.riskLevel,
            percent: item.krModel.progress,
            oldPercent: item.krModel.progress - item.progressExtensionModel.progressGrow,
            content: item.commentModel[0] && item.commentModel[0].progressDescriptionNoRichText,
            time: item.krModel && item.krModel.progressDescriptionDate,
            id: item.krModel.mileStoneId,
            title: item.krModel.mileStoneName,
            oStatus: resp.status === 2 ? 2 : item.krModel.status
          };
        });
        setKrProgressData(krsData);
        var subODatas = data.childOkrsProgressDes.map(function (subO) {
          return {
            riskLevel: subO.progressExtensionModel.riskLevel,
            percent: subO.okrModel.progress,
            oldPercent: subO.okrModel.progress - subO.progressExtensionModel.progressGrow,
            content: subO.operations.comments[0] ? subO.operations.comments[0].progressDescriptionNoRichText : "",
            time: subO.okrModel.progressDate,
            id: subO.okrModel.okrId,
            title: subO.okrModel.okrName,
            oStatus: subO.okrModel.status
          };
        });
        setSubOProgressData(subODatas);
      });
    });
  }, []);
  (0, _react.useEffect)(function () {
    setTimeout(getOProgressData, 500);
  }, [updateProgress]);
  return /*#__PURE__*/_react["default"].createElement("div", {
    className: "scheule__wrapper"
  }, okrInfo && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_oProgress["default"], {
    okrInfo: okrInfo,
    listData: oProgressData,
    setUpdateProgress: setUpdateProgress,
    hasOtherProgress: krProgressData.length > 0 || subOProgressData.length > 0,
    getOProgressData: getOProgressData
  }), krProgressData.length > 0 ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
    className: "schedule__divider"
  }), /*#__PURE__*/_react["default"].createElement(_krProgress["default"], {
    data: krProgressData
  })) : null, subOProgressData.length > 0 ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
    className: "schedule__divider"
  }), /*#__PURE__*/_react["default"].createElement(_subOProgress["default"], {
    data: subOProgressData
  })) : null));
};

var _default = OKrProgress;
exports["default"] = _default;