feat(overseas-pda): prefer business identifiers
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
<template><view v-if="user" class="page-shell portal-page"><PortalHeader title="作业记录" :user="user" /><view class="portal-content"><view class="summary-card"><view><text class="summary-number">0</text><text class="summary-label">今日完成</text></view><view><text class="summary-number pending-color">0</text><text class="summary-label">进行中</text></view></view><text class="group-title">最近作业</text><view class="history-empty"><text class="history-empty-icon">▤</text><text class="history-empty-title">暂无海外仓作业记录</text><text class="history-empty-desc">接入海外仓真实任务后,完成记录会显示在这里</text></view></view></view></template>
|
||||
<template><view v-if="user" class="page-shell portal-page"><PortalHeader title="作业记录" :user="user" /><view class="portal-content"><view class="summary-card"><view><text class="summary-number">0</text><text class="summary-label">今日完成</text></view><view><text class="summary-number pending-color">0</text><text class="summary-label">进行中</text></view></view><text class="group-title">最近作业</text><view class="history-empty"><text class="history-empty-icon">▤</text><text class="history-empty-title">暂无海外仓作业记录</text><text class="history-empty-desc">当前暂无可查看的作业记录</text></view></view></view></template>
|
||||
<script>
|
||||
import PortalHeader from '@/components/PortalHeader.vue'; import { session, requireSession } from '@/stores/session.js'
|
||||
export default { components: { PortalHeader }, data() { return { user: session.currentUser } }, onShow() { if (!requireSession()) return; this.user = session.currentUser } }
|
||||
|
||||
@@ -47,10 +47,7 @@
|
||||
return name && !/^[a-z0-9._-]+$/i.test(name) ? name : '仓库作业员'
|
||||
},
|
||||
warehouseLabel() {
|
||||
if (this.user?.warehouseName) return this.user.warehouseCode ? `${this.user.warehouseName} · ${this.user.warehouseCode}` : this.user.warehouseName
|
||||
const warehouseId = String(this.user?.warehouseId || '')
|
||||
if (warehouseId) return `当前作业仓 · ${warehouseId.slice(-6)}`
|
||||
return this.user?.warehouse || '仓库由当前账号自动绑定'
|
||||
return String(this.user?.warehouseName || '').trim() || '海外仓未关联'
|
||||
},
|
||||
greeting() {
|
||||
const hour = new Date().getHours()
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
|
||||
<template v-else>
|
||||
<view class="receiving-heading"><view><text class="receiving-title">{{ operationName }}</text><text class="receiving-subtitle">当前功能暂未开放</text></view></view>
|
||||
<view class="blocked-card"><uni-icons type="locked" color="#8090a3" size="36" /><text class="blocked-title">功能暂未开放</text><text>现有平台、客户或内部接口不能由仓库作业员直接调用。扫码不会提交,也不会产生模拟成功结果。</text></view>
|
||||
<view class="blocked-card"><uni-icons type="locked" color="#8090a3" size="36" /><text class="blocked-title">功能暂未开放</text><text>当前作业暂未开放,扫码不会提交,请返回工作台选择可用功能。</text></view>
|
||||
</template>
|
||||
</view>
|
||||
<view v-if="toast.visible" class="app-toast" :class="toast.type" role="status">{{ toast.message }}</view>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<view v-if="user" class="page-shell portal-page">
|
||||
<PortalHeader title="个人中心" :user="user" :show-profile="false" />
|
||||
<view class="portal-content profile-content">
|
||||
<view class="profile-card"><view class="profile-avatar">{{ avatar }}</view><view><text class="profile-name">{{ displayName }}</text><text class="profile-role">{{ user.role }} · {{ user.id }}</text></view></view>
|
||||
<view class="profile-card"><view class="profile-avatar">{{ avatar }}</view><view><text class="profile-name">{{ displayName }}</text><text class="profile-role">{{ roleLabel }}</text></view></view>
|
||||
<view class="profile-list">
|
||||
<view class="profile-row"><text>作业仓库</text><text class="profile-value">{{ warehouseDisplay }}</text></view>
|
||||
<view class="profile-row"><text>当前班次</text><text class="profile-value">以海外仓排班为准</text></view>
|
||||
@@ -30,7 +30,8 @@
|
||||
computed: {
|
||||
displayName() { const name = String(this.user?.name || ''); return name && !/^[a-z0-9._-]+$/i.test(name) ? name : '仓库作业员' },
|
||||
avatar() { return this.displayName.slice(0, 1).toUpperCase() },
|
||||
warehouseDisplay() { return this.user?.warehouseName ? (this.user.warehouseCode ? `${this.user.warehouseName} · ${this.user.warehouseCode}` : this.user.warehouseName) : (this.user?.warehouse || '正在读取仓库主档') },
|
||||
roleLabel() { return '海外仓作业员' },
|
||||
warehouseDisplay() { return String(this.user?.warehouseName || '').trim() || '海外仓未关联' },
|
||||
languageLabel() { return LOCALE_OPTIONS.find((item) => item.value === this.locale)?.label || 'English' }
|
||||
},
|
||||
onShow() { if (!requireSession()) return; this.user = session.currentUser; this.loadAppVersion(); this.loadWarehouseProfile() },
|
||||
|
||||
@@ -74,7 +74,7 @@ function userFromClaims(pair, saved = {}) {
|
||||
name: pair.domestic.username || '仓库作业员',
|
||||
role: PDA_ROLE,
|
||||
roles: [...pair.overseas.roles],
|
||||
warehouse: sameWarehouse && saved.warehouseName ? saved.warehouseName : `海外仓 #${pair.warehouseId}`,
|
||||
warehouse: sameWarehouse && saved.warehouseName ? saved.warehouseName : '',
|
||||
warehouseId: pair.warehouseId,
|
||||
warehouseCode: sameWarehouse ? (saved.warehouseCode || '') : '',
|
||||
warehouseName: sameWarehouse ? (saved.warehouseName || '') : ''
|
||||
@@ -142,7 +142,7 @@ export function applyWarehouseProfile(profile) {
|
||||
if (!warehouseId || warehouseId !== String(session.currentUser.warehouseId)) throw new Error('仓库主档与当前登录仓库不一致')
|
||||
session.currentUser = {
|
||||
...session.currentUser,
|
||||
warehouse: profile.warehouseName || profile.warehouseCode || `海外仓 #${warehouseId}`,
|
||||
warehouse: profile.warehouseName || '',
|
||||
warehouseCode: String(profile.warehouseCode || ''),
|
||||
warehouseName: String(profile.warehouseName || '')
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user