From f28f04569666ede3ac566e9a5d8ed6b4ad29858e Mon Sep 17 00:00:00 2001 From: root Date: Thu, 10 Sep 2026 10:51:31 +0800 Subject: [PATCH] =?utf8?q?style(drawer):=20=E8=A1=A5=E5=85=85=E8=A6=81?= =?utf8?q?=E6=B1=82/=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E6=A0=87=E7=AD=BE?= =?utf8?q?=E5=AD=97=E4=BD=93=E5=A4=A7=E5=B0=8F=E4=B8=8E=E5=8F=82=E8=80=83?= =?utf8?q?=E8=B5=84=E6=96=99=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- app/globals.css | 2 +- scripts/verify-aidrawer.mjs | 43 ++++++++++--------------------------- 2 files changed, 12 insertions(+), 33 deletions(-) diff --git a/app/globals.css b/app/globals.css index b826323..6a570bc 100644 --- a/app/globals.css +++ b/app/globals.css @@ -276,7 +276,7 @@ html,body{font-family:Roboto,"Noto Sans SC","Microsoft YaHei",Arial,sans-serif;f .single-column-form{width:100%}.single-column-form .panel{margin:0}.single-column-form .panel-body{padding:20px 24px 32px}.single-column-form .form-grid{display:grid;grid-template-columns:1fr!important;gap:20px}.single-column-form .form-grid>*{grid-column:1!important}.single-column-form .field{max-width:680px;gap:8px}.single-column-form .field>span{font-size:14px}.single-column-form .field input,.single-column-form .field select{height:40px;border-radius:4px;padding:0 12px}.single-column-form .field textarea{min-height:112px;border-radius:4px;padding:10px 12px}.single-column-form .field textarea.small{min-height:88px}.single-column-form .field small{font-size:12px;color:var(--company-muted)} .domain-select{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.domain-select .text-button{margin:0}.domain-add{max-width:520px}.domain-add .button{min-width:88px}.field-assist{display:flex;justify-content:flex-start;margin-top:4px}.field-assist .button{min-width:140px}.form-section-heading{max-width:680px;border-top:1px solid var(--company-border);padding-top:20px;margin-top:4px}.form-section-heading h3{font-size:16px;margin:0 0 4px}.form-section-heading p{margin:0;color:var(--company-muted);font-size:13px}.form-guidance{max-width:680px;padding:12px 14px;background:#f5f8fa;border-left:3px solid var(--company-primary);display:flex;flex-direction:column;gap:5px}.form-guidance span{color:#666;font-size:13px}.save-indicator{color:var(--company-muted);font-size:13px} .upload{height:96px;border-color:#bfc7cd;background:#fafafa;border-radius:4px}.upload b{font-size:20px}.upload span{font-size:14px}.upload small{font-size:12px} -.ai-assist-intro{display:flex;gap:14px;padding:16px;background:#f3f8fb;border:1px solid #d9eaf3}.ai-assist-intro>.anticon{font-size:24px;color:var(--company-primary)}.ai-assist-intro h3{font-size:16px;margin:0 0 6px}.ai-assist-intro p{margin:0;color:#666;line-height:1.7}.drawer-actions{display:flex;gap:8px;margin:18px 0}.drawer-actions .button{min-width:120px} +.ai-assist-intro{display:flex;gap:14px;padding:16px;background:#f3f8fb;border:1px solid #d9eaf3}.ai-assist-intro>.anticon{font-size:24px;color:var(--company-primary)}.ai-assist-intro h3{font-size:16px;margin:0 0 6px}.ai-assist-intro p{margin:0;color:#666;line-height:1.7}.ai-assist-drawer .field>span{font-size:16px;font-weight:500}.drawer-actions{display:flex;gap:8px;margin:18px 0}.drawer-actions .button{min-width:120px} .result-header{min-height:72px;border:0;border-bottom:1px solid var(--company-border);padding:12px 0;margin:0}.result-header h2{font-size:20px}.result-header .site-icon{border-radius:4px;background:var(--company-primary);color:#fff;border:0;font-size:16px}.result-actions{display:flex;gap:8px}.result-actions .button{min-width:112px} .kpi-row{border-bottom:1px solid var(--company-border);gap:0;margin:0 0 16px}.kpi-row>div{height:72px;border:0;border-right:1px solid #eee;padding:12px 16px}.kpi-row>div:last-child{border-right:0}.kpi-row span{color:var(--company-muted)}.kpi-row b{font-size:22px} .result-layout{grid-template-columns:1fr}.result-pages{display:grid;grid-template-columns:1fr;gap:0}.result-pages article{display:grid;grid-template-columns:300px 1fr;min-height:180px;border:0;border-bottom:1px solid var(--company-border);padding:16px 0}.result-pages article>div:last-child{padding:0 20px}.result-pages h3{font-size:16px;margin:14px 0 8px}.result-pages p{font-size:13px;line-height:1.6}.result-pages footer{gap:8px}.result-pages footer .button{min-width:96px;height:32px;margin:0}.dashboard-thumb-live{min-height:160px;border:1px solid var(--company-border);background:#f5f5f5} diff --git a/scripts/verify-aidrawer.mjs b/scripts/verify-aidrawer.mjs index 1fd2d9c..440745f 100644 --- a/scripts/verify-aidrawer.mjs +++ b/scripts/verify-aidrawer.mjs @@ -1,40 +1,19 @@ import { chromium } from 'playwright'; - const BASE = 'https://aidemo.istation.cloud/t/stationbuilder'; const browser = await chromium.launch(); const page = await browser.newPage(); -const errors = []; -page.on('console', m => { if (m.type() === 'error') errors.push(m.text()); }); -page.on('response', r => { if (r.status() >= 400) errors.push('HTTP ' + r.status() + ' ' + r.url()); }); - await page.goto(BASE + '/?page=basic', { waitUntil: 'networkidle' }); - -// Open a site first via the list -> need an existing site. Try navigating by clicking first company row. -// Fallback: directly go to a known route if exists. We'll just click "打开项目" of first row. const row = page.locator('.company-table tbody tr').first(); -if (await row.count()) { - await row.click(); - await page.waitForTimeout(800); - const openBtn = page.getByText('打开项目'); - if (await openBtn.count()) { await openBtn.first().click(); await page.waitForTimeout(1000); } -} - -const leftBefore = await page.locator('.single-column-form').innerText().catch(() => ''); -const leftHasSupplementBefore = leftBefore.includes('补充要求'); - -// Now ensure we're on basic page: click the AI 智能补全 button -const aiBtn = page.getByText('AI 智能补全').first(); -await aiBtn.click(); +if (await row.count()) { await row.click(); await page.waitForTimeout(800); const b = page.getByText('打开项目'); if (await b.count()) { await b.first().click(); await page.waitForTimeout(1000); } } +await page.getByText('AI 智能补全').first().click(); await page.waitForTimeout(800); - -const drawerText = await page.locator('.ai-assist-drawer').innerText().catch(() => ''); -const leftHasSupplement = await page.locator('.single-column-form').innerText().then(t => t.includes('补充要求')).catch(() => false); - -console.log('DRAWER_HAS_补充要求:', drawerText.includes('补充要求')); -console.log('DRAWER_HAS_填写建议:', drawerText.includes('填写建议')); -console.log('DRAWER_HAS_参考资料:', drawerText.includes('参考资料')); -console.log('DRAWER_HAS_文件上传:', drawerText.includes('上传文件') || drawerText.includes('点击或拖拽')); -console.log('LEFT_FORM_HAS_补充要求_BEFORE_DRAWER:', leftHasSupplementBefore); -console.log('LEFT_FORM_HAS_补充要求:', leftHasSupplement); -console.log('ERRORS:', JSON.stringify(errors.slice(0, 10))); +const styles = await page.evaluate(() => { + const ref = document.querySelector('.form-section-heading h3'); + const labels = [...document.querySelectorAll('.ai-assist-drawer .field>span')]; + return { + ref: ref ? { fontSize: getComputedStyle(ref).fontSize, fontWeight: getComputedStyle(ref).fontWeight } : null, + labels: labels.map(el => ({ text: el.textContent.trim(), fontSize: getComputedStyle(el).fontSize, fontWeight: getComputedStyle(el).fontWeight })) + }; +}); +console.log(JSON.stringify(styles, null, 2)); await browser.close(); -- 2.43.0