{"remainingRequest":"/Users/admin/projects/dms/src/dealer_admin/node_modules/thread-loader/dist/cjs.js!/Users/admin/projects/dms/src/dealer_admin/node_modules/babel-loader/lib/index.js!/Users/admin/projects/dms/src/dealer_admin/node_modules/cache-loader/dist/cjs.js??ref--0-0!/Users/admin/projects/dms/src/dealer_admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/admin/projects/dms/src/dealer_admin/src/views/dashboard/admin/index.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/admin/projects/dms/src/dealer_admin/src/views/dashboard/admin/index.vue","mtime":1713161556000},{"path":"/Users/admin/projects/dms/src/dealer_admin/babel.config.js","mtime":1713161556000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/thread-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/babel-loader/lib/index.js","mtime":456789000000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/admin/projects/dms/src/dealer_admin/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":["import _objectSpread from \"/Users/admin/projects/dms/src/dealer_admin/node_modules/@babel/runtime-corejs2/helpers/esm/objectSpread2.js\";\nimport _defineProperty from \"/Users/admin/projects/dms/src/dealer_admin/node_modules/@babel/runtime-corejs2/helpers/esm/defineProperty.js\";\nimport _regeneratorRuntime from \"/Users/admin/projects/dms/src/dealer_admin/node_modules/@babel/runtime-corejs2/helpers/esm/regeneratorRuntime.js\";\nimport \"regenerator-runtime/runtime\";\nimport _asyncToGenerator from \"/Users/admin/projects/dms/src/dealer_admin/node_modules/@babel/runtime-corejs2/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//\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//\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//\n//\n//\n//\n//\n//\n\nimport * as echarts from 'echarts';\nimport { Pie } from '@antv/g2plot';\nimport * as OrderAPI from \"@/api/order.js\";\nimport * as SalesAPI from \"@/api/sales_amis.js\";\nimport * as SalesOpportunityAPI from \"@/api/sales_opportunity.js\";\nimport DashBoardFilterModal from \"./components/DashBoardFilterModal.vue\";\nimport { priceNumFilter } from \"@/filters/index.js\";\nimport _ from \"lodash\";\nexport default {\n  name: \"DashboardAdmin\",\n  components: {\n    DashBoardFilterModal: DashBoardFilterModal\n  },\n  data: function data() {\n    return {\n      statisticData: {\n        invoiceMonthMoney: 0,\n        invoiceYearMoney: 0,\n        orderBookMoney: 0,\n        salesOpportunityMoney: 0,\n        nowMonthAmisMoney: 0,\n        nowYearAmisMoney: 0,\n        monthPercent: 0.00,\n        yearPercent: 0.00\n      },\n      orderChart: null,\n      orderDateList: [],\n      orderList: [],\n      orderQueryParams: {\n        startDate: '',\n        endDate: ''\n      },\n      salesChart: null,\n      salesDateList: [],\n      salesList: [],\n      salesQueryParams: {\n        startDate: '',\n        endDate: ''\n      },\n      dealer_str: '全部',\n      filterQuery: {\n        dealerId: ''\n      },\n      salesMapPlot: null,\n      salesMapData: [],\n      salesTotalMoney: 0,\n      salesShowType: 1,\n      //销售额显示情况 1:图表模式 2:表格模式\n      exportSalesLoading: false //是否正在导出\n    };\n  },\n  methods: {\n    init: function init() {\n      this.getDataStatistic();\n      //this.getOrderStatisticList();\n      this.getSalesStatisticList();\n      this.getTotalPieStatistic();\n    },\n    selectOrderList: function selectOrderList() {\n      var orderDateList = this.orderDateList;\n      if (!orderDateList || orderDateList.length <= 1) {\n        return;\n      }\n      var startDate = orderDateList[0];\n      var endDate = orderDateList[1];\n      if (startDate == '' || endDate == '') {\n        return;\n      }\n      this.orderQueryParams.startDate = startDate;\n      this.orderQueryParams.endDate = endDate;\n      this.getOrderStatisticList();\n    },\n    selectSalesList: function selectSalesList() {\n      var salesDateList = this.salesDateList;\n      if (!salesDateList || salesDateList.length <= 1) {\n        return;\n      }\n      var startDate = salesDateList[0];\n      var endDate = salesDateList[1];\n      if (startDate == '' || endDate == '') {\n        return;\n      }\n      this.salesQueryParams.startDate = startDate;\n      this.salesQueryParams.endDate = endDate;\n      this.getSalesStatisticList();\n    },\n    getDataStatistic: function () {\n      var _getDataStatistic = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n        var query, res;\n        return _regeneratorRuntime().wrap(function _callee$(_context) {\n          while (1) switch (_context.prev = _context.next) {\n            case 0:\n              query = {};\n              query = Object.assign(query, this.filterQuery);\n              _context.next = 4;\n              return OrderAPI.getDataStatistic(query);\n            case 4:\n              res = _context.sent;\n              console.log(\"res:\", res.result);\n              this.statisticData = res.result;\n            case 7:\n            case \"end\":\n              return _context.stop();\n          }\n        }, _callee, this);\n      }));\n      function getDataStatistic() {\n        return _getDataStatistic.apply(this, arguments);\n      }\n      return getDataStatistic;\n    }(),\n    getOrderStatisticList: function () {\n      var _getOrderStatisticList = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {\n        var query, res;\n        return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n          while (1) switch (_context2.prev = _context2.next) {\n            case 0:\n              query = _.cloneDeep(this.orderQueryParams);\n              query = Object.assign(query, this.filterQuery);\n              _context2.next = 4;\n              return OrderAPI.getOrderStatisticList(query);\n            case 4:\n              res = _context2.sent;\n              console.log(\"list:\", res.result);\n              this.orderList = res.result.list;\n              this.initOrderChart();\n            case 8:\n            case \"end\":\n              return _context2.stop();\n          }\n        }, _callee2, this);\n      }));\n      function getOrderStatisticList() {\n        return _getOrderStatisticList.apply(this, arguments);\n      }\n      return getOrderStatisticList;\n    }(),\n    initOrderChart: function initOrderChart() {\n      var list = this.orderList;\n      var xList = [];\n      var yList = [];\n      list.map(function (v) {\n        xList.push(v.date);\n        yList.push(v.ordercount);\n      });\n      this.orderChart = echarts.init(document.getElementById('orderChatMain'));\n      this.orderChart.setOption({\n        tooltip: {\n          formatter: function formatter(params) {\n            return params.data + \"单\";\n          }\n        },\n        grid: {\n          left: '1%',\n          right: '1%',\n          bottom: '4%',\n          containLabel: true\n        },\n        xAxis: {\n          type: 'category',\n          data: xList,\n          axisTick: {\n            alignWithLabel: true\n          }\n        },\n        yAxis: {\n          type: 'value'\n        },\n        series: [{\n          data: yList,\n          smooth: true,\n          type: 'bar',\n          barWidth: '30%',\n          itemStyle: {\n            color: '#51B3E0'\n          },\n          areaStyle: {}\n        }]\n      });\n    },\n    getSalesStatisticList: function () {\n      var _getSalesStatisticList = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {\n        var query, res;\n        return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n          while (1) switch (_context3.prev = _context3.next) {\n            case 0:\n              query = _.cloneDeep(this.salesQueryParams);\n              query = Object.assign(query, this.filterQuery);\n              _context3.next = 4;\n              return SalesAPI.getSalesStatisticList(query);\n            case 4:\n              res = _context3.sent;\n              console.log(\"list:\", res.result);\n              this.salesList = res.result.list;\n              this.initSalesChart();\n            case 8:\n            case \"end\":\n              return _context3.stop();\n          }\n        }, _callee3, this);\n      }));\n      function getSalesStatisticList() {\n        return _getSalesStatisticList.apply(this, arguments);\n      }\n      return getSalesStatisticList;\n    }(),\n    initSalesChart: function initSalesChart() {\n      var list = this.salesList;\n      var xList = [];\n      var yList = [];\n      var zList = [];\n      var kList = [];\n      list.map(function (v) {\n        xList.push(v.date);\n        yList.push(v.actual);\n        zList.push(v.amis);\n        kList.push(v.lastActual);\n      });\n      this.salesChart = echarts.init(document.getElementById('salesChatMain'));\n      this.salesChart.setOption(_defineProperty(_defineProperty(_defineProperty(_defineProperty({\n        tooltip: {\n          formatter: function formatter(params) {\n            return params.data + \"元\";\n          }\n        },\n        grid: {\n          left: '1%',\n          right: '1%',\n          bottom: '4%',\n          containLabel: true\n        },\n        legend: {\n          data: ['去年同期销售额', '实际销售额', '目标销售额']\n        }\n      }, \"tooltip\", {}), \"xAxis\", {\n        type: 'category',\n        data: xList\n      }), \"yAxis\", {\n        type: 'value'\n      }), \"series\", [{\n        name: '去年同期销售额',\n        data: kList,\n        smooth: true,\n        type: 'bar',\n        barWidth: '20%',\n        itemStyle: {\n          color: '#4EC478'\n        },\n        areaStyle: {}\n      }, {\n        name: '实际销售额',\n        data: yList,\n        smooth: true,\n        type: 'bar',\n        barWidth: '20%',\n        itemStyle: {\n          color: '#51B3E0'\n        },\n        areaStyle: {}\n      }, {\n        name: '目标销售额',\n        data: zList,\n        smooth: true,\n        barWidth: '20%',\n        type: 'bar',\n        itemStyle: {\n          color: '#FBA33F'\n        },\n        areaStyle: {}\n      }]));\n    },\n    getTotalPieStatistic: function () {\n      var _getTotalPieStatistic = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n        var query, res;\n        return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n          while (1) switch (_context4.prev = _context4.next) {\n            case 0:\n              query = _.cloneDeep(this.orderQueryParams);\n              query = Object.assign(query, this.filterQuery);\n              _context4.next = 4;\n              return SalesOpportunityAPI.getTotalPieStatistic(query);\n            case 4:\n              res = _context4.sent;\n              console.log(\"list:\", res.result);\n              this.salesMapData = [];\n              this.salesMapData = res.result.list;\n              this.salesTotalMoney = priceNumFilter(res.result.totalMoney);\n              this.initSalesMap();\n            case 10:\n            case \"end\":\n              return _context4.stop();\n          }\n        }, _callee4, this);\n      }));\n      function getTotalPieStatistic() {\n        return _getTotalPieStatistic.apply(this, arguments);\n      }\n      return getTotalPieStatistic;\n    }(),\n    initSalesMap: function initSalesMap() {\n      var _this = this;\n      if (this.salesMapPlot) {\n        this.salesMapPlot.changeData(this.salesMapData);\n        this.salesMapPlot.render();\n        return false;\n      }\n      this.salesMapPlot = new Pie('salesMap', {\n        appendPadding: 10,\n        data: this.salesMapData,\n        angleField: 'money',\n        colorField: 'type',\n        color: [\"#51B3E0\", \"#4EC478\", \"#FBA33F\"],\n        radius: 1,\n        innerRadius: 0.7,\n        legend: {\n          layout: 'horizontal',\n          position: 'bottom',\n          itemName: {\n            style: {\n              fontSize: 14,\n              fill: \"#000000\",\n              fontWeight: 500\n            },\n            formatter: function formatter(text, item, index) {\n              return \"\".concat(_this.salesMapData[index].value, \"%\");\n            }\n          },\n          itemValue: {\n            style: {\n              fontSize: 14,\n              fill: \"#BEC0C6\",\n              textAlign: \"center\"\n            },\n            formatter: function formatter(text, item, index) {\n              if (text == 'In Progress') {\n                return \"\\n\\n\".concat(text);\n              } else if (text == 'Won') {\n                return \"\\n\\n\".concat(text, \"        \");\n              } else if (text == 'Lost') {\n                return \"\\n\\n\".concat(text, \"        \");\n              }\n              return \"\\n\\n\".concat(text);\n            }\n          }\n        },\n        pieStyle: function pieStyle(item) {\n          if (item.type == \"In Progress\") {\n            return {\n              fill: \"#51B3E0\",\n              shadowColor: \"#51B3E0\",\n              shadowBlur: 10,\n              shadowOffsetX: 0,\n              shadowOffsetY: 0\n            };\n          } else if (item.type == \"Won\") {\n            return {\n              fill: \"#4EC478\",\n              shadowColor: \"#4EC478\",\n              shadowBlur: 10,\n              shadowOffsetX: 0,\n              shadowOffsetY: 0\n            };\n          } else if (item.type == \"Lost\") {\n            return {\n              fill: \"#FBA33F\",\n              shadowColor: \"#FBA33F\",\n              shadowBlur: 10,\n              shadowOffsetX: 0,\n              shadowOffsetY: 0\n            };\n          }\n        },\n        statistic: {\n          title: {\n            formatter: function formatter() {\n              return '总金额';\n            }\n          },\n          content: {\n            formatter: function formatter() {\n              return _this.salesTotalMoney;\n            }\n          }\n        }\n      });\n      this.salesMapPlot.render();\n    },\n    filterChoice: function filterChoice(e) {\n      console.log(\"e:\", e);\n      var dealerId = e.dealerId,\n        dealer_name = e.dealer_name,\n        industry = e.industry,\n        industryList = e.industryList;\n      if (dealerId && dealerId != undefined) {\n        this.dealer_str = dealer_name;\n      } else {\n        this.dealer_str = \"全部\";\n      }\n      var filterQuery = this.filterQuery;\n      filterQuery.dealerId = dealerId;\n      if (industry) {\n        filterQuery.industry = industry;\n      }\n      if (industryList) {\n        filterQuery.industryList = JSON.stringify(industryList);\n      }\n      this.filterQuery = {};\n      this.filterQuery = filterQuery;\n      this.init();\n    },\n    showFilter: function showFilter() {\n      var _this2 = this;\n      this.$nextTick(function () {\n        _this2.$refs.dashBoardFilterModal.init();\n      });\n    },\n    toggleSalesShow: function toggleSalesShow() {\n      this.salesShowType = this.salesShowType == 1 ? 2 : 1;\n    },\n    exportSalesExcel: function exportSalesExcel() {\n      var _this3 = this;\n      this.exportSalesLoading = true;\n      import(\"@/vendor/Export2Excel\").then(function (excel) {\n        var tHeader = [\"日期\", \"去年同期\", \"实际销售额\", \"目标销售额\"];\n        var filterVal = [\"date\", \"lastActual\", \"actual\", \"amis\"];\n        var newList = _this3.salesList.map(function (e) {\n          //console.log(e);\n          return _objectSpread({}, e);\n        });\n        var data = _this3.formatJson(filterVal, newList);\n        excel.export_json_to_excel({\n          header: tHeader,\n          data: data,\n          filename: \"销售额列表\"\n        });\n        _this3.exportSalesLoading = false;\n      });\n    },\n    formatJson: function formatJson(filterVal, jsonData) {\n      return jsonData.map(function (v) {\n        return filterVal.map(function (j) {\n          if (j == \"lastActual\" || j == \"actual\" || j == \"amis\") {\n            return priceNumFilter(v[j]);\n          } else {\n            return v[j];\n          }\n        });\n      });\n    }\n  },\n  created: function created() {\n    this.init();\n  }\n};",null]}