
{"id":30449,"date":"2026-04-24T20:48:39","date_gmt":"2026-04-24T12:48:39","guid":{"rendered":"https:\/\/williamswim.cn\/?page_id=30449"},"modified":"2026-04-24T22:43:37","modified_gmt":"2026-04-24T14:43:37","slug":"%e5%8d%95%e4%be%a7","status":"publish","type":"page","link":"https:\/\/williamswim.cn\/index.php\/%e5%8d%95%e4%be%a7\/","title":{"rendered":"\u5355\u4fa7"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\">\n<title>\u6392\u7403\u591a\u7ad9\u8bad\u7ec3\u7cfb\u7edf \u00b7 \u603b\u6559\u7ec3+\u52a9\u7406\u6559\u7ec3 | \u601d\u7ef4\u5bfc\u56fe\u5f0f | CHNCOACH.COM<\/title>\n<style>\n*{margin:0;padding:0;box-sizing:border-box;}\nbody{background:#000;color:#fff;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"PingFang SC\",\"Microsoft YaHei\",sans-serif;}\n.ambient-bg{position:fixed;inset:0;z-index:-2;background:#000;}\n.ambient-bg .orb{position:absolute;border-radius:50%;filter:blur(100px);opacity:0.35;animation:float 20s infinite;}\n.ambient-bg .orb-1{width:600px;height:600px;background:radial-gradient(circle,#bf5af2 0%,transparent 70%);top:-10%;left:-5%;}\n.ambient-bg .orb-2{width:500px;height:500px;background:radial-gradient(circle,#0a84ff 0%,transparent 70%);bottom:-10%;right:-5%;animation-delay:-7s;}\n.ambient-bg .orb-3{width:400px;height:400px;background:radial-gradient(circle,#ff375f 0%,transparent 70%);top:40%;left:60%;animation-delay:-14s;opacity:0.25;}\n@keyframes float{0%,100%{transform:translate(0,0) scale(1);}33%{transform:translate(30px,-30px) scale(1.1);}66%{transform:translate(-20px,20px) scale(0.9);}}\n.grid-overlay{position:fixed;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,0.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.03) 1px,transparent 1px);background-size:60px 60px;pointer-events:none;}\n.nav-main{position:fixed;top:0;left:0;right:0;height:68px;background:rgba(0,0,0,0.6);backdrop-filter:blur(24px);border-bottom:1px solid rgba(255,255,255,0.06);z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:0 32px;}\n.nav-brand{display:flex;align-items:center;gap:14px;}\n.brand-icon{width:36px;height:36px;background:linear-gradient(135deg,#0a84ff,#bf5af2);border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;}\n.brand-text{font-size:22px;font-weight:600;background:linear-gradient(135deg,#fff 0%,rgba(255,255,255,0.8) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;}\n.lang-switch{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);padding:8px 18px;border-radius:980px;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:8px;}\n.lang-switch:hover{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.25);color:#fff;}\n.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 28px;border-radius:980px;font-size:16px;font-weight:500;cursor:pointer;border:none;}\n.btn-primary{background:linear-gradient(135deg,#0a84ff,#5e5ce6);color:#fff;box-shadow:0 4px 24px rgba(10,132,255,0.35);}\n.btn-primary:hover{transform:translateY(-2px) scale(1.02);}\n.btn-secondary{background:rgba(255,255,255,0.06);color:#fff;border:1px solid rgba(255,255,255,0.15);}\n.card{background:rgba(30,30,32,0.65);backdrop-filter:blur(40px);border:1px solid rgba(255,255,255,0.08);border-radius:28px;padding:32px;margin-bottom:40px;}\n.form-group{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;}\n.selector-title{font-size:13px;color:rgba(255,255,255,0.45);text-transform:uppercase;letter-spacing:0.08em;font-weight:600;}\n.input-field{width:100%;background:#1c1c1e;border:1.5px solid rgba(255,255,255,0.1);border-radius:14px;padding:14px 18px;color:#fff;font-size:16px;outline:none;}\n.input-field:focus{border-color:#0a84ff;background:#2c2c2e;}\n.check-group{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px;}\n.check-label{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,0.05);padding:8px 16px;border-radius:40px;cursor:pointer;font-size:14px;}\n.check-label input{width:18px;height:18px;cursor:pointer;accent-color:#0a84ff;}\n.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.2rem;}\n.gender-group{display:flex;gap:12px;}\n.gender-option{flex:1;background:rgba(255,255,255,0.06);border:1.5px solid rgba(255,255,255,0.08);border-radius:980px;padding:12px;text-align:center;cursor:pointer;font-weight:500;}\n.gender-option.active{background:linear-gradient(135deg,#0a84ff,#5e5ce6);border-color:transparent;}\n.plan-section{margin-top:32px;}\n.plan-header{text-align:center;margin-bottom:1.5rem;border-bottom:1px solid rgba(255,255,255,0.1);padding-bottom:0.8rem;}\n.plan-title{font-size:1.8rem;font-weight:700;background:linear-gradient(135deg,#fff,#64d2ff);-webkit-background-clip:text;background-clip:text;color:transparent;}\n.plan-subtitle{color:rgba(255,255,255,0.45);font-size:0.85rem;}\n.plan-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:0.8rem;margin:1rem 0;background:rgba(255,255,255,0.04);padding:0.6rem;border-radius:20px;}\n.meta-item{background:rgba(255,255,255,0.08);padding:0.2rem 0.8rem;border-radius:20px;font-size:0.75rem;}\n.session-card{margin:1.2rem 0;border-left:4px solid #0a84ff;background:rgba(255,255,255,0.03);border-radius:16px;overflow:hidden;}\n.session-header{background:rgba(255,255,255,0.05);padding:0.8rem 1.2rem;display:flex;justify-content:space-between;flex-wrap:wrap;}\n.session-name{font-weight:700;font-size:1.1rem;}\n.session-time{background:rgba(255,255,255,0.08);padding:0.2rem 0.8rem;border-radius:20px;font-size:0.75rem;}\n.session-body{padding:1rem 1.2rem;}\n.session-desc{color:rgba(255,255,255,0.7);line-height:1.6;}\n.session-desc li{padding:4px 0 4px 16px;position:relative;list-style:none;}\n.session-desc li::before{content:\"\u203a\";position:absolute;left:0;color:#0a84ff;}\n.tips-box{background:rgba(10,132,255,0.08);padding:0.8rem;border-radius:12px;margin-top:0.6rem;border-left:3px solid #0a84ff;}\n.safety-tip,.management-tip{background:rgba(255,159,10,0.08);border-left:4px solid #ff9f0a;padding:0.8rem;margin:0.8rem 0;font-size:0.75rem;border-radius:12px;}\n.management-tip{background:rgba(48,209,88,0.08);border-left-color:#30d158;}\n.main-container{max-width:1400px;margin:0 auto;padding:100px 32px 80px;}\n.footer{text-align:center;padding:40px 32px;color:rgba(255,255,255,0.4);font-size:14px;border-top:1px solid rgba(255,255,255,0.06);}\n\/* \u601d\u7ef4\u5bfc\u56fe\/\u5706\u5f62\u56fe\u6837\u5f0f *\/\n.mindmap-container{\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  margin: 20px 0;\n}\n.center-node{\n  background: linear-gradient(135deg,#0a84ff,#5e5ce6);\n  width: 140px;\n  height: 140px;\n  border-radius: 50%;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  text-align: center;\n  box-shadow: 0 0 30px rgba(10,132,255,0.6);\n  margin-bottom: 40px;\n  position: relative;\n  z-index: 2;\n}\n.center-node:before{\n  content: \"\";\n  position: absolute;\n  top: 100%;\n  left: 50%;\n  width: 2px;\n  height: 30px;\n  background: rgba(255,255,255,0.3);\n  transform: translateX(-50%);\n}\n.center-node .title{font-weight:800; font-size:18px;}\n.center-node .sub{font-size:12px; opacity:0.9;}\n.assistants-grid{\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: center;\n  gap: 30px;\n  margin-top: 10px;\n  position: relative;\n}\n.assistant-card{\n  width: 200px;\n  background: rgba(30,30,40,0.8);\n  backdrop-filter: blur(8px);\n  border-radius: 50%;\n  border: 2px solid rgba(10,132,255,0.5);\n  padding: 20px 10px;\n  text-align: center;\n  transition: all 0.3s ease;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  gap: 6px;\n  position: relative;\n}\n.assistant-card:hover{\n  transform: translateY(-8px);\n  border-color: #0a84ff;\n  box-shadow: 0 0 20px rgba(10,132,255,0.3);\n}\n.assistant-card .station-badge{\n  background: #0a84ff;\n  border-radius: 30px;\n  padding: 4px 12px;\n  font-size: 11px;\n  font-weight: bold;\n  display: inline-block;\n  margin-bottom: 6px;\n}\n.assistant-card .coach-name{\n  font-weight: 700;\n  font-size: 16px;\n  color: #64d2ff;\n}\n.assistant-card .skill{\n  font-size: 12px;\n  background: rgba(255,255,255,0.1);\n  padding: 4px 8px;\n  border-radius: 20px;\n  margin-top: 5px;\n}\n.assistant-card .tactic{\n  font-size: 11px;\n  color: #ccc;\n}\n\/* \u8fde\u63a5\u7ebf\u6548\u679c (\u7528\u4f2a\u5143\u7d20\u6a21\u62df\u7b80\u5355\u8fde\u7ebf) *\/\n.assistants-grid:before{\n  content: \"\";\n  position: absolute;\n  top: -15px;\n  left: 50%;\n  width: 60%;\n  height: 2px;\n  background: linear-gradient(90deg, transparent, rgba(10,132,255,0.4), transparent);\n  transform: translateX(-50%);\n}\n@media (max-width: 760px){\n  .assistant-card{ width: 160px; padding: 15px 5px;}\n  .center-node{ width: 110px; height: 110px;}\n}\n<\/style>\n<\/head>\n<body>\n<div class=\"ambient-bg\"><div class=\"orb orb-1\"><\/div><div class=\"orb orb-2\"><\/div><div class=\"orb orb-3\"><\/div><\/div>\n<div class=\"grid-overlay\"><\/div>\n<nav class=\"nav-main\"><div class=\"nav-brand\"><div class=\"brand-icon\">V<\/div><div class=\"brand-text\">\u6392\u7403\u591a\u7ad9\u8bad\u7ec3\u7cfb\u7edf<\/div><\/div><div class=\"nav-actions\"><button class=\"lang-switch\" id=\"langSwitchBtn\">\ud83c\udf10 English<\/button><\/div><\/nav>\n<main class=\"main-container\">\n<div class=\"card\">\n<h2 style=\"font-size:28px;font-weight:700;text-align:center;margin-bottom:8px;\">\u591a\u7ad9\u8bad\u7ec3\u914d\u7f6e \u00b7 \u603b\u6559\u7ec3\u8c03\u5ea6<\/h2>\n<p style=\"text-align:center;color:rgba(255,255,255,0.45);margin-bottom:32px;\">\u53ef\u591a\u9009\u8bad\u7ec3\u9879\u76ee \u00b7 \u81ea\u52a8\u5206\u914d\u52a9\u7406\u6559\u7ec3 \u00b7 \u601d\u7ef4\u5bfc\u56fe\u5f0f\u5706\u5f62\u7ed3\u6784<\/p>\n<div class=\"form-grid\" id=\"configForm\"><\/div>\n<div style=\"display:flex;justify-content:center;gap:1rem;margin-top:2rem;\">\n<button class=\"btn btn-primary\" id=\"generateBtn\">\u751f\u6210\u591a\u7ad9\u8bad\u7ec3\u6559\u6848<\/button>\n<button class=\"btn btn-secondary\" id=\"printBtn\" onclick=\"window.print()\">\u6253\u5370<\/button><\/div>\n<\/div>\n<div class=\"plan-section\" id=\"planSection\"><div class=\"plan-header\"><div class=\"plan-title\" id=\"planTitle\">MULTI-STATION TRAINING SCRIPT<\/div><div class=\"plan-subtitle\" id=\"planSubtitle\">\u603b\u6559\u7ec3\u7edf\u7b79 \u00b7 \u52a9\u7406\u6559\u7ec3\u5206\u7ad9\u6267\u884c \u00b7 \u5706\u5f62\u5bfc\u56fe\u7ed3\u6784<\/div><\/div><div id=\"planContent\"><\/div><\/div>\n<div class=\"footer\">CHNCOACH.COM \u00b7 \u6392\u7403\u591a\u7ad9\u8bad\u7ec3\u7cfb\u7edf \u00b7 \u52a9\u7406\u6559\u7ec3\u5706\u5f62\u601d\u7ef4\u5bfc\u56fe<\/div>\n<\/main>\n<script>\n\/\/ ========== \u591a\u8bed\u8a00 ==========\nconst langData={\n  zh:{appTitle:\"\u6392\u7403\u591a\u7ad9\u8bad\u7ec3\u7cfb\u7edf\",btnGenerate:\"\u751f\u6210\u591a\u7ad9\u8bad\u7ec3\u6559\u6848\",planTitle:\"MULTI-STATION TRAINING SCRIPT\",planSubtitle:\"\u603b\u6559\u7ec3\u7edf\u7b79 \u00b7 \u52a9\u7406\u6559\u7ec3\u5206\u7ad9\u6267\u884c \u00b7 \u5706\u5f62\u5bfc\u56fe\u7ed3\u6784\",\n     labels:{age:\"\u5e74\u9f84\",gender:\"\u6027\u522b\",players:\"\u603b\u4eba\u6570\",duration:\"\u603b\u65f6\u957f(\u5206)\",phase:\"\u5468\u671f\",purpose:\"\u6559\u5b66\u76ee\u7684(\u591a\u9009)\",position:\"\u91cd\u70b9\u4f4d\u7f6e(\u591a\u9009)\",exercise:\"\u6280\u672f\u4e13\u9879(\u591a\u9009)\",tactic:\"\u6218\u672f\u4f53\u7cfb(\u591a\u9009)\",intensity:\"\u5f3a\u5ea6\"},\n     genderOpts:[\"\u7537\u5b50\",\"\u5973\u5b50\",\"\u6df7\u5408\"],phaseOpts:[\"\u57fa\u7840\u671f\",\"\u5f3a\u5316\u671f\",\"\u7ade\u8d5b\u671f\",\"\u8c03\u6574\u671f\"],\n     purposeOpts:[\"\u4e00\u653b\",\"\u9632\u53cd\",\"\u4fdd\u653b\",\"\u63a8\u653b\",\"\u53d1\u7403\",\"\u63a5\u53d1\u7403\",\"\u8fdb\u653b\",\"\u9632\u5b88\",\"\u8f6c\u6362\"],\n     positionOpts:[\"\u5168\u961f\",\"\u4e3b\u653b\",\"\u526f\u653b\",\"\u63a5\u5e94\",\"\u4e8c\u4f20\",\"\u81ea\u7531\u4eba\"],\n     exerciseOpts:[\"\u53d1\u7403\",\"\u57ab\u7403\",\"\u4f20\u7403\",\"\u6263\u7403\",\"\u62e6\u7f51\",\"\u4e32\u8054\",\"\u4f53\u80fd\",\"\u5fc3\u7406\"],\n     tacticOpts:[\"\u4e2d\u4e00\u4e8c\",\"\u8fb9\u4e00\u4e8c\",\"\u63d2\u4e0a\",\"\u540e\u6392\u8fdb\u653b\",\"\u7acb\u4f53\u8fdb\u653b\",\"\u5fc3\u8ddf\u8fdb\",\"\u8fb9\u8ddf\u8fdb\",\"\u9ad8\u4f4d\u62e6\u7f51\"],\n     intensityOpts:[\"\u4e2d\u7b49\",\"\u9ad8\u5f3a\u5ea6\",\"\u95f4\u6b47\u9ad8\u5f3a\u5ea6\"],\n     coachNames:[\"\u738b\u52a9\u6559\",\"\u674e\u52a9\u6559\",\"\u5f20\u52a9\u6559\",\"\u9648\u52a9\u6559\",\"\u5218\u52a9\u6559\",\"\u8d75\u52a9\u6559\"], stationPrefix:\"\u7ad9\" },\n  en:{appTitle:\"Volleyball Multi-Station System\",btnGenerate:\"Generate Multi-Station Plan\",planTitle:\"MULTI-STATION TRAINING SCRIPT\",planSubtitle:\"Head Coach + Assistants \u00b7 Radial Mind Map\",\n     labels:{age:\"Age\",gender:\"Gender\",players:\"Players\",duration:\"Min\",phase:\"Phase\",purpose:\"Purposes\",position:\"Positions\",exercise:\"Skills\",tactic:\"Tactics\",intensity:\"Intensity\"},\n     genderOpts:[\"Male\",\"Female\",\"Mixed\"],phaseOpts:[\"Foundation\",\"Build\",\"Comp\",\"Recovery\"],\n     purposeOpts:[\"Side-out\",\"Transition\",\"Cover\",\"Free-ball\",\"Serve\",\"Serve-Rc\",\"Attack\",\"Defense\",\"Trans\"],\n     positionOpts:[\"Team\",\"OH\",\"MB\",\"OPP\",\"S\",\"L\"],\n     exerciseOpts:[\"Serve\",\"Pass\",\"Set\",\"Spike\",\"Block\",\"Combine\",\"Cond\",\"Mental\"],\n     tacticOpts:[\"4-2 Mid\",\"4-2 Side\",\"Penetrate\",\"Back-Att\",\"3D-Att\",\"Center-C\",\"Side-C\",\"High-Block\"],\n     intensityOpts:[\"Moderate\",\"High\",\"Interval\"],\n     coachNames:[\"Coach A\",\"Coach B\",\"Coach C\",\"Coach D\",\"Coach E\",\"Coach F\"], stationPrefix:\"Station\" }\n};\nlet currLang='zh';\nconst t=()=>langData[currLang];\n\n\/\/ ========== \u91cf\u5316\u8bad\u7ec3\u5e93 ==========\nconst techLib={\n  \"\u53d1\u7403\":[\"\u4e0a\u624b\u98d8\u7403 4\u00d710\u6b21 \u843d\u70b91\/5\/6\u533a\",\"\u8df3\u53d1\u7403 5\u00d78\u6b21 \u7403\u901f\u226580km\/h\",\"\u8df3\u98d8\u7403 4\u00d78\u6b21\",\"\u843d\u70b9\u63a7\u5236 3\u00d720\u6b21\",\"\u5173\u952e\u5206\u53d1\u7403 3\u00d75\u6b21\"],\n  \"\u57ab\u7403\":[\"\u6b63\u9762\u57ab\u7403 4\u00d730\u6b21 \u5bf9\u5899\",\"\u79fb\u52a8\u57ab\u7403 4\u00d720\u6b21 3m\u5230\u4f4d\u226585%\",\"\u8de8\u6b65\u57ab\u7403 3\u00d715\u6b21\",\"\u4f4e\u59ff\u57ab\u7403 3\u00d715\u6b21\",\"\u9c7c\u8dc3\u57ab\u7403 3\u00d75\u6b21\",\"\u63a5\u53d1\u7403\u4e13\u9879 4\u00d715\u6b21\"],\n  \"\u4f20\u7403\":[\"\u6b63\u9762\u4f20\u7403 4\u00d730\u6b21\",\"\u80cc\u4f20 4\u00d720\u6b21\",\"\u8df3\u4f20 4\u00d710\u6b21\",\"\u4e8c\u4f20\u7ec4\u7ec7 4\u00d745s\",\"\u8c03\u6574\u4f20\u7403 3\u00d712\u6b21\"],\n  \"\u6263\u7403\":[\"\u6b63\u9762\u6263\u7403 5\u00d710\u6b21 \u51fb\u7403\u70b9\u226590%\",\"\u52a9\u8dd1\u8d77\u8df3 4\u00d75\u6b21\",\"\u5feb\u7403 5\u00d78\u6b21\",\"\u77ed\u5e73\u5feb 4\u00d78\u6b21\",\"\u80cc\u98de 4\u00d76\u6b21\",\"\u540e\u6392\u8fdb\u653b 4\u00d78\u6b21\"],\n  \"\u62e6\u7f51\":[\"\u5355\u4eba\u62e6\u7f51 4\u00d78\u6b21\",\"\u53cc\u4eba\u62e6\u7f51 4\u00d76\u6b21\",\"\u79fb\u52a8\u62e6\u7f51 4\u00d76\u6b21\",\"\u8d77\u8df3\u65f6\u673a 4\u00d78\u6b21\",\"\u9ad8\u4f4d\u62e6\u7f51 3\u00d75\u6b21\"],\n  \"\u4e32\u8054\":[\"\u4e00\u653b\u4e32\u8054 4\u8f6e\",\"\u9632\u53cd\u4e32\u8054 4\u8f6e\",\"\u4fdd\u653b\u4e32\u8054 3\u8f6e\",\"\u516d\u5bf9\u516d 2\u00d75min\",\"\u8f6e\u8f6c\u7ec3\u4e60 2\u8f6e\"],\n  \"\u4f53\u80fd\":[\"\u7bb1\u8df3 5\u00d75\u6b21\",\"\u52a9\u8dd1\u6478\u9ad8 4\u00d73\u6b21\",\"T\u578b\u8dd1 3\u7ec4\",\"\u4fa7\u6ed1\u6b65 3\u00d720m\",\"\u5e73\u677f\u652f\u6491 3\u00d760s\",\"\u9ad8\u7ffb 4\u00d74\u6b21\",\"\u6298\u8fd4\u8dd1 3\u7ec4\"],\n  \"\u5fc3\u7406\":[\"\u7bb1\u5f0f\u547c\u5438 3\u00d72min\",\"\u538b\u529b\u6a21\u62df 3\u00d73\u6b21\",\"\u9519\u8bef\u6062\u590d 3\u00d75\u6b21\",\"\u51a5\u60f3\u653e\u677e 10min\"]\n};\nconst tacticLib={\n  \"\u4e2d\u4e00\u4e8c\":[\"\u9635\u578b\u6267\u884c 4\u8f6e \u5230\u4f4d\u7387\u226590%\",\"\u8fdb\u653b\u7ec4\u7ec7 4\u8f6e \u65f6\u95f4\u22643s\",\"\u6218\u672f\u53d8\u5316 3\u8f6e\"],\n  \"\u8fb9\u4e00\u4e8c\":[\"\u9635\u578b\u6267\u884c 4\u8f6e\",\"\u8fdb\u653b\u7ec4\u7ec7 4\u8f6e \u65f6\u95f4\u22642.5s\",\"\u6218\u672f:\u5feb\u7403+\u5e73\u62c9\u5f00\"],\n  \"\u63d2\u4e0a\":[\"\u63d2\u4e0a\u6267\u884c 4\u8f6e \u63d2\u4e0a\u22642s\",\"\u8fdb\u653b\u7ec4\u5408:\u4e09\u70b9\u8fdb\u653b\",\"\u6761\u4ef6\u5224\u65ad\"],\n  \"\u540e\u6392\u8fdb\u653b\":[\"\u8fdb\u653b\u4f4d\u7f6e 4\u00d76\u6b21\",\"\u8d77\u8df3\u9650\u5236 \u4e09\u7c73\u7ebf\u540e\u226520cm\",\"\u6218\u672f:\u524d\u6392+\u540e\u6392\"],\n  \"\u7acb\u4f53\u8fdb\u653b\":[\"\u8fdb\u653b\u5c42\u6b21\",\"\u65f6\u95f4\u5dee \u524d\u63920s\u540e\u63920.3s\",\"\u4e8c\u4f20\u5230\u4f4d\u226590%\"],\n  \"\u5fc3\u8ddf\u8fdb\":[\"6\u53f7\u4f4d\u4e0a\u63d0 \u540a\u7403\u6551\u8d77\u226575%\",\"\u79fb\u52a8\u22642s\",\"\u540e\u573a\u8986\u76d6\u7387\u226585%\"],\n  \"\u8fb9\u8ddf\u8fdb\":[\"1\/5\u53f7\u4f4d\u8ddf\u8fdb\",\"\u6a2a\u5411\u8986\u76d6\",\"\u540e\u6392\u8865\u4f4d\"],\n  \"\u9ad8\u4f4d\u62e6\u7f51\":[\"\u96c6\u4f53\u8d77\u8df3 \u5c01\u9501\u226590\u00b0\",\"\u8d77\u8df3\u65f6\u673a0.1-0.2s\",\"\u624b\u578b\u63a7\u5236\"]\n};\nconst warmMap={\n  \"\u4e00\u653b\":[\"\u63a5\u53d1\u7403\u7ad9\u4f4d 3\u00d745s\",\"\u4e00\u4f20\u624b\u578b 4\u00d720\u6b21\",\"\u79fb\u52a8\u81ea\u4f20 3\u00d730s\"],\n  \"\u9632\u53cd\":[\"\u4f4e\u59ff\u79fb\u52a8 3\u00d720m\",\"\u62e6\u7f51\u811a\u6b65 4\u00d75\u6b21\",\"\u6eda\u7ffb\u8d77\u7acb 3\u00d75\u6b21\"],\n  \"\u4fdd\u653b\":[\"\u4fdd\u62a4\u7ad9\u4f4d 3\u00d730s\",\"\u88ab\u62e6\u7403\u5904\u7406 3\u00d710\u6b21\",\"\u653b\u9632\u8f6c\u6362 3\u00d760s\"],\n  \"\u63a8\u653b\":[\"\u63a8\u653b\u7ec4\u7ec7 3\u00d745s\",\"\u8c03\u6574\u4f20\u7403 3\u00d710\u6b21\",\"\u8282\u594f\u63a7\u5236 3\u00d760s\"],\n  \"\u53d1\u7403\":[\"\u80a9\u90e8\u5916\u65cb 3\u00d710\u6b21\",\"\u629b\u7403\u7a33\u5b9a 4\u00d710\u6b21\",\"\u52a9\u8dd1\u5236\u52a8 3\u00d75\u6b21\"],\n  \"\u63a5\u53d1\u7403\":[\"\u624b\u578b\u89d2\u5ea6 4\u00d720\u6b21\",\"\u9884\u5224\u79fb\u52a8 3\u00d710\u6b21\",\"\u4f4e\u59ff\u57ab\u7403 3\u00d715\u6b21\"],\n  \"\u8fdb\u653b\":[\"\u6325\u81c2\u7a7a\u51fb 3\u00d710\u6b21\",\"\u52a9\u8dd1\u6478\u9ad8 4\u00d73\u6b21\",\"\u7ebf\u8def\u7a7a\u51fb 3\u00d78\u6b21\"],\n  \"\u9632\u5b88\":[\"\u9632\u5b88\u6b65\u4f10 3\u00d730s\",\"\u9c7c\u8dc3\u6eda\u7ffb 3\u00d73\u6b21\",\"\u62e6\u7f51\u8d77\u8df3 4\u00d75\u6b21\"],\n  \"\u8f6c\u6362\":[\"\u653b\u9632\u8f6c\u6362 3\u00d760s\",\"\u5feb\u901f\u56de\u4f4d 3\u00d710\u6b21\",\"\u4e71\u7403\u5904\u7406 3\u00d745s\"]\n};\nconst intensityDesc={\"\u4e2d\u7b49\":\"RPE5-6 HR60-70%\",\"\u9ad8\u5f3a\u5ea6\":\"RPE7-8 HR75-85%\",\"\u95f4\u6b47\u9ad8\u5f3a\u5ea6\":\"RPE8-9 HR\u226590%\"};\nconst phaseParam={\"\u57fa\u7840\u671f\":\"\u91cf\u9ad8\/\u5f3a\u5ea6\u4f4e RPE5-6\",\"\u5f3a\u5316\u671f\":\"\u91cf\u4e2d\/\u5f3a\u5ea6\u9ad8 RPE7-8\",\"\u7ade\u8d5b\u671f\":\"\u91cf\u4f4e\/\u5f3a\u5ea6\u6781\u9ad8 RPE8-9\",\"\u8c03\u6574\u671f\":\"\u6062\u590d RPE4-5\"};\nconst intensityRest={\"\u4e2d\u7b49\":\"1:1\",\"\u9ad8\u5f3a\u5ea6\":\"2:1\",\"\u95f4\u6b47\u9ad8\u5f3a\u5ea6\":\"20s:10s\"};\nconst safety=[\"\u52a8\u6001\u70ed\u8eab\u226510min\",\"\u8865\u6c34\u6bcf15-20min 150-200ml\",\"\u843d\u5730\u7f13\u51b2\u5c48\u819d\u226590\u00b0\",\"\u9c7c\u8dc3\u9700\u8f6f\u57ab\",\"\u9ad8\u5f3a\u5ea6\u540e\u6162\u8d705min\",\"\u80a9\u90e8\u8d1f\u8377\u76d1\u63a7\"];\nconst rules=[\"\u4f4d\u7f6e\u9519\u8bef\",\"\u8f6e\u8f6c\u9519\u8bef\",\"\u89e6\u7f51\",\"\u8fc7\u4e2d\u7ebf\",\"\u540e\u6392\u8fdd\u4f8b\",\"\u8fde\u51fb\",\"\u6301\u7403\",\"\u56db\u6b21\u51fb\u7403\"];\nconst coaches=t().coachNames;\nfunction rand(arr){return arr[Math.floor(Math.random()*arr.length)];}\nfunction allocateTime(total){\n  let warm=Math.max(8,Math.round(total*0.12));\n  let stations=Math.max(40,Math.round(total*0.7));\n  let cool=total-warm-stations;\n  if(cool<8){cool=8;stations=total-warm-cool;}\n  return {warm,stations,cool};\n}\nfunction ageStage(a){return a<=12?\"U12\":a<=15?\"U15\":a<=18?\"U18\":\"Elite\";}\n\n\/\/ ========== \u6838\u5fc3\u751f\u6210\u51fd\u6570 (\u5706\u5f62\u601d\u7ef4\u5bfc\u56fe\u7248) ==========\nfunction generateMultiStation(){\n  const age=parseInt(document.getElementById('age')?.value)||16;\n  const gender=document.querySelector('.gender-option.active')?.dataset.gender||\"\u7537\u5b50\";\n  const players=parseInt(document.getElementById('players')?.value)||12;\n  const duration=parseInt(document.getElementById('duration')?.value)||105;\n  const phase=document.getElementById('phase')?.value||\"\u5f3a\u5316\u671f\";\n  const intensity=document.getElementById('intensity')?.value||\"\u9ad8\u5f3a\u5ea6\";\n  const purposes=[...document.querySelectorAll('input[name=\"purpose\"]:checked')].map(cb=>cb.value);\n  const exercises=[...document.querySelectorAll('input[name=\"exercise\"]:checked')].map(cb=>cb.value);\n  const tactics=[...document.querySelectorAll('input[name=\"tactic\"]:checked')].map(cb=>cb.value);\n  if(purposes.length===0) purposes.push(\"\u4e00\u653b\");\n  if(exercises.length===0) exercises.push(\"\u4e32\u8054\");\n  if(tactics.length===0) tactics.push(\"\u4e2d\u4e00\u4e8c\");\n  const times=allocateTime(duration);\n  const totalStations=Math.max(3, exercises.length, tactics.length, purposes.length);\n  let stations=[];\n  for(let i=0;i<totalStations;i++){\n    let techItem=exercises[i % exercises.length];\n    let tacticItem=tactics[i % tactics.length];\n    let purposeItem=purposes[i % purposes.length];\n    let coach=coaches[i % coaches.length];\n    let techShort=(techLib[techItem]||techLib[\"\u4e32\u8054\"])[0].split(' ').slice(0,2).join(' ');\n    let tacticShort=(tacticLib[tacticItem]||tacticLib[\"\u4e2d\u4e00\u4e8c\"])[0].split(' ').slice(0,3).join(' ');\n    stations.push({id:i+1, coach, techItem, tacticItem, purposeItem, techShort, tacticShort});\n  }\n  const stationDuration=Math.floor(times.stations\/totalStations);\n  \/\/ \u70ed\u8eab\u90e8\u5206\n  let warmItems=warmMap[purposes[0]]||[\"\u6162\u8dd1400m+\u52a8\u6001\u62c9\u4f38\",\"\u654f\u6377\u68af2\u00d710m\",\"\u53cd\u5e94\u8dd13\u00d720m\"];\n  warmItems.push(`${intensityDesc[intensity]} | \u7ec3\u4e60:\u4f11\u606f = ${intensityRest[intensity]}`);\n  if(age<=14) warmItems.push(\"U15:\u7ec4\u6570-1,\u6b21\u6570\u51cf\u534a,\u95f4\u6b47+15s\");\n  \/\/ \u6784\u5efaHTML\n  let html=`<div class=\"plan-meta\">${[ageStage(age),gender,`${players}p`,`${duration}min`,phase,intensity,phaseParam[phase]||\"\"].map(s=>`<span class=\"meta-item\">${s}<\/span>`).join('')}<\/div>`;\n  \/\/ \u603b\u6559\u7ec3\u70ed\u8eab\n  html+=`<div class=\"session-card\" style=\"border-left-color:#ff375f;\"><div class=\"session-header\"><span class=\"session-name\">\ud83d\udd25 \u603b\u6559\u7ec3 \u00b7 \u7edf\u4e00\u70ed\u8eab<\/span><span class=\"session-time\">${times.warm}min<\/span><\/div><div class=\"session-body\"><div class=\"session-desc\"><ul>${warmItems.map(i=>`<li>${i}<\/li>`).join('')}<\/ul><\/div><\/div><\/div>`;\n  \/\/ \u601d\u7ef4\u5bfc\u56fe\u5706\u5f62\u7ed3\u6784\u5c55\u793a\u52a9\u7406\u6559\u7ec3\u8bad\u7ec3\u7ad9\n  html+=`<div class=\"session-card\" style=\"border-left-color:#bf5af2;\"><div class=\"session-header\"><span class=\"session-name\">\ud83d\udd35 \u52a9\u7406\u6559\u7ec3 \u00b7 \u5706\u5f62\u601d\u7ef4\u5bfc\u56fe (${totalStations}\u7ad9) \u00b7 \u6bcf\u7ad9${stationDuration}min<\/span><span class=\"session-time\">${times.stations}min<\/span><\/div><div class=\"session-body\">`;\n  html+=`<div class=\"mindmap-container\">\n    <div class=\"center-node\"><div class=\"title\">\ud83d\udc68\u200d\ud83c\udfeb \u603b\u6559\u7ec3<\/div><div class=\"sub\">\u7edf\u7b79\u5168\u5c40<\/div><\/div>\n    <div class=\"assistants-grid\">`;\n  for(let s of stations){\n    html+=`<div class=\"assistant-card\">\n      <div class=\"station-badge\">${t().stationPrefix} ${s.id}<\/div>\n      <div class=\"coach-name\">${s.coach}<\/div>\n      <div class=\"skill\">\ud83c\udfaf ${s.techItem}<\/div>\n      <div class=\"tactic\">\u2694\ufe0f ${s.tacticItem}<\/div>\n      <div class=\"skill\" style=\"font-size:10px;\">\u23f1\ufe0f ${stationDuration}min<\/div>\n      <div class=\"tactic\" style=\"font-size:10px;\">\ud83d\udca1 ${s.techShort} | ${s.tacticShort}<\/div>\n    <\/div>`;\n  }\n  html+=`<\/div><\/div><div class=\"tips-box\"><div class=\"tips-title\">\ud83d\udd01 \u65cb\u8f6c\u7ad9\u6307\u4ee4<\/div><div>\u7403\u5458\u5206\u7ec4\u8f6e\u8f6c\uff0c\u6bcf\u7ad9\u52a9\u7406\u6559\u7ec3\u8d1f\u8d23\u6280\u672f\u7ea0\u9519\u4e0e\u6570\u636e\u8bb0\u5f55\u3002\u5f3a\u5ea6${intensityDesc[intensity]}\uff0c\u6062\u590d\u6bd4${intensityRest[intensity]}\u3002<\/div><\/div><\/div><\/div>`;\n  \/\/ \u653e\u677e\u590d\u76d8\n  let coolItems=[\"\u9759\u6001\u62c9\u4f38:\u5927\u817f\/\u5c0f\u817f\/\u80a9\/\u80cc 30s\u00d72\u7ec4\",\"\u8179\u5f0f\u547c\u54385min\",\"\u603b\u6559\u7ec3\u6c47\u603bKPI\"];\n  if(intensity.includes(\"\u9ad8\u5f3a\u5ea6\")) coolItems.push(\"\u6062\u590d:\u51b7\u6c34\u6d78\u6ce1(10-15\u00b0C,10-15min)+\u86cb\u767d\u7c8920-30g\");\n  coolItems.push(\"\u4f5c\u4e1a:\u5bf9\u5899\u57ab\u7403300\u6b21+\u6838\u5fc3\u5e73\u677f3\u00d760s\");\n  html+=`<div class=\"session-card\" style=\"border-left-color:#30d158;\"><div class=\"session-header\"><span class=\"session-name\">\ud83e\uddd8 \u96c6\u4f53\u653e\u677e & \u590d\u76d8<\/span><span class=\"session-time\">${times.cool}min<\/span><\/div><div class=\"session-body\"><div class=\"session-desc\"><ul>${coolItems.map(i=>`<li>${i}<\/li>`).join('')}<\/ul><\/div><\/div><\/div>`;\n  html+=`<div class=\"safety-tip\"><strong>\u26a0\ufe0f \u5b89\u5168\u76d1\u63a7<\/strong> ${rand(safety)}<\/div>`;\n  html+=`<div class=\"management-tip\"><strong>\ud83d\udccc \u603b\u6559\u7ec3\u5907\u5fd8\u5f55<\/strong> \u5404\u7ad9\u52a9\u7406\u6559\u7ec3\u9700\u8bb0\u5f55\u672c\u7ec4\u5b8c\u6210\u7387\u4e0e\u7a81\u51fa\u95ee\u9898,\u8bad\u7ec3\u540e\u63d0\u4ea4\u81f3\u603b\u6559\u7ec3\u3002\u7403\u5458\u6309\u53f7\u7801\u8f6e\u8f6c,\u907f\u514d\u96c6\u4e2d\u62e5\u6324\u3002<\/div>`;\n  document.getElementById('planContent').innerHTML = html;\n}\n\nfunction buildStaticForm(){\n  const data=t();\n  let genderHtml=`<div class=\"gender-group\">${data.genderOpts.map((g,i)=>`<div class=\"gender-option ${i===0?'active':''}\" data-gender=\"${g}\">${g}<\/div>`).join('')}<\/div>`;\n  let purposeHtml=`<div class=\"check-group\">${data.purposeOpts.map(p=>`<label class=\"check-label\"><input type=\"checkbox\" name=\"purpose\" value=\"${p}\" ${p===\"\u4e00\u653b\"?\"checked\":\"\"}> ${p}<\/label>`).join('')}<\/div>`;\n  let positionHtml=`<div class=\"check-group\">${data.positionOpts.map(p=>`<label class=\"check-label\"><input type=\"checkbox\" name=\"position\" value=\"${p}\" ${p===\"\u5168\u961f\"?\"checked\":\"\"}> ${p}<\/label>`).join('')}<\/div>`;\n  let exerciseHtml=`<div class=\"check-group\">${data.exerciseOpts.map(e=>`<label class=\"check-label\"><input type=\"checkbox\" name=\"exercise\" value=\"${e}\" ${e===\"\u4e32\u8054\"?\"checked\":\"\"}> ${e}<\/label>`).join('')}<\/div>`;\n  let tacticHtml=`<div class=\"check-group\">${data.tacticOpts.map(t=>`<label class=\"check-label\"><input type=\"checkbox\" name=\"tactic\" value=\"${t}\" ${t===\"\u4e2d\u4e00\u4e8c\"?\"checked\":\"\"}> ${t}<\/label>`).join('')}<\/div>`;\n  let html=`\n    <div class=\"form-group\"><div class=\"selector-title\">${data.labels.age}<\/div><input type=\"number\" id=\"age\" class=\"input-field\" value=\"16\" min=\"15\" max=\"35\"><\/div>\n    <div class=\"form-group\"><div class=\"selector-title\">${data.labels.gender}<\/div>${genderHtml}<\/div>\n    <div class=\"form-group\"><div class=\"selector-title\">${data.labels.players}<\/div><input type=\"number\" id=\"players\" class=\"input-field\" value=\"12\" min=\"6\" max=\"24\"><\/div>\n    <div class=\"form-group\"><div class=\"selector-title\">${data.labels.duration}<\/div><input type=\"number\" id=\"duration\" class=\"input-field\" value=\"105\" min=\"75\" max=\"150\" step=\"5\"><\/div>\n    <div class=\"form-group\"><div class=\"selector-title\">${data.labels.phase}<\/div><select id=\"phase\" class=\"input-field\">${data.phaseOpts.map(p=>`<option>${p}<\/option>`).join('')}<\/select><\/div>\n    <div class=\"form-group\"><div class=\"selector-title\">${data.labels.purpose}<\/div>${purposeHtml}<\/div>\n    <div class=\"form-group\"><div class=\"selector-title\">${data.labels.position}<\/div>${positionHtml}<\/div>\n    <div class=\"form-group\"><div class=\"selector-title\">${data.labels.exercise}<\/div>${exerciseHtml}<\/div>\n    <div class=\"form-group\"><div class=\"selector-title\">${data.labels.tactic}<\/div>${tacticHtml}<\/div>\n    <div class=\"form-group\"><div class=\"selector-title\">${data.labels.intensity}<\/div><select id=\"intensity\" class=\"input-field\">${data.intensityOpts.map(i=>`<option>${i}<\/option>`).join('')}<\/select><\/div>\n  `;\n  document.getElementById('configForm').innerHTML=html;\n  \/\/ \u7ed1\u5b9a\u4e8b\u4ef6\n  document.querySelectorAll('.gender-option').forEach(el=>el.addEventListener('click',function(){\n    document.querySelectorAll('.gender-option').forEach(o=>o.classList.remove('active'));\n    this.classList.add('active'); generateMultiStation();\n  }));\n  ['age','players','duration','phase','intensity'].forEach(id=>{\n    let el=document.getElementById(id);\n    if(el) el.addEventListener('input',generateMultiStation);\n  });\n  document.querySelectorAll('input[type=\"checkbox\"]').forEach(cb=>cb.addEventListener('change',generateMultiStation));\n}\n\nfunction setLang(lang){\n  currLang=lang;\n  const data=t();\n  document.querySelector('.brand-text').innerText=data.appTitle;\n  document.getElementById('generateBtn').innerText=data.btnGenerate;\n  document.getElementById('planTitle').innerText=data.planTitle;\n  document.getElementById('planSubtitle').innerText=data.planSubtitle;\n  document.getElementById('langSwitchBtn').innerHTML=currLang==='zh'?'\ud83c\udf10 English':'\ud83c\udf10 \u4e2d\u6587';\n  buildStaticForm();\n  generateMultiStation();\n}\n\ndocument.addEventListener('DOMContentLoaded',()=>{\n  buildStaticForm();\n  generateMultiStation();\n  document.getElementById('generateBtn').addEventListener('click',generateMultiStation);\n  document.getElementById('langSwitchBtn').addEventListener('click',()=>setLang(currLang==='zh'?'en':'zh'));\n});\n<\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>\u6392\u7403\u591a\u7ad9\u8bad\u7ec3\u7cfb\u7edf \u00b7 \u603b\u6559\u7ec3+\u52a9\u7406\u6559\u7ec3 | \u601d\u7ef4\u5bfc\u56fe\u5f0f |  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-30449","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/williamswim.cn\/index.php\/wp-json\/wp\/v2\/pages\/30449","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/williamswim.cn\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/williamswim.cn\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/williamswim.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/williamswim.cn\/index.php\/wp-json\/wp\/v2\/comments?post=30449"}],"version-history":[{"count":16,"href":"https:\/\/williamswim.cn\/index.php\/wp-json\/wp\/v2\/pages\/30449\/revisions"}],"predecessor-version":[{"id":30466,"href":"https:\/\/williamswim.cn\/index.php\/wp-json\/wp\/v2\/pages\/30449\/revisions\/30466"}],"wp:attachment":[{"href":"https:\/\/williamswim.cn\/index.php\/wp-json\/wp\/v2\/media?parent=30449"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}