diff --git a/api/pda-loading.js b/api/pda-loading.js index 46b01da..ccbe673 100644 --- a/api/pda-loading.js +++ b/api/pda-loading.js @@ -156,7 +156,7 @@ export function normalizePdaOrder(row = {}) { cabinetNo: row.cabinetNo ?? row.loading?.cabinetNo ?? row.container?.cabinetNo ?? row.containerNo ?? '', currentContainerNo: row.currentContainerNo ?? row.containerNo ?? row.container?.containerNo ?? row.loadingPlan?.containerNo ?? row.loading?.containerNo ?? null, warehouseId: row.warehouseId ?? row.warehouse?.id ?? row.loadingPlan?.warehouseId ?? null, - displayNo: row.orderNo ?? row.inboundCode ?? row.order?.orderNo ?? '业务单号待同步' + displayNo: row.orderNo ?? row.inboundCode ?? row.order?.orderNo ?? '' } } diff --git a/pages/home/home.vue b/pages/home/home.vue index cfcc05a..fa74fef 100644 --- a/pages/home/home.vue +++ b/pages/home/home.vue @@ -8,8 +8,8 @@ @@ -21,7 +21,6 @@ import PortalHeader from '@/components/PortalHeader.vue' import { MODULES } from '@/data/demo-data.js' import { session, requireSession } from '@/stores/session.js' - import { getPickingOverview } from '@/stores/picking.js' const ICON_TYPES = { '到货收货': 'download', '商品上架': 'upload', '入库质检': 'checkbox', @@ -39,8 +38,8 @@ export default { components: { PortalHeader }, - data() { return { user: session.currentUser, groups: HOME_GROUPS, overview: getPickingOverview(), menuOpen: false } }, - onShow() { if (!requireSession()) return; this.user = session.currentUser; this.overview = getPickingOverview() }, + data() { return { user: session.currentUser, groups: HOME_GROUPS, menuOpen: false } }, + onShow() { if (!requireSession()) return; this.user = session.currentUser }, onBackPress() { if (!this.menuOpen) return false this.$refs.portalHeader.closeMenu() diff --git a/pages/login/login.vue b/pages/login/login.vue index 06217e1..ec3b29c 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -20,7 +20,7 @@ import { loadLoginPreference, saveLoginPreference, session, restoreSession, signInWithTokens } from '@/stores/session.js' import { requireOnline } from '@/utils/network.js' export default { - data() { return { form: { userId: 'platform_admin', password: 'ChangeMe123!' }, rememberAccount: true, error: '', submitting: false } }, + data() { return { form: { userId: '', password: '' }, rememberAccount: true, error: '', submitting: false } }, async onLoad() { const preference = loadLoginPreference() this.rememberAccount = preference.rememberAccount diff --git a/pages/picking/picking.vue b/pages/picking/picking.vue index 0ee5978..808a293 100644 --- a/pages/picking/picking.vue +++ b/pages/picking/picking.vue @@ -11,10 +11,10 @@ - + @@ -33,10 +33,8 @@ - + - 请先处理并提交全部待拣明细;任务增量更新后,已拍证据会按当前柜次保留。 - @@ -124,7 +122,7 @@ - + 装柜证据空仓、半仓、满仓、锁仓及带锁码照 {{ remoteSyncState.label }} @@ -624,10 +622,6 @@ } }, selectStage(stage) { - if (stage === 'evidence' && !this.loadingStageReady) { - this.showToast('请先完成新增待拣明细', 'warning') - return - } this.activeStage = stage }, debugEvidence(event, payload = {}) { @@ -1160,7 +1154,6 @@ const completedBoxes = { ...this.completedBoxes } delete completedBoxes[this.currentBoxIndex] this.completedBoxes = completedBoxes - this.activeStage = 'picking' this.completionSummary = { picked: 0, partial: 0, skipped: 0, autoSkipped: 0 } } const addedItemIds = this.currentBox.items.map((item) => String(item.id)).filter((id) => !previousItemIds.has(id)) @@ -1255,8 +1248,7 @@ const next = { evidenceType: slot.type, fileName: path.split('/').pop() || path, localPath: path, uploadStatus: 'PENDING' } this.evidenceFiles = { ...this.evidenceFiles, [slot.type]: [...(this.evidenceFiles[slot.type] || []), next] } this.rememberEvidenceDraft(identity) - if (this.loadingStageReady) this.queueEvidenceUpload(slot.type, path) - else this.showToast('照片已暂存,装柜状态同步后自动上传', 'success') + this.queueEvidenceUpload(slot.type, path) }, fail: (error) => { this.cameraPicking = false if (!this.isEvidenceContextActive(contextId, identity)) return @@ -1265,7 +1257,6 @@ } }) }, async queueEvidenceUpload(type, path) { - if (!this.loadingStageReady) return if (!this.evidenceIdentity?.inboundId || !isRemoteReady(this.evidenceIdentity.inboundId)) { this.showToast('当前会话未连接服务端,证据保留本地', 'warning'); return } const contextId = this.evidenceContextId const identity = { ...this.evidenceIdentity } @@ -1285,6 +1276,11 @@ this.showToast('带锁码照已上传,请输入封签号并点击保存封签', 'success') return } + if (!this.loadingStageReady) { + this.rememberEvidenceDraft(identity) + this.showToast('照片已上传,拣货完成后自动保存', 'success') + return + } await this.saveEvidence(type, null, path) }, async flushPendingEvidence() { @@ -1298,7 +1294,7 @@ } }, async retryEvidence(type) { - if (!this.requireEvidenceStage()) return + if (!this.requireEvidenceCapture()) return const item = this.evidenceQueueEntry(type) const contextId = this.evidenceContextId const identity = { ...this.evidenceIdentity } @@ -1316,6 +1312,11 @@ this.showToast('带锁码照已上传,请输入封签号并点击保存封签', 'success') return } + if (!this.loadingStageReady) { + this.rememberEvidenceDraft(identity) + this.showToast('照片已上传,拣货完成后自动保存', 'success') + return + } await this.saveEvidence(type) }, async saveEvidence(type, operationId = null, localPath = null) { diff --git a/pages/profile/profile.vue b/pages/profile/profile.vue index 4f28743..c0821ab 100644 --- a/pages/profile/profile.vue +++ b/pages/profile/profile.vue @@ -1,5 +1,5 @@