From d2469cf65f097ce6d6faa6699ea252adcd3e954c Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期二, 14 四月 2026 16:54:51 +0800
Subject: [PATCH] 新增 质量每日运行状态分析 报表
---
WebTM/layuiadmin/Scripts/webConfig.js | 4
WebTM/views/质量管理/质量报表/QC_DailyRunStateReport.html | 555 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 557 insertions(+), 2 deletions(-)
diff --git a/WebTM/layuiadmin/Scripts/webConfig.js b/WebTM/layuiadmin/Scripts/webConfig.js
index 1f201e8..eeb62cd 100644
--- a/WebTM/layuiadmin/Scripts/webConfig.js
+++ b/WebTM/layuiadmin/Scripts/webConfig.js
@@ -4,8 +4,8 @@
//var WEBURL = "http://localhost/API/"; //棰滄檽鍐涙湰鍦伴厤缃�
//var WEBURL = "http://localhost:8082/API/"; //鏉滆春鏈湴閰嶇疆
//var WEBURL = "http://localhost:81/API/" //缈佹稕娑涙湰鍦伴厤缃�
- var WEBURL = "http://localhost:8082/API/"; //寮犵憺骞挎湰鍦伴厤缃�
- // var WEBURL = "http://localhost:81/API/"; //闄堥晲鍝叉湰鍦伴厤缃�
+ // var WEBURL = "http://localhost:8082/API/"; //寮犵憺骞挎湰鍦伴厤缃�
+ var WEBURL = "http://localhost:81/API/"; //闄堥晲鍝叉湰鍦伴厤缃�
//var WEBURL = "http://localhost:8082/LuBaoAPI/"; //鏉庢灄淇婃湰鍦伴厤缃�
//var WEBURL = "http://localhost:8080/API/"; //鐜嬩华鏈湴閰嶇疆
//var WEBURL = "http://localhost:8082/LuBaoAPI/"; //浣欐�濇澃鏈湴閰嶇疆
diff --git "a/WebTM/views/\350\264\250\351\207\217\347\256\241\347\220\206/\350\264\250\351\207\217\346\212\245\350\241\250/QC_DailyRunStateReport.html" "b/WebTM/views/\350\264\250\351\207\217\347\256\241\347\220\206/\350\264\250\351\207\217\346\212\245\350\241\250/QC_DailyRunStateReport.html"
new file mode 100644
index 0000000..e754818
--- /dev/null
+++ "b/WebTM/views/\350\264\250\351\207\217\347\256\241\347\220\206/\350\264\250\351\207\217\346\212\245\350\241\250/QC_DailyRunStateReport.html"
@@ -0,0 +1,555 @@
+
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>璐ㄩ噺姣忔棩杩愯鐘舵�佸垎鏋�</title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
+ <script src="../../../layuiadmin/layui/layui.js"></script>
+ <script src="../../../layuiadmin/Scripts/json2.js"></script>
+ <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
+ <script src="../../../layuiadmin/PubCustom.js"></script>
+ <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
+ <script src="../../../layuiadmin/HideButton.js"></script>
+ <script src='../../../layuiadmin/lib/extend/echarts.min.js'></script>
+ <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
+ <style type="text/css">
+ * {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ }
+
+ html, body {
+ height: 100%;
+ }
+
+ .page-container {
+ height: 100%;
+ padding: 10px;
+ display: flex;
+ flex-direction: column;
+ }
+
+ .query-bar {
+ background: #fff;
+ padding: 10px 15px;
+ border-radius: 6px;
+ margin-bottom: 10px;
+ flex-shrink: 0;
+ }
+
+ .summary-row {
+ display: flex;
+ flex-wrap: wrap;
+ margin-bottom: 10px;
+ flex-shrink: 0;
+ }
+
+ .chart-container {
+ background: #fff;
+ border-radius: 6px;
+ padding: 8px;
+ flex: 1;
+ overflow: auto;
+ min-height: 0;
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
+ gap: 8px;
+ }
+
+ .chart-box {
+ margin: 4px;
+ border: 1px solid #eee;
+ border-radius: 4px;
+ background: #fafbfc;
+ position: relative;
+ min-height: 260px;
+ display: flex;
+ align-items: stretch;
+ justify-content: stretch;
+ }
+
+ .empty-tip {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: #999;
+ font-size: 12px;
+ }
+
+ .summary-card {
+ margin: 4px;
+ border: 1px solid #eee;
+ border-radius: 4px;
+ background: #fafbfc;
+ text-align: center;
+ padding: 8px 4px;
+ min-width: 200px;
+ }
+
+ .summary-card.total-card {
+ background: linear-gradient(135deg, #1e9fff 0%, #5fb3ff 100%);
+ border-color: #1e9fff;
+ }
+
+ .summary-card.total-card .summary-number,
+ .summary-card.total-card .summary-label {
+ color: #fff;
+ }
+
+ .summary-number {
+ font-size: 16px;
+ font-weight: bold;
+ color: #1e9fff;
+ }
+
+ .summary-label {
+ font-size: 11px;
+ color: #888;
+ margin-top: 2px;
+ }
+ </style>
+</head>
+<body>
+ <div class="page-container">
+ <div class="query-bar">
+ <form class="layui-form" action="" lay-filter="component-form-group">
+ <div class="layui-collapse">
+ <div class="layui-colla-item">
+ <div class="layui-colla-title layui-inline">
+ <div class="layui-inline"><span>鏇村</span></div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width:100px;">鏃ユ湡闂撮殧</label>
+ <div class="layui-input-block">
+ <select name="HInitTimeCycle" id="HInitTimeCycle" class="ForFilteringSchemes" lay-filter="HInitTimeCycle" style="width:190px;">
+ </select>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width:100px;">寮�濮嬫棩鏈�</label>
+ <div class="layui-input-block">
+ <input type="date" class="layui-input ForFilteringSchemes" id="HBeginDate" style="width:160px;">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width:100px;">缁撴潫鏃ユ湡</label>
+ <div class="layui-input-block">
+ <input type="date" class="layui-input ForFilteringSchemes" id="HEndDate" style="width:160px;">
+ </div>
+ </div>
+ <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">
+ <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
+ </button>
+ <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch" style="padding:0 5px">閲嶇疆</button>
+ </div>
+ <div class="layui-colla-content">
+ </div>
+ </div>
+ </form>
+ </div>
+
+ <div class="summary-row" id="summaryRow"></div>
+ <div class="chart-container" id="chartContainer"></div>
+ </div>
+
+ <script>
+ layui.config({
+ base: '../../../layuiadmin/'
+ }).extend({
+ index: 'lib/index',
+ }).use(['index', 'form', 'element'], function () {
+
+ var $ = layui.$, layer = layui.layer, form = layui.form;
+ var chartInstances = {};
+ var chartConfigKeys = [];
+
+ // 鍥捐〃閰嶇疆
+ var ChartConfig = {
+ // dianjian: { chartTitle: '鐐规璁板綍缁熻', chartType: 'bar', dataTableIndex: 0 },
+ // baoyang: { chartTitle: '淇濆吇璁板綍缁熻', chartType: 'bar', dataTableIndex: 1 },
+ // guzhang: { chartTitle: '鏁呴殰鐧昏缁熻', chartType: 'pie', dataTableIndex: 2 },
+ // weixiupaigong: { chartTitle: '缁翠慨娲惧伐缁熻', chartType: 'pie', dataTableIndex: 3 },
+ // weixiuqiandao: { chartTitle: '缁翠慨绛惧埌缁熻', chartType: 'bar', dataTableIndex: 4 },
+ // weixiujilu: { chartTitle: '缁翠慨璁板綍缁熻', chartType: 'bar', dataTableIndex: 5 },
+ // weixiuyanshou: { chartTitle: '缁翠慨楠屾敹缁熻', chartType: 'pie', dataTableIndex: 6 },
+ // kaiji: { chartTitle: '璁惧寮�鏈虹粺璁�', chartType: 'pie', dataTableIndex: 7 },
+ // tingji: { chartTitle: '璁惧鍋滄満缁熻', chartType: 'bar', dataTableIndex: 8 },
+ // gongyidianjian: { chartTitle: '宸ヨ壓鐐规缁熻', chartType: 'bar', dataTableIndex: 9 }
+
+ shoujian: { chartTitle: '棣栨璁板綍缁熻', chartType: 'bar', dataTableIndex: 0 },
+ xunjian: { chartTitle: '宸℃璁板綍缁熻', chartType: 'bar', dataTableIndex: 1 },
+ mojian: { chartTitle: '鏈璁板綍缁熻', chartType: 'bar', dataTableIndex: 2 },
+ kucunjian: { chartTitle: '搴撳瓨妫�楠岃褰曠粺璁�', chartType: 'bar', dataTableIndex: 3 },
+ chejianzijian: { chartTitle: '杞﹂棿鑷璁板綍缁熻', chartType: 'bar', dataTableIndex: 4 },
+ lailiaorukujian: { chartTitle: '鏉ユ枡鍏ュ簱妫�楠岀粺璁�', chartType: 'bar', dataTableIndex: 5 },
+ shengchanrukujian: { chartTitle: '鐢熶骇鍏ュ簱妫�楠岀粺璁�', chartType: 'bar', dataTableIndex: 6 },
+ chuchangjianyan: { chartTitle: '鍑哄巶妫�楠岀粺璁�', chartType: 'bar', dataTableIndex: 7 },
+ buliangpingchuli: { chartTitle: '涓嶈壇鍝佸鐞嗙粺璁�', chartType: 'bar', dataTableIndex: 8 },
+ buliangpingpingshengshengqing: { chartTitle: '涓嶈壇鍝佽瘎瀹$敵璇风粺璁�', chartType: 'bar', dataTableIndex: 9 },
+ buliangpingpingshengchuli: { chartTitle: '涓嶈壇鍝佽瘎瀹″鐞嗙粺璁�', chartType: 'bar', dataTableIndex: 10 },
+ buliangpingpingshengyanshou: { chartTitle: '涓嶈壇鍝佽瘎瀹¢獙鏀剁粺璁�', chartType: 'bar', dataTableIndex: 11 },
+ buliangpingpingshengyanshou: { chartTitle: '涓嶈壇鍝佽瘎瀹$粨璁虹粺璁�', chartType: 'bar', dataTableIndex: 12 },
+ yichangfankui: { chartTitle: '寮傚父鍙嶉缁熻', chartType: 'bar', dataTableIndex: 13 },
+ yichangfankuiyanshou: { chartTitle: '寮傚父鍙嶉楠屾敹缁熻', chartType: 'bar', dataTableIndex: 14 },
+ yichangfankuiqiandao: { chartTitle: '寮傚父鍙嶉绛惧埌缁熻', chartType: 'bar', dataTableIndex: 15 },
+ yichangfankuichuli: { chartTitle: '寮傚父鍙嶉澶勭悊缁熻', chartType: 'bar', dataTableIndex: 16 },
+ yichangfankuiyanshou: { chartTitle: '寮傚父鍙嶉楠屾敹缁熻', chartType: 'bar', dataTableIndex: 17 },
+ jianyanquyang: { chartTitle: '妫�楠屽彇鏍风粺璁�', chartType: 'bar', dataTableIndex: 18 },
+ jianyanhuanyang: { chartTitle: '妫�楠岃繕鏍风粺璁�', chartType: 'bar', dataTableIndex: 19 },
+ };
+
+ // 鐢熸垚椤甸潰缁撴瀯
+ function generatePageStructure() {
+ chartConfigKeys = [];
+ for (var key in ChartConfig) { chartConfigKeys.push(key); }
+ generateSummaryCards();
+ generateChartBoxes();
+ }
+ function generateSummaryCards() {
+ var $summaryRow = $('#summaryRow'); $summaryRow.empty();
+ $summaryRow.append('<div class="summary-card total-card" id="card-total"><div class="summary-number">0</div><div class="summary-label">鎬昏</div></div>');
+ chartConfigKeys.forEach(key => {
+ var config = ChartConfig[key];
+ var label = config.chartTitle.replace('缁熻', '');
+ $summaryRow.append(`<div class="summary-card" id="card-${key}"><div class="summary-number">0</div><div class="summary-label">${label}</div></div>`);
+ });
+ }
+ function generateChartBoxes() {
+ var $c = $('#chartContainer'); $c.empty();
+ chartConfigKeys.forEach(key => {
+ $c.append(`<div class="chart-box" id="chart-${key}"><div class="empty-tip">鏆傛棤鏁版嵁</div></div>`);
+ });
+ }
+
+ //鏌ヨ
+ form.on('submit(btnReSearch)', function (data) {
+ set_ClearQuery();
+ });
+ //閲嶇疆
+ form.on('submit(btnSearch)', function (data) {
+ get_FastQuery();
+ });
+ //鏃ユ湡闂撮殧涓嬫媺鍒楄〃鐩戝惉
+ form.on('select(HInitTimeCycle)', function (data) {
+ var HInitTimeCycle = $("#HInitTimeCycle").val() * 1;
+ if (HInitTimeCycle != -1) {
+ $('#HBeginDate').prop('disabled', true);
+ $('#HEndDate').prop('disabled', true);
+ $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * HInitTimeCycle), "yyyy-MM-dd"));
+ $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
+ get_FastQuery();
+ } else {
+ $('#HBeginDate').prop('disabled', false);
+ $('#HEndDate').prop('disabled', false);
+ }
+ });
+
+ //鍒濆鍖�
+ function set_ClearBill() {
+ generatePageStructure();
+ setSelect_HInitTimeCycle();
+ var HInitTimeCycle = $("#HInitTimeCycle").val() * 1;
+ if (HInitTimeCycle != -1) {
+ $('#HBeginDate').prop('disabled', true);
+ $('#HEndDate').prop('disabled', true);
+ } else {
+ $('#HBeginDate').prop('disabled', false);
+ $('#HEndDate').prop('disabled', false);
+ }
+ $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * HInitTimeCycle), "yyyy-MM-dd"));
+ $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
+ get_FastQuery();
+ }
+
+ //閲嶇疆
+ function set_ClearQuery() {
+ var today = Format(new Date(), "yyyy-MM-dd");
+ $("#HBeginDate").val(today);
+ $("#HEndDate").val(today);
+ get_FastQuery();
+ }
+
+ //鍒濆鏃ユ湡闂撮殧 涓嬫媺鍒楄〃
+ function setSelect_HInitTimeCycle() {
+ var valueList = [0, 1, 2, 3, 4, 5, 6, 29];
+ var titleList = ["浠婂ぉ", "杩戜袱澶�", "杩戜笁澶�", "杩戝洓澶�", "杩戜簲澶�", "杩戝叚澶�", "杩戜竷澶�", "杩�30澶�"];
+ var HInitTimeCycle_ArrayList = '<option value="-1" selected="selected" >浠绘剰闂撮殧</option>';
+ for (var i = 0; i < valueList.length; i++) {
+ HInitTimeCycle_ArrayList += '<option style="color:blue;" value="' + valueList[i] + '">' + titleList[i] + '</option>';
+ }
+ $("#HInitTimeCycle").empty().append(HInitTimeCycle_ArrayList);
+ $("#HInitTimeCycle").val("0");
+ form.render('select');
+ }
+ // ==============================================
+ // 鏌ヨ 鑷姩琛ラ綈鎵�鏈夋棩鏈燂紙绌烘暟鎹�=0锛�
+ // ==============================================
+ function get_FastQuery() {
+ var wait = layer.load();
+ var beginDate = $("#HBeginDate").val();
+ var endDate = $("#HEndDate").val();
+
+ var sWhere = JSON.stringify({ HBeginDate: beginDate, HEndDate: endDate });
+ var params = { sWhere: sWhere, user: sessionStorage["HUserName"] || '' };
+
+ $.ajax({
+ url: GetWEBURL() + '/QC_CustomerAppealReport/QC_DailyRunStateReportList',
+ type: 'GET',
+ data: params,
+ success: function (result) {
+ var data = {};
+ var fullDateList = getDateRange(beginDate, endDate);
+
+ if (result && result.code == "1" && result.data) {
+ chartConfigKeys.forEach(key => {
+ var cfg = ChartConfig[key];
+ var tb = "h_p_QC_DailyRunStateReport" + (cfg.dataTableIndex > 0 ? cfg.dataTableIndex : "");
+ var list = (result.data[tb] && Array.isArray(result.data[tb])) ? result.data[tb] : [];
+
+ // 杞� map锛堟棩鏈熺粺涓�鏍煎紡鍖栵級
+ var dataMap = {};
+ list.forEach(x => {
+ var date = x.鏃ユ湡 || "";
+ try {
+ date = Format(new Date(date), "yyyy-MM-dd");
+ } catch (e) {
+ date = "";
+ }
+ var num = parseInt(x.鏁伴噺) || 0;
+ if (date) dataMap[date] = num;
+ });
+
+ // 琛ラ綈鎵�鏈夋棩鏈�
+ data[key] = fullDateList.map(date => ({
+ name: date,
+ value: dataMap[date] || 0
+ }));
+ });
+ } else {
+ // 鍚庣鏃犳湁鏁堟暟鎹細鍏ㄩ儴鍒濆鍖栦负 0
+ chartConfigKeys.forEach(key => {
+ data[key] = fullDateList.map(date => ({ name: date, value: 0 }));
+ });
+ }
+
+ renderAll(data);
+ layer.close(wait);
+ },
+ error: function () {
+ var fullDateList = getDateRange(beginDate, endDate);
+ var data = {};
+ chartConfigKeys.forEach(key => {
+ data[key] = fullDateList.map(date => ({ name: date, value: 0 }));
+ });
+ renderAll(data);
+ layer.close(wait);
+ }
+ });
+ }
+
+ // ==============================================
+ // 鐢熸垚寮�濮媬缁撴潫鐨勬墍鏈夋棩鏈燂紙鑷姩璺ㄦ湀/璺ㄥ勾锛�
+ // ==============================================
+ function getDateRange(startDate, endDate) {
+ var arr = [];
+ var start = new Date(startDate);
+ var end = new Date(endDate);
+ while (start <= end) {
+ arr.push(Format(start, "yyyy-MM-dd"));
+ start.setDate(start.getDate() + 1);
+ }
+ return arr;
+ }
+
+ // ==============================================
+ // 娓叉煋鎵�鏈夊浘琛ㄥ拰鍗$墖锛堝彇娑堚�滃叏0璺宠繃鈥濓紝濮嬬粓缁樺浘锛�
+ // ==============================================
+ function renderAll(data) {
+ chartConfigKeys.forEach(key => {
+ var cfg = ChartConfig[key];
+ var d = data[key] || [];
+ var $chartBox = $('#chart-' + key);
+ var dom = $chartBox[0];
+ var chartKey = 'chart-' + key;
+
+ // 1. 閿�姣佹棫瀹炰緥锛屾柇寮� ResizeObserver 骞舵竻绌哄鍣�
+ if (chartInstances[chartKey]) {
+ try {
+ if (chartInstances[chartKey]._resizeObserver) chartInstances[chartKey]._resizeObserver.disconnect();
+ } catch (e) { }
+ chartInstances[chartKey].dispose();
+ delete chartInstances[chartKey];
+ }
+ $chartBox.empty();
+
+ // 2. 鏇存柊鍗$墖鎬绘暟
+ var total = d.reduce((a, b) => a + b.value, 0);
+ $('#card-' + key + ' .summary-number').text(total);
+
+ // 3. 濮嬬粓缁樺埗鍥捐〃锛堟煴鐘跺浘浼氭樉绀�0鍊兼煴瀛愶紝楗煎浘鍏�0鏃剁壒娈婂鐞嗭級
+ if (cfg.chartType === 'pie') {
+ // 楗煎浘鏃犺鏄惁鏈�0閮界粯鍒�
+ renderPie(key, cfg.chartTitle, d);
+ } else if (cfg.chartType === 'bar') {
+ // 鏌辩姸鍥炬棤璁烘槸鍚︽湁0閮界粯鍒讹紝璁╂í杞存棩鏈熷畬鏁村睍绀�
+ renderBar(key, cfg.chartTitle, d);
+ }
+ });
+
+ // 鏇存柊鎬昏鍗$墖
+ var totalAll = 0;
+ chartConfigKeys.forEach(key => {
+ var d = data[key] || [];
+ totalAll += d.reduce((a, b) => a + b.value, 0);
+ });
+ $("#card-total .summary-number").text(totalAll);
+ }
+
+ function renderPie(key, title, data) {
+ var dom = document.getElementById('chart-' + key);
+ var $chartBox = $('#chart-' + key);
+ $chartBox.empty();
+
+ var chart = echarts.init(dom);
+ chartInstances['chart-' + key] = chart;
+ // 鑷姩鍝嶅簲瀹瑰櫒灏哄鍙樺寲锛堜紭鍏堜娇鐢� ResizeObserver锛�
+ if (window.ResizeObserver) {
+ try {
+ var ro = new ResizeObserver(function () { try { chart.resize(); } catch (e) { } });
+ ro.observe(dom);
+ chart._resizeObserver = ro;
+ } catch (e) { }
+ }
+
+ // 璁$畻鎬诲拰
+ var total = data.reduce((s, x) => s + x.value, 0);
+ var isAllZero = total === 0;
+
+ // 缁樺埗鏁版嵁锛堝叏0鏃剁敤鏋佸皬鍊煎崰浣嶏級
+ var pieData = data.map(x => ({
+ name: x.name,
+ value: isAllZero ? 0.0001 : x.value,
+ originalValue: x.value
+ }));
+
+ // 鍩虹绯诲垪閰嶇疆
+ var seriesConfig = {
+ type: 'pie',
+ radius: ['30%', '50%'],
+ data: pieData,
+ label: {
+ show: true,
+ fontSize: 11,
+ // 寮哄埗鏄剧ず鏍囩锛岄槻姝㈣闅愯棌
+ overflow: 'none',
+ hideOverlap: false
+ },
+ labelLine: {
+ show: true,
+ length: 10,
+ length2: 8
+ },
+ avoidLabelOverlap: false // 鍏佽鏍囩閲嶅彔锛岀‘淇濋兘鏄剧ず
+ };
+
+ chart.setOption({
+ title: { text: title, left: 'center', textStyle: { fontSize: 12 } },
+ tooltip: {
+ trigger: 'item',
+ formatter: function (params) {
+ return `${params.name}: ${params.data.originalValue}`;
+ }
+ },
+ series: [
+ // 绗竴灞傦細澶栭儴鏄剧ず鏃ユ湡
+ {
+ ...seriesConfig,
+ label: {
+ ...seriesConfig.label,
+ position: 'outside',
+ formatter: function (params) {
+ // 澶栭儴濮嬬粓鏄剧ず鏃ユ湡锛堝悕绉帮級
+ return params.name;
+ }
+ }
+ },
+ // 绗簩灞傦細鍐呴儴鏄剧ず鏁伴噺锛堝叏0鏃朵篃鏄剧ず0锛�
+ {
+ ...seriesConfig,
+ label: {
+ ...seriesConfig.label,
+ position: 'inside',
+ formatter: function (params) {
+ // 鍐呴儴鏄剧ず鍘熷鏁伴噺锛屽叏0鏃舵樉绀� '0'
+ return params.data.originalValue;
+ }
+ },
+ labelLine: { show: false } // 鍐呴儴涓嶉渶瑕佸紩瀵肩嚎
+ }
+ ]
+ });
+ }
+
+ // ==============================================
+ // 鏌辩姸鍥炬覆鏌擄紙鏀寔鍏�0鏁版嵁锛屾樉绀烘í杞存爣绛惧拰0鍊硷級
+ // ==============================================
+ function renderBar(key, title, data) {
+ var dom = document.getElementById('chart-' + key);
+ var chart = echarts.init(dom);
+ chartInstances['chart-' + key] = chart;
+ if (window.ResizeObserver) {
+ try {
+ var ro = new ResizeObserver(function () { try { chart.resize(); } catch (e) { } });
+ ro.observe(dom);
+ chart._resizeObserver = ro;
+ } catch (e) { }
+ }
+ var colorList = ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'];
+
+ chart.setOption({
+ title: { text: title, left: 'center', textStyle: { fontSize: 12 } },
+ tooltip: { trigger: 'axis' },
+ xAxis: { type: 'category', data: data.map(x => x.name) },
+ yAxis: { type: 'value' },
+ series: [{
+ type: 'bar',
+ data: data.map(x => x.value),
+ barWidth: '40%',
+ itemStyle: {
+ color: function (params) {
+ return colorList[params.dataIndex % colorList.length];
+ },
+ borderRadius: [4, 4, 0, 0]
+ },
+ label: {
+ show: true,
+ position: 'top',
+ fontSize: 11,
+ formatter: '{c}'
+ }
+ }]
+ });
+ }
+ // 鍒濆鍖�
+ set_ClearBill();
+
+ window.onresize = function () {
+ for (var k in chartInstances) {
+ if (chartInstances[k]) chartInstances[k].resize();
+ }
+ };
+ });
+ </script>
+</body>
+</html>
\ No newline at end of file
--
Gitblit v1.9.1