4 Commits
Author SHA1 Message Date
admin 804a3298c6 fix(pda): 将拣货确认按钮改为全部拣出 2026-11-06 21:05:53 +08:00
ouyangxq b79bd337d5 fix(pda): 将拣货确认按钮改为全部拣出 2026-11-06 20:58:13 +08:00
admin 8fe50cd155 release: 合并最新 TEST 并发布阿里云灰度
按本轮授权合并经过验证的发布候选,保留 main 已有修复。
2026-11-06 14:07:54 +08:00
ouyangxq bf4695b78c chore(pda): prepare 0.1.0 gray production package 2026-11-06 13:53:32 +08:00
4 changed files with 6 additions and 6 deletions
+2 -2
View File
@@ -2,8 +2,8 @@
"name" : "柏悦物流 PDA",
"appid" : "__UNI__9BFFAF2",
"description" : "柏悦物流 PDA 作业端",
"versionName" : "0.0.2",
"versionCode" : 2,
"versionName" : "0.1.0",
"versionCode" : 10,
"transformPx" : false,
"app-plus" : {
/* 5+App特有相关 */
+2 -2
View File
@@ -102,7 +102,7 @@
<button class="pick-btn pick-btn-confirm" @tap="pickItem(item.id)">确认整托拣出</button>
</view>
<view v-else-if="!isSealedPalletItem(item) && [ITEM_STATUS.PENDING, ITEM_STATUS.PARTIAL].includes(itemState(item))" class="pick-item-actions">
<button class="pick-btn pick-btn-confirm" @tap="pickItem(item.id)">确认拣出</button>
<button class="pick-btn pick-btn-confirm" @tap="pickItem(item.id)">全部拣出</button>
<button class="pick-btn pick-btn-partial" @tap="openPartial(item.id)">部分拣货</button>
<button v-if="itemState(item) === ITEM_STATUS.PENDING" class="pick-btn pick-btn-skip" @tap="openSkip(item.id)">跳拣</button>
</view>
@@ -490,7 +490,7 @@
const value = parseInt(this.partialInput, 10)
if (!Number.isInteger(value) || value <= 0) return '请输入大于 0 的整数'
if (value < Number(this.partialTargetItem.pickedPackageCount || 0)) return `实际拣出总数不能少于已拣的 ${this.partialTargetItem.pickedPackageCount} 箱`
if (value >= this.partialTargetItem.qty) return `部分拣货必须少于 ${this.partialTargetItem.qty},整单请返回后点击“确认拣出”`
if (value >= this.partialTargetItem.qty) return `部分拣货必须少于 ${this.partialTargetItem.qty},整单请返回后点击“全部拣出”`
const available = this.availablePickQuantity(this.partialTargetItem)
if (available !== null && value > available) return `超过库存/库位可用量,可拣 ${available}`
return ''
+1 -1
View File
@@ -71,7 +71,7 @@ test('palletization UI accepts carton and pre-generated pallet scans in either o
assert.match(work, /<uni-popup ref="unsealPopup"/)
assert.doesNotMatch(work, /v-for="pallet in task\.pallets"/)
assert.doesNotMatch(work, /downloadDropshipPalletLabel|downloadAllDropshipPalletLabels|打开当前托盘 A4 单|打开全部 A4 托盘单/)
assert.match(work, /formatApiError/)
assert.match(work, /sanitizeUserMessage/)
assert.doesNotMatch(work, /Number\(this\.warehouseId\)/)
assert.doesNotMatch(work, /taskId\s*\}\}|warehouseId\s*\}\}|inboundId\s*\}\}/)
})
+1 -1
View File
@@ -148,7 +148,7 @@ test('non-picking operations remain complete static task pages', async () => {
test('picking page keeps scan, draft and risky transition contracts', async () => {
const [page, scanner] = await Promise.all([read('../pages/picking/picking.vue'), read('../utils/scan-broadcast.js')])
for (const text of ['确认拣出', '部分拣货', '跳拣', '提交拣货完成', '去拍照', '最近扫码']) assert.match(page, new RegExp(text))
for (const text of ['全部拣出', '部分拣货', '跳拣', '提交拣货完成', '去拍照', '最近扫码']) assert.match(page, new RegExp(text))
assert.match(page, /saveCurrentBoxDraft\(\)[\s\S]*?this\.boxDrafts =/)
assert.match(page, /loadBoxState\(index\)[\s\S]*?const draft = this\.boxDrafts\[index\]/)
assert.match(page, /requestBoxSwitch\(index\)[\s\S]*?this\.openOverlay\('switchBoxConfirm'\)/)