Files
cattleTransportation/datav/index.html

397 lines
12 KiB
HTML
Raw Normal View History

2025-12-08 15:24:43 +08:00
<!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>
2025-12-10 17:19:01 +08:00
2025-12-08 15:24:43 +08:00
<div class="head_top">
2025-12-10 17:19:01 +08:00
<!-- <img class="decor_side decor_left" src="images/ksh42.png" alt=""> -->
<img class="decor_bar decor_left_outer" src="images/ksh31.png" alt="">
2025-12-08 15:24:43 +08:00
<div class="head_logo">牛只管理系统</div>
2025-12-10 17:19:01 +08:00
<img class="decor_bar decor_right_outer" src="images/ksh32.png" alt="">
<!-- <img class="decor_side decor_right" src="images/ksh42.png" alt=""> -->
2025-12-08 15:24:43 +08:00
<img class="head_decor" src="images/header.png" alt="标题装饰">
</div>
2025-12-10 17:19:01 +08:00
2025-12-08 15:24:43 +08:00
<div class="visual">
<div class="visual_left">
<div class="visual_box">
<div class="visual_title">
2025-12-10 17:19:01 +08:00
<span>订单列表</span>
2025-12-08 15:24:43 +08:00
<img src="images/ksh33.png">
</div>
2025-12-10 17:19:01 +08:00
<div class="visual_chart order_list_container">
<div class="order_list_header">
<span>订单号</span>
<span>金额</span>
<span>状态</span>
</div>
<div class="order_list_content">
</div>
2025-12-08 15:24:43 +08:00
</div>
</div>
<div class="visual_box">
<div class="visual_title">
2025-12-10 17:19:01 +08:00
<span>牛只概况</span>
2025-12-08 15:24:43 +08:00
<img src="images/ksh33.png">
</div>
2025-12-10 17:19:01 +08:00
<div class="visual_chart" id="cattle_overview_container">
2025-12-08 15:24:43 +08:00
</div>
</div>
<div class="visual_box">
<div class="visual_title">
2025-12-10 17:19:01 +08:00
<span>出肉率</span>
2025-12-08 15:24:43 +08:00
<img src="images/ksh33.png">
</div>
2025-12-10 17:19:01 +08:00
<div class="visual_chart" id="meat_yield_chart"></div>
2025-12-08 15:24:43 +08:00
</div>
2025-12-10 17:19:01 +08:00
2025-12-08 15:24:43 +08:00
</div>
<div class="visual_con">
<div class="visual_conTop">
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>采购总额</h3>
2025-12-10 17:19:01 +08:00
<p class="stat-value" data-field="toalProcurementAmount">423536.29元</p>
2025-12-08 15:24:43 +08:00
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>销售总额</h3>
2025-12-10 17:19:01 +08:00
<p class="stat-value" data-field="toalSalesAmount">417832.33元</p>
2025-12-08 15:24:43 +08:00
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>利润</h3>
2025-12-10 17:19:01 +08:00
<p class="stat-value" data-field="profits">31525元</p>
2025-12-08 15:24:43 +08:00
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>应收货款</h3>
2025-12-10 17:19:01 +08:00
<p class="stat-value" data-field="accountsReceivable">215215.25元</p>
2025-12-08 15:24:43 +08:00
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>未收货款</h3>
2025-12-10 17:19:01 +08:00
<p class="stat-value" data-field="uncollectedPayment">564231.321元</p>
2025-12-08 15:24:43 +08:00
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>实收货款</h3>
2025-12-10 17:19:01 +08:00
<p class="stat-value" data-field="actualPayment">335421.56元</p>
2025-12-08 15:24:43 +08:00
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>采购头数</h3>
2025-12-10 17:19:01 +08:00
<p class="stat-value" data-field="totalPurchase">2200头</p>
2025-12-08 15:24:43 +08:00
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>采购单数</h3>
2025-12-10 17:19:01 +08:00
<p class="stat-value" data-field="totalOrder">35车</p>
2025-12-08 15:24:43 +08:00
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>销售单数</h3>
2025-12-10 17:19:01 +08:00
<p class="stat-value" data-field="totalSales">55单</p>
2025-12-08 15:24:43 +08:00
</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>
2025-12-10 17:19:01 +08:00
</div>
<div class="visual_conStatus">
<div class="status_item">
<div class="status_label">未完成</div>
<div class="status_value_group">
<span class="stat-value" data-field="uncompletedOrders">--</span>
<span class="status_unit"></span>
2025-12-08 15:24:43 +08:00
</div>
2025-12-10 17:19:01 +08:00
<div class="status_base">
<div class="status_ring"></div>
<div class="status_light"></div>
</div>
</div>
<div class="status_item">
<div class="status_label">未到岸</div>
<div class="status_value_group">
<span class="stat-value" data-field="notArrivedOrders">--</span>
<span class="status_unit"></span>
</div>
<div class="status_base">
<div class="status_ring"></div>
<div class="status_light"></div>
</div>
</div>
<div class="status_item">
<div class="status_label">未售完</div>
<div class="status_value_group">
<span class="stat-value" data-field="unsoldOrders">--</span>
<span class="status_unit"></span>
</div>
<div class="status_base">
<div class="status_ring"></div>
<div class="status_light"></div>
</div>
</div>
<div class="status_item">
<div class="status_label">已完成</div>
<div class="status_value_group">
<span class="stat-value" data-field="completedOrders">--</span>
<span class="status_unit"></span>
</div>
<div class="status_base">
<div class="status_ring"></div>
<div class="status_light"></div>
2025-12-08 15:24:43 +08:00
</div>
</div>
</div>
</div>
<div class="visual_right">
<div class="visual_box">
<div class="visual_title">
2025-12-10 17:19:01 +08:00
<span>牛只行情</span>
2025-12-08 15:24:43 +08:00
<img src="images/ksh33.png">
</div>
2025-12-10 17:19:01 +08:00
<div class="visual_chart market_list_container">
<div class="market_list_header">
<span>序号</span>
<span>省份</span>
<span>地区</span>
<span>品种</span>
<span>单价(元/斤)</span>
</div>
<div class="market_list_content">
2025-12-08 15:24:43 +08:00
</div>
</div>
</div>
2025-12-10 17:19:01 +08:00
<div class="visual_box">
2025-12-08 15:24:43 +08:00
<div class="visual_title">
2025-12-10 17:19:01 +08:00
<span>屠宰场概况</span>
2025-12-08 15:24:43 +08:00
<img src="images/ksh33.png">
</div>
2025-12-10 17:19:01 +08:00
<div class="visual_chart" id="slaughterhouse_overview_container"></div>
2025-12-08 15:24:43 +08:00
</div>
<div class="visual_box">
<div class="visual_title">
2025-12-10 17:19:01 +08:00
<span>合计总数</span>
2025-12-08 15:24:43 +08:00
<img src="images/ksh33.png">
</div>
2025-12-10 17:19:01 +08:00
<div class="visual_chart total_layout">
<div class="total_row">
<div class="total_icon_wrapper">
<span class="glyphicon glyphicon-list-alt"></span>
</div>
<div class="total_text_wrapper">
<div class="total_label">合计总数</div>
<div class="total_data">
<span class="stat-value" data-field="totalCattle">--</span>
<span class="total_unit"></span>
</div>
</div>
</div>
<div class="total_row">
<div class="total_icon_wrapper">
<span class="glyphicon glyphicon-home"></span>
</div>
<div class="total_text_wrapper">
<div class="total_label">在栏总数</div>
<div class="total_data">
<span class="stat-value" data-field="deliveredCattle">--</span>
<span class="total_unit"></span>
</div>
</div>
</div>
<div class="total_row">
<div class="total_icon_wrapper">
<span class="glyphicon glyphicon-send"></span>
</div>
<div class="total_text_wrapper">
<div class="total_label">在途总数</div>
<div class="total_data">
<span class="stat-value" data-field="inTransitCattle">--</span>
<span class="total_unit"></span>
</div>
</div>
2025-12-08 15:24:43 +08:00
</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'
}
}
2025-12-10 17:19:01 +08:00
/*
2025-12-08 15:24:43 +08:00
var sfzcllH=$('.sfzcll_box').height()
var sfzcllHtwo=sfzcllH-2
$('.sfzcll_box').css('line-height',sfzcllH+'px')
$('.sfzcll_smallBk>div').css('line-height',sfzcllHtwo+'px')
2025-12-10 17:19:01 +08:00
*/
2025-12-08 15:24:43 +08:00
//删除加载动画
$('#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;
2025-12-10 17:19:01 +08:00
const data = first || {};
// 模拟测试数据(如果接口未返回)
if (data.toalProcurementAmount === undefined) data.toalProcurementAmount = 423536.29;
if (data.toalSalesAmount === undefined) data.toalSalesAmount = 417832.33;
if (data.profits === undefined) data.profits = 31525;
if (data.accountsReceivable === undefined) data.accountsReceivable = 215215.25;
if (data.uncollectedPayment === undefined) data.uncollectedPayment = 564231.32;
if (data.actualPayment === undefined) data.actualPayment = 335421.56;
if (data.totalPurchase === undefined) data.totalPurchase = 2200;
if (data.totalOrder === undefined) data.totalOrder = 35;
if (data.totalSales === undefined) data.totalSales = 55;
// 模拟合计总数数据
if (data.totalCattle === undefined) data.totalCattle = 12580;
if (data.inTransitCattle === undefined) data.inTransitCattle = 1250;
if (data.deliveredCattle === undefined) data.deliveredCattle = 11330;
// 模拟订单状态数据
if (data.uncompletedOrders === undefined) data.uncompletedOrders = 28;
if (data.notArrivedOrders === undefined) data.notArrivedOrders = 28;
if (data.unsoldOrders === undefined) data.unsoldOrders = 6;
if (data.completedOrders === undefined) data.completedOrders = 22;
renderSalesOverview(data);
2025-12-08 15:24:43 +08:00
},
error: function() {
2025-12-10 17:19:01 +08:00
const data = {};
// 模拟测试数据
data.toalProcurementAmount = 423536.29;
data.toalSalesAmount = 417832.33;
data.profits = 31525;
data.accountsReceivable = 215215.25;
data.uncollectedPayment = 564231.32;
data.actualPayment = 335421.56;
data.totalPurchase = 2200;
data.totalOrder = 35;
data.totalSales = 55;
// 模拟合计总数数据
data.totalCattle = 12580;
data.inTransitCattle = 1250;
data.deliveredCattle = 11330;
// 模拟订单状态数据
data.uncompletedOrders = 28;
data.notArrivedOrders = 28;
data.unsoldOrders = 6;
data.completedOrders = 22;
renderSalesOverview(data);
2025-12-08 15:24:43 +08:00
}
});
};
fetchSalesOverview();
})
2025-12-10 17:19:01 +08:00
2025-12-08 15:24:43 +08:00
//中间地图
var myChart8 = echarts.init(document.getElementById('main8'));
myChart8.setOption(option8);
2025-12-10 17:19:01 +08:00
2025-12-08 15:24:43 +08:00
</script>
</body>
</html>