{"id":846,"date":"2026-06-20T13:13:11","date_gmt":"2026-06-20T05:13:11","guid":{"rendered":"https:\/\/asdnas.com\/?page_id=846"},"modified":"2026-06-20T13:44:30","modified_gmt":"2026-06-20T05:44:30","slug":"%e4%bf%a1%e8%b2%b8%e6%88%bf%e8%b2%b8%e8%a9%a6%e7%ae%97","status":"publish","type":"page","link":"https:\/\/asdnas.com\/?page_id=846","title":{"rendered":"\u4fe1\u8cb8&#038;\u623f\u8cb8\u8a66\u7b97"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"846\" class=\"elementor elementor-846\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d147200 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d147200\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b1b0570\" data-id=\"b1b0570\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5957894 elementor-widget elementor-widget-heading\" data-id=\"5957894\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u4fe1\u8cb8&#038;\u623f\u8cb8\u8a66\u7b97<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4e38963 elementor-widget elementor-widget-html\" data-id=\"4e38963\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- \u53f0\u7063\u8cb8\u6b3e\u8a66\u7b97\u5de5\u5177 v1.0 | \u8cbc\u5165 WordPress\u300c\u81ea\u8a02 HTML\u300d\u5340\u584a\u5373\u53ef\u4f7f\u7528 -->\n\n<style>\n\/* \u2500\u2500 \u6240\u6709\u6a23\u5f0f\u52a0 .tc-wrap \u524d\u7db4\uff0c\u907f\u514d\u6c61\u67d3 WordPress \u4e3b\u984c \u2500\u2500 *\/\n.tc-wrap { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang TC', 'Microsoft JhengHei', sans-serif; color: #1a1a18; background: #f5f5f0; padding: 24px 16px 40px; border-radius: 16px; }\n.tc-wrap *, .tc-wrap *::before, .tc-wrap *::after { box-sizing: border-box; margin: 0; padding: 0; }\n.tc-inner { max-width: 860px; margin: 0 auto; }\n\n\/* \u9801\u9996 *\/\n.tc-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }\n.tc-title { font-size: 22px; font-weight: 500; color: #1a1a18; line-height: 1.3; }\n.tc-subtitle { font-size: 13px; color: #5f5e5a; margin-top: 2px; }\n.tc-header-right { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }\n\n\/* \u9801\u9762\u5207\u63db\u81a0\u56ca *\/\n.tc-switcher { display: flex; background: #fff; border: 0.5px solid rgba(0,0,0,0.15); border-radius: 10px; overflow: hidden; }\n.tc-ps-btn { padding: 10px 26px; font-size: 14px; font-weight: 500; font-family: inherit; border: none; cursor: pointer; background: transparent; color: #5f5e5a; transition: all 0.15s; border-right: 0.5px solid rgba(0,0,0,0.1); line-height: 1; }\n.tc-ps-btn:last-child { border-right: none; }\n.tc-ps-btn.tc-active { background: #185FA5; color: #fff; }\n.tc-ps-btn:not(.tc-active):hover { background: #f5f5f0; }\n\n\/* \u532f\u51fa\u6309\u9215 *\/\n.tc-export-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 20px; border-radius: 8px; background: #185FA5; color: #fff; border: none; font-size: 14px; font-family: inherit; cursor: pointer; font-weight: 500; transition: background 0.15s, transform 0.1s; white-space: nowrap; }\n.tc-export-btn:hover { background: #0C447C; }\n.tc-export-btn:active { transform: scale(0.98); }\n.tc-export-btn:disabled { background: #888780; cursor: not-allowed; }\n.tc-export-btn svg { width: 16px; height: 16px; flex-shrink: 0; }\n@keyframes tc-spin { to { transform: rotate(360deg); } }\n.tc-spin { animation: tc-spin 0.8s linear infinite; display: inline-block; }\n\n\/* \u5361\u7247 *\/\n.tc-card { background: #fff; border-radius: 14px; border: 0.5px solid rgba(0,0,0,0.12); padding: 22px 26px; margin-bottom: 16px; }\n.tc-sec-label { font-size: 13px; font-weight: 500; color: #5f5e5a; margin-bottom: 14px; letter-spacing: 0.02em; display: block; }\n.tc-divider { border: none; border-top: 0.5px solid rgba(0,0,0,0.1); margin: 16px 0; }\n\n\/* Grid *\/\n.tc-g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }\n.tc-g3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }\n.tc-g4 { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }\n.tc-g2x { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }\n.tc-full { grid-column: 1 \/ -1; }\n\n\/* Form *\/\n.tc-ig { display: flex; flex-direction: column; gap: 6px; }\n.tc-ig label { font-size: 13px; color: #5f5e5a; font-weight: 400; }\n.tc-suf { position: relative; display: flex; align-items: center; }\n.tc-suf input, .tc-suf select { width: 100%; padding: 9px 42px 9px 12px !important; box-sizing: border-box !important; }\n.tc-suf .tc-unit { position: absolute; right: 12px; font-size: 13px; color: #888780; pointer-events: none; }\n.tc-wrap input[type=\"number\"]::-webkit-outer-spin-button,\n.tc-wrap input[type=\"number\"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }\n.tc-wrap input[type=\"number\"] { -moz-appearance: textfield; }\n.tc-wrap input[type=\"number\"], .tc-wrap select { border: 0.5px solid rgba(0,0,0,0.25) !important; border-radius: 8px !important; font-size: 15px !important; font-family: inherit !important; background: #fff !important; color: #1a1a18 !important; outline: none !important; transition: border-color 0.15s, box-shadow 0.15s !important; padding: 9px 12px !important; width: 100% !important; box-shadow: none !important; }\n.tc-wrap input[type=\"number\"]:focus, .tc-wrap select:focus { border-color: #378ADD !important; box-shadow: 0 0 0 3px rgba(55,138,221,0.12) !important; }\n\n\/* Metrics *\/\n.tc-metric { background: #f5f5f0; border-radius: 10px; padding: 12px 14px; }\n.tc-metric .tc-ml { font-size: 11px; color: #5f5e5a; margin-bottom: 5px; line-height: 1.4; display: block; }\n.tc-metric .tc-mv { font-size: 16px; font-weight: 500; color: #1a1a18; display: block; }\n.tc-metric .tc-mv.tc-hi   { color: #185FA5; }\n.tc-metric .tc-mv.tc-warn { color: #854F0B; }\n.tc-metric .tc-mv.tc-red  { color: #A32D2D; }\n\n\/* Tabs *\/\n.tc-tab-bar { display: flex; gap: 6px; margin-bottom: 18px; flex-wrap: wrap; }\n.tc-tab { padding: 7px 18px; border-radius: 8px; border: 0.5px solid rgba(0,0,0,0.2); font-size: 13px; cursor: pointer; background: transparent; color: #5f5e5a; font-family: inherit; transition: all 0.15s; line-height: 1; }\n.tc-tab:hover { background: #f5f5f0; }\n.tc-tab.tc-on { background: #E6F1FB; color: #185FA5; border-color: transparent; font-weight: 500; }\n\n\/* Rate toggle *\/\n.tc-rate-btn { padding: 6px 16px; border-radius: 8px; border: 0.5px solid rgba(0,0,0,0.2); font-size: 13px; cursor: pointer; background: transparent; color: #5f5e5a; font-family: inherit; transition: all 0.15s; line-height: 1; }\n.tc-rate-btn.tc-on { background: #E6F1FB; color: #185FA5; border-color: transparent; font-weight: 500; }\n\n\/* Badge *\/\n.tc-badge { display: inline-block; font-size: 11px; padding: 2px 8px; border-radius: 4px; font-weight: 500; margin-left: 4px; }\n.tc-badge-blue  { background: #E6F1FB; color: #185FA5; }\n.tc-badge-green { background: #EAF3DE; color: #3B6D11; }\n.tc-badge-amber { background: #FAEEDA; color: #633806; }\n.tc-badge-gray  { background: #f5f5f0; color: #5f5e5a; }\n\n\/* Table *\/\n.tc-tbl { overflow-x: auto; margin-top: 4px; }\n.tc-wrap table { width: 100% !important; border-collapse: collapse !important; font-size: 13px !important; table-layout: fixed !important; background: transparent !important; }\n.tc-wrap th { text-align: right !important; padding: 8px 10px !important; font-size: 12px !important; font-weight: 500 !important; color: #5f5e5a !important; border-bottom: 0.5px solid rgba(0,0,0,0.1) !important; background: transparent !important; }\n.tc-wrap th:first-child { text-align: center !important; width: 44px !important; }\n.tc-wrap td { text-align: right !important; padding: 8px 10px !important; border-bottom: 0.5px solid rgba(0,0,0,0.07) !important; color: #1a1a18 !important; background: transparent !important; }\n.tc-wrap td:first-child { text-align: center !important; color: #888780 !important; }\n.tc-wrap tr.tc-grace td { color: #888780 !important; background: #f9f9f6 !important; }\n.tc-wrap tr:hover td { background: #f5f5f0 !important; }\n.tc-more-btn { width: 100%; margin-top: 12px; padding: 9px; border: 0.5px solid rgba(0,0,0,0.2); border-radius: 8px; font-size: 13px; font-family: inherit; background: transparent; color: #5f5e5a; cursor: pointer; transition: background 0.15s; }\n.tc-more-btn:hover { background: #f5f5f0; }\n\n\/* Charts *\/\n.tc-chart-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }\n.tc-legend { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 8px; }\n.tc-leg-item { display: flex; align-items: center; gap: 5px; font-size: 12px; color: #5f5e5a; }\n.tc-leg-dot { width: 10px; height: 10px; border-radius: 2px; flex-shrink: 0; }\n\n\/* Fee rows *\/\n.tc-fee-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 0.5px solid rgba(0,0,0,0.07); font-size: 13px; }\n.tc-fee-row:last-child { border-bottom: none; }\n.tc-fee-label { color: #5f5e5a; }\n.tc-fee-val { font-weight: 500; color: #1a1a18; }\n\n\/* Info box *\/\n.tc-info-box { background: #FAEEDA; border: 0.5px solid #EF9F27; border-radius: 8px; padding: 10px 14px; font-size: 12px; color: #633806; line-height: 1.6; }\n\n\/* Footer *\/\n.tc-footer { text-align: center; font-size: 12px; color: #888780; margin-top: 8px; }\n\n\/* Responsive *\/\n@media (max-width: 600px) {\n  .tc-g2, .tc-g3, .tc-g4, .tc-g2x { grid-template-columns: 1fr !important; }\n  .tc-full { grid-column: 1 !important; }\n  .tc-chart-grid { grid-template-columns: 1fr !important; }\n  .tc-card { padding: 16px !important; }\n  .tc-ps-btn { padding: 10px 16px !important; font-size: 13px !important; }\n}\n<\/style>\n\n<div class=\"tc-wrap\">\n<div class=\"tc-inner\">\n\n  <!-- \u2500\u2500 \u9801\u9996 \u2500\u2500 -->\n  <div class=\"tc-header\">\n    <div>\n      <div class=\"tc-title\">\u53f0\u7063\u8cb8\u6b3e\u8a66\u7b97\u5de5\u5177<\/div>\n      <div class=\"tc-subtitle\" id=\"tc-subtitle\">\u4fe1\u7528\u8cb8\u6b3e \u00b7 \u7b49\u984d\u672c\u606f\u9084\u6b3e\u8a66\u7b97<\/div>\n    <\/div>\n    <div class=\"tc-header-right\">\n      <div class=\"tc-switcher\">\n        <button class=\"tc-ps-btn tc-active\" id=\"tc-psb-loan\" onclick=\"tcSwitchPage('loan')\">\u4fe1\u7528\u8cb8\u6b3e<\/button>\n        <button class=\"tc-ps-btn\" id=\"tc-psb-mortgage\" onclick=\"tcSwitchPage('mortgage')\">\u623f\u5c4b\u8cb8\u6b3e<\/button>\n      <\/div>\n      <button class=\"tc-export-btn\" id=\"tc-pdf-btn\" onclick=\"tcExportPDF()\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"12\" y1=\"18\" x2=\"12\" y2=\"12\"\/><line x1=\"9\" y1=\"15\" x2=\"15\" y2=\"15\"\/><\/svg>\n        \u532f\u51fa PDF\n      <\/button>\n    <\/div>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u4fe1\u8cb8\u9801\u9762 \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n  <div id=\"tc-page-loan\">\n    <div class=\"tc-card\">\n      <span class=\"tc-sec-label\">\u8cb8\u6b3e\u689d\u4ef6<\/span>\n      <div class=\"tc-g2\">\n        <div class=\"tc-ig tc-full\"><label>\u8cb8\u6b3e\u91d1\u984d\uff08\u65b0\u53f0\u5e63\uff09<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"l-principal\" value=\"500000\" min=\"1000\" step=\"1000\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u8cb8\u6b3e\u671f\u9593<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"l-term\" value=\"3\" min=\"1\"><span class=\"tc-unit\" id=\"l-term-unit-label\">\u5e74<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u671f\u9593\u55ae\u4f4d<\/label>\n          <select id=\"l-term-unit\"><option value=\"year\" selected>\u5e74<\/option><option value=\"month\">\u6708<\/option><\/select><\/div>\n        <div class=\"tc-ig tc-full\"><label>\u8cb8\u6b3e\u5e74\u5229\u7387<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"l-rate\" value=\"5.88\" min=\"0.01\" max=\"30\" step=\"0.01\"><span class=\"tc-unit\">%<\/span><\/div><\/div>\n      <\/div>\n      <hr class=\"tc-divider\">\n      <span class=\"tc-sec-label\">\u76f8\u95dc\u8cbb\u7528\u8a2d\u5b9a<\/span>\n      <div class=\"tc-g2\" style=\"margin-bottom:12px;\">\n        <div class=\"tc-ig\"><label>\u9280\u884c\u958b\u8fa6\u8cbb \/ \u624b\u7e8c\u8cbb<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"l-fee-bank\" value=\"0\" min=\"0\" step=\"500\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u5e33\u6236\u7ba1\u7406\u8cbb\uff08\u6bcf\u6708\uff09<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"l-fee-mgmt\" value=\"0\" min=\"0\" step=\"100\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u4fe1\u7528\u4fdd\u96aa\u8cbb\uff08\u6bcf\u5e74\uff09<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"l-fee-ins\" value=\"0\" min=\"0\" step=\"100\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u63d0\u524d\u9084\u6b3e\u9055\u7d04\u91d1\uff08\u4e00\u6b21\uff09<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"l-fee-penalty\" value=\"0\" min=\"0\" step=\"100\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n      <\/div>\n      <hr class=\"tc-divider\">\n      <span class=\"tc-sec-label\">\u8a66\u7b97\u7d50\u679c<\/span>\n      <div class=\"tc-g4\" style=\"margin-bottom:10px;\">\n        <div class=\"tc-metric\"><span class=\"tc-ml\">\u6bcf\u6708\u9084\u6b3e\u91d1\u984d<\/span><span class=\"tc-mv tc-hi\" id=\"l-monthly\">$0<\/span><\/div>\n        <div class=\"tc-metric\"><span class=\"tc-ml\">\u7e3d\u9084\u6b3e\u91d1\u984d\uff08\u672c\u5229\uff09<\/span><span class=\"tc-mv\" id=\"l-total\">$0<\/span><\/div>\n        <div class=\"tc-metric\"><span class=\"tc-ml\">\u7e3d\u5229\u606f\u652f\u51fa<\/span><span class=\"tc-mv tc-warn\" id=\"l-interest\">$0<\/span><\/div>\n        <div class=\"tc-metric\"><span class=\"tc-ml\">\u76f8\u95dc\u8cbb\u7528\u5408\u8a08<\/span><span class=\"tc-mv\" id=\"l-fees\">$0<\/span><\/div>\n      <\/div>\n      <div class=\"tc-g2x\">\n        <div class=\"tc-metric\"><span class=\"tc-ml\">\u8cb8\u6b3e\u671f\u9593\u7e3d\u652f\u51fa<\/span><span class=\"tc-mv tc-warn\" id=\"l-total-cost\">$0<\/span><\/div>\n        <div class=\"tc-metric\"><span class=\"tc-ml\">\u5be6\u8cea\u5e74\u5229\u7387\uff08\u542b\u8cbb\u7528\uff09<\/span><span class=\"tc-mv tc-red\" id=\"l-apr\">0%<\/span><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"tc-card\">\n      <div class=\"tc-tab-bar\">\n        <button class=\"tc-tab tc-on\" id=\"lt-tbl\"   onclick=\"lSwitchTab('tbl')\">\u6524\u9084\u660e\u7d30<\/button>\n        <button class=\"tc-tab\"        id=\"lt-fees\"  onclick=\"lSwitchTab('fees')\">\u8cbb\u7528\u660e\u7d30<\/button>\n        <button class=\"tc-tab\"        id=\"lt-chart\" onclick=\"lSwitchTab('chart')\">\u5716\u8868\u5206\u6790<\/button>\n      <\/div>\n      <div id=\"ls-tbl\">\n        <span class=\"tc-sec-label\">\u6bcf\u6708\u672c\u91d1\u8207\u5229\u606f\u660e\u7d30<\/span>\n        <div class=\"tc-tbl\"><table><thead><tr><th>\u671f<\/th><th>\u6708\u4ed8\u6b3e<\/th><th>\u672c\u91d1<\/th><th>\u5229\u606f<\/th><th>\u5269\u9918\u672c\u91d1<\/th><\/tr><\/thead><tbody id=\"l-tbody\"><\/tbody><\/table><\/div>\n        <button class=\"tc-more-btn\" id=\"l-more-btn\" onclick=\"lToggleAll()\">\u986f\u793a\u5168\u90e8 \u2193<\/button>\n      <\/div>\n      <div id=\"ls-fees\" style=\"display:none;\">\n        <span class=\"tc-sec-label\">\u8cbb\u7528\u660e\u7d30<\/span>\n        <div id=\"l-fee-list\"><\/div>\n      <\/div>\n      <div id=\"ls-chart\" style=\"display:none;\">\n        <div class=\"tc-chart-grid\">\n          <div>\n            <span class=\"tc-sec-label\">\u672c\u91d1\u8207\u5229\u606f\u6bd4\u4f8b<\/span>\n            <div style=\"position:relative;height:220px;\"><canvas id=\"l-c-donut\" role=\"img\" aria-label=\"\u4fe1\u8cb8\u672c\u91d1\u5229\u606f\u6bd4\u4f8b\u5713\u9905\u5716\"><\/canvas><\/div>\n            <div class=\"tc-legend\">\n              <div class=\"tc-leg-item\"><div class=\"tc-leg-dot\" style=\"background:#378ADD;\"><\/div>\u8cb8\u6b3e\u672c\u91d1<\/div>\n              <div class=\"tc-leg-item\"><div class=\"tc-leg-dot\" style=\"background:#E24B4A;\"><\/div>\u5229\u606f\u652f\u51fa<\/div>\n            <\/div>\n          <\/div>\n          <div>\n            <span class=\"tc-sec-label\">\u6bcf\u5e74\u5269\u9918\u672c\u91d1\u8da8\u52e2<\/span>\n            <div style=\"position:relative;height:220px;\"><canvas id=\"l-c-line\" role=\"img\" aria-label=\"\u4fe1\u8cb8\u5269\u9918\u672c\u91d1\u8da8\u52e2\u5716\"><\/canvas><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n    <div class=\"tc-footer\">\u672c\u8a66\u7b97\u4ee5\u300c\u7b49\u984d\u672c\u606f\u300d\u65b9\u5f0f\u8a08\u7b97\uff0c\u5be6\u969b\u5229\u7387\u8207\u8cbb\u7528\u8acb\u4ee5\u5404\u9280\u884c\u516c\u544a\u70ba\u6e96\u3002<\/div>\n  <\/div>\n\n  <!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u623f\u8cb8\u9801\u9762 \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n  <div id=\"tc-page-mortgage\" style=\"display:none;\">\n    <div class=\"tc-card\">\n      <span class=\"tc-sec-label\">\u623f\u5c4b\u8cc7\u8a0a<\/span>\n      <div class=\"tc-g2\">\n        <div class=\"tc-ig tc-full\"><label>\u623f\u5c4b\u7e3d\u50f9\uff08\u65b0\u53f0\u5e63\uff09<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"price\" value=\"10000000\" min=\"100000\" step=\"100000\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u8cb8\u6b3e\u6210\u6578<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"ltv\" value=\"70\" min=\"10\" max=\"90\" step=\"5\"><span class=\"tc-unit\">%<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u81ea\u5099\u6b3e <span class=\"tc-badge tc-badge-blue\" id=\"down-badge\">$300\u842c<\/span><\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"down\" value=\"3000000\" min=\"0\" step=\"100000\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"tc-card\">\n      <span class=\"tc-sec-label\">\u8cb8\u6b3e\u689d\u4ef6<\/span>\n      <div class=\"tc-g2\">\n        <div class=\"tc-ig\"><label>\u8cb8\u6b3e\u5e74\u9650<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"years\" value=\"20\" min=\"1\" max=\"40\"><span class=\"tc-unit\">\u5e74<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u9084\u6b3e\u65b9\u5f0f<\/label>\n          <select id=\"method\"><option value=\"equal_payment\" selected>\u7b49\u984d\u672c\u606f<\/option><option value=\"equal_principal\">\u7b49\u984d\u672c\u91d1<\/option><\/select><\/div>\n        <div class=\"tc-ig tc-full\"><label>\u5229\u7387\u985e\u578b<\/label>\n          <div style=\"display:flex;gap:8px;flex-wrap:wrap;\">\n            <button class=\"tc-rate-btn tc-on\" id=\"btn-fixed\"    onclick=\"switchRate('fixed')\">\u56fa\u5b9a\u5229\u7387<\/button>\n            <button class=\"tc-rate-btn\"        id=\"btn-floating\" onclick=\"switchRate('floating')\">\u6a5f\u52d5\u5229\u7387\uff08\u5206\u6bb5\uff09<\/button>\n          <\/div><\/div>\n        <div class=\"tc-ig\" id=\"fixed-rate-group\"><label>\u5e74\u5229\u7387<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"rate-fixed\" value=\"2.06\" min=\"0.1\" max=\"10\" step=\"0.01\"><span class=\"tc-unit\">%<\/span><\/div><\/div>\n        <div id=\"floating-rate-group\" style=\"display:none;grid-column:1\/-1;\">\n          <div class=\"tc-g3\">\n            <div class=\"tc-ig\"><label>\u524d2\u5e74\u5229\u7387 <span class=\"tc-badge tc-badge-green\">\u512a\u60e0\u671f<\/span><\/label>\n              <div class=\"tc-suf\"><input type=\"number\" id=\"rate1\" value=\"1.56\" min=\"0.1\" max=\"10\" step=\"0.01\"><span class=\"tc-unit\">%<\/span><\/div><\/div>\n            <div class=\"tc-ig\"><label>\u7b2c3\u201310\u5e74\u5229\u7387<\/label>\n              <div class=\"tc-suf\"><input type=\"number\" id=\"rate2\" value=\"2.06\" min=\"0.1\" max=\"10\" step=\"0.01\"><span class=\"tc-unit\">%<\/span><\/div><\/div>\n            <div class=\"tc-ig\"><label>\u7b2c11\u5e74\u8d77\u5229\u7387<\/label>\n              <div class=\"tc-suf\"><input type=\"number\" id=\"rate3\" value=\"2.31\" min=\"0.1\" max=\"10\" step=\"0.01\"><span class=\"tc-unit\">%<\/span><\/div><\/div>\n          <\/div><\/div>\n        <div class=\"tc-ig\"><label>\u5bec\u9650\u671f <span class=\"tc-badge tc-badge-amber\">\u53ea\u7e73\u5229\u606f<\/span><\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"grace\" value=\"0\" min=\"0\" max=\"5\" step=\"1\"><span class=\"tc-unit\">\u5e74<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label style=\"opacity:0;\">x<\/label>\n          <div id=\"grace-info\" style=\"display:none;font-size:12px;color:#5f5e5a;padding:8px 0;line-height:1.6;\"><\/div><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"tc-card\">\n      <span class=\"tc-sec-label\">\u76f8\u95dc\u8cbb\u7528\u8a2d\u5b9a<\/span>\n      <div class=\"tc-g2\" style=\"margin-bottom:16px;\">\n        <div class=\"tc-ig\"><label>\u4ee3\u66f8\u8cbb<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"fee-notary\" value=\"8000\" min=\"0\" step=\"1000\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u9280\u884c\u624b\u7e8c\u8cbb \/ \u958b\u8fa6\u8cbb<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"fee-bank\" value=\"3000\" min=\"0\" step=\"500\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u706b\u707d\u4fdd\u96aa\u8cbb\uff08\u6bcf\u5e74\uff09<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"fee-fire\" value=\"3000\" min=\"0\" step=\"100\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u5730\u9707\u57fa\u672c\u4fdd\u96aa\u8cbb\uff08\u6bcf\u5e74\uff09<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"fee-quake\" value=\"1350\" min=\"0\" step=\"50\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u623f\u5c4b\u7a05\uff08\u6bcf\u5e74\uff09<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"fee-house-tax\" value=\"0\" min=\"0\" step=\"100\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u5730\u50f9\u7a05\uff08\u6bcf\u5e74\uff09<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"fee-land-tax\" value=\"0\" min=\"0\" step=\"100\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u7ba1\u7406\u8cbb\uff08\u6bcf\u6708\uff09<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"fee-mgmt\" value=\"0\" min=\"0\" step=\"100\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u4ef2\u4ecb\u8cbb<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"fee-broker\" value=\"0\" min=\"0\" step=\"1000\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n      <\/div>\n      <hr class=\"tc-divider\">\n      <span class=\"tc-sec-label\">\u8cb7\u8ce3\u904e\u6236\u8cbb\u7528 <span class=\"tc-badge tc-badge-gray\">\u4e00\u6b21\u6027<\/span><\/span>\n      <div class=\"tc-g3\">\n        <div class=\"tc-ig\"><label>\u5951\u7a05\uff08\u623f\u5c4b\u8a55\u5b9a\u73fe\u503c \u00d7 6%\uff09<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"fee-contract-tax\" value=\"0\" min=\"0\" step=\"1000\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u571f\u5730\u589e\u503c\u7a05<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"fee-land-value-tax\" value=\"0\" min=\"0\" step=\"1000\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n        <div class=\"tc-ig\"><label>\u767b\u8a18\u898f\u8cbb\uff08\u7d04\u5343\u5206\u4e4b\u4e00\uff09<\/label>\n          <div class=\"tc-suf\"><input type=\"number\" id=\"fee-reg\" value=\"10000\" min=\"0\" step=\"1000\"><span class=\"tc-unit\">\u5143<\/span><\/div><\/div>\n      <\/div>\n      <hr class=\"tc-divider\">\n      <span class=\"tc-sec-label\">\u8a66\u7b97\u7d50\u679c<\/span>\n      <div class=\"tc-g4\" style=\"margin-bottom:10px;\">\n        <div class=\"tc-metric\"><span class=\"tc-ml\">\u8cb8\u6b3e\u7e3d\u984d<\/span><span class=\"tc-mv\" id=\"m-loan\">$0<\/span><\/div>\n        <div class=\"tc-metric\"><span class=\"tc-ml\" id=\"m-p1-label\">\u6bcf\u6708\u4ed8\u6b3e\uff08\u7b2c1\u671f\uff09<\/span><span class=\"tc-mv tc-hi\" id=\"m-p1\">$0<\/span><\/div>\n        <div class=\"tc-metric\"><span class=\"tc-ml\" id=\"m-p2-label\">\u6bcf\u6708\u4ed8\u6b3e\uff08\u672b\u671f\uff09<\/span><span class=\"tc-mv tc-hi\" id=\"m-p2\">$0<\/span><\/div>\n        <div class=\"tc-metric\"><span class=\"tc-ml\">\u7e3d\u5229\u606f\u652f\u51fa<\/span><span class=\"tc-mv tc-warn\" id=\"m-interest\">$0<\/span><\/div>\n      <\/div>\n      <div class=\"tc-g4\">\n        <div class=\"tc-metric\"><span class=\"tc-ml\">\u4e00\u6b21\u6027\u8cbb\u7528\u5408\u8a08<\/span><span class=\"tc-mv\" id=\"m-onetime\">$0<\/span><\/div>\n        <div class=\"tc-metric\"><span class=\"tc-ml\">\u6bcf\u5e74\u7d93\u5e38\u8cbb\u7528<\/span><span class=\"tc-mv\" id=\"m-annual\">$0<\/span><\/div>\n        <div class=\"tc-metric\"><span class=\"tc-ml\">\u8cb8\u6b3e\u671f\u9593\u7e3d\u8cbb\u7528<\/span><span class=\"tc-mv tc-warn\" id=\"m-fee-total\">$0<\/span><\/div>\n        <div class=\"tc-metric\"><span class=\"tc-ml\">\u8cfc\u5c4b\u7e3d\u6210\u672c<\/span><span class=\"tc-mv tc-red\" id=\"m-grand-total\">$0<\/span><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"tc-card\">\n      <div class=\"tc-tab-bar\">\n        <button class=\"tc-tab tc-on\" id=\"tab-tbl\"   onclick=\"switchTab('tbl')\">\u6524\u9084\u660e\u7d30<\/button>\n        <button class=\"tc-tab\"        id=\"tab-fees\"  onclick=\"switchTab('fees')\">\u8cbb\u7528\u660e\u7d30<\/button>\n        <button class=\"tc-tab\"        id=\"tab-chart\" onclick=\"switchTab('chart')\">\u5716\u8868\u5206\u6790<\/button>\n      <\/div>\n      <div id=\"sec-tbl\">\n        <span class=\"tc-sec-label\">\u6bcf\u6708\u9084\u6b3e\u660e\u7d30 <span style=\"font-size:11px;font-weight:400;\">\uff08\u7070\u5e95\u70ba\u5bec\u9650\u671f\uff09<\/span><\/span>\n        <div class=\"tc-tbl\"><table><thead><tr><th>\u671f<\/th><th>\u6708\u4ed8\u6b3e<\/th><th>\u672c\u91d1<\/th><th>\u5229\u606f<\/th><th>\u5269\u9918\u672c\u91d1<\/th><\/tr><\/thead><tbody id=\"tbody\"><\/tbody><\/table><\/div>\n        <button class=\"tc-more-btn\" id=\"more-btn\" onclick=\"toggleAll()\">\u986f\u793a\u5168\u90e8 \u2193<\/button>\n      <\/div>\n      <div id=\"sec-fees\" style=\"display:none;\">\n        <span class=\"tc-sec-label\">\u8cbb\u7528\u660e\u7d30\u7e3d\u89bd<\/span>\n        <div class=\"tc-g2\">\n          <div><p style=\"font-size:12px;color:#5f5e5a;margin-bottom:8px;font-weight:500;\">\u4e00\u6b21\u6027\u8cbb\u7528<\/p><div id=\"onetime-list\"><\/div><\/div>\n          <div>\n            <p style=\"font-size:12px;color:#5f5e5a;margin-bottom:8px;font-weight:500;\">\u6bcf\u5e74\u7d93\u5e38\u8cbb\u7528<\/p><div id=\"annual-list\"><\/div>\n            <div style=\"margin-top:16px;\"><p style=\"font-size:12px;color:#5f5e5a;margin-bottom:8px;font-weight:500;\">\u8cb8\u6b3e\u5229\u606f<\/p><div id=\"interest-list\"><\/div><\/div>\n          <\/div>\n        <\/div>\n        <hr class=\"tc-divider\">\n        <div id=\"fee-summary\"><\/div>\n      <\/div>\n      <div id=\"sec-chart\" style=\"display:none;\">\n        <div class=\"tc-chart-grid\">\n          <div>\n            <span class=\"tc-sec-label\">\u8cfc\u5c4b\u6210\u672c\u7d44\u6210<\/span>\n            <div style=\"position:relative;height:220px;\"><canvas id=\"c-cost\" role=\"img\" aria-label=\"\u8cfc\u5c4b\u6210\u672c\u7d44\u6210\u5713\u9905\u5716\"><\/canvas><\/div>\n            <div class=\"tc-legend\" id=\"cost-legend\"><\/div>\n          <\/div>\n          <div>\n            <span class=\"tc-sec-label\">\u6bcf\u5e74\u5269\u9918\u672c\u91d1<\/span>\n            <div style=\"position:relative;height:220px;\"><canvas id=\"c-line\" role=\"img\" aria-label=\"\u5269\u9918\u672c\u91d1\u8da8\u52e2\u5716\"><\/canvas><\/div>\n          <\/div>\n        <\/div>\n        <div style=\"margin-top:22px;\">\n          <span class=\"tc-sec-label\">\u6708\u4ed8\u6b3e\u7d50\u69cb\uff08\u6bcf\u5e74\uff09<\/span>\n          <div style=\"position:relative;height:240px;\"><canvas id=\"c-bar\" role=\"img\" aria-label=\"\u6708\u4ed8\u6b3e\u672c\u91d1\u8207\u5229\u606f\u9577\u689d\u5716\"><\/canvas><\/div>\n          <div class=\"tc-legend\" style=\"margin-top:8px;\">\n            <div class=\"tc-leg-item\"><div class=\"tc-leg-dot\" style=\"background:#378ADD;\"><\/div>\u672c\u91d1<\/div>\n            <div class=\"tc-leg-item\"><div class=\"tc-leg-dot\" style=\"background:#E24B4A;\"><\/div>\u5229\u606f<\/div>\n            <div class=\"tc-leg-item\"><div class=\"tc-leg-dot\" style=\"background:#EF9F27;\"><\/div>\u5bec\u9650\u671f\uff08\u50c5\u5229\u606f\uff09<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n    <div class=\"tc-footer\">\u672c\u8a66\u7b97\u50c5\u4f9b\u53c3\u8003\uff0c\u5be6\u969b\u5229\u7387\u3001\u8cbb\u7528\u53ca\u6838\u8cb8\u689d\u4ef6\u4f9d\u5404\u9280\u884c\u898f\u5b9a\u70ba\u6e96\u3002<\/div>\n  <\/div>\n\n<\/div><!-- \/tc-inner -->\n<\/div><!-- \/tc-wrap -->\n\n<script>\n(function() {\n\/\/ \u2500\u2500 \u52d5\u614b\u8f09\u5165\u5916\u90e8 library \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction tcLoadScript(src, cb) {\n  if (document.querySelector('script[src=\"'+src+'\"]')) { cb && cb(); return; }\n  var s = document.createElement('script'); s.src = src;\n  s.onload = function(){ cb && cb(); };\n  document.head.appendChild(s);\n}\n\n\/\/ \u4f9d\u5e8f\u8f09\u5165 Chart.js \u2192 html2canvas \u2192 jsPDF \u2192 \u521d\u59cb\u5316\ntcLoadScript('https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/4.4.1\/chart.umd.js', function(){\n  tcLoadScript('https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2canvas\/1.4.1\/html2canvas.min.js', function(){\n    tcLoadScript('https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js', function(){\n      tcInit();\n    });\n  });\n});\n\nfunction tcInit() {\n\n\/\/ \u2500\u2500 \u9801\u9762\u5207\u63db \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nvar tcCurrentPage = 'loan';\nvar tcSubtitles = { loan:'\u4fe1\u7528\u8cb8\u6b3e \u00b7 \u7b49\u984d\u672c\u606f\u9084\u6b3e\u8a66\u7b97', mortgage:'\u623f\u5c4b\u8cb8\u6b3e \u00b7 \u542b\u5bec\u9650\u671f\u3001\u8cbb\u7528\u660e\u7d30\u8207\u8cfc\u5c4b\u7e3d\u6210\u672c' };\nwindow.tcSwitchPage = function(p) {\n  tcCurrentPage = p;\n  document.getElementById('tc-page-loan').style.display     = p==='loan'     ? '' : 'none';\n  document.getElementById('tc-page-mortgage').style.display = p==='mortgage' ? '' : 'none';\n  document.getElementById('tc-psb-loan').className     = 'tc-ps-btn' + (p==='loan'     ? ' tc-active' : '');\n  document.getElementById('tc-psb-mortgage').className = 'tc-ps-btn' + (p==='mortgage' ? ' tc-active' : '');\n  document.getElementById('tc-subtitle').textContent = tcSubtitles[p];\n  if (p==='mortgage') calc();\n};\n\n\/\/ \u2500\u2500 \u683c\u5f0f\u5316 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction fmt(n)  { return '$' + Math.round(n).toLocaleString('zh-TW'); }\nfunction fmtW(n) {\n  n = Math.round(n);\n  if (n >= 1e8) return '$' + (n\/1e8).toFixed(2) + '\u5104';\n  if (n >= 1e4) return '$' + Math.floor(n\/1e4) + '\u842c';\n  return fmt(n);\n}\nfunction gv(id) { var el = document.getElementById(id); return el ? (parseFloat(el.value) || 0) : 0; }\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u4fe1\u8cb8\u908f\u8f2f \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nvar lAmort = [], lShowAll = false, lDonut, lLine;\n\nfunction lCalc() {\n  var P = gv('l-principal'), termVal = gv('l-term');\n  var unit = document.getElementById('l-term-unit').value;\n  var annualRate = gv('l-rate');\n  var n = unit==='year' ? Math.round(termVal*12) : Math.round(termVal);\n  var r = annualRate\/100\/12;\n  if (P<=0||n<=0||annualRate<=0) return;\n  var monthly = r===0 ? P\/n : P*r*Math.pow(1+r,n)\/(Math.pow(1+r,n)-1);\n  var totalPayment = monthly*n, totalInterest = totalPayment-P;\n  var feeBank=gv('l-fee-bank'), feeMgmt=gv('l-fee-mgmt')*n, feeIns=gv('l-fee-ins')*(n\/12), feePenalty=gv('l-fee-penalty');\n  var totalFees=feeBank+feeMgmt+feeIns+feePenalty, totalCost=totalPayment+totalFees;\n  var apr = annualRate;\n  if (totalFees>0) {\n    var rm=r;\n    for(var iter=0;iter<100;iter++){\n      var pmt_r=rm===0?P\/n:P*rm*Math.pow(1+rm,n)\/(Math.pow(1+rm,n)-1);\n      var npv=-P+feeBank+feePenalty, dnpv=0;\n      for(var k=1;k<=n;k++){\n        var disc=Math.pow(1+rm,k), cf=pmt_r+gv('l-fee-mgmt')+gv('l-fee-ins')\/12;\n        npv+=cf\/disc; dnpv-=k*cf\/(disc*(1+rm));\n      }\n      if(Math.abs(npv)<0.001)break;\n      if(dnpv===0)break;\n      rm-=npv\/dnpv;\n      if(rm<0){rm=0.0001;break;}\n    }\n    apr=rm*12*100;\n  }\n  document.getElementById('l-monthly').textContent   = fmt(monthly);\n  document.getElementById('l-total').textContent     = fmtW(totalPayment);\n  document.getElementById('l-interest').textContent  = fmtW(totalInterest);\n  document.getElementById('l-fees').textContent      = fmtW(totalFees);\n  document.getElementById('l-total-cost').textContent= fmtW(totalCost);\n  document.getElementById('l-apr').textContent       = apr.toFixed(2)+'%';\n  var termYears=(n\/12).toFixed(1), feeHtml='';\n  var feeItems=[['\u9280\u884c\u958b\u8fa6\u8cbb \/ \u624b\u7e8c\u8cbb',feeBank],['\u5e33\u6236\u7ba1\u7406\u8cbb\uff08'+n+'\u671f\u5408\u8a08\uff09',feeMgmt],['\u4fe1\u7528\u4fdd\u96aa\u8cbb\uff08'+termYears+'\u5e74\u5408\u8a08\uff09',feeIns],['\u63d0\u524d\u9084\u6b3e\u9055\u7d04\u91d1',feePenalty]];\n  feeItems.forEach(function(item){ if(item[1]>0) feeHtml+='<div class=\"tc-fee-row\"><span class=\"tc-fee-label\">'+item[0]+'<\/span><span class=\"tc-fee-val\">'+fmt(item[1])+'<\/span><\/div>'; });\n  if(!feeHtml) feeHtml='<div class=\"tc-fee-row\"><span class=\"tc-fee-label\" style=\"font-style:italic;color:#888780;\">\uff08\u5c1a\u672a\u586b\u5165\u4efb\u4f55\u8cbb\u7528\uff09<\/span><\/div>';\n  feeHtml+='<div class=\"tc-fee-row\" style=\"padding-top:10px;margin-top:4px;border-top:0.5px solid rgba(0,0,0,0.12);\"><span class=\"tc-fee-label\" style=\"font-weight:500;\">\u8cbb\u7528\u5408\u8a08<\/span><span class=\"tc-fee-val\">'+fmtW(totalFees)+'<\/span><\/div><div class=\"tc-fee-row\"><span class=\"tc-fee-label\">\u7e3d\u5229\u606f\u652f\u51fa<\/span><span class=\"tc-fee-val\">'+fmtW(totalInterest)+'<\/span><\/div><div class=\"tc-fee-row\"><span class=\"tc-fee-label\">\u8cb8\u6b3e\u672c\u91d1<\/span><span class=\"tc-fee-val\">'+fmtW(P)+'<\/span><\/div><div class=\"tc-fee-row\" style=\"padding-top:10px;margin-top:4px;border-top:0.5px solid rgba(0,0,0,0.12);\"><span class=\"tc-fee-label\" style=\"font-weight:500;font-size:14px;color:#1a1a18;\">\u8cb8\u6b3e\u671f\u9593\u7e3d\u652f\u51fa<\/span><span class=\"tc-fee-val\" style=\"color:#A32D2D;font-size:15px;\">'+fmtW(totalCost)+'<\/span><\/div>';\n  document.getElementById('l-fee-list').innerHTML=feeHtml;\n  lAmort=[]; var bal=P;\n  for(var i=1;i<=n;i++){\n    var interest=bal*r, principal=monthly-interest;\n    bal=Math.max(0,bal-principal);\n    lAmort.push({i:i,monthly:monthly,principal:principal,interest:interest,bal:bal});\n  }\n  lRenderTable();\n  if(document.getElementById('ls-chart').style.display!=='none') lRenderCharts();\n}\n\nfunction lRenderTable(){\n  var lim=lShowAll?lAmort.length:Math.min(12,lAmort.length), h='';\n  for(var i=0;i<lim;i++){var d=lAmort[i];h+='<tr><td>'+d.i+'<\/td><td>'+fmt(d.monthly)+'<\/td><td>'+fmt(d.principal)+'<\/td><td>'+fmt(d.interest)+'<\/td><td>'+fmt(d.bal)+'<\/td><\/tr>';}\n  document.getElementById('l-tbody').innerHTML=h;\n  var btn=document.getElementById('l-more-btn');\n  if(lAmort.length<=12){btn.style.display='none';return;}\n  btn.style.display='block'; btn.textContent=lShowAll?'\u6536\u8d77 \u2191':'\u986f\u793a\u5168\u90e8 '+lAmort.length+' \u671f \u2193';\n}\nwindow.lToggleAll=function(){lShowAll=!lShowAll;lRenderTable();};\n\nfunction lRenderCharts(){\n  if(!lAmort.length)return;\n  if(lDonut){lDonut.destroy();lDonut=null;} if(lLine){lLine.destroy();lLine=null;}\n  var P=gv('l-principal'), totalInterest=lAmort.reduce(function(s,d){return s+d.interest;},0);\n  lDonut=new Chart(document.getElementById('l-c-donut'),{type:'doughnut',data:{labels:['\u8cb8\u6b3e\u672c\u91d1','\u5229\u606f\u652f\u51fa'],datasets:[{data:[Math.round(P),Math.round(totalInterest)],backgroundColor:['#378ADD','#E24B4A'],borderWidth:0}]},options:{responsive:true,maintainAspectRatio:false,cutout:'65%',plugins:{legend:{display:false}}}});\n  var n=lAmort.length, yrs=Math.ceil(n\/12), yBals=[P], yLbls=['\u7b2c0\u5e74'];\n  for(var y=1;y<=yrs;y++){yBals.push(Math.round(lAmort[Math.min(y*12-1,n-1)].bal));yLbls.push('\u7b2c'+y+'\u5e74');}\n  lLine=new Chart(document.getElementById('l-c-line'),{type:'line',data:{labels:yLbls,datasets:[{data:yBals,borderColor:'#378ADD',backgroundColor:'rgba(55,138,221,0.08)',fill:true,tension:0.3,pointRadius:3}]},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false}},scales:{y:{ticks:{callback:function(v){return '$'+(v\/1e4).toFixed(0)+'\u842c';},font:{size:11}},grid:{color:'rgba(0,0,0,0.06)'}},x:{ticks:{font:{size:11}},grid:{display:false}}}}});\n}\n\nwindow.lSwitchTab=function(t){\n  ['tbl','fees','chart'].forEach(function(s){\n    var btn=document.getElementById('lt-'+s); if(btn)btn.className='tc-tab'+(t===s?' tc-on':'');\n    var sec=document.getElementById('ls-'+s); if(sec)sec.style.display=t===s?'block':'none';\n  });\n  if(t==='chart')lRenderCharts();\n};\n\ndocument.getElementById('l-term-unit').addEventListener('change',function(){\n  document.getElementById('l-term-unit-label').textContent=this.value==='year'?'\u5e74':'\u6708'; lCalc();\n});\n['l-principal','l-term','l-rate','l-fee-bank','l-fee-mgmt','l-fee-ins','l-fee-penalty'].forEach(function(id){\n  var el=document.getElementById(id); if(el)el.addEventListener('input',lCalc);\n});\nlCalc();\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 \u623f\u8cb8\u908f\u8f2f \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nvar amort=[], showAll=false, rateMode='fixed', cCost, cLine, cBar;\n\nfunction getMonthlyRate(month){\n  if(rateMode==='fixed')return gv('rate-fixed')\/100\/12;\n  var r1=gv('rate1')\/100\/12,r2=gv('rate2')\/100\/12,r3=gv('rate3')\/100\/12;\n  if(month<=24)return r1; if(month<=120)return r2; return r3;\n}\n\nfunction calc(){\n  var price=gv('price'),ltv=gv('ltv'),totalYears=gv('years');\n  var graceYears=Math.min(gv('grace'),totalYears-1);\n  var method=document.getElementById('method').value;\n  var loan=Math.max(0,price*ltv\/100);\n  document.getElementById('m-loan').textContent=fmtW(loan);\n  document.getElementById('down-badge').textContent=fmtW(price-loan);\n  var graceMonths=Math.round(graceYears*12),repayMonths=Math.round(totalYears*12)-graceMonths;\n  amort=[]; var bal=loan,totalPaid=0;\n  for(var i=1;i<=graceMonths;i++){var r=getMonthlyRate(i),interest=bal*r;totalPaid+=interest;amort.push({i:i,pmt:interest,principal:0,interest:interest,bal:bal,grace:true});}\n  if(repayMonths>0){\n    if(method==='equal_payment'){\n      var r0=getMonthlyRate(graceMonths+1);\n      var pmt=r0===0?bal\/repayMonths:bal*r0*Math.pow(1+r0,repayMonths)\/(Math.pow(1+r0,repayMonths)-1);\n      for(var i=graceMonths+1;i<=graceMonths+repayMonths;i++){var r=getMonthlyRate(i),interest=bal*r,principal=pmt-interest;bal=Math.max(0,bal-principal);totalPaid+=pmt;amort.push({i:i,pmt:pmt,principal:principal,interest:interest,bal:bal,grace:false});}\n    } else {\n      var pp=loan\/repayMonths;\n      for(var i=graceMonths+1;i<=graceMonths+repayMonths;i++){var r=getMonthlyRate(i),interest=bal*r,pmt=pp+interest;bal=Math.max(0,bal-pp);totalPaid+=pmt;amort.push({i:i,pmt:pmt,principal:pp,interest:interest,bal:bal,grace:false});}\n    }\n  }\n  var p1=amort.length?amort[0].pmt:0, p2=amort.length?amort[amort.length-1].pmt:0;\n  if(graceMonths>0){\n    document.getElementById('m-p1-label').textContent='\u5bec\u9650\u671f\u6708\u4ed8\u6b3e\uff08\u5229\u606f\uff09';\n    document.getElementById('m-p1').textContent=fmt(p1);\n    document.getElementById('m-p2-label').textContent='\u9084\u6b3e\u671f\u6708\u4ed8\u6b3e'+(method==='equal_principal'?'\uff08\u7b2c1\u671f\uff09':'');\n    document.getElementById('m-p2').textContent=fmt(p2);\n    var gi=document.getElementById('grace-info'); gi.style.display='block';\n    gi.textContent='\u5bec\u9650 '+graceYears+' \u5e74\uff08'+graceMonths+' \u671f\uff09\u53ea\u7e73\u5229\u606f\uff0c\u671f\u6eff\u5f8c\u4ee5 '+repayMonths+' \u671f\u9084\u6e05\u672c\u91d1 '+fmtW(loan);\n  } else {\n    document.getElementById('m-p1-label').textContent='\u6bcf\u6708\u4ed8\u6b3e\uff08\u7b2c1\u671f\uff09';\n    document.getElementById('m-p1').textContent=fmt(p1);\n    document.getElementById('m-p2-label').textContent='\u6bcf\u6708\u4ed8\u6b3e\uff08\u672b\u671f\uff09';\n    document.getElementById('m-p2').textContent=fmt(p2);\n    document.getElementById('grace-info').style.display='none';\n  }\n  var totalInterest=amort.reduce(function(s,d){return s+d.interest;},0);\n  document.getElementById('m-interest').textContent=fmtW(totalInterest);\n  var feeNotary=gv('fee-notary'),feeBankOpen=gv('fee-bank'),feeContractTax=gv('fee-contract-tax'),feeLandValTax=gv('fee-land-value-tax'),feeReg=gv('fee-reg');\n  var feeFire=gv('fee-fire'),feeQuake=gv('fee-quake'),feeHouseTax=gv('fee-house-tax'),feeLandTax=gv('fee-land-tax'),feeMgmt=gv('fee-mgmt');\n  var oneTime=feeNotary+feeBankOpen+feeContractTax+feeLandValTax+feeReg+gv('fee-broker');\n  var annualFee=feeFire+feeQuake+feeHouseTax+feeLandTax+feeMgmt*12;\n  var annualFeeTotal=annualFee*totalYears;\n  var feeTotal=oneTime+annualFeeTotal+totalInterest;\n  var grandTotal=loan+(price-loan)+oneTime+annualFeeTotal+totalInterest;\n  document.getElementById('m-onetime').textContent=fmtW(oneTime);\n  document.getElementById('m-annual').textContent=fmtW(annualFee);\n  document.getElementById('m-fee-total').textContent=fmtW(feeTotal);\n  document.getElementById('m-grand-total').textContent=fmtW(grandTotal);\n  renderFeeList(oneTime,annualFee,annualFeeTotal,totalInterest,totalYears,loan,grandTotal,{feeNotary:feeNotary,feeBankOpen:feeBankOpen,feeContractTax:feeContractTax,feeLandValTax:feeLandValTax,feeReg:feeReg,feeBroker:gv('fee-broker'),feeFire:feeFire,feeQuake:feeQuake,feeHouseTax:feeHouseTax,feeLandTax:feeLandTax,feeMgmt:feeMgmt});\n  renderTable();\n  if(document.getElementById('sec-chart').style.display!=='none')renderCharts();\n}\n\nfunction renderFeeList(oneTime,annualFee,annualFeeTotal,totalInterest,totalYears,loan,grandTotal,fees){\n  var h=''; [['\u4ee3\u66f8\u8cbb',fees.feeNotary],['\u9280\u884c\u958b\u8fa6\u8cbb',fees.feeBankOpen],['\u4ef2\u4ecb\u8cbb',fees.feeBroker],['\u5951\u7a05',fees.feeContractTax],['\u571f\u5730\u589e\u503c\u7a05',fees.feeLandValTax],['\u767b\u8a18\u898f\u8cbb',fees.feeReg]].forEach(function(item){if(item[1]>0)h+='<div class=\"tc-fee-row\"><span class=\"tc-fee-label\">'+item[0]+'<\/span><span class=\"tc-fee-val\">'+fmt(item[1])+'<\/span><\/div>';});\n  if(!h)h='<div class=\"tc-fee-row\"><span class=\"tc-fee-label\" style=\"font-style:italic;color:#888780;\">\uff08\u5c1a\u672a\u586b\u5165\uff09<\/span><\/div>';\n  h+='<div class=\"tc-fee-row\"><span class=\"tc-fee-label\" style=\"font-weight:500;\">\u5c0f\u8a08<\/span><span class=\"tc-fee-val\">'+fmtW(oneTime)+'<\/span><\/div>';\n  document.getElementById('onetime-list').innerHTML=h;\n  var h2=''; [['\u706b\u707d\u4fdd\u96aa\u8cbb\uff08\u6bcf\u5e74\uff09',fees.feeFire],['\u5730\u9707\u4fdd\u96aa\u8cbb\uff08\u6bcf\u5e74\uff09',fees.feeQuake],['\u623f\u5c4b\u7a05\uff08\u6bcf\u5e74\uff09',fees.feeHouseTax],['\u5730\u50f9\u7a05\uff08\u6bcf\u5e74\uff09',fees.feeLandTax],['\u7ba1\u7406\u8cbb\uff08\u6bcf\u5e74\uff09',fees.feeMgmt*12]].forEach(function(item){if(item[1]>0)h2+='<div class=\"tc-fee-row\"><span class=\"tc-fee-label\">'+item[0]+'<\/span><span class=\"tc-fee-val\">'+fmt(item[1])+'<\/span><\/div>';});\n  if(!h2)h2='<div class=\"tc-fee-row\"><span class=\"tc-fee-label\" style=\"font-style:italic;color:#888780;\">\uff08\u5c1a\u672a\u586b\u5165\uff09<\/span><\/div>';\n  h2+='<div class=\"tc-fee-row\"><span class=\"tc-fee-label\" style=\"font-weight:500;\">\u5c0f\u8a08\uff08\u8cb8\u6b3e '+totalYears+' \u5e74\u5408\u8a08\uff09<\/span><span class=\"tc-fee-val\">'+fmtW(annualFeeTotal)+'<\/span><\/div>';\n  document.getElementById('annual-list').innerHTML=h2;\n  document.getElementById('interest-list').innerHTML='<div class=\"tc-fee-row\"><span class=\"tc-fee-label\">\u7e3d\u5229\u606f\u652f\u51fa<\/span><span class=\"tc-fee-val\">'+fmtW(totalInterest)+'<\/span><\/div>';\n  document.getElementById('fee-summary').innerHTML='<div class=\"tc-fee-row\"><span class=\"tc-fee-label\">\u4e00\u6b21\u6027\u8cbb\u7528<\/span><span class=\"tc-fee-val\">'+fmtW(oneTime)+'<\/span><\/div><div class=\"tc-fee-row\"><span class=\"tc-fee-label\">\u8cb8\u6b3e\u671f\u9593\u7d93\u5e38\u8cbb\u7528\uff08'+totalYears+'\u5e74\uff09<\/span><span class=\"tc-fee-val\">'+fmtW(annualFeeTotal)+'<\/span><\/div><div class=\"tc-fee-row\"><span class=\"tc-fee-label\">\u7e3d\u5229\u606f\u652f\u51fa<\/span><span class=\"tc-fee-val\">'+fmtW(totalInterest)+'<\/span><\/div><div class=\"tc-fee-row\"><span class=\"tc-fee-label\">\u8cb8\u6b3e\u672c\u91d1<\/span><span class=\"tc-fee-val\">'+fmtW(loan)+'<\/span><\/div><div class=\"tc-fee-row\" style=\"padding-top:10px;margin-top:4px;border-top:0.5px solid rgba(0,0,0,0.12);\"><span class=\"tc-fee-label\" style=\"font-weight:500;font-size:14px;color:#1a1a18;\">\u8cfc\u5c4b\u7e3d\u6210\u672c<\/span><span class=\"tc-fee-val\" style=\"color:#185FA5;font-size:15px;\">'+fmtW(grandTotal)+'<\/span><\/div>';\n}\n\nfunction renderTable(){\n  var lim=showAll?amort.length:Math.min(12,amort.length),h='';\n  for(var i=0;i<lim;i++){var d=amort[i];h+='<tr class=\"'+(d.grace?'tc-grace':'')+'\"><td>'+d.i+'<\/td><td>'+fmt(d.pmt)+'<\/td><td>'+(d.grace?'\u2014':fmt(d.principal))+'<\/td><td>'+fmt(d.interest)+'<\/td><td>'+fmt(d.bal)+'<\/td><\/tr>';}\n  document.getElementById('tbody').innerHTML=h;\n  var btn=document.getElementById('more-btn');\n  if(amort.length<=12){btn.style.display='none';return;}\n  btn.style.display='block'; btn.textContent=showAll?'\u6536\u8d77 \u2191':'\u986f\u793a\u5168\u90e8 '+amort.length+' \u671f \u2193';\n}\nwindow.toggleAll=function(){showAll=!showAll;renderTable();};\n\nfunction renderCharts(){\n  if(!amort.length)return;\n  if(cCost){cCost.destroy();cCost=null;} if(cLine){cLine.destroy();cLine=null;} if(cBar){cBar.destroy();cBar=null;}\n  var price=gv('price'),ltv=gv('ltv'),totalYears=gv('years');\n  var loan=price*ltv\/100,downPay=price-loan;\n  var totalInterest=amort.reduce(function(s,d){return s+d.interest;},0);\n  var annualFeeTotal=(gv('fee-fire')+gv('fee-quake')+gv('fee-house-tax')+gv('fee-land-tax')+gv('fee-mgmt')*12)*totalYears;\n  var oneTime=gv('fee-notary')+gv('fee-bank')+gv('fee-contract-tax')+gv('fee-land-value-tax')+gv('fee-reg');\n  var costData=[{label:'\u81ea\u5099\u6b3e',val:Math.round(downPay),color:'#97C459'},{label:'\u8cb8\u6b3e\u672c\u91d1',val:Math.round(loan),color:'#378ADD'},{label:'\u7e3d\u5229\u606f',val:Math.round(totalInterest),color:'#E24B4A'},{label:'\u4e00\u6b21\u6027\u8cbb\u7528',val:Math.round(oneTime),color:'#EF9F27'},{label:'\u4fdd\u96aa\u7a05\u8cbb',val:Math.round(annualFeeTotal),color:'#888780'}].filter(function(d){return d.val>0;});\n  var grand=costData.reduce(function(s,d){return s+d.val;},0);\n  document.getElementById('cost-legend').innerHTML=costData.map(function(d){return '<div class=\"tc-leg-item\"><div class=\"tc-leg-dot\" style=\"background:'+d.color+';\"><\/div>'+d.label+' '+Math.round(d.val\/grand*100)+'%<\/div>';}).join('');\n  cCost=new Chart(document.getElementById('c-cost'),{type:'doughnut',data:{labels:costData.map(function(d){return d.label;}),datasets:[{data:costData.map(function(d){return d.val;}),backgroundColor:costData.map(function(d){return d.color;}),borderWidth:0}]},options:{responsive:true,maintainAspectRatio:false,cutout:'60%',plugins:{legend:{display:false}}}});\n  var yrs=Math.ceil(amort.length\/12),yLabels=['\u7b2c0\u5e74'],yBals=[amort[0].bal+amort[0].principal];\n  for(var y=1;y<=yrs;y++){yBals.push(Math.round(amort[Math.min(y*12-1,amort.length-1)].bal));yLabels.push('\u7b2c'+y+'\u5e74');}\n  cLine=new Chart(document.getElementById('c-line'),{type:'line',data:{labels:yLabels,datasets:[{data:yBals,borderColor:'#378ADD',backgroundColor:'rgba(55,138,221,0.08)',fill:true,tension:0.3,pointRadius:3}]},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false}},scales:{y:{ticks:{callback:function(v){return '$'+(v\/1e4).toFixed(0)+'\u842c';},font:{size:11}},grid:{color:'rgba(0,0,0,0.06)'}},x:{ticks:{font:{size:11}},grid:{display:false}}}}});\n  var barLabels=[],barP=[],barI=[],barBgP=[];\n  for(var y=0;y<yrs;y++){var idx=Math.min(y*12,amort.length-1);barLabels.push('\u7b2c'+(y+1)+'\u5e74');barP.push(Math.round(amort[idx].principal));barI.push(Math.round(amort[idx].interest));barBgP.push(amort[idx].grace?'#EF9F27':'#378ADD');}\n  cBar=new Chart(document.getElementById('c-bar'),{type:'bar',data:{labels:barLabels,datasets:[{label:'\u672c\u91d1',data:barP,backgroundColor:barBgP,stack:'s'},{label:'\u5229\u606f',data:barI,backgroundColor:'#E24B4A',stack:'s'}]},options:{responsive:true,maintainAspectRatio:false,plugins:{legend:{display:false}},scales:{x:{stacked:true,ticks:{font:{size:10},maxRotation:45},grid:{display:false}},y:{stacked:true,ticks:{callback:function(v){return '$'+(v\/1e4).toFixed(0)+'\u842c';},font:{size:11}},grid:{color:'rgba(0,0,0,0.06)'}}}}});\n}\n\nwindow.switchRate=function(m){\n  rateMode=m;\n  document.getElementById('btn-fixed').className='tc-rate-btn'+(m==='fixed'?' tc-on':'');\n  document.getElementById('btn-floating').className='tc-rate-btn'+(m==='floating'?' tc-on':'');\n  document.getElementById('fixed-rate-group').style.display=m==='fixed'?'':'none';\n  document.getElementById('floating-rate-group').style.display=m==='floating'?'block':'none';\n  calc();\n};\nwindow.switchTab=function(t){\n  ['tbl','fees','chart'].forEach(function(s){\n    document.getElementById('tab-'+s).className='tc-tab'+(t===s?' tc-on':'');\n    document.getElementById('sec-'+s).style.display=t===s?'block':'none';\n  });\n  if(t==='chart')renderCharts();\n};\n\ndocument.getElementById('price').addEventListener('input',function(){\n  document.getElementById('down').value=Math.round((parseFloat(this.value)||0)*(1-gv('ltv')\/100));calc();\n});\ndocument.getElementById('ltv').addEventListener('input',function(){\n  document.getElementById('down').value=Math.round(gv('price')*(1-(parseFloat(this.value)||70)\/100));calc();\n});\n['down','years','grace','rate-fixed','rate1','rate2','rate3','fee-notary','fee-bank','fee-broker','fee-fire','fee-quake','fee-house-tax','fee-land-tax','fee-mgmt','fee-contract-tax','fee-land-value-tax','fee-reg'].forEach(function(id){\n  var el=document.getElementById(id); if(el)el.addEventListener('input',calc);\n});\ndocument.getElementById('method').addEventListener('change',calc);\n\n\/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 PDF \u532f\u51fa \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\nwindow.tcExportPDF = function() {\n  var btn=document.getElementById('tc-pdf-btn');\n  btn.disabled=true; btn.innerHTML='<span class=\"tc-spin\">\u27f3<\/span> \u7522\u751f\u4e2d\u2026';\n  var isLoan=tcCurrentPage==='loan';\n  Promise.resolve().then(function(){\n    if(isLoan){lShowAll=true;lRenderTable();lSwitchTab('chart');lRenderCharts();}\n    else{showAll=true;renderTable();switchTab('chart');renderCharts();}\n    return new Promise(function(r){setTimeout(r,600);});\n  }).then(function(){\n    var pageEl=document.getElementById(isLoan?'tc-page-loan':'tc-page-mortgage');\n    var wrap=document.createElement('div');\n    wrap.style.cssText='position:fixed;top:0;left:0;z-index:-9999;width:860px;background:#f5f5f0;padding:24px;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"PingFang TC\",\"Microsoft JhengHei\",sans-serif;color:#1a1a18';\n    pageEl.querySelectorAll('.tc-card,.tc-footer').forEach(function(el){\n      var clone=el.cloneNode(true);\n      clone.querySelectorAll('[id^=\"sec-\"],[id^=\"ls-\"]').forEach(function(s){s.style.display='block';});\n      wrap.appendChild(clone);\n    });\n    document.body.appendChild(wrap);\n    return new Promise(function(r){setTimeout(r,300);}).then(function(){\n      return html2canvas(wrap,{scale:2,useCORS:true,backgroundColor:'#f5f5f0',logging:false,windowWidth:860,width:860});\n    }).then(function(canvas){\n      document.body.removeChild(wrap);\n      var jsPDF=window.jspdf.jsPDF;\n      var pdf=new jsPDF({orientation:'portrait',unit:'px',format:'a4'});\n      var pdfW=pdf.internal.pageSize.getWidth(),pdfH=pdf.internal.pageSize.getHeight();\n      var imgW=canvas.width,imgH=canvas.height,pageImgH=Math.floor((pdfH\/pdfW)*imgW),yOffset=0;\n      while(yOffset<imgH){\n        var sliceH=Math.min(pageImgH,imgH-yOffset);\n        var pc=document.createElement('canvas');pc.width=imgW;pc.height=pageImgH;\n        var ctx=pc.getContext('2d');ctx.fillStyle='#f5f5f0';ctx.fillRect(0,0,imgW,pageImgH);\n        ctx.drawImage(canvas,0,yOffset,imgW,sliceH,0,0,imgW,sliceH);\n        if(yOffset>0)pdf.addPage();\n        pdf.addImage(pc.toDataURL('image\/jpeg',0.92),'JPEG',0,0,pdfW,pdfH);\n        yOffset+=pageImgH;\n      }\n      var now=new Date(),ds=now.getFullYear()+String(now.getMonth()+1).padStart(2,'0')+String(now.getDate()).padStart(2,'0');\n      pdf.save((isLoan?'\u4fe1\u8cb8':'\u623f\u8cb8')+'\u8a66\u7b97\u5831\u544a_'+ds+'.pdf');\n    });\n  }).catch(function(e){alert('PDF \u7522\u751f\u5931\u6557\uff0c\u8acb\u518d\u8a66\u4e00\u6b21\u3002\\n'+e.message);})\n  .finally(function(){\n    if(isLoan){lShowAll=false;lRenderTable();lSwitchTab('tbl');}\n    else{showAll=false;renderTable();switchTab('tbl');}\n    btn.disabled=false;\n    btn.innerHTML='<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"12\" y1=\"18\" x2=\"12\" y2=\"12\"\/><line x1=\"9\" y1=\"15\" x2=\"15\" y2=\"15\"\/><\/svg> \u532f\u51fa PDF';\n  });\n};\n\n} \/\/ end tcInit\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u53f0\u7063\u8cb8\u6b3e\u8a66\u7b97\u5de5\u5177 \u4fe1\u7528\u8cb8\u6b3e \u00b7 \u7b49\u984d\u672c\u606f\u9084\u6b3e\u8a66\u7b97 \u4fe1\u7528\u8cb8\u6b3e \u623f\u5c4b\u8cb8\u6b3e \u532f\u51fa PDF \u8cb8\u6b3e\u689d\u4ef6 \u8cb8\u6b3e\u91d1\u984d\uff08\u65b0\u53f0\u5e63 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":849,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-846","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u4fe1\u8cb8&amp;\u623f\u8cb8\u8a66\u7b97 - \u827e\u65af\u5fb7\u6709\u9650\u516c\u53f8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/asdnas.com\/\u91d1\u878d\u5c0f\u5de5\u5177\/\u4fe1\u8cb8\u623f\u8cb8\u8a66\u7b97\/\" \/>\n<meta property=\"og:locale\" content=\"zh_TW\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4fe1\u8cb8&amp;\u623f\u8cb8\u8a66\u7b97 - \u827e\u65af\u5fb7\u6709\u9650\u516c\u53f8\" \/>\n<meta property=\"og:description\" content=\"\u53f0\u7063\u8cb8\u6b3e\u8a66\u7b97\u5de5\u5177 \u4fe1\u7528\u8cb8\u6b3e \u00b7 \u7b49\u984d\u672c\u606f\u9084\u6b3e\u8a66\u7b97 \u4fe1\u7528\u8cb8\u6b3e \u623f\u5c4b\u8cb8\u6b3e \u532f\u51fa PDF \u8cb8\u6b3e\u689d\u4ef6 \u8cb8\u6b3e\u91d1\u984d\uff08\u65b0\u53f0\u5e63 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/asdnas.com\/\u91d1\u878d\u5c0f\u5de5\u5177\/\u4fe1\u8cb8\u623f\u8cb8\u8a66\u7b97\/\" \/>\n<meta property=\"og:site_name\" content=\"\u827e\u65af\u5fb7\u6709\u9650\u516c\u53f8\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/asdnascom\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-20T05:44:30+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/asdnas.com\\\/%e9%87%91%e8%9e%8d%e5%b0%8f%e5%b7%a5%e5%85%b7\\\/%e4%bf%a1%e8%b2%b8%e6%88%bf%e8%b2%b8%e8%a9%a6%e7%ae%97\\\/\",\"url\":\"https:\\\/\\\/asdnas.com\\\/%e9%87%91%e8%9e%8d%e5%b0%8f%e5%b7%a5%e5%85%b7\\\/%e4%bf%a1%e8%b2%b8%e6%88%bf%e8%b2%b8%e8%a9%a6%e7%ae%97\\\/\",\"name\":\"\u4fe1\u8cb8&\u623f\u8cb8\u8a66\u7b97 - \u827e\u65af\u5fb7\u6709\u9650\u516c\u53f8\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/asdnas.com\\\/#website\"},\"datePublished\":\"2026-06-20T05:13:11+00:00\",\"dateModified\":\"2026-06-20T05:44:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/asdnas.com\\\/%e9%87%91%e8%9e%8d%e5%b0%8f%e5%b7%a5%e5%85%b7\\\/%e4%bf%a1%e8%b2%b8%e6%88%bf%e8%b2%b8%e8%a9%a6%e7%ae%97\\\/#breadcrumb\"},\"inLanguage\":\"zh-TW\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/asdnas.com\\\/%e9%87%91%e8%9e%8d%e5%b0%8f%e5%b7%a5%e5%85%b7\\\/%e4%bf%a1%e8%b2%b8%e6%88%bf%e8%b2%b8%e8%a9%a6%e7%ae%97\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/asdnas.com\\\/%e9%87%91%e8%9e%8d%e5%b0%8f%e5%b7%a5%e5%85%b7\\\/%e4%bf%a1%e8%b2%b8%e6%88%bf%e8%b2%b8%e8%a9%a6%e7%ae%97\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9801\",\"item\":\"https:\\\/\\\/asdnas.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u91d1\u878d\u5c0f\u5de5\u5177\",\"item\":\"https:\\\/\\\/asdnas.com\\\/%e9%87%91%e8%9e%8d%e5%b0%8f%e5%b7%a5%e5%85%b7\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\u4fe1\u8cb8&#038;\u623f\u8cb8\u8a66\u7b97\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/asdnas.com\\\/#website\",\"url\":\"https:\\\/\\\/asdnas.com\\\/\",\"name\":\"\u827e\u65af\u5fb7\u6709\u9650\u516c\u53f8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/asdnas.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/asdnas.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-TW\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/asdnas.com\\\/#organization\",\"name\":\"\u827e\u65af\u5fb7\u6709\u9650\u516c\u53f8ASDNAS\",\"url\":\"https:\\\/\\\/asdnas.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-TW\",\"@id\":\"https:\\\/\\\/asdnas.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/asdnas.com\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/ASDNAS-logo1.png\",\"contentUrl\":\"https:\\\/\\\/asdnas.com\\\/wp-content\\\/uploads\\\/2022\\\/07\\\/ASDNAS-logo1.png\",\"width\":817,\"height\":316,\"caption\":\"\u827e\u65af\u5fb7\u6709\u9650\u516c\u53f8ASDNAS\"},\"image\":{\"@id\":\"https:\\\/\\\/asdnas.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/asdnascom\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u4fe1\u8cb8&\u623f\u8cb8\u8a66\u7b97 - \u827e\u65af\u5fb7\u6709\u9650\u516c\u53f8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/asdnas.com\/\u91d1\u878d\u5c0f\u5de5\u5177\/\u4fe1\u8cb8\u623f\u8cb8\u8a66\u7b97\/","og_locale":"zh_TW","og_type":"article","og_title":"\u4fe1\u8cb8&\u623f\u8cb8\u8a66\u7b97 - \u827e\u65af\u5fb7\u6709\u9650\u516c\u53f8","og_description":"\u53f0\u7063\u8cb8\u6b3e\u8a66\u7b97\u5de5\u5177 \u4fe1\u7528\u8cb8\u6b3e \u00b7 \u7b49\u984d\u672c\u606f\u9084\u6b3e\u8a66\u7b97 \u4fe1\u7528\u8cb8\u6b3e \u623f\u5c4b\u8cb8\u6b3e \u532f\u51fa PDF \u8cb8\u6b3e\u689d\u4ef6 \u8cb8\u6b3e\u91d1\u984d\uff08\u65b0\u53f0\u5e63 [&hellip;]","og_url":"https:\/\/asdnas.com\/\u91d1\u878d\u5c0f\u5de5\u5177\/\u4fe1\u8cb8\u623f\u8cb8\u8a66\u7b97\/","og_site_name":"\u827e\u65af\u5fb7\u6709\u9650\u516c\u53f8","article_publisher":"https:\/\/www.facebook.com\/asdnascom","article_modified_time":"2026-06-20T05:44:30+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/asdnas.com\/%e9%87%91%e8%9e%8d%e5%b0%8f%e5%b7%a5%e5%85%b7\/%e4%bf%a1%e8%b2%b8%e6%88%bf%e8%b2%b8%e8%a9%a6%e7%ae%97\/","url":"https:\/\/asdnas.com\/%e9%87%91%e8%9e%8d%e5%b0%8f%e5%b7%a5%e5%85%b7\/%e4%bf%a1%e8%b2%b8%e6%88%bf%e8%b2%b8%e8%a9%a6%e7%ae%97\/","name":"\u4fe1\u8cb8&\u623f\u8cb8\u8a66\u7b97 - \u827e\u65af\u5fb7\u6709\u9650\u516c\u53f8","isPartOf":{"@id":"https:\/\/asdnas.com\/#website"},"datePublished":"2026-06-20T05:13:11+00:00","dateModified":"2026-06-20T05:44:30+00:00","breadcrumb":{"@id":"https:\/\/asdnas.com\/%e9%87%91%e8%9e%8d%e5%b0%8f%e5%b7%a5%e5%85%b7\/%e4%bf%a1%e8%b2%b8%e6%88%bf%e8%b2%b8%e8%a9%a6%e7%ae%97\/#breadcrumb"},"inLanguage":"zh-TW","potentialAction":[{"@type":"ReadAction","target":["https:\/\/asdnas.com\/%e9%87%91%e8%9e%8d%e5%b0%8f%e5%b7%a5%e5%85%b7\/%e4%bf%a1%e8%b2%b8%e6%88%bf%e8%b2%b8%e8%a9%a6%e7%ae%97\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/asdnas.com\/%e9%87%91%e8%9e%8d%e5%b0%8f%e5%b7%a5%e5%85%b7\/%e4%bf%a1%e8%b2%b8%e6%88%bf%e8%b2%b8%e8%a9%a6%e7%ae%97\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9801","item":"https:\/\/asdnas.com\/"},{"@type":"ListItem","position":2,"name":"\u91d1\u878d\u5c0f\u5de5\u5177","item":"https:\/\/asdnas.com\/%e9%87%91%e8%9e%8d%e5%b0%8f%e5%b7%a5%e5%85%b7\/"},{"@type":"ListItem","position":3,"name":"\u4fe1\u8cb8&#038;\u623f\u8cb8\u8a66\u7b97"}]},{"@type":"WebSite","@id":"https:\/\/asdnas.com\/#website","url":"https:\/\/asdnas.com\/","name":"\u827e\u65af\u5fb7\u6709\u9650\u516c\u53f8","description":"","publisher":{"@id":"https:\/\/asdnas.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/asdnas.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-TW"},{"@type":"Organization","@id":"https:\/\/asdnas.com\/#organization","name":"\u827e\u65af\u5fb7\u6709\u9650\u516c\u53f8ASDNAS","url":"https:\/\/asdnas.com\/","logo":{"@type":"ImageObject","inLanguage":"zh-TW","@id":"https:\/\/asdnas.com\/#\/schema\/logo\/image\/","url":"https:\/\/asdnas.com\/wp-content\/uploads\/2022\/07\/ASDNAS-logo1.png","contentUrl":"https:\/\/asdnas.com\/wp-content\/uploads\/2022\/07\/ASDNAS-logo1.png","width":817,"height":316,"caption":"\u827e\u65af\u5fb7\u6709\u9650\u516c\u53f8ASDNAS"},"image":{"@id":"https:\/\/asdnas.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/asdnascom"]}]}},"_links":{"self":[{"href":"https:\/\/asdnas.com\/index.php?rest_route=\/wp\/v2\/pages\/846","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/asdnas.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/asdnas.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/asdnas.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/asdnas.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=846"}],"version-history":[{"count":19,"href":"https:\/\/asdnas.com\/index.php?rest_route=\/wp\/v2\/pages\/846\/revisions"}],"predecessor-version":[{"id":869,"href":"https:\/\/asdnas.com\/index.php?rest_route=\/wp\/v2\/pages\/846\/revisions\/869"}],"up":[{"embeddable":true,"href":"https:\/\/asdnas.com\/index.php?rest_route=\/wp\/v2\/pages\/849"}],"wp:attachment":[{"href":"https:\/\/asdnas.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=846"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}