execl问题修复
This commit is contained in:
@@ -11,9 +11,13 @@ Chrome Manifest V3 扩展,在用户已登录的 LTJT ERP 页面内执行经过
|
||||
|
||||
## 当前版本
|
||||
|
||||
当前源码版本为 `0.5.172`。版本化 ZIP、文件哈希和 Skill/DOCX 基线见 [`../../dist/release-manifest.json`](../../dist/release-manifest.json)。旧版本实现流水已冻结在 [`../../archive/project-history/2026-08-16/chrome-extension-README.pre-governance.md`](../../archive/project-history/2026-08-16/chrome-extension-README.pre-governance.md)。
|
||||
当前源码版本为 `0.5.173`。版本化 ZIP、文件哈希和 Skill/DOCX 基线见 [`../../dist/release-manifest.json`](../../dist/release-manifest.json)。旧版本实现流水已冻结在 [`../../archive/project-history/2026-08-16/chrome-extension-README.pre-governance.md`](../../archive/project-history/2026-08-16/chrome-extension-README.pre-governance.md)。
|
||||
|
||||
0.5.172 当前重点:
|
||||
0.5.173 当前重点:
|
||||
|
||||
- 名单 TSV 在派发校验、领队提取和原生名单合并时保留末尾空列的制表符,只统一换行并移除首尾空行。最后一条电话或备注为空时仍按完整 13 列处理;真正少列、多列及领队不一致仍阻断。本次需同步部署服务端的统一 operation 校验修复,不涉及数据库变更。
|
||||
|
||||
继续保留 0.5.172 的酒店门槛修正:
|
||||
|
||||
- 按维护方要求,将酒店新增 `DoInfo_jiudian` 的最少可序列化字段数从 195 调整为 150,恢复原有页面预检流程。154 字段页面可以通过数量检查;关键字段、loading、稳定 1 秒、资源、空槽、财务状态、归属和保存后回查检查保持原样。酒店修改/清空仍为 150,其他业务阈值不变。低于 150 的页面仍会阻断;真实 ERP 验收由部署方完成。
|
||||
|
||||
|
||||
@@ -6403,7 +6403,7 @@
|
||||
}
|
||||
|
||||
window.LTJTOrderAssistant = {
|
||||
version: '0.5.172',
|
||||
version: '0.5.173',
|
||||
resolveNativeListSearchValues,
|
||||
lookupKeywordMatchesText,
|
||||
inspectLifecycleSearchCriteria: lifecycleSearchCriteria,
|
||||
|
||||
@@ -2609,7 +2609,8 @@
|
||||
}
|
||||
|
||||
function buildPassengerTsv(value = {}) {
|
||||
if (typeof value.text === 'string' && value.text.trim()) return value.text.trim().replace(/\r\n?/g, '\n');
|
||||
// Keep trailing tabs: they encode empty cells in the required 13-column roster.
|
||||
if (typeof value.text === 'string' && value.text.trim()) return value.text.replace(/\r\n?/g, '\n').replace(/^\n+|\n+$/g, '');
|
||||
const rows = Array.isArray(value.rows) ? value.rows : [];
|
||||
if (!rows.length) return '';
|
||||
return [PASSENGER_HEADERS.join('\t'), ...rows.map((row) => PASSENGER_HEADERS.map((header) => passengerCell(row, header)).join('\t'))].join('\n');
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"manifest_version": 3,
|
||||
"name": "联泰下单助手",
|
||||
"version": "0.5.172",
|
||||
"version": "0.5.173",
|
||||
"description": "在已登录 LTJT ERP 页面内规划并受控执行联泰 ERP 业务操作。",
|
||||
"permissions": [
|
||||
"activeTab",
|
||||
|
||||
@@ -457,9 +457,14 @@
|
||||
return '';
|
||||
}
|
||||
|
||||
function normalizePassengerTsvText(text) {
|
||||
// Tabs represent columns, including empty final fields; trim only boundary newlines.
|
||||
return String(text || '').replace(/\r\n?/g, '\n').replace(/^\n+|\n+$/g, '');
|
||||
}
|
||||
|
||||
function buildPassengerTsv(passengerList = {}) {
|
||||
if (typeof passengerList.text === 'string' && passengerList.text.trim()) {
|
||||
return passengerList.text.trim().replace(/\r\n?/g, '\n');
|
||||
return normalizePassengerTsvText(passengerList.text);
|
||||
}
|
||||
const rows = Array.isArray(passengerList.rows) ? passengerList.rows : [];
|
||||
if (!rows.length) return '';
|
||||
@@ -470,7 +475,7 @@
|
||||
}
|
||||
|
||||
function passengerLeaderFromTsv(text) {
|
||||
const lines = String(text || '').trim().replace(/\r\n?/g, '\n').split('\n').filter((line) => line.length > 0);
|
||||
const lines = normalizePassengerTsvText(text).split('\n').filter((line) => line.length > 0);
|
||||
const headers = String(lines[0] || '').split('\t').map((header) => header.trim());
|
||||
if (headers.length !== PASSENGER_HEADERS.length
|
||||
|| headers.some((header, index) => header !== PASSENGER_HEADERS[index])) {
|
||||
@@ -1110,7 +1115,7 @@
|
||||
blockers.push('data.passenger_list.text 必须包含本次提供的 13 列名单 TSV。');
|
||||
return;
|
||||
}
|
||||
const lines = value.text.trim().replace(/\r\n?/g, '\n').split('\n').filter((line) => line.length > 0);
|
||||
const lines = normalizePassengerTsvText(value.text).split('\n').filter((line) => line.length > 0);
|
||||
const headers = String(lines[0] || '').split('\t');
|
||||
if (headers.length !== PASSENGER_HEADERS.length || headers.some((header, index) => header.trim() !== PASSENGER_HEADERS[index])) blockers.push('名单 TSV 必须使用规定的 13 列表头和顺序。');
|
||||
if (lines.length - 1 !== value.row_count) blockers.push('data.passenger_list.row_count 与 TSV 数据行数不一致。');
|
||||
|
||||
@@ -944,7 +944,7 @@
|
||||
|
||||
window.LTJTOrderAssistant = {
|
||||
...(window.LTJTOrderAssistant || {}),
|
||||
version: '0.5.172',
|
||||
version: '0.5.173',
|
||||
openTeamBatchForm,
|
||||
pingTeamBatchFrame,
|
||||
preflightTeamBatchNative,
|
||||
|
||||
Reference in New Issue
Block a user