From 25e6be82127e3b42a6f912b2a5fc3c1399c3129d Mon Sep 17 00:00:00 2001
From: zx <604444282@qq.com>
Date: Fri, 25 Feb 2022 16:23:16 +0800
Subject: [PATCH] zx
---
src/api/BrandComparison/index.js | 13 ++
src/api/BrandInsight/index.js | 25 ++++
src/api/ModelComparison/index.js | 13 ++
src/views/BrandComparison/BrandComparison.vue | 6 +
.../informationTrend/index.vue | 2 -
.../saleFormComparison/index.vue | 72 +++++++++++
.../BrandComparison/saleFormComparison/opt.js | 114 ++++++++++++++++++
.../saleFormComparisonStoken/index.vue | 25 ++++
src/views/BrandInsight/index.vue | 50 ++++++++
src/views/BrandInsight/saleForm/index.vue | 63 ++++++++++
src/views/BrandInsight/saleForm/opt.js | 87 +++++++++++++
.../BrandInsight/saleFormStoken/index.vue | 31 +++++
src/views/BrandInsight/saleTop/index.vue | 68 +++++++++++
src/views/BrandInsight/saleTop/opt.js | 111 +++++++++++++++++
.../BrandInsight/saleTopStoken/index.vue | 26 ++++
src/views/ModelComparison/BrandComparison.vue | 11 +-
.../saleFormComparison/index.vue | 75 ++++++++++++
.../ModelComparison/saleFormComparison/opt.js | 114 ++++++++++++++++++
.../saleFormComparisonStoken/index.vue | 25 ++++
src/views/ModelInsight/index.vue | 38 ++++++
src/views/ModelInsight/mlSaleForm/index.vue | 71 +++++++++++
src/views/ModelInsight/mlSaleForm/opt.js | 87 +++++++++++++
.../ModelInsight/mlSaleFormStoken/index.vue | 31 +++++
src/views/SaleRank/AllEnergy/index.vue | 8 +-
24 files changed, 1159 insertions(+), 7 deletions(-)
create mode 100644 src/views/BrandComparison/saleFormComparison/index.vue
create mode 100644 src/views/BrandComparison/saleFormComparison/opt.js
create mode 100644 src/views/BrandComparison/saleFormComparisonStoken/index.vue
create mode 100644 src/views/BrandInsight/saleForm/index.vue
create mode 100644 src/views/BrandInsight/saleForm/opt.js
create mode 100644 src/views/BrandInsight/saleFormStoken/index.vue
create mode 100644 src/views/BrandInsight/saleTop/index.vue
create mode 100644 src/views/BrandInsight/saleTop/opt.js
create mode 100644 src/views/BrandInsight/saleTopStoken/index.vue
create mode 100644 src/views/ModelComparison/saleFormComparison/index.vue
create mode 100644 src/views/ModelComparison/saleFormComparison/opt.js
create mode 100644 src/views/ModelComparison/saleFormComparisonStoken/index.vue
create mode 100644 src/views/ModelInsight/mlSaleForm/index.vue
create mode 100644 src/views/ModelInsight/mlSaleForm/opt.js
create mode 100644 src/views/ModelInsight/mlSaleFormStoken/index.vue
diff --git a/src/api/BrandComparison/index.js b/src/api/BrandComparison/index.js
index 06a023c..2a4bdb6 100644
--- a/src/api/BrandComparison/index.js
+++ b/src/api/BrandComparison/index.js
@@ -104,3 +104,16 @@ export function getPositiveAndNegative0528C(params) {
})
}
+// 品牌对比-销量态势对比
+export function getCheZhuCountTimeC(params) {
+ let obj = Object.assign({action: 'getCheZhuCountTimeC', sType: 'Marketing1C', iContrastType: 1}, params)
+ return httpService({
+ url: `/api/v6.ashx`,
+ method: 'post',
+ data: obj,
+ headers: {
+ 'content-type': 'application/x-www-form-urlencoded'
+ }
+ })
+}
+
diff --git a/src/api/BrandInsight/index.js b/src/api/BrandInsight/index.js
index 0f6be08..458cac1 100644
--- a/src/api/BrandInsight/index.js
+++ b/src/api/BrandInsight/index.js
@@ -209,4 +209,29 @@ export function getToPptTask(params) {
'content-type': 'application/x-www-form-urlencoded'
}
})
+}
+
+// 品牌销量态势
+export function getCheZhuCountTime(params) {
+ let obj = Object.assign({action: 'getCheZhuCountTime', sType: 'Marketing1'}, params)
+ return httpService({
+ url: `/api/v6.ashx`,
+ method: 'post',
+ data: obj,
+ headers: {
+ 'content-type': 'application/x-www-form-urlencoded'
+ }
+ })
+}
+// 品牌销量TOP
+export function getCheZhuCarSeriesCount(params) {
+ let obj = Object.assign({action: 'getCheZhuCarSeriesCount', sType: 'Marketing1'}, params)
+ return httpService({
+ url: `/api/v6.ashx`,
+ method: 'post',
+ data: obj,
+ headers: {
+ 'content-type': 'application/x-www-form-urlencoded'
+ }
+ })
}
\ No newline at end of file
diff --git a/src/api/ModelComparison/index.js b/src/api/ModelComparison/index.js
index 6c4c5ab..790b25f 100644
--- a/src/api/ModelComparison/index.js
+++ b/src/api/ModelComparison/index.js
@@ -127,4 +127,17 @@ export function getSourceTopCount0528C(params) {
'content-type': 'application/x-www-form-urlencoded'
}
})
+}
+
+// 车型对比-销量态势对比
+export function getCheZhuCountTimeC(params) {
+ let obj = Object.assign({action: 'getCheZhuCountTimeC', sType: 'Marketing1C', iContrastType: 2}, params)
+ return httpService({
+ url: `/api/v6.ashx`,
+ method: 'post',
+ data: obj,
+ headers: {
+ 'content-type': 'application/x-www-form-urlencoded'
+ }
+ })
}
\ No newline at end of file
diff --git a/src/views/BrandComparison/BrandComparison.vue b/src/views/BrandComparison/BrandComparison.vue
index 3cd1904..2c57575 100644
--- a/src/views/BrandComparison/BrandComparison.vue
+++ b/src/views/BrandComparison/BrandComparison.vue
@@ -57,6 +57,10 @@
+
+
+
+
@@ -187,6 +191,8 @@ export default {
userAreaDistributionStoken: (resolve) => require(['./userAreaDistributionStoken'], resolve), //用户区域分布
weiboUserPortrait: (resolve) => require(['./weiboUserPortrait'], resolve), // 微博用户画像
weiboUserPortraitStoken: (resolve) => require(['./weiboUserPortraitStoken'], resolve), // 微博用户画像
+ saleFormComparison: (resolve) => require(['./saleFormComparison'], resolve), // 销量对比
+ saleFormComparisonStoken: (resolve) => require(['./saleFormComparisonStoken'], resolve), // 销量对比
summaryAndComparisonOfForumInformation: (resolve) => require(['./summaryAndComparisonOfForumInformation'], resolve), // 论坛信息概括对比
summaryAndComparisonOfForumInformationStoken: (resolve) => require(['./summaryAndComparisonOfForumInformationStoken'], resolve), // 论坛信息概括对比
comparisonOfForumPostingTrends: (resolve) => require(['./comparisonOfForumPostingTrends'], resolve), // 论坛发帖趋势对比
diff --git a/src/views/BrandComparison/informationTrend/index.vue b/src/views/BrandComparison/informationTrend/index.vue
index 5620360..c0f1659 100644
--- a/src/views/BrandComparison/informationTrend/index.vue
+++ b/src/views/BrandComparison/informationTrend/index.vue
@@ -104,8 +104,6 @@ export default {
}
dataI = dataI + 1;
});
- console.log(dx);
- console.log(ds)
this.opt = createOpt(dx, ds, markData);
this.load = false;
});
diff --git a/src/views/BrandComparison/saleFormComparison/index.vue b/src/views/BrandComparison/saleFormComparison/index.vue
new file mode 100644
index 0000000..2d6fa9d
--- /dev/null
+++ b/src/views/BrandComparison/saleFormComparison/index.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/BrandComparison/saleFormComparison/opt.js b/src/views/BrandComparison/saleFormComparison/opt.js
new file mode 100644
index 0000000..489867e
--- /dev/null
+++ b/src/views/BrandComparison/saleFormComparison/opt.js
@@ -0,0 +1,114 @@
+/*
+ * @Author: your name
+ * @Date: 2021-10-12 10:11:24
+ * @LastEditTime: 2021-11-19 19:47:53
+ * @LastEditors: Please set LastEditors
+ * @Description: In User Settings Edit
+ * @FilePath: /data-show/src/views/BrandInsight/titsopo/opt.js
+ */
+import { bigNumberTransform } from "@/utils/gol/dataTool"
+function createData(ds = []) {
+ let testData = {}
+ ds.forEach(item => {
+ item.forEach(val => {
+ if (testData[val.key] === undefined) {
+ testData[val.key] = {
+ name: val.key,
+ type: 'line',
+ symbol: 'none',
+ areaStyle: {
+ opacity: 0.2
+ },
+ emphasis: {
+ focus: 'series'
+ },
+ data: [val.value],
+ markPoint: {
+ data: [],
+ }
+ };
+ } else {
+ testData[val.key].data.push(val.value)
+ }
+ })
+ })
+ let arr = [];
+ for(let key in testData) {
+ arr.push(testData[key])
+ }
+ return arr
+}
+export default function createOpt(dx = [], ds = []) {
+ let data = createData(ds);
+ return {
+ grid: {
+ left: 10,
+ right: '5%',
+ bottom: 10,
+ top: 52,
+ containLabel: true
+ },
+ tooltip: {
+ trigger: "axis",
+ backgroundColor: "#08182F",
+ color: "#fff",
+ borderColor: "#3373CC",
+ textStyle: {
+ color: "#fff", //设置文字颜色
+ },
+ extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
+ },
+ legend: {
+ icon: 'roundRect',
+ textStyle: { //图例文字的样式
+ color: '#fff',
+ fontSize: 10
+ },
+ y: 12,
+ x: 16,
+ itemWidth: 12,
+ itemHeight: 12
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ axisTick: {
+ show: false,
+ },
+ axisLabel: {
+ formatter: (value) => {
+ return value
+ }
+ },
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: "#fff",
+ },
+ },
+ data: dx
+ },
+ yAxis: {
+ type: 'value',
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: "#fff",
+ },
+ },
+ axisLabel: {
+ formatter: (value) => {
+ let str = bigNumberTransform(value);
+ return str;
+ }
+ },
+ splitLine: {
+ lineStyle: {
+ type: "dashed", // y轴分割线类型
+ color: "#012b4b",
+ },
+ },
+ },
+ series: data
+ }
+}
diff --git a/src/views/BrandComparison/saleFormComparisonStoken/index.vue b/src/views/BrandComparison/saleFormComparisonStoken/index.vue
new file mode 100644
index 0000000..2b0d483
--- /dev/null
+++ b/src/views/BrandComparison/saleFormComparisonStoken/index.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/BrandInsight/index.vue b/src/views/BrandInsight/index.vue
index 71cf998..af19b28 100644
--- a/src/views/BrandInsight/index.vue
+++ b/src/views/BrandInsight/index.vue
@@ -97,6 +97,21 @@
+
+
+ 销量详情
+
+
+
+
+
+
+
+
+
+
+
+
@@ -114,6 +129,8 @@ import weiboVolumeTrend from "./weiboVolumeTrend";
import forumCommunicationTrend from "./forumCommunicationTrend";
import forumHotTopicDirection from "./forumHotTopicDirection";
import spreadTOPmodels from "./spreadTOPmodels";
+import saleForm from "./saleForm";
+import saleTop from "./saleTop";
import rearWingPropagationSituation from "./rearWingPropagationSituation";
import keyMedia from "./keyMedia";
import popularwordCloud from "./popularwordCloud";
@@ -129,9 +146,12 @@ import weiboVolumeTrendStoken from "./weiboVolumeTrendStoken";
import forumCommunicationTrendStoken from "./forumCommunicationTrendStoken";
import forumHotTopicDirectionStoken from "./forumHotTopicDirectionStoken";
import spreadTOPmodelsStoken from "./spreadTOPmodelsStoken";
+import saleFormStoken from "./saleFormStoken";
+import saleTopStoken from "./saleTopStoken";
import rearWingPropagationSituationStoken from "./rearWingPropagationSituationStoken";
import keyMediaStoken from "./keyMediaStoken";
import popularwordCloudStoken from "./popularwordCloudStoken";
+import {getCheZhuLatestTime} from "@/api/SaleRank"
export default {
name: "BrandInsight",
inject: ['reload'],
@@ -146,6 +166,8 @@ export default {
weiboVolumeTrend, // 微博声量趋势
forumCommunicationTrend, //论坛传播态势
forumHotTopicDirection, // 论坛热议话题方向
+ saleForm, //销量态势
+ saleTop, //销量top
spreadTOPmodels, // 传播TOP车型
rearWingPropagationSituation, // 尾翼传播态势
keyMedia, // 重点媒体
@@ -161,6 +183,8 @@ export default {
weiboVolumeTrendStoken, // 微博声量趋势
forumCommunicationTrendStoken, //论坛传播态势
forumHotTopicDirectionStoken, // 论坛热议话题方向
+ saleFormStoken, //销量态势
+ saleTopStoken, //销量top
spreadTOPmodelsStoken, // 传播TOP车型
rearWingPropagationSituationStoken, // 尾翼传播态势
keyMediaStoken, // 重点媒体
@@ -190,6 +214,21 @@ export default {
this.setBrand(arr[0]);
// this.setModel(arr[1]);
this.reload();
+ },
+ //前往销量
+ toSale() {
+ getCheZhuLatestTime({token: this.getToken}).then(res => {
+ let dDate = res.data;
+ this.$router.push(
+ {
+ path: '/saleRank/brandInfoDetail',
+ query: {
+ sBrand: this.brand,
+ sourcetime: dDate,
+ }
+ }
+ )
+ })
}
}
};
@@ -290,4 +329,15 @@ export default {
padding: 0px 16px 16px 16px;
}
}
+.bdl-d6 {
+ width: 100%;
+ height: 460px;
+ border: 2px solid #0f2a4d;
+ margin-top: 16px;
+ .bdl-d6-bd {
+ display: flex;
+ justify-content: flex-start;
+ padding: 0px 16px 16px 16px;
+ }
+}
diff --git a/src/views/BrandInsight/saleForm/index.vue b/src/views/BrandInsight/saleForm/index.vue
new file mode 100644
index 0000000..f8abdfc
--- /dev/null
+++ b/src/views/BrandInsight/saleForm/index.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/BrandInsight/saleForm/opt.js b/src/views/BrandInsight/saleForm/opt.js
new file mode 100644
index 0000000..990cb9b
--- /dev/null
+++ b/src/views/BrandInsight/saleForm/opt.js
@@ -0,0 +1,87 @@
+/*
+ * @Author: your name
+ * @Date: 2021-10-12 16:40:53
+ * @LastEditTime: 2021-11-19 19:48:04
+ * @LastEditors: Please set LastEditors
+ * @Description: In User Settings Edit
+ * @FilePath: /data-show/src/views/BrandInsight/forumCommunicationTrend/opt.js
+ */
+import * as echarts from "echarts";
+import { bigNumberTransform } from "@/utils/gol/dataTool"
+export default function createOpt(dx = [], ds = []) {
+ return {
+ grid: {
+ top: "15%",
+ left: "3%",
+ right: "5%",
+ bottom: "3%",
+ containLabel: true,
+ },
+ tooltip: {
+ trigger: "axis",
+ backgroundColor: "#08182F",
+ color: "#fff",
+ borderColor: "#3373CC",
+ textStyle: {
+ color: "#fff", //设置文字颜色
+ },
+ extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ axisTick: {
+ show: false,
+ },
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: "#fff",
+ },
+ },
+ axisLabel : {
+ formatter: (value) => {
+ return value
+ }
+ },
+ data: dx
+ },
+ yAxis: {
+ type: 'value',
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: "#FFF",
+ },
+ },
+ axisLabel: {
+ formatter: (value) => {
+ let str = bigNumberTransform(value);
+ return str;
+ }
+ },
+ splitLine: {
+ lineStyle: {
+ type: "dashed", // y轴分割线类型
+ color: "#012b4b",
+ },
+ },
+ },
+ series: [
+ {
+ data: ds,
+ type: 'line',
+ color: "#CC9D12",
+ areaStyle: {normal: {
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ offset: 0,
+ color: '#CC9D12'
+ }, {
+ offset: 1,
+ color: 'rgba(0,0,0,0)'
+ }]),
+ }},
+ }
+ ]
+ };
+}
diff --git a/src/views/BrandInsight/saleFormStoken/index.vue b/src/views/BrandInsight/saleFormStoken/index.vue
new file mode 100644
index 0000000..fcd54e4
--- /dev/null
+++ b/src/views/BrandInsight/saleFormStoken/index.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/BrandInsight/saleTop/index.vue b/src/views/BrandInsight/saleTop/index.vue
new file mode 100644
index 0000000..1344045
--- /dev/null
+++ b/src/views/BrandInsight/saleTop/index.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/BrandInsight/saleTop/opt.js b/src/views/BrandInsight/saleTop/opt.js
new file mode 100644
index 0000000..6bb55aa
--- /dev/null
+++ b/src/views/BrandInsight/saleTop/opt.js
@@ -0,0 +1,111 @@
+/*
+ * @Author: your name
+ * @Date: 2021-10-12 18:23:25
+ * @LastEditTime: 2021-10-12 18:31:20
+ * @LastEditors: Please set LastEditors
+ * @Description: In User Settings Edit
+ * @FilePath: /data-show/src/views/BrandInsight/spreadTOPmodels/opt.js
+ */
+import * as echarts from "echarts";
+import { bigNumberTransform } from "@/utils/gol/dataTool"
+export default function createOpt(dx,ds) {
+ return {
+ grid: {
+ top: "10%",
+ left: "16px",
+ right: "5%",
+ bottom: "16px",
+ containLabel: true,
+ },
+ tooltip: {
+ trigger: "axis",
+ backgroundColor: "#08182F",
+ color: "#fff",
+ borderColor: "#3373CC",
+ textStyle: {
+ color: "#fff", //设置文字颜色
+ },
+ extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;",
+ formatter: function (params) {
+ var result = "";
+ var dotHtml =
+ '';
+ params.forEach(function (item) {
+ result += item.axisValue + "" + dotHtml + item.data;
+ });
+ return result;
+ },
+ },
+ xAxis: {
+ type: "category",
+ axisTick: {
+ show: false,
+ },
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: "#fff",
+ },
+ },
+ data: dx,
+ },
+ yAxis: {
+ type: "value",
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: "#FFF",
+ },
+ },
+ axisLabel: {
+ formatter: (value) => {
+ let str = bigNumberTransform(value);
+ return str;
+ }
+ },
+ splitLine: {
+ lineStyle: {
+ type: "dashed", // y轴分割线类型
+ color: "#012b4b",
+ },
+ },
+ },
+ series: [
+ {
+ name: "2001",
+ data: ds,
+ type: "bar",
+ barWidth: 24,
+ itemStyle: {
+ normal: {
+ label: {
+ show: true, //开启显示
+ position: 'top', //在上方显示
+ textStyle: { //数值样式
+ color: '#fff',
+ fontSize: 14
+ }
+ },
+ color: new echarts.graphic.LinearGradient(
+ 0,
+ 1,
+ 0,
+ 0,
+ [
+ {
+ offset: 0,
+ color: "#000", // 0% 处的颜色
+ },
+ {
+ offset: 1,
+ color: "#CC9D12", // 100% 处的颜色#3373CC
+ },
+ ],
+ false
+ ),
+ },
+ },
+ },
+ ],
+ }
+}
diff --git a/src/views/BrandInsight/saleTopStoken/index.vue b/src/views/BrandInsight/saleTopStoken/index.vue
new file mode 100644
index 0000000..05c7533
--- /dev/null
+++ b/src/views/BrandInsight/saleTopStoken/index.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/ModelComparison/BrandComparison.vue b/src/views/ModelComparison/BrandComparison.vue
index 3daf17d..d875da2 100644
--- a/src/views/ModelComparison/BrandComparison.vue
+++ b/src/views/ModelComparison/BrandComparison.vue
@@ -54,6 +54,10 @@
+
+
+
+
@@ -167,6 +171,7 @@ import brandRearWingComparison from "./brandRearWingComparison"
// import informationVolumeByChannel from "./informationVolumeByChannel"
import tailTOPMedia from "./tailTOPMedia"
import brandCompateHeader from "./brandCompateHeader"
+import saleFormComparison from "./saleFormComparison"
//骨架屏
import informationTrendStoken from "./informationTrendStoken";
import overallInformationStoken from "./overallInformationStoken";
@@ -192,7 +197,9 @@ import comparisonOfNegativeTopicsInForumsStoken from "./comparisonOfNegativeTopi
import brandRearWingComparisonStoken from "./brandRearWingComparisonStoken"
// import informationVolumeByChannelStoken from "./informationVolumeByChannelStoken"
import tailTOPMediaStoken from "./tailTOPMediaStoken"
-import brandCompateHeaderStoken from "./brandCompateHeaderStoken"
+import brandCompateHeaderStoken from "./brandCompateHeaderStoken";
+import saleFormComparisonStoken from "./saleFormComparisonStoken";
+
export default {
name: "brandComparison",
inject: ['reload'],
@@ -222,6 +229,7 @@ export default {
// informationVolumeByChannel, // 分渠道信息量
tailTOPMedia, // 尾翼TOP媒体
brandCompateHeader, // 选择品牌
+ saleFormComparison, //销量
//骨架屏
informationTrendStoken, // 信息量趋势
overallInformationStoken, // 整体信息量
@@ -248,6 +256,7 @@ export default {
// informationVolumeByChannelStoken, // 分渠道信息量
tailTOPMediaStoken, // 尾翼TOP媒体
brandCompateHeaderStoken, // 选择品牌
+ saleFormComparisonStoken, //销量
},
data() {
return {
diff --git a/src/views/ModelComparison/saleFormComparison/index.vue b/src/views/ModelComparison/saleFormComparison/index.vue
new file mode 100644
index 0000000..bc3e6d3
--- /dev/null
+++ b/src/views/ModelComparison/saleFormComparison/index.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/ModelComparison/saleFormComparison/opt.js b/src/views/ModelComparison/saleFormComparison/opt.js
new file mode 100644
index 0000000..489867e
--- /dev/null
+++ b/src/views/ModelComparison/saleFormComparison/opt.js
@@ -0,0 +1,114 @@
+/*
+ * @Author: your name
+ * @Date: 2021-10-12 10:11:24
+ * @LastEditTime: 2021-11-19 19:47:53
+ * @LastEditors: Please set LastEditors
+ * @Description: In User Settings Edit
+ * @FilePath: /data-show/src/views/BrandInsight/titsopo/opt.js
+ */
+import { bigNumberTransform } from "@/utils/gol/dataTool"
+function createData(ds = []) {
+ let testData = {}
+ ds.forEach(item => {
+ item.forEach(val => {
+ if (testData[val.key] === undefined) {
+ testData[val.key] = {
+ name: val.key,
+ type: 'line',
+ symbol: 'none',
+ areaStyle: {
+ opacity: 0.2
+ },
+ emphasis: {
+ focus: 'series'
+ },
+ data: [val.value],
+ markPoint: {
+ data: [],
+ }
+ };
+ } else {
+ testData[val.key].data.push(val.value)
+ }
+ })
+ })
+ let arr = [];
+ for(let key in testData) {
+ arr.push(testData[key])
+ }
+ return arr
+}
+export default function createOpt(dx = [], ds = []) {
+ let data = createData(ds);
+ return {
+ grid: {
+ left: 10,
+ right: '5%',
+ bottom: 10,
+ top: 52,
+ containLabel: true
+ },
+ tooltip: {
+ trigger: "axis",
+ backgroundColor: "#08182F",
+ color: "#fff",
+ borderColor: "#3373CC",
+ textStyle: {
+ color: "#fff", //设置文字颜色
+ },
+ extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
+ },
+ legend: {
+ icon: 'roundRect',
+ textStyle: { //图例文字的样式
+ color: '#fff',
+ fontSize: 10
+ },
+ y: 12,
+ x: 16,
+ itemWidth: 12,
+ itemHeight: 12
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ axisTick: {
+ show: false,
+ },
+ axisLabel: {
+ formatter: (value) => {
+ return value
+ }
+ },
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: "#fff",
+ },
+ },
+ data: dx
+ },
+ yAxis: {
+ type: 'value',
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: "#fff",
+ },
+ },
+ axisLabel: {
+ formatter: (value) => {
+ let str = bigNumberTransform(value);
+ return str;
+ }
+ },
+ splitLine: {
+ lineStyle: {
+ type: "dashed", // y轴分割线类型
+ color: "#012b4b",
+ },
+ },
+ },
+ series: data
+ }
+}
diff --git a/src/views/ModelComparison/saleFormComparisonStoken/index.vue b/src/views/ModelComparison/saleFormComparisonStoken/index.vue
new file mode 100644
index 0000000..2b0d483
--- /dev/null
+++ b/src/views/ModelComparison/saleFormComparisonStoken/index.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/ModelInsight/index.vue b/src/views/ModelInsight/index.vue
index e5792b7..01371a5 100644
--- a/src/views/ModelInsight/index.vue
+++ b/src/views/ModelInsight/index.vue
@@ -98,6 +98,17 @@
+
@@ -116,6 +127,7 @@ import mlForumHotTopicDirection from "./mlForumHotTopicDirection";
import mlSpreadTOPmodels from "./mlSpreadTOPmodels";
import mlKeyMedia from "./mlKeyMedia";
import mlRearWingPropagationSituation from "./mlRearWingPropagationSituation";
+import mlSaleForm from './mlSaleForm'
import mlPopularwordCloud from "./mlPopularwordCloud";
//骨架屏
import mlBrandDataStoken from "./ml-brand-dataStoken";
@@ -130,6 +142,7 @@ import mlForumHotTopicDirectionStoken from "./mlForumHotTopicDirectionStoken";
import mlSpreadTOPmodelsStoken from "./mlSpreadTOPmodelsStoken";
import mlKeyMediaStoken from "./mlKeyMediaStoken";
import mlRearWingPropagationSituationStoken from "./mlRearWingPropagationSituationStoken";
+import mlSaleFormStoken from './mlSaleFormStoken'
import mlPopularwordCloudStoken from "./mlPopularwordCloudStoken";
import { getUserSeriesName } from "@/api/comm";
export default {
@@ -148,6 +161,7 @@ export default {
mlSpreadTOPmodels, // 阅读量占比分布
mlKeyMedia, // 尾翼重点媒体
mlRearWingPropagationSituation, // 尾翼声量趋势
+ mlSaleForm, //销量趋势
mlPopularwordCloud, // 热门词云
//骨架屏
mlBrandDataStoken, // 品牌数据
@@ -162,6 +176,7 @@ export default {
mlSpreadTOPmodelsStoken, // 阅读量占比分布
mlKeyMediaStoken, // 尾翼重点媒体
mlRearWingPropagationSituationStoken, // 尾翼声量趋势
+ mlSaleFormStoken, //销量趋势
mlPopularwordCloudStoken, // 热门词云
},
data() {
@@ -212,6 +227,18 @@ export default {
// 车型洞察
goRouter(path) {
this.$router.push({path: path})
+ },
+ //前往销量详情
+ goSaleModel() {
+ this.$router.push(
+ {
+ path: '/saleRank/seriesInfo',
+ query: {
+ sBrand: this.brand,
+ sSeriesName: this.model,
+ }
+ }
+ )
}
},
};
@@ -311,4 +338,15 @@ export default {
padding: 0px 16px 16px 16px;
}
}
+.bdl-d6 {
+ width: 100%;
+ height: 460px;
+ border: 2px solid #0f2a4d;
+ margin-top: 16px;
+ .bdl-d6-bd {
+ display: flex;
+ justify-content: flex-start;
+ padding: 0px 16px 16px 16px;
+ }
+}
diff --git a/src/views/ModelInsight/mlSaleForm/index.vue b/src/views/ModelInsight/mlSaleForm/index.vue
new file mode 100644
index 0000000..45cd4d6
--- /dev/null
+++ b/src/views/ModelInsight/mlSaleForm/index.vue
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/ModelInsight/mlSaleForm/opt.js b/src/views/ModelInsight/mlSaleForm/opt.js
new file mode 100644
index 0000000..990cb9b
--- /dev/null
+++ b/src/views/ModelInsight/mlSaleForm/opt.js
@@ -0,0 +1,87 @@
+/*
+ * @Author: your name
+ * @Date: 2021-10-12 16:40:53
+ * @LastEditTime: 2021-11-19 19:48:04
+ * @LastEditors: Please set LastEditors
+ * @Description: In User Settings Edit
+ * @FilePath: /data-show/src/views/BrandInsight/forumCommunicationTrend/opt.js
+ */
+import * as echarts from "echarts";
+import { bigNumberTransform } from "@/utils/gol/dataTool"
+export default function createOpt(dx = [], ds = []) {
+ return {
+ grid: {
+ top: "15%",
+ left: "3%",
+ right: "5%",
+ bottom: "3%",
+ containLabel: true,
+ },
+ tooltip: {
+ trigger: "axis",
+ backgroundColor: "#08182F",
+ color: "#fff",
+ borderColor: "#3373CC",
+ textStyle: {
+ color: "#fff", //设置文字颜色
+ },
+ extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;"
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ axisTick: {
+ show: false,
+ },
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: "#fff",
+ },
+ },
+ axisLabel : {
+ formatter: (value) => {
+ return value
+ }
+ },
+ data: dx
+ },
+ yAxis: {
+ type: 'value',
+ axisLine: {
+ show: false,
+ lineStyle: {
+ color: "#FFF",
+ },
+ },
+ axisLabel: {
+ formatter: (value) => {
+ let str = bigNumberTransform(value);
+ return str;
+ }
+ },
+ splitLine: {
+ lineStyle: {
+ type: "dashed", // y轴分割线类型
+ color: "#012b4b",
+ },
+ },
+ },
+ series: [
+ {
+ data: ds,
+ type: 'line',
+ color: "#CC9D12",
+ areaStyle: {normal: {
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ offset: 0,
+ color: '#CC9D12'
+ }, {
+ offset: 1,
+ color: 'rgba(0,0,0,0)'
+ }]),
+ }},
+ }
+ ]
+ };
+}
diff --git a/src/views/ModelInsight/mlSaleFormStoken/index.vue b/src/views/ModelInsight/mlSaleFormStoken/index.vue
new file mode 100644
index 0000000..d429ccc
--- /dev/null
+++ b/src/views/ModelInsight/mlSaleFormStoken/index.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/SaleRank/AllEnergy/index.vue b/src/views/SaleRank/AllEnergy/index.vue
index 4fb1dc2..36a417b 100644
--- a/src/views/SaleRank/AllEnergy/index.vue
+++ b/src/views/SaleRank/AllEnergy/index.vue
@@ -11,17 +11,17 @@
-
+
@@ -48,7 +48,7 @@ export default {
data() {
return {
load: false,
- time: '各汽车能源类型销售排行榜',
+ time: '汽车能源类型销售排行榜',
form: {
token: '',
sTimeType: 4,