{"id":34158,"date":"2025-12-12T07:59:52","date_gmt":"2025-12-11T23:59:52","guid":{"rendered":"https:\/\/zfun.i234.me\/stock\/?page_id=34158"},"modified":"2026-04-22T13:45:43","modified_gmt":"2026-04-22T05:45:43","slug":"home_new","status":"publish","type":"page","link":"https:\/\/zfun.i234.me\/check\/","title":{"rendered":"home_new"},"content":{"rendered":"    <style>\r\n    .tab-buttons {\r\n        display: flex;\r\n        gap: 5px;\r\n        margin-bottom: 10px;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .tab-buttons button {\r\n        padding: 4px 8px;\r\n        font-size: 14.5px;\r\n        border: none;\r\n        background-color: #f1f1f1;\r\n        cursor: pointer;\r\n        border-radius: 4px;\r\n    }\r\n\r\n    .tab-buttons button.active {\r\n        background-color: #ccc;\r\n    }\r\n\r\n    .tab-content {\r\n        display: none;\r\n    }\r\n\r\n    .tab-content.active {\r\n        display: block;\r\n    }\r\n\r\n    .zh-box-container {\r\n        display: flex;\r\n        flex-wrap: wrap;\r\n        gap: 10px;\r\n        margin-top: 20px;\r\n    }\r\n\r\n    \/* PC: 3 \u6b04 *\/\r\n    .zh-box {\r\n        width: calc(33.333% - 7px);\r\n        background: #fff;\r\n        border: 1px solid #ddd;\r\n        border-radius: 8px;\r\n        padding: 15px;\r\n        box-sizing: border-box;\r\n    }\r\n\r\n    \/* \u5e73\u677f: 2 \u6b04 *\/\r\n    @media (max-width: 1024px) {\r\n        .zh-box {\r\n            width: calc(50% - 5px);\r\n        }\r\n    }\r\n\r\n    \/* \u624b\u6a5f: 1 \u6b04 *\/\r\n    @media (max-width: 768px) {\r\n        .zh-box {\r\n            width: 100%;\r\n        }\r\n    }\r\n    <\/style>\r\n\r\n    <div class=\"tab-buttons\">\r\n        <button type=\"button\" data-tab=\"tab1\">\u5de5\u5ee0\u8abf\u64a5\u5404\u5009<\/button>\r\n\t\t<button type=\"button\" data-tab=\"tab2\">G\u5009\u8207\u6b63\u822a\u5eab\u5b58\u6bd4\u5c0d<\/button>\r\n\t\r\n    <\/div>\r\n\r\n    <!-- TAB 2 -->\r\n    <div id=\"tab2\" class=\"tab-content\">\r\n\t\t\r\n\t\t    <div class=\"zh-stock-diff\">\r\n        <style>\r\n        .zh-stock-diff { \r\n            font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; \r\n            max-width: 100%; \r\n            font-size: 14px;\r\n        }\r\n        \r\n        \/* ===== \u9802\u90e8\u6a19\u984c\u5340 ===== *\/\r\n        .zh-stock-diff .header { \r\n            background: #f8f9fa; \r\n            padding: 3px 20px; \r\n            border-radius: 8px 8px 0 0; \r\n            border-left: 4px solid #dc3545; \r\n            display: flex; \r\n            justify-content: space-between; \r\n            align-items: center; \r\n            flex-wrap: wrap;\r\n            gap: 10px;\r\n        }\r\n        .zh-stock-diff .header .count { \r\n            font-size: 22px; \r\n            font-weight: 700; \r\n            color: #dc3545; \r\n        }\r\n        .zh-stock-diff .header .date { \r\n            font-size: 13px; \r\n            color: #888; \r\n        }\r\n        .zh-stock-diff .header .total-diff {\r\n            font-size: 14px;\r\n            color: #555;\r\n        }\r\n        .zh-stock-diff .header .total-diff .num {\r\n            font-weight: 700;\r\n            color: #e65100;\r\n        }\r\n        .zh-stock-diff .header .order-info {\r\n            font-size: 12px;\r\n            color: #999;\r\n            background: #e9ecef;\r\n            padding: 2px 12px;\r\n            border-radius: 12px;\r\n        }\r\n        \r\n        \/* ===== \u7d71\u8a08\u689d ===== *\/\r\n        .zh-stock-diff .stats-bar {\r\n            display: flex;\r\n            gap: 20px;\r\n            flex-wrap: wrap;\r\n            padding: 10px 20px;\r\n            background: #fff;\r\n            border-left: 1px solid #dee2e6;\r\n            border-right: 1px solid #dee2e6;\r\n            font-size: 13px;\r\n            color: #555;\r\n        }\r\n        .zh-stock-diff .stats-bar .stat-item {\r\n            display: inline-flex;\r\n            align-items: center;\r\n            gap: 4px;\r\n        }\r\n        .zh-stock-diff .stats-bar .stat-item .num {\r\n            font-weight: 600;\r\n        }\r\n        \r\n        \/* ===== \u8868\u683c ===== *\/\r\n        .zh-stock-diff .table-wrap {\r\n            max-height: 600px;\r\n            overflow: auto;\r\n            border: 1px solid #dee2e6;\r\n            border-top: none;\r\n            border-radius: 0 0 8px 8px;\r\n        }\r\n        .zh-stock-diff .table-wrap table {\r\n            width: 100%;\r\n            border-collapse: collapse;\r\n            font-size: 13px;\r\n        }\r\n        .zh-stock-diff .table-wrap thead th { \r\n            background: #f1f3f5; \r\n            padding: 10px 14px; \r\n            text-align: left; \r\n            border-bottom: 2px solid #dee2e6; \r\n            font-weight: 600;\r\n            position: sticky;\r\n            top: 0;\r\n            z-index: 10;\r\n            font-size: 13px;\r\n            color: #495057;\r\n        }\r\n        .zh-stock-diff .table-wrap td { \r\n            padding: 8px 14px; \r\n            border-bottom: 1px solid #f1f3f5; \r\n        }\r\n        .zh-stock-diff .text-right { text-align: right; }\r\n        \r\n        \/* ===== \u72c0\u614b\u80cc\u666f\u8272\uff08\u7c21\u7d04\u98a8\u683c\uff09 ===== *\/\r\n        .zh-stock-diff .row-diff { background-color: #fff5f5; }\r\n        .zh-stock-diff .row-diff:hover { background-color: #ffe3e3; }\r\n        \r\n        .zh-stock-diff .row-only_snapshot { background-color: #fff8f0; }\r\n        .zh-stock-diff .row-only_snapshot:hover { background-color: #ffecd6; }\r\n        \r\n        .zh-stock-diff .row-only_api { background-color: #f8f0ff; }\r\n        .zh-stock-diff .row-only_api:hover { background-color: #f0e0ff; }\r\n        \r\n        .zh-stock-diff .row-empty_sku { background-color: #fff0f0; }\r\n        .zh-stock-diff .row-empty_sku:hover { background-color: #ffe0e0; }\r\n        \r\n        .zh-stock-diff .row-filtered { background-color: #f8f9fa; color: #999; }\r\n        .zh-stock-diff .row-filtered:hover { background-color: #f1f3f5; }\r\n        \r\n        .zh-stock-diff .row-match { background-color: #f0fff4; }\r\n        .zh-stock-diff .row-match:hover { background-color: #d4edda; }\r\n        \r\n        \/* ===== \u6587\u5b57\u984f\u8272 ===== *\/\r\n        .zh-stock-diff .text-red { color: #dc3545; font-weight: 600; }\r\n        .zh-stock-diff .text-green { color: #28a745; font-weight: 600; }\r\n        .zh-stock-diff .text-muted { color: #999; }\r\n        \r\n        \/* ===== SKU \u6a23\u5f0f ===== *\/\r\n        .zh-stock-diff .sku-code { \r\n            font-family: 'Courier New', monospace; \r\n            background: #e9ecef; \r\n            padding: 1px 8px; \r\n            border-radius: 4px; \r\n            font-size: 12px;\r\n            font-weight: 500;\r\n        }\r\n        \r\n        \/* ===== \u5408\u8a08\u5217 ===== *\/\r\n        .zh-stock-diff .total-row {\r\n            background: #e9ecef !important;\r\n            font-weight: 700;\r\n            border-top: 2px solid #dee2e6;\r\n        }\r\n        .zh-stock-diff .total-row:hover { background: #e9ecef !important; }\r\n        \r\n        \/* ===== \u7a7a\u72c0\u614b ===== *\/\r\n        .zh-stock-diff .empty { \r\n            padding: 30px; \r\n            text-align: center; \r\n            color: #28a745; \r\n            font-weight: 600; \r\n            background: #f0fff4;\r\n            border: 1px solid #dee2e6;\r\n            border-top: none;\r\n            border-radius: 0 0 8px 8px;\r\n        }\r\n        \r\n        \/* ===== \u66f4\u591a\u8cc7\u8a0a ===== *\/\r\n        .zh-stock-diff .more-info {\r\n            padding: 8px 14px;\r\n            background: #f8f9fa;\r\n            border: 1px solid #dee2e6;\r\n            border-top: none;\r\n            border-radius: 0 0 8px 8px;\r\n            text-align: center;\r\n            font-size: 13px;\r\n            color: #888;\r\n        }\r\n        \r\n        \/* ===== RWD ===== *\/\r\n        @media (max-width: 768px) {\r\n            .zh-stock-diff .header { flex-direction: column; align-items: stretch; text-align: center; }\r\n            .zh-stock-diff .table-wrap { max-height: 400px; }\r\n            .zh-stock-diff .table-wrap table { font-size: 12px; }\r\n            .zh-stock-diff .table-wrap th, \r\n            .zh-stock-diff .table-wrap td { padding: 5px 8px; }\r\n            .zh-stock-diff .stats-bar { font-size: 12px; gap: 10px; padding: 8px 14px; }\r\n            .zh-stock-diff .sku-code { font-size: 11px; padding: 1px 4px; }\r\n        }\r\n        @media (max-width: 480px) {\r\n            .zh-stock-diff .header .count { font-size: 18px; }\r\n            .zh-stock-diff .table-wrap { max-height: 300px; }\r\n            .zh-stock-diff .table-wrap table { font-size: 11px; }\r\n            .zh-stock-diff .table-wrap th, \r\n            .zh-stock-diff .table-wrap td { padding: 4px 6px; }\r\n        }\r\n        <\/style>\r\n        \r\n        <!-- ===== \u6a19\u984c\u5340 ===== -->\r\n        <div class=\"header\">\r\n            <div>\r\n                \ud83d\udcca \u5009\u5eabG \u8207 \u6b63\u822a \u6578\u91cf\u4e0d\u540c\uff1a<span class=\"count\">6<\/span> \u7b46\r\n                               \r\n            <\/div>\r\n            <div style=\"display:flex; gap:15px; flex-wrap:wrap;\">\r\n\t\t\t\t<span class=\"date\">\ud83d\udcc6 \u5009\u5eabG\uff1a2026-08-15<\/span>\r\n                <span class=\"date\">\ud83d\udcc6 \u6b63\u822a\uff1a2026-08-15<\/span>\r\n            <\/div>\r\n        <\/div>\r\n        \r\n        <!-- ===== \u7d71\u8a08\u689d ===== -->\r\n        <div class=\"stats-bar\">\r\n            <span class=\"stat-item\">\ud83d\udd34 \u6578\u91cf\u4e0d\u4e00\u81f4\uff1a<span class=\"num\" style=\"color:#dc3545;\">5<\/span><\/span>\r\n            <span class=\"stat-item\">\ud83d\udfe0 \u50c5\u5009\u5eabG\u6709\uff1a<span class=\"num\" style=\"color:#e67700;\">0<\/span><\/span>\r\n            <span class=\"stat-item\">\ud83d\udfe3 \u50c5\u6b63\u822a\u6709\uff1a<span class=\"num\" style=\"color:#7b1fa2;\">1<\/span><\/span>\r\n            <span class=\"stat-item\">\u2705 \u543b\u5408\uff1a<span class=\"num\" style=\"color:#28a745;\">271<\/span><\/span>\r\n                        <span class=\"stat-item\">\u23ed\ufe0f \u5df2\u904e\u6ffe\uff1a<span class=\"num\" style=\"color:#999;\">45<\/span><\/span>\r\n                    <\/div>\r\n        \r\n        <!-- ===== \u8868\u683c ===== -->\r\n                    <div class=\"table-wrap\">\r\n                <table>\r\n                    <thead>\r\n                        <tr>\r\n                            <th style=\"width:12%;\">SKU<\/th>\r\n                            <th style=\"width:24%;\">\u54c1\u540d<\/th>\r\n                            <th style=\"width:14%;\" class=\"text-right\">\u5009\u5eabG<\/th>\r\n                            <th style=\"width:14%;\" class=\"text-right\">\u6b63\u822a<\/th>\r\n                            <th style=\"width:14%;\" class=\"text-right\">\u5dee\u7570 <span style=\"font-weight:400;font-size:11px;color:#888;\">(\u5009\u5eabG-\u6b63\u822a)<\/span><\/th>\r\n                            <th style=\"width:22%;\">\u72c0\u614b<\/th>\r\n                        <\/tr>\r\n                    <\/thead>\r\n                    <tbody>\r\n                                                <tr class=\"row-diff\">\r\n                            <td><span class=\"sku-code\">P02-007-02<\/span><\/td>\r\n                            <td>\u4e00\u54c1\u87ba\u7247(25\u5305\/\u7bb1)<\/td>\r\n                            <td class=\"text-right\">1,566.000<\/td>\r\n                            <td class=\"text-right\">132.000<\/td>\r\n                            <td class=\"text-right text-red\">\r\n                                +1,434.000                            <\/td>\r\n                            <td>\ud83d\udd34 \u6578\u91cf\u4e0d\u540c<\/td>\r\n                        <\/tr>\r\n                                                <tr class=\"row-diff\">\r\n                            <td><span class=\"sku-code\">P07-014-00<\/span><\/td>\r\n                            <td>\u6842\u7530-\u8c5a\u9aa8\u9ad8\u6e6f(5kg\/\u5305*4\u5305\u5165\/\u4ef6)<\/td>\r\n                            <td class=\"text-right\">97.000<\/td>\r\n                            <td class=\"text-right\">46.000<\/td>\r\n                            <td class=\"text-right text-red\">\r\n                                +51.000                            <\/td>\r\n                            <td>\ud83d\udd34 \u6578\u91cf\u4e0d\u540c<\/td>\r\n                        <\/tr>\r\n                                                <tr class=\"row-diff\">\r\n                            <td><span class=\"sku-code\">P07-014-25<\/span><\/td>\r\n                            <td>\u6842\u7530-\u7d05\u9152\u71c9\u725b\u8089(2kg\/\u5305*10\u5305\u5165\/\u4ef6)<\/td>\r\n                            <td class=\"text-right\">1,024.000<\/td>\r\n                            <td class=\"text-right\">992.000<\/td>\r\n                            <td class=\"text-right text-red\">\r\n                                +32.000                            <\/td>\r\n                            <td>\ud83d\udd34 \u6578\u91cf\u4e0d\u540c<\/td>\r\n                        <\/tr>\r\n                                                <tr class=\"row-diff\">\r\n                            <td><span class=\"sku-code\">P04-007-01<\/span><\/td>\r\n                            <td>\u9ec3\u91d1\u96ea\u5e78\u5b50\u6a23\u54c1\u5305<\/td>\r\n                            <td class=\"text-right\">72.000<\/td>\r\n                            <td class=\"text-right\">53.000<\/td>\r\n                            <td class=\"text-right text-red\">\r\n                                +19.000                            <\/td>\r\n                            <td>\ud83d\udd34 \u6578\u91cf\u4e0d\u540c<\/td>\r\n                        <\/tr>\r\n                                                <tr class=\"row-diff\">\r\n                            <td><span class=\"sku-code\">P08-014-11<\/span><\/td>\r\n                            <td>\u6210\u529f\u9b5a\u85af\u689d(90g*18\u5305\/\u4ef6)<\/td>\r\n                            <td class=\"text-right\">1,088.000<\/td>\r\n                            <td class=\"text-right\">1,070.000<\/td>\r\n                            <td class=\"text-right text-red\">\r\n                                +18.000                            <\/td>\r\n                            <td>\ud83d\udd34 \u6578\u91cf\u4e0d\u540c<\/td>\r\n                        <\/tr>\r\n                                                <tr class=\"row-only_api\">\r\n                            <td><span class=\"sku-code\">P10-000-59<\/span><\/td>\r\n                            <td>\u597d\u5e02\u591a-\u51b7\u51cd\u8fa3\u5473\u7f8e\u4e43\u6ecb(500g*20\u5305\/\u7bb1)<\/td>\r\n                            <td class=\"text-right\">-<\/td>\r\n                            <td class=\"text-right\">1,840.000<\/td>\r\n                            <td class=\"text-right text-green\">\r\n                                -1,840.000                            <\/td>\r\n                            <td>\ud83d\udfe3 \u50c5\u6b63\u822a<\/td>\r\n                        <\/tr>\r\n                                                <!-- \u5408\u8a08\u5217 -->\r\n                        <tr class=\"total-row\">\r\n                            <td colspan=\"4\" style=\"text-align:right;\">\u5408\u8a08\u5dee\u7570<\/td>\r\n                            <td class=\"text-right text-green\">\r\n                                -286.000                            <\/td>\r\n                            <td><\/td>\r\n                        <\/tr>\r\n                    <\/tbody>\r\n                <\/table>\r\n            <\/div>\r\n                        <\/div>\r\n            <div class=\"zh-box-container\">\r\n            <div class=\"zh-box\">\r\n                <p>\u6b63\u822a\u8abf\u64a5\u5404\u5009\u67e5\u6838<\/p>\r\n                    <div style=\"font-family: Arial, sans-serif;\">\r\n        <svg width=\"1000\" height=\"140\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n\r\n            <!-- \u5de5\u5ee0\u7bc0\u9ede -->\r\n            <text x=\"20\" y=\"20\" font-size=\"16\">\u5de5\u5ee0\u8abf\u64a5<\/text>\r\n\r\n            <!-- \u65e5\u671f\u7bc0\u9ede -->\r\n            <line x1=\"90\" y1=\"15\" x2=\"110\" y2=\"15\" stroke=\"#000\" stroke-width=\"0.5\"\/>\r\n            <text x=\"120\" y=\"20\" font-size=\"16\">2026-08-15<\/text>\r\n\r\n            <!-- \u4e09\u5009\u5206\u652f -->\r\n                            <!-- \u9023\u7dda -->\r\n                <line x1=\"40\" y1=\"25\" x2=\"90\" y2=\"60\" stroke=\"#000\" stroke-width=\"0.5\" \/>\r\n                <line x1=\"90\" y1=\"60\" x2=\"110\" y2=\"60\" stroke=\"#000\" stroke-width=\"0.5\" \/>\r\n\r\n                <!-- \u7bc0\u9ede\u6587\u5b57 -->\r\n            <a href=\"https:\/\/zfun.i234.me\/check\/?warehouse=B&#038;start_date=2026-08-15&#038;end_date=2026-08-15&#038;hide_zero_a=1\">   \r\n                    <text x=\"115\" y=\"65\"\r\n                          fill=\"#4CAF50\" font-size=\"14\"\r\n                          style=\"cursor:pointer;\"\r\n                          onmouseover=\"this.setAttribute('fill', '#007BFF');\"\r\n                          onmouseout=\"this.setAttribute('fill', '#4CAF50');\">\r\n                        \u65b0\u7f8e\u8857B\u5009\uff0c\u6b63\u5e38                    <\/text>\r\n                <\/a>\r\n                            <!-- \u9023\u7dda -->\r\n                <line x1=\"40\" y1=\"25\" x2=\"90\" y2=\"90\" stroke=\"#000\" stroke-width=\"0.5\" \/>\r\n                <line x1=\"90\" y1=\"90\" x2=\"110\" y2=\"90\" stroke=\"#000\" stroke-width=\"0.5\" \/>\r\n\r\n                <!-- \u7bc0\u9ede\u6587\u5b57 -->\r\n            <a href=\"https:\/\/zfun.i234.me\/check\/?warehouse=C&#038;start_date=2026-08-15&#038;end_date=2026-08-15&#038;hide_zero_a=1\">   \r\n                    <text x=\"115\" y=\"95\"\r\n                          fill=\"#4CAF50\" font-size=\"14\"\r\n                          style=\"cursor:pointer;\"\r\n                          onmouseover=\"this.setAttribute('fill', '#007BFF');\"\r\n                          onmouseout=\"this.setAttribute('fill', '#4CAF50');\">\r\n                        \u5c08\u6848C\u5009\uff0c\u6b63\u5e38                    <\/text>\r\n                <\/a>\r\n                            <!-- \u9023\u7dda -->\r\n                <line x1=\"40\" y1=\"25\" x2=\"90\" y2=\"120\" stroke=\"#000\" stroke-width=\"0.5\" \/>\r\n                <line x1=\"90\" y1=\"120\" x2=\"110\" y2=\"120\" stroke=\"#000\" stroke-width=\"0.5\" \/>\r\n\r\n                <!-- \u7bc0\u9ede\u6587\u5b57 -->\r\n            <a href=\"https:\/\/zfun.i234.me\/check\/?warehouse=D&#038;start_date=2026-08-15&#038;end_date=2026-08-15&#038;hide_zero_a=1\">   \r\n                    <text x=\"115\" y=\"125\"\r\n                          fill=\"#4CAF50\" font-size=\"14\"\r\n                          style=\"cursor:pointer;\"\r\n                          onmouseover=\"this.setAttribute('fill', '#007BFF');\"\r\n                          onmouseout=\"this.setAttribute('fill', '#4CAF50');\">\r\n                        \u4e09\u6a13D\u5009\uff0c\u6b63\u5e38                    <\/text>\r\n                <\/a>\r\n                    <\/svg>\r\n    <\/div>\r\n                <\/div>\r\n\r\n             <div class=\"zh-box\">\r\n                <p>[\u4e00\u5ee0] \u6eab\u5ea6\u8a18\u9304<\/p>\r\n\t\t\t\t <div id=\"zone-temp-wrapper\" style=\"font-size:12px;\">\u8b80\u53d6\u4e2d...<\/div>\r\n<script>\r\njQuery(function($) {\r\n    function update() {\r\n        $.post(\"https:\/\/zfun.i234.me\/check\/wp-admin\/admin-ajax.php\", {\r\n            action: \"zone_temp_update\"\r\n        }, function(res) {\r\n            $(\"#zone-temp-wrapper\").html(res);\r\n        });\r\n    }\r\n    update();\r\n    setInterval(update, 3000);\r\n});\r\n<\/script>\r\n\t\r\n            <\/div>\r\n\r\n            <div class=\"zh-box\">\r\n  <p>[\u4e8c\u5ee0] \u6eab\u5ea6\u8a18\u9304<\/p>\r\n  <p>\r\n\t    \r\n    <div id=\"boss-monitor-box-bsite\" style=\"margin:0; padding:0; font-size:12px;\">\r\n                <div id=\"boss-alert-area-bsite\" style=\"margin-bottom:8px;\"><\/div>\r\n        <div id=\"boss-table-area-bsite\">\r\n            <span style=\"color:#198c19;\">\u8f09\u5165\u4e2d...<\/span>\r\n        <\/div>\r\n\r\n        <p style=\"margin:8px 0 0 0; padding:0; font-size:12px;\">\r\n            <a href=\"https:\/\/t2.zfun.i234.me\/boss\/\" target=\"_blank\" style=\"text-decoration:none; color:#666;\">\u6eab\u5ea6\u7e3d\u63a7\u53f0<\/a>\r\n        <\/p>\r\n    <\/div>\r\n\r\n    <script>\r\n    \/\/ =============================================\r\n    \/\/ \u5b8c\u5168\u8907\u88fd\u4e3b\u7ad9\u908f\u8f2f\uff08\u6700\u65b0\u7248\u672c\uff09\r\n    \/\/ =============================================\r\n    \r\n    \/\/ \u7372\u53d6 Alarm \u72c0\u614b\u5716\u793a\r\n    function getAlarmStatusIcon(alarmData) {\r\n        if (!alarmData) return '';\r\n        if (alarmData.triggered) {\r\n            return '<span style=\"color:#dc3232; font-size:11px; margin-left:4px;\" title=\"Alarm ' + alarmData.code + ' \u89f8\u767c (Value=' + alarmData.value + ')\">\ud83d\udd34<\/span>';\r\n        } else {\r\n            return '<span style=\"color:#28a745; font-size:11px; margin-left:4px;\" title=\"Alarm ' + alarmData.code + ' \u6b63\u5e38 (Value=' + alarmData.value + ')\">\ud83d\udfe2<\/span>';\r\n        }\r\n    }\r\n    \r\n    \/\/ \u7372\u53d6\u904b\u8f49\u71c8\u865f\uff08\u4f7f\u7528 status_icon\uff09\r\n    function getStatusIcon(statusIcon) {\r\n        if (!statusIcon) return '';\r\n        return statusIcon;\r\n    }\r\n    \r\n    function bossRenderTable(data) {\r\n        const area = document.getElementById('boss-table-area-bsite');\r\n        const alertArea = document.getElementById('boss-alert-area-bsite');\r\n        if (!area) return;\r\n\r\n        if (data.error) {\r\n            area.innerHTML = `<span style=\"color:#dc3232;\">${data.error}<\/span>`;\r\n            alertArea.innerHTML = `<div style=\"color:#dc3232; font-weight:bold;\">\u26a0\ufe0f \u8a2d\u5099\u901a\u8a0a\u4e2d\u65b7<\/div>`;\r\n            return;\r\n        }\r\n\r\n        const list = data.items || [];\r\n        const alarms = data.alarms || [];\r\n        \r\n        let alertHtml = '';\r\n        \r\n        \/\/ \u986f\u793a Alarm \u6642\u5e36\u5165\u8a2d\u5099\u540d\u7a31\uff08\u986f\u793a\u5728\u540c\u4e00\u884c\uff09- \u8207\u4e3b\u7ad9\u5b8c\u5168\u4e00\u81f4\r\n        if (alarms.length > 0) {\r\n            let alarmTexts = [];\r\n            alarms.forEach(function(no){\r\n                let deviceName = no;\r\n                for (let i = 0; i < list.length; i++) {\r\n                    if (list[i].alarm && list[i].alarm.code == no) {\r\n                        deviceName = list[i].name;\r\n                        break;\r\n                    }\r\n                }\r\n                alarmTexts.push(`${deviceName} (\u7de8\u865f\uff1a${no}) \u7cfb\u7d71\u7570\u5e38`);\r\n            });\r\n            alertHtml = `<div style=\"color:#dc3232; font-weight:bold; padding:6px 10px; background:#fff5f5; border-left:4px solid #dc3232; border-radius:3px;\">\r\n                \ud83d\udd34 \u8a2d\u5099\u7570\u5e38\uff1a${alarmTexts.join('\uff0c')}\r\n            <\/div>`;\r\n        }\r\n        alertArea.innerHTML = alertHtml;\r\n\r\n        if (list.length === 0) {\r\n            area.innerHTML = '<span style=\"color:#666;\">\u8a2d\u5099\u96e2\u7dda\u4e2d<\/span>';\r\n            return;\r\n        }\r\n\r\n        let html = `<table style=\"width:100%; border-collapse:collapse; border:1px solid #ccc; font-size:12px;\">`;\r\n        \r\n        for (let i = 0; i < list.length; i += 2) {\r\n            const left = list[i];\r\n            const right = list[i + 1] || null;\r\n            \r\n            const leftAlert = parseFloat(left.value) > parseFloat(left.warn);\r\n            const rightAlert = right ? (parseFloat(right.value) > parseFloat(right.warn)) : false;\r\n            const leftMaintenance = left.maintenance || false;\r\n            const rightMaintenance = right ? (right.maintenance || false) : false;\r\n\r\n            \/\/ \u7372\u53d6 Alarm \u5716\u793a\r\n            const leftAlarmIcon = getAlarmStatusIcon(left.alarm);\r\n            const rightAlarmIcon = right ? getAlarmStatusIcon(right.alarm) : '';\r\n\r\n            \/\/ \u7372\u53d6\u72c0\u614b\u71c8\u865f\uff08\u76f4\u63a5\u4f7f\u7528 status_icon\uff09\r\n            const leftStatusIcon = getStatusIcon(left.status_icon);\r\n            const rightStatusIcon = right ? getStatusIcon(right.status_icon) : '';\r\n\r\n            \/\/ \u80cc\u666f\u8272\r\n            const leftBg = leftMaintenance ? 'background:#fff3cd;' : (leftAlert ? 'background:#ffebee;' : '');\r\n            const rightBg = rightMaintenance ? 'background:#fff3cd;' : (rightAlert ? 'background:#ffebee;' : '');\r\n\r\n            \/\/ \u8a2d\u5099\u540d\u7a31\uff08\u7dad\u8b77\u4e2d\u986f\u793a \ud83d\udee0\ufe0f\uff09\r\n            const leftLabel = leftMaintenance ? `${left.name} \ud83d\udee0\ufe0f` : left.name;\r\n            const rightLabel = rightMaintenance ? `${right.name} \ud83d\udee0\ufe0f` : right.name;\r\n\r\n            html += `<tr>`;\r\n\r\n            html += `\r\n            <td style=\"border:1px solid #ccc; padding:8px 10px; width:25%; ${leftBg}\">\r\n                ${leftLabel} ${leftAlarmIcon}\r\n            <\/td>\r\n            <td style=\"border:1px solid #ccc; padding:8px 10px; width:25%; ${leftBg}\">\r\n                ${left.value} ${left.unit} ${leftStatusIcon}\r\n            <\/td>`;\r\n\r\n            if (right) {\r\n                html += `\r\n                <td style=\"border:1px solid #ccc; padding:8px 10px; width:25%; ${rightBg}\">\r\n                    ${rightLabel} ${rightAlarmIcon}\r\n                <\/td>\r\n                <td style=\"border:1px solid #ccc; padding:8px 10px; width:25%; ${rightBg}\">\r\n                    ${right.value} ${right.unit} ${rightStatusIcon}\r\n                <\/td>`;\r\n            }\r\n\r\n            html += `<\/tr>`;\r\n        }\r\n        html += `<\/table>`;\r\n        area.innerHTML = html;\r\n    }\r\n\r\n    \/\/ \u8acb\u6c42\u3010\u4e3b\u7ad9\u3011\u7684\u6578\u64da\u63a5\u53e3\r\n    const MAIN_AJAX_URL = 'https:\/\/zfun.i234.me\/stock\/wp-admin\/admin-ajax.php';\r\n\r\n    function bossRefresh() {\r\n        fetch(MAIN_AJAX_URL, {\r\n            method: 'POST',\r\n            headers: { 'Content-Type': 'application\/x-www-form-urlencoded' },\r\n            body: 'action=boss_refresh_data'\r\n        })\r\n        .then(res => res.json())\r\n        .then(data => bossRenderTable(data))\r\n        .catch(err => {\r\n            document.getElementById('boss-table-area-bsite').innerHTML = `<span style=\"color:#dc3232;\">\u6578\u64da\u9023\u7dda\u4e2d......<\/span>`;\r\n            console.error(err);\r\n        });\r\n    }\r\n\r\n    document.addEventListener('DOMContentLoaded', function(){\r\n        bossRefresh();\r\n        \/\/ \u6bcf30\u79d2\u81ea\u52d5\u5237\u65b0\uff08\u8207\u4e3b\u7ad9\u4e00\u81f4\uff09\r\n        setInterval(bossRefresh, 30000);\r\n    });\r\n    <\/script>\r\n\r\n    \t\r\n\t    <!-- \u6ed1\u52d5\u8996\u7a97\uff1a\u56fa\u5b9a\u9ad8\u5ea6\u53ea\u986f\u793a 2 \u884c\uff0c\u53ef\u6ed1\u52d5\u67e5\u6b77\u53f2 -->\r\n    <div style=\"padding:10px; height: 60px; overflow-y: auto; border:1px solid #ddd; font-size:12px; line-height:25px; background:#f9f9f9;\">\r\n        \r\n    <\/div>\t\r\n  <\/p>\r\n<\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n\r\n  <!-- TAB 1 -->\r\n    <div id=\"tab1\" class=\"tab-content\">\r\n        \r\n<style>\r\n.btn-gray{padding:6px 12px;border-radius:6px;border:1px solid #ccc;background:#f5f5f5;cursor:pointer;}\r\n.btn-blue{padding:6px 12px;border-radius:6px;border:1px solid #0073aa;background:#0073aa;color:white;cursor:pointer;}\r\n#erp-table th {position: sticky; top: 0; background: #f0f0f0; z-index:1;}\r\n#erp-table td, #erp-table th {font-size:13px;border:1px solid #000;padding:3px 5px;}\r\n#erp-table td {text-align: center;}\r\n#erp-table td:nth-child(2) {text-align: left;}\r\n#erp-table td:nth-child(3),#erp-table td:nth-child(4),#erp-table td:nth-child(5) {text-align:right;}\r\n\r\n#erp-loading {\r\n    position: fixed;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100%;\r\n    height: 100%;\r\n    background: rgba(255,255,255,0.92);\r\n    z-index: 99999;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    flex-direction: column;\r\n}\r\n.loading-box {\r\n    width: 320px;\r\n    text-align: center;\r\n}\r\n.loading-bar {\r\n    width: 100%;\r\n    height: 10px;\r\n    background: #eee;\r\n    border-radius: 5px;\r\n    overflow: hidden;\r\n    margin-bottom: 8px;\r\n}\r\n.loading-progress {\r\n    height: 100%;\r\n    width: 0%;\r\n    background: #0073aa;\r\n    transition: width 0.3s ease;\r\n}\r\n.loading-pct {\r\n    font-size: 16px;\r\n    font-weight: bold;\r\n    color: #0073aa;\r\n    margin-bottom: 6px;\r\n}\r\n.loading-text {\r\n    font-size: 14px;\r\n    color: #333;\r\n}\r\n<\/style>\r\n\r\n<div id=\"erp-loading\">\r\n    <div class=\"loading-box\">\r\n        <div class=\"loading-pct\">0%<\/div>\r\n        <div class=\"loading-bar\">\r\n            <div class=\"loading-progress\"><\/div>\r\n        <\/div>\r\n        <div class=\"loading-text\">\u8cc7\u6599\u8655\u7406\u4e2d\uff0c\u8acb\u7a0d\u5019...<\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<p><b>\u5de5\u5ee0\u8abf\u64a5\u81f3<span id=\"ware-title\">\u4e09\u6a13D\u5009<\/span>\u67e5\u6838<\/b><\/p>\r\n\r\n<form method=\"get\" id=\"erp-form\" style=\"margin-bottom:15px;\">\r\n<div style=\"display:flex; flex-wrap:wrap; align-items:center; gap:10px;\">\r\n<label style=\"flex:0 0 60px;\">\u5009\u5225\uff1a\r\n<select name=\"warehouse\" style=\"width:100%;\">\r\n<option value=\"D\"  selected='selected'>D<\/option>\r\n<option value=\"C\" >C<\/option>\r\n<option value=\"B\" >B<\/option>\r\n<\/select>\r\n<\/label>\r\n\r\n<label style=\"flex:0 0 150px;\">\u8d77\u59cb\u65e5\u671f\uff1a\r\n<input type=\"date\" name=\"start_date\" value=\"2026-08-16\" max=\"2026-08-16\" style=\"width:100%;\">\r\n<\/label>\r\n<label style=\"flex:0 0 150px;\">\u7d50\u675f\u65e5\u671f\uff1a\r\n<input type=\"date\" name=\"end_date\" value=\"2026-08-16\" max=\"2026-08-16\" style=\"width:100%;\">\r\n<\/label>\r\n\r\n<div style=\"display:flex; gap:5px;\">\r\n<button type=\"button\" id=\"prev-day\" class=\"btn-gray\">\u2190 \u524d\u4e00\u5929<\/button>\r\n<button type=\"button\" id=\"next-day\" class=\"btn-gray\">\u5f8c\u4e00\u5929 \u2192<\/button>\r\n<button type=\"button\" id=\"today\" class=\"btn-gray\">\u4eca\u5929<\/button>\r\n<\/div>\r\n\r\n<button type=\"submit\" class=\"btn-blue\">\u67e5\u8a62<\/button>\r\n\r\n<label style=\"margin-left:10px;\">\r\n<input type=\"checkbox\" name=\"hide_zero_a\" value=\"1\" >\u50c5\u986f\u793a\u5de5\u5ee0\u8abf\u64a5\u9805\u76ee\r\n<\/label>\r\n<label style=\"margin-left:10px;\">\r\n<input type=\"checkbox\" name=\"daily_view\" value=\"1\" >\u6bcf\u65e5\u7570\u5e38\r\n<\/label>\r\n<\/div>\r\n<\/form>\r\n\r\n<div style=\"height:60vh; overflow:auto; border:1px solid #ccc; margin-top:20px;\">\r\n<table id=\"erp-table\" class=\"widefat\">\r\n<thead>\r\n<tr>\r\n<th style=\"width:40px;\">#<\/th>\r\n<th>\u65e5\u671f \/ \u5546\u54c1\u540d\u7a31<\/th>\r\n<th>\u5de5\u5ee0\u8abf\u64a5<\/th>\r\n<th id=\"ware-header\">\u4e09\u6a13D\u5009\u63a5\u6536<\/th>\r\n<th>\u5dee\u7570<\/th>\r\n<\/tr>\r\n<\/thead>\r\n<tbody id=\"erp-tbody\"><\/tbody>\r\n<\/table>\r\n<\/div>\r\n\r\n<script>\r\njQuery(document).ready(function($){\r\n    var $pct  = $('.loading-pct');\r\n    var $prog = $('.loading-progress');\r\n    var load   = $('#erp-loading');\r\n    \r\n    \/\/ \u5009\u5225\u5207\u63db\u5373\u6642\u66f4\u65b0\u6a19\u984c + \u8868\u982d\r\n    var titleMap = {B:'\u65b0\u7f8e\u8857B\u5009',C:'\u5c08\u6848C\u5009',D:'\u4e09\u6a13D\u5009'};\r\n    $('select[name=\"warehouse\"]').on('change', function(){\r\n        var w = $(this).val();\r\n        var name = titleMap[w] || w+'\u5009';\r\n        $('#ware-title').text(name);\r\n        $('#ware-header').text(name+'\u63a5\u6536');\r\n    });\r\n\r\n    function fetchData() {\r\n        load.show();\r\n        $pct.text('90%');\r\n        $prog.css('width', '90%');\r\n\r\n        $.post('https:\/\/zfun.i234.me\/check\/wp-admin\/admin-ajax.php', {\r\n            action: 'erp_ajax_fetch_data',\r\n            start_date: $('[name=start_date]').val(),\r\n            end_date: $('[name=end_date]').val(),\r\n            warehouse: $('[name=warehouse]').val(),\r\n            hide_zero_a: $('[name=hide_zero_a]').is(':checked') ? 1 : 0,\r\n            daily_view: $('[name=daily_view]').is(':checked') ? 1 : 0\r\n        }).done(function(res){\r\n            $pct.text('100%');\r\n            $prog.css('width','100%');\r\n            $('#erp-tbody').html(res.html);\r\n            \r\n            setTimeout(function(){\r\n                load.fadeOut(200);\r\n            }, 300);\r\n        }).fail(function(){\r\n            $pct.text('100%');\r\n            $prog.css('width','100%');\r\n            setTimeout(()=>load.fadeOut(200), 300);\r\n        });\r\n    }\r\n\r\n    setTimeout(fetchData, 100);\r\n\r\n    $('#erp-form').on('submit', function(e){\r\n        e.preventDefault();\r\n        fetchData();\r\n    });\r\n\r\n    $('[name=daily_view], [name=hide_zero_a]').on('change', fetchData);\r\n\r\n    function updateDate(offset) {\r\n        var sd = new Date($('[name=start_date]').val());\r\n        var ed = new Date($('[name=end_date]').val());\r\n        sd.setDate(sd.getDate() + offset);\r\n        ed.setDate(ed.getDate() + offset);\r\n        $('[name=start_date]').val(sd.toISOString().slice(0,10));\r\n        $('[name=end_date]').val(ed.toISOString().slice(0,10));\r\n        fetchData();\r\n    }\r\n\r\n    $('#prev-day').click(()=>updateDate(-1));\r\n    $('#next-day').click(()=>updateDate(1));\r\n    $('#today').click(function(){\r\n        var today = new Date().toISOString().slice(0,10);\r\n        $('[name=start_date],[name=end_date]').val(today);\r\n        fetchData();\r\n    });\r\n});\r\n<\/script>\r\n\r\n    <\/div>\r\n    <script>\r\n    (function(){\r\n\r\n        function switchTab(tabId) {\r\n\r\n            const tab = document.getElementById(tabId);\r\n            const btn = document.querySelector('.tab-buttons button[data-tab=\"' + tabId + '\"]');\r\n\r\n            \/\/ === \u9632\u5446\uff1a\u4e0d\u5b58\u5728\u5c31\u4e2d\u6b62 ===\r\n            if (!tab || !btn) {\r\n                console.warn('Tab not found:', tabId);\r\n                return;\r\n            }\r\n\r\n            document.querySelectorAll('.tab-content').forEach(el => {\r\n                el.classList.remove('active');\r\n            });\r\n\r\n            document.querySelectorAll('.tab-buttons button').forEach(el => {\r\n                el.classList.remove('active');\r\n            });\r\n\r\n            tab.classList.add('active');\r\n            btn.classList.add('active');\r\n\r\n            \/\/ \u66f4\u65b0\u7db2\u5740 hash\uff08\u4e0d reload\uff09\r\n            history.replaceState(null, null, '#' + tabId);\r\n        }\r\n\r\n        document.addEventListener('DOMContentLoaded', function(){\r\n\r\n            document.querySelectorAll('.tab-buttons button').forEach(function(btn){\r\n                btn.addEventListener('click', function(){\r\n                    switchTab(this.dataset.tab);\r\n                });\r\n            });\r\n\r\n            \/\/ \u9810\u8a2d tab\uff08hash \u5408\u6cd5\u624d\u7528\uff09\r\n            let hash = location.hash.replace('#','');\r\n            if (!hash || !document.getElementById(hash)) {\r\n                hash = 'tab1';\r\n            }\r\n            switchTab(hash);\r\n\r\n        });\r\n\r\n    })();\r\n    <\/script>\r\n\r\n    \n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_theme","meta":{"footnotes":""},"class_list":["post-34158","page","type-page","status-publish","hentry"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/zfun.i234.me\/check\/wp-json\/wp\/v2\/pages\/34158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zfun.i234.me\/check\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/zfun.i234.me\/check\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/zfun.i234.me\/check\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zfun.i234.me\/check\/wp-json\/wp\/v2\/comments?post=34158"}],"version-history":[{"count":20,"href":"https:\/\/zfun.i234.me\/check\/wp-json\/wp\/v2\/pages\/34158\/revisions"}],"predecessor-version":[{"id":34392,"href":"https:\/\/zfun.i234.me\/check\/wp-json\/wp\/v2\/pages\/34158\/revisions\/34392"}],"wp:attachment":[{"href":"https:\/\/zfun.i234.me\/check\/wp-json\/wp\/v2\/media?parent=34158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}