diff --git a/src/components/index.js b/src/components/index.js index 12cc68e..6f0956e 100644 --- a/src/components/index.js +++ b/src/components/index.js @@ -11,6 +11,7 @@ import vLabelDivLight from "@/components/v-labelDivLight"; import vModal from "@/components/v-modal"; import vTable from "@/components/v-table"; import vTabGroup from "@/components/v-tab-group"; +import vTabGroupControl from "@/components/v-tab-group-control"; import vTabMode from "@/components/v-tab-mode"; import vEcharts from "@/components/v-echars"; import vBtn from "@/components/v-btn"; @@ -32,6 +33,7 @@ export default { vModal, vTable, vTabGroup, + vTabGroupControl, vTabMode, vEcharts, vBtn, diff --git a/src/components/v-tab-group-control/index.vue b/src/components/v-tab-group-control/index.vue new file mode 100644 index 0000000..848201f --- /dev/null +++ b/src/components/v-tab-group-control/index.vue @@ -0,0 +1,79 @@ + + + + + + \ No newline at end of file diff --git a/src/mixins/index.js b/src/mixins/index.js index 71a9b65..b4d3c0c 100644 --- a/src/mixins/index.js +++ b/src/mixins/index.js @@ -127,10 +127,12 @@ export default { } }, computed: { - ...mapGetters(['getZoom', 'getLoading', 'getToken', 'getUser', 'getAccount', 'getCommTime', 'getCtime', 'getCtime2', 'getHeaderType', 'getBrand', 'getModel', 'getSComparison', 'getBComparison','getTComparison', 'getMComparison', 'getEComparison', 'getLevelBtn', 'getMenu', 'getChangeSTime', 'getMcStatus','getBcStatus','getScStatus','getTcStatus','getIsLight']) + ...mapGetters(['getZoom', 'getLoading', 'getToken', 'getUser', 'getAccount', 'getCommTime', 'getCtime', 'getCtime2', 'getHeaderType', 'getBrand', 'getModel', 'getSComparison', 'getBComparison','getTComparison', 'getMComparison', 'getEComparison', 'getLevelBtn', 'getMenu', + 'getChangeSTime', 'getMcStatus','getBcStatus','getScStatus','getTcStatus','getIsLight','getCarCircle']) }, methods: { - ...mapActions(["setZoom", 'setLoading', 'setToken', 'setUser', 'setAccount', 'setCommTime', 'setCtime', 'setCtime2', 'setHeaderType', 'setBrand', 'setModel', 'setSComparison', 'setBComparison','setTComparison', 'setMComparison', 'setEComparison', 'setLevelBtn', 'setMenu', 'setChangeSTime','setMcStatus','setBcStatus','setScStatus','setTcStatus','setIsLight']), + ...mapActions(["setZoom", 'setLoading', 'setToken', 'setUser', 'setAccount', 'setCommTime', 'setCtime', 'setCtime2', 'setHeaderType', 'setBrand', 'setModel', 'setSComparison', 'setBComparison','setTComparison', 'setMComparison', 'setEComparison', 'setLevelBtn', 'setMenu', + 'setChangeSTime','setMcStatus','setBcStatus','setScStatus','setTcStatus','setIsLight','setCarCircle']), // 获取当前日期时间 getDatetime() { let now = new Date(); diff --git a/src/router/index.js b/src/router/index.js index bf8688d..93efc28 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -46,6 +46,7 @@ import ThemeComparison from "@/views/ThemeComparison" import iSwitchEvent from "@/lycomponents/iSwitchEvent" // 重点媒体 import KeyMediaBrand from "@/views/KeyMediaBrand" +import KeyMediaSeries from "@/views/KeyMediaSeries" const router = [ { path: '/login', @@ -178,6 +179,12 @@ const router = [ desc: "车型尾翼详情", component: ModelTailDetails }, + { + path: '/keyMediaSeries', + name: "keyMediaSeries", + desc: "车型洞察-重点媒体", + component: KeyMediaSeries + }, { path: '/modelComparison', name: "ModelComparison", diff --git a/src/store/actions.js b/src/store/actions.js index 8dca680..a224496 100644 --- a/src/store/actions.js +++ b/src/store/actions.js @@ -80,5 +80,8 @@ const actions = { setIsLight: ({commit}, log) => { commit('setIsLight', log) }, + setCarCircle: ({commit}, log) => { + commit('setCarCircle', log) + }, } export default actions diff --git a/src/store/getters.js b/src/store/getters.js index ef52869..2c08864 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -81,5 +81,8 @@ const getters = { getIsLight(state) { return state.isLight }, + getCarCircle(state) { + return state.carCircle + } } export default getters diff --git a/src/store/mutations.js b/src/store/mutations.js index f50590d..e31b945 100644 --- a/src/store/mutations.js +++ b/src/store/mutations.js @@ -130,6 +130,11 @@ const mutations = { let str = JSON.stringify(log); LS.put('isLight', str, 1/8); }, + setCarCircle: (state, log) => { + state.carCircle = log; + let str = JSON.stringify(log); + LS.put('carCircle', str, 1/8); + } } export default mutations; diff --git a/src/store/state.js b/src/store/state.js index 947725a..9ff5218 100644 --- a/src/store/state.js +++ b/src/store/state.js @@ -32,5 +32,6 @@ const state = { levelBtn:LS.get('levelBtn') ? JSON.parse(LS.get('levelBtn')) : [], menu: LS.get('menu') ? JSON.parse(LS.get('menu')) : [], isLight: LS.get('isLight') || false, //浅色背景 + carCircle: LS.get('carCircle') || 0, // 0全部 1车友圈 } export default state; diff --git a/src/views/KeyMediaBrand/index.vue b/src/views/KeyMediaBrand/index.vue index ff2bfad..4f1facf 100644 --- a/src/views/KeyMediaBrand/index.vue +++ b/src/views/KeyMediaBrand/index.vue @@ -11,6 +11,11 @@
+ 返回品牌洞察
@@ -56,7 +61,13 @@
-
+
+ + + + +
+
@@ -66,12 +77,6 @@
-
@@ -90,12 +95,24 @@
+
+ + + + + + + + + +
diff --git a/src/views/KeyMediaBrand/popularEventsList/index.vue b/src/views/KeyMediaBrand/popularEventsList/index.vue new file mode 100644 index 0000000..f5e405b --- /dev/null +++ b/src/views/KeyMediaBrand/popularEventsList/index.vue @@ -0,0 +1,108 @@ + + + + + + + diff --git a/src/views/KeyMediaBrand/spreadTOPmodels/index.vue b/src/views/KeyMediaBrand/spreadTOPmodels/index.vue index 1485ba5..a406e90 100644 --- a/src/views/KeyMediaBrand/spreadTOPmodels/index.vue +++ b/src/views/KeyMediaBrand/spreadTOPmodels/index.vue @@ -37,9 +37,9 @@ export default { this.form.sBrand = this.getBrand.brandname || "奥迪"; this.form.sSource = this.$route.query.source || "抖音"; if(this.form.sSource == '汽车之家') { - this.form.ilimitType = 1; - } else if (this.form.sSource == '懂车帝') { - this.form.ilimitType = 2; + this.form.ilimitType = 1; + } else if (this.form.sSource == '懂车帝' && this.getCarCircle == 1) { + this.form.ilimitType = 2; } this.getData(); }, diff --git a/src/views/KeyMediaBrand/subscribeSeries/index.vue b/src/views/KeyMediaBrand/subscribeSeries/index.vue index aac77e1..9188244 100644 --- a/src/views/KeyMediaBrand/subscribeSeries/index.vue +++ b/src/views/KeyMediaBrand/subscribeSeries/index.vue @@ -37,9 +37,9 @@ export default { this.form.sBrand = this.getBrand.brandname || "奥迪"; this.form.sSource = this.$route.query.source || "抖音"; if(this.form.sSource == '汽车之家') { - this.form.ilimitType = 1; - } else if (this.form.sSource == '懂车帝') { - this.form.ilimitType = 2; + this.form.ilimitType = 1; + } else if (this.form.sSource == '懂车帝' && this.getCarCircle == 1) { + this.form.ilimitType = 2; } this.getData(); }, diff --git a/src/views/KeyMediaBrand/weiboCharacters/index.vue b/src/views/KeyMediaBrand/weiboCharacters/index.vue index 017ea5b..02d0663 100644 --- a/src/views/KeyMediaBrand/weiboCharacters/index.vue +++ b/src/views/KeyMediaBrand/weiboCharacters/index.vue @@ -96,14 +96,14 @@ export default { }, created() { this.form.token = this.getToken; - this.form.sBrand = this.getBrand.brandname || "奥迪"; - this.form.sSource = this.$route.query.source || "抖音"; - if(this.form.sSource == '汽车之家') { - this.form.ilimitType = 1; - } else if (this.form.sSource == '懂车帝') { - this.form.ilimitType = 2; - } - this.getData(); + this.form.sBrand = this.getBrand.brandname || "奥迪"; + this.form.sSource = this.$route.query.source || "抖音"; + if(this.form.sSource == '汽车之家') { + this.form.ilimitType = 1; + } else if (this.form.sSource == '懂车帝' && this.getCarCircle == 1) { + this.form.ilimitType = 2; + } + this.getData(); }, methods: { // 获取后台数据 diff --git a/src/views/KeyMediaBrand/weiboCommunicationTrend/index.vue b/src/views/KeyMediaBrand/weiboCommunicationTrend/index.vue index 1d204dc..9d3977f 100644 --- a/src/views/KeyMediaBrand/weiboCommunicationTrend/index.vue +++ b/src/views/KeyMediaBrand/weiboCommunicationTrend/index.vue @@ -64,9 +64,9 @@ export default { this.form.sBrand = this.getBrand.brandname || "奥迪"; this.form.sSource = this.$route.query.source || "抖音"; if(this.form.sSource == '汽车之家') { - this.form.ilimitType = 1; - } else if (this.form.sSource == '懂车帝') { - this.form.ilimitType = 2; + this.form.ilimitType = 1; + } else if (this.form.sSource == '懂车帝' && this.getCarCircle == 1) { + this.form.ilimitType = 2; } this.getData(); }, diff --git a/src/views/KeyMediaBrand/weiboCommunicationTrendLong/index.vue b/src/views/KeyMediaBrand/weiboCommunicationTrendLong/index.vue new file mode 100644 index 0000000..7f9564f --- /dev/null +++ b/src/views/KeyMediaBrand/weiboCommunicationTrendLong/index.vue @@ -0,0 +1,135 @@ + + + + + + diff --git a/src/views/KeyMediaBrand/weiboCommunicationTrendLong/opt.js b/src/views/KeyMediaBrand/weiboCommunicationTrendLong/opt.js new file mode 100644 index 0000000..e704b3a --- /dev/null +++ b/src/views/KeyMediaBrand/weiboCommunicationTrendLong/opt.js @@ -0,0 +1,116 @@ +/* + * @Author: your name + * @Date: 2021-10-12 15:32:24 + * @LastEditTime: 2021-11-19 19:50:21 + * @LastEditors: Please set LastEditors + * @Description: In User Settings Edit + * @FilePath: /data-show/src/views/BrandInsight/weiboVolumeTrend/opt.js + */ +import * as echarts from "echarts"; +import { bigNumberTransform } from "@/utils/gol/dataTool" +export default function createOpt(dx = [], ds = [], hotIndex = []) { + let mark = []; + hotIndex.forEach(ele => { + let obj = { + name: 'Max', + xAxis: ele, yAxis: ds[ele], + symbol: 'pin', + symbolSize: 16, + symbolOffset: [0, '-70%'], + } + mark.push(obj) + }) + return { + grid: { + top: 16, + left: 16, + right: "5%", + bottom: 10, + 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, + }, + axisLabel: { + formatter: (value) => { + let rex = "00:00:00"; + let isCont = false; + let str = value; + for(let i = 0;i { + let str = bigNumberTransform(value); + return str; + } + }, + splitLine: { + lineStyle: { + type: "dashed", // y轴分割线类型 + color: "#012b4b", + }, + }, + }, + series: [ + { + data: ds, + type: 'line', + color: '#546fc5', + areaStyle: {normal: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ + offset: 0, + color: '#546fc5' + }, { + offset: 1, + color: 'rgba(0,0,0,0)' + }]), + }}, + markPoint: { + data: mark, + } + } + ] + }; +} diff --git a/src/views/KeyMediaBrand/weiboCommunicationTrendLongStoken/index.vue b/src/views/KeyMediaBrand/weiboCommunicationTrendLongStoken/index.vue new file mode 100644 index 0000000..4100783 --- /dev/null +++ b/src/views/KeyMediaBrand/weiboCommunicationTrendLongStoken/index.vue @@ -0,0 +1,38 @@ + + + + + + diff --git a/src/views/KeyMediaBrand/weiboContentTOPVolume/index.vue b/src/views/KeyMediaBrand/weiboContentTOPVolume/index.vue index 8d04f48..e473808 100644 --- a/src/views/KeyMediaBrand/weiboContentTOPVolume/index.vue +++ b/src/views/KeyMediaBrand/weiboContentTOPVolume/index.vue @@ -45,9 +45,9 @@ export default { this.form.sBrand = this.getBrand.brandname || "奥迪"; this.form.sSource = this.$route.query.source || "抖音"; if(this.form.sSource == '汽车之家') { - this.form.ilimitType = 1; - } else if (this.form.sSource == '懂车帝') { - this.form.ilimitType = 2; + this.form.ilimitType = 1; + } else if (this.form.sSource == '懂车帝' && this.getCarCircle == 1) { + this.form.ilimitType = 2; } this.getData(); }, diff --git a/src/views/KeyMediaBrand/weiboContentType/index.vue b/src/views/KeyMediaBrand/weiboContentType/index.vue index fc324b7..b50ea46 100644 --- a/src/views/KeyMediaBrand/weiboContentType/index.vue +++ b/src/views/KeyMediaBrand/weiboContentType/index.vue @@ -74,9 +74,9 @@ export default { this.form.sBrand = this.getBrand.brandname || "奥迪"; this.form.sSource = this.$route.query.source || "抖音"; if(this.form.sSource == '汽车之家') { - this.form.ilimitType = 1; - } else if (this.form.sSource == '懂车帝') { - this.form.ilimitType = 2; + this.form.ilimitType = 1; + } else if (this.form.sSource == '懂车帝' && this.getCarCircle == 1) { + this.form.ilimitType = 2; } this.getData(); }, diff --git a/src/views/KeyMediaBrand/weiboUserActiveArea/index.vue b/src/views/KeyMediaBrand/weiboUserActiveArea/index.vue index 5983110..35c1665 100644 --- a/src/views/KeyMediaBrand/weiboUserActiveArea/index.vue +++ b/src/views/KeyMediaBrand/weiboUserActiveArea/index.vue @@ -8,7 +8,7 @@ --> + + diff --git a/src/views/KeyMediaSeries/popularEventsList/index.vue b/src/views/KeyMediaSeries/popularEventsList/index.vue new file mode 100644 index 0000000..0d14ca2 --- /dev/null +++ b/src/views/KeyMediaSeries/popularEventsList/index.vue @@ -0,0 +1,109 @@ + + + + + + + diff --git a/src/views/KeyMediaSeries/weiboCharacters/index.vue b/src/views/KeyMediaSeries/weiboCharacters/index.vue new file mode 100644 index 0000000..45b4b9c --- /dev/null +++ b/src/views/KeyMediaSeries/weiboCharacters/index.vue @@ -0,0 +1,193 @@ + + + + + + + diff --git a/src/views/KeyMediaSeries/weiboCharacters/opt.js b/src/views/KeyMediaSeries/weiboCharacters/opt.js new file mode 100644 index 0000000..47ea3e0 --- /dev/null +++ b/src/views/KeyMediaSeries/weiboCharacters/opt.js @@ -0,0 +1,72 @@ +/* + * @Author: your name + * @Date: 2021-10-09 09:49:50 + * @LastEditTime: 2021-10-28 13:07:24 + * @LastEditors: Please set LastEditors + * @Description: In User Settings Edit + * @FilePath: /data-show/src/views/Index/userPortrait/opt.js + */ +import * as echarts from "echarts"; +// let colors = ['#3373CC', '#CC9D12', '#54BF93','#f15c80', '#e4d354', '#8085e8', '#8d4653', '#91e8e1','#f7a35c','#90ed7d'] +function createData(ds = [], colors) { + let arr = []; + ds.map((ele, index) => { + let obj = { + value: ele.Value, + name: ele.Key, + itemStyle: { + color: colors[index] + } + } + arr.push(obj) + }) + return arr; +} +export default function createOpt(ds = [], color = []) { + const data = createData(ds, color); + return { + series: [ + { + name: 'Access From0', + type: 'pie', + radius: ['65%', '80%'], + avoidLabelOverlap: false, + label: { + show: false, + position: 'center', + lineHeight: 36 + }, + emphasis: { + label: { + show: true, + fontSize: '20', + color: "#ffff", + fontWeight: 'bold', + formatter: function (p) { + return `${p.data.name}\n${p.percent}%\n${p.data.value}` + } + } + }, + labelLine: { + show: false + }, + data: data + }, + { + name: 'Access From1', + type: 'pie', + radius: ['86%', '94%'], + avoidLabelOverlap: false, + label: { + show: false, + position: 'center' + }, + labelLine: { + show: false + }, + center: ['50%', '50%'],//边框位置 + data: data + } + ] + } +} diff --git a/src/views/KeyMediaSeries/weiboCharactersStoken/index.vue b/src/views/KeyMediaSeries/weiboCharactersStoken/index.vue new file mode 100644 index 0000000..5cac297 --- /dev/null +++ b/src/views/KeyMediaSeries/weiboCharactersStoken/index.vue @@ -0,0 +1,73 @@ + + + + + + + diff --git a/src/views/KeyMediaSeries/weiboCommunicationTrend/index.vue b/src/views/KeyMediaSeries/weiboCommunicationTrend/index.vue new file mode 100644 index 0000000..5bec2d8 --- /dev/null +++ b/src/views/KeyMediaSeries/weiboCommunicationTrend/index.vue @@ -0,0 +1,136 @@ + + + + + + diff --git a/src/views/KeyMediaSeries/weiboCommunicationTrend/opt.js b/src/views/KeyMediaSeries/weiboCommunicationTrend/opt.js new file mode 100644 index 0000000..e704b3a --- /dev/null +++ b/src/views/KeyMediaSeries/weiboCommunicationTrend/opt.js @@ -0,0 +1,116 @@ +/* + * @Author: your name + * @Date: 2021-10-12 15:32:24 + * @LastEditTime: 2021-11-19 19:50:21 + * @LastEditors: Please set LastEditors + * @Description: In User Settings Edit + * @FilePath: /data-show/src/views/BrandInsight/weiboVolumeTrend/opt.js + */ +import * as echarts from "echarts"; +import { bigNumberTransform } from "@/utils/gol/dataTool" +export default function createOpt(dx = [], ds = [], hotIndex = []) { + let mark = []; + hotIndex.forEach(ele => { + let obj = { + name: 'Max', + xAxis: ele, yAxis: ds[ele], + symbol: 'pin', + symbolSize: 16, + symbolOffset: [0, '-70%'], + } + mark.push(obj) + }) + return { + grid: { + top: 16, + left: 16, + right: "5%", + bottom: 10, + 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, + }, + axisLabel: { + formatter: (value) => { + let rex = "00:00:00"; + let isCont = false; + let str = value; + for(let i = 0;i { + let str = bigNumberTransform(value); + return str; + } + }, + splitLine: { + lineStyle: { + type: "dashed", // y轴分割线类型 + color: "#012b4b", + }, + }, + }, + series: [ + { + data: ds, + type: 'line', + color: '#546fc5', + areaStyle: {normal: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ + offset: 0, + color: '#546fc5' + }, { + offset: 1, + color: 'rgba(0,0,0,0)' + }]), + }}, + markPoint: { + data: mark, + } + } + ] + }; +} diff --git a/src/views/KeyMediaSeries/weiboCommunicationTrendLong/index.vue b/src/views/KeyMediaSeries/weiboCommunicationTrendLong/index.vue new file mode 100644 index 0000000..339576a --- /dev/null +++ b/src/views/KeyMediaSeries/weiboCommunicationTrendLong/index.vue @@ -0,0 +1,137 @@ + + + + + + diff --git a/src/views/KeyMediaSeries/weiboCommunicationTrendLong/opt.js b/src/views/KeyMediaSeries/weiboCommunicationTrendLong/opt.js new file mode 100644 index 0000000..e704b3a --- /dev/null +++ b/src/views/KeyMediaSeries/weiboCommunicationTrendLong/opt.js @@ -0,0 +1,116 @@ +/* + * @Author: your name + * @Date: 2021-10-12 15:32:24 + * @LastEditTime: 2021-11-19 19:50:21 + * @LastEditors: Please set LastEditors + * @Description: In User Settings Edit + * @FilePath: /data-show/src/views/BrandInsight/weiboVolumeTrend/opt.js + */ +import * as echarts from "echarts"; +import { bigNumberTransform } from "@/utils/gol/dataTool" +export default function createOpt(dx = [], ds = [], hotIndex = []) { + let mark = []; + hotIndex.forEach(ele => { + let obj = { + name: 'Max', + xAxis: ele, yAxis: ds[ele], + symbol: 'pin', + symbolSize: 16, + symbolOffset: [0, '-70%'], + } + mark.push(obj) + }) + return { + grid: { + top: 16, + left: 16, + right: "5%", + bottom: 10, + 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, + }, + axisLabel: { + formatter: (value) => { + let rex = "00:00:00"; + let isCont = false; + let str = value; + for(let i = 0;i { + let str = bigNumberTransform(value); + return str; + } + }, + splitLine: { + lineStyle: { + type: "dashed", // y轴分割线类型 + color: "#012b4b", + }, + }, + }, + series: [ + { + data: ds, + type: 'line', + color: '#546fc5', + areaStyle: {normal: { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ + offset: 0, + color: '#546fc5' + }, { + offset: 1, + color: 'rgba(0,0,0,0)' + }]), + }}, + markPoint: { + data: mark, + } + } + ] + }; +} diff --git a/src/views/KeyMediaSeries/weiboCommunicationTrendLongStoken/index.vue b/src/views/KeyMediaSeries/weiboCommunicationTrendLongStoken/index.vue new file mode 100644 index 0000000..4100783 --- /dev/null +++ b/src/views/KeyMediaSeries/weiboCommunicationTrendLongStoken/index.vue @@ -0,0 +1,38 @@ + + + + + + diff --git a/src/views/KeyMediaSeries/weiboCommunicationTrendStoken/index.vue b/src/views/KeyMediaSeries/weiboCommunicationTrendStoken/index.vue new file mode 100644 index 0000000..551000b --- /dev/null +++ b/src/views/KeyMediaSeries/weiboCommunicationTrendStoken/index.vue @@ -0,0 +1,38 @@ + + + + + + diff --git a/src/views/KeyMediaSeries/weiboContentTOPVolume/index.vue b/src/views/KeyMediaSeries/weiboContentTOPVolume/index.vue new file mode 100644 index 0000000..629f9ff --- /dev/null +++ b/src/views/KeyMediaSeries/weiboContentTOPVolume/index.vue @@ -0,0 +1,118 @@ + + + + + + diff --git a/src/views/KeyMediaSeries/weiboContentTOPVolume/opt.js b/src/views/KeyMediaSeries/weiboContentTOPVolume/opt.js new file mode 100644 index 0000000..6d88a66 --- /dev/null +++ b/src/views/KeyMediaSeries/weiboContentTOPVolume/opt.js @@ -0,0 +1,81 @@ +/* + * @Author: your name + * @Date: 2021-10-14 16:05:12 + * @LastEditTime: 2021-11-04 17:05:41 + * @LastEditors: Please set LastEditors + * @Description: In User Settings Edit + * @FilePath: /data-show/src/views/WeiboDetails/weiboContentTOPVolume/opt.js + * startAngle: 180, + */ +import * as echarts from "echarts"; +export default function createOpt(name, color, num, maxVal) { + return { + tooltip: { + backgroundColor: "#08182F", + color: "#fff", + borderColor: "#3373CC", + textStyle: { + color: "#fff", //设置文字颜色 + }, + extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;", + formatter: function(param) { + let value = param.data.value; + let name = param.data.name; + return `${name}
声量:${value}` + } + }, + series: [ + { + name: name, + type: 'gauge', + startAngle: 180, + endAngle: 0, + min: 0, + max: maxVal * 5, + splitNumber: 5, + detail: { show: false, formatter: '{value}%' }, + axisLine: { + show: true, + lineStyle: { + width: 7, + color: [ + [1, new echarts.graphic.LinearGradient(0, 0, 1, 0, [ + { + offset: 0, + color: "#020f1f" + }, + { + offset: 1, + color: color + } + ]) + ] + ] + } + }, + axisLabel: { + distance: -30, + color: "#d8d8d8", + }, + splitLine: { + distance: -6, + length: 12, + lineStyle: { + color: '#d8d8d8', + width: 2 + } + }, + // 刻度线 + axisTick: { + show: true, + length: 15, + lineStyle: { + color: "auto", + width: 5 + } + }, + data: [{ value: num, name: name, title: {show: true, color: color,fontWeight: 'bold'},itemStyle:{color: color}}], + } + ] + }; +} diff --git a/src/views/KeyMediaSeries/weiboContentTOPVolumeStoken/index.vue b/src/views/KeyMediaSeries/weiboContentTOPVolumeStoken/index.vue new file mode 100644 index 0000000..75da131 --- /dev/null +++ b/src/views/KeyMediaSeries/weiboContentTOPVolumeStoken/index.vue @@ -0,0 +1,66 @@ + + + + + + diff --git a/src/views/KeyMediaSeries/weiboContentType/index.vue b/src/views/KeyMediaSeries/weiboContentType/index.vue new file mode 100644 index 0000000..4d2cb89 --- /dev/null +++ b/src/views/KeyMediaSeries/weiboContentType/index.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/src/views/KeyMediaSeries/weiboContentType/opt.js b/src/views/KeyMediaSeries/weiboContentType/opt.js new file mode 100644 index 0000000..9b0df73 --- /dev/null +++ b/src/views/KeyMediaSeries/weiboContentType/opt.js @@ -0,0 +1,72 @@ +/* + * @Author: your name + * @Date: 2021-10-09 09:49:50 + * @LastEditTime: 2021-10-28 13:07:24 + * @LastEditors: Please set LastEditors + * @Description: In User Settings Edit + * @FilePath: /data-show/src/views/Index/userPortrait/opt.js + */ +import * as echarts from "echarts"; +// let colors = ['#3373CC', '#CC9D12', '#54BF93','#f15c80', '#e4d354', '#8085e8', '#8d4653', '#91e8e1','#f7a35c','#90ed7d'] +function createData(ds = [], colors) { + let arr = []; + ds.map((ele, index) => { + let obj = { + value: ele.value, + name: ele.key, + itemStyle: { + color: colors[index] + } + } + arr.push(obj) + }) + return arr; +} +export default function createOpt(ds = [], color = []) { + const data = createData(ds, color); + return { + series: [ + { + name: 'Access From0', + type: 'pie', + radius: ['65%', '80%'], + avoidLabelOverlap: false, + label: { + show: false, + position: 'center', + lineHeight: 36 + }, + emphasis: { + label: { + show: true, + fontSize: '20', + color: "#ffff", + fontWeight: 'bold', + formatter: function (p) { + return `${p.data.name}\n${p.percent}%\n${p.data.value}` + } + } + }, + labelLine: { + show: false + }, + data: data + }, + { + name: 'Access From1', + type: 'pie', + radius: ['86%', '94%'], + avoidLabelOverlap: false, + label: { + show: false, + position: 'center' + }, + labelLine: { + show: false + }, + center: ['50%', '50%'],//边框位置 + data: data + } + ] + } +} diff --git a/src/views/KeyMediaSeries/weiboContentTypeStoken/index.vue b/src/views/KeyMediaSeries/weiboContentTypeStoken/index.vue new file mode 100644 index 0000000..1f12434 --- /dev/null +++ b/src/views/KeyMediaSeries/weiboContentTypeStoken/index.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/src/views/KeyMediaSeries/weiboUserActiveArea/index.vue b/src/views/KeyMediaSeries/weiboUserActiveArea/index.vue new file mode 100644 index 0000000..9644224 --- /dev/null +++ b/src/views/KeyMediaSeries/weiboUserActiveArea/index.vue @@ -0,0 +1,116 @@ + + + + + + diff --git a/src/views/KeyMediaSeries/weiboUserActiveArea/opt1.js b/src/views/KeyMediaSeries/weiboUserActiveArea/opt1.js new file mode 100644 index 0000000..49675b2 --- /dev/null +++ b/src/views/KeyMediaSeries/weiboUserActiveArea/opt1.js @@ -0,0 +1,82 @@ + + +/* + * @Author: your name + * @Date: 2021-10-09 12:38:34 + * @LastEditTime: 2021-10-14 11:48:19 + * @LastEditors: Please set LastEditors + * @Description: In User Settings Edit + * @FilePath: /data-show/src/views/Index/tailInsight/opt.js + */ +import * as echarts from "echarts"; +import { bigNumberTransform } from "@/utils/gol/dataTool" +export default function createOptD1(dx=[],ds=[]) { + return { + grid: { + left: 16, + right: '5%', + bottom: 10, + top: "1%", + containLabel: true + }, + tooltip: { + trigger: "axis", + backgroundColor: "#08182F", + color: "#fff", + borderColor: "#3373CC", + textStyle: { + color: "#fff", //设置文字颜色 + }, + extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;" + }, + xAxis: { + type: 'value', + axisLine: { + show: false, + lineStyle: { + color: "#fff", + }, + }, + axisLabel: { + formatter: (value) => { + let str = bigNumberTransform(value); + return str; + } + }, + splitLine: { + lineStyle: { + type: "dashed", // y轴分割线类型 + color: "#012b4b", + }, + }, + }, + yAxis: { + type: 'category', + data: dx, + axisTick: { + show: false, + }, + axisLine: { + show: false, + lineStyle: { + color: "#fff", + }, + }, + inverse: true + }, + series: [ + { + type: 'bar', + barWidth: 20, + data: ds, + color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [{ + offset: 0, + color: 'rgba(59,106,179,0.4)' + }, { + offset: 1, + color: '#2f68b4' + }]), + } + ] + } +} diff --git a/src/views/KeyMediaSeries/weiboUserActiveArea/opt2.js b/src/views/KeyMediaSeries/weiboUserActiveArea/opt2.js new file mode 100644 index 0000000..c961002 --- /dev/null +++ b/src/views/KeyMediaSeries/weiboUserActiveArea/opt2.js @@ -0,0 +1,94 @@ +/* + * @Author: your name + * @Date: 2021-10-14 11:53:16 + * @LastEditTime: 2021-11-04 17:17:02 + * @LastEditors: Please set LastEditors + * @Description: In User Settings Edit + * @FilePath: /data-show/src/views/WeiboDetails/weiboUserActiveArea/opt2.js + */ + +export default function createOptD2(dm) { + return { + tooltip: { + trigger: "item", + backgroundColor: "#08182F", + color: "#fff", + borderColor: "#3373CC", + textStyle: { + color: "#fff", //设置文字颜色 + }, + extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;" + }, + // geo: { + // show: true, + // map: 'china', + // roam: false,//地图设置不可拖拽,固定的 + // itemStyle: { + // normal: { + // borderWidth: 0, + // shadowColor: 'rgba(0,54,255, 1)', + // shadowBlur: 100 + // } + // } + // }, + visualMap: { + type: 'continuous', + show: false, + min: 0, + max: 2000, + text: ['高', '低'], + orient: 'horizontal', + itemWidth: 15, + itemHeight: 200, + right: 0, + bottom: 30, + inRange: { + color: ['#0393d2', '#75ddff'] + }, + textStyle: { + color: 'white' + } + }, + series: [ + { + name: "微博区域", + type: "map", + mapType: "china", + roam: false, + zoom: 1,//默认地图在容器中显示zoom:1,可根据需求放大缩小地图 + left: 16, + top: 20, + right: 10, + bottom: 10, + selectedMode:'multiple', + colorBy: 'data', + itemStyle: { + areaColor: '#001f5b',//地图区域背景颜色 + borderColor: '#005cf9',//地图边界颜色 + shadowColor: '#005cf9', + emphasis: { + areaColor: '#3066ba',//鼠标滑过区域颜色 + label: { + color: '#fff' + } + } + }, + label: { + normal: { + show: false + }, + }, + + // select: { + // label: { + // show: false + // }, + // itemStyle: { + // areaColor: '#3edffe' + // } + // }, + data: dm + } + ] + } +} diff --git a/src/views/KeyMediaSeries/weiboUserActiveAreaStoken/index.vue b/src/views/KeyMediaSeries/weiboUserActiveAreaStoken/index.vue new file mode 100644 index 0000000..8ef1ae7 --- /dev/null +++ b/src/views/KeyMediaSeries/weiboUserActiveAreaStoken/index.vue @@ -0,0 +1,49 @@ + + + + + + diff --git a/src/views/KeyMediaSeries/weiboWordCloud/index.vue b/src/views/KeyMediaSeries/weiboWordCloud/index.vue new file mode 100644 index 0000000..0a26e43 --- /dev/null +++ b/src/views/KeyMediaSeries/weiboWordCloud/index.vue @@ -0,0 +1,89 @@ + + + + + + \ No newline at end of file diff --git a/src/views/KeyMediaSeries/weiboWordCloud/opt.js b/src/views/KeyMediaSeries/weiboWordCloud/opt.js new file mode 100644 index 0000000..9fd72a6 --- /dev/null +++ b/src/views/KeyMediaSeries/weiboWordCloud/opt.js @@ -0,0 +1,215 @@ +/* + * @Author: your name + * @Date: 2021-10-09 13:35:13 + * @LastEditTime: 2021-10-14 19:14:21 + * @LastEditors: Please set LastEditors + * @Description: In User Settings Edit + * @FilePath: /data-show/src/views/Index/hotDiscussionGraph/opt.js + */ +// import * as echarts from "echarts"; +const dataBJ = [ + [1, 55, 9, 56, 0.46, 18, 6, '良'], + [2, 25, 11, 21, 0.65, 34, 9, '优'], + [3, 56, 7, 63, 0.3, 14, 5, '良'], + [4, 33, 7, 29, 0.33, 16, 6, '优'], + [5, 42, 24, 44, 0.76, 40, 16, '优'], + [6, 82, 58, 90, 1.77, 68, 33, '良'], + [7, 74, 49, 77, 1.46, 48, 27, '良'], + [8, 78, 55, 80, 1.29, 59, 29, '良'], + [9, 267, 216, 280, 4.8, 108, 64, '重度污染'], + // [10, 185, 127, 216, 2.52, 61, 27, '中度污染'], + // [11, 39, 19, 38, 0.57, 31, 15, '优'], + // [12, 41, 11, 40, 0.43, 21, 7, '优'], + // [13, 64, 38, 74, 1.04, 46, 22, '良'], + // [14, 108, 79, 120, 1.7, 75, 41, '轻度污染'], + // [15, 108, 63, 116, 1.48, 44, 26, '轻度污染'], + // [16, 33, 6, 29, 0.34, 13, 5, '优'], + // [17, 94, 66, 110, 1.54, 62, 31, '良'], + // [18, 186, 142, 192, 3.88, 93, 79, '中度污染'], + // [19, 57, 31, 54, 0.96, 32, 14, '良'], + // [20, 22, 8, 17, 0.48, 23, 10, '优'], + // [21, 39, 15, 36, 0.61, 29, 13, '优'], + // [22, 94, 69, 114, 2.08, 73, 39, '良'], + // [23, 99, 73, 110, 2.43, 76, 48, '良'], + // [24, 31, 12, 30, 0.5, 32, 16, '优'], + // [25, 42, 27, 43, 1, 53, 22, '优'], + // [26, 154, 117, 157, 3.05, 92, 58, '中度污染'], + // [27, 234, 185, 230, 4.09, 123, 69, '重度污染'], + // [28, 160, 120, 186, 2.77, 91, 50, '中度污染'], + // [29, 134, 96, 165, 2.76, 83, 41, '轻度污染'], + // [30, 52, 24, 60, 1.03, 50, 21, '良'], + // [31, 46, 5, 49, 0.28, 10, 6, '优'] + ]; + const dataGZ = [ + [1, 26, 37, 27, 1.163, 27, 13, '优'], + [2, 85, 62, 71, 1.195, 60, 8, '良'], + [3, 78, 38, 74, 1.363, 37, 7, '良'], + [4, 21, 21, 36, 0.634, 40, 9, '优'], + [5, 41, 42, 46, 0.915, 81, 13, '优'], + // [6, 56, 52, 69, 1.067, 92, 16, '良'], + // [7, 64, 30, 28, 0.924, 51, 2, '良'], + // [8, 55, 48, 74, 1.236, 75, 26, '良'], + // [9, 76, 85, 113, 1.237, 114, 27, '良'], + // [10, 91, 81, 104, 1.041, 56, 40, '良'], + // [11, 84, 39, 60, 0.964, 25, 11, '良'], + // [12, 64, 51, 101, 0.862, 58, 23, '良'], + // [13, 70, 69, 120, 1.198, 65, 36, '良'], + // [14, 77, 105, 178, 2.549, 64, 16, '良'], + // [15, 109, 68, 87, 0.996, 74, 29, '轻度污染'], + // [16, 73, 68, 97, 0.905, 51, 34, '良'], + // [17, 54, 27, 47, 0.592, 53, 12, '良'], + // [18, 51, 61, 97, 0.811, 65, 19, '良'], + // [19, 91, 71, 121, 1.374, 43, 18, '良'], + // [20, 73, 102, 182, 2.787, 44, 19, '良'], + // [21, 73, 50, 76, 0.717, 31, 20, '良'], + // [22, 84, 94, 140, 2.238, 68, 18, '良'], + // [23, 93, 77, 104, 1.165, 53, 7, '良'], + // [24, 99, 130, 227, 3.97, 55, 15, '良'], + // [25, 146, 84, 139, 1.094, 40, 17, '轻度污染'], + // [26, 113, 108, 137, 1.481, 48, 15, '轻度污染'], + // [27, 81, 48, 62, 1.619, 26, 3, '良'], + // [28, 56, 48, 68, 1.336, 37, 9, '良'], + // [29, 82, 92, 174, 3.29, 0, 13, '良'], + // [30, 106, 116, 188, 3.628, 101, 16, '轻度污染'], + // [31, 118, 50, 0, 1.383, 76, 11, '轻度污染'] + ]; + const dataSH = [ + [1, 91, 45, 125, 0.82, 34, 23, '良'], + [2, 65, 27, 78, 0.86, 45, 29, '良'], + [3, 83, 60, 84, 1.09, 73, 27, '良'], + [4, 109, 81, 121, 1.28, 68, 51, '轻度污染'], + [5, 106, 77, 114, 1.07, 55, 51, '轻度污染'], + // [6, 109, 81, 121, 1.28, 68, 51, '轻度污染'], + // [7, 106, 77, 114, 1.07, 55, 51, '轻度污染'], + // [8, 89, 65, 78, 0.86, 51, 26, '良'], + // [9, 53, 33, 47, 0.64, 50, 17, '良'], + // [10, 80, 55, 80, 1.01, 75, 24, '良'], + // [11, 117, 81, 124, 1.03, 45, 24, '轻度污染'], + // [12, 99, 71, 142, 1.1, 62, 42, '良'], + // [13, 95, 69, 130, 1.28, 74, 50, '良'], + // [14, 116, 87, 131, 1.47, 84, 40, '轻度污染'], + // [15, 108, 80, 121, 1.3, 85, 37, '轻度污染'], + // [16, 134, 83, 167, 1.16, 57, 43, '轻度污染'], + // [17, 79, 43, 107, 1.05, 59, 37, '良'], + // [18, 71, 46, 89, 0.86, 64, 25, '良'], + // [19, 97, 71, 113, 1.17, 88, 31, '良'], + // [20, 84, 57, 91, 0.85, 55, 31, '良'], + // [21, 87, 63, 101, 0.9, 56, 41, '良'], + // [22, 104, 77, 119, 1.09, 73, 48, '轻度污染'], + // [23, 87, 62, 100, 1, 72, 28, '良'], + // [24, 168, 128, 172, 1.49, 97, 56, '中度污染'], + // [25, 65, 45, 51, 0.74, 39, 17, '良'], + // [26, 39, 24, 38, 0.61, 47, 17, '优'], + // [27, 39, 24, 39, 0.59, 50, 19, '优'], + // [28, 93, 68, 96, 1.05, 79, 29, '良'], + // [29, 188, 143, 197, 1.66, 99, 51, '中度污染'], + // [30, 174, 131, 174, 1.55, 108, 50, '中度污染'], + // [31, 187, 143, 201, 1.39, 89, 53, '中度污染'] + ]; +// const schema = [ +// { name: 'date', index: 0, text: '日' }, +// { name: 'AQIindex', index: 1, text: 'AQI指数' }, +// { name: 'PM25', index: 2, text: 'PM2.5' }, +// { name: 'PM10', index: 3, text: 'PM10' }, +// { name: 'CO', index: 4, text: '一氧化碳(CO)' }, +// { name: 'NO2', index: 5, text: '二氧化氮(NO2)' }, +// { name: 'SO2', index: 6, text: '二氧化硫(SO2)' } +// ]; + const itemStyle = { + opacity: 0.8, + shadowBlur: 10, + shadowOffsetX: 0, + shadowOffsetY: 0, + shadowColor: 'rgba(0,0,0,0.3)' + }; +export default function createOpt() { + return { + grid: { + top: "16px", + left: "16px", + right: "16px", + bottom: "16px", + containLabel: true, + }, + tooltip: { + backgroundColor: "#08182F", + color: "#fff", + borderColor: "#3373CC", + textStyle: { + color: "#fff", //设置文字颜色 + }, + extraCssText: "box-shadow: 0px 0px 10px 0px #3373CC;", + formatter: function(param) { + let value = param.value; + return `${value[value.length - 1]}
${value[0]}` + } + }, + xAxis: { + show: false, + type: 'value', + splitLine: { + lineStyle: { + type: 'dashed' + } + } + }, + yAxis: { + show: false, + type: 'value', + splitLine: { + lineStyle: { + type: 'dashed' + } + }, + scale: true + }, + series: [{ + name: '北京', + data: dataBJ, + type: 'scatter', + symbolSize: function (data) { + return data[2] + }, + label: { + show: true, + color: "#FFF", + formatter: function (param) { + return param.data[param.data.length - 1]; + }, + }, + itemStyle: itemStyle + }, { + name: '上海', + data: dataSH, + type: 'scatter', + symbolSize: function (data) { + return data[2] + }, + label: { + show: true, + color: "#FFF", + formatter: function (param) { + return param.data[param.data.length - 1]; + }, + }, + itemStyle: itemStyle + }, + { + name: '广州', + data: dataGZ, + type: 'scatter', + symbolSize: function (data) { + return data[2] + }, + label: { + show: true, + color: "#FFF", + formatter: function (param) { + return param.data[param.data.length - 1]; + }, + }, + itemStyle: itemStyle + } + ] + } +} diff --git a/src/views/KeyMediaSeries/weiboWordCloudStoken/index.vue b/src/views/KeyMediaSeries/weiboWordCloudStoken/index.vue new file mode 100644 index 0000000..66ae020 --- /dev/null +++ b/src/views/KeyMediaSeries/weiboWordCloudStoken/index.vue @@ -0,0 +1,39 @@ + + + + + + \ No newline at end of file diff --git a/src/views/ModelInsight/mlKeyCommunicationPositions/index.vue b/src/views/ModelInsight/mlKeyCommunicationPositions/index.vue index e1c02c8..7f82d6d 100644 --- a/src/views/ModelInsight/mlKeyCommunicationPositions/index.vue +++ b/src/views/ModelInsight/mlKeyCommunicationPositions/index.vue @@ -84,7 +84,12 @@ export default { }); }, goKeyMedia(item) { - console.log(item.label) + this.$router.push({ + path: '/keyMediaSeries', + query: { + source: item.label + } + }) } }, };