fix: v2.6 组合画布选中根因修复+右键菜单+3D 三场景
- 选中失效根因: Vue3 布尔 prop 缺省转换(editable 缺省→false)
withDefaults 默认 true 修复, 左键选中/右键选中/菜单动作全链路打通
- 右键菜单: 右键单元弹操作菜单(顺/逆旋转/镜像/底边对齐/删除)
动作 emit('ctx') 由父组件统一执行, document 级委托
- 3D 三场景: 室内(窗后墙+木地板)/室外(外墙+草地)/影棚(网格)
场景联动背景色, 真实浏览器截图验证三场景渲染
- 菜单动作行为级验证: 旋转后 1600x1800 宽高互换✓ 删除清空✓
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
// 事件链诊断: node scripts/diag2.mjs <token>
|
||||
import puppeteer from 'puppeteer-core'
|
||||
const EDGE = 'C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe'
|
||||
const token = process.argv[2]
|
||||
const browser = await puppeteer.launch({
|
||||
executablePath: EDGE,
|
||||
headless: 'new',
|
||||
args: ['--window-size=1440,900', '--enable-unsafe-swiftshader', '--use-gl=angle', '--use-angle=swiftshader'],
|
||||
defaultViewport: { width: 1440, height: 900 },
|
||||
})
|
||||
const page = await browser.newPage()
|
||||
page.on('console', m => console.log(`[页面.${m.type()}]`, m.text().slice(0, 150)))
|
||||
await page.goto(`http://localhost:8000/combine?token=${encodeURIComponent(token)}`, { waitUntil: 'networkidle2' })
|
||||
await page.waitForSelector('.lib-item')
|
||||
await page.click('.lib-item')
|
||||
await new Promise(r => setTimeout(r, 600))
|
||||
|
||||
const box = await (await page.$('.canvas-box')).boundingBox()
|
||||
const cx = box.x + box.width / 2, cy = box.y + box.height / 2
|
||||
|
||||
await page.evaluate(() => {
|
||||
window.__md = 0; window.__mu = 0; window.__selEvents = []
|
||||
const cv = document.querySelector('.canvas-box canvas')
|
||||
cv.addEventListener('mousedown', () => window.__md++)
|
||||
cv.addEventListener('mouseup', () => window.__mu++)
|
||||
})
|
||||
const el = await page.evaluate((x, y) => {
|
||||
const e = document.elementFromPoint(x, y)
|
||||
return e ? `${e.tagName}.${String(e.className).slice(0, 40)}` : 'null'
|
||||
}, cx, cy)
|
||||
console.log('中心点元素:', el)
|
||||
|
||||
await page.mouse.click(cx, cy)
|
||||
await new Promise(r => setTimeout(r, 300))
|
||||
const st = await page.evaluate(() => ({
|
||||
md: window.__md, mu: window.__mu,
|
||||
sel: window.__ccDebug.getSelected(),
|
||||
units: window.__ccDebug.units(),
|
||||
}))
|
||||
console.log('事件计数+选中:', JSON.stringify({ md: st.md, mu: st.mu, sel: st.sel }))
|
||||
console.log('单元 uid 列表:', JSON.stringify(st.units))
|
||||
await browser.close()
|
||||
Reference in New Issue
Block a user