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 @@
- {{ user.name.slice(0, 1) }}{{ user.name }}{{ user.role }} · {{ user.id }}作业仓库{{ user.warehouse }}当前班次08:00–17:00应用版本{{ appVersion }}退出后会清空本次会话中的箱号草稿、扫码记录与作业进度。设置功能将在后续版本开放
+ {{ user.name.slice(0, 1) }}{{ user.name }}{{ user.role }} · {{ user.id }}作业仓库{{ user.warehouse }}当前班次08:00–17:00应用版本{{ appVersion }}退出后会清空本次会话中的箱号草稿、扫码记录与作业进度。设置功能将在后续版本开放