From f8b2085eaac836cc5f5dd369233af00bf24ff750 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A3=8E=E7=BB=A7=E7=BB=AD=E5=90=B9?= <17611323298@163.com> Date: Tue, 9 May 2023 18:59:27 +0800 Subject: [PATCH] =?UTF-8?q?bi=E5=A4=A7=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/img/bidata/leijijiedai.png | Bin 0 -> 23643 bytes src/api/modules/http.js | 30 + src/page/bi/bi.vue | 4700 ++++++++++++++++++----------- src/page/bi/index.js | 101 +- 4 files changed, 2998 insertions(+), 1833 deletions(-) create mode 100644 public/img/bidata/leijijiedai.png diff --git a/public/img/bidata/leijijiedai.png b/public/img/bidata/leijijiedai.png new file mode 100644 index 0000000000000000000000000000000000000000..bdff994630c0da0c919275a85659240be1701e34 GIT binary patch literal 23643 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 @@ -423,8 +424,8 @@
-
+
+ +
+ +
+
+ +
+
+ +
在线率
+
+
+
+ 设备总数:{{ + equipmentOnlineAnalyse.allCount || 0 + }} +
+
+ 在线设备:{{ + equipmentOnlineAnalyse.onlineCount || 0 + }} +
+
+ 在线率:{{ equipmentOnlineAnalyse.onlineCountRate || 0 }}% +
+
+
+
+ +
+ +
+
+ +
活跃项目率
+
+
+
+ 项目总数:{{ + activeProjectAnalyse.allProject || 0 + }} +
+
+ 活跃项目:{{ + activeProjectAnalyse.activeProject || 0 + }} +
+
+ 活跃项目率:{{ activeProjectAnalyse.activeProjectRate || 0 }}% +
+
+
+
+ +
+ +
+
+ +
+ +
+ + + + + + + +
+
+
+ + +
+ +
+

待处理

+
+
+
+ {{ data.data || 0 }} +
+
{{ data.title }}
+
+
+
+ +
+ + + +
+ + 接待量 +
+ {{ receptionCounts }} + +
+
+ +
+
+
+ {{ data.data || 0 }} +
+
+ {{ data.title }} + +
+
+
+
+ +
+
+ +
+
+
+ +
+
+
+
+ + +
+
+ +
+
+ +
录音完整率
+
+
+
+ 接待总数:{{ + equipmentOnlineAnalyse.allCount || 0 + }} +
+
+ 完整录音:{{ + equipmentOnlineAnalyse.onlineCount || 0 + }} +
+
+ 录音完整率:{{ equipmentOnlineAnalyse.onlineCountRate || 0 }}% +
+
+
+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+
+
+
+ -
+
{ - if (res.code == 10000) { - this.biWarningMessageIndex = res.data.records.map((item) => { - return { - ...item, - selectValue: [], - }; - }); - this.totals = res.data.total; - } + arr1.forEach((item, index) => { + let par = { + // 折线图的样式 + smooth: true, + name: item.name, + type: "line", + areaStyle: { + normal: { + color: new echarts.graphic.LinearGradient( + 0, + 0, + 1, + 1, + this.lineColorLinear(index), + false + ), + shadowColor: "rgba(44,118,222, 0.1)", + shadowBlur: 10, + }, + }, + itemStyle: { + normal: { + color: { + type: "linear", // 线性渐变 + x: 0, + y: 0, + x2: 1, + y2: 1, + colorStops: this.lineColorLinear(index), + }, + }, + }, + data: [], + }; + this.fullRecordTendency.forEach((org) => { + par.data.push(org[item.params] || 0); + if (!obj1.xAxis.includes(org.date.split(" ")[0])) { + obj1.xAxis.push(org.date.split(" ")[0]); + } + + if (!obj1.legend.includes(item.name)) { + obj1.legend.push(item.name); + } + }); + this.receptionList.push(par); }); - }, - // 展示项目预警列表 - showBiWarningList() { - this.tableNameList = dialogConstList.earlyWarningTable; - this.biWarningList(); - }, + obj1.series = this.receptionList; + console.log(obj1, "这里是"); - // 围巾预警 - biWarningList() { + this.$nextTick(() => { + this.creatLine(obj1); + }); + + }, + // 设备监控中心左 + biEquipmentMonitoringLeft() { const params = { - orgType: localStorage.getItem("orgType") || "", - agentId: localStorage.getItem("agentId") || "", - current: this.current, - size: this.size, + dateType: this.dateSelectIndex, + orgCode: this.companyValue, + startDate: this.time[0] || "", + endDate: this.time[1] || "", + houseId: this.projectValue, }; - this.$api.http.biWarningList(params).then((res) => { + this.$api.http.biEquipmentMonitoringLeft(params).then((res) => { if (res.code == 10000) { - this.tableData = res.data.records; - this.total = res.data.total; - if (!this.dialogVisible) { - this.dialogVisible = true; - this.dialogTitle = "项目列表"; - } + this.equipmentOnlineAnalyse = res.data.equipmentOnlineAnalyse; + this.overdueProject = res.data.overdueProject.splice(0, 7) || []; + this.projectAnalyse = res.data.projectAnalyse; + this.activeProjectAnalyse = res.data.activeProjectAnalyse; + + this.$nextTick(() => { + this.buildingPie(); + }); } }); }, - // 接待分析 - initReceptionAnalysis() { - this.biTopStatisticData(); - this.biFindHouseByOrgCode(); - this.biTendencyDataContrast(); - this.biReceptionDetail(); - }, - - // 销讲执行分布 - initSalesExecutionDistribution() { - this.biTopStatisticData(); - this.biFindHouseByOrgCode(); - this.biCusAgentRelationDistribute(); - }, - - // 销讲执行分布 - biCusAgentRelationDistribute() { - // 接口入参 + // 设备监控中心右 + biEquipmentMonitoringRight() { const params = { dateType: this.dateSelectIndex, orgCode: this.companyValue, @@ -1200,187 +1506,181 @@ export default { endDate: this.time[1] || "", houseId: this.projectValue, }; - this.$api.http.biCusAgentRelationDistribute(params).then((res) => { + this.$api.http.biEquipmentMonitoringRight(params).then((res) => { if (res.code == 10000) { - this.allSalesExecutionDistri = res.data; - this.formatAllSalesExecutionDistri(); // 格式化数据 + this.fullRecordAnalyse = res.data.fullRecordAnalyse || {}; + this.fullRecordTendency = res.data.fullRecordTendency || []; + this.notFullRecordDistribute = res.data.notFullRecordDistribute || []; + this.offLineReasonDistribute = res.data.offLineReasonDistribute || []; + + this.$nextTick(() => { + this.buildNotFull(); + this.buildOffLine(); + this.formatLineDatasLine() + }); } }); }, - // 格式化销讲执行分布 - formatAllSalesExecutionDistri() { - this.SalesExecutionDistributionIndex.forEach((list) => { - if (list.params == "visitReceptionDistribute") { - let gentle = 0; - let [arr1, arr2] = [[], []]; - this.allSalesExecutionDistri.visitReceptionDistribute.forEach( - (item) => { - if (item.name != "首次到访") { - gentle += item.value; - } else { - arr1.push(item); - } - arr2.push(item); - } - ); - let series = [ - { - name: "到访次数分布", - type: "pie", - selectedMode: "single", - radius: [0, "30%"], - label: { - position: "inner", - fontSize: 14, - }, - labelLine: { - show: false, - }, - data: arr1, - }, - { - name: "到访次数分布", - type: "pie", - radius: ["45%", "60%"], - labelLine: { - length: 30, - }, - data: arr2, + buildOffLine() { + let legends = this.offLineReasonDistribute.map((item) => { + return item.name; + }); + this.creatPie({ + id: "offLineReasonDistribute", + grid: { + bottom: "20%", + top: "5%", + }, + legend: { + legend: legends, + show: true, + orient: "horizontal", + type: "scroll", + bottom: "5%", + textStyle: { + color: "#fff", + }, + }, + series: [ + { + name: "项目服务期分析", + type: "pie", + radius: ["45%", "60%"], + labelLine: { + length: 5, + showAbove: true, }, - ]; - if (series[0].data.length > 0) { - series[0].data.push({ - name: "复访接待", - value: gentle, - }); - } - this.$nextTick(() => { - this.creatPie({ - id: `${list.params}SalesExecutionDistributionIndex`, - legend: { - show: false, - }, - series: series, - }); - }); - } else { - let legend = this.allSalesExecutionDistri[list.params].map((item) => { - return item.name; - }); - this.$nextTick(() => { - this.creatPie({ - id: `${list.params}SalesExecutionDistributionIndex`, - grid: { - bottom: "20%", - top: "5%", - }, - legend: { - legend: legend, - show: list.legend ? true : false, - orient: "horizontal", - type: "scroll", - bottom: "5%", - textStyle: { - color: "#fff", + minAngle: 5, + avoidLabelOverlap: true, + data: this.offLineReasonDistribute, + itemStyle: { + normal: { + color: function (colors) { + var colorList = [ + "#D0444D", + "#376FE3", + "#E1B31F", + "#8D25E4", + "#DF7323", + "#2ED1EE", + ]; + return colorList[colors.dataIndex % 6]; }, }, - series: [ - { - name: list.title, - type: "pie", - radius: "50%", - labelLine: { - length: 5, - showAbove: true, - }, - minAngle: 5, - avoidLabelOverlap: true, - data: this.allSalesExecutionDistri[list.params], - itemStyle: { - normal: { - color: function (colors) { - var colorList = [ - "#D0444D", - "#376FE3", - "#E1B31F", - "#8D25E4", - "#DF7323", - "#2ED1EE", - ]; - return colorList[colors.dataIndex % 6]; - }, - }, - }, - }, - ], - }); - }); - } + }, + }, + ], }); }, - // 接待分析 --> 选中下标修改 - changeIndicatorOptions(params, index, events) { - this[params] = index; - this[events](); - }, - - // 获取名称 - getName(value) { - let str = ""; - switch (value) { - case "recording": - str = "无录音"; - break; - case "tagCustomer": - str = "标记无效"; - break; - case "prohibitedCustomer": - str = "违禁接待"; - break; - case "normalReception": - str = "正常接待"; - break; - case "activeCustomer": - str = "有效接待"; - break; - case "invalidCount": - str = "无效接待"; - break; - default: - str = ""; - break; - } - return str; + buildNotFull() { + let legend = this.notFullRecordDistribute.map((item) => { + return item.name; + }); + this.creatPie({ + id: "notFullRecordDistribute", + grid: { + bottom: "20%", + top: "5%", + }, + legend: { + legend: legend, + show: true, + orient: "horizontal", + type: "scroll", + bottom: "5%", + textStyle: { + color: "#fff", + }, + }, + series: [ + { + name: "项目服务期分析", + type: "pie", + radius: ["45%", "60%"], + labelLine: { + length: 5, + showAbove: true, + }, + minAngle: 5, + avoidLabelOverlap: true, + data: this.notFullRecordDistribute, + itemStyle: { + normal: { + color: function (colors) { + var colorList = [ + "#D0444D", + "#376FE3", + "#E1B31F", + "#8D25E4", + "#DF7323", + "#2ED1EE", + ]; + return colorList[colors.dataIndex % 6]; + }, + }, + }, + }, + ], + }); }, - // 修改已读未读状态 - biWarningUpdateShowStatus(data) { - if (data.selectValue.length == 0) { - this.$message.error("请选择已了解的消息"); - return; - } - this.$api.http - .biWarningUpdateShowStatus({ - ids: data.selectValue.join(","), - }) - .then((res) => { - console.log(res); - if (res.code == 10000) { - data.list.forEach((item) => { - item.showStatus = 0; - }); - this.$message.success(res.message); - } else { - this.$message.error(res.message); - } - }); + // 服务项目分析 + buildingPie() { + let legend = this.projectAnalyse.map((item) => { + return item.name; + }); + this.creatPie({ + id: "projectAnalyse", + grid: { + bottom: "20%", + top: "5%", + }, + legend: { + legend: legend, + show: true, + orient: "horizontal", + type: "scroll", + bottom: "5%", + textStyle: { + color: "#fff", + }, + }, + series: [ + { + name: "项目服务期分析", + type: "pie", + radius: ["45%", "60%"], + labelLine: { + length: 5, + showAbove: true, + }, + minAngle: 5, + avoidLabelOverlap: true, + data: this.projectAnalyse, + itemStyle: { + normal: { + color: function (colors) { + var colorList = [ + "#D0444D", + "#376FE3", + "#E1B31F", + "#8D25E4", + "#DF7323", + "#2ED1EE", + ]; + return colorList[colors.dataIndex % 6]; + }, + }, + }, + }, + ], + }); }, - // 接待质量趋势&销讲质量分布 - biReceptionDetail() { - // 接口入参 + // 设备监控中心 + bieQuipmentMonitoringCenter() { const params = { dateType: this.dateSelectIndex, orgCode: this.companyValue, @@ -1388,612 +1688,630 @@ export default { endDate: this.time[1] || "", houseId: this.projectValue, }; - - this.$api.http.biReceptionDetail(params).then((res) => { + this.$api.http.bieQuipmentMonitoringCenter(params).then((res) => { if (res.code == 10000) { - this.formatReceptionQualityTrends(res.data.tendencyData); - this.formatMarketingMassDistribution(res.data.distributeData); + this.equipmentMonitoringCenter = res.data.tendencyData; + console.log(res); + this.receptionCounts = res.data.receptionCount || 0; + // 赋值待处理 正在接待 + this.jiedaiLists.forEach((item) => { + item.data = res.data[item.params]; + }); + this.stayHandleLists.forEach((item) => { + item.data = res.data[item.params]; + }); + this.formatLineDatas(); } }); }, - // 格式化接待质量趋势 - formatReceptionQualityTrends(res) { - const list = [ - { - title: "有效接待", - params: "activeCustomer", - }, - { - title: "标记无效", - params: "tagCustomer", - }, + // 处理折线统计图的数据 + formatLineDatas() { + let arr1 = [ { - title: "无录音", - params: "recording", + name: "录音开启率", + params: "recordOpenRate", }, ]; - - let obj = { - id: "initReceptionAnalysisReceptionQualityTrends", + let obj1 = { + id: "RecordingOpeningRateTrend", xAxis: [], + legend: [], series: [], - legend: { - show: true, - data: [], - bottom: "0", - right: "center", - orient: "horizontal", // 图例列表的布局朝向; horizontal; vertical - icon: "circle", - left: "center", // 距离容器侧边距离 - textStyle: { - color: "#fff", - fontSize: 12, - }, - }, - color: [ - new echarts.graphic.LinearGradient( - 0, - 0, - 0, - 1, - [ - { - offset: 0, - color: "#FF7B96", - }, - { - offset: 1, - color: "#FA3E63", - }, - ], - false - ), - new echarts.graphic.LinearGradient( - 0, - 0, - 0, - 1, - [ - { - offset: 0, - color: "#FAB519", - }, - { - offset: 1, - color: "#FC6128", - }, - ], - false - ), - new echarts.graphic.LinearGradient( - 0, - 0, - 0, - 1, - [ - { - offset: 0, - color: "#4C83FF", - }, - { - offset: 1, - color: "#2AFADF", - }, - ], - false - ), - ], - grid: { - left: "3%", - right: "4%", - bottom: "10%", - containLabel: true, - }, + max: 100, }; - list.forEach((item, index) => { - obj.legend.data.push(item.title); - let objChild = { - type: "bar", - barMaxWidth: "20%", - name: item.title, - stack: "total", + arr1.forEach((item, index) => { + let par = { + // 折线图的样式 + smooth: true, + name: item.name, + type: "line", + areaStyle: { + normal: { + color: new echarts.graphic.LinearGradient( + 0, + 0, + 1, + 1, + this.lineColorLinear(index), + false + ), + shadowColor: "rgba(44,118,222, 0.1)", + shadowBlur: 10, + }, + }, + itemStyle: { + normal: { + color: { + type: "linear", // 线性渐变 + x: 0, + y: 0, + x2: 1, + y2: 1, + colorStops: this.lineColorLinear(index), + }, + }, + }, data: [], }; - res.forEach((key) => { - if (!obj.xAxis.includes(key.startDate)) { - obj.xAxis.push(key.startDate); + this.equipmentMonitoringCenter.forEach((org) => { + par.data.push(org[item.params] || 0); + + obj1.xAxis.push(org.date); + + if (!obj1.legend.includes(item.name)) { + obj1.legend.push(item.name); } - objChild.data.push(key[item.params]); }); - obj.series.push(objChild); - }); - console.log(obj); - this.$nextTick(() => { - this.creatBar(obj); + this.receptionList.push(par); }); - }, + let arr2 = [ + { + name: "平均开启时长", + params: "openActionTime", + }, + ]; - // 格式化销讲质量分布 - formatMarketingMassDistribution(res) { - let [arr1, arr2] = [[], []]; - for (const [key, value] of Object.entries(res)) { - if (key != "activeCustomer" && key != "invalidCount") { - arr1.push({ - name: this.getName(key), - value: value, - }); - } else { - arr2.push({ - name: this.getName(key), - value: value, - }); - } - } + let obj2 = { + id: "AverageOpeningTime", + xAxis: [], + legend: [], + series: [], + }; - let series = [ - { - name: "销讲质量分布", - type: "pie", - selectedMode: "single", - radius: [0, "30%"], - label: { - position: "inner", - fontSize: 14, - }, - labelLine: { - show: false, - }, - data: arr2, - minAngle: 5, - itemStyle: { + arr2.forEach((item, index) => { + let par = { + // 折线图的样式 + smooth: true, + name: item.name, + type: "line", + areaStyle: { normal: { - color: function (colors) { - var colorList = [ - "#D0444D", - "#376FE3", - "#E1B31F", - "#8D25E4", - "#DF7323", - "#2ED1EE", - ]; - return colorList[colors.dataIndex % 6]; - }, + color: new echarts.graphic.LinearGradient( + 0, + 0, + 1, + 1, + this.lineColorLinear(index), + false + ), + shadowColor: "rgba(44,118,222, 0.1)", + shadowBlur: 10, }, }, - }, - { - name: "销讲质量分布", - type: "pie", - radius: ["45%", "60%"], - labelLine: { - length: 30, - }, - data: arr1, - minAngle: 5, itemStyle: { normal: { - color: function (colors) { - var colorList = [ - "#D0444D", - "#376FE3", - "#E1B31F", - "#8D25E4", - "#DF7323", - "#2ED1EE", - ]; - return colorList[colors.dataIndex % 6]; + color: { + type: "linear", // 线性渐变 + x: 0, + y: 0, + x2: 1, + y2: 1, + colorStops: this.lineColorLinear(index), }, }, }, - }, - ]; - this.$nextTick(() => { - this.creatPie({ - id: "initReceptionAnalysisMarketingMassDistribution", - legend: { - show: false, - }, - series: series, + data: [], + }; + + this.equipmentMonitoringCenter.forEach((org) => { + par.data.push(org[item.params] || 0); + + obj2.xAxis.push(org.date); + + if (!obj2.legend.includes(item.name)) { + obj2.legend.push(item.name); + } }); + + this.salesExecution.push(par); + }); + + obj1.series = this.receptionList; + obj2.series = this.salesExecution; + console.log(obj1, "这里是"); + + this.$nextTick(() => { + this.creatLine(obj1); + this.creatLine(obj2); }); + }, - // 接待分析 - biTendencyDataContrast() { - // 接口入参 + // 违禁预警消息列表 + biWarningMessageList() { const params = { - dateType: this.dateSelectIndex, - orgCode: this.companyValue, - startDate: this.time[0] || "", - endDate: this.time[1] || "", + orgType: localStorage.getItem("orgType") || "", + agentId: localStorage.getItem("agentId") || "", houseId: this.projectValue, + current: this.currents, + size: this.sizes, }; - this.$api.http.biTendencyDataContrast(params).then((res) => { + this.$api.http.biWarningMessageList(params).then((res) => { if (res.code == 10000) { - this.allTrendData = res.data; - this.formatTendency(this.allTrendData); // 格式化数据 - - this.formatReception(); - this.formatSalesExecution(); + this.biWarningMessageIndex = res.data.records.map((item) => { + return { + ...item, + selectValue: [], + }; + }); + this.totals = res.data.total; } }); }, - // 格式化销讲趋势接待趋势 - formatReception() { - let res = this.allTrendData; - // 平均接待时长 - let options3 = { - id: "ReceptionTrendsBtm", - xAxis: [], // x坐标轴 - legend: [], - returnA: [], - returnB: [], - series: [], + // 展示项目预警列表 + showBiWarningList() { + this.tableNameList = dialogConstList.earlyWarningTable; + this.biWarningList(); + }, - grid: { - top: "10%", - bottom: "25%", - right: "5%", - left: "7%", - }, + // 围巾预警 + biWarningList() { + const params = { + orgType: localStorage.getItem("orgType") || "", + agentId: localStorage.getItem("agentId") || "", + current: this.current, + size: this.size, }; - - let nameA = `${res.tendencyData[0].statDate.split(" ")[0]}~${ - res.tendencyData[res.tendencyData.length - 1].statDate.split(" ")[0] - }`; - - let nameB = `${res.tendencyDataContrast[0].statDate.split(" ")[0]}~${ - res.tendencyDataContrast[ - res.tendencyDataContrast.length - 1 - ].statDate.split(" ")[0] - }`; - - // 获取对比纬度的数据名称 - let getNames = - this.ReceptionTrendsList[this.ReceptionTrendsListIndex].params; - - // 选中时间的数据 - res.tendencyData.forEach((item) => { - options3.xAxis.push(item.statDate.split(" ")[0]); - // 平均接待时长 - options3.returnA.push(item[getNames] || 0); - }); - - // 对比数据 - res.tendencyDataContrast.forEach((item) => { - options3.returnB.push(item[getNames] || 0); + this.$api.http.biWarningList(params).then((res) => { + if (res.code == 10000) { + this.tableData = res.data.records; + this.total = res.data.total; + if (!this.dialogVisible) { + this.dialogVisible = true; + this.dialogTitle = "项目列表"; + } + } }); - options3.legend = [nameA, nameB]; - - let objs1 = { - // 折线图的样式 - smooth: true, - name: nameA, - type: "line", - areaStyle: { - normal: { - color: new echarts.graphic.LinearGradient( - 0, - 0, - 1, - 1, - this.lineColorLinear(0), - false - ), - shadowColor: "rgba(44,118,222, 0.1)", - shadowBlur: 10, - }, - }, - itemStyle: { - normal: { - color: { - type: "linear", // 线性渐变 - x: 0, - y: 0, - x2: 1, - y2: 1, - colorStops: this.lineColorLinear(0), - }, - }, - }, - data: options3.returnA, - }; + }, - let objs2 = { - // 折线图的样式 - smooth: true, - name: nameB, - type: "line", - areaStyle: { - normal: { - color: new echarts.graphic.LinearGradient( - 0, - 0, - 1, - 1, - this.lineColorLinear(1), - false - ), - shadowColor: "rgba(44,118,222, 0.1)", - shadowBlur: 10, - }, - }, - itemStyle: { - normal: { - color: { - type: "linear", // 线性渐变 - x: 0, - y: 0, - x2: 1, - y2: 1, - colorStops: this.lineColorLinear(1), - }, - }, - }, - data: options3.returnB, - }; + // 接待分析 + initReceptionAnalysis() { + this.biTopStatisticData(); + this.biFindHouseByOrgCode(); + this.biTendencyDataContrast(); + this.biReceptionDetail(); + }, - options3.series = [objs1, objs2]; - this.$nextTick(() => { - this.creatLine(options3); - }); + // 销讲执行分布 + initSalesExecutionDistribution() { + this.biTopStatisticData(); + this.biFindHouseByOrgCode(); + this.biCusAgentRelationDistribute(); }, - // 格式化销讲趋势接待趋势 - formatSalesExecution() { - let res = this.allTrendData; - // 平均接待时长 - let options3 = { - id: "SalesExecutionTrendsBtm", - xAxis: [], // x坐标轴 - legend: [], - returnA: [], - returnB: [], - series: [], - grid: { - top: "10%", - bottom: "25%", - right: "5%", - left: "7%", - }, + // 销讲执行分布 + biCusAgentRelationDistribute() { + // 接口入参 + const params = { + dateType: this.dateSelectIndex, + orgCode: this.companyValue, + startDate: this.time[0] || "", + endDate: this.time[1] || "", + houseId: this.projectValue, }; - - let nameA = `${res.tendencyData[0].statDate.split(" ")[0]}~${ - res.tendencyData[res.tendencyData.length - 1].statDate.split(" ")[0] - }`; - - let nameB = `${res.tendencyDataContrast[0].statDate.split(" ")[0]}~${ - res.tendencyDataContrast[ - res.tendencyDataContrast.length - 1 - ].statDate.split(" ")[0] - }`; - - // 获取对比纬度的数据名称 - let getNames = - this.ReceptionTrendsList[this.ReceptionTrendsListIndex].params; - - // 选中时间的数据 - res.tendencyData.forEach((item) => { - options3.xAxis.push(item.statDate.split(" ")[0]); - // 平均接待时长 - options3.returnA.push(item[getNames] || 0); - }); - - // 对比数据 - res.tendencyDataContrast.forEach((item) => { - options3.returnB.push(item[getNames] || 0); + this.$api.http.biCusAgentRelationDistribute(params).then((res) => { + if (res.code == 10000) { + this.allSalesExecutionDistri = res.data; + this.formatAllSalesExecutionDistri(); // 格式化数据 + } }); - options3.legend = [nameA, nameB]; - - let objs1 = { - // 折线图的样式 - smooth: true, - name: nameA, - type: "line", - areaStyle: { - normal: { - color: new echarts.graphic.LinearGradient( - 0, - 0, - 1, - 1, - this.lineColorLinear(0), - false - ), - shadowColor: "rgba(44,118,222, 0.1)", - shadowBlur: 10, - }, - }, - itemStyle: { - normal: { - color: { - type: "linear", // 线性渐变 - x: 0, - y: 0, - x2: 1, - y2: 1, - colorStops: this.lineColorLinear(0), - }, - }, - }, - data: options3.returnA, - }; + }, - let objs2 = { - // 折线图的样式 - smooth: true, - name: nameB, - type: "line", - areaStyle: { - normal: { - color: new echarts.graphic.LinearGradient( - 0, - 0, - 1, - 1, - this.lineColorLinear(1), - false - ), - shadowColor: "rgba(44,118,222, 0.1)", - shadowBlur: 10, - }, - }, - itemStyle: { - normal: { - color: { - type: "linear", // 线性渐变 - x: 0, - y: 0, - x2: 1, - y2: 1, - colorStops: this.lineColorLinear(1), + // 格式化销讲执行分布 + formatAllSalesExecutionDistri() { + this.SalesExecutionDistributionIndex.forEach((list) => { + if (list.params == "visitReceptionDistribute") { + let gentle = 0; + let [arr1, arr2] = [[], []]; + this.allSalesExecutionDistri.visitReceptionDistribute.forEach( + (item) => { + if (item.name != "首次到访") { + gentle += item.value; + } else { + arr1.push(item); + } + arr2.push(item); + } + ); + let series = [ + { + name: "到访次数分布", + type: "pie", + selectedMode: "single", + radius: [0, "30%"], + label: { + position: "inner", + fontSize: 14, + }, + labelLine: { + show: false, + }, + data: arr1, }, - }, - }, - data: options3.returnB, - }; - - options3.series = [objs1, objs2]; - this.$nextTick(() => { - this.creatLine(options3); + { + name: "到访次数分布", + type: "pie", + radius: ["45%", "60%"], + labelLine: { + length: 30, + }, + data: arr2, + }, + ]; + if (series[0].data.length > 0) { + series[0].data.push({ + name: "复访接待", + value: gentle, + }); + } + this.$nextTick(() => { + this.creatPie({ + id: `${list.params}SalesExecutionDistributionIndex`, + legend: { + show: false, + }, + series: series, + }); + }); + } else { + let legend = this.allSalesExecutionDistri[list.params].map((item) => { + return item.name; + }); + this.$nextTick(() => { + this.creatPie({ + id: `${list.params}SalesExecutionDistributionIndex`, + grid: { + bottom: "20%", + top: "5%", + }, + legend: { + legend: legend, + show: list.legend ? true : false, + orient: "horizontal", + type: "scroll", + bottom: "5%", + textStyle: { + color: "#fff", + }, + }, + series: [ + { + name: list.title, + type: "pie", + radius: "50%", + labelLine: { + length: 5, + showAbove: true, + }, + minAngle: 5, + avoidLabelOverlap: true, + data: this.allSalesExecutionDistri[list.params], + itemStyle: { + normal: { + color: function (colors) { + var colorList = [ + "#D0444D", + "#376FE3", + "#E1B31F", + "#8D25E4", + "#DF7323", + "#2ED1EE", + ]; + return colorList[colors.dataIndex % 6]; + }, + }, + }, + }, + ], + }); + }); + } }); }, - // 格式化平均接待时长 - formatTendency(res) { - // 平均接待时长 - let options3 = { - id: "initReceptionAnalysisAverageReceptionDuration", - xAxis: [], // x坐标轴 - legend: [], - returnA: [], - returnB: [], - series: [], - - grid: { - top: "10%", - bottom: "25%", - right: "5%", - left: "7%", - }, - }; + // 接待分析 --> 选中下标修改 + changeIndicatorOptions(params, index, events) { + this[params] = index; + this[events](); + }, - let nameA = `${res.tendencyData[0].statDate.split(" ")[0]}~${ - res.tendencyData[res.tendencyData.length - 1].statDate.split(" ")[0] - }`; + // 获取名称 + getName(value) { + let str = ""; + switch (value) { + case "recording": + str = "无录音"; + break; + case "tagCustomer": + str = "标记无效"; + break; + case "prohibitedCustomer": + str = "违禁接待"; + break; + case "normalReception": + str = "正常接待"; + break; + case "activeCustomer": + str = "有效接待"; + break; + case "invalidCount": + str = "无效接待"; + break; + default: + str = ""; + break; + } + return str; + }, - let nameB = `${res.tendencyDataContrast[0].statDate.split(" ")[0]}~${ - res.tendencyDataContrast[ - res.tendencyDataContrast.length - 1 - ].statDate.split(" ")[0] - }`; + // 修改已读未读状态 + biWarningUpdateShowStatus(data) { + if (data.selectValue.length == 0) { + this.$message.error("请选择已了解的消息"); + return; + } + this.$api.http + .biWarningUpdateShowStatus({ + ids: data.selectValue.join(","), + }) + .then((res) => { + console.log(res); + if (res.code == 10000) { + data.list.forEach((item) => { + item.showStatus = 0; + }); + this.$message.success(res.message); + } else { + this.$message.error(res.message); + } + }); + }, - // 选中时间的数据 - res.tendencyData.forEach((item) => { - options3.xAxis.push(item.statDate.split(" ")[0]); - // 平均接待时长 - options3.returnA.push(item.avgDuration || 0); - }); + // 接待质量趋势&销讲质量分布 + biReceptionDetail() { + // 接口入参 + const params = { + dateType: this.dateSelectIndex, + orgCode: this.companyValue, + startDate: this.time[0] || "", + endDate: this.time[1] || "", + houseId: this.projectValue, + }; - // 对比数据 - res.tendencyDataContrast.forEach((item) => { - options3.returnB.push(item.avgDuration || 0); + this.$api.http.biReceptionDetail(params).then((res) => { + if (res.code == 10000) { + this.formatReceptionQualityTrends(res.data.tendencyData); + this.formatMarketingMassDistribution(res.data.distributeData); + } }); - options3.legend = [nameA, nameB]; + }, - let objs1 = { - // 折线图的样式 - smooth: true, - name: nameA, - type: "line", - areaStyle: { - normal: { - color: new echarts.graphic.LinearGradient( - 0, - 0, - 1, - 1, - this.lineColorLinear(0), - false - ), - shadowColor: "rgba(44,118,222, 0.1)", - shadowBlur: 10, - }, + // 格式化接待质量趋势 + formatReceptionQualityTrends(res) { + const list = [ + { + title: "有效接待", + params: "activeCustomer", }, - itemStyle: { - normal: { - color: { - type: "linear", // 线性渐变 - x: 0, - y: 0, - x2: 1, - y2: 1, - colorStops: this.lineColorLinear(0), - }, - }, + { + title: "标记无效", + params: "tagCustomer", }, - data: options3.returnA, - }; + { + title: "无录音", + params: "recording", + }, + ]; - let objs2 = { - // 折线图的样式 - smooth: true, - name: nameB, - type: "line", - areaStyle: { - normal: { - color: new echarts.graphic.LinearGradient( - 0, - 0, - 1, - 1, - this.lineColorLinear(1), - false - ), - shadowColor: "rgba(44,118,222, 0.1)", - shadowBlur: 10, + let obj = { + id: "initReceptionAnalysisReceptionQualityTrends", + xAxis: [], + series: [], + legend: { + show: true, + data: [], + bottom: "0", + right: "center", + orient: "horizontal", // 图例列表的布局朝向; horizontal; vertical + icon: "circle", + left: "center", // 距离容器侧边距离 + textStyle: { + color: "#fff", + fontSize: 12, }, }, - itemStyle: { - normal: { - color: { - type: "linear", // 线性渐变 - x: 0, - y: 0, - x2: 1, - y2: 1, - colorStops: this.lineColorLinear(1), - }, - }, + color: [ + new echarts.graphic.LinearGradient( + 0, + 0, + 0, + 1, + [ + { + offset: 0, + color: "#FF7B96", + }, + { + offset: 1, + color: "#FA3E63", + }, + ], + false + ), + new echarts.graphic.LinearGradient( + 0, + 0, + 0, + 1, + [ + { + offset: 0, + color: "#FAB519", + }, + { + offset: 1, + color: "#FC6128", + }, + ], + false + ), + new echarts.graphic.LinearGradient( + 0, + 0, + 0, + 1, + [ + { + offset: 0, + color: "#4C83FF", + }, + { + offset: 1, + color: "#2AFADF", + }, + ], + false + ), + ], + grid: { + left: "3%", + right: "4%", + bottom: "10%", + containLabel: true, }, - data: options3.returnB, }; - - options3.series = [objs1, objs2]; + list.forEach((item, index) => { + obj.legend.data.push(item.title); + let objChild = { + type: "bar", + barMaxWidth: "20%", + name: item.title, + stack: "total", + data: [], + }; + res.forEach((key) => { + if (!obj.xAxis.includes(key.startDate)) { + obj.xAxis.push(key.startDate); + } + objChild.data.push(key[item.params]); + }); + obj.series.push(objChild); + }); + console.log(obj); this.$nextTick(() => { - this.creatLine(options3); + this.creatBar(obj); }); }, - // 获取公司列表 - biFindHouseByOrgCode() { - const params = { - orgCode: this.companyValue, - }; - if (this.headIndex == "违禁预警") { - params.orgCode = localStorage.getItem("orgCode"); - } - this.$api.http.biFindHouseByOrgCode(params).then((res) => { - if (res.code == 10000) { - this.projectOptions = res.data; + // 格式化销讲质量分布 + formatMarketingMassDistribution(res) { + let [arr1, arr2] = [[], []]; + for (const [key, value] of Object.entries(res)) { + if (key != "activeCustomer" && key != "invalidCount") { + arr1.push({ + name: this.getName(key), + value: value, + }); + } else { + arr2.push({ + name: this.getName(key), + value: value, + }); } + } + + let series = [ + { + name: "销讲质量分布", + type: "pie", + selectedMode: "single", + radius: [0, "30%"], + label: { + position: "inner", + fontSize: 14, + }, + labelLine: { + show: false, + }, + data: arr2, + minAngle: 5, + itemStyle: { + normal: { + color: function (colors) { + var colorList = [ + "#D0444D", + "#376FE3", + "#E1B31F", + "#8D25E4", + "#DF7323", + "#2ED1EE", + ]; + return colorList[colors.dataIndex % 6]; + }, + }, + }, + }, + { + name: "销讲质量分布", + type: "pie", + radius: ["45%", "60%"], + labelLine: { + length: 30, + }, + data: arr1, + minAngle: 5, + itemStyle: { + normal: { + color: function (colors) { + var colorList = [ + "#D0444D", + "#376FE3", + "#E1B31F", + "#8D25E4", + "#DF7323", + "#2ED1EE", + ]; + return colorList[colors.dataIndex % 6]; + }, + }, + }, + }, + ]; + this.$nextTick(() => { + this.creatPie({ + id: "initReceptionAnalysisMarketingMassDistribution", + legend: { + show: false, + }, + series: series, + }); }); }, - // 案场排名顶部对比数据 - biTopStatisticData() { + // 接待分析 + biTendencyDataContrast() { // 接口入参 const params = { dateType: this.dateSelectIndex, @@ -2002,1220 +2320,1938 @@ export default { endDate: this.time[1] || "", houseId: this.projectValue, }; - this.$api.http.biTopStatisticData(params).then((res) => { + this.$api.http.biTendencyDataContrast(params).then((res) => { if (res.code == 10000) { - this.caseRankingList.forEach((item) => { - item.resultA = res.data.resultA[item.params]; - item.resultB = res.data.resultB[item.params]; - }); + this.allTrendData = res.data; + this.formatTendency(this.allTrendData); // 格式化数据 + + this.formatReception(); + this.formatSalesExecution(); } }); }, - // 获取案场详情柱状图数据 - biRankingData() { - const params = { - dateType: this.dateSelectIndex, - orgCode: this.companyValue, - startDate: this.time[0] || "", - endDate: this.time[1] || "", - orderBy: this.orderBy, // 1 前10,2 后10 - dimensionType: this.dimensionType, //1 项目,2 城市,3 区域 + // 格式化销讲趋势接待趋势 + formatReception() { + let res = this.allTrendData; + // 平均接待时长 + let options3 = { + id: "ReceptionTrendsBtm", + xAxis: [], // x坐标轴 + legend: [], + returnA: [], + returnB: [], + series: [], + + grid: { + top: "10%", + bottom: "25%", + right: "5%", + left: "7%", + }, }; - this.$api.http.biRankingData(params).then((res) => { - if (res.code == 10000) { - this.rankingEchartsBarList.forEach((ob) => { - let object = res.data[ob.params]; - console.log(object, ob.params); - let xAxis = object.data.map((item) => { - return item.name; - }); - let avgList = []; - let yAxis = {}; - if (this.companyValue) { - avgList.push({ - yAxis: object.companyAvg, - name: "集团平均", - }); - try { - if ( - object.data[this.orderBy == 1 ? 0 : object.data.length - 1] - .value < object.companyAvg - ) { - yAxis.max = object.companyAvg; - } - } catch (e) { - console.log(e); - } - } else { - // avgList.push({ - // yAxis: object.allAvg, - // name: "行业平均", - // }); - // try { - // if ( - // object.data[this.orderBy == 1 ? 0 : object.data.length - 1] - // .value < object.allAvg - // ) { - // yAxis.max = object.allAvg; - // } - // } catch (e) { - // console.log(e); - // } - } - if (ob.unit == "%") { - yAxis = { - max: 100, - }; - } - this.$nextTick(() => { - this.creatBar({ - id: ob.params, - xAxis: xAxis, - yAxis: yAxis, - series: [ - { - type: "bar", - barMaxWidth: "20%", - name: ob.title, - data: object.data || [], - itemStyle: { - normal: { - //柱体的颜色 - //右,下,左,上(1,0,0,0)表示从正右开始向左渐变 - color: function (params) { - let colorList = [ - ["#FF7B96", "#FA3E63"], - ["#FC6128", "#FAB519"], - ["#FBE695", "#FFC536"], - ["#4C83FF", "#2AFADF"], - ]; + let nameA = `${res.tendencyData[0].statDate.split(" ")[0]}~${ + res.tendencyData[res.tendencyData.length - 1].statDate.split(" ")[0] + }`; - let colorItem = - colorList[ - params.dataIndex > 2 ? 3 : params.dataIndex - ]; - return new echarts.graphic.LinearGradient( - 0, - 0, - 0, - 1, - [ - { - offset: 0, - color: colorItem[0], - }, - { - offset: 1, - color: colorItem[1], - }, - ], - false - ); - }, - }, - }, - markLine: { - symbol: ["none", "none"], // none为标线两端的样式为无,可更改 - lineStyle: { - normal: { - color: "#34DBFC", // 这儿设置安全基线颜色 - }, - }, - data: avgList, - label: { - show: true, - position: "end", - padding: [-13, -20, 15, -85], - formatter: (data) => { - return `${data.name}:${data.value}`; - }, - }, - }, - }, - ], - }); - }); - }); - } - }); - }, + let nameB = `${res.tendencyDataContrast[0].statDate.split(" ")[0]}~${ + res.tendencyDataContrast[ + res.tendencyDataContrast.length - 1 + ].statDate.split(" ")[0] + }`; - // 下划线 - tableRowClassName({ row, rowIndex }) { - if (rowIndex % 2 == 0) { - return "second"; - } - }, - // 弹窗关闭 - handleClose() { - this.dialogVisible = false; - this.current = 1; - this.size = 10; - }, + // 获取对比纬度的数据名称 + let getNames = + this.ReceptionTrendsList[this.ReceptionTrendsListIndex].params; - // 弹窗展示 - showDialog(data) { - this.showDialogData = data; - const params = { - dataType: data.dataType, - dateType: this.dateSelectIndex, - orgCode: this.companyValue, - startDate: this.time[0] || "", - endDate: this.time[1] || "", - current: this.current, - size: this.size, - }; - this.$api.http.biChooseDataTable(params).then((res) => { - if (res.code == 10000) { - let arr = [...this.stayHandleList, ...this.jiedaiList]; - let obj = arr.find((item) => item.title == data.title); - this.total = res.data.total; - this.dialogTitle = data.title; - this.tableNameList = dialogConstList[obj.tableListName]; - this.tableData = res.data.records; - this.dialogVisible = true; - } + // 选中时间的数据 + res.tendencyData.forEach((item) => { + options3.xAxis.push(item.statDate.split(" ")[0]); + // 平均接待时长 + options3.returnA.push(item[getNames] || 0); }); - }, - // 获取页面数据 - biDataOverview() { - const params = { - dateType: this.dateSelectIndex, - orgCode: this.companyValue, - startDate: this.time[0] || "", - endDate: this.time[1] || "", - }; - this.$api.http.biDataOverview(params).then((res) => { - if (res.code == 10000) { - this.receptionCount = res.data.statisticData.receptionCount || 0; - this.jiedaiList.forEach((item) => { - // 接待趋势 - item.data = res.data.statisticData[item.params] || 0; - }); - this.stayHandleList.forEach((item) => { - // 销讲趋势 - item.data = res.data.statisticData[item.params] || 0; - }); - } + // 对比数据 + res.tendencyDataContrast.forEach((item) => { + options3.returnB.push(item[getNames] || 0); }); - }, + options3.legend = [nameA, nameB]; - // 用户总览右侧菜单 - biDataOverviewDistribute() { - const params = { - dateType: this.dateSelectIndex, - orgCode: this.companyValue, - startDate: this.time[0] || "", - endDate: this.time[1] || "", + let objs1 = { + // 折线图的样式 + smooth: true, + name: nameA, + type: "line", + areaStyle: { + normal: { + color: new echarts.graphic.LinearGradient( + 0, + 0, + 1, + 1, + this.lineColorLinear(0), + false + ), + shadowColor: "rgba(44,118,222, 0.1)", + shadowBlur: 10, + }, + }, + itemStyle: { + normal: { + color: { + type: "linear", // 线性渐变 + x: 0, + y: 0, + x2: 1, + y2: 1, + colorStops: this.lineColorLinear(0), + }, + }, + }, + data: options3.returnA, }; - this.$api.http.biDataOverviewDistribute(params).then((res) => { - if (res.code == 10000) { - //右侧菜单数据填充 - this.rsideDataList.forEach((item) => { - this[item.params] = res.data[item.params] || []; - }); - this.$nextTick(() => { - this.formatterPie(); - }); - } + let objs2 = { + // 折线图的样式 + smooth: true, + name: nameB, + type: "line", + areaStyle: { + normal: { + color: new echarts.graphic.LinearGradient( + 0, + 0, + 1, + 1, + this.lineColorLinear(1), + false + ), + shadowColor: "rgba(44,118,222, 0.1)", + shadowBlur: 10, + }, + }, + itemStyle: { + normal: { + color: { + type: "linear", // 线性渐变 + x: 0, + y: 0, + x2: 1, + y2: 1, + colorStops: this.lineColorLinear(1), + }, + }, + }, + data: options3.returnB, + }; + + options3.series = [objs1, objs2]; + this.$nextTick(() => { + this.creatLine(options3); }); }, - // 用户总览左侧菜单饼图 - biDataOverviewTendency() { - const params = { - dateType: this.dateSelectIndex, - orgCode: this.companyValue, - startDate: this.time[0] || "", - endDate: this.time[1] || "", + // 格式化销讲趋势接待趋势 + formatSalesExecution() { + let res = this.allTrendData; + // 平均接待时长 + let options3 = { + id: "SalesExecutionTrendsBtm", + xAxis: [], // x坐标轴 + legend: [], + returnA: [], + returnB: [], + series: [], + grid: { + top: "10%", + bottom: "25%", + right: "5%", + left: "7%", + }, }; - this.$api.http.biDataOverviewTendency(params).then((res) => { - if (res.code == 10000) { - this.allRecSaleList = res.data.tendencyData || []; // 趋势图 - //左侧菜单数据填充 - this.lsideDataList.forEach((item) => { - this[item.params] = res.data[item.params] || []; - this[item.params1] = res.data[item.params1] || []; - }); + let nameA = `${res.tendencyData[0].statDate.split(" ")[0]}~${ + res.tendencyData[res.tendencyData.length - 1].statDate.split(" ")[0] + }`; - this.$nextTick(() => { - this.empityReceptionListSalesExecution(); - this.formatLineData(); - this.formatterBar(); - }); - } - }); - }, + let nameB = `${res.tendencyDataContrast[0].statDate.split(" ")[0]}~${ + res.tendencyDataContrast[ + res.tendencyDataContrast.length - 1 + ].statDate.split(" ")[0] + }`; - // 获取公司 - biGetOrgCodeList() { - this.$api.http.biGetOrgCodeList().then((res) => { - if (res.code == 10000) { - this.companyOptions = res.data; - } + // 获取对比纬度的数据名称 + let getNames = + this.ReceptionTrendsList[this.ReceptionTrendsListIndex].params; + + // 选中时间的数据 + res.tendencyData.forEach((item) => { + options3.xAxis.push(item.statDate.split(" ")[0]); + // 平均接待时长 + options3.returnA.push(item[getNames] || 0); }); - }, - // 清空存放的series变量 - empityReceptionListSalesExecution() { - this.receptionList = []; - this.salesExecution = []; - }, + // 对比数据 + res.tendencyDataContrast.forEach((item) => { + options3.returnB.push(item[getNames] || 0); + }); + options3.legend = [nameA, nameB]; - // 处理折线统计图的数据 - formatLineData() { - let arr1 = [ - { - name: "接待量", - params: "receptionCount", - }, - { - name: "有效接待", - params: "activeCustomer", + let objs1 = { + // 折线图的样式 + smooth: true, + name: nameA, + type: "line", + areaStyle: { + normal: { + color: new echarts.graphic.LinearGradient( + 0, + 0, + 1, + 1, + this.lineColorLinear(0), + false + ), + shadowColor: "rgba(44,118,222, 0.1)", + shadowBlur: 10, + }, }, - { - params: "prohibitedCustomer", - name: "违禁接待", + itemStyle: { + normal: { + color: { + type: "linear", // 线性渐变 + x: 0, + y: 0, + x2: 1, + y2: 1, + colorStops: this.lineColorLinear(0), + }, + }, }, - ]; - let obj1 = { - id: "tendencyData1", - xAxis: [], - legend: [], - series: [], + data: options3.returnA, }; - arr1.forEach((item, index) => { - let par = { - // 折线图的样式 - smooth: true, - name: item.name, - type: "line", - areaStyle: { - normal: { - color: new echarts.graphic.LinearGradient( - 0, - 0, - 1, - 1, - this.lineColorLinear(index), - false - ), - shadowColor: "rgba(44,118,222, 0.1)", - shadowBlur: 10, - }, + + let objs2 = { + // 折线图的样式 + smooth: true, + name: nameB, + type: "line", + areaStyle: { + normal: { + color: new echarts.graphic.LinearGradient( + 0, + 0, + 1, + 1, + this.lineColorLinear(1), + false + ), + shadowColor: "rgba(44,118,222, 0.1)", + shadowBlur: 10, }, - itemStyle: { - normal: { - color: { - type: "linear", // 线性渐变 - x: 0, - y: 0, - x2: 1, - y2: 1, - colorStops: this.lineColorLinear(index), - }, + }, + itemStyle: { + normal: { + color: { + type: "linear", // 线性渐变 + x: 0, + y: 0, + x2: 1, + y2: 1, + colorStops: this.lineColorLinear(1), }, }, - data: [], - }; - this.allRecSaleList.forEach((org) => { - par.data.push(org[item.params] || 0); - - if (!obj1.xAxis.includes(org.statDate.split(" ")[0])) { - obj1.xAxis.push(org.statDate.split(" ")[0]); - } + }, + data: options3.returnB, + }; - if (!obj1.legend.includes(item.name)) { - obj1.legend.push(item.name); - } - }); - this.receptionList.push(par); + options3.series = [objs1, objs2]; + this.$nextTick(() => { + this.creatLine(options3); }); - let arr2 = [ - { - name: "平均销讲执行率", - params: "fraction", - }, - { - name: "平均挖掘执行率", - params: "wordFraction", - }, - { - name: "平均挖掘成功率", - params: "wordFinishFraction", - }, - ]; + }, - let obj2 = { - id: "tendencyData2", - xAxis: [], + // 格式化平均接待时长 + formatTendency(res) { + // 平均接待时长 + let options3 = { + id: "initReceptionAnalysisAverageReceptionDuration", + xAxis: [], // x坐标轴 legend: [], + returnA: [], + returnB: [], series: [], - max: 100, - }; - - arr2.forEach((item, index) => { - let par = { - // 折线图的样式 - smooth: true, - name: item.name, - type: "line", - areaStyle: { - normal: { - color: new echarts.graphic.LinearGradient( - 0, - 0, - 1, - 1, - this.lineColorLinear(index), - false - ), - shadowColor: "rgba(44,118,222, 0.1)", - shadowBlur: 10, - }, - }, - itemStyle: { - normal: { - color: { - type: "linear", // 线性渐变 - x: 0, - y: 0, - x2: 1, - y2: 1, - colorStops: this.lineColorLinear(index), - }, - }, - }, - data: [], - }; - this.allRecSaleList.forEach((org) => { - par.data.push(org[item.params] || 0); + grid: { + top: "10%", + bottom: "25%", + right: "5%", + left: "7%", + }, + }; - if (!obj2.xAxis.includes(org.statDate.split(" ")[0])) { - obj2.xAxis.push(org.statDate.split(" ")[0]); - } + let nameA = `${res.tendencyData[0].statDate.split(" ")[0]}~${ + res.tendencyData[res.tendencyData.length - 1].statDate.split(" ")[0] + }`; - if (!obj2.legend.includes(item.name)) { - obj2.legend.push(item.name); - } - }); + let nameB = `${res.tendencyDataContrast[0].statDate.split(" ")[0]}~${ + res.tendencyDataContrast[ + res.tendencyDataContrast.length - 1 + ].statDate.split(" ")[0] + }`; - this.salesExecution.push(par); + // 选中时间的数据 + res.tendencyData.forEach((item) => { + options3.xAxis.push(item.statDate.split(" ")[0]); + // 平均接待时长 + options3.returnA.push(item.avgDuration || 0); }); - obj1.series = this.receptionList; - obj2.series = this.salesExecution; - console.log(obj1, "这里是"); - - this.$nextTick(() => { - this.creatLine(obj1); - this.creatLine(obj2); + // 对比数据 + res.tendencyDataContrast.forEach((item) => { + options3.returnB.push(item.avgDuration || 0); }); - }, + options3.legend = [nameA, nameB]; - // 创建折线图 - creatLine(obj) { - // 基于准备好的dom,初始化echarts实例 - let myChart = echarts.init(document.getElementById(obj.id)); - myChart.clear(); - // this.receptionList - // 指定图表的配置项和数据 - let grid = { - top: "10%", - bottom: "25%", - right: "5%", - left: "15%", - }; - let option = { - legend: { - show: true, - bottom: "0", - right: "center", - orient: "horizontal", // 图例列表的布局朝向; horizontal; vertical - data: obj.legend, - icon: "circle", - left: "center", // 距离容器侧边距离 - textStyle: { - color: "#fff", - fontSize: 12, + let objs1 = { + // 折线图的样式 + smooth: true, + name: nameA, + type: "line", + areaStyle: { + normal: { + color: new echarts.graphic.LinearGradient( + 0, + 0, + 1, + 1, + this.lineColorLinear(0), + false + ), + shadowColor: "rgba(44,118,222, 0.1)", + shadowBlur: 10, }, }, - - grid: obj.grid ? obj.grid : grid, - tooltip: { - trigger: "axis", - }, - xAxis: { - data: obj.xAxis, // x坐标轴集合 - axisLabel: { - //X轴标签 - show: true, - rotate: 40, - textStyle: { - color: "#fff", //字体颜色 - fontSize: 12, //字体大小 + itemStyle: { + normal: { + color: { + type: "linear", // 线性渐变 + x: 0, + y: 0, + x2: 1, + y2: 1, + colorStops: this.lineColorLinear(0), }, - interval: obj.xAxis.length > 30 ? 9 : 0, //主要设置其间隔,间隔为3 }, - axisLine: { - lineStyle: { - color: "#fff", - }, + }, + data: options3.returnA, + }; + + let objs2 = { + // 折线图的样式 + smooth: true, + name: nameB, + type: "line", + areaStyle: { + normal: { + color: new echarts.graphic.LinearGradient( + 0, + 0, + 1, + 1, + this.lineColorLinear(1), + false + ), + shadowColor: "rgba(44,118,222, 0.1)", + shadowBlur: 10, }, }, - yAxis: [ - { - type: "value", - nameTextStyle: { - color: "#fff", - fontSize: 12, - }, - lineStyle: { - color: "#fff", - }, - minInterval: 5, - axisLabel: { - textStyle: { - color: "#fff", //字体颜色 - fontSize: 14, //字体大小 - }, - formatter: (e) => { - return `${e}`; - }, - }, - axisTick: { show: false }, - axisLine: { - show: false, - }, - splitLine: { - //Y轴分隔符 - show: true, - lineStyle: { - color: "#fff", - type: "dashed", - }, + itemStyle: { + normal: { + color: { + type: "linear", // 线性渐变 + x: 0, + y: 0, + x2: 1, + y2: 1, + colorStops: this.lineColorLinear(1), }, }, - ], - series: obj.series, + }, + data: options3.returnB, }; - if (obj.max) { - option.yAxis[0].max = 100; - } - if (obj.xAxis.length > 30) { - option.dataZoom = [ - { - type: "inside", - }, - ]; - } + options3.series = [objs1, objs2]; + this.$nextTick(() => { + this.creatLine(options3); + }); + }, - // 使用刚指定的配置项和数据显示图表。 - option && myChart.setOption(option); - window.onresize = function () { - myChart.resize(); + // 获取公司列表 + biFindHouseByOrgCode() { + const params = { + orgCode: this.companyValue, }; + if (this.headIndex == "违禁预警") { + params.orgCode = localStorage.getItem("orgCode"); + } + this.$api.http.biFindHouseByOrgCode(params).then((res) => { + if (res.code == 10000) { + this.projectOptions = res.data; + } + }); }, - // 格式化饼图数据 - formatterPie() { - this.rsideDataList.forEach((list) => { - if (list.params == "visitReceptionDistribute") { - let gentle = 0; - let [arr1, arr2] = [[], []]; - this.visitReceptionDistribute.forEach((item) => { - if (item.name != "首次到访") { - gentle += item.value; + // 案场排名顶部对比数据 + biTopStatisticData() { + // 接口入参 + const params = { + dateType: this.dateSelectIndex, + orgCode: this.companyValue, + startDate: this.time[0] || "", + endDate: this.time[1] || "", + houseId: this.projectValue, + }; + this.$api.http.biTopStatisticData(params).then((res) => { + if (res.code == 10000) { + this.caseRankingList.forEach((item) => { + item.resultA = res.data.resultA[item.params]; + item.resultB = res.data.resultB[item.params]; + }); + } + }); + }, + + // 获取案场详情柱状图数据 + biRankingData() { + const params = { + dateType: this.dateSelectIndex, + orgCode: this.companyValue, + startDate: this.time[0] || "", + endDate: this.time[1] || "", + orderBy: this.orderBy, // 1 前10,2 后10 + dimensionType: this.dimensionType, //1 项目,2 城市,3 区域 + }; + this.$api.http.biRankingData(params).then((res) => { + if (res.code == 10000) { + this.rankingEchartsBarList.forEach((ob) => { + let object = res.data[ob.params]; + console.log(object, ob.params); + let xAxis = object.data.map((item) => { + return item.name; + }); + let avgList = []; + let yAxis = {}; + if (this.companyValue) { + avgList.push({ + yAxis: object.companyAvg, + name: "集团平均", + }); + try { + if ( + object.data[this.orderBy == 1 ? 0 : object.data.length - 1] + .value < object.companyAvg + ) { + yAxis.max = object.companyAvg; + } + } catch (e) { + console.log(e); + } } else { - arr1.push(item); } - arr2.push(item); - }); - let series = [ - { - name: "到访次数分布", - type: "pie", - selectedMode: "single", - radius: [0, "30%"], - label: { - position: "inner", - fontSize: 14, - }, - labelLine: { - show: false, - }, - data: arr1, - }, - { - name: "到访次数分布", - type: "pie", - radius: ["45%", "60%"], - labelLine: { - length: 30, - }, - data: arr2, - }, - ]; - series[0].data.push({ - name: "复访接待", - value: gentle, - }); - this.creatPie({ - id: list.params, - legend: { - show: false, - }, - series: series, - }); - } else { - let legend = this[list.params].map((item) => { - return item.name; - }); - this.creatPie({ - id: list.params, - grid: { - bottom: "20%", - top: "5%", - }, - legend: { - legend: legend, - show: true, - orient: "horizontal", - type: "scroll", - bottom: "5%", - textStyle: { - color: "#fff", - }, - }, - series: [ - { - name: list.title, - type: "pie", - radius: ["45%", "60%"], - labelLine: { - length: 5, - showAbove: true, - }, - minAngle: 5, - avoidLabelOverlap: true, - data: this[list.params], - itemStyle: { - normal: { - color: function (colors) { - var colorList = [ - "#D0444D", - "#376FE3", - "#E1B31F", - "#8D25E4", - "#DF7323", - "#2ED1EE", - ]; - return colorList[colors.dataIndex % 6]; + if (ob.unit == "%") { + yAxis = { + max: 100, + }; + } + + this.$nextTick(() => { + this.creatBar({ + id: ob.params, + xAxis: xAxis, + yAxis: yAxis, + series: [ + { + type: "bar", + barMaxWidth: "20%", + name: ob.title, + data: object.data || [], + itemStyle: { + normal: { + //柱体的颜色 + //右,下,左,上(1,0,0,0)表示从正右开始向左渐变 + color: function (params) { + let colorList = [ + ["#FF7B96", "#FA3E63"], + ["#FC6128", "#FAB519"], + ["#FBE695", "#FFC536"], + ["#4C83FF", "#2AFADF"], + ]; + + let colorItem = + colorList[ + params.dataIndex > 2 ? 3 : params.dataIndex + ]; + return new echarts.graphic.LinearGradient( + 0, + 0, + 0, + 1, + [ + { + offset: 0, + color: colorItem[0], + }, + { + offset: 1, + color: colorItem[1], + }, + ], + false + ); + }, + }, + }, + markLine: { + symbol: ["none", "none"], // none为标线两端的样式为无,可更改 + lineStyle: { + normal: { + color: "#34DBFC", // 这儿设置安全基线颜色 + }, + }, + data: avgList, + label: { + show: true, + position: "end", + padding: [-13, -20, 15, -85], + formatter: (data) => { + return `${data.name}:${data.value}`; + }, + }, }, }, - }, - }, - ], + ], + }); + }); }); } }); }, - // 创建饼图 - creatPie(obj) { - // 基于准备好的dom,初始化echarts实例 - let myChart = echarts.init(document.getElementById(obj.id)); - myChart.clear(); - let option = {}; - if (obj.series[0].data.length != 0) { - option = { - tooltip: { - trigger: "item", - }, - legend: obj.legend, - series: obj.series, - }; - } else { - option = this.setEmpty(); - } - option && myChart.setOption(option); - window.onresize = function () { - myChart.resize(); - }; + // 下划线 + tableRowClassName({ row, rowIndex }) { + if (rowIndex % 2 == 0) { + return "second"; + } + }, + // 弹窗关闭 + handleClose() { + this.dialogVisible = false; + this.current = 1; + this.size = 10; }, - // 重绘echarts - getFormatter(params, name) { - let xAxis = this[params].map((item) => { - return item.name; + // 弹窗展示 + showDialog(data) { + this.showDialogData = data; + const params = { + dataType: data.dataType, + dateType: this.dateSelectIndex, + orgCode: this.companyValue, + startDate: this.time[0] || "", + endDate: this.time[1] || "", + current: this.current, + size: this.size, + }; + this.$api.http.biChooseDataTable(params).then((res) => { + if (res.code == 10000) { + let arr = [...this.stayHandleList, ...this.jiedaiList]; + let obj = arr.find((item) => item.title == data.title); + this.total = res.data.total; + this.dialogTitle = data.title; + this.tableNameList = dialogConstList[obj.tableListName]; + this.tableData = res.data.records; + this.dialogVisible = true; + } }); + }, - this.$nextTick(() => { - this.creatBar({ - id: params, - xAxis: xAxis, - series: [ - { - type: "bar", - barMaxWidth: "20%", - name: name, - data: this[params], - itemStyle: { - normal: { - //柱体的颜色 - //右,下,左,上(1,0,0,0)表示从正右开始向左渐变 - color: function (params) { - let colorList = [ - ["#FF7B96", "#FA3E63"], - ["#FC6128", "#FAB519"], - ["#FBE695", "#FFC536"], - ["#4C83FF", "#2AFADF"], - ]; - - let colorItem = - colorList[params.dataIndex > 2 ? 3 : params.dataIndex]; - return new echarts.graphic.LinearGradient( - 0, - 0, - 0, - 1, - [ - { - offset: 0, - color: colorItem[0], - }, - { - offset: 1, - color: colorItem[1], - }, - ], - false - ); - }, - }, - }, - }, - ], - }); + // 获取页面数据 + biDataOverview() { + const params = { + dateType: this.dateSelectIndex, + orgCode: this.companyValue, + startDate: this.time[0] || "", + endDate: this.time[1] || "", + }; + this.$api.http.biDataOverview(params).then((res) => { + if (res.code == 10000) { + this.receptionCount = res.data.statisticData.receptionCount || 0; + this.jiedaiList.forEach((item) => { + // 接待趋势 + item.data = res.data.statisticData[item.params] || 0; + }); + this.stayHandleList.forEach((item) => { + // 销讲趋势 + item.data = res.data.statisticData[item.params] || 0; + }); + } }); }, - // 格式化柱状图数据 - formatterBar() { - this.lsideDataList.forEach((list) => { - let xAxis = this[list.params].map((item) => { - return item.name; - }); + // 用户总览右侧菜单 + biDataOverviewDistribute() { + const params = { + dateType: this.dateSelectIndex, + orgCode: this.companyValue, + startDate: this.time[0] || "", + endDate: this.time[1] || "", + }; + this.$api.http.biDataOverviewDistribute(params).then((res) => { + if (res.code == 10000) { + //右侧菜单数据填充 + this.rsideDataList.forEach((item) => { + this[item.params] = res.data[item.params] || []; + }); - let xAxis1 = this[list.params1].map((item) => { - return item.name; - }); + this.$nextTick(() => { + this.formatterPie(); + }); + } + }); + }, - this.$nextTick(() => { - if (list.activeName == list.params) { - this.creatBar({ - id: list.params, - xAxis: xAxis, - series: [ - { - type: "bar", - barMaxWidth: "20%", - name: list.title, - data: this[list.params], - itemStyle: { - normal: { - //柱体的颜色 - //右,下,左,上(1,0,0,0)表示从正右开始向左渐变 - color: function (params) { - let colorList = [ - ["#FF7B96", "#FA3E63"], - ["#FC6128", "#FAB519"], - ["#FBE695", "#FFC536"], - ["#4C83FF", "#2AFADF"], - ]; + // 用户总览左侧菜单饼图 + biDataOverviewTendency() { + const params = { + dateType: this.dateSelectIndex, + orgCode: this.companyValue, + startDate: this.time[0] || "", + endDate: this.time[1] || "", + }; + this.$api.http.biDataOverviewTendency(params).then((res) => { + if (res.code == 10000) { + this.allRecSaleList = res.data.tendencyData || []; // 趋势图 - let colorItem = - colorList[ - params.dataIndex > 2 ? 3 : params.dataIndex - ]; - return new echarts.graphic.LinearGradient( - 0, - 0, - 0, - 1, - [ - { - offset: 0, - color: colorItem[0], - }, - { - offset: 1, - color: colorItem[1], - }, - ], - false - ); - }, - }, - }, - }, - ], - }); - } else { - this.creatBar({ - id: list.params1, - xAxis: xAxis1, - series: [ - { - type: "bar", - barMaxWidth: "20%", - name: list.title, - data: this[list.params1], - itemStyle: { - normal: { - //柱体的颜色 - //右,下,左,上(1,0,0,0)表示从正右开始向左渐变 - color: function (params) { - let colorList = [ - ["#FF7B96", "#FA3E63"], - ["#FC6128", "#FAB519"], - ["#FBE695", "#FFC536"], - ["#4C83FF", "#2AFADF"], - ]; + //左侧菜单数据填充 + this.lsideDataList.forEach((item) => { + this[item.params] = res.data[item.params] || []; + this[item.params1] = res.data[item.params1] || []; + }); - let colorItem = - colorList[ - params.dataIndex > 2 ? 3 : params.dataIndex - ]; - return new echarts.graphic.LinearGradient( - 0, - 0, - 0, - 1, - [ - { - offset: 0, - color: colorItem[0], - }, - { - offset: 1, - color: colorItem[1], - }, - ], - false - ); - }, - }, - }, - }, - ], - }); - } - }); + this.$nextTick(() => { + this.empityReceptionListSalesExecution(); + this.formatLineData(); + this.formatterBar(); + }); + } }); }, - // 生成柱状图 - creatBar(obj) { - // 基于准备好的dom,初始化echarts实例 - let myChart = echarts.init(document.getElementById(obj.id)); - myChart.clear(); - let option = {}; - if (obj.series[0].data.length > 0) { - option = { - legend: obj.legend ? obj.legend : { show: false }, - tooltip: { - trigger: "axis", - axisPointer: { - type: "shadow", - }, + // 获取公司 + biGetOrgCodeList() { + this.$api.http.biGetOrgCodeList().then((res) => { + if (res.code == 10000) { + this.companyOptions = res.data; + } + }); + }, + + // 清空存放的series变量 + empityReceptionListSalesExecution() { + this.receptionList = []; + this.salesExecution = []; + }, + + // 处理折线统计图的数据 + formatLineData() { + let arr1 = [ + { + name: "接待量", + params: "receptionCount", + }, + { + name: "有效接待", + params: "activeCustomer", + }, + { + params: "prohibitedCustomer", + name: "违禁接待", + }, + ]; + let obj1 = { + id: "tendencyData1", + xAxis: [], + legend: [], + series: [], + }; + arr1.forEach((item, index) => { + let par = { + // 折线图的样式 + smooth: true, + name: item.name, + type: "line", + areaStyle: { + normal: { + color: new echarts.graphic.LinearGradient( + 0, + 0, + 1, + 1, + this.lineColorLinear(index), + false + ), + shadowColor: "rgba(44,118,222, 0.1)", + shadowBlur: 10, + }, }, - grid: obj.grid - ? obj.grid - : { - left: "3%", - right: "4%", - bottom: "3%", - containLabel: true, - }, - xAxis: [ - { - type: "category", - data: obj.xAxis, - axisTick: { - alignWithLabel: true, - }, - axisLabel: { - //X轴标签 - show: true, - rotate: 40, - textStyle: { - color: "#fff", //字体颜色 - fontSize: 12, //字体大小 - }, - interval: obj.xAxis.length >= 30 ? 3 : 0, //主要设置其间隔,间隔为3 - }, - axisLine: { - lineStyle: { - color: "#fff", - }, + itemStyle: { + normal: { + color: { + type: "linear", // 线性渐变 + x: 0, + y: 0, + x2: 1, + y2: 1, + colorStops: this.lineColorLinear(index), }, }, - ], - yAxis: [ - { - ...obj.yAxis, - type: "value", - nameTextStyle: { - color: "#fff", - fontSize: 12, - }, - lineStyle: { - color: "#fff", - }, - axisLabel: { - textStyle: { - color: "#fff", //字体颜色 - fontSize: 14, //字体大小 - }, - formatter: (e) => { - return `${e}`; - }, - }, - axisTick: { show: false }, - axisLine: { - show: false, - }, - splitLine: { - //Y轴分隔符 - show: true, - lineStyle: { - color: "#fff", - type: "dashed", - }, + }, + data: [], + }; + this.allRecSaleList.forEach((org) => { + par.data.push(org[item.params] || 0); + + if (!obj1.xAxis.includes(org.statDate.split(" ")[0])) { + obj1.xAxis.push(org.statDate.split(" ")[0]); + } + + if (!obj1.legend.includes(item.name)) { + obj1.legend.push(item.name); + } + }); + this.receptionList.push(par); + }); + let arr2 = [ + { + name: "平均销讲执行率", + params: "fraction", + }, + { + name: "平均挖掘执行率", + params: "wordFraction", + }, + { + name: "平均挖掘成功率", + params: "wordFinishFraction", + }, + ]; + + let obj2 = { + id: "tendencyData2", + xAxis: [], + legend: [], + series: [], + max: 100, + }; + + arr2.forEach((item, index) => { + let par = { + // 折线图的样式 + smooth: true, + name: item.name, + type: "line", + areaStyle: { + normal: { + color: new echarts.graphic.LinearGradient( + 0, + 0, + 1, + 1, + this.lineColorLinear(index), + false + ), + shadowColor: "rgba(44,118,222, 0.1)", + shadowBlur: 10, + }, + }, + itemStyle: { + normal: { + color: { + type: "linear", // 线性渐变 + x: 0, + y: 0, + x2: 1, + y2: 1, + colorStops: this.lineColorLinear(index), }, }, - ], - series: obj.series, + }, + data: [], }; - if (obj.color) { - option.color = obj.color; - } - if (obj.xAxis.length > 30) { - option.dataZoom = [ - { - type: "inside", - }, - ]; + + this.allRecSaleList.forEach((org) => { + par.data.push(org[item.params] || 0); + + if (!obj2.xAxis.includes(org.statDate.split(" ")[0])) { + obj2.xAxis.push(org.statDate.split(" ")[0]); + } + + if (!obj2.legend.includes(item.name)) { + obj2.legend.push(item.name); + } + }); + + this.salesExecution.push(par); + }); + + obj1.series = this.receptionList; + obj2.series = this.salesExecution; + console.log(obj1, "这里是"); + + this.$nextTick(() => { + this.creatLine(obj1); + this.creatLine(obj2); + }); + }, + + // 创建折线图 + creatLine(obj) { + // 基于准备好的dom,初始化echarts实例 + let myChart = echarts.init(document.getElementById(obj.id)); + myChart.clear(); + // this.receptionList + // 指定图表的配置项和数据 + let grid = { + top: "10%", + bottom: "25%", + right: "5%", + left: "15%", + }; + let option = { + legend: { + show: true, + bottom: "0", + right: "center", + orient: "horizontal", // 图例列表的布局朝向; horizontal; vertical + data: obj.legend, + icon: "circle", + left: "center", // 距离容器侧边距离 + textStyle: { + color: "#fff", + fontSize: 12, + }, + }, + + grid: obj.grid ? obj.grid : grid, + tooltip: { + trigger: "axis", + }, + xAxis: { + data: obj.xAxis, // x坐标轴集合 + axisLabel: { + //X轴标签 + show: true, + rotate: 40, + textStyle: { + color: "#fff", //字体颜色 + fontSize: 12, //字体大小 + }, + interval: obj.xAxis.length > 30 ? 9 : 0, //主要设置其间隔,间隔为3 + }, + axisLine: { + lineStyle: { + color: "#fff", + }, + }, + }, + yAxis: [ + { + type: "value", + nameTextStyle: { + color: "#fff", + fontSize: 12, + }, + lineStyle: { + color: "#fff", + }, + minInterval: 5, + axisLabel: { + textStyle: { + color: "#fff", //字体颜色 + fontSize: 14, //字体大小 + }, + formatter: (e) => { + return `${e}`; + }, + }, + axisTick: { show: false }, + axisLine: { + show: false, + }, + splitLine: { + //Y轴分隔符 + show: true, + lineStyle: { + color: "#fff", + type: "dashed", + }, + }, + }, + ], + series: obj.series, + }; + if (obj.max) { + option.yAxis[0].max = 100; + } + + if (obj.xAxis.length > 30) { + option.dataZoom = [ + { + type: "inside", + }, + ]; + } + + // 使用刚指定的配置项和数据显示图表。 + option && myChart.setOption(option); + window.onresize = function () { + myChart.resize(); + }; + }, + + // 格式化饼图数据 + formatterPie() { + this.rsideDataList.forEach((list) => { + if (list.params == "visitReceptionDistribute") { + let gentle = 0; + let [arr1, arr2] = [[], []]; + this.visitReceptionDistribute.forEach((item) => { + if (item.name != "首次到访") { + gentle += item.value; + } else { + arr1.push(item); + } + arr2.push(item); + }); + let series = [ + { + name: "到访次数分布", + type: "pie", + selectedMode: "single", + radius: [0, "30%"], + label: { + position: "inner", + fontSize: 14, + }, + labelLine: { + show: false, + }, + data: arr1, + }, + { + name: "到访次数分布", + type: "pie", + radius: ["45%", "60%"], + labelLine: { + length: 30, + }, + data: arr2, + }, + ]; + series[0].data.push({ + name: "复访接待", + value: gentle, + }); + this.creatPie({ + id: list.params, + legend: { + show: false, + }, + series: series, + }); + } else { + let legend = this[list.params].map((item) => { + return item.name; + }); + this.creatPie({ + id: list.params, + grid: { + bottom: "20%", + top: "5%", + }, + legend: { + legend: legend, + show: true, + orient: "horizontal", + type: "scroll", + bottom: "5%", + textStyle: { + color: "#fff", + }, + }, + series: [ + { + name: list.title, + type: "pie", + radius: ["45%", "60%"], + labelLine: { + length: 5, + showAbove: true, + }, + minAngle: 5, + avoidLabelOverlap: true, + data: this[list.params], + itemStyle: { + normal: { + color: function (colors) { + var colorList = [ + "#D0444D", + "#376FE3", + "#E1B31F", + "#8D25E4", + "#DF7323", + "#2ED1EE", + ]; + return colorList[colors.dataIndex % 6]; + }, + }, + }, + }, + ], + }); + } + }); + }, + // 创建饼图 + creatPie(obj) { + // 基于准备好的dom,初始化echarts实例 + let myChart = echarts.init(document.getElementById(obj.id)); + myChart.clear(); + let option = {}; + if (obj.series[0].data.length != 0) { + option = { + tooltip: { + trigger: "item", + }, + legend: obj.legend, + series: obj.series, + }; + } else { + option = this.setEmpty(); + } + + option && myChart.setOption(option); + window.onresize = function () { + myChart.resize(); + }; + }, + + // 重绘echarts + getFormatter(params, name) { + let xAxis = this[params].map((item) => { + return item.name; + }); + + this.$nextTick(() => { + this.creatBar({ + id: params, + xAxis: xAxis, + series: [ + { + type: "bar", + barMaxWidth: "20%", + name: name, + data: this[params], + itemStyle: { + normal: { + //柱体的颜色 + //右,下,左,上(1,0,0,0)表示从正右开始向左渐变 + color: function (params) { + let colorList = [ + ["#FF7B96", "#FA3E63"], + ["#FC6128", "#FAB519"], + ["#FBE695", "#FFC536"], + ["#4C83FF", "#2AFADF"], + ]; + + let colorItem = + colorList[params.dataIndex > 2 ? 3 : params.dataIndex]; + return new echarts.graphic.LinearGradient( + 0, + 0, + 0, + 1, + [ + { + offset: 0, + color: colorItem[0], + }, + { + offset: 1, + color: colorItem[1], + }, + ], + false + ); + }, + }, + }, + }, + ], + }); + }); + }, + + // 格式化柱状图数据 + formatterBar() { + this.lsideDataList.forEach((list) => { + let xAxis = this[list.params].map((item) => { + return item.name; + }); + + let xAxis1 = this[list.params1].map((item) => { + return item.name; + }); + + this.$nextTick(() => { + if (list.activeName == list.params) { + this.creatBar({ + id: list.params, + xAxis: xAxis, + series: [ + { + type: "bar", + barMaxWidth: "20%", + name: list.title, + data: this[list.params], + itemStyle: { + normal: { + //柱体的颜色 + //右,下,左,上(1,0,0,0)表示从正右开始向左渐变 + color: function (params) { + let colorList = [ + ["#FF7B96", "#FA3E63"], + ["#FC6128", "#FAB519"], + ["#FBE695", "#FFC536"], + ["#4C83FF", "#2AFADF"], + ]; + + let colorItem = + colorList[ + params.dataIndex > 2 ? 3 : params.dataIndex + ]; + return new echarts.graphic.LinearGradient( + 0, + 0, + 0, + 1, + [ + { + offset: 0, + color: colorItem[0], + }, + { + offset: 1, + color: colorItem[1], + }, + ], + false + ); + }, + }, + }, + }, + ], + }); + } else { + this.creatBar({ + id: list.params1, + xAxis: xAxis1, + series: [ + { + type: "bar", + barMaxWidth: "20%", + name: list.title, + data: this[list.params1], + itemStyle: { + normal: { + //柱体的颜色 + //右,下,左,上(1,0,0,0)表示从正右开始向左渐变 + color: function (params) { + let colorList = [ + ["#FF7B96", "#FA3E63"], + ["#FC6128", "#FAB519"], + ["#FBE695", "#FFC536"], + ["#4C83FF", "#2AFADF"], + ]; + + let colorItem = + colorList[ + params.dataIndex > 2 ? 3 : params.dataIndex + ]; + return new echarts.graphic.LinearGradient( + 0, + 0, + 0, + 1, + [ + { + offset: 0, + color: colorItem[0], + }, + { + offset: 1, + color: colorItem[1], + }, + ], + false + ); + }, + }, + }, + }, + ], + }); + } + }); + }); + }, + + // 生成柱状图 + creatBar(obj) { + // 基于准备好的dom,初始化echarts实例 + let myChart = echarts.init(document.getElementById(obj.id)); + myChart.clear(); + let option = {}; + if (obj.series[0].data.length > 0) { + option = { + legend: obj.legend ? obj.legend : { show: false }, + tooltip: { + trigger: "axis", + axisPointer: { + type: "shadow", + }, + }, + grid: obj.grid + ? obj.grid + : { + left: "3%", + right: "4%", + bottom: "3%", + containLabel: true, + }, + xAxis: [ + { + type: "category", + data: obj.xAxis, + axisTick: { + alignWithLabel: true, + }, + axisLabel: { + //X轴标签 + show: true, + rotate: 40, + textStyle: { + color: "#fff", //字体颜色 + fontSize: 12, //字体大小 + }, + interval: obj.xAxis.length >= 30 ? 3 : 0, //主要设置其间隔,间隔为3 + }, + axisLine: { + lineStyle: { + color: "#fff", + }, + }, + }, + ], + yAxis: [ + { + ...obj.yAxis, + type: "value", + nameTextStyle: { + color: "#fff", + fontSize: 12, + }, + lineStyle: { + color: "#fff", + }, + axisLabel: { + textStyle: { + color: "#fff", //字体颜色 + fontSize: 14, //字体大小 + }, + formatter: (e) => { + return `${e}`; + }, + }, + axisTick: { show: false }, + axisLine: { + show: false, + }, + splitLine: { + //Y轴分隔符 + show: true, + lineStyle: { + color: "#fff", + type: "dashed", + }, + }, + }, + ], + series: obj.series, + }; + if (obj.color) { + option.color = obj.color; + } + if (obj.xAxis.length > 30) { + option.dataZoom = [ + { + type: "inside", + }, + ]; + } + } else { + option = this.setEmpty(); + } + option && myChart.setOption(option); + window.onresize = function () { + myChart.resize(); + }; + }, + + // 折线图线的颜色 + lineColorLinear(index) { + let arr = [ + [ + { + offset: 0, + color: "#4C83FF", + }, + { + offset: 1, + color: "#2AFADF", + }, + ], + + [ + { + offset: 0, + color: "#FAB519", + }, + { + offset: 1, + color: "#FC6128", + }, + ], + + [ + { + offset: 0, + color: "#FF7B96", + }, + { + offset: 1, + color: "#FA3E63", + }, + ], + ]; + return arr[index]; + }, + + // 设置数据为空时展示 + setEmpty() { + return { + title: { + text: " {a|}", + x: "center", + y: "center", + subtext: "糟糕!数据不见了", + itemGap: -20, + textStyle: { + rich: { + a: { + color: "#000", + fontSize: "16", + height: 80, + width: 160, + backgroundColor: { + image: + "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjQiIGhlaWdodD0iNDEiIHZpZXdCb3g9IjAgMCA2NCA0MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCiAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAxKSIgZmlsbD0ibm9uZSIgZmlsbFJ1bGU9ImV2ZW5vZGQiPg0KICAgIDxlbGxpcHNlIGZpbGw9IiNkZGQiIGN4PSIzMiIgY3k9IjMzIiByeD0iMzIiIHJ5PSI3IiAvPg0KICAgIDxnIGZpbGxSdWxlPSJub256ZXJvIiBzdHJva2U9IiM5OTkiPg0KICAgICAgPHBhdGgNCiAgICAgICAgZD0iTTU1IDEyLjc2TDQ0Ljg1NCAxLjI1OEM0NC4zNjcuNDc0IDQzLjY1NiAwIDQyLjkwNyAwSDIxLjA5M2MtLjc0OSAwLTEuNDYuNDc0LTEuOTQ3IDEuMjU3TDkgMTIuNzYxVjIyaDQ2di05LjI0eiIgLz4NCiAgICAgIDxwYXRoDQogICAgICAgIGQ9Ik00MS42MTMgMTUuOTMxYzAtMS42MDUuOTk0LTIuOTMgMi4yMjctMi45MzFINTV2MTguMTM3QzU1IDMzLjI2IDUzLjY4IDM1IDUyLjA1IDM1aC00MC4xQzEwLjMyIDM1IDkgMzMuMjU5IDkgMzEuMTM3VjEzaDExLjE2YzEuMjMzIDAgMi4yMjcgMS4zMjMgMi4yMjcgMi45Mjh2LjAyMmMwIDEuNjA1IDEuMDA1IDIuOTAxIDIuMjM3IDIuOTAxaDE0Ljc1MmMxLjIzMiAwIDIuMjM3LTEuMzA4IDIuMjM3LTIuOTEzdi0uMDA3eiINCiAgICAgICAgZmlsbD0iI2UxZTFlMSIgLz4NCiAgICA8L2c+DQogIDwvZz4NCjwvc3ZnPg==", + }, + }, + }, + }, + subtextStyle: { + fontSize: 16, + }, + }, + }; + }, + + // 公司弹窗修改 + changeCompany() { + if (this.headIndex == "案场排名" && this.companyValue) { + let index = this.rankingTypeList.findIndex((item) => item.value == 3); + this.rankingTypeList[index].disabled = false; + } else if (this.headIndex == "接待分析") { + this.projectValue = ""; + this.biFindHouseByOrgCode(); + } else { + this.dimensionType = 1; + let index = this.rankingTypeList.findIndex((item) => item.value == 3); + this.rankingTypeList[index].disabled = true; + } + }, + + // + hahaABCD(e) { + console.log(e); + }, + + // 返回首页 + backHome() { + this.$router.go(-1); + }, + + // 选中nav导航 + selectNav(index) { + this.headIndex = index.title; + sessionStorage.setItem("BIHeadIndex", this.headIndex); + this.projectValue = ""; + this.initPage(); + }, + + // 时间类型选项被点击 + timerClick(index) { + this.time = []; + this.dateSelectIndex = index; + this.initPage(); + }, + + // 自定义时间改变 + timerChange() { + this.dateSelectIndex = null; + this.initPage(); + }, + + // To doing + // + handleCurrentChange(e) { + if (this.headIndex != "违禁预警") { + this.current = e; + this.showDialog(this.showDialogData); + } else { + if (this.dialogVisible) { + this.current = e; + this.biWarningList(); + } else { + this.currents = e; + this.biWarningMessageList(); + } + } + }, + + // + handleSizeChange(e) { + if (this.headIndex != "违禁预警") { + this.size = e; + this.showDialog(this.showDialogData); + } else { + if (this.dialogVisible) { + this.sizes = e; + this.biWarningList(); + } else { + this.sizes = e; + this.biWarningMessageList(); + } + } + }, + }, +}; + + + +