2
2
This commit is contained in:
83
src/App.tsx
83
src/App.tsx
@ -283,7 +283,8 @@ export default function App() {
|
||||
// 切换功能时重置全局变量,但保留新的mode
|
||||
resetGlobalState({ resetMode: false });
|
||||
setMode(m);
|
||||
setIsExpectedDeliveryDateLocked(m === 'adjust');
|
||||
setIsExpectedDeliveryDateLocked(false);
|
||||
setLockedExpectedDeliveryDateTs(null);
|
||||
setModeSelectionVisible(false);
|
||||
};
|
||||
|
||||
@ -370,6 +371,7 @@ export default function App() {
|
||||
const expectedDeliveryDateField: any = await deliveryTable.getField(DELIVERY_EXPECTED_DATE_FIELD_ID);
|
||||
|
||||
const nodeDetailsVal = await nodeDetailsField.getValue(deliveryRecordId);
|
||||
let expectedDeliveryTsFromField: number | null = null;
|
||||
try {
|
||||
const expectedDeliveryVal = await expectedDeliveryDateField.getValue(deliveryRecordId);
|
||||
let ts: number | null = null;
|
||||
@ -384,8 +386,7 @@ export default function App() {
|
||||
if (!isNaN(parsed.getTime())) ts = parsed.getTime();
|
||||
}
|
||||
}
|
||||
setLockedExpectedDeliveryDateTs(ts);
|
||||
setIsExpectedDeliveryDateLocked(true);
|
||||
expectedDeliveryTsFromField = ts;
|
||||
} catch {}
|
||||
// 读取record_ids文本字段并保留原始文本(用于原样写回)
|
||||
try {
|
||||
@ -467,19 +468,23 @@ export default function App() {
|
||||
|
||||
if (snapshot.timelineAdjustments) setTimelineAdjustments(snapshot.timelineAdjustments);
|
||||
{
|
||||
const snapLockedTs = snapshot?.lockedExpectedDeliveryDateTs;
|
||||
if (snapLockedTs === null) {
|
||||
setLockedExpectedDeliveryDateTs(null);
|
||||
} else {
|
||||
const hasLockedTs = snapLockedTs !== undefined && snapLockedTs !== null;
|
||||
if (hasLockedTs) setLockedExpectedDeliveryDateTs(snapLockedTs);
|
||||
}
|
||||
const hasLockedTs = snapLockedTs !== undefined && snapLockedTs !== null;
|
||||
const snapLockedFlag = snapshot?.isExpectedDeliveryDateLocked;
|
||||
if (typeof snapLockedFlag === 'boolean') {
|
||||
setIsExpectedDeliveryDateLocked(snapLockedFlag);
|
||||
} else if (hasLockedTs) {
|
||||
setIsExpectedDeliveryDateLocked(true);
|
||||
const snapLockedTs = snapshot?.lockedExpectedDeliveryDateTs;
|
||||
const shouldLock = snapLockedFlag === true || (snapLockedFlag === undefined && snapLockedTs !== undefined && snapLockedTs !== null);
|
||||
if (shouldLock) {
|
||||
const ts = (typeof snapLockedTs === 'number' && Number.isFinite(snapLockedTs))
|
||||
? snapLockedTs
|
||||
: expectedDeliveryTsFromField;
|
||||
if (ts !== null && ts !== undefined) {
|
||||
setLockedExpectedDeliveryDateTs(ts);
|
||||
setIsExpectedDeliveryDateLocked(true);
|
||||
} else {
|
||||
setLockedExpectedDeliveryDateTs(null);
|
||||
setIsExpectedDeliveryDateLocked(false);
|
||||
}
|
||||
} else {
|
||||
setLockedExpectedDeliveryDateTs(null);
|
||||
setIsExpectedDeliveryDateLocked(false);
|
||||
}
|
||||
}
|
||||
if (snapshot.expectedDateTimestamp) {
|
||||
@ -624,19 +629,15 @@ export default function App() {
|
||||
|
||||
if (snapshot.timelineAdjustments) setTimelineAdjustments(snapshot.timelineAdjustments);
|
||||
{
|
||||
const snapLockedTs = snapshot?.lockedExpectedDeliveryDateTs;
|
||||
if (snapLockedTs === null) {
|
||||
setLockedExpectedDeliveryDateTs(null);
|
||||
} else {
|
||||
const hasLockedTs = snapLockedTs !== undefined && snapLockedTs !== null;
|
||||
if (hasLockedTs) setLockedExpectedDeliveryDateTs(snapLockedTs);
|
||||
}
|
||||
const hasLockedTs = snapLockedTs !== undefined && snapLockedTs !== null;
|
||||
const snapLockedFlag = snapshot?.isExpectedDeliveryDateLocked;
|
||||
if (typeof snapLockedFlag === 'boolean') {
|
||||
setIsExpectedDeliveryDateLocked(snapLockedFlag);
|
||||
} else if (hasLockedTs) {
|
||||
const snapLockedTs = snapshot?.lockedExpectedDeliveryDateTs;
|
||||
const shouldLock = snapLockedFlag === true || (snapLockedFlag === undefined && snapLockedTs !== undefined && snapLockedTs !== null);
|
||||
if (shouldLock && typeof snapLockedTs === 'number' && Number.isFinite(snapLockedTs)) {
|
||||
setLockedExpectedDeliveryDateTs(snapLockedTs);
|
||||
setIsExpectedDeliveryDateLocked(true);
|
||||
} else {
|
||||
setLockedExpectedDeliveryDateTs(null);
|
||||
setIsExpectedDeliveryDateLocked(false);
|
||||
}
|
||||
}
|
||||
if (snapshot.expectedDateTimestamp) {
|
||||
@ -1087,18 +1088,15 @@ export default function App() {
|
||||
setTimelineVisible(true);
|
||||
|
||||
{
|
||||
const snapLockedTs = (globalSnapshotData as any)?.lockedExpectedDeliveryDateTs;
|
||||
if (snapLockedTs === null) {
|
||||
setLockedExpectedDeliveryDateTs(null);
|
||||
} else {
|
||||
const hasLockedTs = snapLockedTs !== undefined && snapLockedTs !== null;
|
||||
if (hasLockedTs) setLockedExpectedDeliveryDateTs(snapLockedTs);
|
||||
}
|
||||
const snapLockedFlag = (globalSnapshotData as any)?.isExpectedDeliveryDateLocked;
|
||||
if (typeof snapLockedFlag === 'boolean') {
|
||||
setIsExpectedDeliveryDateLocked(snapLockedFlag);
|
||||
} else if (snapLockedTs !== undefined && snapLockedTs !== null) {
|
||||
const snapLockedTs = (globalSnapshotData as any)?.lockedExpectedDeliveryDateTs;
|
||||
const shouldLock = snapLockedFlag === true || (snapLockedFlag === undefined && snapLockedTs !== undefined && snapLockedTs !== null);
|
||||
if (shouldLock && typeof snapLockedTs === 'number' && Number.isFinite(snapLockedTs)) {
|
||||
setLockedExpectedDeliveryDateTs(snapLockedTs);
|
||||
setIsExpectedDeliveryDateLocked(true);
|
||||
} else {
|
||||
setLockedExpectedDeliveryDateTs(null);
|
||||
setIsExpectedDeliveryDateLocked(false);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3540,8 +3538,14 @@ export default function App() {
|
||||
setSelectedLabels(s.selectedLabels || {});
|
||||
setTimelineAdjustments(s.timelineAdjustments || {});
|
||||
setBaseBufferDays(s.baseBufferDays ?? 14);
|
||||
setLockedExpectedDeliveryDateTs(s.lockedExpectedDeliveryDateTs ?? null);
|
||||
setIsExpectedDeliveryDateLocked(!!s.isExpectedDeliveryDateLocked);
|
||||
const shouldLock = s.isExpectedDeliveryDateLocked === true || (s.isExpectedDeliveryDateLocked === undefined && s.lockedExpectedDeliveryDateTs !== null && s.lockedExpectedDeliveryDateTs !== undefined);
|
||||
if (shouldLock && typeof s.lockedExpectedDeliveryDateTs === 'number' && Number.isFinite(s.lockedExpectedDeliveryDateTs)) {
|
||||
setLockedExpectedDeliveryDateTs(s.lockedExpectedDeliveryDateTs);
|
||||
setIsExpectedDeliveryDateLocked(true);
|
||||
} else {
|
||||
setLockedExpectedDeliveryDateTs(null);
|
||||
setIsExpectedDeliveryDateLocked(false);
|
||||
}
|
||||
setActualCompletionDates(s.actualCompletionDates || {});
|
||||
setCompletionDateAdjustment(s.completionDateAdjustment || 0);
|
||||
setHasAppliedSuggestedBuffer(!!s.hasAppliedSuggestedBuffer && s.hasAppliedSuggestedBuffer);
|
||||
@ -5356,7 +5360,8 @@ export default function App() {
|
||||
<Select value={mode} onChange={(v) => {
|
||||
const next = v as any;
|
||||
setMode(next);
|
||||
setIsExpectedDeliveryDateLocked(next === 'adjust');
|
||||
setIsExpectedDeliveryDateLocked(false);
|
||||
setLockedExpectedDeliveryDateTs(null);
|
||||
}}
|
||||
optionList={[
|
||||
{ value: 'generate', label: '生成流程日期' },
|
||||
|
||||
Reference in New Issue
Block a user