"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 echarts = require("../../../uni_modules/lime-echart/static/echarts.min.js");
const _sfc_main = {
  data() {
    return {
      navH: common_vendor.inject("navHeight"),
      contentTop: "",
      navTitle: "",
      type: "",
      //1事件详情2投资详情
      eventId: "",
      //事件id
      stockCode: "",
      //股票code
      categoryList: ["分时图", "日K线"],
      selectCategory: 0,
      tradeData: null,
      //成交数据
      option: {
        title: {
          show: false
        },
        tooltip: {
          position: function(pos, params, dom, rect, size) {
            var obj = { top: "10%" };
            obj[["left", "right"][+(pos[0] < size.viewSize[0] / 2)]] = 5;
            return obj;
          },
          trigger: "axis",
          axisPointer: {
            type: "cross"
          },
          formatter: function(params) {
            common_vendor.index.__f__("log", "at pages/index/stockDetails/stockDetails.vue:89", params);
            let res = "日期：" + params[0].name + "\n开盘价：" + params[0].data[1] + "\n收盘价：" + params[0].data[2] + "\n最低价：" + params[0].data[3] + "\n最高价：" + params[0].data[4];
            return res;
          }
        },
        legend: {
          show: false
        },
        grid: {
          top: "10%",
          left: "10%",
          right: "10%",
          bottom: "15%"
        },
        xAxis: {
          type: "category",
          data: [],
          boundaryGap: false,
          axisLine: { onZero: false },
          splitLine: { show: false },
          min: "dataMin",
          max: ""
        },
        yAxis: {
          scale: true,
          splitArea: {
            show: true
          }
        },
        dataZoom: [
          {
            type: "inside",
            start: 50,
            end: 100
          },
          {
            show: true,
            type: "slider",
            top: "90%",
            start: 50,
            end: 100
          }
        ],
        series: [
          {
            name: "日K",
            type: "candlestick",
            data: [],
            itemStyle: {
              color: "#ffffff",
              color0: "#355422",
              borderColor: "#c00000",
              borderColor0: "#355422"
            }
          }
        ]
      },
      option1: {
        title: {
          show: false
        },
        tooltip: {
          position: function(pos, params, dom, rect, size) {
            var obj = { top: "3%" };
            obj[["left", "right"][+(pos[0] < size.viewSize[0] / 2)]] = 5;
            return obj;
          },
          trigger: "axis",
          formatter: function(params) {
            let res = "时间：" + params[0].name + "\n高：" + params[0].data[2] + "\n开：" + params[0].data[3] + "\n低：" + params[0].data[4] + "\n收：" + params[0].data[1] + "\n涨幅：" + params[0].data[5] + "%";
            return res;
          }
        },
        grid: {
          top: "10%",
          left: "12%",
          right: "14%",
          bottom: "10%"
        },
        xAxis: {
          type: "category",
          scale: true,
          axisLabel: {
            customValues: ["09:30", "10:00", "10:30", "11:00", "11:30", "13:00", "13:30", "14:00", "14:30", "15:00"]
          }
        },
        yAxis: {
          show: false,
          scale: true
        },
        dataZoom: [
          {
            type: "inside"
          }
        ],
        series: {
          name: "分时图",
          type: "line",
          symbol: "none",
          markLine: {
            silent: true,
            symbol: ["none", "none"],
            lineStyle: {
              type: "solid",
              width: 1,
              color: "#dedede"
            },
            z: 1
          },
          data: []
        },
        animation: false
      },
      relatedDesc: "",
      //关联描述
      sourceList: [],
      //来源列表
      getLocalDate: utils_util.getLocalDate
    };
  },
  onLoad(e) {
    if (e.code) {
      this.type = e.type;
      if (e.type == 1) {
        this.contentTop = this.navH + 20 / 750 * common_vendor.inject("windowWidth");
        this.eventId = e.id;
        this.stockCode = e.code;
        this.getStockDetailsData();
      } else {
        this.contentTop = this.navH;
        this.navTitle = e.name + "(" + e.code + ")";
        this.relatedDesc = e.des;
      }
    }
  },
  methods: {
    async init() {
      const chart = await this.$refs.chartRef.init(echarts);
      if (this.selectCategory == 0) {
        chart.setOption(this.option1);
      } else
        chart.setOption(this.option);
    },
    /**
     * 点击切换分类
     * @param {Object} index
     */
    clickCategoryItem(index) {
      if (this.selectCategory != index) {
        this.selectCategory = index;
        if (index == 1) {
          this.getStockCandlestickChartData();
        } else
          this.init();
      }
    },
    /**
     * 获取股票详情数据
     */
    getStockDetailsData() {
      let stockCode = this.stockCode;
      let eventId = this.eventId;
      request_api.stockDetails(eventId, stockCode).then((res) => {
        if (res.code == 200) {
          this.navTitle = res.data.basic_info.stock_name + "(" + res.data.basic_info.stock_code + ")";
          let data = res.data.minute_chart_data;
          this.tradeData = res.data.latest_trade;
          let categoryData = [];
          let valueData = [];
          let open = data[0].open;
          for (let item of data) {
            categoryData.push(item.time);
            let rate = utils_util.accMul(utils_util.accDiv(utils_util.accSub(item.close, open), open).toFixed(4), 100);
            let volume = item.volume;
            if (volume > 1e4) {
              volume = (volume / 1e4).toFixed(0) + "万";
            }
            let amount = item.amount;
            if (amount > 1e4) {
              amount = (amount / 1e4).toFixed(0) + "万";
            }
            valueData.push([item.time, item.close, item.high, item.open, item.low, rate, volume, amount]);
          }
          let min = open;
          let max = 0;
          for (let item of valueData) {
            let value = item[1];
            if (parseFloat(value) < min) {
              min = parseFloat(value);
            }
            if (parseFloat(value) > max) {
              max = parseFloat(value);
            }
          }
          let minInterval = (open - min) / 3;
          let maxInterval = (max - open) / 3;
          let intervalList = [];
          if (minInterval > maxInterval) {
            for (var i = 3; i > 0; i--) {
              intervalList.push(open - i * minInterval);
            }
            for (var i = 0; i < 4; i++) {
              intervalList.push(open + i * minInterval);
            }
          } else {
            for (var i = 3; i > 0; i--) {
              intervalList.push(open - i * maxInterval);
            }
            for (var i = 0; i < 4; i++) {
              intervalList.push(open + i * maxInterval);
            }
          }
          this.option1.xAxis.data = categoryData;
          this.option1.yAxis.min = intervalList[0].toFixed(2);
          this.option1.yAxis.max = intervalList[intervalList.length - 1].toFixed(2);
          this.option1.series.data = valueData;
          let markData = [];
          let time = res.data.event_info.event_start_time.split("T")[1];
          time = time.substring(0, 5);
          for (let item of intervalList) {
            markData.push(
              {
                xAxis: time,
                lineStyle: {
                  type: "solid",
                  width: 1,
                  color: "#ffd700"
                },
                label: {
                  position: "middle",
                  formatter: "事件发生",
                  color: "#ffd700"
                }
              },
              {
                yAxis: item,
                label: {
                  show: true,
                  position: "start",
                  color: "#333"
                }
              },
              {
                yAxis: item,
                label: {
                  show: true,
                  position: "end",
                  formatter: utils_util.accMul(utils_util.accDiv(utils_util.accSub(item, open), open).toFixed(4), 100) + "%",
                  color: "#333"
                }
              }
            );
          }
          this.option1.series.markLine.data = markData;
          let relatedDesc = res.data.related_desc;
          if (relatedDesc) {
            this.relatedDesc = relatedDesc.relation_desc;
            if (relatedDesc.retrieved_sources) {
              this.sourceList = relatedDesc.retrieved_sources;
            }
          }
          this.init();
        } else
          common_vendor.index.showToast({
            title: res.message,
            icon: "none"
          });
      }).catch((error) => {
      });
    },
    /**
     * 获取股票K线数据
     */
    getStockCandlestickChartData() {
      let stockCode = this.stockCode;
      let param = { chart_type: "minute" };
      if (this.selectCategory == 1) {
        param.chart_type = "daily";
      }
      request_api.stockCandlestickChartData(stockCode, param).then((res) => {
        let data = res.data;
        let categoryData = [];
        let valueData = [];
        for (let item of data) {
          categoryData.push(item.time);
          valueData.push([item.open, item.close, item.low, item.high]);
        }
        this.option.xAxis.data = categoryData;
        this.option.series[0].data = valueData;
        this.init();
      }).catch((error) => {
      });
    }
  }
};
if (!Array) {
  const _easycom_navBar2 = common_vendor.resolveComponent("navBar");
  const _easycom_l_echart2 = common_vendor.resolveComponent("l-echart");
  (_easycom_navBar2 + _easycom_l_echart2)();
}
const _easycom_navBar = () => "../../../components/navBar/navBar.js";
const _easycom_l_echart = () => "../../../uni_modules/lime-echart/components/l-echart/l-echart.js";
if (!Math) {
  (_easycom_navBar + _easycom_l_echart)();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  return common_vendor.e({
    a: common_vendor.p({
      leftText: $data.navTitle,
      hideNavBg: true
    }),
    b: common_assets._imports_0,
    c: $data.type == 1
  }, $data.type == 1 ? {
    d: common_vendor.f($data.categoryList, (item, index, i0) => {
      return common_vendor.e({
        a: common_vendor.t(item),
        b: $data.selectCategory == index
      }, $data.selectCategory == index ? {} : {}, {
        c: common_vendor.n("item relative " + ($data.selectCategory == index ? "select" : "")),
        d: index,
        e: common_vendor.o(($event) => $options.clickCategoryItem(index), index)
      });
    })
  } : {}, {
    e: $data.type == 1 && $data.tradeData
  }, $data.type == 1 && $data.tradeData ? common_vendor.e({
    f: $data.tradeData.volume > 1e8
  }, $data.tradeData.volume > 1e8 ? {
    g: common_vendor.t(($data.tradeData.volume / 1e8).toFixed(2))
  } : common_vendor.e({
    h: $data.tradeData.volume > 1e4
  }, $data.tradeData.volume > 1e4 ? {
    i: common_vendor.t(($data.tradeData.volume / 1e4).toFixed(2))
  } : {
    j: common_vendor.t($data.tradeData.volume)
  }), {
    k: $data.tradeData.amount > 1e8
  }, $data.tradeData.amount > 1e8 ? {
    l: common_vendor.t(($data.tradeData.amount / 1e8).toFixed(2))
  } : common_vendor.e({
    m: $data.tradeData.amount > 1e4
  }, $data.tradeData.amount > 1e4 ? {
    n: common_vendor.t(($data.tradeData.amount / 1e4).toFixed(2))
  } : {
    o: common_vendor.t($data.tradeData.amount)
  })) : {}, {
    p: $data.type == 1
  }, $data.type == 1 ? {
    q: common_vendor.sr("chartRef", "42054871-1")
  } : {}, {
    r: common_vendor.t($data.relatedDesc),
    s: common_vendor.s("margin-top:" + $data.contentTop + "px;"),
    t: $data.type == 1 && $data.sourceList.length > 0
  }, $data.type == 1 && $data.sourceList.length > 0 ? {
    v: common_vendor.f($data.sourceList, (item, index, i0) => {
      return {
        a: common_vendor.t(item.sentences),
        b: common_vendor.t(item.report_title),
        c: common_vendor.t(item.author),
        d: common_vendor.t($data.getLocalDate(item.declare_date)),
        e: index
      };
    })
  } : {});
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../../.sourcemap/mp-weixin/pages/index/stockDetails/stockDetails.js.map
