[{"action": "eval_js", "js": "(() => {\n const out = {legends: [], expands: [], unitDisabled: null, addrVisible: null};\n // 1) 所有 fieldset legend 标题 + 展开链接状态\n out.legends = Array.from(document.querySelectorAll('fieldset > legend')).map(l => {\n const fs = l.closest('fieldset');\n const a = l.querySelector('a');\n return {\n title: (l.textContent || '').trim().replace(/\\s+/g, ' ').slice(0, 30),\n link: a ? a.textContent.trim() : null,\n bodyHidden: fs ? getComputedStyle(fs.querySelector('div, table, .ant-table, form') || fs).display : '?'\n };\n });\n // 2) 通讯地址省下拉可见性\n const addr = Array.from(document.querySelectorAll('nz-select')).find(e => (e.textContent||'').includes('省'));\n out.addrVisible = addr ? (addr.offsetParent !== null ? 'VISIBLE' : 'HIDDEN') : 'NOT FOUND';\n // 3) 单位性质禁用\n const unit = document.querySelector('#Applicant\\.CWorkDpt, [id=\"Applicant.CWorkDpt\"]');\n out.unitDisabled = unit ? (unit.getAttribute('ng-reflect-nz-disabled') || unit.classList.contains('ant-select-disabled') || '?') : 'NOT FOUND';\n // 4) 8 个展开链接的父级标题\n out.expands = Array.from(document.querySelectorAll('a.legrnd-ta')).map(a => {\n const leg = a.closest('legend');\n return (leg ? leg.textContent.trim().replace(/\\s+/g, ' ').slice(0, 30) : 'no-legend');\n });\n return JSON.stringify(out);\n})()"}]