commonWeight.js 2.84 KB
export default {
  data() {
    return {
      options: {},
      optionsSetUp: {},
      optionsPosition: {},
      optionsData: {},
      id: (new Date()).getTime(),
    }
  },
  props: {
    value: Object,
    ispreview: Boolean
  },
  watch: {
    value: {
      handler(val) {
        this.options = val;
        this.optionsSetUp = val.setup;
        this.optionsPosition = val.position;
        this.reloadChart();
      },
      deep: true
    }
  },
  mounted() {
    this.options = this.value;
    this.optionsSetUp = this.value.setup;
    this.optionsPosition = this.value.position;
  },
  methods: {
    /**
     * 获取x天后的日期
     * @param day
     * @returns {string} yyyy-MM-mm
     */
    getData(day) {
      var doHandMonth = (month) => {
        var m = month
        if (month.toString().length == 1) {
          m = "0" + month
        }
        return m
      }
      var today = new Date()
      var targetday = today.getTime() + 1000 * 60 * 60 * 24 * day
      today.setTime(targetday)
      var tYear = today.getFullYear()
      var tMonth = today.getMonth()
      var tDate = today.getDate()
      tMonth = doHandMonth(tMonth + 1)
      tDate = doHandMonth(tDate)
      return tYear + "-" + tMonth + "-" + tDate
    },
    /**
     * 获取URL所有的参数
     */
    getUrlParam() {
      let url = window.location.href;
      let arrObj = url.split("?");
      let params = Object.create(null)
      if (arrObj.length > 1) {
        arrObj = arrObj[1].split("&");
        arrObj.forEach(item => {
          item = item.split("=");
          params[item[0]] = item[1]
        })
      }
      return params;
    },
    /**
     * 请求接口数据
     * @returns {Promise<unknown>}
     */
    handlerData(params) {
      let that = this;
      const optionsData = this.value.data;
      if (optionsData.dynamicData) {
        let contextData = optionsData.dynamicData.contextData;
        // 合并url参数
        let paramsObj = that.getUrlParam();
        if (paramsObj) {
          for (let key of Object.keys(paramsObj)) {
            let paramVal = paramsObj[key];
            contextData[key] = paramVal;
          }
        }
        // 合并自定义的参数
        if (params) {
          for (let key of Object.keys(params)) {
            let paramVal = params[key];
            contextData[key] = paramVal;
          }
        }
      }

      return new Promise(async (resolve) => {
        that.queryEchartsData(
          optionsData.dynamicData,
          optionsData.refreshTime,
          that.optionsSetup,
          optionsData.isRefresh
        ).then(res => {
          let data = res[0];
          if (data && (data.code == 200 || data.code == 0)) {
            resolve(data);
          } else if (data && data.code == 401) {
            console.log('token过期,请重新登录!', data);
          }
        });
      })
    },
  }
}