新增 AutoRDO 需求清洗工作台与消息中枢,迭代 OneOS V2 设计规范及租赁合同/工作台/车辆等原型,同步云效技能与导航注册;并归档一批 legacy 原型快照。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
王冕
2026-07-28 15:50:35 +08:00
parent b14425da5a
commit 5d51a6bf7a
1393 changed files with 488042 additions and 10046 deletions

View File

@@ -0,0 +1,61 @@
import puppeteer from 'puppeteer';
import path from 'path';
async function main() {
const browser = await puppeteer.launch({
executablePath: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
headless: true,
args: ['--no-sandbox', '--disable-setuid-sandbox']
});
const page = await browser.newPage();
await page.setViewport({ width: 1440, height: 1200, deviceScaleFactor: 2 });
const url = 'http://localhost:51720/prototypes/oneos-v2';
console.log(`Navigating to ${url}...`);
await page.goto(url, { waitUntil: 'networkidle2', timeout: 15000 });
await new Promise(r => setTimeout(r, 2000));
// 1. Capture Top Section
const shotTopPath = path.resolve('.tmp-ds-showcase-top.png');
await page.screenshot({ path: shotTopPath, fullPage: false });
console.log(`Captured Top section screenshot to ${shotTopPath}`);
// 2. Scroll to DatePicker section and click trigger to open Custom Popover
await page.evaluate(() => {
const el = document.getElementById('sec-datepicker');
if (el) el.scrollIntoView({ behavior: 'auto' });
});
await new Promise(r => setTimeout(r, 800));
// Find the single datepicker trigger and click it
const datePickerTriggers = await page.$$('div');
for (const trigger of datePickerTriggers) {
const text = await page.evaluate(el => el.textContent, trigger);
if (text && text.includes('2026-07-23') && text.length < 25) {
await trigger.click();
break;
}
}
await new Promise(r => setTimeout(r, 800));
const shotDatePickerPath = path.resolve('.tmp-ds-showcase-custom-datepicker.png');
await page.screenshot({ path: shotDatePickerPath, fullPage: false });
console.log(`Captured Custom DatePicker Popover screenshot to ${shotDatePickerPath}`);
// 3. Scroll to Composite Section
await page.evaluate(() => {
const el = document.getElementById('sec-composite');
if (el) el.scrollIntoView({ behavior: 'auto' });
});
await new Promise(r => setTimeout(r, 800));
const shotCompositePath = path.resolve('.tmp-ds-showcase-composite.png');
await page.screenshot({ path: shotCompositePath, fullPage: false });
console.log(`Captured Composite FilterBar screenshot to ${shotCompositePath}`);
await browser.close();
}
main().catch(console.error);