prod
lily.zhang 3 years ago
parent 1bf40556c4
commit 7eceb69991

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-08 08:41:57
* @LastEditTime: 2021-10-14 13:45:30
* @LastEditTime: 2021-10-29 14:48:11
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/public/index.html
@ -12,7 +12,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<link rel="icon" href="<%= BASE_URL %>sws_32.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -41,7 +41,7 @@
<span class="s2">{{ sClock }}</span>
<span class="s2">{{ week }}</span>
<img class="m1" src="../../assets/images/Index/ic_ry.png" />
<span class="s3">{{getUser.UserName}}</span>
<span class="s3">{{getUser.UserName|| '您好!'}}</span>
<a-dropdown placement="bottomRight">
<a class="ant-dropdown-link">
<a-icon type="down" />
@ -104,7 +104,10 @@ export default {
handlerType(obj) {
if (obj.key === "marketingAnalysis") {
this.setHeaderType(2);
} else if(obj.key === 'brandInsight' || obj.key === 'modelInsight') {
} else if (
obj.key === "brandInsight" ||
obj.key === "modelInsight"
) {
this.setHeaderType(3);
} else {
this.setHeaderType(1);
@ -143,11 +146,10 @@ export default {
.iH-left {
display: flex;
height: 100%;
width: 430px;
width: 657px;
margin-left: 16px;
justify-content: flex-start;
margin-top: 18px;
width: 400px;
.iH-left-img1 {
width: 24px;
height: 24px;
@ -169,7 +171,7 @@ export default {
.iH-right {
display: flex;
height: 100%;
width: 430px;
width: 657px;
justify-content: flex-end;
margin-right: 16px;
margin-top: 18px;
@ -189,6 +191,7 @@ export default {
font-size: 14px;
color: #ffffff;
margin-left: 8px;
margin-top: 2px;
}
.m1 {
display: inline-block;
@ -204,7 +207,7 @@ export default {
margin-left: 11px;
/deep/ .anticon svg {
font-size: 20px !important;
margin-top: 0px;
margin-top: 2px;
}
}
.selHead {

@ -201,7 +201,7 @@ export default {
margin-left: 16px;
justify-content: flex-start;
margin-top: 18px;
width: 630px;
width: 657px;
.iH-left-img1 {
width: 24px;
height: 24px;
@ -222,7 +222,7 @@ export default {
}
.iH-right {
display: flex;
width: 630px;
width: 657px;
height: 100%;
justify-content: flex-end;
margin-right: 16px;
@ -243,6 +243,7 @@ export default {
font-size: 14px;
color: #ffffff;
margin-left: 8px;
margin-top: 2px;
}
.m1 {
display: inline-block;
@ -258,7 +259,7 @@ export default {
margin-left: 11px;
/deep/ .anticon svg {
font-size: 20px !important;
margin-top: 0px;
margin-top: 2px;
}
}
.selHead {

@ -157,7 +157,7 @@ export default {
margin-left: 16px;
justify-content: flex-start;
margin-top: 18px;
width: 430px;
width: 657px;
.iH-left-img1 {
width: 24px;
height: 24px;
@ -178,7 +178,7 @@ export default {
}
.iH-right {
display: flex;
width: 430px;
width: 657px;
height: 100%;
justify-content: flex-start;
margin-right: 16px;

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-10-13 14:25:26
* @LastEditTime: 2021-10-28 19:51:48
* @LastEditTime: 2021-10-29 12:53:30
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/lycomponents/iLayout/index.vue
@ -31,9 +31,6 @@ export default {
return {
isRouterAlive: true
}
},
created() {
},
methods: {
reload() {

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-12 13:37:50
* @LastEditTime: 2021-10-28 19:34:13
* @LastEditTime: 2021-10-29 12:56:22
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/store/state.js
@ -12,11 +12,11 @@ const state = {
token: sessionStorage.getItem('token') || "",
user: JSON.parse(sessionStorage.getItem('user')) || {},
account: JSON.parse(localStorage.getItem('account')) || {},
commTime: JSON.parse(sessionStorage.getItem('commTime')) || {},
ctime: JSON.parse(sessionStorage.getItem('ctime')) || {},
ctime2: JSON.parse(sessionStorage.getItem('ctime2')) || {},
commTime: JSON.parse(sessionStorage.getItem('commTime')) || { sTimeType: 34 },
ctime: JSON.parse(sessionStorage.getItem('ctime')) || {sTimeType:4,sStartTime:"2021-08-01 00:00:00",sEndTime:"2021-08-31 23:59:59"},
ctime2: JSON.parse(sessionStorage.getItem('ctime2')) || { sTimeType: 34, sStartTime: "", sEndTime: "" },
headerType: sessionStorage.getItem('headerType') || 1,
brand: JSON.parse(sessionStorage.getItem('brand')) || {},
brand: JSON.parse(sessionStorage.getItem('brand')) || {},
model: JSON.parse(sessionStorage.getItem('model')) || {},
}
export default state;

@ -220,3 +220,10 @@
.ant-calendar-disabled-cell .ant-calendar-date {
background-color: #7f7f7f !important;
}
.ant-table-thead > tr > th {
padding: 0.75rem !important;
}
.ant-table-tbody > tr > td {
padding: 0.75rem !important;
}

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-10-21 11:36:36
* @LastEditTime: 2021-10-29 12:01:52
* @LastEditTime: 2021-10-29 12:46:18
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/utils/gol/bubbleWord.js
@ -21,7 +21,6 @@ function bubbleChart(data = [], format = []) {
data.forEach((item) => {
temp.push(item[format[1]]);
});
console.log(data)
maxValue = Math.max.apply(null, temp);
// 气泡颜色数组
let color = [

@ -0,0 +1,64 @@
/*
* @Author: your name
* @Date: 2021-10-29 13:29:26
* @LastEditTime: 2021-10-29 13:29:28
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/utils/gol/dataTool.js
*/
/**
* 大数字转换将大额数字转换为万千万亿等
* @param value 数字值
*/
export function bigNumberTransform (value) {
const newValue = ['', '', '']
let fr = 1000
let num = 3
let text1 = ''
let fm = 1
while (value / fr >= 1) {
fr *= 10
num += 1
// console.log('数字', value / fr, 'num:', num)
}
if (num <= 4) { // 千
newValue[0] = parseInt(value / 1000) + ''
newValue[1] = '千'
} else if (num <= 8) { // 万
text1 = parseInt(num - 4) / 3 > 1 ? '千万' : '万'
// tslint:disable-next-line:no-shadowed-variable
fm = text1 === '万' ? 10000 : 10000000
if (value % fm === 0) {
newValue[0] = parseInt(value / fm) + ''
} else {
newValue[0] = parseFloat(value / fm).toFixed(2) + ''
}
newValue[1] = text1
} else if (num <= 16) { // 亿
text1 = (num - 8) / 3 > 1 ? '千亿' : '亿'
text1 = (num - 8) / 4 > 1 ? '万亿' : text1
text1 = (num - 8) / 7 > 1 ? '千万亿' : text1
// tslint:disable-next-line:no-shadowed-variable
fm = 1
if (text1 === '亿') {
fm = 100000000
} else if (text1 === '千亿') {
fm = 100000000000
} else if (text1 === '万亿') {
fm = 1000000000000
} else if (text1 === '千万亿') {
fm = 1000000000000000
}
if (value % fm === 0) {
newValue[0] = parseInt(value / fm) + ''
} else {
newValue[0] = parseFloat(value / fm).toFixed(2) + ''
}
newValue[1] = text1
}
if (value < 1000) {
newValue[0] = value + ''
newValue[1] = ''
}
return newValue.join('')
}

@ -2,13 +2,13 @@
/*
* @Author: your name
* @Date: 2021-10-09 11:38:06
* @LastEditTime: 2021-10-29 11:56:31
* @LastEditTime: 2021-10-29 15:36:51
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/Index/barometer/opt.js
*/
import * as echarts from "echarts";
import {bigNumberTransform} from "@/utils/gol/dataTool"
let colors = ['#3172ca', '#459c97', '#ab8921']
function createData(ds = []) {
let arr = [];
@ -55,10 +55,10 @@ export default function createOpt(dx = [], ds = []) {
const data = createData(ds);
return {
grid: {
left: '3%',
right: '2%',
bottom: '3%',
top: '22%',
left: 10,
right: 10,
bottom: 10,
top: 46,
containLabel: true
},
dataZoom: [{
@ -82,12 +82,13 @@ export default function createOpt(dx = [], ds = []) {
legend: {
icon: 'roundRect',
textStyle: { //图例文字的样式
color: '#fff'
color: '#fff',
fontSize:10
},
y: 'top',
x: 0,
itemWidth: 12,
itemHeight: 12
y: 10,
x: 10,
itemWidth: 10,
itemHeight: 10
},
xAxis: {
type: 'category',
@ -116,6 +117,12 @@ export default function createOpt(dx = [], ds = []) {
color: "#fff",
},
},
axisLabel: {
formatter: (value) => {
let str = bigNumberTransform(value);
return str;
}
},
splitLine: {
lineStyle: {
type: "dashed", // y轴分割线类型

@ -1,7 +1,7 @@
<!--
* @Author: xw
* @Date: 2021-10-08 16:37:30
* @LastEditTime: 2021-10-26 14:34:06
* @LastEditTime: 2021-10-29 13:55:31
* @LastEditors: Please set LastEditors
* @Description: 传播重点阵地
* @FilePath: /data-show/src/views/Index/key-communication-positions/index.vue
@ -11,10 +11,10 @@
<v-label-div title="传播重点阵地"></v-label-div>
<div class="kcp-inner">
<div class="d1">
<v-ranking v-for="(item,index) in d1" :key="index" :lineShow="index === 0 ? false : true" :num="index + 1" :label="item.label" :val="item.val"></v-ranking>
<v-ranking v-for="(item,index) in d1" :key="index" :lineShow="index === 0 ? false : true" :num="index + 1" :label="item.label|doStr(8)" :val="item.val"></v-ranking>
</div>
<div class="d1" style="margin-left: 14px">
<v-ranking v-for="(item,index) in d2" :key="index" :lineShow="index === 0 ? false : true" :num="5+index + 1" :label="item.label" :val="item.val"></v-ranking>
<v-ranking v-for="(item,index) in d2" :key="index" :lineShow="index === 0 ? false : true" :num="5+index + 1" :label="item.label|doStr(8)" :val="item.val"></v-ranking>
</div>
</div>
</div>

@ -1,7 +1,7 @@
<!--
* @Author: xw
* @Date: 2021-10-08 18:58:00
* @LastEditTime: 2021-10-22 12:14:08
* @LastEditTime: 2021-10-29 14:39:35
* @LastEditors: Please set LastEditors
* @Description: 热销排行
* @FilePath: /data-show/src/views/Index/salesRank/index.vue
@ -9,7 +9,8 @@
<template>
<div class="sr-outter" v-loading="load">
<v-label-div title="热销排行">
<div>
<div class="tis">
<v-pagination :data="pdata" :style="{marginRight: '0.8rem', marginTop: '0.4rem'}" @change="handlerPage"></v-pagination>
<v-tab-group :btns="['品牌', '车型']" @change="handlerTabChange"></v-tab-group>
<a-select v-model="selVal" style="width: 100px;margin-left: 16px" @change="handlerSelect">
<a-select-option v-for="item in selArr" :key="item.key" :value="item.key"> {{item.key}} </a-select-option>
@ -18,7 +19,7 @@
</v-label-div>
<div class="sr-bd">
<v-echarts :opt="opt"></v-echarts>
<v-pagination :data="pdata" :style="{position: 'absolute', right: '2px', bottom: '11px'}" @change="handlerPage"></v-pagination>
</div>
</div>
</template>
@ -110,4 +111,8 @@ export default {
width: 100%;
height: calc(100% - 48px);
}
.tis {
display: flex;
justify-items: flex-end;
}
</style>

@ -2,19 +2,20 @@
/*
* @Author: your name
* @Date: 2021-10-08 19:24:08
* @LastEditTime: 2021-10-21 15:55:06
* @LastEditTime: 2021-10-29 13:46:01
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/Index/salesRank/opt.js
*/
import * as echarts from "echarts";
import { bigNumberTransform } from "@/utils/gol/dataTool";
export default function createOpt(dx, ds) {
return {
grid: {
top: 16,
left: 16,
right: 28,
bottom: 16,
top: 10,
left: 10,
right: 10,
bottom: 10,
containLabel: true,
},
tooltip: {
@ -39,7 +40,7 @@ export default function createOpt(dx, ds) {
xAxis: {
type: "category",
axisLabel :{
interval:0
interval:0,
},
axisTick: {
show: false,
@ -60,6 +61,12 @@ export default function createOpt(dx, ds) {
color: "#FFF",
},
},
axisLabel :{
formatter: (value) => {
let str = bigNumberTransform(value);
return str;
}
},
splitLine: {
lineStyle: {
type: "dashed", // y轴分割线类型

@ -1,85 +1,89 @@
<!--
* @Author: xw
* @Date: 2021-10-09 10:53:21
* @LastEditTime: 2021-10-22 11:59:54
* @LastEditTime: 2021-10-29 14:35:40
* @LastEditors: Please set LastEditors
* @Description: 传播声量TOP10
* @FilePath: /data-show/src/views/Index/spreadTheSound/index.vue
-->
<template>
<div class="st-outter" v-loading="load">
<v-label-div title="传播声量TOP10">
<div>
<v-tab-group :btns="['品牌', '车型']" @change="handlerChange"></v-tab-group>
</div>
</v-label-div>
<div class="st-bd">
<v-echarts :opt="opt"></v-echarts>
<v-pagination :data="pdata" :style="{position: 'absolute', right: '2px', bottom: '2px'}" @change="handlerData"></v-pagination>
</div>
</div>
<div class="st-outter" v-loading="load">
<v-label-div title="传播声量TOP10">
<div class="tis">
<v-pagination :data="pdata" :style="{marginRight: '0.8rem', marginTop: '0.4rem'}" @change="handlerData"></v-pagination>
<v-tab-group :btns="['品牌', '车型']" @change="handlerChange"></v-tab-group>
</div>
</v-label-div>
<div class="st-bd">
<v-echarts :opt="opt"></v-echarts>
</div>
</div>
</template>
<script>
import createOpt from "./opt"
import {getHomeBrandSourceType0528} from "@/api/home"
import createOpt from "./opt";
import { getHomeBrandSourceType0528 } from "@/api/home";
export default {
name: "spread-the-sound",
data() {
return {
load: false,
form: {
sQueryType: 1
},
opt: {},
pdata: []
}
},
created() {
this.getData()
},
methods: {
//
handlerChange(n) {
this.form.sQueryType = n + 1;
this.getData()
name: "spread-the-sound",
data() {
return {
load: false,
form: {
sQueryType: 1,
},
opt: {},
pdata: [],
};
},
//
getData() {
this.load = true;
let obj = Object.assign({}, this.getCommTime, this.form);
getHomeBrandSourceType0528(obj).then(res => {
let data = res.data;
this.pdata = data;
this.load = false;
})
created() {
this.getData();
},
methods: {
//
handlerChange(n) {
this.form.sQueryType = n + 1;
this.getData();
},
//
getData() {
this.load = true;
let obj = Object.assign({}, this.getCommTime, this.form);
getHomeBrandSourceType0528(obj).then((res) => {
let data = res.data;
this.pdata = data;
this.load = false;
});
},
//
handlerData(arr) {
let dx = [];
let ds = [];
arr.forEach((ele) => {
let key = ele.key;
let value = ele.value;
dx.push(key);
ds.push(value);
});
this.opt = createOpt(dx, ds);
},
},
//
handlerData(arr) {
let dx = [];
let ds = [];
arr.forEach(ele => {
let key = ele.key;
let value = ele.value;
dx.push(key);
ds.push(value);
})
this.opt = createOpt(dx,ds);
}
}
};
</script>
<style lang="less" scoped>
.st-outter {
width: 460px;
height: 312px;
border: 2px solid #0f2a4d;
margin-top: 16px;
.st-bd {
position: relative;
width: 100%;
height: calc(100% - 48px);
}
width: 460px;
height: 312px;
border: 2px solid #0f2a4d;
margin-top: 16px;
.st-bd {
position: relative;
width: 100%;
height: calc(100% - 48px);
}
}
.tis {
display: flex;
justify-items: flex-end;
}
</style>

@ -1,14 +1,15 @@
/*
* @Author: your name
* @Date: 2021-10-09 11:01:19
* @LastEditTime: 2021-10-29 11:12:46
* @LastEditTime: 2021-10-29 15:52:04
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /data-show/src/views/Index/spreadTheSound/opt.js
*/
import * as echarts from "echarts";
let colors = ['#CC7733', '#CC9D12','#54BF93','#63AECC','#3373CC', "#c1c487", '#46914a', '#3fbfc5']
import { bigNumberTransform } from "@/utils/gol/dataTool"
let colors = ['rgba(203,118,58,1)', 'rgba(202,156,17,1)', 'rgba(90,203,156,1)', 'rgba(99,173,204,1)', 'rgba(55,113,190,1)', "rgba(138,191,66,1)", 'rgba(181,191,67,1)', 'rgba(203,91,65,1)']
let colors2 = ['rgba(203,118,58,0.6)', 'rgba(202,156,17,0.6)', 'rgba(90,203,156,0.6)', 'rgba(99,173,204,0.6)', 'rgba(55,113,190,0.6)', "rgba(138,191,66,0.6)", 'rgba(181,191,67,0.6)', 'rgba(203,91,65,0.6)']
function createData(ds = []) {
let arr = [];
for (let i = 0; i < ds.length; i++) {
@ -17,35 +18,36 @@ function createData(ds = []) {
let n = arr.findIndex(ele => {
return ele.name === arr1[j].key;
})
if(n === -1) {
if (n === -1) {
let obj =
{
name: arr1[j].key,
type: 'bar',
stack: 'total',
barWidth: 20,
barWidth: 22,
barGap: "-100%",
emphasis: {
focus: 'series'
},
itemStyle:{
normal:{
//柱体的颜色
//右1000表示从正右开始向左渐变
color: function(params){
return new echarts.graphic.LinearGradient(0,0,0,1,[
{
offset:0,
color:params.color
},
{
offset:1,
color:'#000'
}
],false);
}
}
},
itemStyle: {
normal: {
//柱体的颜色
//右1000表示从正右开始向左渐变
color: function () {
return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: colors[j]
},
{
offset: 1,
color: colors2[j]
}
], false);
}
}
},
data: [arr1[j].value]
}
arr.push(obj)
@ -61,9 +63,9 @@ export default function createOpt(dx = [], ds = []) {
return {
grid: {
left: 10,
right: 40,
right: 10,
bottom: 10,
top: 60,
top: 46,
containLabel: true
},
tooltip: {
@ -79,12 +81,13 @@ export default function createOpt(dx = [], ds = []) {
color: colors,
legend: {
textStyle: { //图例文字的样式
color: '#fff'
color: '#fff',
fontSize:10
},
y: 'top',
x: 0,
itemWidth: 12,
itemHeight: 12
y: 10,
x: 10,
itemWidth: 10,
itemHeight: 10,
},
xAxis: {
type: 'category',
@ -107,6 +110,12 @@ export default function createOpt(dx = [], ds = []) {
color: "#fff",
},
},
axisLabel: {
formatter: (value) => {
let str = bigNumberTransform(value);
return str;
}
},
splitLine: {
lineStyle: {
type: "dashed", // y轴分割线类型

@ -1,7 +1,7 @@
<!--
* @Author: xw
* @Date: 2021-10-09 11:56:50
* @LastEditTime: 2021-10-23 09:40:42
* @LastEditTime: 2021-10-29 14:32:06
* @LastEditors: Please set LastEditors
* @Description: 尾翼洞察
* @FilePath: /data-show/src/views/Index/tailInsight/index.vue
@ -10,13 +10,13 @@
<template>
<div class="tl-outter" v-loading="load">
<vLabel-div title="尾翼洞察">
<div>
<div class="tis">
<v-pagination :data="pdata" :style="{marginRight: '0.8rem', marginTop: '0.4rem'}" @change="handlerData"></v-pagination>
<v-tab-group :btns="['品牌', '车型']" @change="handlerChange"></v-tab-group>
</div>
</vLabel-div>
<div class="tl-bd">
<v-echarts :opt="opt"></v-echarts>
<v-pagination :data="pdata" :style="{position: 'absolute', left: '2px', bottom: '3px'}" @change="handlerData"></v-pagination>
</div>
</div>
</template>
@ -86,4 +86,8 @@ export default {
height: calc(100% - 48px);
}
}
.tis {
display: flex;
justify-items: flex-end;
}
</style>

@ -3,17 +3,18 @@
/*
* @Author: your name
* @Date: 2021-10-09 12:38:34
* @LastEditTime: 2021-10-29 10:17:04
* @LastEditTime: 2021-10-29 14:33:26
* @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 createOpt(dy=[],ds=[]) {
return {
grid: {
left: 26,
right: 16,
left: 10,
right: '5%',
bottom: 10,
top: 16,
containLabel: true
@ -36,6 +37,12 @@ export default function createOpt(dy=[],ds=[]) {
color: "#fff",
},
},
axisLabel: {
formatter: (value) => {
let str = bigNumberTransform(value);
return str;
}
},
splitLine: {
lineStyle: {
type: "dashed", // y轴分割线类型

Loading…
Cancel
Save