| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- /** 诊断 2:台账端点为什么没有 CBWS202610150001;地图覆盖层标记在 headless 里是否可点。 */
- import { cdpLaunch } from '../../../../cockpit-shell-panel-layout/verify/cdp-driver.mjs'
- const CHROME = process.env.CHROME_PATH || 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe'
- const sleep = (ms) => new Promise((r) => setTimeout(r, ms))
- const BASE = 'http://192.168.110.96:8301/api/cockpit/v1'
- const unwrap = (p) => (p && p.data && (p.code !== undefined || p.requestId) ? p.data : p)
- // ① 台账端点直查
- for (const q of ['?page=1&pageSize=20', '']) {
- try {
- const r = await fetch(`${BASE}/monitoring-points/ledger${q}`, { cache: 'no-store' })
- const d = unwrap(await r.json())
- const rows = d?.points || d?.items || d?.records || []
- console.log(`ledger${q || '(default)'} http=${r.status} rows=${rows.length} codes=${rows.map((x) => x.pointCode || x.code || x.monitoringPointCode).join(',')} total=${d?.total ?? d?.pagination?.total}`)
- } catch (e) { console.log(`ledger${q} ERR ${e.message}`) }
- }
- // ② headless 里覆盖层标记的可点性
- const browser = await cdpLaunch({ executablePath: CHROME, headless: true, width: 1680, height: 950 })
- const page = await browser.newPage()
- await page.goto('http://127.0.0.1:8000/#/cockpit', { timeout: 60000 })
- await sleep(2000)
- await page.click('[data-cockpit-intro]').catch(() => {})
- await page.waitForFunction(() => ['ready', 'failed', 'disabled'].includes(document.querySelector('.cockpit-shell__map .map-canvas')?.dataset.mapEngine || ''), { timeout: 60000 })
- await sleep(4000)
- const overlay = await page.evaluate(() => {
- const nodes = [...document.querySelectorAll('[data-marker-overlay-code]')]
- const target = nodes.find((n) => n.dataset.markerOverlayCode === 'CBWS202610150001')
- return {
- total: nodes.length,
- codes: nodes.map((n) => n.dataset.markerOverlayCode).slice(0, 20),
- targetFound: !!target,
- targetRect: target ? JSON.parse(JSON.stringify(target.getBoundingClientRect())) : null,
- }
- })
- console.log('overlay:', JSON.stringify(overlay, null, 2))
- if (overlay.targetFound) {
- await page.evaluate(() => document.querySelector('[data-marker-overlay-code="CBWS202610150001"]')?.click())
- await sleep(3000)
- const card = await page.evaluate(() => {
- const c = document.querySelector('[data-point-detail]')
- return c ? { level: c.dataset.detailLevel, point: c.dataset.pointCode } : null
- })
- console.log('after overlay click:', JSON.stringify(card))
- }
- await browser.close()
|