"use strict";
const common_vendor = require("../../../common/vendor.js");
const request_api = require("../../../request/api.js");
const utils_util = require("../../../utils/util.js");
const common_assets = require("../../../common/assets.js");
const _sfc_main = {
  data() {
    return {
      navH: common_vendor.inject("navHeight"),
      contentTop: "",
      conceptId: "",
      //概念id
      conceptName: "",
      weekList: ["一", "二", "三", "四", "五", "六", "日"],
      monthDateList: [],
      selectMonthIndex: 0,
      //选中月份下标
      selectMonth: "",
      //选中年月
      selectDateStr: "",
      //选中日期
      startDateStr: "",
      //开始日期
      endDateStr: "",
      //结束日期
      chgStockData: null,
      //涨跌幅和股票数据
      newsList: [],
      //新闻数据
      reportList: [],
      //研报数据
      getRateUpOrDown: utils_util.getRateUpOrDown,
      getChgRateStr: utils_util.getChgRateStr
    };
  },
  onLoad(e) {
    this.contentTop = this.navH + 70 / 750 * common_vendor.inject("windowWidth");
    let currentDate = /* @__PURE__ */ new Date();
    let currentYear = currentDate.getFullYear();
    let currentMonth = currentDate.getMonth() + 1;
    let currentDay = currentDate.getDate();
    this.selectMonthIndex = 20 * 12 + currentMonth - 1;
    this.selectMonth = currentYear + "年" + currentMonth + "月";
    this.startDateStr = currentYear + "-" + currentMonth + "-01";
    this.endDateStr = this.selectDateStr = currentYear + "-" + currentMonth + "-" + (currentDay > 9 ? currentDay : "0" + currentDay);
    this.generateMonthDateListData();
    if (e.id) {
      this.conceptId = e.id;
      this.getTimelineData();
    }
  },
  methods: {
    /**
     * 获取当前时间前一天的数据
     */
    getYesterdayDateData() {
      let currentDate = /* @__PURE__ */ new Date();
      let selectDate = new Date(currentDate);
      selectDate.setDate(selectDate.getDate() - 1);
      let selectYear = selectDate.getFullYear();
      let selectMonth = selectDate.getMonth() + 1;
      let selectDay = selectDate.getDate();
      this.selectDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-" + (selectDay > 9 ? selectDay : "0" + selectDay);
    },
    /**
     * 生成日期数组
     */
    generateMonthDateListData() {
      let currentDate = /* @__PURE__ */ new Date();
      let currentYear = currentDate.getFullYear();
      let currentMonth = currentDate.getMonth() + 1;
      let currentDay = currentDate.getDate();
      let monthDateList = [];
      for (var i = currentYear - 20; i < currentYear + 20; i++) {
        for (var j = 0; j < 12; j++) {
          let date = new Date(i, j + 1, 0);
          let firstDayOfMonth = new Date(i, j + 1, 0);
          firstDayOfMonth.setDate(1);
          let currentMonthDay = date.getDate();
          let firstDayWeek = firstDayOfMonth.getDay() || 7;
          let daysOfMonth = [];
          for (var k = 1; k <= currentMonthDay; k++) {
            let newDate = new Date(i, j + 1, 0);
            newDate.setDate(k);
            let newMonth = newDate.getMonth() + 1;
            let newDay = newDate.getDate();
            let time = newDate.getTime();
            let date2 = i + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
            daysOfMonth.push({ date: date2, year: i, month: newMonth, day: newDay, isToday: i == currentYear && newMonth == currentMonth && newDay == currentDay ? true : false, isCurrentMonth: true, isLastDay: newDay == currentMonthDay ? true : false, timestamp: time });
          }
          for (var k = 0; k < firstDayWeek - 1; k++) {
            let year = i;
            let month = j;
            if (j < 1) {
              year = i - 1;
              month = 12;
            }
            let lastMonthDay = new Date(year, month, 0).getDate();
            let newDate = new Date(year, month - 1, lastMonthDay - k);
            let newMonth = newDate.getMonth() + 1;
            let newDay = newDate.getDate();
            let time = newDate.getTime();
            let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
            daysOfMonth.unshift({ date: date2, year, month: newMonth, day: newDay, isToday: false, isCurrentMonth: false, isLastDay: false, timestamp: time });
          }
          let nextMonthFirstDay = new Date(i, j + 1, 1);
          let lastDayOfMonth = new Date(nextMonthFirstDay - 24 * 60 * 60 * 1e3);
          let lastDayWeek = lastDayOfMonth.getDay() || 7;
          for (var k = 1; k < 8 - lastDayWeek; k++) {
            let year = i;
            let month = j;
            if (month > 11) {
              month = 0;
              year++;
            }
            let newDate = new Date(year, month + 1, k);
            let newMonth = newDate.getMonth() + 1;
            let newDay = newDate.getDate();
            let time = newDate.getTime();
            let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
            daysOfMonth.push({ date: date2, year, month: newMonth, day: newDay, isToday: false, isCurrentMonth: false, isLastDay: false, timestamp: time });
          }
          monthDateList.push(daysOfMonth);
        }
      }
      this.monthDateList = monthDateList;
    },
    /**
     * 点击上个月
     */
    clickPreMonth() {
      if (this.selectMonthIndex > 0) {
        this.selectMonthIndex--;
        let monthList = this.monthDateList[this.selectMonthIndex];
        let year = "";
        let month = "";
        for (let item of monthList) {
          if (item.isCurrentMonth) {
            year = item.year;
            month = item.month;
            break;
          }
        }
        let lastDay = "";
        for (let item of monthList) {
          if (item.isLastDay) {
            lastDay = item.day;
            break;
          }
        }
        this.selectMonth = year + "年" + month + "月";
        this.startDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-01";
        this.endDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-" + lastDay;
        this.getTimelineData();
      }
    },
    /**
     * 点击下个月
     */
    clickNextMonth() {
      if (this.selectMonthIndex < this.monthDateList.length - 1) {
        this.selectMonthIndex++;
        let monthList = this.monthDateList[this.selectMonthIndex];
        let year = "";
        let month = "";
        for (let item of monthList) {
          if (item.isCurrentMonth) {
            year = item.year;
            month = item.month;
            break;
          }
        }
        let lastDay = "";
        for (let item of monthList) {
          if (item.isLastDay) {
            lastDay = item.day;
            break;
          }
        }
        this.selectMonth = year + "年" + month + "月";
        this.startDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-01";
        this.endDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-" + lastDay;
        this.getTimelineData();
      }
    },
    monthChange(e) {
      let currentDate = /* @__PURE__ */ new Date();
      let currentYear = currentDate.getFullYear();
      let yearMonth = e.detail.value;
      let selectYear = parseInt(yearMonth.split("-")[0]);
      let selectMonth = parseInt(yearMonth.split("-")[1]);
      this.selectMonthIndex = (selectYear - (currentYear - 20)) * 12 + selectMonth - 1;
      this.selectMonth = selectYear + "年" + selectMonth + "月";
      this.startDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-01";
      let lastDayOfMonth = new Date(selectYear, selectMonth, 0);
      this.endDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-" + lastDayOfMonth.getDate();
      this.getTimelineData();
    },
    /**
     * 点击选择开始日期和结束日期
     * @param {Object} item
     */
    clickSelectDate(item) {
      if (this.selectDateStr != item.date) {
        this.selectDateStr = item.date;
        this.chgStockData = item;
        this.getNewsData();
        this.getReportData();
      }
    },
    /**
     * 点击查看新闻详情
     * @param {Object} item
     */
    clickNewsItem(item) {
      common_vendor.index.navigateTo({
        url: "/pages/concept/conceptNewsDetails/conceptNewsDetails?info=" + encodeURIComponent(JSON.stringify(item))
      });
    },
    /**
     * 获取时间序列数据
     */
    getTimelineData() {
      let param = { start_date: this.startDateStr, end_date: this.endDateStr };
      request_api.priceTimeline(this.conceptId, param).then((res) => {
        if (res.timeseries) {
          this.conceptName = res.concept_name;
          let timeseries = res.timeseries;
          let monthList = this.monthDateList[this.selectMonthIndex];
          for (let item of monthList) {
            for (let item1 of timeseries) {
              if (item.date == item1.trade_date) {
                item.avg_change_pct = item1.avg_change_pct;
                item.stock_count = item1.stock_count;
                if (item.date == this.selectDateStr) {
                  this.chgStockData = item;
                }
              }
            }
          }
          this.getNewsData();
          this.getReportData();
        }
      }).catch((error) => {
      });
    },
    /**
     * 获取新闻数据
     */
    getNewsData() {
      let param = { query: this.conceptName, end_date: this.selectDateStr, exact_match: 1, top_k: 100 };
      request_api.conceptNews(param).then((res) => {
        this.newsList = res;
      }).catch((error) => {
      });
    },
    /**
     * 获取时间序列数据
     */
    getReportData() {
      let param = { query: this.conceptName, start_date: this.selectDateStr, mode: "text", exact_match: 1 };
      request_api.conceptReport(param).then((res) => {
        this.reportList = res.data.results;
      }).catch((error) => {
      });
    }
  }
};
if (!Array) {
  const _easycom_navBar2 = common_vendor.resolveComponent("navBar");
  _easycom_navBar2();
}
const _easycom_navBar = () => "../../../components/navBar/navBar.js";
if (!Math) {
  _easycom_navBar();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  return common_vendor.e({
    a: common_vendor.p({
      leftText: "历史时间轴",
      hideNavBg: true
    }),
    b: common_assets._imports_0,
    c: common_vendor.t($data.conceptName),
    d: common_vendor.s("top: " + $data.navH + "px;"),
    e: common_assets._imports_4$2,
    f: common_vendor.o(($event) => $options.clickPreMonth()),
    g: common_vendor.t($data.selectMonth),
    h: common_vendor.o((...args) => $options.monthChange && $options.monthChange(...args)),
    i: common_assets._imports_5$1,
    j: common_vendor.o(($event) => $options.clickNextMonth()),
    k: common_vendor.f($data.weekList, (item, index, i0) => {
      return {
        a: common_vendor.t(item),
        b: index
      };
    }),
    l: common_vendor.f($data.monthDateList[$data.selectMonthIndex], (item, index, i0) => {
      return common_vendor.e({
        a: item.date == $data.selectDateStr
      }, item.date == $data.selectDateStr ? common_vendor.e({
        b: common_vendor.t(item.day),
        c: item.avg_change_pct
      }, item.avg_change_pct ? {
        d: common_vendor.t($data.getChgRateStr(item.avg_change_pct))
      } : {}, {
        e: common_vendor.n("date select " + (item.avg_change_pct ? $data.getRateUpOrDown(item.avg_change_pct) ? "down" : "up" : ""))
      }) : common_vendor.e({
        f: !item.isCurrentMonth
      }, !item.isCurrentMonth ? {
        g: common_vendor.t(item.day)
      } : common_vendor.e({
        h: common_vendor.t(item.day),
        i: item.avg_change_pct
      }, item.avg_change_pct ? {
        j: common_vendor.t($data.getChgRateStr(item.avg_change_pct)),
        k: common_vendor.n("chg " + ($data.getRateUpOrDown(item.avg_change_pct) ? "down" : "up"))
      } : {}, {
        l: common_vendor.n("date " + (item.avg_change_pct ? $data.getRateUpOrDown(item.avg_change_pct) ? "down" : "up" : ""))
      })), {
        m: index,
        n: common_vendor.o(($event) => $options.clickSelectDate(item), index)
      });
    }),
    m: common_vendor.t($data.selectDateStr),
    n: $data.chgStockData && $data.chgStockData.avg_change_pct
  }, $data.chgStockData && $data.chgStockData.avg_change_pct ? common_vendor.e({
    o: $data.getRateUpOrDown($data.chgStockData.avg_change_pct)
  }, $data.getRateUpOrDown($data.chgStockData.avg_change_pct) ? {
    p: common_assets._imports_3$6
  } : {
    q: common_assets._imports_4$7
  }, {
    r: common_vendor.t($data.getChgRateStr($data.chgStockData.avg_change_pct)),
    s: common_vendor.n("chg " + ($data.getRateUpOrDown($data.chgStockData.avg_change_pct) ? "down" : "up")),
    t: common_vendor.t($data.chgStockData.stock_count)
  }) : {}, {
    v: common_assets._imports_5$4,
    w: common_vendor.t($data.newsList.length),
    x: common_vendor.t($data.reportList.length),
    y: common_vendor.f($data.newsList, (item, index, i0) => {
      return {
        a: common_vendor.t(item.title),
        b: common_vendor.t(item.detail),
        c: index,
        d: common_vendor.o(($event) => $options.clickNewsItem(item), index)
      };
    }),
    z: common_vendor.f($data.reportList, (item, index, i0) => {
      return {
        a: common_vendor.t(item.report_title),
        b: index
      };
    }),
    A: common_vendor.s("top: " + $data.contentTop + "px;")
  });
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../../.sourcemap/mp-weixin/pages/concept/historicalTimeline/historicalTimeline.js.map
