Files
cattleTransportation/datav/index.html
2025-12-08 15:24:43 +08:00

400 lines
12 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<!--设置是否为缩放模式 -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 新 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" type="text/css" href="https://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.css">
<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="js/jquery.min.js"></script>
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="js/bootstrap.min.js"></script>
<!--echarts JS-->
<script src="js/echarts.min.js"></script>
<!-- 轮播swiper文件 -->
<link rel="stylesheet" type="text/css" href="css/swiper.min.css">
<script src="js/swiper.min.js"></script>
<!--界面样式-->
<script src="js/visual.js"></script>
<script src="js/china.js"></script>
<script src="js/chartMap.js"></script>
<link rel="stylesheet" type="text/css" href="css/visual.css">
</head>
<body class="ksh">
<div id="load">
<div class="load_img"><!-- 加载动画 -->
<img class="jzxz1" src="images/jzxz1.png">
<img class="jzxz2" src="images/jzxz2.png">
</div>
</div>
<div class="head_top">
<div class="head_logo">牛只管理系统</div>
<img class="head_decor" src="images/header.png" alt="标题装饰">
</div>
<div class="visual">
<div class="visual_left">
<div class="visual_box">
<div class="visual_title">
<span>交通流量</span>
<img src="images/ksh33.png">
</div>
<div class="visual_chart" id="main1">
</div>
</div>
<div class="visual_box">
<div class="visual_title">
<span>交通工具流量</span>
<img src="images/ksh33.png">
</div>
<div class="visual_chart" id="main2">
</div>
</div>
<div class="visual_box">
<div class="visual_title">
<span>收费站车流量</span>
<img src="images/ksh33.png">
</div>
<div class="visual_chart sfzcll">
<a>运输方式</a>
<a>客运量</a>
<a>货运量</a>
<div class="sfzcll_pos_box">
<div class="sfzcll_box">
<img class="sfzcll_bkJk" src="images/ksh34.png">
<img class="sfzcll_bkJk" src="images/ksh34.png">
<img class="sfzcll_bkJk" src="images/ksh34.png">
<img class="sfzcll_bkJk" src="images/ksh34.png">
<label><img src="images/ksh35.png">公路运输</label>
<div class="sfzcll_smallBk">
<div class="ygl">
<span>4347.2万</span>
</div>
</div>
<div class="sfzcll_smallBk">
<div class="ygh">
<span>4347.2万</span>
</div>
</div>
<div class="clear"></div>
</div>
<div class="sfzcll_box">
<img class="sfzcll_bkJk" src="images/ksh34.png">
<img class="sfzcll_bkJk" src="images/ksh34.png">
<img class="sfzcll_bkJk" src="images/ksh34.png">
<img class="sfzcll_bkJk" src="images/ksh34.png">
<label><img src="images/ksh35.png">公路运输</label>
<div class="sfzcll_smallBk">
<div class="ygl">
<span>4347.2万</span>
</div>
</div>
<div class="sfzcll_smallBk">
<div class="ygh">
<span>4347.2万</span>
</div>
</div>
<div class="clear"></div>
</div>
<div class="sfzcll_box">
<img class="sfzcll_bkJk" src="images/ksh34.png">
<img class="sfzcll_bkJk" src="images/ksh34.png">
<img class="sfzcll_bkJk" src="images/ksh34.png">
<img class="sfzcll_bkJk" src="images/ksh34.png">
<label><img src="images/ksh35.png">公路运输</label>
<div class="sfzcll_smallBk">
<div class="ygl">
<span>4347.2万</span>
</div>
</div>
<div class="sfzcll_smallBk">
<div class="ygh">
<span>4347.2万</span>
</div>
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>
</div>
<div class="visual_con">
<div class="visual_conTop">
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>采购总额</h3>
<p class="stat-value" data-field="toalProcurementAmount">--</p>
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>销售总额</h3>
<p class="stat-value" data-field="toalSalesAmount">--</p>
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>利润</h3>
<p class="stat-value" data-field="profits">--</p>
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>应收货款</h3>
<p class="stat-value" data-field="accountsReceivable">--</p>
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>未收货款</h3>
<p class="stat-value" data-field="uncollectedPayment">--</p>
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>实收货款</h3>
<p class="stat-value" data-field="actualPayment">--</p>
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>采购头数</h3>
<p class="stat-value" data-field="totalPurchase">--</p>
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>采购单数</h3>
<p class="stat-value" data-field="totalOrder">--</p>
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>销售单数</h3>
<p class="stat-value" data-field="totalSales">--</p>
</div>
</div>
</div>
<div class="visual_conBot">
<img class="visual_conBot_l" src="images/ksh42.png">
<img class="visual_conBot_2" src="images/ksh43.png">
<img class="visual_conBot_3" src="images/ksh44.png">
<img class="visual_conBot_4" src="images/ksh45.png">
<div class="visual_chart" id="main8"></div>
<div class="visual_conBot_bot">
<div class="visualSssf_left">
<h3>今日实时收费</h3>
<a style="display:block">全省数据</a>
<a>大同北</a>
<a>大同南</a>
<a>朔州</a>
<a>吕梁北</a>
<a>吕梁南</a>
<a>太原</a>
<a class="active">晋中</a>
<a>太旧</a>
<a>长治</a>
</div>
<div class="visualSssf_right">
<div class="visualSssf_right_box" id="main5"></div>
<div class="visualSssf_right_box" id="main6"></div>
<div class="visualSssf_right_box" id="main7"></div>
</div>
<div class="clear"></div>
</div>
</div>
</div>
<div class="visual_right">
<div class="visual_box">
<div class="visual_title">
<span>本月发生事件</span>
<img src="images/ksh33.png">
</div>
<div class="swiper-container visual_swiper1 visual_chart">
<div class="swiper-wrapper">
<div class="swiper-slide" id="main3"></div>
<div class="swiper-slide" id="main31"></div>
</div>
</div>
</div>
<div class="visual_box visualSfzsfl">
<div class="visual_title">
<span>收费站收费量</span>
<img src="images/ksh33.png">
</div>
<div class="visual_chart" id="main9">
</div>
<div class="visual_table">
<table>
<tr>
<td>小型车</td>
<td>中型车</td>
<td>大型车</td>
</tr>
<tr>
<td>2486万</td>
<td>2486万</td>
<td>2486万</td>
</tr>
<tr>
<td>2486万</td>
<td>2486万</td>
<td>2486万</td>
</tr>
<tr>
<td>2486万</td>
<td>2486万</td>
<td>2486万</td>
</tr>
<tr>
<td>2486万</td>
<td>2486万</td>
<td>2486万</td>
</tr>
</table>
</div>
</div>
<div class="visual_box">
<div class="visual_title">
<span>收费站收费排行</span>
<img src="images/ksh33.png">
</div>
<div class="swiper-container visual_swiper2 visual_chart">
<div class="swiper-wrapper">
<div class="swiper-slide" id="main4"></div>
<div class="swiper-slide" id="main41"></div>
</div>
</div>
</div>
</div>
<div class="clear"></div>
</div>
<script type="text/javascript">
// 公共接口域名(建议由前端/网关同域反向代理到目标域,避免浏览器 CORS
const API_BASE = '/api';
$(function(){
var a=$('.visualSssf_left a')
for(var i=0;i<a.length;i++){
a[i].index=i;
a[i].onclick=function(){
for(var i=0;i<a.length;i++){
a[i].className=''
}
this.className='active'
}
}
var sfzcllH=$('.sfzcll_box').height()
var sfzcllHtwo=sfzcllH-2
$('.sfzcll_box').css('line-height',sfzcllH+'px')
$('.sfzcll_smallBk>div').css('line-height',sfzcllHtwo+'px')
//删除加载动画
$('#load').fadeOut(1000)
setTimeout(function(){
$('#load').remove()
}
,1100);
// 销售概览数据
const fieldMap = {
toalProcurementAmount: '采购总额',
actualPayment: '实收货款',
profits: '利润',
toalSalesAmount: '销售总额',
accountsReceivable: '应收货款',
totalOrder: '采购单数',
totalPurchase: '采购头数',
totalSales: '销售单数',
uncollectedPayment: '未收货款'
};
const formatNumber = (val) => {
if (val === undefined || val === null || val === '') return '--';
const num = Number(val);
if (Number.isNaN(num)) return val;
if (Math.abs(num) >= 10000) return (num / 10000).toFixed(2) + '万';
return num.toLocaleString();
};
const renderSalesOverview = (payload = {}) => {
$('.stat-value').each(function() {
const field = $(this).data('field');
const value = payload[field];
$(this).text(formatNumber(value));
if (fieldMap[field]) {
$(this).attr('title', fieldMap[field]);
}
});
};
const fetchSalesOverview = () => {
$.ajax({
url: API_BASE + '/salesoverview/list',
method: 'GET',
success: function(res) {
const list = res && (res.data || res.rows || res.result || res.list || res);
const first = Array.isArray(list) ? list[0] : list;
renderSalesOverview(first || {});
},
error: function() {
renderSalesOverview({});
}
});
};
fetchSalesOverview();
})
//交通流量
var myChart1 = echarts.init(document.getElementById('main1'));
myChart1.setOption(option1);
//交通工具流量
var myChart2 = echarts.init(document.getElementById('main2'));
myChart2.setOption(option2);
//本月发生事件
var myChart3 = echarts.init(document.getElementById('main3'));
myChart3.setOption(option3);
var myChart31 = echarts.init(document.getElementById('main31'));
myChart31.setOption(option31);
var mySwiper1 = new Swiper('.visual_swiper1', {
autoplay: true,//可选选项,自动滑动
speed:800,//可选选项,滑动速度
autoplay: {
delay: 5000,//1秒切换一次
},
})
//收费站收费排行
var myChart4 = echarts.init(document.getElementById('main4'));
myChart4.setOption(option4);
var myChart41 = echarts.init(document.getElementById('main41'));
myChart41.setOption(option41);
var mySwiper2 = new Swiper('.visual_swiper2', {
autoplay: true,//可选选项,自动滑动
direction : 'vertical',//可选选项,滑动方向
speed:2000,//可选选项,滑动速度
})
//今日实时收费
var myChart5 = echarts.init(document.getElementById('main5'));
myChart5.setOption(option5);
var myChart6 = echarts.init(document.getElementById('main6'));
myChart6.setOption(option6);
var myChart7 = echarts.init(document.getElementById('main7'));
myChart7.setOption(option7);
//中间地图
var myChart8 = echarts.init(document.getElementById('main8'));
myChart8.setOption(option8);
//收费站收费量
var myChart9 = echarts.init(document.getElementById('main9'));
myChart9.setOption(option9);
</script>
</body>
</html>