{"id":2594,"date":"2026-06-28T21:42:27","date_gmt":"2026-06-28T13:42:27","guid":{"rendered":"https:\/\/www.shanmu.wang\/?page_id=2594"},"modified":"2026-07-21T22:14:34","modified_gmt":"2026-07-21T14:14:34","slug":"%e5%92%a8%e8%af%a2%e5%b8%88%e5%b7%a5%e4%bd%9c%e5%8f%b0","status":"publish","type":"page","link":"https:\/\/www.shanmu.wang\/en\/%e5%92%a8%e8%af%a2%e5%b8%88%e5%b7%a5%e4%bd%9c%e5%8f%b0\/","title":{"rendered":"\u54a8\u8be2\u5e08\u5de5\u4f5c\u53f0"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2594\" class=\"elementor elementor-2594\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5ce9aa0 e-con e-atomic-element e-flexbox-base e-ede35c3 \" data-id=\"5ce9aa0\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"5ce9aa0\">\n    \t\t<div class=\"elementor-element elementor-element-0adcbd6 elementor-widget elementor-widget-html\" data-id=\"0adcbd6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div style=\"width:100%; max-width:1280px; margin:0 auto; background:transparent; padding:0;\">\r\n\r\n    <style>\r\n        \/* ===== \u5168\u5c40\u91cd\u7f6e & \u57fa\u7840\u8272 ===== *\/\r\n        * {\r\n            margin: 0;\r\n            padding: 0;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        \/* \ud83d\udd25 \u5f3a\u5236\u6eda\u52a8\u6761\u59cb\u7ec8\u663e\u793a\uff0c\u9501\u5b9a\u89c6\u53e3\u5bbd\u5ea6 \u2014 \u8fd9\u662f\u6700\u5173\u952e\u7684\u4fee\u590d *\/\r\n        html {\r\n            overflow-y: scroll !important;\r\n        }\r\n\r\n        \/* \ud83d\udd25 \u9488\u5bf9 Elementor \u5bb9\u5668\u672c\u8eab\u9501\u5b9a\u5bbd\u5ea6 *\/\r\n        [data-id=\"5ce9aa0\"] {\r\n            width: 100% !important;\r\n            max-width: 1280px !important;\r\n            min-width: 0 !important;\r\n            flex-shrink: 0 !important;\r\n            flex-basis: auto !important;\r\n            padding-left: 0 !important;\r\n            padding-right: 0 !important;\r\n        }\r\n\r\n        \/* \ud83d\udd25 \u9501\u5b9a\u5185\u90e8 HTML \u7ec4\u4ef6 *\/\r\n        .elementor-element-0adcbd6 {\r\n            width: 100% !important;\r\n            max-width: 100% !important;\r\n            flex-shrink: 0 !important;\r\n        }\r\n\r\n        \/* \ud83d\udd25 body \u7528 flex \u5c45\u4e2d\uff0c\u4e0d\u9650\u5236\u5bbd\u5ea6 *\/\r\n        body {\r\n            font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\r\n            background-color: #FCF5E6;\r\n            color: #4A3728;\r\n            padding: 24px;\r\n            min-height: 100vh;\r\n            margin: 0;\r\n            display: flex;\r\n            justify-content: center;\r\n            background-color: #FCF5E6 !important;\r\n        }\r\n\r\n        \/* \ud83d\udd25 \u5bb9\u5668\u662f\u552f\u4e00\u7684\u5bbd\u5ea6\u7ea6\u675f\u5c42 *\/\r\n        .container {\r\n            max-width: 1280px;\r\n            width: 100%;\r\n            background: transparent;\r\n        }\r\n\r\n        \/* ===== \u9876\u90e8\u5de5\u5177\u680f ===== *\/\r\n        .toolbar {\r\n            display: flex;\r\n            flex-wrap: wrap;\r\n            align-items: center;\r\n            justify-content: space-between;\r\n            gap: 16px 24px;\r\n            margin-bottom: 28px;\r\n            background: #FFFFFF;\r\n            padding: 16px 24px;\r\n            border-radius: 16px;\r\n            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);\r\n        }\r\n\r\n        .toolbar-left {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 12px;\r\n            flex-wrap: wrap;\r\n            flex-shrink: 1;\r\n            min-width: 0;\r\n        }\r\n\r\n        .toolbar-title {\r\n            font-size: 20px;\r\n            font-weight: 600;\r\n            color: #4A3728;\r\n            letter-spacing: 0.3px;\r\n            white-space: nowrap;\r\n        }\r\n\r\n        .toolbar-title span {\r\n            color: #E6A12C;\r\n        }\r\n\r\n        .result-count {\r\n            font-size: 14px;\r\n            color: #888888;\r\n            margin-left: 4px;\r\n            white-space: nowrap;\r\n        }\r\n        .result-count strong {\r\n            color: #4A3728;\r\n        }\r\n\r\n        .toolbar-right {\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 12px;\r\n            flex-wrap: nowrap;\r\n            flex-shrink: 0;\r\n        }\r\n\r\n        .search-box {\r\n            display: flex;\r\n            align-items: center;\r\n            background: #FCF5E6;\r\n            border: 1px solid #F8E6C8;\r\n            border-radius: 30px;\r\n            padding: 6px 16px 6px 18px;\r\n            transition: border 0.2s;\r\n        }\r\n        .search-box:focus-within {\r\n            border-color: #E6A12C;\r\n            box-shadow: 0 0 0 3px rgba(230, 161, 44, 0.15);\r\n        }\r\n        .search-box input {\r\n            border: none;\r\n            background: transparent;\r\n            padding: 8px 0;\r\n            font-size: 14px;\r\n            outline: none;\r\n            width: 160px;\r\n            color: #4A3728;\r\n        }\r\n        .search-box input::placeholder {\r\n            color: #B0A090;\r\n        }\r\n        .search-box .search-icon {\r\n            color: #B0A090;\r\n            font-size: 16px;\r\n            margin-right: 6px;\r\n        }\r\n\r\n        \/* ===== \u5206\u7c7b\u6807\u7b7e ===== *\/\r\n        .tabs {\r\n            display: flex;\r\n            flex-wrap: wrap;\r\n            gap: 6px;\r\n            margin-bottom: 28px;\r\n            background: #FFFFFF;\r\n            padding: 8px 12px;\r\n            border-radius: 40px;\r\n            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);\r\n        }\r\n        .tab-item {\r\n            padding: 10px 24px;\r\n            border-radius: 30px;\r\n            font-size: 15px;\r\n            font-weight: 500;\r\n            cursor: pointer;\r\n            transition: all 0.25s;\r\n            background: transparent;\r\n            color: #4A3728;\r\n            border: none;\r\n            letter-spacing: 0.3px;\r\n        }\r\n        .tab-item:hover {\r\n            background: #FCF5E6;\r\n            color: #E6A12C;\r\n        }\r\n        .tab-item.active {\r\n            background: #E6A12C;\r\n            color: #FFFFFF;\r\n            box-shadow: 0 4px 10px rgba(230, 161, 44, 0.25);\r\n        }\r\n        .tab-item .badge {\r\n            background: #F2C96D;\r\n            color: #4A3728;\r\n            font-size: 12px;\r\n            font-weight: 600;\r\n            padding: 0 10px;\r\n            border-radius: 20px;\r\n            margin-left: 6px;\r\n            display: inline-block;\r\n        }\r\n        .tab-item.active .badge {\r\n            background: rgba(255, 255, 255, 0.25);\r\n            color: #FFFFFF;\r\n        }\r\n\r\n        \/* ===== \u5361\u7247\u7f51\u683c ===== *\/\r\n        .cards-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(3, 1fr);\r\n            gap: 24px;\r\n            width: 100%;\r\n        }\r\n\r\n        \/* ===== \u5361\u7247\u6837\u5f0f ===== *\/\r\n        .card {\r\n            background: #FFFFFF;\r\n            border-radius: 16px;\r\n            padding: 20px 22px 18px;\r\n            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);\r\n            transition: transform 0.2s, box-shadow 0.25s;\r\n            display: flex;\r\n            flex-direction: column;\r\n            border: 1px solid #F8E6C8;\r\n            position: relative;\r\n            min-height: 180px;\r\n            height: 100%;\r\n        }\r\n        .card:hover {\r\n            transform: translateY(-4px);\r\n            box-shadow: 0 12px 28px rgba(0, 0, 0, 0.07);\r\n            border-color: #EBB459;\r\n        }\r\n\r\n        \/* ---- \u9501\u56fe\u6807\uff08\u4ec5\u5728\u6570\u636e locked: true \u65f6\u6e32\u67d3\uff09 ---- *\/\r\n        .lock-icon {\r\n            position: absolute;\r\n            top: 14px;\r\n            right: 16px;\r\n            font-size: 18px;\r\n            opacity: 0.55;\r\n            z-index: 2;\r\n            pointer-events: none;\r\n            user-select: none;\r\n            transition: opacity 0.25s, transform 0.2s;\r\n            line-height: 1;\r\n            color: #B09070;\r\n        }\r\n        .card:hover .lock-icon {\r\n            opacity: 0.8;\r\n            transform: scale(1.05);\r\n        }\r\n\r\n        .card-title {\r\n            font-size: 17px;\r\n            font-weight: 600;\r\n            color: #4A3728;\r\n            line-height: 1.4;\r\n            margin-bottom: 6px;\r\n            display: -webkit-box;\r\n            -webkit-line-clamp: 2;\r\n            -webkit-box-orient: vertical;\r\n            overflow: hidden;\r\n            min-height: 48px;\r\n            \/* \u4e3a\u9501\u56fe\u6807\u7559\u51fa\u7a7a\u95f4\uff08\u4ec5\u5f53\u663e\u793a\u9501\u65f6\uff0c\u4f46\u4e3a\u4e86\u7edf\u4e00\u90fd\u4fdd\u7559\u53f3\u4fa7\u5185\u8fb9\u8ddd\uff09 *\/\r\n            padding-right: 32px;\r\n        }\r\n\r\n        .card-desc {\r\n            font-size: 14px;\r\n            color: #888888;\r\n            margin-bottom: 12px;\r\n            line-height: 1.5;\r\n            flex: 1;\r\n            display: -webkit-box;\r\n            -webkit-line-clamp: 2;\r\n            -webkit-box-orient: vertical;\r\n            overflow: hidden;\r\n            min-height: 42px;\r\n            padding-right: 4px;\r\n        }\r\n\r\n        .card-footer {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            border-top: 1px solid #F8E6C8;\r\n            padding-top: 14px;\r\n            margin-top: 4px;\r\n            min-height: 52px;\r\n            flex-shrink: 0;\r\n        }\r\n        .card-meta {\r\n            font-size: 13px;\r\n            color: #A09080;\r\n        }\r\n        .card-action {\r\n            background: #EFC37A;\r\n            border: none;\r\n            padding: 8px 20px;\r\n            border-radius: 30px;\r\n            font-size: 14px;\r\n            font-weight: 500;\r\n            color: #4A3728;\r\n            cursor: pointer;\r\n            transition: background 0.2s, transform 0.1s;\r\n            white-space: nowrap;\r\n            text-decoration: none;\r\n            display: inline-block;\r\n        }\r\n        .card-action:hover {\r\n            background: #E6A12C;\r\n            color: #FFFFFF;\r\n            transform: scale(1.02);\r\n        }\r\n\r\n        \/* ===== \u7a7a\u72b6\u6001 ===== *\/\r\n        .empty-state {\r\n            grid-column: 1 \/ -1;\r\n            text-align: center;\r\n            padding: 60px 20px;\r\n            color: #B0A090;\r\n            font-size: 16px;\r\n            background: #FFFFFF;\r\n            border-radius: 16px;\r\n            border: 1px dashed #F8E6C8;\r\n            width: 100%;\r\n        }\r\n        .empty-state strong {\r\n            color: #4A3728;\r\n        }\r\n\r\n        \/* ===== \u54cd\u5e94\u5f0f ===== *\/\r\n        @media (max-width: 992px) {\r\n            .cards-grid {\r\n                grid-template-columns: repeat(2, 1fr);\r\n            }\r\n        }\r\n\r\n        @media (max-width: 700px) {\r\n            body {\r\n                padding: 12px;\r\n            }\r\n            .toolbar {\r\n                flex-direction: column;\r\n                align-items: stretch;\r\n                padding: 14px 16px;\r\n            }\r\n            .toolbar-left,\r\n            .toolbar-right {\r\n                width: 100%;\r\n                justify-content: space-between;\r\n            }\r\n            .toolbar-right {\r\n                flex-wrap: wrap;\r\n            }\r\n            .search-box input {\r\n                width: 120px;\r\n            }\r\n            .cards-grid {\r\n                grid-template-columns: 1fr;\r\n                gap: 16px;\r\n            }\r\n            .tabs {\r\n                padding: 6px 8px;\r\n                border-radius: 20px;\r\n                gap: 4px;\r\n            }\r\n            .tab-item {\r\n                padding: 6px 14px;\r\n                font-size: 13px;\r\n            }\r\n            .tab-item .badge {\r\n                font-size: 11px;\r\n                padding: 0 8px;\r\n            }\r\n            .lock-icon {\r\n                font-size: 16px;\r\n                top: 12px;\r\n                right: 14px;\r\n            }\r\n            .card-title {\r\n                padding-right: 28px;\r\n                min-height: 40px;\r\n                font-size: 15px;\r\n            }\r\n        }\r\n\r\n        @media (max-width: 480px) {\r\n            .search-box input {\r\n                width: 80px;\r\n            }\r\n            .toolbar-title {\r\n                font-size: 17px;\r\n            }\r\n            .result-count {\r\n                font-size: 12px;\r\n            }\r\n            .card {\r\n                padding: 16px 18px 14px;\r\n                min-height: 150px;\r\n            }\r\n            .card-title {\r\n                font-size: 15px;\r\n                min-height: 40px;\r\n                padding-right: 28px;\r\n            }\r\n            .card-desc {\r\n                font-size: 13px;\r\n                min-height: 36px;\r\n            }\r\n            .card-footer {\r\n                min-height: 44px;\r\n                padding-top: 10px;\r\n            }\r\n            .card-action {\r\n                padding: 6px 14px;\r\n                font-size: 13px;\r\n            }\r\n            .lock-icon {\r\n                font-size: 15px;\r\n                top: 10px;\r\n                right: 12px;\r\n            }\r\n        }\r\n    <\/style>\r\n\r\n    <div class=\"container\" id=\"app\">\r\n\r\n        <!-- ===== \u5de5\u5177\u680f ===== -->\r\n        <div class=\"toolbar\">\r\n            <div class=\"toolbar-left\">\r\n                <div class=\"toolbar-title\"><img decoding=\"async\" draggable=\"false\" role=\"img\" class=\"emoji\" alt=\"\ud83d\udccb\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/svg\/1f4cb.svg\"> \u91cf\u8868<span>\u5bfc\u822a<\/span><\/div>\r\n                <span class=\"result-count\" id=\"resultCount\">\u5171 <strong>10<\/strong> \u4e2a\u91cf\u8868<\/span>\r\n            <\/div>\r\n            <div class=\"toolbar-right\">\r\n                <div class=\"search-box\">\r\n                    <span class=\"search-icon\"><img decoding=\"async\" draggable=\"false\" role=\"img\" class=\"emoji\" alt=\"\ud83d\udd0d\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/svg\/1f50d.svg\"><\/span>\r\n                    <input type=\"text\" id=\"searchInput\" placeholder=\"\u641c\u7d22\u91cf\u8868...\" aria-label=\"\u641c\u7d22\u91cf\u8868\">\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- ===== \u5206\u7c7b\u6807\u7b7e ===== -->\r\n        <div class=\"tabs\" id=\"tabsContainer\">\r\n            <!-- \u7531 JS \u52a8\u6001\u751f\u6210 -->\r\n        <\/div>\r\n\r\n        <!-- ===== \u5361\u7247\u7f51\u683c ===== -->\r\n        <div class=\"cards-grid\" id=\"cardsGrid\">\r\n            <!-- \u7531 JS \u52a8\u6001\u6e32\u67d3 -->\r\n        <\/div>\r\n\r\n    <\/div>\r\n\r\n    <script>\r\n        (function() {\r\n            'use strict';\r\n\r\n            \/\/ ============================================================\r\n            \/\/ 1. \u6570\u636e\uff08\u91cf\u8868\u5217\u8868\uff09\u2014\u2014 \u589e\u52a0 locked \u5b57\u6bb5\u63a7\u5236\u9501\u663e\u793a\r\n            \/\/ ============================================================\r\n            const SCALES = [{\r\n                id: 1,\r\n                title: '\u521d\u59cb\u5fc3\u7406\u8bc4\u4f30\u8bb0\u5f55\u8868',\r\n                description: '\u6536\u96c6\u6765\u8bbf\u8005\u57fa\u672c\u4fe1\u606f\u3001\u4e3b\u8bc9\u3001\u65e2\u5f80\u53f2\u4e0e\u521d\u6b65\u8bc4\u4f30\u3002',\r\n                category: '\u4e34\u5e8a\u8bb0\u5f55',\r\n                meta: '\u51719\u4e2a\u6a21\u5757 \u00b7 \u7ea660-90\u5206\u949f',\r\n                link: '\/\u521d\u59cb\u5fc3\u7406\u8bc4\u4f30\u8bb0\u5f55\u8868',\r\n                locked: true   \/\/ \u663e\u793a\u9501\r\n            }, {\r\n                id: 2,\r\n                title: '\u4e2a\u6848\u6982\u5ff5\u5316\u4e0e\u5e72\u9884\u8ba1\u5212',\r\n                description: '\u57fa\u4e8e\u8bc4\u4f30\u7ed3\u679c\u5236\u5b9a\u4e2a\u6848\u6982\u5ff5\u5316\u6846\u67b6\u4e0e\u5206\u9636\u6bb5\u5e72\u9884\u7b56\u7565\u3002',\r\n                category: '\u4e34\u5e8a\u8bb0\u5f55',\r\n                meta: '\u7ed3\u6784\u5316\u6846\u67b6 \u00b7 \u7ea645-60\u5206\u949f',\r\n                link: '\/\u4e2a\u6848\u6982\u5ff5\u5316\u4e0e\u5e72\u9884\u8ba1\u5212',\r\n                locked: true\r\n            }, {\r\n                id: 3,\r\n                title: '\u5fc3\u7406\u54a8\u8be2\u8fc7\u7a0b\u8bb0\u5f55\u8868',\r\n                description: '\u8bb0\u5f55\u6bcf\u6b21\u54a8\u8be2\u7684\u5bf9\u8bdd\u8981\u70b9\u3001\u5e72\u9884\u6280\u672f\u53ca\u6765\u8bbf\u8005\u53cd\u5e94\u3002',\r\n                category: '\u4e34\u5e8a\u8bb0\u5f55',\r\n                meta: '\u6bcf\u6b21\u54a8\u8be2\u8bb0\u5f55 \u00b7 \u7ea610-15\u5206\u949f',\r\n                link: '\/\u5fc3\u7406\u54a8\u8be2\u8fc7\u7a0b\u8bb0\u5f55\u8868',\r\n                locked: true   \/\/ \u4e0d\u663e\u793a\u9501\r\n            }, {\r\n                id: 4,\r\n                title: '\u5fc3\u7406\u54a8\u8be2\u77e5\u60c5\u540c\u610f\u4e66',\r\n                description: '\u6765\u8bbf\u8005\u77e5\u60c5\u540c\u610f\u53ca\u4fdd\u5bc6\u534f\u8bae\uff0c\u5177\u6709\u6cd5\u5f8b\u6548\u529b\u3002',\r\n                category: '\u884c\u653f\u6587\u4ef6',\r\n                meta: '\u77e5\u60c5\u540c\u610f \u00b7 \u7b7e\u7f72\u786e\u8ba4',\r\n                link: '\/\u5fc3\u7406\u54a8\u8be2\u77e5\u60c5\u540c\u610f\u4e66',\r\n                locked: true\r\n            }, {\r\n                id: 5,\r\n                title: 'GAD-7-\u5e7f\u6cdb\u6027\u7126\u8651\u91cf\u8868',\r\n                description: '7\u4e2a\u9879\u76ee\uff0c\u8bc4\u4f30\u7126\u8651\u75c7\u72b6\u4e25\u91cd\u7a0b\u5ea6\u3002',\r\n                category: '\u8bc4\u4f30\u5de5\u5177',\r\n                meta: '\u51717\u9898 \u00b7 \u7ea63-5\u5206\u949f',\r\n                link: '\/gad-7-\u5e7f\u6cdb\u6027\u7126\u8651\u91cf\u8868\/',\r\n                locked: false\r\n            }, {\r\n                id: 6,\r\n                title: 'DSQ-88\u9632\u5fa1\u65b9\u5f0f\u95ee\u5377',\r\n                description: '88\u4e2a\u9879\u76ee\uff0c\u8bc4\u4f30\u4e0d\u6210\u719f\u3001\u6210\u719f\u3001\u4e2d\u95f4\u578b\u9632\u5fa1\u673a\u5236\u53ca\u63a9\u9970\u503e\u5411\u3002',\r\n                category: '\u8bc4\u4f30\u5de5\u5177',\r\n                meta: '\u517188\u9898\uff0c\u7ea6\u970020-25\u5206\u949f\u5b8c\u6210',\r\n                link: '\/dsq-88\u9632\u5fa1\u65b9\u5f0f\u95ee\u5377',\r\n                locked: true\r\n            }, {\r\n                id: 7,\r\n                title: 'PHQ-9 \u6291\u90c1\u75c7\u7b5b\u67e5\u91cf\u8868',\r\n                description: '9\u4e2a\u9879\u76ee\uff0c\u5feb\u901f\u7b5b\u67e5\u6291\u90c1\u969c\u788d\u3002',\r\n                category: '\u8bc4\u4f30\u5de5\u5177',\r\n                meta: '\u51719\u9898 \u00b7 \u7ea65-8\u5206\u949f',\r\n                link: '\/phq-9-\u6291\u90c1\u81ea\u8bc4\u91cf\u8868',\r\n                locked: false\r\n            }, {\r\n                id: 8,\r\n                title: 'SCL-90-R\u75c7\u72b6\u81ea\u8bc4\u91cf\u8868\u4fee\u8ba2\u7248',\r\n                description: '\u8bc4\u4f309\u5927\u5fc3\u7406\u75c7\u72b6\u7ef4\u5ea6\u3002',\r\n                category: '\u8bc4\u4f30\u5de5\u5177',\r\n                meta: '\u517190\u9898\uff0c\u7ea612-15\u5206\u949f\u5b8c\u6210',\r\n                link: '\/scl-90-r\u75c7\u72b6\u81ea\u8bc4\u91cf\u8868\u4fee\u8ba2\u7248\/',\r\n                locked: false\r\n            }, {\r\n                id: 9,\r\n                title: 'AAS\u4fee\u8ba2\u7248\u6210\u4eba\u4f9d\u604b\u91cf\u8868',\r\n                description: '\u8bc4\u4f30\u4e2a\u4f53\u5728\u4eb2\u5bc6\u5173\u7cfb\u4e2d\u7684\u4f9d\u604b\u98ce\u683c\uff0c\u5206\u4e3a\u4eb2\u8fd1\u3001\u4f9d\u8d56\u3001\u7126\u8651\u4e09\u4e2a\u7ef4\u5ea6\u3002',\r\n                category: '\u8bc4\u4f30\u5de5\u5177',\r\n                meta: '\u517118\u9898\uff0c\u7ea610-15\u5206',\r\n                link: '\/\u4fee\u8ba2\u7248\u6210\u4eba\u4f9d\u604b\u91cf\u8868\uff08AAS\uff09',\r\n                locked: false\r\n            }, {\r\n                id: 10,\r\n                title: '\u8036\u9c81-\u5e03\u6717\u5f3a\u8feb\u91cf\u8868',\r\n                description: '\u5f3a\u8feb\u75c7\u72b6\u4e25\u91cd\u7a0b\u5ea6\u8bc4\u4f30\u3002',\r\n                category: '\u8bc4\u4f30\u5de5\u5177',\r\n                meta: '\u517110\u9898 \u00b7 \u7ea65-8\u5206\u949f',\r\n                link: '\/\u8036\u9c81-\u5e03\u6717\u5f3a\u8feb\u91cf\u8868',\r\n                locked: false\r\n            }, {\r\n                id: 11,\r\n                title: '\u8d1d\u514b\u7126\u8651\u91cf\u8868\uff08BAI\uff09',\r\n                description: '\u8bc4\u4f30\u8fc7\u53bb\u4e00\u5468\u5185\u7684\u7126\u8651\u7a0b\u5ea6\u3002',\r\n                category: '\u8bc4\u4f30\u5de5\u5177',\r\n                meta: '\u517121\u9898 \u00b7 \u7ea69-15\u5206\u949f',\r\n                link: '\/\u8d1d\u514b\u7126\u8651\u91cf\u8868\uff08bai\uff09',\r\n                locked: false\r\n            }, {\r\n                id: 12,\r\n                title: 'PCL-5 \u521b\u4f24\u540e\u5e94\u6fc0\u969c\u788d\u7b5b\u67e5\u91cf\u8868',\r\n                description: '\u8bc4\u4f30\u8fc7\u53bb\u4e00\u4e2a\u6708\u5185\u7684\u521b\u4f24\u540e\u5e94\u6fc0\u75c7\u72b6\u3002',\r\n                category: '\u8bc4\u4f30\u5de5\u5177',\r\n                meta: '\u517120\u9898 \u00b7 \u7ea67-13\u5206\u949f',\r\n                link: '\/\u521b\u4f24\u540e\u5e94\u6fc0\u969c\u788d\u7b5b\u67e5\u91cf\u8868-pcl-5\/',\r\n                locked: false\r\n            }, {\r\n                id: 13,\r\n                title: '\u804c\u4e1a\u5174\u8da3\u63a2\u7d22\u91cf\u8868',\r\n                description: '\u57fa\u4e8e\u7ea6\u7ff0\u00b7\u970d\u5170\u5fb7\u804c\u4e1a\u5174\u8da3\u7406\u8bba\uff0c\u8bc4\u4f30\u516d\u79cd\u804c\u4e1a\u5174\u8da3\u7c7b\u578b\u3002',\r\n                category: '\u8bc4\u4f30\u5de5\u5177',\r\n                meta: '\u517160\u9898 \u00b7 \u7ea615-20\u5206\u949f',\r\n                link: '\/\u804c\u4e1a\u5174\u8da3\u63a2\u7d22\u91cf\u8868\/',\r\n                locked: false\r\n            }, {\r\n                id: 14,\r\n                title: 'C-SSRS \u81ea\u6740\u4e25\u91cd\u6027\u91cf\u8868',\r\n                description: '\u5168\u7403\u901a\u7528\u7684\u81ea\u6740\u98ce\u9669\u8bc4\u4f30\u6807\u51c6\u5316\u5de5\u5177 \u00b7 \u4ec5\u9650\u4e13\u4e1a\u4eba\u5458\u4f7f\u7528\u3002',\r\n                category: '\u8bc4\u4f30\u5de5\u5177',\r\n                meta: '\u517127\u9898 \u00b7 \u7ea610-15\u5206\u949f',\r\n                link: '\/\u54e5\u4f26\u6bd4\u4e9a\u81ea\u6740\u4e25\u91cd\u6027\u91cf\u8868-c-ssrs\/',\r\n                locked: false\r\n            }];\r\n\r\n            \/\/ ============================================================\r\n            \/\/ 2. \u72b6\u6001\u7ba1\u7406\r\n            \/\/ ============================================================\r\n            let currentCategory = '\u6240\u6709\u6587\u4ef6';\r\n            let searchTerm = '';\r\n            let scalesData = SCALES.map(item => ({ ...item }));\r\n\r\n            const tabsContainer = document.getElementById('tabsContainer');\r\n            const cardsGrid = document.getElementById('cardsGrid');\r\n            const searchInput = document.getElementById('searchInput');\r\n            const resultCount = document.getElementById('resultCount');\r\n\r\n            \/\/ ============================================================\r\n            \/\/ 3. \u5de5\u5177\u51fd\u6570\r\n            \/\/ ============================================================\r\n            function getUniqueCategories() {\r\n                const cats = scalesData.map(s => s.category);\r\n                return [...new Set(cats)];\r\n            }\r\n\r\n            function getFilteredData() {\r\n                let filtered = scalesData;\r\n                if (searchTerm.trim() !== '') {\r\n                    const kw = searchTerm.trim().toLowerCase();\r\n                    filtered = filtered.filter(s =>\r\n                        s.title.toLowerCase().includes(kw) ||\r\n                        s.description.toLowerCase().includes(kw)\r\n                    );\r\n                } else {\r\n                    if (currentCategory !== '\u6240\u6709\u6587\u4ef6') {\r\n                        filtered = filtered.filter(s => s.category === currentCategory);\r\n                    }\r\n                }\r\n                return filtered;\r\n            }\r\n\r\n            \/\/ ============================================================\r\n            \/\/ 4. \u6e32\u67d3\u51fd\u6570\r\n            \/\/ ============================================================\r\n            function render() {\r\n                \/\/ ---- 4a. \u6e32\u67d3\u5206\u7c7b\u6807\u7b7e ----\r\n                const categories = getUniqueCategories();\r\n                let tabsHtml = '';\r\n\r\n                const allCount = scalesData.length;\r\n                const allActive = (currentCategory === '\u6240\u6709\u6587\u4ef6' && searchTerm.trim() === '') ? 'active' : '';\r\n                tabsHtml += `\r\n                        <button class=\"tab-item ${allActive}\" data-category=\"\u6240\u6709\u6587\u4ef6\">\r\n                            \u6240\u6709\u6587\u4ef6\r\n                            <span class=\"badge\">${allCount}<\/span>\r\n                        <\/button>\r\n                    `;\r\n\r\n                categories.forEach(cat => {\r\n                    const count = scalesData.filter(s => s.category === cat).length;\r\n                    const activeClass = (cat === currentCategory && searchTerm.trim() === '') ? 'active' :\r\n                    '';\r\n                    tabsHtml += `\r\n                            <button class=\"tab-item ${activeClass}\" data-category=\"${cat}\">\r\n                                ${cat}\r\n                                <span class=\"badge\">${count}<\/span>\r\n                            <\/button>\r\n                        `;\r\n                });\r\n                tabsContainer.innerHTML = tabsHtml;\r\n\r\n                \/\/ ---- 4b. \u6e32\u67d3\u5361\u7247 ----\r\n                const filtered = getFilteredData();\r\n                const total = filtered.length;\r\n\r\n                if (searchTerm.trim() !== '') {\r\n                    resultCount.innerHTML = `\u627e\u5230 <strong>${total}<\/strong> \u4e2a\u5339\u914d\u91cf\u8868`;\r\n                } else {\r\n                    resultCount.innerHTML = `\u5171 <strong>${total}<\/strong> \u4e2a\u91cf\u8868`;\r\n                }\r\n\r\n                if (total === 0) {\r\n                    cardsGrid.innerHTML = `\r\n                            <div class=\"empty-state\">\r\n                                <strong>\u6682\u65e0\u5339\u914d\u7684\u91cf\u8868<\/strong><br>\r\n                                \u8bd5\u8bd5\u8c03\u6574\u641c\u7d22\u5173\u952e\u8bcd\u6216\u5207\u6362\u5206\u7c7b\r\n                            <\/div>\r\n                        `;\r\n                    return;\r\n                }\r\n\r\n                let cardsHtml = '';\r\n                filtered.forEach(item => {\r\n                    \/\/ \ud83d\udd12 \u6839\u636e locked \u5b57\u6bb5\u51b3\u5b9a\u662f\u5426\u663e\u793a\u9501\r\n                    const lockHtml = item.locked ? `<span class=\"lock-icon\">\ud83d\udd12<\/span>` : '';\r\n                    cardsHtml += `\r\n                            <div class=\"card\" data-id=\"${item.id}\">\r\n                                ${lockHtml}\r\n                                <div class=\"card-title\">${item.title}<\/div>\r\n                                <div class=\"card-desc\">${item.description}<\/div>\r\n                                <div class=\"card-footer\">\r\n                                    <span class=\"card-meta\">${item.meta}<\/span>\r\n                                    <a href=\"${item.link}\" class=\"card-action\">\u8fdb\u5165<\/a>\r\n                                <\/div>\r\n                            <\/div>\r\n                        `;\r\n                });\r\n                cardsGrid.innerHTML = cardsHtml;\r\n\r\n                \/\/ ---- 4c. \u7ed1\u5b9a\u4e8b\u4ef6 ----\r\n                document.querySelectorAll('.tab-item').forEach(btn => {\r\n                    btn.addEventListener('click', function() {\r\n                        searchTerm = '';\r\n                        searchInput.value = '';\r\n                        currentCategory = this.dataset.category;\r\n                        render();\r\n                    });\r\n                });\r\n            }\r\n\r\n            \/\/ ============================================================\r\n            \/\/ 5. \u4e8b\u4ef6\u76d1\u542c\r\n            \/\/ ============================================================\r\n            searchInput.addEventListener('input', function() {\r\n                searchTerm = this.value;\r\n                render();\r\n            });\r\n\r\n            \/\/ ============================================================\r\n            \/\/ 6. \u521d\u59cb\u5316\u6e32\u67d3\r\n            \/\/ ============================================================\r\n            render();\r\n\r\n        })();\r\n    <\/script>\r\n\r\n<\/div>\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u91cf\u8868\u5bfc\u822a \u5171 10 \u4e2a\u91cf\u8868<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2594","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.shanmu.wang\/en\/wp-json\/wp\/v2\/pages\/2594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.shanmu.wang\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.shanmu.wang\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.shanmu.wang\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shanmu.wang\/en\/wp-json\/wp\/v2\/comments?post=2594"}],"version-history":[{"count":160,"href":"https:\/\/www.shanmu.wang\/en\/wp-json\/wp\/v2\/pages\/2594\/revisions"}],"predecessor-version":[{"id":3292,"href":"https:\/\/www.shanmu.wang\/en\/wp-json\/wp\/v2\/pages\/2594\/revisions\/3292"}],"wp:attachment":[{"href":"https:\/\/www.shanmu.wang\/en\/wp-json\/wp\/v2\/media?parent=2594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}