This commit is contained in:
2026-08-21 09:20:26 +08:00
parent c9c6d5a0f9
commit 49465315e2
89 changed files with 16413 additions and 1776 deletions
@@ -4,7 +4,9 @@ const fs = require('node:fs');
const path = require('node:path');
const vm = require('node:vm');
const html = fs.readFileSync(path.resolve(__dirname, '..', '货代SaaS平台原型.html'), 'utf8');
const root = path.resolve(__dirname, '..');
const manifest = JSON.parse(fs.readFileSync(path.join(root, 'prototype-src', 'manifest.json'), 'utf8'));
const html = fs.readFileSync(path.join(root, manifest.source), 'utf8');
const failures = [];
function requireMatch(pattern, label, source = html) {
@@ -75,8 +77,8 @@ requireMatch(/id="page-last-mile-orders"/, '尾程订单列表页面');
requireMatch(/id="page-last-mile-order-detail"/, '尾程订单详情页面');
requireMatch(/id="lmo-detail-order-details"/, '尾程订单明细模块');
requireMatch(/id="tbody-last-mile-orders"/, '尾程订单列表表体');
requireMatch(/openBolModal\([^)]*\)[^>]*>转派送<\/button>/, '排车列表转派送按钮');
if (/openBolModal\([^)]*\)[^>]*>转BOL<\/button>/.test(html)) failures.push('排车列表仍显示转BOL按钮');
requireMatch(/createAction\(['"]转派送['"],\s*\(\)\s*=>\s*openBolModal\(v\.vehicleNo\),\s*true\)/, '排车列表转派送按钮');
if (/createAction\(['"]转BOL['"],\s*\(\)\s*=>\s*openBolModal\(/.test(html)) failures.push('排车列表仍显示转BOL按钮');
const lastMilePageStart = html.indexOf('<div class="page" id="page-last-mile-orders">');
const lastMilePageEnd = html.indexOf('<!-- ==================== OVERSEAS WAREHOUSE - 尾程订单详情', lastMilePageStart);
const lastMilePage = lastMilePageStart >= 0 && lastMilePageEnd > lastMilePageStart
@@ -106,12 +108,12 @@ requireMatch(/id="lmo-status"/, '尾程状态查询条件');
const consolidatedFilterMatch = lastMilePage.match(/<select(?=[^>]*\bid=["']lmo-consolidated-filter["'])[^>]*>[\s\S]*?<\/select>/);
const consolidatedFilterSource = consolidatedFilterMatch ? consolidatedFilterMatch[0] : '';
requireMatch(/<select(?=[^>]*\bid=["']lmo-consolidated-filter["'])[^>]*>/, '是否合托查询条件', lastMilePage);
requireMatch(/<option[^>]*value=["']["'][^>]*>\s*全部\s*<\/option>/, '是否合托查询全部选项', consolidatedFilterSource);
requireMatch(/<option[^>]*value=["']["'][^>]*>\s*是否合托\s*<\/option>/, '是否合托查询默认选项', consolidatedFilterSource);
requireMatch(/<option[^>]*value=["']yes["'][^>]*>\s*是\s*<\/option>/, '是否合托查询是选项', consolidatedFilterSource);
requireMatch(/<option[^>]*value=["']no["'][^>]*>\s*否\s*<\/option>/, '是否合托查询否选项', consolidatedFilterSource);
requireMatch(/<label>预计到港时间<\/label>[\s\S]{0,240}id="lmo-port-eta-start"[^>]*type="date"[\s\S]{0,160}id="lmo-port-eta-end"[^>]*type="date"/, '预计到港时间范围查询条件', lastMilePage);
requireMatch(/class="lmo-search-field lmo-search-date-field"/, '预计到港时间窄屏跨列标记', lastMilePage);
requireMatch(/@media\(max-width:900px\)[^{]*\{[\s\S]{0,500}\.lmo-search-date-field\s*\{\s*grid-column:1\/-1/, '预计到港时间窄屏跨列样式');
requireMatch(/class="lmo-search-date-range"[\s\S]{0,160}id="lmo-port-eta-start"[^>]*type="date"[^>]*aria-label="预计到港开始时间"[\s\S]{0,160}id="lmo-port-eta-end"[^>]*type="date"[^>]*aria-label="预计到港结束时间"/, '预计到港时间范围查询条件', lastMilePage);
requireMatch(/#page-last-mile-orders \.lmo-search-date-range\{display:flex;align-items:center;gap:6px/, '预计到港时间范围布局样式');
requireMatch(/#page-last-mile-orders \.lmo-search-date-range input\{flex:0 0 150px;width:150px\}/, '预计到港时间输入框稳定宽度');
if (/流程进度|id="lmo-detail-progress"/.test(lastMileDetailPage)) failures.push('尾程订单详情仍显示流程进度');
for (const label of ['全部', '待分配']) {
if (!lastMilePage.includes(`data-lmo-tab="${label}"`)) failures.push(`missing 尾程订单页签 ${label}`);