debug_kitchen_formula_rules.js 1.5 KB

1234567891011121314151617181920212223242526
  1. const { chromium } = require('playwright');
  2. (async () => {
  3. const browser = await chromium.launch({ headless: true, executablePath: 'C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe' });
  4. const page = await browser.newPage({ viewport: { width: 1440, height: 1000 } });
  5. const errors = [];
  6. page.on('pageerror', error => errors.push(error.message));
  7. await page.goto('http://127.0.0.1:8931/AI%E5%BF%AB%E9%80%9F%E6%8A%A5%E4%BB%B7_Demo2.html?v=kitchen-formula-test', { waitUntil: 'load' });
  8. const result = await page.evaluate(() => {
  9. const calc = (name, count) => qCalculateKitchenItem(name, 5, 2, count || 0);
  10. const names = ['地柜','吊柜','冰箱吊柜','高柜','见光板','台面','台面超出部分','碗篮','锅篮','自弹','切角','台下盆','包管'];
  11. const calculations = Object.fromEntries(names.map(name => [name, calc(name, 2)]));
  12. return {
  13. calculations,
  14. minimumMeter: {
  15. baseAt3m: qCalculateKitchenItem('地柜', 3, 2, 0),
  16. wallAt2m: qCalculateKitchenItem('吊柜', 2, 2, 0),
  17. countertopOverAt3m: qCalculateKitchenItem('台面超出部分', 3, 2, 0)
  18. },
  19. configured: DEFAULT_RULES.kitchen.map(rule => ({ name: rule.name, method: rule.method, value: Number(rule.value), unit: rule.unit })),
  20. legacy: DEFAULT_RULES.kitchen.filter(rule => /11199|3733|基础套餐|超3米/.test(rule.name + rule.value)).map(rule => rule.name)
  21. };
  22. });
  23. console.log(JSON.stringify({ ...result, errors }));
  24. await browser.close();
  25. })().catch(error => { console.error(error); process.exit(1); });