{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\form\\chart\\EipChart.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\form\\chart\\EipChart.vue","mtime":1667327529512},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\babel.config.js","mtime":1667327525434},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import \"core-js/modules/es6.array.sort\";\nimport \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.function.name\";\nimport \"regenerator-runtime/runtime\";\nimport _asyncToGenerator from \"D:/jenkins/workspace/xq-web-fvue/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport echarts from \"echarts\";\nimport ecStat from \"echarts-stat\";\nimport form from \"@/api/form.js\";\nexport default {\n  props: {\n    id: {\n      type: String,\n      required: true\n    }\n  },\n  mounted: function mounted() {\n    var _this = this;\n\n    this.$nextTick(function () {\n      _this.initData();\n    });\n  },\n  watch: {\n    id: function id(newV) {\n      if (newV) {\n        this.customChart = [];\n        this.data = [];\n        this.quickSearchProp = \"\";\n        this.defaultQuery = [];\n        this.showTable = false;\n        this.initData();\n      }\n    }\n  },\n  data: function data() {\n    return {\n      showTable: false,\n      customChart: {},\n      pageResult: {\n        page: 1,\n        pageSize: 20,\n        total: 0\n      },\n      data: [],\n      quickSearchProp: \"\",\n      defaultQuery: [],\n      queryOpTransObj: {\n        EQ: \"EQUAL\",\n        BETWEEN: \"BETWEEN\",\n        GE: \"GREAT_EQUAL\",\n        LE: \"LESS_EQUAL\",\n        LK: \"LIKE\",\n        IN: \"IN\"\n      }\n    };\n  },\n  methods: {\n    loadData: function loadData(param, cb) {\n      var _this2 = this;\n\n      if (this.customChart.alias) {\n        param.pageBean.pageSize = parseInt(this.customChart.conf.maxLength && this.customChart.conf.maxLength != '0' ? this.customChart.conf.maxLength : 20);\n        form.getListData(this.customChart.alias, param).then(function (response) {\n          _this2.data = response.rows;\n          _this2.pageResult = {\n            page: response.page,\n            pageSize: response.pageSize,\n            total: response.total\n          };\n          _this2.customChart.rows = _this2.data;\n\n          _this2.buildChart(_this2.customChart);\n        }).finally(function () {\n          cb();\n        });\n      } else {\n        cb();\n      }\n    },\n    initData: function () {\n      var _initData = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n        var data;\n        return regeneratorRuntime.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                _context.next = 2;\n                return form.getCustomChartById(this.id);\n\n              case 2:\n                data = _context.sent;\n\n                if (data) {\n                  data.conditionfield = JSON.parse(data.conditionfield);\n                  data.displayfield = JSON.parse(data.displayfield);\n                  data.xaxisField = JSON.parse(data.xaxisField);\n                  data.sortfield = JSON.parse(data.sortfield);\n                  data.conf = JSON.parse(data.conf);\n                  this.customChart = data;\n                  this.initCondition();\n                  this.showTable = true;\n                }\n\n              case 4:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee, this);\n      }));\n\n      function initData() {\n        return _initData.apply(this, arguments);\n      }\n\n      return initData;\n    }(),\n    initCondition: function initCondition() {\n      var conditions = this.customChart.conditionfield;\n\n      for (var i = 0; i < conditions.length; i++) {\n        if (conditions[i].defaultType === \"1\") {\n          this.quickSearchProp += conditions[i].field.toUpperCase() + \",\";\n        } else {\n          this.defaultQuery.push({\n            property: conditions[i].field,\n            value: conditions[i].defaultValue,\n            operation: this.queryOpTransObj[conditions[i].condition],\n            group: \"main\"\n          });\n        }\n      }\n    },\n    buildChart: function buildChart(data) {\n      var myChart = echarts.init(document.getElementById(this.id), \"default\");\n      var grid = this.getGrid();\n      data.conf.title.text = data.name;\n      data.conf.title.top = this.getTitlePosition();\n      var option = {\n        title: data.conf.title,\n        tooltip: {},\n        toolbox: {\n          feature: {\n            saveAsImage: {}\n          }\n        },\n        legend: {},\n        grid: grid,\n        series: {}\n      };\n\n      switch (data.style) {\n        case 1:\n          option = this.buildLine(data, option);\n          break;\n\n        case 3:\n          option = this.buildPie(data, option);\n          break;\n\n        case 4:\n          option = this.buildRadar(data, option);\n          break;\n\n        case 5:\n          option = this.buildFunnel(data, option);\n          break;\n\n        case 6:\n          option = this.buildScatter(data, option);\n          break;\n\n        case 7:\n          option = this.buildHeatmap(data, option);\n          break;\n\n        default:\n          break;\n      }\n\n      this.adjustChatTitle(data, option);\n      myChart.setOption(option);\n    },\n    buildLine: function buildLine(data, option) {\n      var displayField = this.customChart.displayfield;\n      var legendData = [];\n      var xAxisData = [];\n      var seriesData = [];\n      var xAxisField = {};\n      var series = this.customChart.conf.series;\n      if (this.customChart.xaxisField) xAxisField = this.customChart.xaxisField[0];\n\n      for (var i = 0, d; d = displayField[i++];) {\n        if (d) {\n          var arr = [];\n          var type = d.type;\n          legendData.push(d.comment);\n\n          for (var j = 0, res; res = data.rows[j++];) {\n            if (i === 1) {\n              var value = res[xAxisField.field.toUpperCase()];\n              if (xAxisField.dbType === \"date\" && value && typeof value === \"number\") value = new Date(value).format(defaultFmt);\n              xAxisData.push(value);\n            }\n\n            if (res) {\n              var _value = res[d.field.toUpperCase()];\n              arr.push(_value);\n            }\n          }\n\n          var se = {\n            name: d.comment,\n            type: d.type,\n            data: arr,\n            stack: series.stack ? \"one\" : null\n          };\n\n          if (!series.doubleYAxis) {\n            se.yAxisIndex = d.yAxis === 1 ? 0 : 1;\n          }\n\n          if (type === \"line\") {\n            se.smooth = series.smooth;\n          }\n\n          seriesData.push(se);\n        }\n      }\n\n      option.series = seriesData;\n      option.tooltip = {\n        trigger: \"axis\"\n      };\n      option.legend.y = 50; // option.grid = {\n      //   left: \"3%\",\n      //   right: \"4%\",\n      //   bottom: \"3%\",\n      //   containLabel: true\n      // };\n\n      if (series.showType || !series.doubleYAxis) {\n        option.xAxis = [{\n          type: \"category\",\n          data: xAxisData\n        }];\n        option.yAxis = series.doubleYAxis ? [{\n          type: \"value\"\n        }] : [{\n          type: \"value\"\n        }, {\n          type: \"value\"\n        }];\n      } else {\n        option.xAxis = [{\n          type: \"value\"\n        }];\n        option.yAxis = [{\n          type: \"category\",\n          data: xAxisData\n        }];\n      } //柱状图的时候两端留空。避免柱状图挡住y轴。折线图则不留空，\n\n\n      if (data.style === 2) option.xAxis[0][\"boundaryGap\"] = true;\n\n      if (data.conf) {\n        var obj = data.conf;\n        if (obj.yMin === 2) option.yAxis[0][\"min\"] = \"dataMin\";\n        if (obj.xShowAll === 2) option.xAxis[0][\"axisLabel\"] = {\n          interval: 0,\n          //横轴信息全部显示\n          rotate: 30\n        };\n      }\n\n      if (data.rows.length > 20 && !series.dataZoom) {\n        option.dataZoom = [{\n          start: 0,\n          end: 10,\n          handleIcon: \"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z\",\n          handleSize: \"80%\",\n          handleStyle: {\n            color: \"#fff\",\n            shadowBlur: 3,\n            shadowColor: \"rgba(0, 0, 0, 0.6)\",\n            shadowOffsetX: 2,\n            shadowOffsetY: 2\n          }\n        }];\n        option.grid.bottom = 50;\n      } else {\n        // option.grid.bottom = \"3%\";\n        delete option.dataZoom;\n      }\n\n      option.legend = data.conf.legend;\n      option.legend.data = legendData;\n      return option;\n    },\n    buildPie: function buildPie(data, option) {\n      var displayField = data.displayfield;\n      var legendData = [];\n      var seriesData = [];\n      var xAxisField = data.xaxisField;\n      var series = data.conf.series;\n      if (xAxisField) xAxisField = xAxisField[0];\n\n      if (series.showType) {\n        var duration = 100 / data.rows.length;\n\n        for (var j = 0; j < data.rows.length; j++) {\n          var value = [];\n\n          for (var i = 0; i < displayField.length; i++) {\n            value.push({\n              name: displayField[i].comment,\n              value: data.rows[j][displayField[i].field.toUpperCase()]\n            });\n\n            if (j === 0) {\n              legendData.push(displayField[i].comment);\n            }\n          }\n\n          seriesData.push({\n            name: data.rows[j][xAxisField.field.toUpperCase()],\n            type: \"pie\",\n            data: value,\n            radius: [series.radius[0] + \"%\", series.radius[1] + \"%\"],\n            center: [Number(series.center[0]) + j * duration + \"%\", series.center[1] + \"%\"],\n            roseType: series.roseType,\n            selectedMode: series.selectedMode,\n            label: {\n              position: series.label.position\n            },\n            itemStyle: {\n              emphasis: {\n                shadowBlur: 10,\n                shadowOffsetX: 0,\n                shadowColor: \"rgba(0, 0, 0, 0.5)\"\n              }\n            }\n          });\n        }\n      } else {\n        var _duration = 100 / displayField.length;\n\n        for (var _i = 0; _i < displayField.length; _i++) {\n          var _value2 = [];\n\n          for (var _j = 0; _j < data.rows.length; _j++) {\n            _value2.push({\n              name: data.rows[_j][xAxisField.field.toUpperCase()],\n              value: data.rows[_j][displayField[_i].field.toUpperCase()]\n            });\n\n            if (_i === 0) {\n              legendData.push(data.rows[_j][xAxisField.field.toUpperCase()] + \"\");\n            }\n          }\n\n          seriesData.push({\n            name: displayField[_i].comment,\n            type: \"pie\",\n            data: _value2,\n            radius: [series.radius[0] + \"%\", series.radius[1] + \"%\"],\n            center: [Number(series.center[0]) + _i * _duration + \"%\", series.center[1] + \"%\"],\n            roseType: series.roseType,\n            selectedMode: series.selectedMode,\n            label: {\n              position: series.label.position\n            },\n            itemStyle: {\n              emphasis: {\n                shadowBlur: 10,\n                shadowOffsetX: 0,\n                shadowColor: \"rgba(0, 0, 0, 0.5)\"\n              }\n            }\n          });\n        }\n      }\n\n      option.series = seriesData;\n      option.tooltip = {\n        trigger: \"item\",\n        formatter: \"{a} <br/>{b} : {c} ({d}%)\"\n      };\n      option.legend = data.conf.legend;\n      option.legend.data = legendData;\n      return option;\n    },\n    buildRadar: function buildRadar(data, option) {\n      var displayField = data.displayfield;\n      var legendData = [];\n      var xAxisField = data.xaxisField;\n      var arr = [];\n      var seriesData = [];\n      var indicator = [];\n      var series = data.conf.series;\n      if (xAxisField) xAxisField = xAxisField[0];\n\n      if (series.showType) {\n        for (var j = 0; j < data.rows.length; j++) {\n          var value = [];\n\n          for (var i = 0; i < displayField.length; i++) {\n            value.push(data.rows[j][displayField[i].field.toUpperCase()]);\n\n            if (j === 0) {\n              indicator.push({\n                name: displayField[i].comment\n              });\n            }\n          }\n\n          legendData.push(data.rows[j][xAxisField.field.toUpperCase()] + \"\");\n          arr.push({\n            name: data.rows[j][xAxisField.field.toUpperCase()],\n            value: value,\n            areaStyle: {\n              opacity: \"0\"\n            }\n          });\n        }\n\n        seriesData = [{\n          type: \"radar\",\n          data: arr,\n          itemStyle: {\n            emphasis: {\n              areaStyle: {\n                opacity: series.areaStyle ? \"0\" : \"0.5\"\n              }\n            }\n          }\n        }];\n      } else {\n        for (var _i2 = 0; _i2 < displayField.length; _i2++) {\n          var _value3 = [];\n\n          for (var _j2 = 0; _j2 < data.rows.length; _j2++) {\n            _value3.push(data.rows[_j2][displayField[_i2].field.toUpperCase()]);\n\n            if (_i2 === 0) {\n              indicator.push({\n                name: data.rows[_j2][xAxisField.field.toUpperCase()]\n              });\n            }\n          }\n\n          legendData.push(displayField[_i2].comment);\n          arr.push({\n            name: displayField[_i2].comment,\n            value: _value3,\n            areaStyle: {\n              opacity: \"0\"\n            }\n          });\n        }\n\n        seriesData = [{\n          type: \"radar\",\n          data: arr,\n          itemStyle: {\n            emphasis: {\n              areaStyle: {\n                opacity: series.areaStyle ? \"0\" : \"0.5\"\n              }\n            }\n          }\n        }];\n      }\n\n      option.series = seriesData;\n      option.radar = {\n        center: [series.center[0] + \"%\", series.center[1] + \"%\"],\n        radius: series.radius,\n        indicator: indicator\n      };\n      option.legend = data.conf.legend;\n      option.legend.data = legendData;\n      return option;\n    },\n    buildFunnel: function buildFunnel(data, option) {\n      var displayField = data.displayfield;\n      var legendData = [];\n      var xAxisField = data.xaxisField;\n      var seriesData = [];\n      var series = data.conf.series;\n      if (xAxisField) xAxisField = xAxisField[0]; //列数据展示\n\n      if (series.showType) {\n        var duration = 100 / data.rows.length;\n\n        for (var j = 0; j < data.rows.length; j++) {\n          var value = [];\n\n          for (var i = 0; i < displayField.length; i++) {\n            value.push({\n              name: displayField[i].comment,\n              value: data.rows[j][displayField[i].field.toUpperCase()]\n            });\n\n            if (j === 0) {\n              legendData.push(displayField[i].comment);\n            }\n          }\n\n          seriesData.push({\n            name: data.rows[j][xAxisField.field.toUpperCase()],\n            type: \"funnel\",\n            data: value,\n            width: duration - 5 + \"%\",\n            left: j * duration + \"%\",\n            funnelAlign: series.funnelAlign,\n            sort: series.sort,\n            label: {\n              position: series.label.position\n            }\n          });\n        }\n      } else {\n        //行数据展示\n        var _duration2 = 100 / displayField.length;\n\n        for (var _i3 = 0; _i3 < displayField.length; _i3++) {\n          var _value4 = [];\n\n          for (var _j3 = 0; _j3 < data.rows.length; _j3++) {\n            _value4.push({\n              name: data.rows[_j3][xAxisField.field.toUpperCase()],\n              value: data.rows[_j3][displayField[_i3].field.toUpperCase()]\n            });\n\n            if (_i3 === 0) {\n              legendData.push(data.rows[_j3][xAxisField.field.toUpperCase()] + \"\");\n            }\n          }\n\n          seriesData.push({\n            name: displayField[_i3].comment,\n            type: \"funnel\",\n            data: _value4,\n            width: _duration2 - 5 + \"%\",\n            left: _i3 * _duration2 + \"%\",\n            funnelAlign: series.funnelAlign,\n            sort: series.sort,\n            label: {\n              position: series.label.position\n            }\n          });\n        }\n      }\n\n      option.series = seriesData;\n      option.legend = data.conf.legend;\n      option.legend.data = legendData;\n      return option;\n    },\n    buildScatter: function buildScatter(data, option) {\n      var displayField = data.displayfield;\n      var legendData = [];\n      var xAxisData = [];\n      var xAxisField = data.xaxisField;\n      var seriesData = [];\n      var series = data.conf.series;\n      if (xAxisField) xAxisField = xAxisField[0];\n\n      if (series.showType) {\n        for (var j = 0; j < data.rows.length; j++) {\n          var value = [];\n\n          for (var i = 0; i < displayField.length; i++) {\n            if (j === 0) {\n              xAxisData.push(displayField[i].comment);\n            }\n\n            value.push([displayField[i].comment, data.rows[j][displayField[i].field.toUpperCase()]]);\n          }\n\n          legendData.push(data.rows[j][xAxisField.field.toUpperCase()] + \"\");\n          seriesData.push({\n            name: data.rows[j][xAxisField.field.toUpperCase()],\n            type: \"scatter\",\n            data: value\n          });\n        }\n      } else {\n        for (var _i4 = 0; _i4 < displayField.length; _i4++) {\n          var _value5 = [];\n\n          for (var _j4 = 0; _j4 < data.rows.length; _j4++) {\n            if (_i4 === 0) {\n              xAxisData.push(data.rows[_j4][xAxisField.field.toLocaleUpperCase()]);\n            }\n\n            _value5.push([data.rows[_j4][xAxisField.field.toLocaleUpperCase()], data.rows[_j4][displayField[_i4].field.toLocaleUpperCase()]]);\n          }\n\n          legendData.push(displayField[_i4].comment);\n          seriesData.push({\n            name: displayField[_i4].comment,\n            type: \"scatter\",\n            data: _value5\n          });\n\n          if (displayField[_i4].regression && displayField[_i4].regression !== 'none') {\n            var myRegression = ecStat.regression(displayField[_i4].regression, _value5);\n            myRegression.points.sort(function (a, b) {\n              return a[0] - b[0];\n            });\n            seriesData.push({\n              name: 'line',\n              type: 'line',\n              showSymbol: false,\n              data: myRegression.points,\n              markPoint: {\n                itemStyle: {\n                  color: 'transparent'\n                },\n                label: {\n                  show: true,\n                  position: 'left',\n                  formatter: myRegression.expression,\n                  color: '#333',\n                  fontSize: 14\n                },\n                data: [{\n                  coord: myRegression.points[myRegression.points.length - 1]\n                }]\n              }\n            });\n          }\n        }\n      }\n\n      option.series = seriesData;\n      option.xAxis = {\n        type: data.conf.series.xAxisType\n      };\n\n      if (data.conf.series.xAxisType === 'category') {\n        option.xAxis.data = xAxisData;\n      }\n\n      option.yAxis = {};\n      option.legend = data.conf.legend;\n      option.legend.data = legendData;\n      return option;\n    },\n    buildHeatmap: function buildHeatmap(data, option) {\n      var displayField = data.displayfield;\n      var legendData = [];\n      var rows = [];\n      var columns = [];\n      var arr = [];\n      var max = 0;\n      var xAxisField = data.xaxisField;\n      if (xAxisField) xAxisField = xAxisField[0];\n\n      for (var i = 0; i < data.rows.length; i++) {\n        for (var j = 0; j < displayField.length; j++) {\n          if (i === 0) {\n            columns.push(displayField[j].comment);\n          }\n\n          arr.push([i, j, data.rows[i][displayField[j].field.toUpperCase()]]);\n\n          if (data.rows[i][displayField[j].field.toUpperCase()] > max) {\n            max = data.rows[i][displayField[j].field.toUpperCase()];\n          }\n        }\n\n        rows.push(data.rows[i][xAxisField.field.toUpperCase()]);\n      }\n\n      option.series = [{\n        name: \"sss\",\n        type: \"heatmap\",\n        data: arr,\n        label: {\n          normal: {\n            show: true\n          }\n        }\n      }];\n      option.xAxis = {\n        type: \"category\",\n        data: rows,\n        splitArea: {\n          show: true\n        }\n      };\n      option.yAxis = {\n        type: \"category\",\n        data: columns,\n        splitArea: {\n          show: true\n        }\n      };\n      option.visualMap = {\n        min: 0,\n        max: max,\n        calculable: true,\n        orient: \"horizontal\",\n        left: \"center\",\n        bottom: \"0%\"\n      };\n      option.tooltip = {\n        position: \"top\"\n      };\n      option.legend = data.conf.legend;\n      option.legend.data = legendData;\n      return option;\n    },\n    getGrid: function getGrid() {\n      var top = 0;\n      var bottom = 0;\n      var grid = {};\n\n      if (this.customChart.conf.title.show) {\n        if (this.customChart.conf.title.top === \"top\") {\n          top += 7;\n\n          if (this.customChart.conf.title.subtext) {\n            top += 5;\n          }\n        } else if (this.customChart.conf.title.top === \"bottom\") {\n          bottom += 16;\n        }\n      }\n\n      if (this.customChart.conf.legend.show) {\n        if (this.customChart.conf.legend.top === \"top\") {\n          top += 7;\n        } else if (this.customChart.conf.legend.top === \"bottom\") {\n          bottom += 10;\n        }\n      }\n\n      if (top !== 0) {\n        grid.top = top + \"%\";\n      } else {\n        grid.top = \"5%\";\n      }\n\n      if (bottom !== 0) {\n        grid.bottom = bottom + \"%\";\n      }\n\n      return grid;\n    },\n    getTitlePosition: function getTitlePosition() {\n      if (this.customChart.conf.title.top === \"top\") {\n        return this.customChart.conf.legend.show && this.customChart.conf.legend.top === \"top\" ? \"20\" : \"auto\";\n      } else if (this.customChart.conf.title.top === \"bottom\") {\n        return this.customChart.conf.legend.show && this.customChart.conf.legend.top === \"bottom\" ? \"84%\" : \"88%\";\n      } else {\n        return this.customChart.conf.title.top;\n      }\n    },\n    adjustChatTitle: function adjustChatTitle(data, option) {\n      option.legend.top = 30;\n      option.grid.top = 80;\n\n      if (data.conf && data.conf.title && data.conf.title.subtext) {\n        option.legend.top = 50;\n        option.grid.top = 100;\n      }\n    }\n  }\n};",null]}