2024-10-22 15:20:50 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<div class="cont">
|
|
|
|
|
|
<div class="top_">
|
|
|
|
|
|
<div>车辆检测数据大屏</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<!-- -->
|
|
|
|
|
|
<div class="content_">
|
|
|
|
|
|
<div class="c_left">
|
|
|
|
|
|
<div class="six_box">
|
|
|
|
|
|
<div class="s_title">
|
|
|
|
|
|
成交金额(已收款)
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="echaets_box">
|
2024-10-22 18:10:10 +08:00
|
|
|
|
<div id="khly" style="width: 400px; height: 267px;"></div>
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="six_box">
|
|
|
|
|
|
<div class="s_title">
|
2024-10-22 18:10:10 +08:00
|
|
|
|
已收款金额(按车型)
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="dis-t">
|
|
|
|
|
|
|
|
|
|
|
|
<div class="lan-you">
|
2024-10-23 14:26:16 +08:00
|
|
|
|
<div class="yi" :class="{'er' : qhindex == index}" v-for="(item,index) in zilist" :key="index"
|
|
|
|
|
|
@click="gbindex(index,item.unit)"> {{ item.text }}
|
|
|
|
|
|
</div>
|
2024-10-22 18:10:10 +08:00
|
|
|
|
</div>
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="echaets_box">
|
2024-10-22 18:10:10 +08:00
|
|
|
|
<div id="yskje" style="width: 400px; height: 267px;"></div>
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="six_box">
|
|
|
|
|
|
<div class="s_title">
|
2024-10-22 18:10:10 +08:00
|
|
|
|
数量统计(按车型)
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="dis-t">
|
|
|
|
|
|
|
|
|
|
|
|
<div class="lan-you">
|
2024-10-23 14:26:16 +08:00
|
|
|
|
<div class="yi" :class="{'er' : qhindex1 == index}" v-for="(item,index) in zilist" :key="index"
|
|
|
|
|
|
@click="gbindex1(index,item.unit)"> {{ item.text }}
|
|
|
|
|
|
</div>
|
2024-10-22 18:10:10 +08:00
|
|
|
|
</div>
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="echaets_box">
|
2024-10-22 18:10:10 +08:00
|
|
|
|
<div id="sltj" style="width: 400px; height: 267px;"></div>
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="c_cont">
|
|
|
|
|
|
<div class="tab_">
|
2024-10-23 14:26:16 +08:00
|
|
|
|
<!-- <div @click="countOrAmount()" class="tab_buttom tab_acvit">数量</div>-->
|
|
|
|
|
|
<!-- <div @click="countOrAmount()" class="tab_buttom">金额</div>-->
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="tab_bt">
|
2024-10-23 14:26:16 +08:00
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-model="value1"
|
|
|
|
|
|
type="daterange"
|
|
|
|
|
|
@change="handleChange"
|
|
|
|
|
|
value-format="yyyy-MM-dd"
|
|
|
|
|
|
range-separator="至"
|
|
|
|
|
|
start-placeholder="开始日期"
|
|
|
|
|
|
end-placeholder="结束日期">
|
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="five_box">
|
|
|
|
|
|
<div class="f_box">
|
|
|
|
|
|
<div class="img_left">
|
|
|
|
|
|
<!-- <img src="./imgs/1.png" style="width: 60px;height: 60px">-->
|
|
|
|
|
|
订单数量
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<div class="f_size">{{ data2.allNum || 0 }}</div>
|
|
|
|
|
|
<!-- <div class="f_size">2</div>-->
|
|
|
|
|
|
<!-- <div class="f_num">{{ statusTickets[3].value }}</div>-->
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-10-23 14:26:16 +08:00
|
|
|
|
<div class="f_box">
|
|
|
|
|
|
<div class="img_left">
|
|
|
|
|
|
<!-- <img src="./imgs/2.png" style="width: 60px;height: 60px">-->
|
|
|
|
|
|
完成数量
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<div class="f_size">{{ data2.ywcNum || 0 }}</div>
|
|
|
|
|
|
<!-- <div class="f_num">{{ statusTickets[4].value }}</div>-->
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="f_box">
|
|
|
|
|
|
<div class="img_left">
|
2024-10-23 14:26:16 +08:00
|
|
|
|
<!-- <img src="./imgs/3.png" style="width: 60px;height: 60px">-->
|
|
|
|
|
|
检测中数量
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
2024-10-23 14:26:16 +08:00
|
|
|
|
<div class="f_size">{{ data2.jxzNum || 0 }}</div>
|
|
|
|
|
|
<!-- <div class="f_num">{{ statusTickets[0].value }}</div>-->
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-10-23 14:26:16 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="five_box">
|
2024-10-22 15:20:50 +08:00
|
|
|
|
<div class="f_box">
|
|
|
|
|
|
<div class="img_left">
|
2024-10-23 14:26:16 +08:00
|
|
|
|
<!-- <img src="./imgs/1.png" style="width: 60px;height: 60px">-->
|
|
|
|
|
|
公示价格
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
2024-10-23 14:26:16 +08:00
|
|
|
|
<!-- <div class="f_size">1</div>-->
|
|
|
|
|
|
<div class="f_size">{{ data1.gsAmount || 0 }}</div>
|
|
|
|
|
|
<!-- <div class="f_num">{{ statusTickets[3].value }}</div>-->
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="f_box">
|
|
|
|
|
|
<div class="img_left">
|
2024-10-23 14:26:16 +08:00
|
|
|
|
<!-- <img src="./imgs/2.png" style="width: 60px;height: 60px">-->
|
|
|
|
|
|
应收款
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
2024-10-23 14:26:16 +08:00
|
|
|
|
<div class="f_size">{{ data1.ysAmount || 0 }}</div>
|
|
|
|
|
|
<!-- <div class="f_num">{{ statusTickets[4].value }}</div>-->
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="f_box">
|
|
|
|
|
|
<div class="img_left">
|
2024-10-23 14:26:16 +08:00
|
|
|
|
已收款
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
2024-10-23 14:26:16 +08:00
|
|
|
|
<div class="f_size">{{ data1.yjsAmount || 0 }}</div>
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="f_box">
|
|
|
|
|
|
<div class="img_left">
|
2024-10-23 14:26:16 +08:00
|
|
|
|
<!-- <img src="./imgs/4.png" style="width: 60px;height: 60px">-->
|
|
|
|
|
|
待收款
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
2024-10-23 14:26:16 +08:00
|
|
|
|
<div class="f_size">{{ data1.ysAmount - data1.yjsAmount || 0 }}</div>
|
|
|
|
|
|
<!-- <div class="f_num">{{ statusTickets[1].value }}</div>-->
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="co_title">
|
2024-10-23 14:26:16 +08:00
|
|
|
|
客户来源统计
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="list_long">
|
|
|
|
|
|
<div class="long_title">
|
|
|
|
|
|
<div class="l_one">客户来源</div>
|
|
|
|
|
|
<div class="l_two">数量</div>
|
|
|
|
|
|
<div class="l_three">公示金额</div>
|
|
|
|
|
|
<!-- <div class="l_four">创建时间</div>-->
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="ot_vox">
|
|
|
|
|
|
<div class="long_box" v-for="(item,index) in data3" :key="index">
|
|
|
|
|
|
<div class="l_one">{{ item.remark || '' }}</div>
|
|
|
|
|
|
<div class="l_two">{{ item.theNum || '' }}</div>
|
|
|
|
|
|
<div class="l_three">{{ item.theAmount || '' }}</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="c_right">
|
|
|
|
|
|
<div class="six_box">
|
|
|
|
|
|
<div class="s_title">
|
2024-10-22 18:10:10 +08:00
|
|
|
|
检测数量
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="echaets_box">
|
2024-10-22 18:10:10 +08:00
|
|
|
|
<div id="jcsl" style="width: 400px; height: 267px;"></div>
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="six_box">
|
|
|
|
|
|
<div class="s_title">
|
2024-10-22 18:10:10 +08:00
|
|
|
|
检测合格率
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="dis-t">
|
|
|
|
|
|
|
|
|
|
|
|
<div class="lan-you">
|
2024-10-23 14:26:16 +08:00
|
|
|
|
<div class="yi" :class="{'er' : qhindex2 == index}" v-for="(item,index) in zilist" :key="index"
|
|
|
|
|
|
@click="gbindex2(index,item.unit)"> {{ item.text }}
|
|
|
|
|
|
</div>
|
2024-10-22 18:10:10 +08:00
|
|
|
|
</div>
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="echaets_box">
|
2024-10-22 18:10:10 +08:00
|
|
|
|
<div id="jchgl" style="width: 400px; height: 267px;"></div>
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="six_box">
|
|
|
|
|
|
<div class="s_title">
|
2024-10-23 14:26:16 +08:00
|
|
|
|
检测商品统计
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="echaets_box">
|
|
|
|
|
|
<div id="jcsptj" style="width: 400px; height: 267px;"></div>
|
2024-10-22 15:20:50 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
import * as echarts from 'echarts';
|
|
|
|
|
|
import * as jcBigScreen from '@/views/inspection/screen/api/jcBigScreen';
|
2024-10-23 14:26:16 +08:00
|
|
|
|
import {
|
|
|
|
|
|
chartInfoNum,
|
|
|
|
|
|
chartLineInspectionAmount,
|
|
|
|
|
|
getfive1,
|
|
|
|
|
|
getfive2,
|
|
|
|
|
|
getfive3, hotGoodsList
|
|
|
|
|
|
} from "@/views/inspection/screen/api/jcBigScreen";
|
2024-10-22 15:20:50 +08:00
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
|
name: 'Index',
|
|
|
|
|
|
components: {},
|
|
|
|
|
|
data() {
|
2024-10-23 14:26:16 +08:00
|
|
|
|
const formatDate = (date) => {
|
|
|
|
|
|
return date.toISOString().split('T')[0];
|
|
|
|
|
|
};
|
2024-10-22 15:20:50 +08:00
|
|
|
|
return {
|
2024-10-22 18:10:10 +08:00
|
|
|
|
Amount: [],
|
2024-10-23 14:26:16 +08:00
|
|
|
|
unit: 'day',
|
|
|
|
|
|
unit1: 'day',
|
|
|
|
|
|
unit2: 'day',
|
|
|
|
|
|
data2: '',
|
|
|
|
|
|
data1: '',
|
|
|
|
|
|
data3: '',
|
2024-10-22 18:10:10 +08:00
|
|
|
|
chartData1: {},
|
2024-10-23 14:26:16 +08:00
|
|
|
|
params: {
|
|
|
|
|
|
unit: this.unit,
|
2024-10-22 18:10:10 +08:00
|
|
|
|
},
|
2024-10-23 14:26:16 +08:00
|
|
|
|
// value1: [new Date(), new Date()],
|
|
|
|
|
|
value1: [formatDate(new Date()), formatDate(new Date())], // 格式化日期
|
|
|
|
|
|
qhindex: 0,
|
|
|
|
|
|
qhindex1: 0,
|
|
|
|
|
|
qhindex2: 0,
|
|
|
|
|
|
zilist: [
|
|
|
|
|
|
{text: '日', unit: 'day'},
|
|
|
|
|
|
{text: '周', unit: 'week'},
|
|
|
|
|
|
{text: '月', unit: 'month'},
|
|
|
|
|
|
{text: '年', unit: 'year'},
|
2024-10-22 15:20:50 +08:00
|
|
|
|
|
2024-10-22 18:10:10 +08:00
|
|
|
|
],
|
2024-10-22 15:20:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
created() {
|
2024-10-22 18:10:10 +08:00
|
|
|
|
this.customerSource()
|
|
|
|
|
|
this.getServerData1()
|
|
|
|
|
|
this.chartInfoNum()
|
|
|
|
|
|
this.chartLineInspectionNum()
|
|
|
|
|
|
this.chartInfoRatio()
|
2024-10-23 14:26:16 +08:00
|
|
|
|
this.getfive2()
|
|
|
|
|
|
this.getfive1()
|
|
|
|
|
|
this.getfive3()
|
|
|
|
|
|
this.getProduct()
|
2024-10-22 15:20:50 +08:00
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
mounted() {
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
2024-10-23 14:26:16 +08:00
|
|
|
|
handleChange() {
|
|
|
|
|
|
console.log('选择的时间', this.value1)
|
|
|
|
|
|
this.getfive2()
|
|
|
|
|
|
this.getfive1()
|
|
|
|
|
|
},
|
|
|
|
|
|
gbindex(index, unit) {
|
2024-10-22 18:10:10 +08:00
|
|
|
|
this.qhindex = index
|
|
|
|
|
|
this.unit = unit
|
|
|
|
|
|
this.getServerData1()
|
|
|
|
|
|
},
|
2024-10-23 14:26:16 +08:00
|
|
|
|
gbindex1(index, unit) {
|
|
|
|
|
|
console.log('22', unit);
|
2024-10-22 18:10:10 +08:00
|
|
|
|
this.qhindex1 = index
|
|
|
|
|
|
this.unit1 = unit
|
|
|
|
|
|
this.chartInfoNum()
|
|
|
|
|
|
},
|
2024-10-23 14:26:16 +08:00
|
|
|
|
gbindex2(index, unit) {
|
2024-10-22 18:10:10 +08:00
|
|
|
|
console.log('33');
|
|
|
|
|
|
this.qhindex2 = index
|
|
|
|
|
|
this.unit2 = unit
|
|
|
|
|
|
this.chartInfoRatio()
|
|
|
|
|
|
},
|
2024-10-22 15:20:50 +08:00
|
|
|
|
|
2024-10-22 18:10:10 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 已收款金额
|
|
|
|
|
|
* @returns {Promise<void>}
|
|
|
|
|
|
*/
|
|
|
|
|
|
async getServerData1() {
|
|
|
|
|
|
const params = {
|
2024-10-23 14:26:16 +08:00
|
|
|
|
unit: this.unit,
|
2024-10-22 18:10:10 +08:00
|
|
|
|
}
|
|
|
|
|
|
let res = await jcBigScreen.getServerData1(params)
|
2024-10-23 14:26:16 +08:00
|
|
|
|
console.log('已收款金额', res)
|
2024-10-22 18:10:10 +08:00
|
|
|
|
res.data.series.forEach(item => {
|
|
|
|
|
|
item.type = 'bar'
|
|
|
|
|
|
})
|
|
|
|
|
|
var chartDom = document.getElementById('yskje');
|
|
|
|
|
|
var myChart = echarts.init(chartDom);
|
|
|
|
|
|
var option;
|
|
|
|
|
|
option = {
|
|
|
|
|
|
xAxis: {
|
|
|
|
|
|
type: 'category',
|
|
|
|
|
|
data: res.data.categories
|
|
|
|
|
|
},
|
|
|
|
|
|
yAxis: {
|
|
|
|
|
|
type: 'value'
|
|
|
|
|
|
},
|
|
|
|
|
|
series: res.data.series
|
|
|
|
|
|
};
|
|
|
|
|
|
option && myChart.setOption(option);
|
|
|
|
|
|
},
|
2024-10-23 14:26:16 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 检测商品统计
|
|
|
|
|
|
* @returns {Promise<void>}
|
|
|
|
|
|
*/
|
|
|
|
|
|
async getProduct() {
|
|
|
|
|
|
let res = await jcBigScreen.hotGoodsList()
|
|
|
|
|
|
console.log('检测商品统计', res)
|
|
|
|
|
|
res.data.forEach(item => {
|
|
|
|
|
|
item.name = item.goodsName
|
|
|
|
|
|
item.value = item.salesNum
|
|
|
|
|
|
})
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
var chartDom = document.getElementById('jcsptj');
|
|
|
|
|
|
var myChart = echarts.init(chartDom);
|
|
|
|
|
|
var option;
|
|
|
|
|
|
option = {
|
|
|
|
|
|
title: {
|
|
|
|
|
|
// text: 'Referer of a Website',
|
|
|
|
|
|
// subtext: 'Fake Data',
|
|
|
|
|
|
left: 'center'
|
|
|
|
|
|
},
|
|
|
|
|
|
tooltip: {
|
|
|
|
|
|
trigger: 'item'
|
|
|
|
|
|
},
|
|
|
|
|
|
legend: {
|
|
|
|
|
|
orient: 'vertical',
|
|
|
|
|
|
left: 'left'
|
|
|
|
|
|
},
|
|
|
|
|
|
series: [
|
|
|
|
|
|
{
|
|
|
|
|
|
// name: 'Access From',
|
|
|
|
|
|
type: 'pie',
|
|
|
|
|
|
radius: '50%',
|
|
|
|
|
|
data: res.data,
|
|
|
|
|
|
emphasis: {
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
shadowBlur: 10,
|
|
|
|
|
|
shadowOffsetX: 0,
|
|
|
|
|
|
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
|
|
|
|
|
};
|
|
|
|
|
|
option && myChart.setOption(option);
|
|
|
|
|
|
}, 2000)
|
|
|
|
|
|
|
|
|
|
|
|
},
|
2024-10-22 18:10:10 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 数量统计
|
|
|
|
|
|
* @returns {Promise<void>}
|
|
|
|
|
|
*/
|
|
|
|
|
|
async chartInfoNum() {
|
|
|
|
|
|
const params = {
|
2024-10-23 14:26:16 +08:00
|
|
|
|
unit: this.unit1,
|
2024-10-22 18:10:10 +08:00
|
|
|
|
}
|
|
|
|
|
|
let res = await jcBigScreen.chartInfoNum(params)
|
2024-10-23 14:26:16 +08:00
|
|
|
|
console.log('数量统计', res)
|
2024-10-22 18:10:10 +08:00
|
|
|
|
res.data.series.forEach(item => {
|
|
|
|
|
|
item.type = 'bar'
|
|
|
|
|
|
})
|
|
|
|
|
|
var chartDom = document.getElementById('sltj');
|
|
|
|
|
|
var myChart = echarts.init(chartDom);
|
|
|
|
|
|
var option;
|
|
|
|
|
|
option = {
|
|
|
|
|
|
xAxis: {
|
|
|
|
|
|
type: 'category',
|
|
|
|
|
|
data: res.data.categories
|
|
|
|
|
|
},
|
|
|
|
|
|
yAxis: {
|
|
|
|
|
|
type: 'value'
|
|
|
|
|
|
},
|
|
|
|
|
|
series: res.data.series
|
|
|
|
|
|
};
|
|
|
|
|
|
option && myChart.setOption(option);
|
|
|
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 检测合格率
|
|
|
|
|
|
* @returns {Promise<void>}
|
|
|
|
|
|
*/
|
|
|
|
|
|
async chartInfoRatio() {
|
|
|
|
|
|
const params = {
|
2024-10-23 14:26:16 +08:00
|
|
|
|
unit: this.unit2,
|
2024-10-22 18:10:10 +08:00
|
|
|
|
}
|
|
|
|
|
|
let res = await jcBigScreen.chartInfoRatio(params)
|
2024-10-23 14:26:16 +08:00
|
|
|
|
console.log('检测合格率', res)
|
2024-10-22 18:10:10 +08:00
|
|
|
|
res.data.series.forEach(item => {
|
|
|
|
|
|
item.type = 'bar'
|
|
|
|
|
|
})
|
|
|
|
|
|
var chartDom = document.getElementById('jchgl');
|
|
|
|
|
|
var myChart = echarts.init(chartDom);
|
|
|
|
|
|
var option;
|
|
|
|
|
|
option = {
|
|
|
|
|
|
xAxis: {
|
|
|
|
|
|
type: 'category',
|
|
|
|
|
|
data: res.data.categories
|
|
|
|
|
|
},
|
|
|
|
|
|
yAxis: {
|
|
|
|
|
|
type: 'value'
|
|
|
|
|
|
},
|
|
|
|
|
|
series: res.data.series
|
|
|
|
|
|
};
|
|
|
|
|
|
option && myChart.setOption(option);
|
|
|
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 检测数量
|
|
|
|
|
|
* @returns {Promise<void>}
|
|
|
|
|
|
*/
|
|
|
|
|
|
async chartLineInspectionNum() {
|
|
|
|
|
|
const params = {
|
2024-10-23 14:26:16 +08:00
|
|
|
|
unit: this.unit,
|
2024-10-22 18:10:10 +08:00
|
|
|
|
}
|
|
|
|
|
|
let res = await jcBigScreen.chartLineInspectionNum(params)
|
2024-10-23 14:26:16 +08:00
|
|
|
|
console.log('检测数量', res)
|
2024-10-22 18:10:10 +08:00
|
|
|
|
res.data.series.forEach(item => {
|
|
|
|
|
|
item.type = 'bar'
|
|
|
|
|
|
})
|
|
|
|
|
|
const names = res.data.series.map(item => item.name)
|
|
|
|
|
|
var chartDom = document.getElementById('jcsl');
|
|
|
|
|
|
var myChart = echarts.init(chartDom);
|
|
|
|
|
|
var option;
|
|
|
|
|
|
option = {
|
|
|
|
|
|
title: {
|
|
|
|
|
|
text: '最近七天'
|
|
|
|
|
|
},
|
|
|
|
|
|
tooltip: {
|
|
|
|
|
|
trigger: 'axis'
|
|
|
|
|
|
},
|
|
|
|
|
|
legend: {
|
|
|
|
|
|
data: names
|
|
|
|
|
|
},
|
|
|
|
|
|
grid: {
|
|
|
|
|
|
left: '3%',
|
|
|
|
|
|
right: '4%',
|
|
|
|
|
|
bottom: '3%',
|
|
|
|
|
|
containLabel: true
|
|
|
|
|
|
},
|
|
|
|
|
|
toolbox: {
|
|
|
|
|
|
feature: {
|
|
|
|
|
|
saveAsImage: {}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
xAxis: {
|
|
|
|
|
|
type: 'category',
|
|
|
|
|
|
boundaryGap: false,
|
|
|
|
|
|
data: res.data.categories
|
|
|
|
|
|
},
|
|
|
|
|
|
yAxis: {
|
|
|
|
|
|
type: 'value'
|
|
|
|
|
|
},
|
|
|
|
|
|
series: res.data.series
|
|
|
|
|
|
};
|
|
|
|
|
|
option && myChart.setOption(option);
|
|
|
|
|
|
},
|
2024-10-22 15:20:50 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 客户来源分析饼图
|
|
|
|
|
|
*/
|
|
|
|
|
|
async customerSource() {
|
2024-10-22 18:10:10 +08:00
|
|
|
|
const params = {
|
2024-10-23 14:26:16 +08:00
|
|
|
|
unit: this.unit,
|
2024-10-22 18:10:10 +08:00
|
|
|
|
}
|
|
|
|
|
|
const res = await jcBigScreen.chartLineInspectionAmount(params);
|
|
|
|
|
|
res.data.series.forEach(item => {
|
2024-10-25 18:19:03 +08:00
|
|
|
|
// console.log( '475'+ JSON.stringify(res.data.series[0].data))
|
2024-10-22 18:10:10 +08:00
|
|
|
|
item.type = 'line'
|
|
|
|
|
|
})
|
|
|
|
|
|
var chartDom = document.getElementById('khly');
|
|
|
|
|
|
var myChart = echarts.init(chartDom);
|
|
|
|
|
|
var option;
|
2024-10-25 18:19:03 +08:00
|
|
|
|
|
|
|
|
|
|
const color = ['#31daf0', '#3367e6', '#d9458d', ];
|
2024-10-22 18:10:10 +08:00
|
|
|
|
option = {
|
2024-10-25 18:19:03 +08:00
|
|
|
|
legend: {
|
|
|
|
|
|
top: 'bottom'
|
2024-10-22 18:10:10 +08:00
|
|
|
|
},
|
2024-10-25 18:19:03 +08:00
|
|
|
|
toolbox: {
|
|
|
|
|
|
show: true,
|
|
|
|
|
|
feature: {
|
|
|
|
|
|
mark: { show: true },
|
|
|
|
|
|
dataView: { show: true, readOnly: false },
|
|
|
|
|
|
restore: { show: traue },
|
|
|
|
|
|
saveAsImage: { show: true }
|
|
|
|
|
|
}
|
2024-10-22 18:10:10 +08:00
|
|
|
|
},
|
2024-10-25 18:19:03 +08:00
|
|
|
|
series: [
|
|
|
|
|
|
{
|
|
|
|
|
|
name: 'Nightingale Chart',
|
|
|
|
|
|
type: 'pie',
|
|
|
|
|
|
radius: [20, 50],
|
|
|
|
|
|
center: ['50%', '50%'],
|
|
|
|
|
|
roseType: 'area',
|
|
|
|
|
|
itemStyle: {
|
|
|
|
|
|
borderRadius: 8
|
|
|
|
|
|
},
|
|
|
|
|
|
data: [
|
|
|
|
|
|
{ value: 40, name: 'rose 1' },
|
|
|
|
|
|
{ value: 38, name: 'rose 2' },
|
|
|
|
|
|
{ value: 32, name: 'rose 3' }
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
]
|
2024-10-22 18:10:10 +08:00
|
|
|
|
};
|
2024-10-25 18:19:03 +08:00
|
|
|
|
|
2024-10-22 18:10:10 +08:00
|
|
|
|
option && myChart.setOption(option);
|
2024-10-22 15:20:50 +08:00
|
|
|
|
},
|
2024-10-23 14:26:16 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 订单数量
|
|
|
|
|
|
*/
|
|
|
|
|
|
async getfive2() {
|
|
|
|
|
|
let data2 = {
|
|
|
|
|
|
startTime: this.value1[0],
|
|
|
|
|
|
endTime: this.value1[1]
|
|
|
|
|
|
}
|
|
|
|
|
|
console.log('订单数量等参数', data2)
|
|
|
|
|
|
const res = await getfive2(data2)
|
|
|
|
|
|
console.log('订单数量等', res.data)
|
|
|
|
|
|
this.data2 = res.data
|
|
|
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 营业额统计
|
|
|
|
|
|
* @returns {Promise<void>}
|
|
|
|
|
|
*/
|
|
|
|
|
|
async getfive1() {
|
|
|
|
|
|
let data1 = {
|
|
|
|
|
|
startTime: this.value1[0],
|
|
|
|
|
|
endTime: this.value1[1]
|
|
|
|
|
|
}
|
|
|
|
|
|
const res = await getfive1(data1)
|
|
|
|
|
|
console.log('营业额统计', res.data)
|
|
|
|
|
|
this.data1 = res.data
|
|
|
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 客户来源
|
|
|
|
|
|
* @returns {Promise<void>}
|
|
|
|
|
|
*/
|
|
|
|
|
|
async getfive3() {
|
|
|
|
|
|
const res = await getfive3()
|
|
|
|
|
|
console.log('客户来源', res.data)
|
|
|
|
|
|
this.data3 = res.data
|
|
|
|
|
|
}
|
2024-10-22 15:20:50 +08:00
|
|
|
|
}
|
2024-10-22 18:10:10 +08:00
|
|
|
|
|
2024-10-22 15:20:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
|
.cont {
|
|
|
|
|
|
background: #020F32;
|
|
|
|
|
|
//background: url("./imgs/back.png") no-repeat;
|
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 100vh;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.top_ {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 86px;
|
|
|
|
|
|
background: url("./imgs/top.png") no-repeat;
|
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
font-size: 50px;
|
|
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
margin-bottom: 15px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.content_ {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
//align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
}
|
2024-10-23 14:26:16 +08:00
|
|
|
|
|
|
|
|
|
|
.dis-t {
|
2024-10-22 18:10:10 +08:00
|
|
|
|
width: 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
margin: 10px auto;
|
|
|
|
|
|
}
|
2024-10-23 14:26:16 +08:00
|
|
|
|
|
|
|
|
|
|
.lan-you {
|
2024-10-22 18:10:10 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
2024-10-22 15:20:50 +08:00
|
|
|
|
|
|
|
|
|
|
.c_left {
|
|
|
|
|
|
width: 25%;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.c_cont {
|
|
|
|
|
|
width: 50%;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.tab_ {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
font-size: 18px;
|
|
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
|
margin: 15px auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.yb_title {
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
font-size: 18px;
|
|
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
|
margin: 15px auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.tab_bt {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
border-bottom: 4px solid #0174F6;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
padding-bottom: 20px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.tab_buttom {
|
|
|
|
|
|
width: 120px;
|
|
|
|
|
|
height: 32px;
|
|
|
|
|
|
|
|
|
|
|
|
border: 1px solid #0174F6;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
yb_title {
|
|
|
|
|
|
font-size: 16px;
|
|
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.numlist {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.num_box {
|
|
|
|
|
|
width: 38px;
|
|
|
|
|
|
height: 50px;
|
|
|
|
|
|
border-radius: 0px 0px 0px 0px;
|
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
|
font-size: 32px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
background: url("./imgs/numbcak.png") no-repeat;
|
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
|
margin: 0px 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.yb_ {
|
|
|
|
|
|
width: 50%;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.tab_acvit {
|
|
|
|
|
|
background: #0174F6 !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.five_box {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-around;
|
|
|
|
|
|
margin: 30px auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.f_size {
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.f_num {
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
font-size: 24px;
|
|
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.img_left {
|
|
|
|
|
|
width: 60px;
|
|
|
|
|
|
height: 60px;
|
|
|
|
|
|
margin-right: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.f_box {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.co_title {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 32px;
|
|
|
|
|
|
background: url("./imgs/c_title.png") no-repeat;
|
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
font-size: 20px;
|
|
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
padding-left: 40px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.s_title {
|
|
|
|
|
|
width: 90%;
|
|
|
|
|
|
height: 32px;
|
|
|
|
|
|
background: url("./imgs/title.png") no-repeat;
|
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
|
font-size: 20px;
|
|
|
|
|
|
color: #FFFFFF;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
padding-left: 40px;
|
|
|
|
|
|
margin: 0px auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.echaets_box {
|
|
|
|
|
|
width: 90%;
|
|
|
|
|
|
height: 267px;
|
|
|
|
|
|
margin: 0px auto;
|
|
|
|
|
|
border-bottom: 1px solid #0174F6;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.list_long {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 563px;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.l_one {
|
|
|
|
|
|
width: 30%;
|
|
|
|
|
|
text-align: left;
|
|
|
|
|
|
font-size: 18px;
|
|
|
|
|
|
color: rgba(255, 255, 255, 0.7);
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
padding-left: 35px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.l_two {
|
|
|
|
|
|
width: 20%;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
font-size: 18px;
|
|
|
|
|
|
color: rgba(255, 255, 255, 0.7);
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.l_three {
|
|
|
|
|
|
width: 20%;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
font-size: 18px;
|
|
|
|
|
|
color: rgba(255, 255, 255, 0.7);
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.l_four {
|
|
|
|
|
|
width: 30%;
|
|
|
|
|
|
text-align: right;
|
|
|
|
|
|
font-size: 18px;
|
|
|
|
|
|
color: rgba(255, 255, 255, 0.7);
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
padding-right: 35px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.long_title {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 58px;
|
|
|
|
|
|
background: rgba(1, 116, 246, 0.1);
|
|
|
|
|
|
background: url("./imgs/c_list.png") no-repeat;
|
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
margin: 10px auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.ot_vox {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 500px;
|
|
|
|
|
|
overflow: auto;
|
|
|
|
|
|
scrollbar-width: none;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.long_box {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 58px;
|
|
|
|
|
|
background: rgba(1, 116, 246, 0.1);
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
margin: 10px auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.six_box {
|
|
|
|
|
|
margin-bottom: 15px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.c_right {
|
|
|
|
|
|
width: 25%;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
</style>
|