Files
cattleTransportation/datav/index.html
2025-12-10 17:19:01 +08:00

397 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">
<!-- <img class="decor_side decor_left" src="images/ksh42.png" alt=""> -->
<img class="decor_bar decor_left_outer" src="images/ksh31.png" alt="">
<div class="head_logo">牛只管理系统</div>
<img class="decor_bar decor_right_outer" src="images/ksh32.png" alt="">
<!-- <img class="decor_side decor_right" src="images/ksh42.png" alt=""> -->
<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 order_list_container">
<div class="order_list_header">
<span>订单号</span>
<span>金额</span>
<span>状态</span>
</div>
<div class="order_list_content">
</div>
</div>
</div>
<div class="visual_box">
<div class="visual_title">
<span>牛只概况</span>
<img src="images/ksh33.png">
</div>
<div class="visual_chart" id="cattle_overview_container">
</div>
</div>
<div class="visual_box">
<div class="visual_title">
<span>出肉率</span>
<img src="images/ksh33.png">
</div>
<div class="visual_chart" id="meat_yield_chart"></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">423536.29元</p>
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>销售总额</h3>
<p class="stat-value" data-field="toalSalesAmount">417832.33元</p>
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>利润</h3>
<p class="stat-value" data-field="profits">31525元</p>
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>应收货款</h3>
<p class="stat-value" data-field="accountsReceivable">215215.25元</p>
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>未收货款</h3>
<p class="stat-value" data-field="uncollectedPayment">564231.321元</p>
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>实收货款</h3>
<p class="stat-value" data-field="actualPayment">335421.56元</p>
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>采购头数</h3>
<p class="stat-value" data-field="totalPurchase">2200头</p>
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>采购单数</h3>
<p class="stat-value" data-field="totalOrder">35车</p>
</div>
</div>
<div class="visual_conTop_box visual_conTop1">
<div class="stat-card">
<h3>销售单数</h3>
<p class="stat-value" data-field="totalSales">55单</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>
<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>
</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="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>
</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="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">
</div>
</div>
</div>
<div class="visual_box">
<div class="visual_title">
<span>屠宰场概况</span>
<img src="images/ksh33.png">
</div>
<div class="visual_chart" id="slaughterhouse_overview_container"></div>
</div>
<div class="visual_box">
<div class="visual_title">
<span>合计总数</span>
<img src="images/ksh33.png">
</div>
<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>
</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;
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);
},
error: function() {
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);
}
});
};
fetchSalesOverview();
})
//中间地图
var myChart8 = echarts.init(document.getElementById('main8'));
myChart8.setOption(option8);
</script>
</body>
</html>